From aa6088d7d739cb4cff23faada855acdabeae1fdd Mon Sep 17 00:00:00 2001 From: Super Manito <68613938+SuperManito@users.noreply.github.com> Date: Thu, 15 May 2025 21:37:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChangeMirrors.sh | 1 + DockerInstallation.sh | 1 + docs/assets/css/tdesign.min.css | 2 +- docs/assets/css/tdesign.min.css.map | 2 +- docs/assets/images/sponsor/runxinyun.png | Bin 0 -> 6877 bytes docs/assets/images/sponsor/yuluyundun.png | Bin 0 -> 45121 bytes docs/assets/js/modules/tdesign.min.js | 10 ++++---- docs/assets/js/modules/tdesign.min.js.map | 2 +- docs/sponsor/main.html | 7 ++++++ docs/stylesheets/extra.css | 29 +++++++++++++++++++++- docs/theme/partials/toc.html | 7 ++++++ requirements.txt | 2 +- 12 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 docs/assets/images/sponsor/runxinyun.png create mode 100644 docs/assets/images/sponsor/yuluyundun.png diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh index ee5adac..095bf07 100755 --- a/ChangeMirrors.sh +++ b/ChangeMirrors.sh @@ -657,6 +657,7 @@ function run_end() { "圣道云 · 稳定高效云服务器|低至9.9元/月起 ➜ https://www.shengdaoyun.com" "润信云 · 国内挂机宝海外云服务器低至9.9元/月 ➜ https://www.runxinyun.com" "新鸟云 · 2核2G云主机特价15元/月 ➜ https://www.xinniaoyun.com" + "语鹿云盾 · 专业CDN加速、防御,亚太百兆三网优化CDN低至9元起 ➜ https://www.lucdn.cn" ) echo -e "\n✨ 脚本运行完毕,更多使用教程详见官网 👉 \033[3mhttps://linuxmirrors.cn\033[0m\n" for ad in "${sponsor_ad[@]}"; do diff --git a/DockerInstallation.sh b/DockerInstallation.sh index ff955c9..49dd2ab 100755 --- a/DockerInstallation.sh +++ b/DockerInstallation.sh @@ -361,6 +361,7 @@ function run_end() { "圣道云 · 稳定高效云服务器|低至9.9元/月起 ➜ https://www.shengdaoyun.com" "润信云 · 国内挂机宝海外云服务器低至9.9元/月 ➜ https://www.runxinyun.com" "新鸟云 · 2核2G云主机特价15元/月 ➜ https://www.xinniaoyun.com" + "语鹿云盾 · 专业CDN加速、防御,亚太百兆三网优化CDN低至9元起 ➜ https://www.lucdn.cn" ) echo -e "\n✨ 脚本运行完毕,更多使用教程详见官网 👉 \033[3mhttps://linuxmirrors.cn\033[0m\n" for ad in "${sponsor_ad[@]}"; do diff --git a/docs/assets/css/tdesign.min.css b/docs/assets/css/tdesign.min.css index aa13bc6..0b7acf7 100644 --- a/docs/assets/css/tdesign.min.css +++ b/docs/assets/css/tdesign.min.css @@ -1,2 +1,2 @@ -:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-bg-color-page:var(--td-gray-color-2);--td-bg-color-container:#fff;--td-bg-color-container-hover:var(--td-gray-color-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-container-select:#fff;--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-2);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-hover:var(--td-gray-color-4);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-5);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-7);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12);--td-shadow-2:0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1);--td-shadow-3:0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0,0,0,.08);--td-scrollbar-color:rgba(0,0,0,.1);--td-scrollbar-hover-color:rgba(0,0,0,.3);--td-scroll-track-color:#fff}:root[theme-mode=dark]{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:hsla(0,0%,100%,.9);--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-7);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-9);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.4);--td-mask-disabled:rgba(0,0,0,.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-container-hover:var(--td-gray-color-12);--td-bg-color-container-active:var(--td-gray-color-10);--td-bg-color-container-select:var(--td-gray-color-9);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-11);--td-bg-color-secondarycontainer-active:var(--td-gray-color-9);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-component-hover:var(--td-gray-color-10);--td-bg-color-component-active:var(--td-gray-color-9);--td-bg-color-secondarycomponent:var(--td-gray-color-10);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-9);--td-bg-color-secondarycomponent-active:var(--td-gray-color-8);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-8);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0,0,0,.06),0 1px 10px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.12);--td-shadow-2:0 8px 10px rgba(0,0,0,.12),0 3px 14px rgba(0,0,0,.1),0 5px 5px rgba(0,0,0,.16);--td-shadow-3:0 16px 24px rgba(0,0,0,.14),0 6px 30px rgba(0,0,0,.12),0 8px 10px rgba(0,0,0,.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0,0,0,.55);--td-scrollbar-color:hsla(0,0%,100%,.1);--td-scrollbar-hover-color:hsla(0,0%,100%,.3);--td-scroll-track-color:#333}:root{--td-radius-small:2px;--td-radius-default:3px;--td-radius-medium:6px;--td-radius-large:9px;--td-radius-extraLarge:12px;--td-radius-round:999px;--td-radius-circle:50%;--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:12px;--td-font-size-link-medium:14px;--td-font-size-link-large:16px;--td-font-size-mark-small:12px;--td-font-size-mark-medium:14px;--td-font-size-body-small:12px;--td-font-size-body-medium:14px;--td-font-size-body-large:16px;--td-font-size-title-small:14px;--td-font-size-title-medium:16px;--td-font-size-title-large:20px;--td-font-size-headline-small:24px;--td-font-size-headline-medium:28px;--td-font-size-headline-large:36px;--td-font-size-display-medium:48px;--td-font-size-display-large:64px;--td-line-height-link-small:20px;--td-line-height-link-medium:22px;--td-line-height-link-large:24px;--td-line-height-mark-small:20px;--td-line-height-mark-medium:22px;--td-line-height-body-small:20px;--td-line-height-body-medium:22px;--td-line-height-body-large:24px;--td-line-height-title-small:22px;--td-line-height-title-medium:24px;--td-line-height-title-large:28px;--td-line-height-headline-small:32px;--td-line-height-headline-medium:36px;--td-line-height-headline-large:44px;--td-line-height-display-medium:56px;--td-line-height-display-large:72px;--td-font-link-small:var(--td-font-size-link-small) /var(--td-line-height-link-small) var(--td-font-family);--td-font-link-medium:var(--td-font-size-link-medium) /var(--td-line-height-link-medium) var(--td-font-family);--td-font-link-large:var(--td-font-size-link-large) /var(--td-line-height-link-large) var(--td-font-family);--td-font-mark-small:600 var(--td-font-size-mark-small) /var(--td-line-height-mark-small) var(--td-font-family);--td-font-mark-medium:600 var(--td-font-size-mark-medium) /var(--td-line-height-mark-medium) var(--td-font-family);--td-font-body-small:var(--td-font-size-body-small) /var(--td-line-height-body-small) var(--td-font-family);--td-font-body-medium:var(--td-font-size-body-medium) /var(--td-line-height-body-medium) var(--td-font-family);--td-font-body-large:var(--td-font-size-body-large) /var(--td-line-height-body-large) var(--td-font-family);--td-font-title-small:600 var(--td-font-size-title-small) /var(--td-line-height-title-small) var(--td-font-family);--td-font-title-medium:600 var(--td-font-size-title-medium) /var(--td-line-height-title-medium) var(--td-font-family);--td-font-title-large:600 var(--td-font-size-title-large) /var(--td-line-height-title-large) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component)}.t-button--variant-base.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component)}.t-button--variant-base.t-is-disabled{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color)}.t-button--variant-base.t-button--theme-primary.t-is-disabled{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color)}.t-button--variant-base.t-button--theme-success.t-is-disabled{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color)}.t-button--variant-base.t-button--theme-warning.t-is-disabled{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color)}.t-button--variant-base.t-button--theme-danger.t-is-disabled{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button.t-is-disabled,.t-button.t-is-loading{cursor:not-allowed}.t-button.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding-left:calc(var(--td-comp-paddingLR-s) - 1px);padding-right:calc(var(--td-comp-paddingLR-s) - 1px)}.t-button.t-size-s .t-icon,.t-button.t-size-s .t-loading{font-size:var(--td-font-size-body-medium)}.t-button.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-left:calc(var(--td-comp-paddingLR-xl) - 1px);padding-right:calc(var(--td-comp-paddingLR-xl) - 1px)}.t-button.t-size-l .t-icon,.t-button.t-size-l .t-loading{font-size:var(--td-font-size-title-large)}.t-button--shape-square{padding:0;width:var(--td-comp-size-m)}.t-button--shape-square.t-size-s{padding:0;width:var(--td-comp-size-xs)}.t-button--shape-square.t-size-l{padding:0;width:var(--td-comp-size-xl)}.t-button--shape-round{border-radius:var(--td-radius-round)}.t-button--shape-round.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2)}.t-button--shape-round.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2)}.t-button--shape-circle{border-radius:calc(var(--td-comp-size-m)/2);padding:0;text-align:center;width:var(--td-comp-size-m)}.t-button--shape-circle .t-icon,.t-button--shape-circle .t-loading{font-size:var(--td-font-size-body-large)}.t-button--shape-circle.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2);width:var(--td-comp-size-xs)}.t-button--shape-circle.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2);padding:0;width:var(--td-comp-size-xl)}.t-button.t-size-full-width{display:flex;width:100%}.t-button--ghost{--ripple-color:var(--td-gray-color-10)}.t-button:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-container-active)}.t-button--variant-base:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-component-active)}.t-button--variant-base.t-button--theme-primary:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--theme-success:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-success-color-active)}.t-button--variant-base.t-button--theme-warning:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--theme-danger:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-error-color-active)}.t-icon{display:inline-block;height:1em;vertical-align:middle;width:1em}.t-icon:before{font-family:unset}.t-icon{fill:currentColor}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.t-link{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-link-medium);outline:none;padding:0;position:relative;text-decoration:none;transition:all .2s linear}.t-link .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-s)}.t-link .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-s)}.t-link.t-size-s{font:var(--td-font-link-small)}.t-link.t-size-s .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-xs)}.t-link.t-size-s .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-xs)}.t-link.t-size-l{font:var(--td-font-link-large)}.t-link.t-size-l .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-m)}.t-link.t-size-l .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-m)}.t-link--theme-default{color:var(--td-text-color-primary)}.t-link--theme-default:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-default.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-default.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-is-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-link--theme-default.t-is-disabled:active,.t-link--theme-default.t-is-disabled:hover{color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled.t-is-underline:after{border-color:var(--td-text-color-disabled)}.t-link--theme-primary{color:var(--td-brand-color)}.t-link--theme-primary:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-primary.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-primary.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-is-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled);cursor:not-allowed}.t-link--theme-primary.t-is-disabled:active,.t-link--theme-primary.t-is-disabled:hover{color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled.t-is-underline:after{border-color:var(--td-brand-color-disabled)}.t-link--theme-success{color:var(--td-success-color)}.t-link--theme-success:active{color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-success.t-link--hover-underline:active:after{border-color:var(--td-success-color-active);opacity:1}.t-link--theme-success.t-link--hover-color:hover{color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:active{color:var(--td-success-color-active)}.t-link--theme-success.t-is-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-is-disabled{cursor:not-allowed}.t-link--theme-success.t-is-disabled,.t-link--theme-success.t-is-disabled:active,.t-link--theme-success.t-is-disabled:hover{color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled.t-is-underline:after{border-color:var(--td-success-color-disabled)}.t-link--theme-danger{color:var(--td-error-color)}.t-link--theme-danger:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-danger.t-link--hover-underline:active:after{border-color:var(--td-error-color-active);opacity:1}.t-link--theme-danger.t-link--hover-color:hover{color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-is-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-is-disabled{cursor:not-allowed}.t-link--theme-danger.t-is-disabled,.t-link--theme-danger.t-is-disabled:active,.t-link--theme-danger.t-is-disabled:hover{color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled.t-is-underline:after{border-color:var(--td-error-color-disabled)}.t-link--theme-warning{color:var(--td-warning-color)}.t-link--theme-warning:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-warning.t-link--hover-underline:active:after{border-color:var(--td-warning-color-active);opacity:1}.t-link--theme-warning.t-link--hover-color:hover{color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-is-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-is-disabled{cursor:not-allowed}.t-link--theme-warning.t-is-disabled,.t-link--theme-warning.t-is-disabled:active,.t-link--theme-warning.t-is-disabled:hover{color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled.t-is-underline:after{border-color:var(--td-warning-color-disabled)}.t-row{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-flow:row wrap;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-row--start{justify-content:flex-start}.t-row--center{justify-content:center}.t-row--end{justify-content:flex-end}.t-row--space-between{justify-content:space-between}.t-row--space-around{justify-content:space-around}.t-row--top{align-items:flex-start}.t-row--middle{align-items:center}.t-row--bottom{align-items:flex-end}.t-row--align-start,.t-row--align-top{align-items:flex-start}.t-row--align-center,.t-row--align-middle{align-items:center}.t-row--align-bottom,.t-row--align-end{align-items:flex-end}.t-row--align-stretch{align-items:stretch}.t-row--align-baseline{align-items:baseline}.t-col{box-sizing:border-box;max-width:100%;min-height:1px;position:relative}.t-col-12{display:block;flex:0 0 100%;max-width:100%}.t-col-push-12{left:100%}.t-col-pull-12{right:100%}.t-col-offset-12{margin-left:100%}.t-col-order-12{order:12}.t-col-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-push-11{left:91.66666667%}.t-col-pull-11{right:91.66666667%}.t-col-offset-11{margin-left:91.66666667%}.t-col-order-11{order:11}.t-col-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-push-10{left:83.33333333%}.t-col-pull-10{right:83.33333333%}.t-col-offset-10{margin-left:83.33333333%}.t-col-order-10{order:10}.t-col-9{display:block;flex:0 0 75%;max-width:75%}.t-col-push-9{left:75%}.t-col-pull-9{right:75%}.t-col-offset-9{margin-left:75%}.t-col-order-9{order:9}.t-col-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-push-8{left:66.66666667%}.t-col-pull-8{right:66.66666667%}.t-col-offset-8{margin-left:66.66666667%}.t-col-order-8{order:8}.t-col-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-push-7{left:58.33333333%}.t-col-pull-7{right:58.33333333%}.t-col-offset-7{margin-left:58.33333333%}.t-col-order-7{order:7}.t-col-6{display:block;flex:0 0 50%;max-width:50%}.t-col-push-6{left:50%}.t-col-pull-6{right:50%}.t-col-offset-6{margin-left:50%}.t-col-order-6{order:6}.t-col-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-push-5{left:41.66666667%}.t-col-pull-5{right:41.66666667%}.t-col-offset-5{margin-left:41.66666667%}.t-col-order-5{order:5}.t-col-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-push-4{left:33.33333333%}.t-col-pull-4{right:33.33333333%}.t-col-offset-4{margin-left:33.33333333%}.t-col-order-4{order:4}.t-col-3{display:block;flex:0 0 25%;max-width:25%}.t-col-push-3{left:25%}.t-col-pull-3{right:25%}.t-col-offset-3{margin-left:25%}.t-col-order-3{order:3}.t-col-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-push-2{left:16.66666667%}.t-col-pull-2{right:16.66666667%}.t-col-offset-2{margin-left:16.66666667%}.t-col-order-2{order:2}.t-col-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-push-1{left:8.33333333%}.t-col-pull-1{right:8.33333333%}.t-col-offset-1{margin-left:8.33333333%}.t-col-order-1{order:1}.t-col-0{display:none}.t-col-offset-0{margin-left:0}.t-col-order-0{order:0}.t-col-xs-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xs-push-12{left:100%}.t-col-xs-pull-12{right:100%}.t-col-xs-offset-12{margin-left:100%}.t-col-xs-order-12{order:12}.t-col-xs-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xs-push-11{left:91.66666667%}.t-col-xs-pull-11{right:91.66666667%}.t-col-xs-offset-11{margin-left:91.66666667%}.t-col-xs-order-11{order:11}.t-col-xs-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xs-push-10{left:83.33333333%}.t-col-xs-pull-10{right:83.33333333%}.t-col-xs-offset-10{margin-left:83.33333333%}.t-col-xs-order-10{order:10}.t-col-xs-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xs-push-9{left:75%}.t-col-xs-pull-9{right:75%}.t-col-xs-offset-9{margin-left:75%}.t-col-xs-order-9{order:9}.t-col-xs-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xs-push-8{left:66.66666667%}.t-col-xs-pull-8{right:66.66666667%}.t-col-xs-offset-8{margin-left:66.66666667%}.t-col-xs-order-8{order:8}.t-col-xs-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xs-push-7{left:58.33333333%}.t-col-xs-pull-7{right:58.33333333%}.t-col-xs-offset-7{margin-left:58.33333333%}.t-col-xs-order-7{order:7}.t-col-xs-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xs-push-6{left:50%}.t-col-xs-pull-6{right:50%}.t-col-xs-offset-6{margin-left:50%}.t-col-xs-order-6{order:6}.t-col-xs-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xs-push-5{left:41.66666667%}.t-col-xs-pull-5{right:41.66666667%}.t-col-xs-offset-5{margin-left:41.66666667%}.t-col-xs-order-5{order:5}.t-col-xs-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xs-push-4{left:33.33333333%}.t-col-xs-pull-4{right:33.33333333%}.t-col-xs-offset-4{margin-left:33.33333333%}.t-col-xs-order-4{order:4}.t-col-xs-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xs-push-3{left:25%}.t-col-xs-pull-3{right:25%}.t-col-xs-offset-3{margin-left:25%}.t-col-xs-order-3{order:3}.t-col-xs-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xs-push-2{left:16.66666667%}.t-col-xs-pull-2{right:16.66666667%}.t-col-xs-offset-2{margin-left:16.66666667%}.t-col-xs-order-2{order:2}.t-col-xs-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xs-push-1{left:8.33333333%}.t-col-xs-pull-1{right:8.33333333%}.t-col-xs-offset-1{margin-left:8.33333333%}.t-col-xs-order-1{order:1}.t-col-xs-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xs-push-0{left:auto}.t-col-xs-pull-0{right:auto}.t-col-xs-offset-0{margin-left:0}.t-col-xs-order-0{order:0}@media (min-width:768px){.t-col-sm-12{display:block;flex:0 0 100%;max-width:100%}.t-col-sm-push-12{left:100%}.t-col-sm-pull-12{right:100%}.t-col-sm-offset-12{margin-left:100%}.t-col-sm-order-12{order:12}.t-col-sm-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-sm-push-11{left:91.66666667%}.t-col-sm-pull-11{right:91.66666667%}.t-col-sm-offset-11{margin-left:91.66666667%}.t-col-sm-order-11{order:11}.t-col-sm-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-sm-push-10{left:83.33333333%}.t-col-sm-pull-10{right:83.33333333%}.t-col-sm-offset-10{margin-left:83.33333333%}.t-col-sm-order-10{order:10}.t-col-sm-9{display:block;flex:0 0 75%;max-width:75%}.t-col-sm-push-9{left:75%}.t-col-sm-pull-9{right:75%}.t-col-sm-offset-9{margin-left:75%}.t-col-sm-order-9{order:9}.t-col-sm-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-sm-push-8{left:66.66666667%}.t-col-sm-pull-8{right:66.66666667%}.t-col-sm-offset-8{margin-left:66.66666667%}.t-col-sm-order-8{order:8}.t-col-sm-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-sm-push-7{left:58.33333333%}.t-col-sm-pull-7{right:58.33333333%}.t-col-sm-offset-7{margin-left:58.33333333%}.t-col-sm-order-7{order:7}.t-col-sm-6{display:block;flex:0 0 50%;max-width:50%}.t-col-sm-push-6{left:50%}.t-col-sm-pull-6{right:50%}.t-col-sm-offset-6{margin-left:50%}.t-col-sm-order-6{order:6}.t-col-sm-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-sm-push-5{left:41.66666667%}.t-col-sm-pull-5{right:41.66666667%}.t-col-sm-offset-5{margin-left:41.66666667%}.t-col-sm-order-5{order:5}.t-col-sm-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-sm-push-4{left:33.33333333%}.t-col-sm-pull-4{right:33.33333333%}.t-col-sm-offset-4{margin-left:33.33333333%}.t-col-sm-order-4{order:4}.t-col-sm-3{display:block;flex:0 0 25%;max-width:25%}.t-col-sm-push-3{left:25%}.t-col-sm-pull-3{right:25%}.t-col-sm-offset-3{margin-left:25%}.t-col-sm-order-3{order:3}.t-col-sm-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-sm-push-2{left:16.66666667%}.t-col-sm-pull-2{right:16.66666667%}.t-col-sm-offset-2{margin-left:16.66666667%}.t-col-sm-order-2{order:2}.t-col-sm-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-sm-push-1{left:8.33333333%}.t-col-sm-pull-1{right:8.33333333%}.t-col-sm-offset-1{margin-left:8.33333333%}.t-col-sm-order-1{order:1}.t-col-sm-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-sm-push-0{left:auto}.t-col-sm-pull-0{right:auto}.t-col-sm-offset-0{margin-left:0}.t-col-sm-order-0{order:0}}@media (min-width:992px){.t-col-md-12{display:block;flex:0 0 100%;max-width:100%}.t-col-md-push-12{left:100%}.t-col-md-pull-12{right:100%}.t-col-md-offset-12{margin-left:100%}.t-col-md-order-12{order:12}.t-col-md-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-md-push-11{left:91.66666667%}.t-col-md-pull-11{right:91.66666667%}.t-col-md-offset-11{margin-left:91.66666667%}.t-col-md-order-11{order:11}.t-col-md-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-md-push-10{left:83.33333333%}.t-col-md-pull-10{right:83.33333333%}.t-col-md-offset-10{margin-left:83.33333333%}.t-col-md-order-10{order:10}.t-col-md-9{display:block;flex:0 0 75%;max-width:75%}.t-col-md-push-9{left:75%}.t-col-md-pull-9{right:75%}.t-col-md-offset-9{margin-left:75%}.t-col-md-order-9{order:9}.t-col-md-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-md-push-8{left:66.66666667%}.t-col-md-pull-8{right:66.66666667%}.t-col-md-offset-8{margin-left:66.66666667%}.t-col-md-order-8{order:8}.t-col-md-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-md-push-7{left:58.33333333%}.t-col-md-pull-7{right:58.33333333%}.t-col-md-offset-7{margin-left:58.33333333%}.t-col-md-order-7{order:7}.t-col-md-6{display:block;flex:0 0 50%;max-width:50%}.t-col-md-push-6{left:50%}.t-col-md-pull-6{right:50%}.t-col-md-offset-6{margin-left:50%}.t-col-md-order-6{order:6}.t-col-md-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-md-push-5{left:41.66666667%}.t-col-md-pull-5{right:41.66666667%}.t-col-md-offset-5{margin-left:41.66666667%}.t-col-md-order-5{order:5}.t-col-md-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-md-push-4{left:33.33333333%}.t-col-md-pull-4{right:33.33333333%}.t-col-md-offset-4{margin-left:33.33333333%}.t-col-md-order-4{order:4}.t-col-md-3{display:block;flex:0 0 25%;max-width:25%}.t-col-md-push-3{left:25%}.t-col-md-pull-3{right:25%}.t-col-md-offset-3{margin-left:25%}.t-col-md-order-3{order:3}.t-col-md-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-md-push-2{left:16.66666667%}.t-col-md-pull-2{right:16.66666667%}.t-col-md-offset-2{margin-left:16.66666667%}.t-col-md-order-2{order:2}.t-col-md-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-md-push-1{left:8.33333333%}.t-col-md-pull-1{right:8.33333333%}.t-col-md-offset-1{margin-left:8.33333333%}.t-col-md-order-1{order:1}.t-col-md-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-md-push-0{left:auto}.t-col-md-pull-0{right:auto}.t-col-md-offset-0{margin-left:0}.t-col-md-order-0{order:0}}@media (min-width:1200px){.t-col-lg-12{display:block;flex:0 0 100%;max-width:100%}.t-col-lg-push-12{left:100%}.t-col-lg-pull-12{right:100%}.t-col-lg-offset-12{margin-left:100%}.t-col-lg-order-12{order:12}.t-col-lg-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-lg-push-11{left:91.66666667%}.t-col-lg-pull-11{right:91.66666667%}.t-col-lg-offset-11{margin-left:91.66666667%}.t-col-lg-order-11{order:11}.t-col-lg-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-lg-push-10{left:83.33333333%}.t-col-lg-pull-10{right:83.33333333%}.t-col-lg-offset-10{margin-left:83.33333333%}.t-col-lg-order-10{order:10}.t-col-lg-9{display:block;flex:0 0 75%;max-width:75%}.t-col-lg-push-9{left:75%}.t-col-lg-pull-9{right:75%}.t-col-lg-offset-9{margin-left:75%}.t-col-lg-order-9{order:9}.t-col-lg-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-lg-push-8{left:66.66666667%}.t-col-lg-pull-8{right:66.66666667%}.t-col-lg-offset-8{margin-left:66.66666667%}.t-col-lg-order-8{order:8}.t-col-lg-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-lg-push-7{left:58.33333333%}.t-col-lg-pull-7{right:58.33333333%}.t-col-lg-offset-7{margin-left:58.33333333%}.t-col-lg-order-7{order:7}.t-col-lg-6{display:block;flex:0 0 50%;max-width:50%}.t-col-lg-push-6{left:50%}.t-col-lg-pull-6{right:50%}.t-col-lg-offset-6{margin-left:50%}.t-col-lg-order-6{order:6}.t-col-lg-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-lg-push-5{left:41.66666667%}.t-col-lg-pull-5{right:41.66666667%}.t-col-lg-offset-5{margin-left:41.66666667%}.t-col-lg-order-5{order:5}.t-col-lg-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-lg-push-4{left:33.33333333%}.t-col-lg-pull-4{right:33.33333333%}.t-col-lg-offset-4{margin-left:33.33333333%}.t-col-lg-order-4{order:4}.t-col-lg-3{display:block;flex:0 0 25%;max-width:25%}.t-col-lg-push-3{left:25%}.t-col-lg-pull-3{right:25%}.t-col-lg-offset-3{margin-left:25%}.t-col-lg-order-3{order:3}.t-col-lg-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-lg-push-2{left:16.66666667%}.t-col-lg-pull-2{right:16.66666667%}.t-col-lg-offset-2{margin-left:16.66666667%}.t-col-lg-order-2{order:2}.t-col-lg-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-lg-push-1{left:8.33333333%}.t-col-lg-pull-1{right:8.33333333%}.t-col-lg-offset-1{margin-left:8.33333333%}.t-col-lg-order-1{order:1}.t-col-lg-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-lg-push-0{left:auto}.t-col-lg-pull-0{right:auto}.t-col-lg-offset-0{margin-left:0}.t-col-lg-order-0{order:0}}@media (min-width:1400px){.t-col-xl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xl-push-12{left:100%}.t-col-xl-pull-12{right:100%}.t-col-xl-offset-12{margin-left:100%}.t-col-xl-order-12{order:12}.t-col-xl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xl-push-11{left:91.66666667%}.t-col-xl-pull-11{right:91.66666667%}.t-col-xl-offset-11{margin-left:91.66666667%}.t-col-xl-order-11{order:11}.t-col-xl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xl-push-10{left:83.33333333%}.t-col-xl-pull-10{right:83.33333333%}.t-col-xl-offset-10{margin-left:83.33333333%}.t-col-xl-order-10{order:10}.t-col-xl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xl-push-9{left:75%}.t-col-xl-pull-9{right:75%}.t-col-xl-offset-9{margin-left:75%}.t-col-xl-order-9{order:9}.t-col-xl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xl-push-8{left:66.66666667%}.t-col-xl-pull-8{right:66.66666667%}.t-col-xl-offset-8{margin-left:66.66666667%}.t-col-xl-order-8{order:8}.t-col-xl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xl-push-7{left:58.33333333%}.t-col-xl-pull-7{right:58.33333333%}.t-col-xl-offset-7{margin-left:58.33333333%}.t-col-xl-order-7{order:7}.t-col-xl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xl-push-6{left:50%}.t-col-xl-pull-6{right:50%}.t-col-xl-offset-6{margin-left:50%}.t-col-xl-order-6{order:6}.t-col-xl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xl-push-5{left:41.66666667%}.t-col-xl-pull-5{right:41.66666667%}.t-col-xl-offset-5{margin-left:41.66666667%}.t-col-xl-order-5{order:5}.t-col-xl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xl-push-4{left:33.33333333%}.t-col-xl-pull-4{right:33.33333333%}.t-col-xl-offset-4{margin-left:33.33333333%}.t-col-xl-order-4{order:4}.t-col-xl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xl-push-3{left:25%}.t-col-xl-pull-3{right:25%}.t-col-xl-offset-3{margin-left:25%}.t-col-xl-order-3{order:3}.t-col-xl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xl-push-2{left:16.66666667%}.t-col-xl-pull-2{right:16.66666667%}.t-col-xl-offset-2{margin-left:16.66666667%}.t-col-xl-order-2{order:2}.t-col-xl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xl-push-1{left:8.33333333%}.t-col-xl-pull-1{right:8.33333333%}.t-col-xl-offset-1{margin-left:8.33333333%}.t-col-xl-order-1{order:1}.t-col-xl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xl-push-0{left:auto}.t-col-xl-pull-0{right:auto}.t-col-xl-offset-0{margin-left:0}.t-col-xl-order-0{order:0}}@media (min-width:1880px){.t-col-xxl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xxl-push-12{left:100%}.t-col-xxl-pull-12{right:100%}.t-col-xxl-offset-12{margin-left:100%}.t-col-xxl-order-12{order:12}.t-col-xxl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xxl-push-11{left:91.66666667%}.t-col-xxl-pull-11{right:91.66666667%}.t-col-xxl-offset-11{margin-left:91.66666667%}.t-col-xxl-order-11{order:11}.t-col-xxl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xxl-push-10{left:83.33333333%}.t-col-xxl-pull-10{right:83.33333333%}.t-col-xxl-offset-10{margin-left:83.33333333%}.t-col-xxl-order-10{order:10}.t-col-xxl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xxl-push-9{left:75%}.t-col-xxl-pull-9{right:75%}.t-col-xxl-offset-9{margin-left:75%}.t-col-xxl-order-9{order:9}.t-col-xxl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xxl-push-8{left:66.66666667%}.t-col-xxl-pull-8{right:66.66666667%}.t-col-xxl-offset-8{margin-left:66.66666667%}.t-col-xxl-order-8{order:8}.t-col-xxl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xxl-push-7{left:58.33333333%}.t-col-xxl-pull-7{right:58.33333333%}.t-col-xxl-offset-7{margin-left:58.33333333%}.t-col-xxl-order-7{order:7}.t-col-xxl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xxl-push-6{left:50%}.t-col-xxl-pull-6{right:50%}.t-col-xxl-offset-6{margin-left:50%}.t-col-xxl-order-6{order:6}.t-col-xxl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xxl-push-5{left:41.66666667%}.t-col-xxl-pull-5{right:41.66666667%}.t-col-xxl-offset-5{margin-left:41.66666667%}.t-col-xxl-order-5{order:5}.t-col-xxl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xxl-push-4{left:33.33333333%}.t-col-xxl-pull-4{right:33.33333333%}.t-col-xxl-offset-4{margin-left:33.33333333%}.t-col-xxl-order-4{order:4}.t-col-xxl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xxl-push-3{left:25%}.t-col-xxl-pull-3{right:25%}.t-col-xxl-offset-3{margin-left:25%}.t-col-xxl-order-3{order:3}.t-col-xxl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xxl-push-2{left:16.66666667%}.t-col-xxl-pull-2{right:16.66666667%}.t-col-xxl-offset-2{margin-left:16.66666667%}.t-col-xxl-order-2{order:2}.t-col-xxl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xxl-push-1{left:8.33333333%}.t-col-xxl-pull-1{right:8.33333333%}.t-col-xxl-offset-1{margin-left:8.33333333%}.t-col-xxl-order-1{order:1}.t-col-xxl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xxl-push-0{left:auto}.t-col-xxl-pull-0{right:auto}.t-col-xxl-offset-0{margin-left:0}.t-col-xxl-order-0{order:0}}.t-layout{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-layout,.t-layout__direction-vertical{background:var(--td-bg-color-page);display:flex;flex:auto;flex-direction:column}.t-layout--with-sider,.t-layout__direction-horizontal{flex-direction:row}.t-layout__header{background-color:var(--td-bg-color-container);height:var(--td-comp-size-xxxl)}.t-layout__content{flex:auto}.t-layout__sider{background:var(--td-bg-color-container);position:relative;transition:all .2s;width:232px}.t-layout__footer{color:var(--td-text-color-placeholder);padding:24px}.t-divider{border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;margin:var(--td-comp-margin-xxl) 0;padding:0}.t-divider--dashed{border-top-style:dashed}.t-divider--horizontal{display:flex;width:100%}.t-divider--vertical{border-left:1px solid var(--td-border-level-1-color);border-top:0;display:inline-block;height:.9em;margin:0 var(--td-comp-margin-m);vertical-align:middle}.t-divider--with-text{align-items:center;border-top:0;display:flex;white-space:nowrap}.t-divider--with-text .t-divider__inner-text:not(:empty){display:inline-block;padding:0 1em}.t-divider--with-text:after,.t-divider--with-text:before{border-top:1px solid var(--td-border-level-1-color);content:"";width:50%}.t-divider--with-text-left:before{width:5%}.t-divider--with-text-left:after,.t-divider--with-text-right:before{width:95%}.t-divider--with-text-right:after{width:5%}.t-divider--dashed:after,.t-divider--dashed:before{border-top:1px dashed var(--td-border-level-1-color)}.t-divider--vertical.t-divider--dashed{border-left:1px dashed var(--td-border-level-1-color)}.t-space{display:inline-flex}.t-space .t-space-item{width:inherit}.t-space-align-start{align-items:flex-start}.t-space-align-end{align-items:flex-end}.t-space-align-baseline{align-items:baseline}.t-space-align-center{align-items:center}.t-space-vertical{flex-direction:column}.t-space-vertical .t-space-item-separator{width:100%}.t-space.t-space--break-line{flex-wrap:wrap}.t-space.t-space--polyfill{display:flex}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-horizontal{margin-left:calc(var(--td-space-column-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-vertical{margin-top:calc(var(--td-space-row-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-horizontal>*{margin-left:var(--td-space-column-gap)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-vertical>*{margin-top:var(--td-space-row-gap)}.t-descriptions{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-descriptions__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);font-weight:600;margin-bottom:var(--td-comp-margin-m)}.t-descriptions__body{border-collapse:collapse;font:var(--td-font-body-medium);width:100%}.t-descriptions__body.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.t-descriptions__body .t-descriptions__label{color:var(--td-text-color-placeholder)}.t-descriptions__body--fixed{table-layout:fixed}.t-descriptions__body--border>tbody>tr>td{border:1px solid var(--td-component-border)}.t-descriptions__body--border .t-descriptions__label{background-color:var(--td-bg-color-secondarycontainer)}.t-descriptions__body--border .t-descriptions__label:hover{background-color:var(--td-bg-color-container-hover)}.t-affix{position:fixed;z-index:500}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;z-index:5500}.t-popup__content{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;word-break:break-all}.t-popup__arrow{height:8px;position:absolute;width:8px;z-index:1}.t-popup__arrow:before{background:var(--td-bg-color-container);content:"";height:8px;position:absolute;transform:rotate(45deg);width:8px}.t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=top] .t-popup__arrow:before{border-top-left-radius:100%;box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=top-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=top] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=top-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=bottom] .t-popup__arrow{top:-4px}.t-popup[data-popper-placement^=bottom] .t-popup__arrow:before{border-bottom-right-radius:100%;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right)}.t-popup[data-popper-placement=bottom-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=bottom] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=bottom-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=left] .t-popup__arrow{right:-4px}.t-popup[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-top)}.t-popup[data-popper-placement=left-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=left] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=left-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup[data-popper-placement^=right] .t-popup__arrow{left:-4px}.t-popup[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-right),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=right-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=right] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=right-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup--animation-enter,.t-popup--animation-enter-from,.t-popup--animation-exiting,.t-popup--animation-leave-to{opacity:0;visibility:hidden}.t-popup--animation-enter-to,.t-popup--animation-entering,.t-popup--animation-leave,.t-popup--animation-leave-from{opacity:1;transform:none;visibility:visible}.t-popup--animation-enter-active{transition:opacity .2s linear}.t-popup--animation-leave-active{transition:opacity .2s cubic-bezier(0,0,.15,1),visibility .2s cubic-bezier(.82,0,1,.9)}.t-popup--animation-expand-enter-active[data-popper-placement^=top]{animation:t-popup-animation-expand-in-top .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=top]{animation:t-popup-animation-expand-out-top .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-top{0%{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-top{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}}.t-popup--animation-expand-enter-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-in-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-out-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}}.t-anchor{--td-anchor-space-base:var(--td-size-6);background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:200px}.t-anchor .t-is-active>a{color:var(--td-brand-color)}.t-anchor__line{background-color:var(--td-component-stroke);cursor:pointer;height:100%;left:0;position:absolute;top:0;width:1px}.t-anchor__line-cursor-wrapper{display:block;height:0;opacity:0;position:absolute;transition:all .2s cubic-bezier(.24,.41,.51,.9)}.t-anchor__line-cursor-wrapper .t-anchor__line-cursor{background-color:var(--td-brand-color);height:100%;width:1px}.t-anchor__item{--level:1;display:flex;flex-direction:column;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingTB-l);padding-left:calc(var(--level)*var(--td-anchor-space-base))}.t-anchor__item.t-is-active{font-weight:500}.t-anchor__item-link{color:var(--td-text-color-primary);display:inline-block;overflow:hidden;position:relative;text-align:justify;text-decoration:none;word-break:break-all}.t-anchor a{transition:color .2s linear}.t-anchor a:hover{color:var(--td-brand-color);cursor:pointer}.t-anchor a:active{color:var(--td-brand-color-active)}.t-anchor.t-size-s{width:120px}.t-anchor.t-size-l{width:320px}.t-anchor__target{color:var(--td-text-color-primary);cursor:pointer;font:var(--td-font-body-medium)}@keyframes fadeOut{0%{opacity:1}to{display:none;opacity:0}}.t-anchor__target .t-anchor__copy{display:none;margin:0 0 0 var(--td-comp-margin-xs)}.t-anchor__target:hover .t-anchor__copy{display:inline-block}.t-anchor__target:target:after{animation:fadeOut 2s linear 2s 1;animation-fill-mode:forwards;background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";display:inline-block;height:6px;vertical-align:middle;width:6px}.t-tooltip .t-popup__content{border:0;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;margin-bottom:1px;max-width:480px;word-break:break-word;z-index:5600}.t-tooltip--default .t-popup__content{background:var(--td-gray-color-13);box-shadow:inset 0 .5px 0 var(--td-gray-color-9),inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9);color:var(--td-text-color-anti)}.t-tooltip--default[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:inset -.5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=top] .t-popup__arrow:before{box-shadow:inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=bottom] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--primary .t-popup__content{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-tooltip--success .t-popup__content{background:var(--td-success-color-light);color:var(--td-success-color)}.t-tooltip--danger .t-popup__content{background:var(--td-error-color-light);color:var(--td-error-color)}.t-tooltip--warning .t-popup__content{background:var(--td-warning-color-light);color:var(--td-warning-color)}.t-tooltip .t-popup__arrow{background:inherit;height:auto}.t-tooltip .t-popup__arrow:before{background:inherit}.t-tooltip--noshadow .t-popup__content,.t-tooltip--noshadow[data-popper-placement] .t-popup__arrow:before{box-shadow:none}@keyframes changeColor{0%{color:var(--td-brand-color-hover)}to{color:var(--td-brand-color-active)}}.t-breadcrumb{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-breadcrumb__separator{align-items:center;display:flex;margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__item,.t-breadcrumb__separator .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item{align-items:center;display:flex;text-decoration:none}.t-breadcrumb__item.t-is-current{color:var(--td-text-color-primary)}.t-breadcrumb__item.t-is-current .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item:last-child{color:var(--td-text-color-primary)}.t-breadcrumb__item:last-child .t-breadcrumb__separator{display:none}.t-breadcrumb__item .t-icon{font-size:var(--td-font-size-body-large)}.t-breadcrumb__item .t-link{color:inherit;text-decoration:none}.t-breadcrumb__item .t-link:hover{color:var(--td-brand-color)}.t-breadcrumb__item .t-is-disabled{cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner{color:var(--td-text-color-disabled)}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:hover{color:var(--td-text-color-disabled);cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:active{animation:none}.t-breadcrumb__item--arrow,.t-breadcrumb__item--slash{color:var(--td-text-color-placeholder);display:inline-block;line-height:0;margin:0 var(--td-comp-margin-xs);vertical-align:middle}.t-breadcrumb__inner{display:inline-block;font:var(--td-font-body-medium);vertical-align:middle;word-break:break-all}.t-breadcrumb__inner .t-icon{margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__select{position:relative}.t-breadcrumb__select:hover .t-breadcrumb__option{display:block}.t-breadcrumb__select-item:hover .t-icon{color:var(--td-brand-color)}.t-breadcrumb__option{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);display:none;left:50%;max-width:120px;position:absolute;top:28px;transform:translateX(-50%);z-index:20}.t-breadcrumb__option-item{color:var(--td-text-color-primary);font:var(--td-font-body-medium);overflow:hidden;padding:8px;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb__option-item.t-is-active,.t-breadcrumb__option-item:hover{color:var(--td-brand-color)}.t-breadcrumb__inner-msg{background:var(--td-bg-color-container);border-radius:calc(var(--td-radius-default)*.5);bottom:30px;box-shadow:var(--td-shadow-2);color:var(--td-text-color-primary);display:none;left:50%;padding:8px;position:absolute;transform:translateX(-50%);width:300px;z-index:20}.t-breadcrumb__inner-msg:before{border-color:var(--td-bg-color-container) transparent transparent transparent;border-style:solid;border-width:8px 6px 0;bottom:-8px;content:"";height:0;left:50%;margin-left:-4px;position:absolute;width:0;z-index:20}.t-breadcrumb--text-overflow{align-items:center;display:flex;position:relative}.t-breadcrumb--text-overflow:hover .t-breadcrumb__inner-msg{display:block}.t-breadcrumb--text-overflow .t-breadcrumb__inner{align-items:center;display:flex;max-width:120px;transition:color .2s linear}.t-breadcrumb--text-overflow .t-breadcrumb__inner-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb--text-overflow .t-breadcrumb__inner:hover{color:var(--td-brand-color);cursor:pointer}.t-breadcrumb--text-overflow .t-breadcrumb__inner:active{animation:changeColor .2s linear}.t-dropdown{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-2);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);font-size:var(--td-font-size-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-dropdown,.t-dropdown__menu{border-radius:var(--td-radius-medium)}.t-dropdown__menu{display:flex;flex-direction:column;gap:2px;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-dropdown__menu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__menu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__menu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__menu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__menu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__menu .t-divider{color:var(--td-brand-color-light);margin:var(--td-comp-margin-xs) var(--td-comp-margin-s) var(--td-comp-margin-xxs) var(--td-comp-margin-s);width:calc(100% - var(--td-comp-margin-s)*2)}.t-dropdown__menu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--right{left:calc(100% - 14px)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--left{right:calc(100% - 14px)}.t-dropdown__submenu{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);display:none;overflow-x:visible;overflow-y:auto;padding:var(--td-pop-padding-m);position:absolute;z-index:1100}@-moz-document url-prefix(){.t-dropdown__submenu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__submenu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__submenu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__submenu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__submenu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__submenu ul{display:grid;gap:2px;list-style:none;padding-left:0}.t-dropdown__submenu--disabled{visibility:hidden}.t-dropdown__submenu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__submenu-wrapper--right{left:calc(100% - 6px)}.t-dropdown__submenu-wrapper--left{right:calc(100% - 6px)}.t-dropdown__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:flex;font:var(--td-font-body-medium);outline:none;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.82,0,1,.9);user-select:none;white-space:nowrap}.t-dropdown__item-icon{color:currentcolor;display:flex;font-size:var(--td-font-size-body-large);margin-right:var(--td-comp-margin-s)}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{align-items:center;display:flex;flex:1;justify-content:space-between;max-width:100%}.t-dropdown__item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentcolor;flex-shrink:0;font-size:var(--td-font-size-body-large)}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:hidden;padding:0}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{overflow:hidden;position:relative;user-select:none}.t-tabs__operations{background-color:var(--td-bg-color-container);border-bottom:1px solid var(--td-component-stroke);display:flex;flex-direction:row;position:absolute}.t-tabs__operations--left{left:0;z-index:2}.t-tabs__operations--right{right:0;z-index:2}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__operations--right .t-tabs__nav-action{align-items:center;display:flex;flex:1;width:100%}.t-tabs__btn{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-large);height:100%;justify-content:center;opacity:1;transition:all .24s cubic-bezier(.38,0,.24,1);width:40px;z-index:1}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translateX(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translateX(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{bottom:0;top:auto}.t-tabs__nav-container.t-is-bottom:after,.t-tabs__nav-container.t-is-top:after{background-color:var(--td-component-stroke);content:"";height:1px;left:0;position:absolute;right:auto;width:100%}.t-tabs__nav-container.t-is-bottom:after{bottom:auto;top:0}.t-tabs__nav-container.t-is-left:after{left:auto;right:0}.t-tabs__nav-container.t-is-left:after,.t-tabs__nav-container.t-is-right:after{background-color:var(--td-component-stroke);bottom:auto;content:"";height:100%;position:absolute;top:0;width:1px}.t-tabs__nav-container.t-is-right:after{left:0;right:auto}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{background-color:transparent;content:""}.t-tabs__scroll-btn{background-color:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:block;font:var(--td-font-body-large);height:100%;position:absolute;text-align:center;width:40px;z-index:1}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap;z-index:1}.t-tabs__nav-wrap{display:flex;font-size:0;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);border-radius:var(--td-radius-small);position:absolute;transition:all .24s cubic-bezier(.38,0,.24,1);z-index:1}.t-tabs__bar.t-is-top{bottom:0;height:3px;left:0}.t-tabs__bar.t-is-bottom{height:3px;left:0;top:0}.t-tabs__bar.t-is-left{right:0;top:0;width:3px}.t-tabs__bar.t-is-right{left:0;top:0;width:3px}.t-tabs__nav-item{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font:var(--td-font-body-medium);overflow:hidden;position:relative;z-index:0}.t-tabs__nav-item,.t-tabs__nav-item-wrapper{--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav-item-wrapper{border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s)}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px currentcolor}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-icon+.t-menu__content,.t-icon+.t-menu__item-link{margin-left:var(--td-comp-margin-s)}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--suffix>.t-input__suffix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--suffix>.t-input__suffix-icon{font-size:var(--td-font-size-body-large)}.t-input .t-input__suffix-clear{cursor:pointer}.t-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs)}.t-input .t-input__prefix>.t-icon,.t-input .t-input__suffix>.t-icon{font-size:inherit}.t-input .t-input__prefix>.t-icon{color:var(--td-text-color-placeholder);font-size:16px}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon{padding:0 calc(var(--td-comp-paddingLR-s) + 14px) 0 var(--td-comp-paddingLR-s)}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--required-right label:after{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-left:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%)}.t-slider__mark-text:first-child{transform:translateX(0)}.t-slider__mark-text:last-child{transform:translateX(-100%)}.t-slider--vertical{display:flex;height:100%;justify-content:center;padding:0;position:relative}.t-slider--vertical .t-slider__rail{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__track{top:auto;width:var(--td-size-2)}.t-slider--vertical .t-slider__step{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__handle{margin-left:-5px;margin-top:-6px;top:auto;transform:translateY(50%)}.t-slider--vertical .t-slider__mark{height:100%;left:12px;top:0;width:18px}.t-slider--vertical .t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:1px;left:4px;width:var(--td-size-2)}.t-slider--vertical .t-slider__mark-text{margin-left:var(--td-comp-margin-xxs);margin-top:0;transform:translateY(-50%)}.t-slider--vertical .t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;left:50%;line-height:normal;outline:none;position:absolute;text-align:center;top:auto;transform:translate(-50%,50%);user-select:none;z-index:2}.t-is-disabled{cursor:not-allowed}.t-is-disabled .t-slider__track{background-color:var(--td-brand-color-disabled)}.t-is-disabled .t-slider__rail{background-color:var(--td-bg-color-component-disabled)}.t-is-disabled .t-slider__handle{border:2px solid var(--td-brand-color-disabled)}.t-is-disabled .t-slider__button{border-color:var(--td-brand-color-disabled);outline:none}.t-is-disabled .t-slider__mark-text{color:var(--td-text-color-disabled);cursor:not-allowed}.t-is-disabled .t-slider__button-wrapper{cursor:not-allowed}.t-switch{align-items:center;background-color:var(--td-bg-color-secondarycomponent);border:0;border-radius:var(--td-radius-round);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);list-style:none;margin:0;min-width:calc(var(--td-comp-size-xxs)/.618);outline:none;padding:0;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);user-select:none;vertical-align:middle}.t-switch:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-switch__handle{align-items:center;border-radius:var(--td-radius-round);box-shadow:var(--td-shadow-1);display:flex;height:calc(var(--td-comp-size-xxs) - 8px);justify-content:center;left:4px;position:absolute;top:4px;transition:all .2s cubic-bezier(.38,0,.24,1);width:calc(var(--td-comp-size-xxs) - 8px)}.t-switch__handle .t-icon{color:transparent;font-size:calc(var(--td-comp-size-xxs) - 4px)}.t-switch__handle:before{background-color:#fff;border-radius:var(--td-radius-round);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-6px}.t-switch:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-6px;right:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__content{opacity:0}.t-switch__content{align-items:center;box-sizing:border-box;color:var(--td-text-color-anti);display:inline-flex;font-size:var(--td-font-size-body-small);min-width:calc(var(--td-comp-size-xxs)/.618);padding:0 var(--td-comp-margin-xs) 0 calc(var(--td-comp-size-xxs)/.618/2 + 2px);transition:padding .2s cubic-bezier(.38,0,.24,1),opacity .2s linear}.t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-is-checked{background-color:var(--td-brand-color)}.t-switch.t-is-checked:hover{background-color:var(--td-brand-color-hover)}.t-switch.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxs) - 5px);left:calc(100% - 2.5px);top:2.5px;transform:translate(-100%);width:calc(var(--td-comp-size-xxs) - 5px)}.t-switch.t-is-checked .t-switch__content{color:var(--td-text-color-anti);padding:0 calc(var(--td-comp-size-xxs)/.618/2 + 2px) 0 var(--td-comp-margin-xs)}.t-switch.t-is-loading{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-loading .t-loading{display:inline-flex}.t-switch.t-is-loading .t-switch__handle .t-icon{color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading.t-is-checked{background-color:var(--td-brand-color-focus)}.t-switch.t-is-loading.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-focus)}.t-switch.t-is-disabled{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-disabled .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked{background-color:var(--td-brand-color-disabled)}.t-switch.t-is-disabled.t-is-checked .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-disabled)}.t-switch.t-size-l{border-radius:var(--td-radius-round);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:calc(var(--td-comp-size-xs)/.618)}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-8px}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-8px;right:0}.t-switch.t-size-l .t-switch__handle{height:calc(var(--td-comp-size-xs) - 10px);left:5px;top:5px;width:calc(var(--td-comp-size-xs) - 10px)}.t-switch.t-size-l .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xs) - 4px)}.t-switch.t-size-l .t-switch__content{min-width:calc(var(--td-comp-size-xs)/.618);padding:0 var(--td-comp-margin-s) 0 calc(var(--td-comp-size-xs)/.618/2 + 4px)}.t-switch.t-size-l .t-switch__content,.t-switch.t-size-l .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-l.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xs) - 6px);left:calc(100% - 3px);top:3px;width:calc(var(--td-comp-size-xs) - 6px)}.t-switch.t-size-l.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xs)/.618/2 + 4px) 0 var(--td-comp-margin-s)}.t-switch.t-size-s{border-radius:var(--td-radius-round);height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:calc(var(--td-comp-size-xxxs)/.618)}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-4px}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-4px;right:0}.t-switch.t-size-s .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 6px);left:3px;top:3px;width:calc(var(--td-comp-size-xxxs) - 6px)}.t-switch.t-size-s .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s .t-switch__content{font-size:9px;min-width:calc(var(--td-comp-size-xxxs)/.618);padding:0 var(--td-comp-margin-xxs) 0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px)}.t-switch.t-size-s .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-s.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 4px);left:calc(100% - 2px);top:2px;width:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px) 0 var(--td-comp-margin-xxs)}.t-textarea{list-style:none;margin:0;padding:0;position:relative}.t-textarea,.t-textarea__inner{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);width:100%}.t-textarea__inner{background-color:var(--td-bg-color-specialcomponent);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-xxxl);outline:none;padding:calc(var(--td-comp-size-m)/2 - var(--td-line-height-body-medium)/2) var(--td-comp-paddingLR-s);resize:vertical;transition:all .2s cubic-bezier(.38,0,.24,1),height 0s}.t-textarea__inner:focus,.t-textarea__inner:hover{border-color:var(--td-brand-color)}.t-textarea__inner:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-textarea__inner::placeholder{color:var(--td-text-color-placeholder)}.t-textarea__inner.t-is-success{border-color:var(--td-success-color)}.t-textarea__inner.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-textarea__inner.t-is-warning{border-color:var(--td-warning-color)}.t-textarea__inner.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-textarea__inner.t-is-error{border-color:var(--td-error-color)}.t-textarea__inner.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-textarea__info_wrapper{column-gap:var(--td-comp-margin-s);display:flex;justify-content:space-between}.t-textarea__info_wrapper_align{justify-content:end}.t-textarea__limit{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-textarea .t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-textarea .t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-textarea .t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-textarea .t-resize-none{resize:none}.t-textarea__tips{display:inline-block;font:var(--td-font-body-small);height:auto;min-height:var(--td-comp-size-xs)}.t-textarea__tips--normal{color:var(--td-text-color-placeholder)}.t-textarea__tips--success{color:var(--td-success-color)}.t-textarea__tips--warning{color:var(--td-warning-color)}.t-textarea__tips--error{color:var(--td-error-color)}.t-transfer{align-items:stretch;background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:row;font:var(--td-font-body-medium);list-style:none;margin:0;max-height:100%;padding:0;position:relative}.t-transfer__list{border:0;display:inline-block;height:200px;min-width:200px;padding-top:var(--td-comp-size-xxl);position:relative;vertical-align:middle;word-break:break-word}.t-transfer__list-source,.t-transfer__list-target{border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-medium)}.t-transfer__list-header{box-sizing:border-box;display:flex;height:var(--td-comp-size-xxl);justify-content:space-between;line-height:var(--td-comp-size-xxl);margin:0 var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:calc(200px - var(--td-comp-margin-s)*2)}.t-transfer__list-header+:not(.t-transfer__list--with-search){border-top:1px solid var(--td-border-level-1-color)}.t-transfer__list-header .t-checkbox{margin-right:0}.t-transfer__list-header .t-checkbox__label{margin:0}.t-transfer__list-header div{display:flex}.t-transfer__list-header div>span{margin-left:var(--td-comp-margin-s)}.t-transfer__list-header>span{color:var(--td-text-color-placeholder)}.t-transfer__list-body{box-sizing:border-box;height:100%;position:relative}.t-transfer__list--with-search{border-top:0;padding-top:var(--td-comp-size-m)}.t-transfer__list-content{height:100%;overflow:auto;width:100%}.t-transfer__list-content .t-checkbox-group{flex-direction:column;gap:var(--td-comp-margin-xs);margin:var(--td-comp-margin-s) 0;width:100%}.t-transfer__list-content .t-checkbox-group .t-checkbox{--ripple-color:var(--td-bg-color-container-active);margin-right:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox+.t-checkbox{margin-left:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox__label{flex:1;margin:0}.t-transfer__list-content .t-checkbox-group .t-checkbox__label>span{display:inline-block;margin-left:var(--td-comp-margin-s)}.t-transfer__list .t-transfer__list-item{border-radius:var(--td-radius-default);cursor:pointer;display:flex;margin:0 var(--td-comp-margin-s);padding:var(--td-comp-paddingLR-xs) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list .t-transfer__list-item:first-child{margin-top:0}.t-transfer__list .t-transfer__list-item.t-is-disabled:hover{background:transparent}.t-transfer__list-item:hover{background:var(--td-bg-color-container-hover);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list-item.t-is-checked{background:var(--td-brand-color-light)}.t-transfer__list-wrapper{height:100%;overflow:auto;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative;width:100%}.t-transfer__list-pagination{height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-m);vertical-align:middle}.t-transfer__list-footer{border-top:1px solid var(--td-border-level-1-color);bottom:0;left:0;position:absolute;width:100%}.t-transfer__operations{display:inline-flex;flex-direction:column;gap:var(--td-comp-margin-l);margin:auto var(--td-comp-margin-s);overflow:hidden;vertical-align:middle}.t-transfer__operations .t-icon{font-size:var(--td-comp-size-xxxs)}.t-transfer__operations .t-icon+.t-button__text{margin-left:0}.t-transfer__empty{color:var(--td-text-color-placeholder);left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.t-transfer__search-wrapper{box-sizing:border-box;padding:0 var(--td-comp-margin-s);position:absolute;top:0;width:100%}.t-transfer__search .t-transfer__list{height:240px}.t-transfer--with-tree .t-transfer__list{height:auto}.t-transfer--with-tree .t-transfer__list .t-tree{margin:var(--td-comp-margin-s) 0;padding:0 var(--td-comp-paddingLR-m)}.t-transfer__pagination .t-transfer__list{height:240px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2)}.t-transfer__footer .t-transfer__list{height:248px;padding-bottom:48px}.t-transfer__pagination.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2 + 48px)}.t-transfer__search.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:48px}.t-transfer__search.t-transfer__pagination .t-transfer__list{height:280px;padding-bottom:48px}.t-transfer__search.t-transfer__footer.t-transfer__pagination .t-transfer__list{height:328px;padding-bottom:88px}.t-transfer__wrapper .t-transfer__list{height:320px;overflow:scroll;width:206px}.flex-center{align-items:center;display:flex;justify-content:center}.t-time-picker,.t-time-range-picker{background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:240px}.t-time-picker.t-is-disabled,.t-time-range-picker.t-is-disabled{cursor:not-allowed}.t-time-picker>:active,.t-time-picker>:focus,.t-time-range-picker>:active,.t-time-range-picker>:focus{outline:0}.t-time-picker__group,.t-time-range-picker__group{position:relative}.t-time-picker__group.active,.t-time-range-picker__group.active{border:1px solid var(--td-brand-color);box-shadow:0 0 2px 2px var(--td-brand-color-focus)}.t-time-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear,.t-time-range-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear{display:block}.t-time-picker__group-text,.t-time-range-picker__group-text{color:var(--td-text-color-primary)}.t-time-picker__group input,.t-time-range-picker__group input{cursor:pointer}.t-time-range-picker{width:auto}.t-time-picker__panel{--timePickerPanelOffsetTop:15;--timePickerPanelOffsetBottom:21;background:transparent;border-radius:var(--td-radius-default);display:inline-block;font:var(--td-font-body-medium);position:relative;width:280px}.t-time-picker__panel-body{align-items:center;display:flex;height:calc(var(--td-comp-size-xs)*7 + var(--td-size-3)*7 + var(--td-size-3));justify-content:center;position:relative;user-select:none;width:100%}.t-time-picker__panel-body-active-mask{display:flex;height:var(--td-comp-size-xs);position:absolute;top:50%;width:100%}.t-time-picker__panel-body-active-mask>div{background-color:var(--td-brand-color-light);border-radius:var(--td-radius-default);flex:1;height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);transform:translateY(calc(0px - var(--td-comp-size-xs)/2 - var(--td-size-3)/2))}.t-time-picker__panel-body-scroll{flex:1;height:100%;list-style:none;margin:0;overflow-y:scroll;padding:0;position:relative;text-align:center}.t-time-picker__panel-body-scroll::-webkit-scrollbar{width:0}.t-time-picker__panel-body-scroll:after,.t-time-picker__panel-body-scroll:before{content:"";display:block;height:50%}.t-time-picker__panel-body-scroll:before{height:calc(50% - var(--timePickerPanelOffsetTop, 0)*1px)}.t-time-picker__panel-body-scroll:after{height:calc(50% - var(--timePickerPanelOffsetBottom, 0)*1px)}.t-time-picker__panel-body-scroll:last-child{border-right:0}.t-time-picker__panel-body-scroll-item{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font:var(--td-font-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);text-align:center;transition:.2s linear}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):hover{color:var(--td-text-color-primary)}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):active{background-color:var(--td-bg-color-container-hover)}.t-time-picker__panel-body-scroll-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-time-picker__panel-body-scroll-item.t-is-hidden{cursor:not-allowed;display:none}.t-time-picker__panel-body-scroll-item.t-is-current{color:var(--td-brand-color)}.t-time-picker__panel-section-body{padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-time-picker__panel-section-footer{align-items:center;background-color:transparent;border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;width:100%}.t-tree{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-tree.t-is-disabled,.t-tree.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item.t-is-active{background-color:var(--td-bg-color-container-hover);color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__empty{color:var(--td-text-color-disabled)}.t-tree__branch{display:block}.t-tree__item{--level:0;--hscale:2;align-items:center;backface-visibility:hidden;cursor:default;display:flex;flex-wrap:nowrap;padding:0 0 0 calc(var(--td-comp-margin-xxl)*var(--level));perspective:1000;position:relative;transform:translateZ(0);will-change:opacity,max-height}.t-tree__item .t-icon,.t-tree__item .t-loading{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 2px);position:relative;z-index:2}.t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__item .t-checkbox{align-items:center;font-size:0}.t-tree__item .t-checkbox__input{flex-shrink:0}.t-tree__item .t-checkbox__label{overflow:hidden;text-overflow:ellipsis}.t-tree__item .t-tree__icon--default .t-icon{transform:rotate(0)}.t-tree__item--open .t-icon{color:var(--td-text-color-brand)}.t-tree__item--open .t-tree__icon--default .t-icon{transform:rotate(90deg)}.t-tree__item--clickable{cursor:pointer}.t-tree__item--locked{color:var(--td-text-color-disabled)}.t-tree__item--matched{color:inherit}.t-tree__item--draggable{cursor:pointer}.t-tree__item--draggable:hover{background-clip:content-box;background-color:var(--td-bg-color-container-hover)}.t-tree__item--draggable:after{background-clip:content-box;border-radius:1px;content:"";display:block;height:2px;left:0;padding:inherit;position:absolute;right:0;top:-1px}.t-tree__item--tip-bottom:after,.t-tree__item--tip-top:after{background-color:var(--td-brand-color)}.t-tree__item--tip-bottom:after{bottom:-1px;top:unset}.t-tree__item--tip-highlight{background-clip:content-box;background-color:var(--td-brand-color-light)}.t-tree__item:before{content:"";display:block;flex:0 0 auto;height:calc(var(--td-comp-size-m) + 2px);width:0}.t-tree--block-node .t-tree__label{flex:1}.t-tree--hoverable .t-tree__label:not(.t-is-active):not(.t-is-checked):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__line{--level:0;--color:var(--td-border-level-1-color);--space:var(--td-comp-margin-xxl);--iconSize:16px;bottom:var(--td-comp-margin-l);left:calc(var(--td-comp-margin-xxl)*var(--level) - var(--td-comp-margin-l));pointer-events:none;width:1px}.t-tree__line,.t-tree__line:before{height:calc(var(--td-comp-size-m) + 2px);position:absolute}.t-tree__line:before{border-bottom:1px solid var(--color);border-left:1px solid var(--color);bottom:0;content:"";display:block;left:0;width:var(--td-comp-margin-m)}.t-tree__line--first:before{height:var(--td-line-height-body-medium)}.t-tree__line--leaf:before{width:var(--td-comp-margin-m)}.t-tree__icon{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:0;position:relative;text-align:center;user-select:none;width:calc(var(--td-font-size-body-medium) + 2px)}.t-tree__icon:after{border-radius:var(--td-radius-default);content:"";display:block;height:calc(var(--td-font-size-body-medium) + 6px);left:-2px;position:absolute;top:-2px;width:calc(var(--td-font-size-body-medium) + 6px)}.t-tree__icon:not(:empty):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__icon:empty{cursor:auto}.t-tree__label{--ripple-color:var(--td-bg-color-container-active);word-wrap:normal;border-radius:var(--td-radius-default);cursor:pointer;flex:1;flex-wrap:nowrap;margin-left:var(--td-comp-margin-xs);overflow:hidden;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xs);text-overflow:ellipsis;white-space:nowrap}.t-tree__label.t-is-checked{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__label::selection{background-color:transparent}.t-is-active .t-tree__label{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__space{display:block;flex:1 0 auto}.t-tree__operations{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto}.t-tree__operations .t-icon{cursor:pointer}.t-tree__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:default}.t-tree__item.t-is-disabled .t-checkbox{cursor:default}.t-tree__item--hidden{display:none}.t-tree--transition .t-tree__label{transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon{transition:color,transform .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon:after,.t-tree--transition .t-tree__icon:not(:empty):hover{transition:.2s linear}.t-tree--transition .t-tree__icon--default .t-icon{transition:color,transform .2s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__item--visible{display:flex;max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1;transition:opacity .15s linear .15s,max-height .15s linear 0s}.t-tree--transition .t-tree__item--hidden{animation:initial;display:flex;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .15s linear 0s,max-height .15s linear .15s;user-select:none}.t-tree--transition .t-tree__item--enter-active{animation:t-tree-toggle .3s linear}.t-tree--transition .t-tree__item--leave-active{animation:t-tree-toggle .3s linear reverse forwards}.t-tree__lazyload,.t-tree__vscroll{overflow-y:auto}.t-tree__vscroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-tree--scrolling .t-tree__item{will-change:auto}.t-tree--scrolling .t-tree__item--enter,.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--hidden,.t-tree--scrolling .t-tree__item--leave,.t-tree--scrolling .t-tree__item--leave-active .t-tree__item--leave-to,.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .v-enter,.t-tree--scrolling .v-leave{animation:none;transition:none}.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--visible{max-height:none}.t-tree--scrolling .t-tree__item--leave-active,.t-tree--scrolling .t-tree__item--leave-to{max-height:0}@keyframes t-tree-toggle{0%{max-height:0;opacity:0}50%{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:0}to{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1}}.t-tree-select{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tree-select--without-input input{display:none}.t-tree-select--without-input .t-input__suffix-icon{margin-left:auto}.t-tree-select .t-fake-arrow{color:var(--td-text-color-placeholder);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tree-select .t-fake-arrow--highlight{color:var(--td-text-color-brand)}.t-tree-select .t-fake-arrow--disable{color:var(--td-text-color-disabled)}.t-tree-select--placeholder{color:var(--td-text-color-placeholder)}.t-tree-select.t-single-suffix{padding-right:20px}.t-tree-select.t-tag-prefix{padding-left:4px}.t-tree-select-popup .t-popup__content{max-height:300px;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-tree-select-popup .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tree-select-popup .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-color-picker__panel{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);padding:0;user-select:none;width:256px}.t-popup__content .t-color-picker__panel{background:transparent;box-shadow:unset}.t-color-picker{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-color-picker.t-popup__content{box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-color-picker__icon{align-items:center;background:transparent;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font-size:var(--td-comp-size-xxxs);justify-content:center;transition:.2s linear}.t-color-picker__icon:hover{background:var(--td-bg-color-container-hover);transition:.2s linear}.t-color-picker__icon.t-is-disabled{color:var(--td-text-color-disabled);pointer-events:none}.t-color-picker__head{align-items:center;display:flex;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;z-index:2}.t-color-picker__head .t-color-picker__close{flex-shrink:0}.t-color-picker__head+.t-color-picker__body{padding-top:0}.t-color-picker__body{padding:var(--td-pop-padding-xl);padding-bottom:calc(var(--td-pop-padding-xl) - 4px)}.t-color-picker__thumb{background:var(--td-text-color-anti);border-color:currentcolor;border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;color:var(--td-text-color-brand);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));outline:none;padding:2px;position:absolute;width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));z-index:1}.t-color-picker__thumb:before{background:currentcolor;border-radius:var(--td-radius-circle);content:"";display:block;height:100%;width:100%}.t-color-picker__saturation{background:transparent;border-radius:var(--td-radius-default);height:160px;overflow:hidden;position:relative}.t-color-picker__saturation:after,.t-color-picker__saturation:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.t-color-picker__saturation:before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation:after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{border-radius:var(--td-radius-circle);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));transform:translate(-50%,-50%);width:calc(var(--td-comp-size-xxxs) + var(--td-size-1))}.t-color-picker__slider-wrapper{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2);position:relative}.t-color-picker__slider-wrapper--hue-type{background:red}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__slider-padding{border-radius:4px;height:8px;left:0;position:absolute;top:0;width:100%}.t-color-picker__slider{border-radius:4px;color:transparent;cursor:pointer;height:8px;outline:none;position:relative;z-index:1}.t-color-picker__slider .t-color-picker__thumb{top:50%;transform:translate(calc(var(--td-comp-size-xxxs)*-.5 + var(--td-size-1)*-.5),-50%)}.t-color-picker__slider .t-color-picker__rail{border-radius:inherit;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.t-color-picker__alpha,.t-color-picker__format{margin:var(--td-comp-margin-m) 0 0 0}.t-color-picker__hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.t-color-picker__alpha .t-color-picker__rail{background:linear-gradient(90deg,transparent,currentcolor)}.t-color-picker__sliders-wrapper{align-items:center;display:flex;margin:var(--td-comp-margin-m) 0}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px;border-radius:var(--td-radius-default);flex-shrink:0;height:var(--td-comp-size-s);margin-left:var(--td-comp-margin-m);overflow:hidden;width:var(--td-comp-size-s)}.t-color-picker__sliders-preview-inner{display:block;height:100%;width:100%}.t-color-picker__gradient{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-m);padding:0}.t-color-picker__gradient-slider{flex:1}.t-color-picker__gradient-degree{flex-shrink:0;margin-left:var(--td-comp-margin-m);position:relative;width:var(--td-comp-size-xxl)}.t-color-picker__gradient-degree .t-input{font:var(--td-font-body-small);margin:0}.t-color-picker__gradient-degree .t-input-number{padding:0;width:100%}.t-color-picker__gradient .gradient-thumbs{border-radius:inherit;cursor:pointer;height:100%;left:0;list-style:none;margin:0;padding:0;position:absolute;top:0;width:100%}.t-color-picker__gradient .gradient-thumbs__item{cursor:pointer;left:0;top:50%;transform:translate(-50%,-50%);z-index:0}.t-color-picker__gradient .gradient-thumbs__item:before{display:none}.t-color-picker__gradient .gradient-thumbs__item.t-is-active{outline:2px solid var(--td-component-border);z-index:1}.t-color-picker__gradient .gradient-thumbs__item-inner{border-radius:var(--td-radius-circle);display:block;height:100%;overflow:hidden;width:100%}.t-color-picker__gradient .gradient-thumbs__item-inner:before{background-color:currentcolor;content:"";display:block;height:100%;width:100%}.t-color-picker__format{align-items:center;display:flex;justify-content:space-between}.t-color-picker__format--item:first-child{flex-shrink:0}.t-color-picker__format--item:last-child{flex:1}.t-color-picker__format--item .t-input.t-size-m,.t-color-picker__format--item .t-size-m{font:var(--td-font-body-small)}.t-color-picker__format--item .t-input-number .t-input{margin:0}.t-color-picker__format--item .input-group{align-items:center;display:flex;justify-content:space-around;margin-left:var(--td-comp-margin-s)}.t-color-picker__format--item .input-group__item{flex:1;margin-left:-1px;width:0}.t-color-picker__format--item .input-group__item .t-input{padding:0 1px}.t-color-picker__format--item .input-group__item .t-input:focus,.t-color-picker__format--item .input-group__item .t-input:focus-within,.t-color-picker__format--item .input-group__item .t-input:hover{z-index:1}.t-color-picker__format--item .input-group__item:not(:first-child):not(:last-child) .t-input{border-radius:0}.t-color-picker__format--item .input-group__item:first-child:not(:last-child) .t-input{border-bottom-right-radius:0;border-top-right-radius:0}.t-color-picker__format--item .input-group__item:last-child:not(:first-child) .t-input{border-bottom-left-radius:0;border-top-left-radius:0}.t-color-picker__format--item .input-group .t-input-number{max-width:100%;padding:0;width:100%}.t-color-picker__format-mode-select{display:flex;width:72px}.t-color-picker__format-mode-select .t-input,.t-color-picker__format-mode-select .t-select{padding-right:0}.t-color-picker__format-mode-select .t-input--prefix>.t-input__suffix{padding-left:0}.t-color-picker__format-mode-select .t-select__right-icon{margin-right:var(--td-comp-margin-xs)}.t-color-picker__swatches-wrap{position:relative}.t-color-picker__swatches-wrap,.t-color-picker__swatches-wrap .t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-comp-margin-m)}.t-color-picker__swatches-wrap .t-color-picker__swatches--title{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-small);justify-content:space-between;padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions{align-items:center;display:flex;font-size:0;margin-left:auto}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions .t-color-picker__icon{height:var(--td-comp-size-xxxs);margin-left:var(--td-comp-margin-s);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--items{box-sizing:content-box;display:grid;gap:calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9) calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9);grid-template-columns:repeat(10,var(--td-comp-size-xxxs));left:calc(8px - var(--td-pop-padding-xl));list-style:none;max-height:calc(var(--td-comp-size-xxxs)*4 + 113.77778px - var(--td-pop-padding-xl)*2/9*4 - var(--td-comp-size-xxxs)*10/9*4);overflow-x:hidden;overflow-y:auto;padding:calc(var(--td-pop-padding-xl) - 8px);position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-xxxs);justify-content:center;overflow:hidden;padding:0;position:relative;transform-origin:center;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:hover{transform:scale(1.25);transform-origin:center}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__color{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);flex-shrink:0;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__inner{display:block;height:100%;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:not(.t-is-active):hover{padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--color,.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--item__color{border-color:var(--td-text-color-brand)}.t-color-picker__swatches-wrap .t-color-picker__swatches--color{border-radius:var(--td-radius-default);box-sizing:border-box;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--inner{border-radius:var(--td-radius-default);box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);display:block;height:100%;width:100%}.t-color-picker__trigger--default{align-items:center;display:inline-flex}.t-color-picker__trigger--default>.t-input{width:fit-content}.t-color-picker__trigger--default .t-input{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-paddingLR-xs)}.t-color-picker__trigger--default__color{align-items:center;box-sizing:border-box;display:flex;height:100%;width:100%}.t-color-picker__trigger--default__color .color-inner{border:1px solid var(--td-scrollbar-color);border-radius:var(--td-radius-small);color:transparent;display:block;height:calc(var(--td-comp-size-xs) - 2px);position:relative;width:calc(var(--td-comp-size-xs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-s{height:calc(var(--td-comp-size-xxs) - 2px);width:calc(var(--td-comp-size-xxs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-l{height:calc(var(--td-comp-size-s) - 2px);width:calc(var(--td-comp-size-s) - 2px)}.t-color-picker__gradient-slider{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2)}.t-color-picker__gradient-slider .t-color-picker--bg-alpha{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__panel.t-is-disabled .t-color-picker__saturation,.t-color-picker__panel.t-is-disabled .t-color-picker__slider,.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item{cursor:not-allowed;opacity:.8}.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs,.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs__item{cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item:hover{padding:0}.t-color-picker__select-options>.t-popup__content{box-shadow:var(--td-shadow-1),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-image__wrapper{background:var(--td-bg-color-secondarycontainer);position:relative;z-index:1}.t-image__wrapper--shape-square{border-radius:0}.t-image__wrapper--shape-round{border-radius:var(--td-radius-medium)}.t-image__wrapper--shape-circle{border-radius:50%}.t-image__wrapper--gallery{border-radius:var(--td-radius-medium)}.t-image__wrapper--gallery .t-image{position:relative;z-index:5}.t-image__wrapper--need-hover{cursor:pointer}.t-image{border-radius:inherit;height:100%;position:relative;width:100%;z-index:inherit}.t-image--fit-fill{object-fit:fill}.t-image--fit-contain{object-fit:contain}.t-image--fit-cover{object-fit:cover}.t-image--fit-scale-down{object-fit:scale-down}.t-image--fit-none{object-fit:none}.t-image--position-center{object-position:center}.t-image--position-bottom{object-position:bottom}.t-image--position-top{object-position:top}.t-image--position-left{object-position:left}.t-image--position-right{object-position:right}.t-image__gallery-shadow{background:hsla(0,0%,93%,.26);border-radius:var(--td-radius-medium);bottom:24px;left:0;position:absolute;right:-24px;top:24px;z-index:3}.t-image__gallery-shadow:after,.t-image__gallery-shadow:before{border-radius:var(--td-radius-medium);content:"";left:0;position:absolute}.t-image__gallery-shadow:after{background:hsla(0,0%,93%,.8);bottom:-16px;right:16px;top:-16px;z-index:4}.t-image__gallery-shadow:before{background:hsla(0,0%,93%,.5);bottom:-8px;right:8px;top:-8px;z-index:2}.t-image__placeholder{align-items:center;display:flex;justify-content:center;z-index:0}.t-image__overlay-content,.t-image__placeholder{height:100%;left:0;position:absolute;top:0;width:100%}.t-image__overlay-content{opacity:1;transition:visibility 0s,opacity .2s linear;visibility:visible;z-index:6}.t-image__overlay-content--hidden{opacity:0;visibility:hidden}.t-image__error,.t-image__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:1}.t-image__loading{color:var(--td-text-color-secondary)}.t-image__error{color:var(--td-text-color-disabled)}.t-avatar{align-items:center;background:var(--td-brand-color-focus);box-sizing:border-box;box-sizing:content-box;color:var(--td-text-color-primary);color:var(--td-text-color-brand);display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-size-body-large);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);list-style:none;margin:0;overflow:hidden;padding:0;position:relative;vertical-align:middle;white-space:nowrap;width:var(--td-comp-size-m)}.t-avatar.t-avatar__icon{font-size:var(--td-comp-size-xxs)}.t-avatar--circle{border-radius:var(--td-radius-circle)}.t-avatar--round{border-radius:var(--td-radius-default)}.t-avatar.t-size-s{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-avatar.t-size-s.t-avatar__icon{font-size:var(--td-comp-size-xxxs)}.t-avatar.t-size-l{font-size:var(--td-font-size-title-large);height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-avatar.t-size-l.t-avatar__icon{font-size:var(--td-comp-size-xs)}.t-avatar>.t-image__wrapper{max-height:100%;max-width:100%}.t-avatar-group{align-items:center;display:inline-flex}.t-avatar-group .t-avatar{border:2px solid var(--td-bg-color-container)}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child){margin-right:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-s{margin-right:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-l{margin-right:calc(0px - var(--td-size-4))}.t-avatar-group.t-avatar--offset-left .t-avatar:first-child{z-index:49}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(2){z-index:48}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(3){z-index:47}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(4){z-index:46}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(5){z-index:45}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(6){z-index:44}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(7){z-index:43}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(8){z-index:42}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(9){z-index:41}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(10){z-index:40}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(11){z-index:39}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(12){z-index:38}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(13){z-index:37}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(14){z-index:36}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(15){z-index:35}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(16){z-index:34}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(17){z-index:33}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(18){z-index:32}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(19){z-index:31}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(20){z-index:30}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(21){z-index:29}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(22){z-index:28}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(23){z-index:27}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(24){z-index:26}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(25){z-index:25}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(26){z-index:24}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(27){z-index:23}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(28){z-index:22}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(29){z-index:21}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(30){z-index:20}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(31){z-index:19}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(32){z-index:18}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(33){z-index:17}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(34){z-index:16}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(35){z-index:15}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(36){z-index:14}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(37){z-index:13}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(38){z-index:12}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(39){z-index:11}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(40){z-index:10}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(41){z-index:9}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(42){z-index:8}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(43){z-index:7}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(44){z-index:6}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(45){z-index:5}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(46){z-index:4}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(47){z-index:3}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(48){z-index:2}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(49){z-index:1}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(50){z-index:0}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child){margin-left:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-s{margin-left:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-l{margin-left:calc(0px - var(--td-size-4))}.t-badge{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-badge--circle,.t-badge--dot,.t-badge--round{box-sizing:content-box;color:var(--td-text-color-anti);font:var(--td-font-body-small);position:absolute;right:0;text-align:center;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.t-badge--static{display:inline-block;position:static;transform:none}.t-badge--dot{background-color:var(--td-error-color);border-radius:var(--td-radius-circle);height:6px;margin-top:1px;right:1px;width:6px}.t-badge--circle,.t-badge--round{background-color:var(--td-error-color);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxs) - 8px)/2)}.t-badge--circle.t-size-s,.t-badge--round.t-size-s{height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxxs) - 8px)/2)}.t-badge--circle{border-radius:calc(var(--td-comp-size-xxs)/2)}.t-badge--round{border-radius:var(--td-radius-default)}.t-calendar{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-calendar .t-is-disabled.t-calendar__table-body-cell:hover{cursor:not-allowed}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display{color:var(--td-text-color-disabled)}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display:hover{box-shadow:none}.t-calendar--full{min-width:560px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--full .t-calendar__control{padding:0}.t-calendar--full .t-calendar__title{flex:1;font:var(--td-font-title-large)}.t-calendar--full .t-calendar__panel{margin-top:var(--td-comp-margin-xxxl);position:relative}.t-calendar--full .t-calendar__panel-title{color:var(--td-text-color-primary);font:var(--td-font-title-large);position:absolute}.t-calendar--full .t-calendar__table-body-cell,.t-calendar--full .t-calendar__table-head-cell{margin-right:var(--td-comp-margin-s);position:relative}.t-calendar--full .t-calendar__table-body-cell{align-items:flex-end;border-top:2px solid var(--td-border-level-1-color);display:flex;flex-direction:column;height:104px;justify-content:flex-start;line-height:var(--td-line-height-body-medium);margin-left:0;padding:0;transition-duration:.2s;transition-property:border-top,background;transition-timing-function:linear}.t-calendar--full .t-calendar__table-body-cell-content{box-sizing:border-box;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xs);width:100%}.t-calendar--full .t-calendar__table-body-cell.t-is-checked,.t-calendar--full .t-calendar__table-body-cell.t-is-checked:hover{background-color:var(--td-brand-color-light)}.t-calendar--full .t-calendar__table-body-cell--now{border-top:2px solid var(--td-brand-color)}.t-calendar--full .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-text-color-primary)}.t-calendar--full .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:90px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--card{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:280px}.t-calendar--card .t-calendar__control{padding:0}.t-calendar--card .t-calendar__control-section{justify-content:flex-start;width:100%}.t-calendar--card .t-calendar__control-section-cell:last-child{display:block;flex:1;text-align:right}.t-calendar--card .t-calendar__panel.t-calendar__panel--month{height:200px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year{height:168px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year .t-calendar__table-body-cell-display{min-width:var(--td-comp-size-xxl)}.t-calendar--card .t-calendar__table{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-self:start;width:100%}.t-calendar--card .t-calendar__table-body-row,.t-calendar--card .t-calendar__table-head-row{background:var(--td-bg-color-container);flex:1}.t-calendar--card .t-calendar__table-body-cell,.t-calendar--card .t-calendar__table-head-cell{box-sizing:border-box;font:var(--td-font-body-medium);height:100%;justify-content:center;width:100%}.t-calendar--card .t-calendar__table-body-cell-display,.t-calendar--card .t-calendar__table-head-cell-display{line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-calendar--card .t-calendar__table-body{align-items:center;display:flex;flex:1;flex-direction:column;justify-self:center}.t-calendar--card .t-calendar__table-body-cell{align-items:center;justify-content:center}.t-calendar--card .t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container)}.t-calendar--card .t-calendar__table-body-cell-display{border-radius:var(--td-radius-default);font:var(--td-font-body-medium);padding-bottom:calc(var(--td-comp-paddingTB-xxs)/2);padding-top:calc(var(--td-comp-paddingTB-xxs)/2);text-align:center;transition:all .2s linear}.t-calendar--card .t-calendar__table-body-cell-display:hover{box-shadow:inset 0 0 0 1px var(--td-brand-color);transition:box-shadow .2s linear}.t-calendar--card .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{background-color:var(--td-brand-color-light);color:var(--td-brand-color);position:relative}.t-calendar--card .t-is-checked .t-calendar__table-body-cell-display{background:var(--td-brand-color);border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-calendar--card .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-calendar__control,.t-calendar__control-section{align-items:center;display:flex;justify-content:flex-end}.t-calendar__control-section{height:100%}.t-calendar__control-section:last-child{margin-right:0}.t-calendar__control-section-cell{display:flex;height:100%;margin-right:var(--td-comp-margin-s)}.t-calendar__control-section-cell .t-radio-group{vertical-align:bottom}.t-calendar__control-section-cell .t-select{display:inline}.t-calendar__control-section-cell:last-child{margin-right:0}.t-calendar__panel{box-sizing:border-box;width:100%}.t-calendar__table{border-collapse:collapse;border-spacing:0;height:100%;width:100%}.t-calendar__table-body,.t-calendar__table-head{width:100%}.t-calendar__table-body-row,.t-calendar__table-head-row{display:flex;width:100%}.t-calendar__table-body-cell,.t-calendar__table-head-cell{color:var(--td-text-color-primary);cursor:default;display:flex;flex:1;font:var(--td-font-title-small);justify-content:flex-end;padding:0}.t-calendar__table-body-cell:last-child,.t-calendar__table-head-cell:last-child{margin-right:0}.t-calendar__table-head{display:block;margin-bottom:var(--td-comp-margin-s)}.t-calendar__table-head-row{background:var(--td-bg-color-container);padding-bottom:0}.t-calendar__table-head-cell{color:var(--td-text-color-secondary);font:var(--td-font-title-small);height:100%}.t-calendar__table-body-cell{cursor:pointer}.t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container-hover);transition:background-color .2s linear}.t-calendar__table-body-cell-display{color:var(--td-text-color-primary);font:var(--td-font-title-small)}.t-card{background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1)}.t-card--bordered{border:1px solid var(--td-component-border)}.t-card--shadow,.t-card--shadow-hover:hover{box-shadow:var(--td-shadow-1)}.t-card__cover{display:flow-root}.t-card__cover img{border-radius:var(--td-radius-default) var(--td-radius-default) 0 0;display:flow-root;max-height:100%;width:100%}.t-card__body{display:flow-root;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__header{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);position:relative}.t-card__header-wrapper{align-items:center;display:flex;flex:1}.t-card__header+.t-card__cover img{border-radius:0}.t-card__footer{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__footer-wrapper{flex:1}.t-size-s .t-card__body,.t-size-s .t-card__footer,.t-size-s .t-card__header{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l)}.t-card__avatar{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-card__avatar,.t-card__title{margin-right:var(--td-comp-margin-l)}.t-card__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);word-break:break-all}.t-card__description,.t-card__subtitle{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);word-break:break-all}.t-card__description{margin-top:var(--td-comp-margin-xs)}.t-card__actions{color:var(--td-brand-color);float:right}.t-card__title--bordered{border-bottom:1px solid var(--td-component-border)}.t-comment{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-comment__inner{display:flex}.t-comment__avatar{cursor:pointer;display:flex;flex-shrink:0;margin-right:var(--td-comp-margin-xxl)}.t-comment__avatar-image{border-radius:var(--td-radius-circle);height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-comment__content{flex:auto;font:var(--td-font-body-medium)}.t-comment__author{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:var(--td-comp-margin-s)}.t-comment__name{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-title-medium)}.t-comment__name,.t-comment__time{padding-right:var(--td-comp-paddingLR-s)}.t-comment__time{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-comment__detail{font:var(--td-font-body-medium);word-break:break-all}.t-comment__quote{border-left:4px solid var(--td-component-stroke);margin-top:var(--td-comp-margin-l);padding-left:var(--td-comp-margin-l)}.t-comment__quote .t-comment__detail,.t-comment__quote .t-comment__name{color:var(--td-text-color-secondary)}.t-comment__actions{display:flex;gap:var(--td-comp-margin-s);justify-content:flex-end;list-style:none;margin-top:var(--td-comp-margin-s);padding:0}.t-comment__actions .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__actions .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-comment__reply{background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-medium);margin-left:calc(var(--td-comp-size-xxxl) + var(--td-comp-margin-xxl));margin-top:var(--td-comp-margin-l);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-comment__reply .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__reply .t-button--variant-text:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-comment__reply .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-empty{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;text-align:center}.t-empty__image{display:flex;font-size:48px;justify-content:center}.t-empty__title{color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s)}.t-empty__description,.t-empty__title{font:var(--td-font-body-medium);margin-bottom:0}.t-empty__description{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xs)}.t-empty__action{margin-bottom:0;margin-top:var(--td-comp-margin-xxl)}.t-empty.t-size-s .t-empty__image{font-size:20px}.t-empty.t-size-s .t-empty__description,.t-empty.t-size-s .t-empty__title{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs)}.t-empty.t-size-l .t-empty__image{font-size:64px}@keyframes tDialogZoomIn{0%{opacity:0;transform:scale(.01)}to{opacity:1}}@keyframes tDialogZoomOut{0%{opacity:1}to{opacity:0;transform:scale(.01)}}@keyframes tDialogMaskIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogMaskOut{0%{opacity:1}to{opacity:0}}.t-dialog-zoom .animation-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom .animation-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom .animation-active{animation-fill-mode:both;animation-play-state:running}.t-dialog-zoom-appear,.t-dialog-zoom-enter,.t-dialog-zoom-enter-from{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom-appear-active,.t-dialog-zoom-enter-active{animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:running}.t-dialog-zoom-exit-active{animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:running}.t-dialog-zoom__vue-enter-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom__vue-enter-active .t-dialog__mask{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogMaskIn;animation-play-state:running;animation-timing-function:linear}.t-dialog-zoom__vue-leave-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom__vue-leave-active .t-dialog__mask{animation-duration:.2s;animation-name:tDialogMaskOut;animation-timing-function:linear}.t-dialog-zoom__vue-enter-to .t-dialog,.t-dialog-zoom__vue-leave-active .t-dialog__mask,.t-dialog-zoom__vue-leave-to .t-dialog{animation-fill-mode:both;animation-play-state:running}.t-dialog-fade-appear,.t-dialog-fade-enter{opacity:0}.t-dialog-fade-appear,.t-dialog-fade-enter,.t-dialog-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-fade-appear.t-dialog-fade-appear-active,.t-dialog-fade-enter.t-dialog-fade-enter-active{animation-name:tDialogFadeIn;animation-play-state:running}.t-dialog-fade-exit.t-dialog-fade-exit-active{animation-name:tDialogFadeOut;animation-play-state:running}@keyframes tDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogFadeOut{0%{opacity:1}to{opacity:0}}.t-dialog{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:480px}.t-dialog .t-icon.t-is-info{color:var(--td-brand-color)}.t-dialog .t-icon.t-is-success{color:var(--td-success-color)}.t-dialog .t-icon.t-is-warning{color:var(--td-warning-color)}.t-dialog .t-icon.t-is-error{color:var(--td-error-color)}.t-dialog--lock{overflow:hidden}.t-dialog__header{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);font-weight:600;gap:var(--td-comp-margin-s);word-break:break-word}.t-dialog__header .t-dialog__header-content{align-items:flex-start;display:flex;width:100%}.t-dialog__header .t-icon:not(.t-icon-close){align-items:center;display:inline-flex;flex-shrink:0;font-size:calc(var(--td-font-size-body-large) + 8px);margin-right:var(--td-comp-margin-s)}.t-dialog__header--fullscreen{align-items:center;background-color:var(--td-bg-color-secondarycontainer);display:flex;flex-direction:row;justify-content:flex-end;min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-xxl)}.t-dialog__header--fullscreen .t-dialog__header-content{align-items:center;box-sizing:border-box;display:flex;justify-content:center}.t-dialog__body{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);overflow:auto;padding:var(--td-comp-paddingTB-l) 0;word-break:break-word}@-moz-document url-prefix(){.t-dialog__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--icon,.t-dialog__body__icon{padding:var(--td-comp-paddingTB-l) 0}.t-dialog__body--fullscreen{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl) - var(--td-comp-size-xxxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}@-moz-document url-prefix(){.t-dialog__body--fullscreen{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body--fullscreen::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen--without-footer{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}.t-dialog__footer{padding:var(--td-comp-paddingTB-l) 0 0;text-align:right;width:100%}.t-dialog__footer .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-dialog__footer--fullscreen{box-sizing:border-box;min-height:var(--td-comp-size-xxxxl);padding:0 var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl)}.t-dialog--default{padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-dialog__close{align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);display:flex;font-size:calc(var(--td-font-size-body-large) + 4px);height:calc(var(--td-font-size-body-large) + 4px);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);transition:all .2s linear;width:calc(var(--td-font-size-body-large) + 4px)}.t-dialog__close:hover{background:var(--td-bg-color-container-hover);cursor:pointer}.t-dialog__close:active{background:var(--td-bg-color-container-active)}.t-dialog__close--fullscreen{background:transparent;display:flex}.t-dialog__close--fullscreen:hover{background:var(--td-bg-color-secondarycontainer-hover);cursor:pointer}.t-dialog__close--fullscreen:active{background:var(--td-bg-color-secondarycontainer-active)}.t-dialog.t-dialog--draggable:hover{cursor:move}.t-dialog.t-dialog--draggable .t-dialog__body:hover,.t-dialog.t-dialog--draggable .t-dialog__footer:hover,.t-dialog.t-dialog--draggable .t-dialog__header:hover{cursor:auto}.t-dialog__fullscreen{border-radius:0;width:100%}.t-dialog__ctx{height:100%;left:0;outline:none;pointer-events:auto;top:0;width:100%}.t-dialog__ctx.t-dialog__ctx--modeless{pointer-events:none}.t-dialog__ctx.t-dialog__ctx--fixed{position:fixed;z-index:2500}.t-dialog__ctx.t-dialog__ctx--absolute,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__mask,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__wrap{position:absolute}.t-dialog__ctx.t-is-visible{visibility:visible}.t-dialog__ctx.t-is-hidden{visibility:hidden}.t-dialog__ctx.t-is-display{display:block}.t-dialog__ctx.t-not-display{display:none}.t-dialog__ctx .t-dialog__mask{background:var(--td-mask-active);height:100%;left:0;pointer-events:auto;position:fixed;top:0;width:100%;z-index:1}.t-dialog__ctx .t-dialog__wrap{height:100%;left:0;overflow:auto;position:fixed;top:0;width:100%;z-index:1}@-moz-document url-prefix(){.t-dialog__ctx .t-dialog__wrap{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar{height:8px;width:8px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__position{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:48px 0;position:relative;width:100%}.t-dialog__ctx .t-dialog__position.t-dialog--top{align-items:flex-start;padding-top:20vh}.t-dialog__ctx .t-dialog__position.t-dialog--center{align-items:center}.t-dialog__ctx .t-dialog__position_fullscreen{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;position:relative;width:100%}.t-dialog__ctx .t-is-hidden{background:none}.t-dialog__ctx .t-dialog{pointer-events:auto;z-index:2500}.t-dialog__ctx.t-dialog__ctx--modeless .t-dialog{box-shadow:var(--td-shadow-3)}.t-image-viewer__img-error{background-color:var(--td-bg-color-component-disabled);border-radius:4px;color:#000;cursor:inherit;height:440px;position:absolute;width:440px}.t-image-viewer__img-error .t-image-viewer__img-error-content{align-content:center;align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;font:var(--td-font-body-medium);height:100%;justify-content:center;position:absolute;width:100%}.t-image-viewer__img-error .t-image-viewer__img-error-content .t-image-viewer__img-error-text{margin-top:var(--td-comp-margin-s)}@keyframes modal-image-hide{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes modal-mask-show{0%{opacity:0}to{opacity:1}}@keyframes modal-mask-hide{0%{opacity:1}to{opacity:0}}.t-image-viewer-preview-image{animation:modal-mask-show .2s cubic-bezier(.82,0,1,.9);bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:3000}.t-image-viewer-preview-image.t-is-hide{animation:modal-mask-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image.t-is-hide .t-image-viewer__modal-pic .t-image-viewer__modal-box{animation:modal-image-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image .t-image-viewer__modal-index{background:rgba(0,0,0,.4);border-radius:var(--td-radius-default);color:var(--td-text-color-anti);font-size:var(--td-font-size-body-medium);left:50%;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:absolute;text-align:center;top:92px;transform:translateX(-50%);z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-mask{background-color:var(--td-mask-active);bottom:0;height:100%;left:0;opacity:1;position:fixed;right:0;top:0;transition:all .2s ease;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic{height:0;left:50%;position:absolute;top:50%;width:0}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;animation:modal-image-show .2s cubic-bezier(.38,0,.24,1);display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(90vh,800px);max-width:min(90vw,1000px);object-fit:contain;transform:rotate(0deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-image-viewer-preview-image .t-image-viewer__modal-header{align-items:center;background-color:var(--td-bg-color-container);display:flex;height:auto;justify-content:center;padding:0 0 12px;position:absolute;top:0;width:100%;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show{padding:12px 0}@keyframes preview-icon-range{0%{transform:translate(-50%,50%) rotate(0)}to{transform:translate(-50%,50%) rotate(-180deg)}}@keyframes preview-icon-unrange{0%{transform:translate(-50%,50%) rotate(-180deg)}to{transform:translate(-50%,50%) rotate(0)}}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt{align-items:center;animation:preview-icon-unrange .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;background-color:var(--td-bg-color-container);border-radius:50%;bottom:0;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);color:var(--td-text-color-primary);display:inline-flex;height:var(--td-comp-size-xxs);justify-content:center;left:50%;position:absolute;transform:translate(-50%,50%);width:var(--td-comp-size-xxs)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt .t-icon{font-size:var(--td-font-size-body-large)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt:hover{background-color:inherit}@keyframes preview-image-show{0%{height:0}to{height:40px}}@keyframes preview-image-hide{0%{height:40px}to{height:0}}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-prev{animation:preview-image-show .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-pre-bt{animation:preview-icon-range .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev{animation:preview-image-hide .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;display:flex;overflow:hidden;position:relative;width:521.77778px}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after,.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{content:"";height:100%;pointer-events:none;position:absolute;width:71.11111px;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{background-image:linear-gradient(to right,var(--td-bg-color-container),hsla(0,0%,100%,0));left:0}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{background-image:linear-gradient(to right,hsla(0,0%,100%,0),var(--td-bg-color-container));right:0}.t-image-viewer-preview-image .t-image-viewer__header-trans{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;margin-left:225.33333px;transition:transform .2s}.t-image-viewer-preview-image .t-image-viewer__header-box{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:40px;justify-content:center;overflow:hidden;position:relative;transition:.2s;width:71.11111px}.t-image-viewer-preview-image .t-image-viewer__header-box .t-image-viewer__header-img{height:100%;width:auto}.t-image-viewer-preview-image .t-image-viewer__header-box.t-is-active,.t-image-viewer-preview-image .t-image-viewer__header-box:hover{border-color:var(--td-brand-color)}.t-image-viewer-preview-image .t-image-viewer__modal-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;transition:.2s}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt{right:40px;top:100px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{top:50%;transform:translateY(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{left:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{align-items:center;background-color:rgba(0,0,0,.4);border-radius:50%;color:var(--td-text-color-anti);display:flex;height:var(--td-comp-size-xl);justify-content:center;position:fixed;width:var(--td-comp-size-xl);z-index:10}.t-image-viewer-preview-image .t-image-viewer__modal-icon .t-image-viewer__modal-icon-label{margin-left:2px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled:hover{background-color:rgba(0,0,0,.4)}.t-image-viewer-preview-image .t-image-viewer__modal-icon:hover{background-color:rgba(0,0,0,.2)}.t-image-viewer__mask{background-color:transparent;height:100vh;left:0;position:fixed;top:0;width:100vh;z-index:99}.t-image-viewer__utils{align-items:center;bottom:32px;color:var(--td-text-color-primary);display:flex;height:auto;justify-content:center;position:absolute;user-select:none;width:100%;z-index:1}.t-image-viewer__utils .t-image-viewer__utils-content{align-items:center;background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);display:inline-flex;height:50px;justify-content:center;line-height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon{align-items:center;border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);justify-content:center;margin:0 var(--td-comp-margin-xs);transition:.2s;width:var(--td-comp-size-m)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon:hover{background-color:var(--td-bg-color-container-hover)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale{cursor:inherit;text-align:center;width:var(--td-comp-size-xl)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale:hover{background-color:var(--td-bg-color-container)}.t-image-viewer-mini__footer .t-image-viewer__utils{position:inherit}.t-image-viewer-mini__content{max-height:min(90vh,800px);max-width:min(90vw,1000px)}@keyframes modal-image-show{0%{transform:scale(0)}to{transform:scale(1)}}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(80vh,600px);max-width:min(80vw,800px);object-fit:contain;transform:rotate(0deg);transition:all .2s ease}.t-image-viewer__dialog.t-dialog__ctx--fixed{z-index:3000}.t-image-viewer__dialog .t-dialog__header{padding:0 var(--td-comp-paddingLR-s);pointer-events:none}.t-image-viewer__dialog .t-dialog__header .t-image-viewer__dialog-title{pointer-events:all}.t-image-viewer__dialog .t-dialog__header .t-dialog__close{pointer-events:auto}.t-image-viewer__dialog .t-dialog{border-color:var(--td-component-border);box-shadow:var(--td-shadow-3);overflow:hidden;padding:0}.t-image-viewer__dialog .t-dialog__header{background-color:var(--td-bg-color-secondarycontainer);font-size:var(--td-font-size-body-medium);height:40px;width:100%}.t-image-viewer__dialog .t-dialog__header-content{justify-content:center;margin-left:32px}.t-image-viewer__dialog .t-dialog__close:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-list{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:auto;padding:0}@-moz-document url-prefix(){.t-list{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-list::-webkit-scrollbar{height:6px;width:6px}.t-list::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-list::-webkit-scrollbar-thumb:horizontal:hover,.t-list::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-list__inner{list-style:none;margin:0;padding:0}.t-list-item{align-items:center;display:flex;font:var(--td-font-body-medium);justify-content:space-between;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative}.t-list-item:after{bottom:0;content:"";height:1px;left:0;position:absolute;width:100%}.t-list-item-main{align-items:center;display:flex;flex:1;justify-content:space-between;width:100%}.t-list-item__meta{display:flex}.t-list-item__meta-avatar{background:var(--td-bg-color-page);border-radius:calc(var(--td-comp-size-xxxl)/2);flex-shrink:0;height:var(--td-comp-size-xxxl);margin-right:var(--td-comp-margin-l);overflow:hidden;width:var(--td-comp-size-xxxl)}.t-list-item__meta-avatar img{height:100%;max-width:100%;width:100%}.t-list-item__meta-title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);margin:0 0 var(--td-comp-margin-s);padding:0}.t-list-item__meta-description{color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-xxl)}.t-list-item__action{flex-shrink:0;list-style:none;padding:0}.t-list-item__action>li{display:inline-block}.t-list-item__action>li:not(:last-child){margin-right:var(--td-comp-margin-l)}.t-list-item__action>li .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-comp-size-xxxs)}.t-list-item__action>li .t-icon:hover{color:var(--td-text-color-link);cursor:pointer}.t-list-item__action>li>a{color:var(--td-brand-color);text-decoration:none}.t-list--split .t-list-item:after{background:var(--td-border-level-1-color)}.t-list--stripe .t-list-item:nth-child(2n){background:var(--td-bg-color-secondarycontainer)}.t-list--vertical-action .t-list-item{flex-direction:column}.t-list.t-size-s .t-list-item{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-m)}.t-list.t-size-l .t-list-item{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-list__footer,.t-list__header{background:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load{background:var(--td-bg-color-container);line-height:var(--td-line-height-body-medium);text-align:center}.t-list__load>div{align-items:center;display:flex;justify-content:center}.t-list__load:not(:empty){padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load .t-loading{font-size:var(--td-comp-size-xxxs);margin-right:var(--td-comp-margin-s)}.t-list__load .t-loading.t-is-load-more{cursor:pointer}.t-progress{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-progress__inner{background:var(--td-brand-color);border-radius:var(--td-radius-round);height:100%;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress__info{color:var(--td-text-color-primary);display:inline-flex;margin-left:var(--td-comp-margin-s);white-space:nowrap}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{background:var(--td-bg-color-component);border-radius:var(--td-radius-round);height:var(--td-size-3);overflow:hidden;width:100%}.t-progress--thin{align-items:center;display:flex;justify-content:space-between}.t-progress--plump{align-items:center;border-radius:calc(var(--td-comp-size-xxs)/2);display:flex;height:var(--td-comp-size-xxs)}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{color:var(--td-text-color-anti);position:absolute;right:var(--td-comp-margin-s);top:50%;transform:translateY(-50%);z-index:10}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{display:block;font-size:inherit;font-weight:600;left:50%;line-height:1;margin:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-text-color-anti);bottom:0;content:"";left:0;opacity:.2;position:absolute;right:0;top:0;z-index:1}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{opacity:.1;width:0}35%{opacity:.4;width:50%}to{opacity:0;width:100%}}:root,:root[theme-mode=light]{--skeleton-animation-gradient:rgba(0,0,0,.04)}:root[theme-mode=dark]{--skeleton-animation-gradient:hsla(0,0%,100%,.06)}.t-skeleton{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-skeleton__row{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-l)}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{align-items:center;background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-disabled);display:flex;justify-content:center;margin-right:var(--td-comp-margin-l)}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{border-radius:var(--td-radius-default);height:var(--td-font-size-body-large);width:100%}.t-skeleton--type-rect{border-radius:var(--td-radius-default);height:88px;width:120px}.t-skeleton--type-circle{border-radius:var(--td-radius-circle);flex-shrink:0;height:32px;width:32px}.t-skeleton--animation-gradient{overflow-x:hidden;position:relative}.t-skeleton--animation-gradient:after{animation:t-skeleton--gradient 1.5s linear 2s infinite;background:linear-gradient(90deg,hsla(0,0%,100%,0),var(--skeleton-animation-gradient),hsla(0,0%,100%,0));bottom:0;content:" ";left:0;position:absolute;right:0;top:0}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:hsla(0,0%,90%,.3);opacity:.3}to{opacity:1}}.t-statistic{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium)}.t-statistic-title{font-size:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s)}.t-statistic-content{color:var(--td-text-color-primary);display:inline-block;text-align:left;white-space:nowrap}.t-statistic-content-value{font-size:var(--td-font-size-headline-medium);line-height:var(--td-line-height-headline-medium)}.t-statistic-content-unit,.t-statistic-content-value{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-unit{font-size:var(--td-font-size-body-medium);margin-left:var(--td-comp-margin-xs)}.t-statistic-content-suffix{margin-left:var(--td-comp-margin-s)}.t-statistic-content-prefix,.t-statistic-content-suffix{align-items:center;display:inline-flex;font-size:var(--td-font-size-title-large)}.t-statistic-content-prefix{margin-right:var(--td-comp-margin-s)}.t-statistic-content-prefix .t-icon{font-size:var(--td-font-size-title-large)}.t-statistic-extra{margin-top:8px}.t-statistic-extra .t-space .t-space-item{display:flex}.t-swiper{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:fit-content;list-style:none;margin:0;padding:0;position:relative}.t-swiper__wrap{display:block;height:100%;position:relative}.t-swiper__content{overflow:hidden;position:relative;z-index:1}.t-swiper__container{display:flex;flex-direction:row;height:100%;position:relative;z-index:1}.t-swiper__container__item{display:inline-block;flex:0 0 auto;height:100%;width:100%}.t-swiper__arrow{align-items:center;display:flex}.t-swiper__arrow svg.t-icon{height:20px;width:20px}.t-swiper__arrow svg.t-icon:before{font-size:24px}.t-swiper__arrow--default .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-left:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-left:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-right:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper-card .t-swiper__container{display:block}.t-swiper-card .t-swiper__container .t-is-active{z-index:2}.t-swiper-card .t-swiper__card{height:100%;left:0;position:absolute;top:0;width:41.5%;z-index:0}.t-swiper-fade .t-swiper__container{display:block}.t-swiper-fade .t-swiper__fade{left:0;position:absolute;top:0}.t-swiper__navigation{bottom:0;display:flex;flex-direction:row;left:50%;margin:0;padding:0;position:absolute;transform:translateX(-50%);z-index:2}.t-swiper__navigation>li{display:flex;flex:1 0 auto;list-style-type:none}.t-swiper__navigation .t-swiper__arrow svg.t-icon{height:16px;width:16px}.t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-bars .t-swiper__navigation-item span{height:3px;width:100%}.t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:3px;width:100%}.t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:var(--td-size-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:var(--td-size-2);width:100%}.t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--vertical .t-swiper__container{flex-direction:column}.t-swiper--vertical .t-swiper__navigation{bottom:auto;display:flex;flex-direction:column;justify-content:center;left:auto;position:absolute;right:0;top:50%;transform:translateY(-50%)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;margin:6px 0 0;max-height:var(--td-size-2);padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:100%;width:var(--td-size-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--outside .t-swiper__navigation{bottom:-36px}.t-swiper--outside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation{bottom:auto;right:-36px}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation{bottom:0}.t-swiper--inside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--large .t-swiper__arrow i.t-icon:before{font-size:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-left{height:32px;left:24px;width:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-right{height:32px;right:24px;width:32px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 8px;padding:24px 0;width:21px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{height:4px;width:100%}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-large));height:var(--td-line-height-body-large);left:50%;line-height:var(--td-line-height-body-large);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-large);margin:0}.t-swiper--large.t-swiper--outside .t-swiper__navigation{bottom:-48px}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:21px;margin:8px 0 0;padding:0 24px;width:auto}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:4px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-48px}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__arrow i.t-icon:before{font-size:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-left{height:16px;left:8px;width:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-right{height:16px;right:8px;width:16px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 4px;padding:12px 0;width:9px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{height:2px;width:100%}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:15px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-small));height:var(--td-line-height-body-small);left:50%;line-height:var(--td-line-height-body-small);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-small);margin:0}.t-swiper--small.t-swiper--outside .t-swiper__navigation{bottom:-24px}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:9px;margin:4px 0 0;padding:0 12px;width:auto}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:2px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:15px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-24px}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}@-moz-document url-prefix(){.scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.scrollbar::-webkit-scrollbar{height:6px;width:6px}.scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-track,.scrollbar.t-table__scrollbar--obvious::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.t-table--width-overflow.t-table--footer-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table--width-overflow.t-table--horizontal-bar-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table__affixed-footer-wrap>.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-thumb{background:transparent}.t-table.t-table--overflow-visible{overflow:initial}.t-table{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-table .t-popup:not(.t-tooltip)[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-table:focus-visible{outline:none}.t-table .t-loading--full{z-index:72}.t-table.t-vertical-align-top td:not(.t-table__cell-check),.t-table.t-vertical-align-top th:not(.t-table__cell-check){vertical-align:top}.t-table.t-vertical-align-middle td:not(.t-table__cell-check),.t-table.t-vertical-align-middle th:not(.t-table__cell-check){vertical-align:middle}.t-table.t-vertical-align-bottom td:not(.t-table__cell-check),.t-table.t-vertical-align-bottom th:not(.t-table__cell-check){vertical-align:bottom}.t-table .t-table__resize-line{border-left:1px solid var(--td-component-border);display:none;left:10px;position:absolute;width:0;z-index:1001}.t-table__column-controller-trigger.t-align-bottom-right,.t-table__column-controller-trigger.t-align-top-right{text-align:right}.t-table__column-controller-trigger{padding:var(--td-comp-paddingTB-l) 0}.t-table__column-controller-item:not(:last-child){margin-bottom:var(--td-comp-margin-l)}.t-table__content{position:relative}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar{height:6px;width:6px}.t-table__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover,.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__pagination{box-sizing:border-box;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table .t-icon{font-size:var(--td-font-size-body-large)}.t-table table{border-spacing:0;width:100%}.t-table .t-text-ellipsis{word-wrap:normal;line-height:var(--td-line-height-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-table td,.t-table th{background-color:inherit;border-bottom:1px solid var(--td-component-border);box-sizing:border-box;font-weight:400;line-height:var(--td-line-height-body-medium);overflow-wrap:break-word;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative;text-align:left}.t-table th.t-table__th-drag{height:0;padding:0;text-align:center}.t-table th,.t-table thead td{color:var(--td-text-color-placeholder)}.t-table td[key=row-select]{padding:13px 0 11px var(--td-comp-paddingLR-l)}.t-table td.t-align-left,.t-table th.t-align-left{text-align:left}.t-table td.t-align-right,.t-table th.t-align-right{text-align:right}.t-table td.t-align-center,.t-table th.t-align-center{text-align:center}.t-table tr{background-color:var(--td-bg-color-container)}.t-table.t-size-s td,.t-table.t-size-s th{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-table.t-size-l td,.t-table.t-size-l th{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-table .t-table__expandable-icon-cell,.t-table .t-table__selection-cell{height:0;padding:0}.t-table td.t-table__handle-draggable{height:0;padding:0;text-align:center}.t-table .t-table__cell--selectable>.t-checkbox{vertical-align:middle}.t-table .t-table__cell--selectable+td,.t-table .t-table__cell--selectable+th{padding-left:0}.t-table--bordered td,.t-table--bordered th{border-left:1px solid var(--td-component-border)}.t-table--bordered td.t-table__cell--fixed-left-last:before,.t-table--bordered th.t-table__cell--fixed-left-last:before{border-right:1px solid var(--td-component-border)}.t-table--bordered td.t-table__td-first-col,.t-table--bordered th:first-child,.t-table--bordered:not(.t-table--rowspan-colspan) td:first-child{border-left-width:0}.t-table--bordered .t-table__content{border-left:1px solid var(--td-component-border)}.t-table--bordered .t-table__content::-webkit-scrollbar-corner{background-color:transparent}.t-table--bordered .t-table__content{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-table--bordered .t-table--loading{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table--bordered .t-table__bottom-content+.t-table__pagination{padding:0}.t-table--bordered.t-table__header--fixed .t-table__content{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__td-last-row,.t-table--striped:not(.t-table--bordered) td,.t-table--striped:not(.t-table--bordered) th{border-bottom:none}.t-table--striped.t-table--header-fixed>.t-table__content>table>tbody tr:nth-of-type(2n),.t-table--striped:not(.t-table--header-fixed)>.t-table__content>table>tbody>tr:nth-of-type(odd):not(.t-table__expanded-row){background-color:var(--td-bg-color-secondarycontainer)}.t-table--striped.t-table--hoverable.t-table__header--fixed tbody tr:nth-of-type(2n):hover,.t-table--striped.t-table--hoverable:not(.t-table__header--fixed)>.t-table__content>table>tbody tr:nth-of-type(odd):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr{transition:background-color .2s linear}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table--hoverable tbody tr{transition:background-color .2s linear}.t-table--hoverable tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table.t-table--align-top tbody td{vertical-align:top}.t-table .t-table__cell--highlight{background-color:var(--td-bg-color-secondarycontainer)}.t-table__header--fixed table{table-layout:fixed}.t-table__header--fixed td,.t-table__header--fixed th{overflow-wrap:break-word}.t-table__header--fixed .t-table__header,.t-table__header--fixed.t-table__header{position:relative;width:fit-content;z-index:5}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body{overflow-y:auto;width:fit-content}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table:not(.t-table--bordered) .t-table__cell--selectable+td,.t-table:not(.t-table--bordered) .t-table__cell--selectable+th{padding-left:0}.t-table__cell--fixed.t-table__header--fixed .t-table__header{overflow:hidden;width:100%}.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-left:last-child:after,.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-right:last-child:after{background-color:var(--td-bg-color-secondarycontainer);content:"";height:100%;position:absolute;right:-6px;top:0;width:6px}.t-table__cell--fixed.t-table__header--fixed .t-table__body{overflow:auto scroll}.t-table__cell--fixed .t-table__content{overflow:auto hidden}.t-table__cell--fixed table{min-width:100%;table-layout:fixed}.t-table__cell--fixed td,.t-table__cell--fixed th{position:relative}.t-table__cell--fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table__cell--fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table .t-table__cell-resizable{position:relative}.t-table .t-table__cell-resizable .t-table__cell--resizer{bottom:0;cursor:col-resize;position:absolute;right:-5px;top:0;width:10px;z-index:10}.t-table .t-table__row--disabled{color:var(--td-text-color-disabled)}.t-table .t-table__cell--title{align-items:center;display:flex}.t-table__column-controller-desc{margin-bottom:var(--td-comp-margin-xxl)}.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__column-controller-block+.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border-top:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__column-controller--fixed .t-checkbox{width:108px}.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active,.t-table.t-table__row--active-single tbody>tr.t-table__row--active{background-color:var(--td-brand-color-light)}.t-table.t-table--hoverable tbody>tr.t-table__row--active:hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table__row--active-single tbody>tr.t-table__row--active.t-table__row--hover{background-color:var(--td-brand-color-light-hover)}.t-table.t-table--row-expandable tbody>tr.t-table__row--hover,.t-table.t-table--row-select tbody>tr.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--hover{background-color:var(--td-bg-color-container-hover)}.t-table--bordered .t-table__cell--filterable .t-table__cell--title,.t-table--bordered .t-table__cell--sortable .t-table__cell--title{justify-content:space-between}.t-table th.t-align-right .t-table__cell--title{justify-content:flex-end}.t-table__cell--sort-trigger{text-align:center;vertical-align:text-bottom}.t-table__cell--sort-trigger svg{vertical-align:initial}.t-table--loading{position:relative}.t-table--loading-progressbar{animation:tTableProgressbar 2s ease-in-out;animation-fill-mode:both;background-color:var(--td-brand-color);height:1px;left:0;overflow:hidden;position:absolute;top:0}.t-table--loading-message{align-items:center;color:var(--td-text-color-placeholder);display:flex;justify-content:center;min-height:120px}.t-table__expanded-cell{padding-left:45px}.t-table__async-loading{text-align:center}.t-table__async-loading.t-is-load-more{cursor:pointer}.t-table__empty{align-items:center;color:var(--td-text-color-disabled);display:flex;justify-content:center;min-height:120px}.t-table__filter-icon,.t-table__sort-icon{align-items:center;background-color:transparent;cursor:pointer;display:inline-flex;transition:.2s linear;vertical-align:text-bottom}.t-table__filter-icon>svg,.t-table__sort-icon>svg{margin-top:0}.t-table__sort-icon .t-is-focus,.t-table__sort-icon.t-is-focus,.t-table__sort-icon:hover{border-radius:var(--td-radius-circle);color:var(--td-brand-color);transition:.2s linear}.t-table__filter-icon .t-is-focus,.t-table__filter-icon.t-is-focus,.t-table__filter-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__filter-pop .t-popup__content{padding:0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-table__filter-popup-input{margin-bottom:var(--td-comp-margin-s)}.t-table__filter-pop .t-table__filter-pop-content .t-radio-group{display:block;height:auto}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox-group{display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox,.t-table__filter-pop .t-table__filter-pop-content .t-radio{display:block;margin:var(--td-comp-margin-xs) 0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button{border-top:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button .t-button+.t-button{margin-left:var(--td-comp-margin-l)}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner{max-height:280px;overflow:auto;padding:0;position:relative}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-input__wrap{background-color:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) 0 var(--td-comp-paddingLR-l);position:sticky;top:0;z-index:1}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-radio-group{padding:0 var(--td-comp-paddingLR-l)}.t-table__filter-pop-content-inner>.t-input__wrap{width:200px}.t-table__filter-pop-content-inner>.t-date-range-picker__panel{margin:calc(0px - var(--td-comp-margin-l))}.t-table__sort-icon--active{color:var(--td-brand-color);transition:.2s linear}.t-table__double-icons{display:flex;flex-direction:column;justify-content:center}.t-table__double-icons .t-table__sort-icon{position:relative}.t-table__double-icons .t-table-sort-asc{top:var(--td-comp-margin-xxs)}.t-table__double-icons .t-table-sort-desc{bottom:var(--td-comp-margin-xxs)}.t-table__filter-icon-wrap{align-items:center;display:flex;height:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);pointer-events:all;width:var(--td-font-size-body-large)}.t-table--bordered .t-table__filter-icon-wrap{justify-content:flex-end}.t-table--bordered .t-table__cell--sortable.t-table__cell--filterable .t-table__filter-icon-wrap{flex:1;justify-content:space-between}.t-table .t-align-center .t-table__cell--filterable,.t-table .t-align-center .t-table__cell--sortable{display:flex;justify-content:space-around}.t-table__expand-box{align-items:center;color:var(--td-text-color-placeholder);cursor:pointer;display:flex;height:100%;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1) 0s;width:100%}.t-table__expand-box:hover{color:var(--td-brand-color);transition:.2s linear}@keyframes tTableProgressbar{0%{width:0}to{width:100%}}.t-table__th-row-select .t-table__th-cell-inner{align-items:center;display:inline-flex}.t-table-expandable-icon-cell+.t-table__cell--selectable[key=row-select]{padding-left:var(--td-comp-margin-s)}.t-table__filter--bottom-buttons{border-top:1px solid var(--td-component-border);display:flex;justify-content:flex-end;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter--bottom-buttons>.t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-table__row-filter-inner{left:0;position:sticky;text-align:center}.t-table__filter-result{align-items:center;display:flex;justify-content:center}.t-table__filter-result>.t-button{margin-left:var(--td-comp-margin-s)}.t-table--layout-fixed{table-layout:fixed}.t-table--layout-auto{table-layout:auto}.t-table__ellipsis{white-space:nowrap;width:100%}.t-table__content{overflow:auto}.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:2px solid var(--td-component-border)}.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:2px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:4px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:4px solid var(--td-component-border)}.t-table__scroll-bar-divider{border-right:1px solid var(--td-component-border);bottom:0;height:100%;position:absolute;right:0;z-index:71}.t-table__footer,.t-table__header.t-table__header--fixed{position:sticky;z-index:50}.t-table:not(.t-table--striped) .t-table__footer>tr,.t-table__header--fixed:not(.t-table__header--multiple)>tr>th{background-color:var(--td-bg-color-secondarycontainer)}.t-table__row--fixed-bottom,.t-table__row--fixed-top{position:sticky;z-index:70}.t-table__row--fixed-bottom-first>td{border-top:1px solid var(--td-component-border)}.t-table--bordered .t-table__content .t-table__row--without-border-bottom>td,.t-table--bordered tbody>tr:last-child>td,.t-table--bordered tfoot>tr:last-child>td{border-bottom:0}.t-table--bordered tfoot>tr:first-child>td{border-top:1px solid var(--td-component-border)}.t-table__header.t-table__header--fixed{top:0}.t-table__footer.t-table__footer--fixed{bottom:0}.t-table--column-fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-left,.t-table--column-fixed .t-table__cell--fixed-right{position:sticky}.t-table--column-fixed .t-table__cell--fixed-left{z-index:30}.t-table--column-fixed .t-table__cell--fixed-right{z-index:31}.t-table__empty-row>td{border:0;padding:0}.t-table:not(.t-table--bordered) .t-table__header.t-table--bordered>tr:first-child>th{border-top:1px solid var(--td-component-border)}.t-table--multiple-header .t-table__header th.t-table__header-th--bordered{border-left-width:1px}.t-table__header.t-table__header--multiple>tr{background-color:var(--td-bg-color-container)}.t-table__tree-op-icon{cursor:pointer;display:inline-flex;margin-right:var(--td-comp-margin-s);vertical-align:-3px}.t-table__tree-op-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__tree-leaf-node .t-table__tree-op-icon{margin-right:var(--td-comp-margin-xxs);min-width:0}.t-table__virtual-scroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-table__virtual-scroll-header{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm-wrap{overflow:hidden}.t-table__affixed-header-elm,.t-table__affixed-header-elm-wrap{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm{opacity:1;overflow:auto;transition:opacity .2s linear}.t-table__affixed-footer-elm{overflow:auto;z-index:50}.t-table--bordered .t-table__affixed-header-elm{border:1px solid var(--td-component-border);border-bottom:0;border-right:0}.t-table--bordered .t-table__affixed-footer-elm{border-bottom:1px solid var(--td-component-border);border-left:1px solid var(--td-component-border)}.t-table--multiple-header.t-table--bordered .t-table__affixed-header-elm{border-right:0}.t-is-hidden{display:none}.t-positive-rotate-90{transform:rotate(90deg)}.t-negative-rotate-180{transform:rotate(180deg)}.t-table__expanded-row>td,.t-table__row--full>td{padding:0}.t-table__row-full-element{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__row-full-inner{left:0;position:sticky}.t-table__row-full-inner:not(.t-table__empty){display:inline-block}.t-table__tree-col{align-items:center;display:flex}.t-table__tree-col--inline{display:inline}.t-table--full-height{height:100%}.t-table--loading .t-table__content{min-height:168px}.t-table--row-draggable tr,.t-table__handle-draggable:hover,.t-table__th--drag-sort{cursor:move}.t-table__ele--draggable-chosen{box-shadow:var(--td-shadow-1)}.t-table:not(.t-table--row-edit) .t-table__cell--editable{cursor:pointer;line-height:var(--td-line-height-body-medium);min-height:22px}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);transition:.2s linear}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon:hover{color:var(--td-brand-color)}.t-table:not(.t-table--row-edit) .t-table__cell--editable:hover{transition:.2s linear}.t-affix .t-table__pagination{background-color:var(--td-bg-color-container)}.t-table--bordered .t-affix .t-table__pagination{border-top:1px solid var(--td-component-border)}.t-table__bottom-content+.t-table__pagination-wrap .t-table__pagination{border:0;padding:0}.t-table--column-resizable:not(.t-table--bordered) th{border-top:1px solid transparent}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th:not(:last-child){border-right:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th{border-top:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child),.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left.t-table__content--scrollable-to-right thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child){border-right:0}.t-table td.t-table__cell-check,.t-table th.t-table__cell-check{height:0;padding:0}.t-table td.t-table__cell-check .t-checkbox__label:empty,.t-table td.t-table__cell-check .t-radio__label:empty,.t-table th.t-table__cell-check .t-checkbox__label:empty,.t-table th.t-table__cell-check .t-radio__label:empty{display:none}.t-table .t-table__cell-check .t-checkbox,.t-table .t-table__cell-check .t-radio,.t-table .t-table__cell-check .t-table__th-cell-inner{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-table td .t-input__tips{position:static}.t-table .t-table__sort-column{background-color:var(--td-bg-color-secondarycontainer)}.t-table__ellipsis-content.t-size-s .t-popup__content,.t-timeline{font:var(--td-font-body-medium)}.t-timeline{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.t-timeline-item{display:flex;flex-direction:row;min-height:72px;position:relative}.t-timeline-item__label.t-timeline-item__label--alternate{position:absolute}.t-timeline-item__wrapper{position:relative;width:8px}.t-timeline-item__wrapper .t-timeline-item__dot{border:2px solid transparent;border-radius:50%;box-sizing:unset;height:4px;position:absolute;top:8px;width:4px}.t-timeline-item__wrapper .t-timeline-item__dot--primary{border-color:var(--td-brand-color)}.t-timeline-item__wrapper .t-timeline-item__dot--default{border-color:var(--td-component-border)}.t-timeline-item__wrapper .t-timeline-item__dot--success{border-color:var(--td-success-color)}.t-timeline-item__wrapper .t-timeline-item__dot--warning{border-color:var(--td-warning-color)}.t-timeline-item__wrapper .t-timeline-item__dot--error{border-color:var(--td-error-color)}.t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;left:50%;position:relative;top:4px;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:50%;position:absolute;top:0;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail{border-left:2px solid transparent;border-color:var(--td-component-border);bottom:0;box-sizing:border-box;height:calc(100% - 24px);left:50%;padding-bottom:var(--td-comp-size-s);position:absolute;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-item__label{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-medium)}.t-timeline-item__content{flex:1;font-size:var(--td-font-size-body-large);padding-left:var(--td-comp-margin-l)}.t-timeline-item--last .t-timeline-item__tail{display:none}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__label{left:0;text-align:right}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__wrapper{margin-left:100px}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__label{right:0;text-align:left}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__wrapper{margin-right:100px}.t-timeline-right .t-timeline-item{flex-direction:row-reverse}.t-timeline-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l);text-align:right}.t-timeline-alternate .t-timeline-item-left{margin-left:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right{flex-direction:row-reverse;margin-right:calc(50% - 4px);text-align:right}.t-timeline-alternate .t-timeline-item-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-alternate .t-timeline-item__label{width:100%}.t-timeline-label.t-timeline-alternate .t-timeline-item-left .t-timeline-item__label--alternate{left:0;padding-right:var(--td-comp-margin-l);text-align:right;transform:translateX(-100%)}.t-timeline-label.t-timeline-alternate .t-timeline-item-right .t-timeline-item__label--alternate{padding-left:var(--td-comp-margin-l);right:0;text-align:left;transform:translateX(100%)}.t-timeline-horizontal{align-items:center;flex-direction:row;min-height:200px}.t-timeline-horizontal .t-timeline-item{flex-direction:column;min-width:160px;padding-right:8px}.t-timeline-horizontal .t-timeline-item__wrapper{height:8px;width:100%}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot{border-radius:50%;height:4px;left:unset;position:absolute;top:50%;transform:translateY(-50%);width:4px}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:0;position:absolute;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail{border:0;border-top:2px solid transparent;border-color:var(--td-component-border);left:calc(8px + var(--td-comp-margin-s));padding-bottom:0;top:50%;transform:translateY(-50%);width:calc(100% - 8px - var(--td-comp-margin-s))}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-horizontal .t-timeline-item__content{flex:unset;padding-left:unset;padding-top:var(--td-comp-margin-l)}.t-timeline-vertical .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-top .t-timeline-item__label--alternate{padding-bottom:0;top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item{flex-direction:column-reverse}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__wrapper{padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-top .t-timeline-item__label--alternate{padding-bottom:var(--td-comp-margin-l);top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom{flex-direction:column-reverse;position:relative;transform:translateY(calc(-100% + 8px))}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:unset}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%)}.t-collapse{background:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-bottom:0;box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-collapse.t--border-less{border:none}.t-collapse.t--border-less .t-collapse-panel__header{border-bottom:none}.t-collapse.t--border-less .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__icon{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon>.t-fake-arrow{transform:rotate(-90deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon--left{margin-right:var(--td-comp-margin-s)}.t-collapse-panel__icon--right{margin-left:var(--td-comp-margin-s)}.t-collapse-panel__icon--active>.t-fake-arrow{transform:rotate(0)}.t-collapse-panel__icon:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-small)}.t-collapse-panel__wrapper{overflow:hidden}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__header{border-bottom:none}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__wrapper .t-collapse-panel__header{align-items:center;border-bottom:1px solid var(--td-component-border);display:flex;font:var(--td-font-title-small);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-collapse-panel__wrapper .t-collapse-panel__header--blank{flex:1}.t-collapse-panel__wrapper .t-collapse-panel__header.t-is-clickable{cursor:pointer}.t-collapse-panel__wrapper .t-collapse-panel__header-left,.t-collapse-panel__wrapper .t-collapse-panel__header-right,.t-collapse-panel__wrapper .t-collapse-panel__header-right-content{display:flex}.t-collapse-panel__wrapper .t-collapse-panel__body{background:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-border);overflow:inherit}.t-collapse-panel__wrapper .t-collapse-panel__body--collapsed{border:none}.t-collapse-panel__wrapper .t-collapse-panel__content{color:var(--td-text-color-secondary);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-m) calc(var(--td-comp-paddingLR-l) + var(--td-comp-margin-xxl))}.t-collapse-panel.t-is-disabled .t-collapse-panel__header{color:var(--td-text-color-disabled);cursor:not-allowed}.t-collapse-panel.t-is-disabled .t-collapse-panel__icon{cursor:not-allowed;pointer-events:none}.t-collapse-panel.t-is-disabled .t-collapse-panel__body{background:var(--td-bg-color-component-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__content{color:var(--td-text-color-disabled)}.t-rate{align-items:center;display:flex}.t-rate .t-rate__star-top{height:100%;left:0;overflow:hidden;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-rate .t-rate__star-bottom,.t-rate .t-rate__star-top{display:grid}.t-rate__list{display:flex;list-style:none;margin:0;padding:0}.t-rate__item{cursor:pointer;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-rate__item:hover{transform:scale(1.33)}.t-rate__item--half .t-rate__star-top{width:50%}.t-rate__item--full .t-rate__star-top{width:100%}.t-rate__text{font:var(--td-font-mark-medium);margin-left:var(--td-comp-margin-l)}.t-rate__text,.t-typography{color:var(--td-text-color-primary)}.t-typography{font:var(--td-font-body-medium);margin:var(--td-comp-margin-m) 0}h1.t-typography{font:var(--td-font-headline-large);margin-top:var(--td-comp-margin-xxxxl)}h1.t-typography,h2.t-typography{margin-bottom:var(--td-comp-margin-l)}h2.t-typography{font:var(--td-font-headline-medium);margin-top:var(--td-comp-margin-xxxl)}h3.t-typography{font:var(--td-font-headline-small);margin-top:var(--td-comp-margin-xxl)}h3.t-typography,h4.t-typography{margin-bottom:var(--td-comp-margin-m)}h4.t-typography{font:var(--td-font-title-large);margin-top:var(--td-comp-margin-xl)}h5.t-typography{font:var(--td-font-title-medium);margin-bottom:var(--td-comp-margin-m);margin-top:var(--td-comp-margin-l)}h6.t-typography{font:var(--td-font-title-small)}.t-typography strong{font-weight:600}.t-typography mark{background-color:#fcdf47}.t-typography code{background-color:var(--td-bg-color-secondarycontainer);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s);transition:background-color .2s;white-space:nowrap}.t-typography code,.t-typography code:hover{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-typography code:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-typography kbd{background-color:var(--td-bg-color-secondarycontainer);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-shadow:0 1px 0 0 var(--td-component-border);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s)}.t-typography--disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-typography--success{color:var(--td-success-color)}.t-typography--warning{color:var(--td-warning-color)}.t-typography--error{color:var(--td-error-color)}.t-typography--secondary{color:var(--td-text-color-secondary)}.t-typography .t-icon-copy,.t-typography-ellipsis-symbol{color:var(--td-brand-color);cursor:pointer}.t-typography .t-icon-copy:hover,.t-typography-ellipsis-symbol:hover{color:var(--td-brand-color-hover)}.t-typography .t-icon-checked{color:var(--td-success-color)}.t-alert{align-items:flex-start;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;opacity:1;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);transition:opacity .2s}.t-alert.t-is-hidden{display:none}.t-alert--closing{opacity:0}.t-alert--info{background-color:var(--td-brand-color-focus)}.t-alert--info .t-alert__icon,.t-alert--info .t-alert__swiper-trigger--active,.t-alert--info .t-alert__swiper-trigger-wrap{color:var(--td-brand-color)}.t-alert--success{background-color:var(--td-success-color-focus)}.t-alert--success .t-alert__icon{color:var(--td-success-color)}.t-alert--success .t-alert__swiper-trigger-wrap{color:var(--td-success-color-focus)}.t-alert--success .t-alert__swiper-trigger--active{color:var(--td-success-color)}.t-alert--warning{background-color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__icon{color:var(--td-warning-color)}.t-alert--warning .t-alert__swiper-trigger-wrap{color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__swiper-trigger--active{color:var(--td-warning-color)}.t-alert--error{background-color:var(--td-error-color-focus)}.t-alert--error .t-alert__icon{color:var(--td-error-color)}.t-alert--error .t-alert__swiper-trigger-wrap{color:var(--td-error-color-focus)}.t-alert--error .t-alert__swiper-trigger--active{color:var(--td-error-color)}.t-alert__icon{display:inherit;font-size:var(--td-line-height-body-medium)}.t-alert__close,.t-alert__icon{flex:0 0 auto;line-height:var(--td-line-height-body-small)}.t-alert__content{flex:1 1 0;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);overflow:hidden}.t-alert__message,.t-alert__title{display:flex;width:100%}.t-alert__title{color:var(--td-text-color-primary);font-weight:700}.t-alert__title+.t-alert__message{margin-top:var(--td-comp-margin-s)}.t-alert__description{color:var(--td-text-color-secondary);flex:0 1 auto;transition:height .2s}.t-alert__operation{color:var(--td-brand-color);cursor:pointer;flex:0 0 auto;padding:0 var(--td-comp-paddingLR-s);transition:color .2s}.t-alert__operation:hover{color:var(--td-brand-color-hover)}.t-alert__operation:active{color:var(--td-brand-color-active)}.t-alert__icon+.t-alert__content{margin-left:var(--td-comp-margin-s)}.t-alert__collapse{color:var(--td-brand-color);cursor:pointer;margin-top:var(--td-comp-margin-s)}.t-alert__close{align-items:center;color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-l);transition:color .2s}.t-alert__close:hover{color:var(--td-text-color-primary)}.t-alert__close>.t-icon{font-size:calc(var(--td-line-height-body-medium) - 2px);padding:calc((var(--td-line-height-body-medium) - var(--td-line-height-body-medium) - 2px)/2) 0}.t-drawer-fade-appear,.t-drawer-fade-enter{opacity:0}.t-drawer-fade-appear,.t-drawer-fade-enter,.t-drawer-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:linear}.t-drawer-fade-appear.t-drawer-fade-appear-active,.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to,.t-drawer-fade-enter.t-drawer-fade-enter-active,.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to{animation-duration:.2s;animation-name:tDrawerFadeIn;animation-play-state:running}.t-drawer-fade-exit.t-drawer-fade-exit-active,.t-drawer-fade-leave-active.t-drawer-fade-leave-to{animation-duration:.2s;animation-name:tDrawerFadeOut;animation-play-state:running}@keyframes tDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDrawerFadeOut{0%{opacity:1}to{opacity:0}}.t-drawer{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:100%;list-style:none;margin:0;outline:none;padding:0;pointer-events:none;position:fixed;width:100%;z-index:1500}.t-drawer,.t-drawer--lock{overflow:hidden}.t-drawer--attach{position:absolute}.t-drawer--left,.t-drawer--right{top:0}.t-drawer--left{left:0}.t-drawer--right{right:0}.t-drawer--bottom,.t-drawer--top{left:0}.t-drawer--top{top:0}.t-drawer--bottom{bottom:0}.t-drawer__mask{background-color:var(--td-mask-active);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s cubic-bezier(.38,0,.24,1);width:100%}.t-drawer__content-wrapper{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);color:var(--td-text-color-secondary);display:flex;flex-direction:column;font-size:var(--td-font-body-medium);height:16px;overflow:hidden;pointer-events:auto;position:relative;transition:transform .28s cubic-bezier(.38,0,.24,1),visibility .28s cubic-bezier(.38,0,.24,1);width:16px}.t-drawer .t-drawer__content-wrapper{height:100%;position:absolute;visibility:hidden;width:100%}.t-drawer .t-drawer__content-wrapper--left,.t-drawer .t-drawer__content-wrapper--right{top:0}.t-drawer .t-drawer__content-wrapper--left{left:0;transform:translateX(-100%)}.t-drawer .t-drawer__content-wrapper--right{right:0;transform:translateX(100%)}.t-drawer .t-drawer__content-wrapper--bottom,.t-drawer .t-drawer__content-wrapper--top{left:0}.t-drawer .t-drawer__content-wrapper--top{top:0;transform:translateY(-100%)}.t-drawer .t-drawer__content-wrapper--bottom{bottom:0;transform:translateY(100%)}.t-drawer__header{align-items:center;border-bottom:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-l)}.t-drawer__body{flex:1;overflow:auto}.t-drawer__body,.t-drawer__footer{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-drawer__footer{background-color:var(--td-bg-color-container);border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;text-align:left;width:100%}.t-drawer__footer .t-button{margin-left:var(--td-comp-margin-s)}.t-drawer__footer .t-button:first-child{margin-left:0}.t-drawer__close-btn{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:var(--td-comp-size-xs);justify-content:center;position:absolute;right:var(--td-comp-margin-s);top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs))/2);transition:background-color .2s;width:var(--td-comp-size-xs)}.t-drawer__close-btn:hover{background-color:var(--td-bg-color-container-hover)}.t-drawer__close-btn:active{background-color:var(--td-bg-color-container-active)}.t-drawer__close-btn .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);vertical-align:unset}.t-drawer--open{height:100%;pointer-events:auto;width:100%}.t-drawer--open>.t-drawer__content-wrapper{visibility:visible}.t-drawer--open>.t-drawer__mask{height:100%;opacity:1;width:100%}.t-drawer--without-mask{pointer-events:none}[tabindex="-1"]:focus{outline:none!important}.t-guide{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-guide--lock{overflow:hidden}.t-guide--absolute{position:absolute}.t-guide--fixed{position:fixed}.t-guide__overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999997}.t-guide__highlight{border-radius:var(--td-radius-default);transition:.2s cubic-bezier(0,0,.15,1);z-index:999998}.t-guide__highlight--dialog{border-radius:var(--td-radius-large)}.t-guide__highlight--mask{box-shadow:0 0 0 0 var(--td-mask-active),var(--td-mask-active) 0 0 0 5000px}.t-guide__highlight--nomask{border:2px solid var(--td-brand-color);border-radius:var(--td-radius-medium);box-sizing:border-box}.t-guide__reference{z-index:999999}.t-guide__wrapper{bottom:0;display:flex;justify-content:center;left:0;padding-top:20vh;position:fixed;right:0;top:0;z-index:999999}.t-guide__wrapper--center{align-items:center;padding-top:0}.t-guide__dialog{animation:tGuideDialogFadeIn .3s ease-out;background:var(--td-bg-color-container);border-radius:var(--td-radius-large);box-sizing:border-box;max-width:500px;min-width:320px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-guide__dialog--nomask{border:1px solid var(--td-component-border)}.t-guide__dialog .t-guide__title{font:var(--td-font-title-medium);font-weight:700}.t-guide__dialog .t-guide__desc{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l)}.t-guide__tooltip{max-height:300px;max-width:600px;min-width:240px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-s)}.t-guide__title{color:var(--td-text-color-primary);font:var(--td-font-title-small);font-weight:700;text-align:left}.t-guide__desc{color:var(--td-text-color-secondary);font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s);text-align:left}.t-guide__action{align-items:center;display:flex}.t-guide__action button{margin-right:var(--td-comp-margin-s)}.t-guide__action button:last-child{margin-right:0}.t-guide__footer{align-items:center;display:flex}.t-guide__footer--popup{margin-top:var(--td-comp-margin-l)}.t-guide__footer--dialog{margin-top:24px}.t-guide__footer--dialog .t-guide__action{display:flex;justify-content:center}.t-guide__counter{color:var(--td-text-color-placeholder);flex:1;font:var(--td-font-body-small);text-align:left}.t-guide__popup .t-guide__popup--content{background:none;box-shadow:none;padding:0}@keyframes tGuideDialogFadeIn{0%{opacity:0}to{opacity:1}}.t-message{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-3),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);width:fit-content}.t-message .t-loading,.t-message>.t-icon,.t-message>[data-t-icon]>.t-icon{color:var(--td-brand-color);flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s)}.t-message.t-is-success .t-loading,.t-message.t-is-success>.t-icon,.t-message.t-is-success>[data-t-icon]>.t-icon{color:var(--td-success-color)}.t-message.t-is-warning .t-loading,.t-message.t-is-warning>.t-icon,.t-message.t-is-warning>[data-t-icon]>.t-icon{color:var(--td-warning-color)}.t-message.t-is-error .t-loading,.t-message.t-is-error>.t-icon,.t-message.t-is-error>[data-t-icon]>.t-icon{color:var(--td-error-color)}.t-message.t-is-closable .t-message__close{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-xxl);margin-right:0}.t-message.t-is-closable .t-message__close .t-icon-close{border-radius:var(--td-radius-default);font-size:calc(var(--td-font-size-body-medium) + 2px);transition:all .2s linear}.t-message.t-is-closable .t-message__close .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-message.t-is-closable .t-message__close .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-message__list{position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} +:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-bg-color-page:var(--td-gray-color-2);--td-bg-color-container:#fff;--td-bg-color-container-hover:var(--td-gray-color-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-container-select:#fff;--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-2);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-hover:var(--td-gray-color-4);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-5);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-7);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12);--td-shadow-2:0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1);--td-shadow-3:0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0,0,0,.08);--td-scrollbar-color:rgba(0,0,0,.1);--td-scrollbar-hover-color:rgba(0,0,0,.3);--td-scroll-track-color:#fff}:root[theme-mode=dark]{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:hsla(0,0%,100%,.9);--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-7);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-9);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.4);--td-mask-disabled:rgba(0,0,0,.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-container-hover:var(--td-gray-color-12);--td-bg-color-container-active:var(--td-gray-color-10);--td-bg-color-container-select:var(--td-gray-color-9);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-11);--td-bg-color-secondarycontainer-active:var(--td-gray-color-9);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-component-hover:var(--td-gray-color-10);--td-bg-color-component-active:var(--td-gray-color-9);--td-bg-color-secondarycomponent:var(--td-gray-color-10);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-9);--td-bg-color-secondarycomponent-active:var(--td-gray-color-8);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-8);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0,0,0,.06),0 1px 10px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.12);--td-shadow-2:0 8px 10px rgba(0,0,0,.12),0 3px 14px rgba(0,0,0,.1),0 5px 5px rgba(0,0,0,.16);--td-shadow-3:0 16px 24px rgba(0,0,0,.14),0 6px 30px rgba(0,0,0,.12),0 8px 10px rgba(0,0,0,.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0,0,0,.55);--td-scrollbar-color:hsla(0,0%,100%,.1);--td-scrollbar-hover-color:hsla(0,0%,100%,.3);--td-scroll-track-color:#333}:root{--td-radius-small:2px;--td-radius-default:3px;--td-radius-medium:6px;--td-radius-large:9px;--td-radius-extraLarge:12px;--td-radius-round:999px;--td-radius-circle:50%;--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:12px;--td-font-size-link-medium:14px;--td-font-size-link-large:16px;--td-font-size-mark-small:12px;--td-font-size-mark-medium:14px;--td-font-size-body-small:12px;--td-font-size-body-medium:14px;--td-font-size-body-large:16px;--td-font-size-title-small:14px;--td-font-size-title-medium:16px;--td-font-size-title-large:20px;--td-font-size-headline-small:24px;--td-font-size-headline-medium:28px;--td-font-size-headline-large:36px;--td-font-size-display-medium:48px;--td-font-size-display-large:64px;--td-line-height-link-small:20px;--td-line-height-link-medium:22px;--td-line-height-link-large:24px;--td-line-height-mark-small:20px;--td-line-height-mark-medium:22px;--td-line-height-body-small:20px;--td-line-height-body-medium:22px;--td-line-height-body-large:24px;--td-line-height-title-small:22px;--td-line-height-title-medium:24px;--td-line-height-title-large:28px;--td-line-height-headline-small:32px;--td-line-height-headline-medium:36px;--td-line-height-headline-large:44px;--td-line-height-display-medium:56px;--td-line-height-display-large:72px;--td-font-link-small:var(--td-font-size-link-small) /var(--td-line-height-link-small) var(--td-font-family);--td-font-link-medium:var(--td-font-size-link-medium) /var(--td-line-height-link-medium) var(--td-font-family);--td-font-link-large:var(--td-font-size-link-large) /var(--td-line-height-link-large) var(--td-font-family);--td-font-mark-small:600 var(--td-font-size-mark-small) /var(--td-line-height-mark-small) var(--td-font-family);--td-font-mark-medium:600 var(--td-font-size-mark-medium) /var(--td-line-height-mark-medium) var(--td-font-family);--td-font-body-small:var(--td-font-size-body-small) /var(--td-line-height-body-small) var(--td-font-family);--td-font-body-medium:var(--td-font-size-body-medium) /var(--td-line-height-body-medium) var(--td-font-family);--td-font-body-large:var(--td-font-size-body-large) /var(--td-line-height-body-large) var(--td-font-family);--td-font-title-small:600 var(--td-font-size-title-small) /var(--td-line-height-title-small) var(--td-font-family);--td-font-title-medium:600 var(--td-font-size-title-medium) /var(--td-line-height-title-medium) var(--td-font-family);--td-font-title-large:600 var(--td-font-size-title-large) /var(--td-line-height-title-large) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-disabled,.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-disabled,.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-disabled,.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-disabled,.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button.t-is-disabled,.t-button.t-is-loading{cursor:not-allowed}.t-button.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding-left:calc(var(--td-comp-paddingLR-s) - 1px);padding-right:calc(var(--td-comp-paddingLR-s) - 1px)}.t-button.t-size-s .t-icon,.t-button.t-size-s .t-loading{font-size:var(--td-font-size-body-medium)}.t-button.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-left:calc(var(--td-comp-paddingLR-xl) - 1px);padding-right:calc(var(--td-comp-paddingLR-xl) - 1px)}.t-button.t-size-l .t-icon,.t-button.t-size-l .t-loading{font-size:var(--td-font-size-title-large)}.t-button--shape-square{padding:0;width:var(--td-comp-size-m)}.t-button--shape-square.t-size-s{padding:0;width:var(--td-comp-size-xs)}.t-button--shape-square.t-size-l{padding:0;width:var(--td-comp-size-xl)}.t-button--shape-round{border-radius:var(--td-radius-round)}.t-button--shape-round.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2)}.t-button--shape-round.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2)}.t-button--shape-circle{border-radius:calc(var(--td-comp-size-m)/2);padding:0;text-align:center;width:var(--td-comp-size-m)}.t-button--shape-circle .t-icon,.t-button--shape-circle .t-loading{font-size:var(--td-font-size-body-large)}.t-button--shape-circle.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2);width:var(--td-comp-size-xs)}.t-button--shape-circle.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2);padding:0;width:var(--td-comp-size-xl)}.t-button.t-size-full-width{display:flex;width:100%}.t-button--ghost{--ripple-color:var(--td-gray-color-10)}.t-button:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-container-active)}.t-button--variant-base:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-component-active)}.t-button--variant-base.t-button--theme-primary:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--theme-success:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-success-color-active)}.t-button--variant-base.t-button--theme-warning:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--theme-danger:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-error-color-active)}.t-icon{display:inline-block;height:1em;vertical-align:middle;width:1em}.t-icon:before{font-family:unset}.t-icon{fill:currentColor}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.t-link{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-link-medium);outline:none;padding:0;position:relative;text-decoration:none;transition:all .2s linear}.t-link .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-s)}.t-link .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-s)}.t-link.t-size-s{font:var(--td-font-link-small)}.t-link.t-size-s .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-xs)}.t-link.t-size-s .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-xs)}.t-link.t-size-l{font:var(--td-font-link-large)}.t-link.t-size-l .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-m)}.t-link.t-size-l .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-m)}.t-link--theme-default{color:var(--td-text-color-primary)}.t-link--theme-default:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-default.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-default.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-is-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-link--theme-default.t-is-disabled:active,.t-link--theme-default.t-is-disabled:hover{color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled.t-is-underline:after{border-color:var(--td-text-color-disabled)}.t-link--theme-primary{color:var(--td-brand-color)}.t-link--theme-primary:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-primary.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-primary.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-is-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled);cursor:not-allowed}.t-link--theme-primary.t-is-disabled:active,.t-link--theme-primary.t-is-disabled:hover{color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled.t-is-underline:after{border-color:var(--td-brand-color-disabled)}.t-link--theme-success{color:var(--td-success-color)}.t-link--theme-success:active{color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-success.t-link--hover-underline:active:after{border-color:var(--td-success-color-active);opacity:1}.t-link--theme-success.t-link--hover-color:hover{color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:active{color:var(--td-success-color-active)}.t-link--theme-success.t-is-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-is-disabled{cursor:not-allowed}.t-link--theme-success.t-is-disabled,.t-link--theme-success.t-is-disabled:active,.t-link--theme-success.t-is-disabled:hover{color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled.t-is-underline:after{border-color:var(--td-success-color-disabled)}.t-link--theme-danger{color:var(--td-error-color)}.t-link--theme-danger:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-danger.t-link--hover-underline:active:after{border-color:var(--td-error-color-active);opacity:1}.t-link--theme-danger.t-link--hover-color:hover{color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-is-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-is-disabled{cursor:not-allowed}.t-link--theme-danger.t-is-disabled,.t-link--theme-danger.t-is-disabled:active,.t-link--theme-danger.t-is-disabled:hover{color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled.t-is-underline:after{border-color:var(--td-error-color-disabled)}.t-link--theme-warning{color:var(--td-warning-color)}.t-link--theme-warning:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-warning.t-link--hover-underline:active:after{border-color:var(--td-warning-color-active);opacity:1}.t-link--theme-warning.t-link--hover-color:hover{color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-is-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-is-disabled{cursor:not-allowed}.t-link--theme-warning.t-is-disabled,.t-link--theme-warning.t-is-disabled:active,.t-link--theme-warning.t-is-disabled:hover{color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled.t-is-underline:after{border-color:var(--td-warning-color-disabled)}.t-row{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-flow:row wrap;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-row--start{justify-content:flex-start}.t-row--center{justify-content:center}.t-row--end{justify-content:flex-end}.t-row--space-between{justify-content:space-between}.t-row--space-around{justify-content:space-around}.t-row--top{align-items:flex-start}.t-row--middle{align-items:center}.t-row--bottom{align-items:flex-end}.t-row--align-start,.t-row--align-top{align-items:flex-start}.t-row--align-center,.t-row--align-middle{align-items:center}.t-row--align-bottom,.t-row--align-end{align-items:flex-end}.t-row--align-stretch{align-items:stretch}.t-row--align-baseline{align-items:baseline}.t-col{box-sizing:border-box;max-width:100%;min-height:1px;position:relative}.t-col-12{display:block;flex:0 0 100%;max-width:100%}.t-col-push-12{left:100%}.t-col-pull-12{right:100%}.t-col-offset-12{margin-left:100%}.t-col-order-12{order:12}.t-col-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-push-11{left:91.66666667%}.t-col-pull-11{right:91.66666667%}.t-col-offset-11{margin-left:91.66666667%}.t-col-order-11{order:11}.t-col-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-push-10{left:83.33333333%}.t-col-pull-10{right:83.33333333%}.t-col-offset-10{margin-left:83.33333333%}.t-col-order-10{order:10}.t-col-9{display:block;flex:0 0 75%;max-width:75%}.t-col-push-9{left:75%}.t-col-pull-9{right:75%}.t-col-offset-9{margin-left:75%}.t-col-order-9{order:9}.t-col-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-push-8{left:66.66666667%}.t-col-pull-8{right:66.66666667%}.t-col-offset-8{margin-left:66.66666667%}.t-col-order-8{order:8}.t-col-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-push-7{left:58.33333333%}.t-col-pull-7{right:58.33333333%}.t-col-offset-7{margin-left:58.33333333%}.t-col-order-7{order:7}.t-col-6{display:block;flex:0 0 50%;max-width:50%}.t-col-push-6{left:50%}.t-col-pull-6{right:50%}.t-col-offset-6{margin-left:50%}.t-col-order-6{order:6}.t-col-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-push-5{left:41.66666667%}.t-col-pull-5{right:41.66666667%}.t-col-offset-5{margin-left:41.66666667%}.t-col-order-5{order:5}.t-col-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-push-4{left:33.33333333%}.t-col-pull-4{right:33.33333333%}.t-col-offset-4{margin-left:33.33333333%}.t-col-order-4{order:4}.t-col-3{display:block;flex:0 0 25%;max-width:25%}.t-col-push-3{left:25%}.t-col-pull-3{right:25%}.t-col-offset-3{margin-left:25%}.t-col-order-3{order:3}.t-col-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-push-2{left:16.66666667%}.t-col-pull-2{right:16.66666667%}.t-col-offset-2{margin-left:16.66666667%}.t-col-order-2{order:2}.t-col-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-push-1{left:8.33333333%}.t-col-pull-1{right:8.33333333%}.t-col-offset-1{margin-left:8.33333333%}.t-col-order-1{order:1}.t-col-0{display:none}.t-col-offset-0{margin-left:0}.t-col-order-0{order:0}.t-col-xs-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xs-push-12{left:100%}.t-col-xs-pull-12{right:100%}.t-col-xs-offset-12{margin-left:100%}.t-col-xs-order-12{order:12}.t-col-xs-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xs-push-11{left:91.66666667%}.t-col-xs-pull-11{right:91.66666667%}.t-col-xs-offset-11{margin-left:91.66666667%}.t-col-xs-order-11{order:11}.t-col-xs-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xs-push-10{left:83.33333333%}.t-col-xs-pull-10{right:83.33333333%}.t-col-xs-offset-10{margin-left:83.33333333%}.t-col-xs-order-10{order:10}.t-col-xs-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xs-push-9{left:75%}.t-col-xs-pull-9{right:75%}.t-col-xs-offset-9{margin-left:75%}.t-col-xs-order-9{order:9}.t-col-xs-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xs-push-8{left:66.66666667%}.t-col-xs-pull-8{right:66.66666667%}.t-col-xs-offset-8{margin-left:66.66666667%}.t-col-xs-order-8{order:8}.t-col-xs-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xs-push-7{left:58.33333333%}.t-col-xs-pull-7{right:58.33333333%}.t-col-xs-offset-7{margin-left:58.33333333%}.t-col-xs-order-7{order:7}.t-col-xs-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xs-push-6{left:50%}.t-col-xs-pull-6{right:50%}.t-col-xs-offset-6{margin-left:50%}.t-col-xs-order-6{order:6}.t-col-xs-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xs-push-5{left:41.66666667%}.t-col-xs-pull-5{right:41.66666667%}.t-col-xs-offset-5{margin-left:41.66666667%}.t-col-xs-order-5{order:5}.t-col-xs-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xs-push-4{left:33.33333333%}.t-col-xs-pull-4{right:33.33333333%}.t-col-xs-offset-4{margin-left:33.33333333%}.t-col-xs-order-4{order:4}.t-col-xs-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xs-push-3{left:25%}.t-col-xs-pull-3{right:25%}.t-col-xs-offset-3{margin-left:25%}.t-col-xs-order-3{order:3}.t-col-xs-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xs-push-2{left:16.66666667%}.t-col-xs-pull-2{right:16.66666667%}.t-col-xs-offset-2{margin-left:16.66666667%}.t-col-xs-order-2{order:2}.t-col-xs-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xs-push-1{left:8.33333333%}.t-col-xs-pull-1{right:8.33333333%}.t-col-xs-offset-1{margin-left:8.33333333%}.t-col-xs-order-1{order:1}.t-col-xs-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xs-push-0{left:auto}.t-col-xs-pull-0{right:auto}.t-col-xs-offset-0{margin-left:0}.t-col-xs-order-0{order:0}@media (min-width:768px){.t-col-sm-12{display:block;flex:0 0 100%;max-width:100%}.t-col-sm-push-12{left:100%}.t-col-sm-pull-12{right:100%}.t-col-sm-offset-12{margin-left:100%}.t-col-sm-order-12{order:12}.t-col-sm-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-sm-push-11{left:91.66666667%}.t-col-sm-pull-11{right:91.66666667%}.t-col-sm-offset-11{margin-left:91.66666667%}.t-col-sm-order-11{order:11}.t-col-sm-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-sm-push-10{left:83.33333333%}.t-col-sm-pull-10{right:83.33333333%}.t-col-sm-offset-10{margin-left:83.33333333%}.t-col-sm-order-10{order:10}.t-col-sm-9{display:block;flex:0 0 75%;max-width:75%}.t-col-sm-push-9{left:75%}.t-col-sm-pull-9{right:75%}.t-col-sm-offset-9{margin-left:75%}.t-col-sm-order-9{order:9}.t-col-sm-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-sm-push-8{left:66.66666667%}.t-col-sm-pull-8{right:66.66666667%}.t-col-sm-offset-8{margin-left:66.66666667%}.t-col-sm-order-8{order:8}.t-col-sm-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-sm-push-7{left:58.33333333%}.t-col-sm-pull-7{right:58.33333333%}.t-col-sm-offset-7{margin-left:58.33333333%}.t-col-sm-order-7{order:7}.t-col-sm-6{display:block;flex:0 0 50%;max-width:50%}.t-col-sm-push-6{left:50%}.t-col-sm-pull-6{right:50%}.t-col-sm-offset-6{margin-left:50%}.t-col-sm-order-6{order:6}.t-col-sm-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-sm-push-5{left:41.66666667%}.t-col-sm-pull-5{right:41.66666667%}.t-col-sm-offset-5{margin-left:41.66666667%}.t-col-sm-order-5{order:5}.t-col-sm-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-sm-push-4{left:33.33333333%}.t-col-sm-pull-4{right:33.33333333%}.t-col-sm-offset-4{margin-left:33.33333333%}.t-col-sm-order-4{order:4}.t-col-sm-3{display:block;flex:0 0 25%;max-width:25%}.t-col-sm-push-3{left:25%}.t-col-sm-pull-3{right:25%}.t-col-sm-offset-3{margin-left:25%}.t-col-sm-order-3{order:3}.t-col-sm-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-sm-push-2{left:16.66666667%}.t-col-sm-pull-2{right:16.66666667%}.t-col-sm-offset-2{margin-left:16.66666667%}.t-col-sm-order-2{order:2}.t-col-sm-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-sm-push-1{left:8.33333333%}.t-col-sm-pull-1{right:8.33333333%}.t-col-sm-offset-1{margin-left:8.33333333%}.t-col-sm-order-1{order:1}.t-col-sm-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-sm-push-0{left:auto}.t-col-sm-pull-0{right:auto}.t-col-sm-offset-0{margin-left:0}.t-col-sm-order-0{order:0}}@media (min-width:992px){.t-col-md-12{display:block;flex:0 0 100%;max-width:100%}.t-col-md-push-12{left:100%}.t-col-md-pull-12{right:100%}.t-col-md-offset-12{margin-left:100%}.t-col-md-order-12{order:12}.t-col-md-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-md-push-11{left:91.66666667%}.t-col-md-pull-11{right:91.66666667%}.t-col-md-offset-11{margin-left:91.66666667%}.t-col-md-order-11{order:11}.t-col-md-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-md-push-10{left:83.33333333%}.t-col-md-pull-10{right:83.33333333%}.t-col-md-offset-10{margin-left:83.33333333%}.t-col-md-order-10{order:10}.t-col-md-9{display:block;flex:0 0 75%;max-width:75%}.t-col-md-push-9{left:75%}.t-col-md-pull-9{right:75%}.t-col-md-offset-9{margin-left:75%}.t-col-md-order-9{order:9}.t-col-md-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-md-push-8{left:66.66666667%}.t-col-md-pull-8{right:66.66666667%}.t-col-md-offset-8{margin-left:66.66666667%}.t-col-md-order-8{order:8}.t-col-md-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-md-push-7{left:58.33333333%}.t-col-md-pull-7{right:58.33333333%}.t-col-md-offset-7{margin-left:58.33333333%}.t-col-md-order-7{order:7}.t-col-md-6{display:block;flex:0 0 50%;max-width:50%}.t-col-md-push-6{left:50%}.t-col-md-pull-6{right:50%}.t-col-md-offset-6{margin-left:50%}.t-col-md-order-6{order:6}.t-col-md-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-md-push-5{left:41.66666667%}.t-col-md-pull-5{right:41.66666667%}.t-col-md-offset-5{margin-left:41.66666667%}.t-col-md-order-5{order:5}.t-col-md-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-md-push-4{left:33.33333333%}.t-col-md-pull-4{right:33.33333333%}.t-col-md-offset-4{margin-left:33.33333333%}.t-col-md-order-4{order:4}.t-col-md-3{display:block;flex:0 0 25%;max-width:25%}.t-col-md-push-3{left:25%}.t-col-md-pull-3{right:25%}.t-col-md-offset-3{margin-left:25%}.t-col-md-order-3{order:3}.t-col-md-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-md-push-2{left:16.66666667%}.t-col-md-pull-2{right:16.66666667%}.t-col-md-offset-2{margin-left:16.66666667%}.t-col-md-order-2{order:2}.t-col-md-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-md-push-1{left:8.33333333%}.t-col-md-pull-1{right:8.33333333%}.t-col-md-offset-1{margin-left:8.33333333%}.t-col-md-order-1{order:1}.t-col-md-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-md-push-0{left:auto}.t-col-md-pull-0{right:auto}.t-col-md-offset-0{margin-left:0}.t-col-md-order-0{order:0}}@media (min-width:1200px){.t-col-lg-12{display:block;flex:0 0 100%;max-width:100%}.t-col-lg-push-12{left:100%}.t-col-lg-pull-12{right:100%}.t-col-lg-offset-12{margin-left:100%}.t-col-lg-order-12{order:12}.t-col-lg-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-lg-push-11{left:91.66666667%}.t-col-lg-pull-11{right:91.66666667%}.t-col-lg-offset-11{margin-left:91.66666667%}.t-col-lg-order-11{order:11}.t-col-lg-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-lg-push-10{left:83.33333333%}.t-col-lg-pull-10{right:83.33333333%}.t-col-lg-offset-10{margin-left:83.33333333%}.t-col-lg-order-10{order:10}.t-col-lg-9{display:block;flex:0 0 75%;max-width:75%}.t-col-lg-push-9{left:75%}.t-col-lg-pull-9{right:75%}.t-col-lg-offset-9{margin-left:75%}.t-col-lg-order-9{order:9}.t-col-lg-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-lg-push-8{left:66.66666667%}.t-col-lg-pull-8{right:66.66666667%}.t-col-lg-offset-8{margin-left:66.66666667%}.t-col-lg-order-8{order:8}.t-col-lg-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-lg-push-7{left:58.33333333%}.t-col-lg-pull-7{right:58.33333333%}.t-col-lg-offset-7{margin-left:58.33333333%}.t-col-lg-order-7{order:7}.t-col-lg-6{display:block;flex:0 0 50%;max-width:50%}.t-col-lg-push-6{left:50%}.t-col-lg-pull-6{right:50%}.t-col-lg-offset-6{margin-left:50%}.t-col-lg-order-6{order:6}.t-col-lg-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-lg-push-5{left:41.66666667%}.t-col-lg-pull-5{right:41.66666667%}.t-col-lg-offset-5{margin-left:41.66666667%}.t-col-lg-order-5{order:5}.t-col-lg-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-lg-push-4{left:33.33333333%}.t-col-lg-pull-4{right:33.33333333%}.t-col-lg-offset-4{margin-left:33.33333333%}.t-col-lg-order-4{order:4}.t-col-lg-3{display:block;flex:0 0 25%;max-width:25%}.t-col-lg-push-3{left:25%}.t-col-lg-pull-3{right:25%}.t-col-lg-offset-3{margin-left:25%}.t-col-lg-order-3{order:3}.t-col-lg-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-lg-push-2{left:16.66666667%}.t-col-lg-pull-2{right:16.66666667%}.t-col-lg-offset-2{margin-left:16.66666667%}.t-col-lg-order-2{order:2}.t-col-lg-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-lg-push-1{left:8.33333333%}.t-col-lg-pull-1{right:8.33333333%}.t-col-lg-offset-1{margin-left:8.33333333%}.t-col-lg-order-1{order:1}.t-col-lg-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-lg-push-0{left:auto}.t-col-lg-pull-0{right:auto}.t-col-lg-offset-0{margin-left:0}.t-col-lg-order-0{order:0}}@media (min-width:1400px){.t-col-xl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xl-push-12{left:100%}.t-col-xl-pull-12{right:100%}.t-col-xl-offset-12{margin-left:100%}.t-col-xl-order-12{order:12}.t-col-xl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xl-push-11{left:91.66666667%}.t-col-xl-pull-11{right:91.66666667%}.t-col-xl-offset-11{margin-left:91.66666667%}.t-col-xl-order-11{order:11}.t-col-xl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xl-push-10{left:83.33333333%}.t-col-xl-pull-10{right:83.33333333%}.t-col-xl-offset-10{margin-left:83.33333333%}.t-col-xl-order-10{order:10}.t-col-xl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xl-push-9{left:75%}.t-col-xl-pull-9{right:75%}.t-col-xl-offset-9{margin-left:75%}.t-col-xl-order-9{order:9}.t-col-xl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xl-push-8{left:66.66666667%}.t-col-xl-pull-8{right:66.66666667%}.t-col-xl-offset-8{margin-left:66.66666667%}.t-col-xl-order-8{order:8}.t-col-xl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xl-push-7{left:58.33333333%}.t-col-xl-pull-7{right:58.33333333%}.t-col-xl-offset-7{margin-left:58.33333333%}.t-col-xl-order-7{order:7}.t-col-xl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xl-push-6{left:50%}.t-col-xl-pull-6{right:50%}.t-col-xl-offset-6{margin-left:50%}.t-col-xl-order-6{order:6}.t-col-xl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xl-push-5{left:41.66666667%}.t-col-xl-pull-5{right:41.66666667%}.t-col-xl-offset-5{margin-left:41.66666667%}.t-col-xl-order-5{order:5}.t-col-xl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xl-push-4{left:33.33333333%}.t-col-xl-pull-4{right:33.33333333%}.t-col-xl-offset-4{margin-left:33.33333333%}.t-col-xl-order-4{order:4}.t-col-xl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xl-push-3{left:25%}.t-col-xl-pull-3{right:25%}.t-col-xl-offset-3{margin-left:25%}.t-col-xl-order-3{order:3}.t-col-xl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xl-push-2{left:16.66666667%}.t-col-xl-pull-2{right:16.66666667%}.t-col-xl-offset-2{margin-left:16.66666667%}.t-col-xl-order-2{order:2}.t-col-xl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xl-push-1{left:8.33333333%}.t-col-xl-pull-1{right:8.33333333%}.t-col-xl-offset-1{margin-left:8.33333333%}.t-col-xl-order-1{order:1}.t-col-xl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xl-push-0{left:auto}.t-col-xl-pull-0{right:auto}.t-col-xl-offset-0{margin-left:0}.t-col-xl-order-0{order:0}}@media (min-width:1880px){.t-col-xxl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xxl-push-12{left:100%}.t-col-xxl-pull-12{right:100%}.t-col-xxl-offset-12{margin-left:100%}.t-col-xxl-order-12{order:12}.t-col-xxl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xxl-push-11{left:91.66666667%}.t-col-xxl-pull-11{right:91.66666667%}.t-col-xxl-offset-11{margin-left:91.66666667%}.t-col-xxl-order-11{order:11}.t-col-xxl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xxl-push-10{left:83.33333333%}.t-col-xxl-pull-10{right:83.33333333%}.t-col-xxl-offset-10{margin-left:83.33333333%}.t-col-xxl-order-10{order:10}.t-col-xxl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xxl-push-9{left:75%}.t-col-xxl-pull-9{right:75%}.t-col-xxl-offset-9{margin-left:75%}.t-col-xxl-order-9{order:9}.t-col-xxl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xxl-push-8{left:66.66666667%}.t-col-xxl-pull-8{right:66.66666667%}.t-col-xxl-offset-8{margin-left:66.66666667%}.t-col-xxl-order-8{order:8}.t-col-xxl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xxl-push-7{left:58.33333333%}.t-col-xxl-pull-7{right:58.33333333%}.t-col-xxl-offset-7{margin-left:58.33333333%}.t-col-xxl-order-7{order:7}.t-col-xxl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xxl-push-6{left:50%}.t-col-xxl-pull-6{right:50%}.t-col-xxl-offset-6{margin-left:50%}.t-col-xxl-order-6{order:6}.t-col-xxl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xxl-push-5{left:41.66666667%}.t-col-xxl-pull-5{right:41.66666667%}.t-col-xxl-offset-5{margin-left:41.66666667%}.t-col-xxl-order-5{order:5}.t-col-xxl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xxl-push-4{left:33.33333333%}.t-col-xxl-pull-4{right:33.33333333%}.t-col-xxl-offset-4{margin-left:33.33333333%}.t-col-xxl-order-4{order:4}.t-col-xxl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xxl-push-3{left:25%}.t-col-xxl-pull-3{right:25%}.t-col-xxl-offset-3{margin-left:25%}.t-col-xxl-order-3{order:3}.t-col-xxl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xxl-push-2{left:16.66666667%}.t-col-xxl-pull-2{right:16.66666667%}.t-col-xxl-offset-2{margin-left:16.66666667%}.t-col-xxl-order-2{order:2}.t-col-xxl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xxl-push-1{left:8.33333333%}.t-col-xxl-pull-1{right:8.33333333%}.t-col-xxl-offset-1{margin-left:8.33333333%}.t-col-xxl-order-1{order:1}.t-col-xxl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xxl-push-0{left:auto}.t-col-xxl-pull-0{right:auto}.t-col-xxl-offset-0{margin-left:0}.t-col-xxl-order-0{order:0}}.t-layout{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-layout,.t-layout__direction-vertical{background:var(--td-bg-color-page);display:flex;flex:auto;flex-direction:column}.t-layout--with-sider,.t-layout__direction-horizontal{flex-direction:row}.t-layout__header{background-color:var(--td-bg-color-container);height:var(--td-comp-size-xxxl)}.t-layout__content{flex:auto}.t-layout__sider{background:var(--td-bg-color-container);position:relative;transition:all .2s;width:232px}.t-layout__footer{color:var(--td-text-color-placeholder);padding:24px}.t-divider{border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;margin:var(--td-comp-margin-xxl) 0;padding:0}.t-divider--dashed{border-top-style:dashed}.t-divider--horizontal{display:flex;width:100%}.t-divider--vertical{border-left:1px solid var(--td-border-level-1-color);border-top:0;display:inline-block;height:.9em;margin:0 var(--td-comp-margin-m);vertical-align:middle}.t-divider--with-text{align-items:center;border-top:0;display:flex;white-space:nowrap}.t-divider--with-text .t-divider__inner-text:not(:empty){display:inline-block;padding:0 1em}.t-divider--with-text:after,.t-divider--with-text:before{border-top:1px solid var(--td-border-level-1-color);content:"";width:50%}.t-divider--with-text-left:before{width:5%}.t-divider--with-text-left:after,.t-divider--with-text-right:before{width:95%}.t-divider--with-text-right:after{width:5%}.t-divider--dashed:after,.t-divider--dashed:before{border-top:1px dashed var(--td-border-level-1-color)}.t-divider--vertical.t-divider--dashed{border-left:1px dashed var(--td-border-level-1-color)}.t-space{display:inline-flex}.t-space .t-space-item{width:inherit}.t-space-align-start{align-items:flex-start}.t-space-align-end{align-items:flex-end}.t-space-align-baseline{align-items:baseline}.t-space-align-center{align-items:center}.t-space-vertical{flex-direction:column}.t-space-vertical>.t-space-item-separator{width:100%}.t-space.t-space--break-line{flex-wrap:wrap}.t-space.t-space--polyfill{display:flex}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-horizontal{margin-left:calc(var(--td-space-column-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-vertical{margin-top:calc(var(--td-space-row-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-horizontal>*{margin-left:var(--td-space-column-gap)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-vertical>*{margin-top:var(--td-space-row-gap)}.t-descriptions{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-descriptions__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);font-weight:600;margin-bottom:var(--td-comp-margin-m)}.t-descriptions__body{border-collapse:collapse;font:var(--td-font-body-medium);width:100%}.t-descriptions__body.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.t-descriptions__body .t-descriptions__label{color:var(--td-text-color-placeholder)}.t-descriptions__body--fixed{table-layout:fixed}.t-descriptions__body--border>tbody>tr>td{border:1px solid var(--td-component-border)}.t-descriptions__body--border .t-descriptions__label{background-color:var(--td-bg-color-secondarycontainer)}.t-descriptions__body--border .t-descriptions__label:hover{background-color:var(--td-bg-color-container-hover)}.t-affix{position:fixed;z-index:500}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;z-index:5500}.t-popup__content{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;word-break:break-all}.t-popup__arrow{height:8px;position:absolute;width:8px;z-index:1}.t-popup__arrow:before{background:var(--td-bg-color-container);content:"";height:8px;position:absolute;transform:rotate(45deg);width:8px}.t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=top] .t-popup__arrow:before{border-top-left-radius:100%;box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=top-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=top] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=top-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=bottom] .t-popup__arrow{top:-4px}.t-popup[data-popper-placement^=bottom] .t-popup__arrow:before{border-bottom-right-radius:100%;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right)}.t-popup[data-popper-placement=bottom-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=bottom] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=bottom-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=left] .t-popup__arrow{right:-4px}.t-popup[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-top)}.t-popup[data-popper-placement=left-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=left] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=left-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup[data-popper-placement^=right] .t-popup__arrow{left:-4px}.t-popup[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-right),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=right-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=right] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=right-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup--animation-enter,.t-popup--animation-enter-from,.t-popup--animation-exiting,.t-popup--animation-leave-to{opacity:0;visibility:hidden}.t-popup--animation-enter-to,.t-popup--animation-entering,.t-popup--animation-leave,.t-popup--animation-leave-from{opacity:1;transform:none;visibility:visible}.t-popup--animation-enter-active{transition:opacity .2s linear}.t-popup--animation-leave-active{transition:opacity .2s cubic-bezier(0,0,.15,1),visibility .2s cubic-bezier(.82,0,1,.9)}.t-popup--animation-expand-enter-active[data-popper-placement^=top]{animation:t-popup-animation-expand-in-top .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=top]{animation:t-popup-animation-expand-out-top .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-top{0%{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-top{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}}.t-popup--animation-expand-enter-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-in-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-out-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}}.t-anchor{--td-anchor-space-base:var(--td-size-6);background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:200px}.t-anchor .t-is-active>a{color:var(--td-brand-color)}.t-anchor__line{background-color:var(--td-component-stroke);cursor:pointer;height:100%;left:0;position:absolute;top:0;width:1px}.t-anchor__line-cursor-wrapper{display:block;height:0;opacity:0;position:absolute;transition:all .2s cubic-bezier(.24,.41,.51,.9)}.t-anchor__line-cursor-wrapper .t-anchor__line-cursor{background-color:var(--td-brand-color);height:100%;width:1px}.t-anchor__item{--level:1;display:flex;flex-direction:column;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingTB-l);padding-left:calc(var(--level)*var(--td-anchor-space-base))}.t-anchor__item.t-is-active{font-weight:500}.t-anchor__item-link{color:var(--td-text-color-primary);display:inline-block;overflow:hidden;position:relative;text-align:justify;text-decoration:none;word-break:break-all}.t-anchor a{transition:color .2s linear}.t-anchor a:hover{color:var(--td-brand-color);cursor:pointer}.t-anchor a:active{color:var(--td-brand-color-active)}.t-anchor.t-size-s{width:120px}.t-anchor.t-size-l{width:320px}.t-anchor__target{color:var(--td-text-color-primary);cursor:pointer;font:var(--td-font-body-medium)}@keyframes fadeOut{0%{opacity:1}to{display:none;opacity:0}}.t-anchor__target .t-anchor__copy{display:none;margin:0 0 0 var(--td-comp-margin-xs)}.t-anchor__target:hover .t-anchor__copy{display:inline-block}.t-anchor__target:target:after{animation:fadeOut 2s linear 2s 1;animation-fill-mode:forwards;background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";display:inline-block;height:6px;vertical-align:middle;width:6px}.t-tooltip .t-popup__content{border:0;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;margin-bottom:1px;max-width:480px;word-break:break-word;z-index:5600}.t-tooltip--default .t-popup__content{background:var(--td-gray-color-13);box-shadow:inset 0 .5px 0 var(--td-gray-color-9),inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9);color:var(--td-text-color-anti)}.t-tooltip--default[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:inset -.5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=top] .t-popup__arrow:before{box-shadow:inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=bottom] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--primary .t-popup__content{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-tooltip--success .t-popup__content{background:var(--td-success-color-light);color:var(--td-success-color)}.t-tooltip--danger .t-popup__content{background:var(--td-error-color-light);color:var(--td-error-color)}.t-tooltip--warning .t-popup__content{background:var(--td-warning-color-light);color:var(--td-warning-color)}.t-tooltip .t-popup__arrow{background:inherit;height:auto}.t-tooltip .t-popup__arrow:before{background:inherit}.t-tooltip--noshadow .t-popup__content,.t-tooltip--noshadow[data-popper-placement] .t-popup__arrow:before{box-shadow:none}@keyframes changeColor{0%{color:var(--td-brand-color-hover)}to{color:var(--td-brand-color-active)}}.t-breadcrumb{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-breadcrumb__separator{align-items:center;display:flex;margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__item,.t-breadcrumb__separator .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item{align-items:center;display:flex;text-decoration:none}.t-breadcrumb__item.t-is-current{color:var(--td-text-color-primary)}.t-breadcrumb__item.t-is-current .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item:last-child{color:var(--td-text-color-primary)}.t-breadcrumb__item:last-child .t-breadcrumb__separator{display:none}.t-breadcrumb__item .t-icon{font-size:var(--td-font-size-body-large)}.t-breadcrumb__item .t-link{color:inherit;text-decoration:none}.t-breadcrumb__item .t-link:hover{color:var(--td-brand-color)}.t-breadcrumb__item .t-is-disabled{cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner{color:var(--td-text-color-disabled)}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:hover{color:var(--td-text-color-disabled);cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:active{animation:none}.t-breadcrumb__item--arrow,.t-breadcrumb__item--slash{color:var(--td-text-color-placeholder);display:inline-block;line-height:0;margin:0 var(--td-comp-margin-xs);vertical-align:middle}.t-breadcrumb__inner{display:inline-block;font:var(--td-font-body-medium);vertical-align:middle;word-break:break-all}.t-breadcrumb__inner .t-icon{margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__select{position:relative}.t-breadcrumb__select:hover .t-breadcrumb__option{display:block}.t-breadcrumb__select-item:hover .t-icon{color:var(--td-brand-color)}.t-breadcrumb__option{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);display:none;left:50%;max-width:120px;position:absolute;top:28px;transform:translateX(-50%);z-index:20}.t-breadcrumb__option-item{color:var(--td-text-color-primary);font:var(--td-font-body-medium);overflow:hidden;padding:8px;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb__option-item.t-is-active,.t-breadcrumb__option-item:hover{color:var(--td-brand-color)}.t-breadcrumb__inner-msg{background:var(--td-bg-color-container);border-radius:calc(var(--td-radius-default)*.5);bottom:30px;box-shadow:var(--td-shadow-2);color:var(--td-text-color-primary);display:none;left:50%;padding:8px;position:absolute;transform:translateX(-50%);width:300px;z-index:20}.t-breadcrumb__inner-msg:before{border-color:var(--td-bg-color-container) transparent transparent transparent;border-style:solid;border-width:8px 6px 0;bottom:-8px;content:"";height:0;left:50%;margin-left:-4px;position:absolute;width:0;z-index:20}.t-breadcrumb--text-overflow{align-items:center;display:flex;position:relative}.t-breadcrumb--text-overflow:hover .t-breadcrumb__inner-msg{display:block}.t-breadcrumb--text-overflow .t-breadcrumb__inner{align-items:center;display:flex;max-width:120px;transition:color .2s linear}.t-breadcrumb--text-overflow .t-breadcrumb__inner-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb--text-overflow .t-breadcrumb__inner:hover{color:var(--td-brand-color);cursor:pointer}.t-breadcrumb--text-overflow .t-breadcrumb__inner:active{animation:changeColor .2s linear}.t-dropdown{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-2);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);font-size:var(--td-font-size-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-dropdown,.t-dropdown__menu{border-radius:var(--td-radius-medium)}.t-dropdown__menu{display:flex;flex-direction:column;gap:2px;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-dropdown__menu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__menu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__menu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__menu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__menu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__menu .t-divider{color:var(--td-brand-color-light);margin:var(--td-comp-margin-xs) var(--td-comp-margin-s) var(--td-comp-margin-xxs) var(--td-comp-margin-s);width:calc(100% - var(--td-comp-margin-s)*2)}.t-dropdown__menu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--right{left:calc(100% - 14px)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--left{right:calc(100% - 14px)}.t-dropdown__submenu{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);display:none;overflow-x:visible;overflow-y:auto;padding:var(--td-pop-padding-m);position:absolute;z-index:1100}@-moz-document url-prefix(){.t-dropdown__submenu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__submenu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__submenu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__submenu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__submenu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__submenu ul{display:grid;gap:2px;list-style:none;padding-left:0}.t-dropdown__submenu--disabled{visibility:hidden}.t-dropdown__submenu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__submenu-wrapper--right{left:calc(100% - 6px)}.t-dropdown__submenu-wrapper--left{right:calc(100% - 6px)}.t-dropdown__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:flex;font:var(--td-font-body-medium);outline:none;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.82,0,1,.9);user-select:none;white-space:nowrap}.t-dropdown__item-icon{color:currentcolor;display:flex;font-size:var(--td-font-size-body-large);margin-right:var(--td-comp-margin-s)}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{align-items:center;display:flex;flex:1;justify-content:space-between;max-width:100%}.t-dropdown__item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentcolor;flex-shrink:0;font-size:var(--td-font-size-body-large)}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:hidden;padding:0}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{overflow:hidden;position:relative;user-select:none}.t-tabs__operations{background-color:var(--td-bg-color-container);border-bottom:1px solid var(--td-component-stroke);display:flex;flex-direction:row;position:absolute}.t-tabs__operations--left{left:0;z-index:2}.t-tabs__operations--right{right:0;z-index:2}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__operations--right .t-tabs__nav-action{align-items:center;display:flex;flex:1;width:100%}.t-tabs__btn{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-large);height:100%;justify-content:center;opacity:1;transition:all .24s cubic-bezier(.38,0,.24,1);width:40px;z-index:1}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translateX(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translateX(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{bottom:0;top:auto}.t-tabs__nav-container.t-is-bottom:after,.t-tabs__nav-container.t-is-top:after{background-color:var(--td-component-stroke);content:"";height:1px;left:0;position:absolute;right:auto;width:100%}.t-tabs__nav-container.t-is-bottom:after{bottom:auto;top:0}.t-tabs__nav-container.t-is-left:after{left:auto;right:0}.t-tabs__nav-container.t-is-left:after,.t-tabs__nav-container.t-is-right:after{background-color:var(--td-component-stroke);bottom:auto;content:"";height:100%;position:absolute;top:0;width:1px}.t-tabs__nav-container.t-is-right:after{left:0;right:auto}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{background-color:transparent;content:""}.t-tabs__scroll-btn{background-color:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:block;font:var(--td-font-body-large);height:100%;position:absolute;text-align:center;width:40px;z-index:1}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap;z-index:1}.t-tabs__nav-wrap{display:flex;font-size:0;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);border-radius:var(--td-radius-small);position:absolute;transition:all .24s cubic-bezier(.38,0,.24,1);z-index:1}.t-tabs__bar.t-is-top{bottom:0;height:3px;left:0}.t-tabs__bar.t-is-bottom{height:3px;left:0;top:0}.t-tabs__bar.t-is-left{right:0;top:0;width:3px}.t-tabs__bar.t-is-right{left:0;top:0;width:3px}.t-tabs__nav-item{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font:var(--td-font-body-medium);overflow:hidden;position:relative;z-index:0}.t-tabs__nav-item,.t-tabs__nav-item-wrapper{--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav-item-wrapper{border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s)}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px currentcolor}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;margin-right:var(--td-comp-margin-s);width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--suffix>.t-input__suffix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--suffix>.t-input__suffix-icon{font-size:var(--td-font-size-body-large)}.t-input .t-input__suffix-clear{cursor:pointer}.t-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs)}.t-input .t-input__prefix>.t-icon,.t-input .t-input__suffix>.t-icon{font-size:inherit}.t-input .t-input__prefix>.t-icon{color:var(--td-text-color-placeholder);font-size:16px}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--drag-sort .t-input__prefix .t-tag{cursor:move}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;margin:0;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon .t-cascader__item-label,.t-cascader__item--with-icon .t-checkbox__label{margin-right:16px}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--required-right label:after{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-left:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%)}.t-slider__mark-text:first-child{transform:translateX(0)}.t-slider__mark-text:last-child{transform:translateX(-100%)}.t-slider--vertical{display:flex;height:100%;justify-content:center;padding:0;position:relative}.t-slider--vertical .t-slider__rail{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__track{top:auto;width:var(--td-size-2)}.t-slider--vertical .t-slider__step{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__handle{margin-left:-5px;margin-top:-6px;top:auto;transform:translateY(50%)}.t-slider--vertical .t-slider__mark{height:100%;left:12px;top:0;width:18px}.t-slider--vertical .t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:1px;left:4px;width:var(--td-size-2)}.t-slider--vertical .t-slider__mark-text{margin-left:var(--td-comp-margin-xxs);margin-top:0;transform:translateY(-50%)}.t-slider--vertical .t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;left:50%;line-height:normal;outline:none;position:absolute;text-align:center;top:auto;transform:translate(-50%,50%);user-select:none;z-index:2}.t-is-disabled{cursor:not-allowed}.t-is-disabled .t-slider__track{background-color:var(--td-brand-color-disabled)}.t-is-disabled .t-slider__rail{background-color:var(--td-bg-color-component-disabled)}.t-is-disabled .t-slider__handle{border:2px solid var(--td-brand-color-disabled)}.t-is-disabled .t-slider__button{border-color:var(--td-brand-color-disabled);outline:none}.t-is-disabled .t-slider__mark-text{color:var(--td-text-color-disabled);cursor:not-allowed}.t-is-disabled .t-slider__button-wrapper{cursor:not-allowed}.t-switch{align-items:center;background-color:var(--td-bg-color-secondarycomponent);border:0;border-radius:var(--td-radius-round);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);list-style:none;margin:0;min-width:calc(var(--td-comp-size-xxs)/.618);outline:none;padding:0;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);user-select:none;vertical-align:middle}.t-switch:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-switch__handle{align-items:center;border-radius:var(--td-radius-round);box-shadow:var(--td-shadow-1);display:flex;height:calc(var(--td-comp-size-xxs) - 8px);justify-content:center;left:4px;position:absolute;top:4px;transition:all .2s cubic-bezier(.38,0,.24,1);width:calc(var(--td-comp-size-xxs) - 8px)}.t-switch__handle .t-icon{color:transparent;font-size:calc(var(--td-comp-size-xxs) - 4px)}.t-switch__handle:before{background-color:#fff;border-radius:var(--td-radius-round);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-6px}.t-switch:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-6px;right:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__content{opacity:0}.t-switch__content{align-items:center;box-sizing:border-box;color:var(--td-text-color-anti);display:inline-flex;font-size:var(--td-font-size-body-small);min-width:calc(var(--td-comp-size-xxs)/.618);padding:0 var(--td-comp-margin-xs) 0 calc(var(--td-comp-size-xxs)/.618/2 + 2px);transition:padding .2s cubic-bezier(.38,0,.24,1),opacity .2s linear}.t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-is-checked{background-color:var(--td-brand-color)}.t-switch.t-is-checked:hover{background-color:var(--td-brand-color-hover)}.t-switch.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxs) - 5px);left:calc(100% - 2.5px);top:2.5px;transform:translate(-100%);width:calc(var(--td-comp-size-xxs) - 5px)}.t-switch.t-is-checked .t-switch__content{color:var(--td-text-color-anti);padding:0 calc(var(--td-comp-size-xxs)/.618/2 + 2px) 0 var(--td-comp-margin-xs)}.t-switch.t-is-loading{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-loading .t-loading{display:inline-flex}.t-switch.t-is-loading .t-switch__handle .t-icon{color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading.t-is-checked{background-color:var(--td-brand-color-focus)}.t-switch.t-is-loading.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-focus)}.t-switch.t-is-disabled{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-disabled .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked{background-color:var(--td-brand-color-disabled)}.t-switch.t-is-disabled.t-is-checked .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-disabled)}.t-switch.t-size-l{border-radius:var(--td-radius-round);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:calc(var(--td-comp-size-xs)/.618)}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-8px}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-8px;right:0}.t-switch.t-size-l .t-switch__handle{height:calc(var(--td-comp-size-xs) - 10px);left:5px;top:5px;width:calc(var(--td-comp-size-xs) - 10px)}.t-switch.t-size-l .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xs) - 4px)}.t-switch.t-size-l .t-switch__content{min-width:calc(var(--td-comp-size-xs)/.618);padding:0 var(--td-comp-margin-s) 0 calc(var(--td-comp-size-xs)/.618/2 + 4px)}.t-switch.t-size-l .t-switch__content,.t-switch.t-size-l .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-l.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xs) - 6px);left:calc(100% - 3px);top:3px;width:calc(var(--td-comp-size-xs) - 6px)}.t-switch.t-size-l.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xs)/.618/2 + 4px) 0 var(--td-comp-margin-s)}.t-switch.t-size-s{border-radius:var(--td-radius-round);height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:calc(var(--td-comp-size-xxxs)/.618)}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-4px}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-4px;right:0}.t-switch.t-size-s .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 6px);left:3px;top:3px;width:calc(var(--td-comp-size-xxxs) - 6px)}.t-switch.t-size-s .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s .t-switch__content{font-size:9px;min-width:calc(var(--td-comp-size-xxxs)/.618);padding:0 var(--td-comp-margin-xxs) 0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px)}.t-switch.t-size-s .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-s.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 4px);left:calc(100% - 2px);top:2px;width:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px) 0 var(--td-comp-margin-xxs)}.t-textarea{list-style:none;margin:0;padding:0;position:relative}.t-textarea,.t-textarea__inner{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);width:100%}.t-textarea__inner{background-color:var(--td-bg-color-specialcomponent);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-xxxl);outline:none;padding:calc(var(--td-comp-size-m)/2 - var(--td-line-height-body-medium)/2) var(--td-comp-paddingLR-s);resize:vertical;transition:all .2s cubic-bezier(.38,0,.24,1),height 0s}.t-textarea__inner:focus,.t-textarea__inner:hover{border-color:var(--td-brand-color)}.t-textarea__inner:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-textarea__inner::placeholder{color:var(--td-text-color-placeholder)}.t-textarea__inner.t-is-success{border-color:var(--td-success-color)}.t-textarea__inner.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-textarea__inner.t-is-warning{border-color:var(--td-warning-color)}.t-textarea__inner.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-textarea__inner.t-is-error{border-color:var(--td-error-color)}.t-textarea__inner.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-textarea__info_wrapper{column-gap:var(--td-comp-margin-s);display:flex;justify-content:space-between}.t-textarea__info_wrapper_align{justify-content:end}.t-textarea__limit{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-textarea .t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-textarea .t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-textarea .t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-textarea .t-resize-none{resize:none}.t-textarea__tips{display:inline-block;font:var(--td-font-body-small);height:auto;min-height:var(--td-comp-size-xs)}.t-textarea__tips--normal{color:var(--td-text-color-placeholder)}.t-textarea__tips--success{color:var(--td-success-color)}.t-textarea__tips--warning{color:var(--td-warning-color)}.t-textarea__tips--error{color:var(--td-error-color)}.t-transfer{align-items:stretch;background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:row;font:var(--td-font-body-medium);list-style:none;margin:0;max-height:100%;padding:0;position:relative}.t-transfer__list{border:0;display:inline-block;height:200px;min-width:200px;padding-top:var(--td-comp-size-xxl);position:relative;vertical-align:middle;word-break:break-word}.t-transfer__list-source,.t-transfer__list-target{border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-medium)}.t-transfer__list-header{box-sizing:border-box;display:flex;height:var(--td-comp-size-xxl);justify-content:space-between;line-height:var(--td-comp-size-xxl);margin:0 var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:calc(200px - var(--td-comp-margin-s)*2)}.t-transfer__list-header+:not(.t-transfer__list--with-search){border-top:1px solid var(--td-border-level-1-color)}.t-transfer__list-header .t-checkbox{margin-right:0}.t-transfer__list-header .t-checkbox__label{margin:0}.t-transfer__list-header div{display:flex}.t-transfer__list-header div>span{margin-left:var(--td-comp-margin-s)}.t-transfer__list-header>span{color:var(--td-text-color-placeholder)}.t-transfer__list-body{box-sizing:border-box;height:100%;position:relative}.t-transfer__list--with-search{border-top:0;padding-top:var(--td-comp-size-m)}.t-transfer__list-content{height:100%;overflow:auto;width:100%}.t-transfer__list-content .t-checkbox-group{flex-direction:column;gap:var(--td-comp-margin-xs);margin:var(--td-comp-margin-s) 0;width:100%}.t-transfer__list-content .t-checkbox-group .t-checkbox{--ripple-color:var(--td-bg-color-container-active);margin-right:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox+.t-checkbox{margin-left:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox__label{flex:1;margin:0}.t-transfer__list-content .t-checkbox-group .t-checkbox__label>span{display:inline-block;margin-left:var(--td-comp-margin-s)}.t-transfer__list .t-transfer__list-item{border-radius:var(--td-radius-default);cursor:pointer;display:flex;margin:0 var(--td-comp-margin-s);padding:var(--td-comp-paddingLR-xs) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list .t-transfer__list-item:first-child{margin-top:0}.t-transfer__list .t-transfer__list-item.t-is-disabled:hover{background:transparent}.t-transfer__list-item:hover{background:var(--td-bg-color-container-hover);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list-item.t-is-checked{background:var(--td-brand-color-light)}.t-transfer__list-wrapper{height:100%;overflow:auto;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative;width:100%}.t-transfer__list-pagination{height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-m);vertical-align:middle}.t-transfer__list-footer{border-top:1px solid var(--td-border-level-1-color);bottom:0;left:0;position:absolute;width:100%}.t-transfer__operations{display:inline-flex;flex-direction:column;gap:var(--td-comp-margin-l);margin:auto var(--td-comp-margin-s);overflow:hidden;vertical-align:middle}.t-transfer__operations .t-icon{font-size:var(--td-comp-size-xxxs)}.t-transfer__operations .t-icon+.t-button__text{margin-left:0}.t-transfer__empty{color:var(--td-text-color-placeholder);left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.t-transfer__search-wrapper{box-sizing:border-box;padding:0 var(--td-comp-margin-s);position:absolute;top:0;width:100%}.t-transfer__search .t-transfer__list{height:240px}.t-transfer--with-tree .t-transfer__list{height:auto}.t-transfer--with-tree .t-transfer__list .t-tree{margin:var(--td-comp-margin-s) 0;padding:0 var(--td-comp-paddingLR-m)}.t-transfer__pagination .t-transfer__list{height:240px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2)}.t-transfer__footer .t-transfer__list{height:248px;padding-bottom:48px}.t-transfer__pagination.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2 + 48px)}.t-transfer__search.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:48px}.t-transfer__search.t-transfer__pagination .t-transfer__list{height:280px;padding-bottom:48px}.t-transfer__search.t-transfer__footer.t-transfer__pagination .t-transfer__list{height:328px;padding-bottom:88px}.t-transfer__wrapper .t-transfer__list{height:320px;overflow:scroll;width:206px}.flex-center{align-items:center;display:flex;justify-content:center}.t-time-picker,.t-time-range-picker{background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:240px}.t-time-picker.t-is-disabled,.t-time-range-picker.t-is-disabled{cursor:not-allowed}.t-time-picker>:active,.t-time-picker>:focus,.t-time-range-picker>:active,.t-time-range-picker>:focus{outline:0}.t-time-picker__group,.t-time-range-picker__group{position:relative}.t-time-picker__group.active,.t-time-range-picker__group.active{border:1px solid var(--td-brand-color);box-shadow:0 0 2px 2px var(--td-brand-color-focus)}.t-time-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear,.t-time-range-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear{display:block}.t-time-picker__group-text,.t-time-range-picker__group-text{color:var(--td-text-color-primary)}.t-time-picker__group input,.t-time-range-picker__group input{cursor:pointer}.t-time-range-picker{width:auto}.t-time-picker__panel{--timePickerPanelOffsetTop:15;--timePickerPanelOffsetBottom:21;background:transparent;border-radius:var(--td-radius-default);display:inline-block;font:var(--td-font-body-medium);position:relative;width:280px}.t-time-picker__panel-body{align-items:center;display:flex;height:calc(var(--td-comp-size-xs)*7 + var(--td-size-3)*7 + var(--td-size-3));justify-content:center;position:relative;user-select:none;width:100%}.t-time-picker__panel-body-active-mask{display:flex;height:var(--td-comp-size-xs);position:absolute;top:50%;width:100%}.t-time-picker__panel-body-active-mask>div{background-color:var(--td-brand-color-light);border-radius:var(--td-radius-default);flex:1;height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);transform:translateY(calc(0px - var(--td-comp-size-xs)/2 - var(--td-size-3)/2))}.t-time-picker__panel-body-scroll{flex:1;height:100%;list-style:none;margin:0;overflow-y:scroll;padding:0;position:relative;text-align:center}.t-time-picker__panel-body-scroll::-webkit-scrollbar{width:0}.t-time-picker__panel-body-scroll:after,.t-time-picker__panel-body-scroll:before{content:"";display:block;height:50%}.t-time-picker__panel-body-scroll:before{height:calc(50% - var(--timePickerPanelOffsetTop, 0)*1px)}.t-time-picker__panel-body-scroll:after{height:calc(50% - var(--timePickerPanelOffsetBottom, 0)*1px)}.t-time-picker__panel-body-scroll:last-child{border-right:0}.t-time-picker__panel-body-scroll-item{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font:var(--td-font-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);text-align:center;transition:.2s linear}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):hover{color:var(--td-text-color-primary)}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):active{background-color:var(--td-bg-color-container-hover)}.t-time-picker__panel-body-scroll-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-time-picker__panel-body-scroll-item.t-is-hidden{cursor:not-allowed;display:none}.t-time-picker__panel-body-scroll-item.t-is-current{color:var(--td-brand-color)}.t-time-picker__panel-section-body{padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-time-picker__panel-section-footer{align-items:center;background-color:transparent;border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;width:100%}.t-tree{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-tree.t-is-disabled,.t-tree.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item.t-is-active{background-color:var(--td-bg-color-container-hover);color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__empty{color:var(--td-text-color-disabled)}.t-tree__branch{display:block}.t-tree__item{--level:0;--hscale:2;align-items:center;backface-visibility:hidden;cursor:default;display:flex;flex-wrap:nowrap;padding:0 0 0 calc(var(--td-comp-margin-xxl)*var(--level));perspective:1000;position:relative;transform:translateZ(0);will-change:opacity,max-height}.t-tree__item .t-icon,.t-tree__item .t-loading{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 2px);position:relative;z-index:2}.t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__item .t-checkbox{align-items:center;font-size:0}.t-tree__item .t-checkbox__input{flex-shrink:0}.t-tree__item .t-checkbox__label{overflow:hidden;text-overflow:ellipsis}.t-tree__item .t-tree__icon--default .t-icon{transform:rotate(0)}.t-tree__item--open .t-icon{color:var(--td-text-color-brand)}.t-tree__item--open .t-tree__icon--default .t-icon{transform:rotate(90deg)}.t-tree__item--clickable{cursor:pointer}.t-tree__item--locked{color:var(--td-text-color-disabled)}.t-tree__item--matched{color:inherit}.t-tree__item--draggable{cursor:pointer}.t-tree__item--draggable:hover{background-clip:content-box;background-color:var(--td-bg-color-container-hover)}.t-tree__item--draggable:after{background-clip:content-box;border-radius:1px;content:"";display:block;height:2px;left:0;padding:inherit;position:absolute;right:0;top:-1px}.t-tree__item--tip-bottom:after,.t-tree__item--tip-top:after{background-color:var(--td-brand-color)}.t-tree__item--tip-bottom:after{bottom:-1px;top:unset}.t-tree__item--tip-highlight{background-clip:content-box;background-color:var(--td-brand-color-light)}.t-tree__item:before{content:"";display:block;flex:0 0 auto;height:calc(var(--td-comp-size-m) + 2px);width:0}.t-tree--block-node .t-tree__label{flex:1}.t-tree--hoverable .t-tree__label:not(.t-is-active):not(.t-is-checked):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__line{--level:0;--color:var(--td-border-level-1-color);--space:var(--td-comp-margin-xxl);--iconSize:16px;bottom:var(--td-comp-margin-l);left:calc(var(--td-comp-margin-xxl)*var(--level) - var(--td-comp-margin-l));pointer-events:none;width:1px}.t-tree__line,.t-tree__line:before{height:calc(var(--td-comp-size-m) + 2px);position:absolute}.t-tree__line:before{border-bottom:1px solid var(--color);border-left:1px solid var(--color);bottom:0;content:"";display:block;left:0;width:var(--td-comp-margin-m)}.t-tree__line--first:before{height:var(--td-line-height-body-medium)}.t-tree__line--leaf:before{width:var(--td-comp-margin-m)}.t-tree__icon{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:0;position:relative;text-align:center;user-select:none;width:calc(var(--td-font-size-body-medium) + 2px)}.t-tree__icon:after{border-radius:var(--td-radius-default);content:"";display:block;height:calc(var(--td-font-size-body-medium) + 6px);left:-2px;position:absolute;top:-2px;width:calc(var(--td-font-size-body-medium) + 6px)}.t-tree__icon:not(:empty):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__icon:empty{cursor:auto}.t-tree__label{--ripple-color:var(--td-bg-color-container-active);word-wrap:normal;border-radius:var(--td-radius-default);cursor:pointer;flex:1;flex-wrap:nowrap;margin-left:var(--td-comp-margin-xs);overflow:hidden;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xs);text-overflow:ellipsis;white-space:nowrap}.t-tree__label.t-is-checked{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__label::selection{background-color:transparent}.t-is-active .t-tree__label{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__space{display:block;flex:1 0 auto}.t-tree__operations{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto}.t-tree__operations .t-icon{cursor:pointer}.t-tree__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:default}.t-tree__item.t-is-disabled .t-checkbox{cursor:default}.t-tree__item--hidden{display:none}.t-tree--transition .t-tree__label{transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon{transition:color,transform .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon:after,.t-tree--transition .t-tree__icon:not(:empty):hover{transition:.2s linear}.t-tree--transition .t-tree__icon--default .t-icon{transition:color,transform .2s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__item--visible{display:flex;max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1;transition:opacity .15s linear .15s,max-height .15s linear 0s}.t-tree--transition .t-tree__item--hidden{animation:initial;display:flex;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .15s linear 0s,max-height .15s linear .15s;user-select:none}.t-tree--transition .t-tree__item--enter-active{animation:t-tree-toggle .3s linear}.t-tree--transition .t-tree__item--leave-active{animation:t-tree-toggle .3s linear reverse forwards}.t-tree__lazyload,.t-tree__vscroll{overflow-y:auto}.t-tree__vscroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-tree--scrolling .t-tree__item{will-change:auto}.t-tree--scrolling .t-tree__item--enter,.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--hidden,.t-tree--scrolling .t-tree__item--leave,.t-tree--scrolling .t-tree__item--leave-active .t-tree__item--leave-to,.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .v-enter,.t-tree--scrolling .v-leave{animation:none;transition:none}.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--visible{max-height:none}.t-tree--scrolling .t-tree__item--leave-active,.t-tree--scrolling .t-tree__item--leave-to{max-height:0}@keyframes t-tree-toggle{0%{max-height:0;opacity:0}50%{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:0}to{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1}}.t-tree-select{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tree-select--without-input input{display:none}.t-tree-select--without-input .t-input__suffix-icon{margin-left:auto}.t-tree-select .t-fake-arrow{color:var(--td-text-color-placeholder);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tree-select .t-fake-arrow--highlight{color:var(--td-text-color-brand)}.t-tree-select .t-fake-arrow--disable{color:var(--td-text-color-disabled)}.t-tree-select--placeholder{color:var(--td-text-color-placeholder)}.t-tree-select.t-single-suffix{padding-right:20px}.t-tree-select.t-tag-prefix{padding-left:4px}.t-tree-select-popup .t-popup__content{max-height:300px;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-tree-select-popup .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tree-select-popup .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-color-picker__panel{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);padding:0;user-select:none;width:256px}.t-popup__content .t-color-picker__panel{background:transparent;box-shadow:unset}.t-color-picker{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-color-picker.t-popup__content{box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-color-picker__icon{align-items:center;background:transparent;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font-size:var(--td-comp-size-xxxs);justify-content:center;transition:.2s linear}.t-color-picker__icon:hover{background:var(--td-bg-color-container-hover);transition:.2s linear}.t-color-picker__icon.t-is-disabled{color:var(--td-text-color-disabled);pointer-events:none}.t-color-picker__head{align-items:center;display:flex;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;z-index:2}.t-color-picker__head .t-color-picker__close{flex-shrink:0}.t-color-picker__head+.t-color-picker__body{padding-top:0}.t-color-picker__body{padding:var(--td-pop-padding-xl);padding-bottom:calc(var(--td-pop-padding-xl) - 4px)}.t-color-picker__thumb{background:var(--td-text-color-anti);border-color:currentcolor;border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;color:var(--td-text-color-brand);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));outline:none;padding:2px;position:absolute;width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));z-index:1}.t-color-picker__thumb:before{background:currentcolor;border-radius:var(--td-radius-circle);content:"";display:block;height:100%;width:100%}.t-color-picker__saturation{background:transparent;border-radius:var(--td-radius-default);height:160px;overflow:hidden;position:relative}.t-color-picker__saturation:after,.t-color-picker__saturation:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.t-color-picker__saturation:before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation:after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{border-radius:var(--td-radius-circle);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));transform:translate(-50%,-50%);width:calc(var(--td-comp-size-xxxs) + var(--td-size-1))}.t-color-picker__slider-wrapper{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2);position:relative}.t-color-picker__slider-wrapper--hue-type{background:red}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__slider-padding{border-radius:4px;height:8px;left:0;position:absolute;top:0;width:100%}.t-color-picker__slider{border-radius:4px;color:transparent;cursor:pointer;height:8px;outline:none;position:relative;z-index:1}.t-color-picker__slider .t-color-picker__thumb{top:50%;transform:translate(calc(var(--td-comp-size-xxxs)*-.5 + var(--td-size-1)*-.5),-50%)}.t-color-picker__slider .t-color-picker__rail{border-radius:inherit;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.t-color-picker__alpha,.t-color-picker__format{margin:var(--td-comp-margin-m) 0 0 0}.t-color-picker__hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.t-color-picker__alpha .t-color-picker__rail{background:linear-gradient(90deg,transparent,currentcolor)}.t-color-picker__sliders-wrapper{align-items:center;display:flex;margin:var(--td-comp-margin-m) 0}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px;border-radius:var(--td-radius-default);flex-shrink:0;height:var(--td-comp-size-s);margin-left:var(--td-comp-margin-m);overflow:hidden;width:var(--td-comp-size-s)}.t-color-picker__sliders-preview-inner{display:block;height:100%;width:100%}.t-color-picker__gradient{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-m);padding:0}.t-color-picker__gradient-slider{flex:1}.t-color-picker__gradient-degree{flex-shrink:0;margin-left:var(--td-comp-margin-m);position:relative;width:var(--td-comp-size-xxl)}.t-color-picker__gradient-degree .t-input{font:var(--td-font-body-small);margin:0}.t-color-picker__gradient-degree .t-input-number{padding:0;width:100%}.t-color-picker__gradient .gradient-thumbs{border-radius:inherit;cursor:pointer;height:100%;left:0;list-style:none;margin:0;padding:0;position:absolute;top:0;width:100%}.t-color-picker__gradient .gradient-thumbs__item{cursor:pointer;left:0;top:50%;transform:translate(-50%,-50%);z-index:0}.t-color-picker__gradient .gradient-thumbs__item:before{display:none}.t-color-picker__gradient .gradient-thumbs__item.t-is-active{outline:2px solid var(--td-component-border);z-index:1}.t-color-picker__gradient .gradient-thumbs__item-inner{border-radius:var(--td-radius-circle);display:block;height:100%;overflow:hidden;width:100%}.t-color-picker__gradient .gradient-thumbs__item-inner:before{background-color:currentcolor;content:"";display:block;height:100%;width:100%}.t-color-picker__format{align-items:center;display:flex;justify-content:space-between}.t-color-picker__format--item:first-child{flex-shrink:0}.t-color-picker__format--item:last-child{flex:1}.t-color-picker__format--item .t-input.t-size-m,.t-color-picker__format--item .t-size-m{font:var(--td-font-body-small)}.t-color-picker__format--item .t-input-number .t-input{margin:0}.t-color-picker__format--item .input-group{align-items:center;display:flex;justify-content:space-around;margin-left:var(--td-comp-margin-s)}.t-color-picker__format--item .input-group__item{flex:1;margin-left:-1px;width:0}.t-color-picker__format--item .input-group__item .t-input{padding:0 1px}.t-color-picker__format--item .input-group__item .t-input:focus,.t-color-picker__format--item .input-group__item .t-input:focus-within,.t-color-picker__format--item .input-group__item .t-input:hover{z-index:1}.t-color-picker__format--item .input-group__item:not(:first-child):not(:last-child) .t-input{border-radius:0}.t-color-picker__format--item .input-group__item:first-child:not(:last-child) .t-input{border-bottom-right-radius:0;border-top-right-radius:0}.t-color-picker__format--item .input-group__item:last-child:not(:first-child) .t-input{border-bottom-left-radius:0;border-top-left-radius:0}.t-color-picker__format--item .input-group .t-input-number{max-width:100%;padding:0;width:100%}.t-color-picker__format-mode-select{display:flex;width:72px}.t-color-picker__format-mode-select .t-input,.t-color-picker__format-mode-select .t-select{padding-right:0}.t-color-picker__format-mode-select .t-input--prefix>.t-input__suffix{padding-left:0}.t-color-picker__format-mode-select .t-select__right-icon{margin-right:var(--td-comp-margin-xs)}.t-color-picker__swatches-wrap{position:relative}.t-color-picker__swatches-wrap,.t-color-picker__swatches-wrap .t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-comp-margin-m)}.t-color-picker__swatches-wrap .t-color-picker__swatches--title{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-small);justify-content:space-between;padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions{align-items:center;display:flex;font-size:0;margin-left:auto}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions .t-color-picker__icon{height:var(--td-comp-size-xxxs);margin-left:var(--td-comp-margin-s);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--items{box-sizing:content-box;display:grid;gap:calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9) calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9);grid-template-columns:repeat(10,var(--td-comp-size-xxxs));left:calc(8px - var(--td-pop-padding-xl));list-style:none;max-height:calc(var(--td-comp-size-xxxs)*4 + 113.77778px - var(--td-pop-padding-xl)*2/9*4 - var(--td-comp-size-xxxs)*10/9*4);overflow-x:hidden;overflow-y:auto;padding:calc(var(--td-pop-padding-xl) - 8px);position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-xxxs);justify-content:center;overflow:hidden;padding:0;position:relative;transform-origin:center;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:hover{transform:scale(1.25);transform-origin:center}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__color{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);flex-shrink:0;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__inner{display:block;height:100%;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:not(.t-is-active):hover{padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--color,.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--item__color{border-color:var(--td-text-color-brand)}.t-color-picker__swatches-wrap .t-color-picker__swatches--color{border-radius:var(--td-radius-default);box-sizing:border-box;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--inner{border-radius:var(--td-radius-default);box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);display:block;height:100%;width:100%}.t-color-picker__trigger--default{align-items:center;display:inline-flex}.t-color-picker__trigger--default>.t-input{width:fit-content}.t-color-picker__trigger--default .t-input{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-paddingLR-xs)}.t-color-picker__trigger--default__color{align-items:center;box-sizing:border-box;display:flex;height:100%;width:100%}.t-color-picker__trigger--default__color .color-inner{border:1px solid var(--td-scrollbar-color);border-radius:var(--td-radius-small);color:transparent;display:block;height:calc(var(--td-comp-size-xs) - 2px);position:relative;width:calc(var(--td-comp-size-xs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-s{height:calc(var(--td-comp-size-xxs) - 2px);width:calc(var(--td-comp-size-xxs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-l{height:calc(var(--td-comp-size-s) - 2px);width:calc(var(--td-comp-size-s) - 2px)}.t-color-picker__gradient-slider{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2)}.t-color-picker__gradient-slider .t-color-picker--bg-alpha{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__panel.t-is-disabled .t-color-picker__saturation,.t-color-picker__panel.t-is-disabled .t-color-picker__slider,.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item{cursor:not-allowed;opacity:.8}.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs,.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs__item{cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item:hover{padding:0}.t-color-picker__select-options>.t-popup__content{box-shadow:var(--td-shadow-1),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-image__wrapper{background:var(--td-bg-color-secondarycontainer);position:relative;z-index:1}.t-image__wrapper--shape-square{border-radius:0}.t-image__wrapper--shape-round{border-radius:var(--td-radius-medium)}.t-image__wrapper--shape-circle{border-radius:50%}.t-image__wrapper--gallery{border-radius:var(--td-radius-medium)}.t-image__wrapper--gallery .t-image{position:relative;z-index:5}.t-image__wrapper--need-hover{cursor:pointer}.t-image{border-radius:inherit;height:100%;position:relative;width:100%;z-index:inherit}.t-image--fit-fill{object-fit:fill}.t-image--fit-contain{object-fit:contain}.t-image--fit-cover{object-fit:cover}.t-image--fit-scale-down{object-fit:scale-down}.t-image--fit-none{object-fit:none}.t-image--position-center{object-position:center}.t-image--position-bottom{object-position:bottom}.t-image--position-top{object-position:top}.t-image--position-left{object-position:left}.t-image--position-right{object-position:right}.t-image__gallery-shadow{background:hsla(0,0%,93%,.26);border-radius:var(--td-radius-medium);bottom:24px;left:0;position:absolute;right:-24px;top:24px;z-index:3}.t-image__gallery-shadow:after,.t-image__gallery-shadow:before{border-radius:var(--td-radius-medium);content:"";left:0;position:absolute}.t-image__gallery-shadow:after{background:hsla(0,0%,93%,.8);bottom:-16px;right:16px;top:-16px;z-index:4}.t-image__gallery-shadow:before{background:hsla(0,0%,93%,.5);bottom:-8px;right:8px;top:-8px;z-index:2}.t-image__placeholder{align-items:center;display:flex;justify-content:center;z-index:0}.t-image__overlay-content,.t-image__placeholder{height:100%;left:0;position:absolute;top:0;width:100%}.t-image__overlay-content{opacity:1;transition:visibility 0s,opacity .2s linear;visibility:visible;z-index:6}.t-image__overlay-content--hidden{opacity:0;visibility:hidden}.t-image__error,.t-image__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:1}.t-image__loading{color:var(--td-text-color-secondary)}.t-image__error{color:var(--td-text-color-disabled)}.t-avatar{align-items:center;background:var(--td-brand-color-focus);box-sizing:border-box;box-sizing:content-box;color:var(--td-text-color-primary);color:var(--td-text-color-brand);display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-size-body-large);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);list-style:none;margin:0;overflow:hidden;padding:0;position:relative;vertical-align:middle;white-space:nowrap;width:var(--td-comp-size-m)}.t-avatar.t-avatar__icon{font-size:var(--td-comp-size-xxs)}.t-avatar--circle{border-radius:var(--td-radius-circle)}.t-avatar--round{border-radius:var(--td-radius-default)}.t-avatar.t-size-s{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-avatar.t-size-s.t-avatar__icon{font-size:var(--td-comp-size-xxxs)}.t-avatar.t-size-l{font-size:var(--td-font-size-title-large);height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-avatar.t-size-l.t-avatar__icon{font-size:var(--td-comp-size-xs)}.t-avatar>.t-image__wrapper{max-height:100%;max-width:100%}.t-avatar-group{align-items:center;display:inline-flex}.t-avatar-group .t-avatar{border:2px solid var(--td-bg-color-container)}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child){margin-right:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-s{margin-right:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-l{margin-right:calc(0px - var(--td-size-4))}.t-avatar-group.t-avatar--offset-left .t-avatar:first-child{z-index:49}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(2){z-index:48}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(3){z-index:47}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(4){z-index:46}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(5){z-index:45}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(6){z-index:44}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(7){z-index:43}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(8){z-index:42}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(9){z-index:41}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(10){z-index:40}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(11){z-index:39}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(12){z-index:38}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(13){z-index:37}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(14){z-index:36}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(15){z-index:35}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(16){z-index:34}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(17){z-index:33}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(18){z-index:32}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(19){z-index:31}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(20){z-index:30}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(21){z-index:29}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(22){z-index:28}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(23){z-index:27}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(24){z-index:26}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(25){z-index:25}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(26){z-index:24}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(27){z-index:23}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(28){z-index:22}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(29){z-index:21}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(30){z-index:20}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(31){z-index:19}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(32){z-index:18}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(33){z-index:17}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(34){z-index:16}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(35){z-index:15}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(36){z-index:14}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(37){z-index:13}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(38){z-index:12}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(39){z-index:11}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(40){z-index:10}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(41){z-index:9}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(42){z-index:8}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(43){z-index:7}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(44){z-index:6}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(45){z-index:5}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(46){z-index:4}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(47){z-index:3}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(48){z-index:2}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(49){z-index:1}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(50){z-index:0}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child){margin-left:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-s{margin-left:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-l{margin-left:calc(0px - var(--td-size-4))}.t-badge{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-badge--circle,.t-badge--dot,.t-badge--round{box-sizing:content-box;color:var(--td-text-color-anti);font:var(--td-font-body-small);position:absolute;right:0;text-align:center;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.t-badge--static{display:inline-block;position:static;transform:none}.t-badge--dot{background-color:var(--td-error-color);border-radius:var(--td-radius-circle);height:6px;margin-top:1px;right:1px;width:6px}.t-badge--circle,.t-badge--round{background-color:var(--td-error-color);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxs) - 8px)/2)}.t-badge--circle.t-size-s,.t-badge--round.t-size-s{height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxxs) - 8px)/2)}.t-badge--circle{border-radius:calc(var(--td-comp-size-xxs)/2)}.t-badge--round{border-radius:var(--td-radius-default)}.t-calendar{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-calendar .t-is-disabled.t-calendar__table-body-cell:hover{cursor:not-allowed}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display{color:var(--td-text-color-disabled)}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display:hover{box-shadow:none}.t-calendar--full{min-width:560px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--full .t-calendar__control{padding:0}.t-calendar--full .t-calendar__title{flex:1;font:var(--td-font-title-large)}.t-calendar--full .t-calendar__panel{margin-top:var(--td-comp-margin-xxxl);position:relative}.t-calendar--full .t-calendar__panel-title{color:var(--td-text-color-primary);font:var(--td-font-title-large);position:absolute}.t-calendar--full .t-calendar__table-body-cell,.t-calendar--full .t-calendar__table-head-cell{margin-right:var(--td-comp-margin-s);position:relative}.t-calendar--full .t-calendar__table-body-cell{align-items:flex-end;border-top:2px solid var(--td-border-level-1-color);display:flex;flex-direction:column;height:104px;justify-content:flex-start;line-height:var(--td-line-height-body-medium);margin-left:0;padding:0;transition-duration:.2s;transition-property:border-top,background;transition-timing-function:linear}.t-calendar--full .t-calendar__table-body-cell-content{box-sizing:border-box;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xs);width:100%}.t-calendar--full .t-calendar__table-body-cell.t-is-checked,.t-calendar--full .t-calendar__table-body-cell.t-is-checked:hover{background-color:var(--td-brand-color-light)}.t-calendar--full .t-calendar__table-body-cell--now{border-top:2px solid var(--td-brand-color)}.t-calendar--full .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-text-color-primary)}.t-calendar--full .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:90px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--card{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:280px}.t-calendar--card .t-calendar__control{padding:0}.t-calendar--card .t-calendar__control-section{justify-content:flex-start;width:100%}.t-calendar--card .t-calendar__control-section-cell:last-child{display:block;flex:1;text-align:right}.t-calendar--card .t-calendar__panel.t-calendar__panel--month{height:200px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year{height:168px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year .t-calendar__table-body-cell-display{min-width:var(--td-comp-size-xxl)}.t-calendar--card .t-calendar__table{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-self:start;width:100%}.t-calendar--card .t-calendar__table-body-row,.t-calendar--card .t-calendar__table-head-row{background:var(--td-bg-color-container);flex:1}.t-calendar--card .t-calendar__table-body-cell,.t-calendar--card .t-calendar__table-head-cell{box-sizing:border-box;font:var(--td-font-body-medium);height:100%;justify-content:center;width:100%}.t-calendar--card .t-calendar__table-body-cell-display,.t-calendar--card .t-calendar__table-head-cell-display{line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-calendar--card .t-calendar__table-body{align-items:center;display:flex;flex:1;flex-direction:column;justify-self:center}.t-calendar--card .t-calendar__table-body-cell{align-items:center;justify-content:center}.t-calendar--card .t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container)}.t-calendar--card .t-calendar__table-body-cell-display{border-radius:var(--td-radius-default);font:var(--td-font-body-medium);padding-bottom:calc(var(--td-comp-paddingTB-xxs)/2);padding-top:calc(var(--td-comp-paddingTB-xxs)/2);text-align:center;transition:all .2s linear}.t-calendar--card .t-calendar__table-body-cell-display:hover{box-shadow:inset 0 0 0 1px var(--td-brand-color);transition:box-shadow .2s linear}.t-calendar--card .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{background-color:var(--td-brand-color-light);color:var(--td-brand-color);position:relative}.t-calendar--card .t-is-checked .t-calendar__table-body-cell-display{background:var(--td-brand-color);border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-calendar--card .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-calendar__control,.t-calendar__control-section{align-items:center;display:flex;justify-content:flex-end}.t-calendar__control-section{height:100%}.t-calendar__control-section:last-child{margin-right:0}.t-calendar__control-section-cell{display:flex;height:100%;margin-right:var(--td-comp-margin-s)}.t-calendar__control-section-cell .t-radio-group{vertical-align:bottom}.t-calendar__control-section-cell .t-select{display:inline}.t-calendar__control-section-cell:last-child{margin-right:0}.t-calendar__panel{box-sizing:border-box;width:100%}.t-calendar__table{border-collapse:collapse;border-spacing:0;height:100%;width:100%}.t-calendar__table-body,.t-calendar__table-head{width:100%}.t-calendar__table-body-row,.t-calendar__table-head-row{display:flex;width:100%}.t-calendar__table-body-cell,.t-calendar__table-head-cell{color:var(--td-text-color-primary);cursor:default;display:flex;flex:1;font:var(--td-font-title-small);justify-content:flex-end;padding:0}.t-calendar__table-body-cell:last-child,.t-calendar__table-head-cell:last-child{margin-right:0}.t-calendar__table-head{display:block;margin-bottom:var(--td-comp-margin-s)}.t-calendar__table-head-row{background:var(--td-bg-color-container);padding-bottom:0}.t-calendar__table-head-cell{color:var(--td-text-color-secondary);font:var(--td-font-title-small);height:100%}.t-calendar__table-body-cell{cursor:pointer}.t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container-hover);transition:background-color .2s linear}.t-calendar__table-body-cell-display{color:var(--td-text-color-primary);font:var(--td-font-title-small)}.t-card{background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1)}.t-card--bordered{border:1px solid var(--td-component-border)}.t-card--shadow,.t-card--shadow-hover:hover{box-shadow:var(--td-shadow-1)}.t-card__cover{display:flow-root}.t-card__cover img{border-radius:var(--td-radius-default) var(--td-radius-default) 0 0;display:flow-root;max-height:100%;width:100%}.t-card__body{display:flow-root;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__header{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);position:relative}.t-card__header-wrapper{align-items:center;display:flex;flex:1}.t-card__header+.t-card__cover img{border-radius:0}.t-card__footer{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__footer-wrapper{flex:1}.t-size-s .t-card__body,.t-size-s .t-card__footer,.t-size-s .t-card__header{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l)}.t-card__avatar{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-card__avatar,.t-card__title{margin-right:var(--td-comp-margin-l)}.t-card__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);word-break:break-all}.t-card__description,.t-card__subtitle{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);word-break:break-all}.t-card__description{margin-top:var(--td-comp-margin-xs)}.t-card__actions{color:var(--td-brand-color);float:right}.t-card__title--bordered{border-bottom:1px solid var(--td-component-border)}.t-comment{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-comment__inner{display:flex}.t-comment__avatar{cursor:pointer;display:flex;flex-shrink:0;margin-right:var(--td-comp-margin-xxl)}.t-comment__avatar-image{border-radius:var(--td-radius-circle);height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-comment__content{flex:auto;font:var(--td-font-body-medium)}.t-comment__author{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:var(--td-comp-margin-s)}.t-comment__name{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-title-medium)}.t-comment__name,.t-comment__time{padding-right:var(--td-comp-paddingLR-s)}.t-comment__time{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-comment__detail{font:var(--td-font-body-medium);word-break:break-all}.t-comment__quote{border-left:4px solid var(--td-component-stroke);margin-top:var(--td-comp-margin-l);padding-left:var(--td-comp-margin-l)}.t-comment__quote .t-comment__detail,.t-comment__quote .t-comment__name{color:var(--td-text-color-secondary)}.t-comment__actions{display:flex;gap:var(--td-comp-margin-s);justify-content:flex-end;list-style:none;margin-top:var(--td-comp-margin-s);padding:0}.t-comment__actions .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__actions .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-comment__reply{background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-medium);margin-left:calc(var(--td-comp-size-xxxl) + var(--td-comp-margin-xxl));margin-top:var(--td-comp-margin-l);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-comment__reply .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__reply .t-button--variant-text:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-comment__reply .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-empty{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;text-align:center}.t-empty__image{display:flex;font-size:48px;justify-content:center}.t-empty__title{color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s)}.t-empty__description,.t-empty__title{font:var(--td-font-body-medium);margin-bottom:0}.t-empty__description{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xs)}.t-empty__action{margin-bottom:0;margin-top:var(--td-comp-margin-xxl)}.t-empty.t-size-s .t-empty__image{font-size:20px}.t-empty.t-size-s .t-empty__description,.t-empty.t-size-s .t-empty__title{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs)}.t-empty.t-size-l .t-empty__image{font-size:64px}@keyframes tDialogZoomIn{0%{opacity:0;transform:scale(.01)}to{opacity:1}}@keyframes tDialogZoomOut{0%{opacity:1}to{opacity:0;transform:scale(.01)}}@keyframes tDialogMaskIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogMaskOut{0%{opacity:1}to{opacity:0}}.t-dialog-zoom .animation-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom .animation-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom .animation-active{animation-fill-mode:both;animation-play-state:running}.t-dialog-zoom-appear,.t-dialog-zoom-enter,.t-dialog-zoom-enter-from{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom-appear-active,.t-dialog-zoom-enter-active{animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:running}.t-dialog-zoom-exit-active{animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:running}.t-dialog-zoom__vue-enter-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom__vue-enter-active .t-dialog__mask{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogMaskIn;animation-play-state:running;animation-timing-function:linear}.t-dialog-zoom__vue-leave-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom__vue-leave-active .t-dialog__mask{animation-duration:.2s;animation-name:tDialogMaskOut;animation-timing-function:linear}.t-dialog-zoom__vue-enter-to .t-dialog,.t-dialog-zoom__vue-leave-active .t-dialog__mask,.t-dialog-zoom__vue-leave-to .t-dialog{animation-fill-mode:both;animation-play-state:running}.t-dialog-fade-appear,.t-dialog-fade-enter{opacity:0}.t-dialog-fade-appear,.t-dialog-fade-enter,.t-dialog-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-fade-appear.t-dialog-fade-appear-active,.t-dialog-fade-enter.t-dialog-fade-enter-active{animation-name:tDialogFadeIn;animation-play-state:running}.t-dialog-fade-exit.t-dialog-fade-exit-active{animation-name:tDialogFadeOut;animation-play-state:running}@keyframes tDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogFadeOut{0%{opacity:1}to{opacity:0}}.t-dialog{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:480px}.t-dialog .t-icon.t-is-info{color:var(--td-brand-color)}.t-dialog .t-icon.t-is-success{color:var(--td-success-color)}.t-dialog .t-icon.t-is-warning{color:var(--td-warning-color)}.t-dialog .t-icon.t-is-error{color:var(--td-error-color)}.t-dialog--lock{overflow:hidden}.t-dialog__header{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);font-weight:600;gap:var(--td-comp-margin-s);word-break:break-word}.t-dialog__header .t-dialog__header-content{align-items:flex-start;display:flex;width:100%}.t-dialog__header .t-icon:not(.t-icon-close){align-items:center;display:inline-flex;flex-shrink:0;font-size:calc(var(--td-font-size-body-large) + 8px);margin-right:var(--td-comp-margin-s)}.t-dialog__header--fullscreen{align-items:center;background-color:var(--td-bg-color-secondarycontainer);display:flex;flex-direction:row;justify-content:flex-end;min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-xxl)}.t-dialog__header--fullscreen .t-dialog__header-content{align-items:center;box-sizing:border-box;display:flex;justify-content:center}.t-dialog__body{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);overflow:auto;padding:var(--td-comp-paddingTB-l) 0;word-break:break-word}@-moz-document url-prefix(){.t-dialog__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--icon,.t-dialog__body__icon{padding:var(--td-comp-paddingTB-l) 0}.t-dialog__body--fullscreen{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl) - var(--td-comp-size-xxxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}@-moz-document url-prefix(){.t-dialog__body--fullscreen{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body--fullscreen::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen--without-footer{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}.t-dialog__footer{padding:var(--td-comp-paddingTB-l) 0 0;text-align:right;width:100%}.t-dialog__footer .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-dialog__footer--fullscreen{box-sizing:border-box;min-height:var(--td-comp-size-xxxxl);padding:0 var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl)}.t-dialog--default{padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-dialog__close{align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);display:flex;font-size:calc(var(--td-font-size-body-large) + 4px);height:calc(var(--td-font-size-body-large) + 4px);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);transition:all .2s linear;width:calc(var(--td-font-size-body-large) + 4px)}.t-dialog__close:hover{background:var(--td-bg-color-container-hover);cursor:pointer}.t-dialog__close:active{background:var(--td-bg-color-container-active)}.t-dialog__close--fullscreen{background:transparent;display:flex}.t-dialog__close--fullscreen:hover{background:var(--td-bg-color-secondarycontainer-hover);cursor:pointer}.t-dialog__close--fullscreen:active{background:var(--td-bg-color-secondarycontainer-active)}.t-dialog.t-dialog--draggable:hover{cursor:move}.t-dialog.t-dialog--draggable .t-dialog__body:hover,.t-dialog.t-dialog--draggable .t-dialog__footer:hover,.t-dialog.t-dialog--draggable .t-dialog__header:hover{cursor:auto}.t-dialog__fullscreen{border-radius:0;width:100%}.t-dialog__ctx{height:100%;left:0;outline:none;pointer-events:auto;top:0;width:100%}.t-dialog__ctx.t-dialog__ctx--modeless{pointer-events:none}.t-dialog__ctx.t-dialog__ctx--fixed{position:fixed;z-index:2500}.t-dialog__ctx.t-dialog__ctx--absolute,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__mask,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__wrap{position:absolute}.t-dialog__ctx.t-is-visible{visibility:visible}.t-dialog__ctx.t-is-hidden{visibility:hidden}.t-dialog__ctx.t-is-display{display:block}.t-dialog__ctx.t-not-display{display:none}.t-dialog__ctx .t-dialog__mask{background:var(--td-mask-active);height:100%;left:0;pointer-events:auto;position:fixed;top:0;width:100%;z-index:1}.t-dialog__ctx .t-dialog__wrap{height:100%;left:0;overflow:auto;position:fixed;top:0;width:100%;z-index:1}@-moz-document url-prefix(){.t-dialog__ctx .t-dialog__wrap{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar{height:8px;width:8px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__position{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:48px 0;position:relative;width:100%}.t-dialog__ctx .t-dialog__position.t-dialog--top{align-items:flex-start;padding-top:20vh}.t-dialog__ctx .t-dialog__position.t-dialog--center{align-items:center}.t-dialog__ctx .t-dialog__position_fullscreen{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;position:relative;width:100%}.t-dialog__ctx .t-is-hidden{background:none}.t-dialog__ctx .t-dialog{pointer-events:auto;z-index:2500}.t-dialog__ctx.t-dialog__ctx--modeless .t-dialog{box-shadow:var(--td-shadow-3)}.t-image-viewer__img-error{background-color:var(--td-bg-color-component-disabled);border-radius:4px;color:#000;cursor:inherit;height:440px;position:absolute;width:440px}.t-image-viewer__img-error .t-image-viewer__img-error-content{align-content:center;align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;font:var(--td-font-body-medium);height:100%;justify-content:center;position:absolute;width:100%}.t-image-viewer__img-error .t-image-viewer__img-error-content .t-image-viewer__img-error-text{margin-top:var(--td-comp-margin-s)}@keyframes modal-image-hide{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes modal-mask-show{0%{opacity:0}to{opacity:1}}@keyframes modal-mask-hide{0%{opacity:1}to{opacity:0}}.t-image-viewer-preview-image{animation:modal-mask-show .2s cubic-bezier(.82,0,1,.9);bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:3000}.t-image-viewer-preview-image.t-is-hide{animation:modal-mask-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image.t-is-hide .t-image-viewer__modal-pic .t-image-viewer__modal-box{animation:modal-image-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image .t-image-viewer__modal-index{background:rgba(0,0,0,.4);border-radius:var(--td-radius-default);color:var(--td-text-color-anti);font-size:var(--td-font-size-body-medium);left:50%;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:absolute;text-align:center;top:92px;transform:translateX(-50%);z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-mask{background-color:var(--td-mask-active);bottom:0;height:100%;left:0;opacity:1;position:fixed;right:0;top:0;transition:all .2s ease;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic{height:0;left:50%;position:absolute;top:50%;width:0}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;animation:modal-image-show .2s cubic-bezier(.38,0,.24,1);display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(90vh,800px);max-width:min(90vw,1000px);object-fit:contain;transform:rotate(0deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-image-viewer-preview-image .t-image-viewer__modal-header{align-items:center;background-color:var(--td-bg-color-container);display:flex;height:auto;justify-content:center;padding:0 0 12px;position:absolute;top:0;width:100%;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show{padding:12px 0}@keyframes preview-icon-range{0%{transform:translate(-50%,50%) rotate(0)}to{transform:translate(-50%,50%) rotate(-180deg)}}@keyframes preview-icon-unrange{0%{transform:translate(-50%,50%) rotate(-180deg)}to{transform:translate(-50%,50%) rotate(0)}}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt{align-items:center;animation:preview-icon-unrange .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;background-color:var(--td-bg-color-container);border-radius:50%;bottom:0;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);color:var(--td-text-color-primary);display:inline-flex;height:var(--td-comp-size-xxs);justify-content:center;left:50%;position:absolute;transform:translate(-50%,50%);width:var(--td-comp-size-xxs)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt .t-icon{font-size:var(--td-font-size-body-large)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt:hover{background-color:inherit}@keyframes preview-image-show{0%{height:0}to{height:40px}}@keyframes preview-image-hide{0%{height:40px}to{height:0}}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-prev{animation:preview-image-show .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-pre-bt{animation:preview-icon-range .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev{animation:preview-image-hide .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;display:flex;overflow:hidden;position:relative;width:521.77778px}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after,.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{content:"";height:100%;pointer-events:none;position:absolute;width:71.11111px;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{background-image:linear-gradient(to right,var(--td-bg-color-container),hsla(0,0%,100%,0));left:0}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{background-image:linear-gradient(to right,hsla(0,0%,100%,0),var(--td-bg-color-container));right:0}.t-image-viewer-preview-image .t-image-viewer__header-trans{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;margin-left:225.33333px;transition:transform .2s}.t-image-viewer-preview-image .t-image-viewer__header-box{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:40px;justify-content:center;overflow:hidden;position:relative;transition:.2s;width:71.11111px}.t-image-viewer-preview-image .t-image-viewer__header-box .t-image-viewer__header-img{height:100%;width:auto}.t-image-viewer-preview-image .t-image-viewer__header-box.t-is-active,.t-image-viewer-preview-image .t-image-viewer__header-box:hover{border-color:var(--td-brand-color)}.t-image-viewer-preview-image .t-image-viewer__modal-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;transition:.2s}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt{right:40px;top:100px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{top:50%;transform:translateY(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{left:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{align-items:center;background-color:rgba(0,0,0,.4);border-radius:50%;color:var(--td-text-color-anti);display:flex;height:var(--td-comp-size-xl);justify-content:center;position:fixed;width:var(--td-comp-size-xl);z-index:10}.t-image-viewer-preview-image .t-image-viewer__modal-icon .t-image-viewer__modal-icon-label{margin-left:2px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled:hover{background-color:rgba(0,0,0,.4)}.t-image-viewer-preview-image .t-image-viewer__modal-icon:hover{background-color:rgba(0,0,0,.2)}.t-image-viewer__mask{background-color:transparent;height:100vh;left:0;position:fixed;top:0;width:100vh;z-index:99}.t-image-viewer__utils{align-items:center;bottom:32px;color:var(--td-text-color-primary);display:flex;height:auto;justify-content:center;position:absolute;user-select:none;width:100%;z-index:1}.t-image-viewer__utils .t-image-viewer__utils-content{align-items:center;background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);display:inline-flex;height:50px;justify-content:center;line-height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon{align-items:center;border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);justify-content:center;margin:0 var(--td-comp-margin-xs);transition:.2s;width:var(--td-comp-size-m)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon:hover{background-color:var(--td-bg-color-container-hover)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale{cursor:inherit;text-align:center;width:var(--td-comp-size-xl)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale:hover{background-color:var(--td-bg-color-container)}.t-image-viewer-mini__footer .t-image-viewer__utils{position:inherit}.t-image-viewer-mini__content{max-height:min(90vh,800px);max-width:min(90vw,1000px)}@keyframes modal-image-show{0%{transform:scale(0)}to{transform:scale(1)}}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(80vh,600px);max-width:min(80vw,800px);object-fit:contain;transform:rotate(0deg);transition:all .2s ease}.t-image-viewer__dialog.t-dialog__ctx--fixed{z-index:3000}.t-image-viewer__dialog .t-dialog__header{padding:0 var(--td-comp-paddingLR-s);pointer-events:none}.t-image-viewer__dialog .t-dialog__header .t-image-viewer__dialog-title{pointer-events:all}.t-image-viewer__dialog .t-dialog__header .t-dialog__close{pointer-events:auto}.t-image-viewer__dialog .t-dialog{border-color:var(--td-component-border);box-shadow:var(--td-shadow-3);overflow:hidden;padding:0}.t-image-viewer__dialog .t-dialog__header{background-color:var(--td-bg-color-secondarycontainer);font-size:var(--td-font-size-body-medium);height:40px;width:100%}.t-image-viewer__dialog .t-dialog__header-content{justify-content:center;margin-left:32px}.t-image-viewer__dialog .t-dialog__close:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-list{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:auto;padding:0}@-moz-document url-prefix(){.t-list{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-list::-webkit-scrollbar{height:6px;width:6px}.t-list::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-list::-webkit-scrollbar-thumb:horizontal:hover,.t-list::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-list__inner{list-style:none;margin:0;padding:0}.t-list-item{align-items:center;display:flex;font:var(--td-font-body-medium);justify-content:space-between;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative}.t-list-item:after{bottom:0;content:"";height:1px;left:0;position:absolute;width:100%}.t-list-item-main{align-items:center;display:flex;flex:1;justify-content:space-between;width:100%}.t-list-item__meta{display:flex}.t-list-item__meta-avatar{background:var(--td-bg-color-page);border-radius:calc(var(--td-comp-size-xxxl)/2);flex-shrink:0;height:var(--td-comp-size-xxxl);margin-right:var(--td-comp-margin-l);overflow:hidden;width:var(--td-comp-size-xxxl)}.t-list-item__meta-avatar img{height:100%;max-width:100%;width:100%}.t-list-item__meta-title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);margin:0 0 var(--td-comp-margin-s);padding:0}.t-list-item__meta-description{color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-xxl)}.t-list-item__action{flex-shrink:0;list-style:none;padding:0}.t-list-item__action>li{display:inline-block}.t-list-item__action>li:not(:last-child){margin-right:var(--td-comp-margin-l)}.t-list-item__action>li .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-comp-size-xxxs)}.t-list-item__action>li .t-icon:hover{color:var(--td-text-color-link);cursor:pointer}.t-list-item__action>li>a{color:var(--td-brand-color);text-decoration:none}.t-list--split .t-list-item:after{background:var(--td-border-level-1-color)}.t-list--stripe .t-list-item:nth-child(2n){background:var(--td-bg-color-secondarycontainer)}.t-list--vertical-action .t-list-item{flex-direction:column}.t-list.t-size-s .t-list-item{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-m)}.t-list.t-size-l .t-list-item{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-list__footer,.t-list__header{background:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load{background:var(--td-bg-color-container);line-height:var(--td-line-height-body-medium);text-align:center}.t-list__load>div{align-items:center;display:flex;justify-content:center}.t-list__load:not(:empty){padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load .t-loading{font-size:var(--td-comp-size-xxxs);margin-right:var(--td-comp-margin-s)}.t-list__load .t-loading.t-is-load-more{cursor:pointer}.t-progress{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-progress__inner{background:var(--td-brand-color);border-radius:var(--td-radius-round);height:100%;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress__info{color:var(--td-text-color-primary);display:inline-flex;margin-left:var(--td-comp-margin-s);white-space:nowrap}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{background:var(--td-bg-color-component);border-radius:var(--td-radius-round);height:var(--td-size-3);overflow:hidden;width:100%}.t-progress--thin{align-items:center;display:flex;justify-content:space-between}.t-progress--plump{align-items:center;border-radius:calc(var(--td-comp-size-xxs)/2);display:flex;height:var(--td-comp-size-xxs)}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{color:var(--td-text-color-anti);position:absolute;right:var(--td-comp-margin-s);top:50%;transform:translateY(-50%);z-index:10}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{display:block;font-size:inherit;font-weight:600;left:50%;line-height:1;margin:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-text-color-anti);bottom:0;content:"";left:0;opacity:.2;position:absolute;right:0;top:0;z-index:1}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{opacity:.1;width:0}35%{opacity:.4;width:50%}to{opacity:0;width:100%}}:root,:root[theme-mode=light]{--skeleton-animation-gradient:rgba(0,0,0,.04)}:root[theme-mode=dark]{--skeleton-animation-gradient:hsla(0,0%,100%,.06)}.t-skeleton{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-skeleton__row{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-l)}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{align-items:center;background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-disabled);display:flex;justify-content:center;margin-right:var(--td-comp-margin-l)}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{border-radius:var(--td-radius-default);height:var(--td-font-size-body-large);width:100%}.t-skeleton--type-rect{border-radius:var(--td-radius-default);height:88px;width:120px}.t-skeleton--type-circle{border-radius:var(--td-radius-circle);flex-shrink:0;height:32px;width:32px}.t-skeleton--animation-gradient{overflow-x:hidden;position:relative}.t-skeleton--animation-gradient:after{animation:t-skeleton--gradient 1.5s linear 2s infinite;background:linear-gradient(90deg,hsla(0,0%,100%,0),var(--skeleton-animation-gradient),hsla(0,0%,100%,0));bottom:0;content:" ";left:0;position:absolute;right:0;top:0}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:hsla(0,0%,90%,.3);opacity:.3}to{opacity:1}}.t-statistic{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium)}.t-statistic-title{font-size:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s)}.t-statistic-content{color:var(--td-text-color-primary);display:inline-block;text-align:left;white-space:nowrap}.t-statistic-content-value{font-size:var(--td-font-size-headline-medium);line-height:var(--td-line-height-headline-medium)}.t-statistic-content-unit,.t-statistic-content-value{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-unit{font-size:var(--td-font-size-body-medium);margin-left:var(--td-comp-margin-xs)}.t-statistic-content-suffix{margin-left:var(--td-comp-margin-s)}.t-statistic-content-prefix,.t-statistic-content-suffix{align-items:center;display:inline-flex;font-size:var(--td-font-size-title-large)}.t-statistic-content-prefix{margin-right:var(--td-comp-margin-s)}.t-statistic-content-prefix .t-icon{font-size:var(--td-font-size-title-large)}.t-statistic-extra{margin-top:8px}.t-statistic-extra .t-space .t-space-item{display:flex}.t-swiper{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:fit-content;list-style:none;margin:0;padding:0;position:relative}.t-swiper__wrap{display:block;height:100%;position:relative}.t-swiper__content{overflow:hidden;position:relative;z-index:1}.t-swiper__container{display:flex;flex-direction:row;height:100%;position:relative;z-index:1}.t-swiper__container__item{display:inline-block;flex:0 0 auto;height:100%;width:100%}.t-swiper__arrow{align-items:center;display:flex}.t-swiper__arrow svg.t-icon{height:20px;width:20px}.t-swiper__arrow svg.t-icon:before{font-size:24px}.t-swiper__arrow--default .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-left:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-left:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-right:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper-card .t-swiper__container{display:block}.t-swiper-card .t-swiper__container .t-is-active{z-index:2}.t-swiper-card .t-swiper__card{height:100%;left:0;position:absolute;top:0;width:41.5%;z-index:0}.t-swiper-fade .t-swiper__container{display:block}.t-swiper-fade .t-swiper__fade{left:0;position:absolute;top:0}.t-swiper__navigation{bottom:0;display:flex;flex-direction:row;left:50%;margin:0;padding:0;position:absolute;transform:translateX(-50%);z-index:2}.t-swiper__navigation>li{display:flex;flex:1 0 auto;list-style-type:none}.t-swiper__navigation .t-swiper__arrow svg.t-icon{height:16px;width:16px}.t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-bars .t-swiper__navigation-item span{height:3px;width:100%}.t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:3px;width:100%}.t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:var(--td-size-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:var(--td-size-2);width:100%}.t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--vertical .t-swiper__container{flex-direction:column}.t-swiper--vertical .t-swiper__navigation{bottom:auto;display:flex;flex-direction:column;justify-content:center;left:auto;position:absolute;right:0;top:50%;transform:translateY(-50%)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;margin:6px 0 0;max-height:var(--td-size-2);padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:100%;width:var(--td-size-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--outside .t-swiper__navigation{bottom:-36px}.t-swiper--outside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation{bottom:auto;right:-36px}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation{bottom:0}.t-swiper--inside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--large .t-swiper__arrow i.t-icon:before{font-size:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-left{height:32px;left:24px;width:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-right{height:32px;right:24px;width:32px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 8px;padding:24px 0;width:21px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{height:4px;width:100%}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-large));height:var(--td-line-height-body-large);left:50%;line-height:var(--td-line-height-body-large);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-large);margin:0}.t-swiper--large.t-swiper--outside .t-swiper__navigation{bottom:-48px}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:21px;margin:8px 0 0;padding:0 24px;width:auto}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:4px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-48px}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__arrow i.t-icon:before{font-size:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-left{height:16px;left:8px;width:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-right{height:16px;right:8px;width:16px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 4px;padding:12px 0;width:9px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{height:2px;width:100%}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:15px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-small));height:var(--td-line-height-body-small);left:50%;line-height:var(--td-line-height-body-small);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-small);margin:0}.t-swiper--small.t-swiper--outside .t-swiper__navigation{bottom:-24px}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:9px;margin:4px 0 0;padding:0 12px;width:auto}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:2px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:15px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-24px}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}@-moz-document url-prefix(){.scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.scrollbar::-webkit-scrollbar{height:6px;width:6px}.scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-track,.scrollbar.t-table__scrollbar--obvious::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.t-table--width-overflow.t-table--footer-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table--width-overflow.t-table--horizontal-bar-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table__affixed-footer-wrap>.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-thumb{background:transparent}.t-table.t-table--overflow-visible{overflow:initial}.t-table{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-table .t-popup:not(.t-tooltip)[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-table:focus-visible{outline:none}.t-table .t-loading--full{z-index:72}.t-table.t-vertical-align-top td:not(.t-table__cell-check),.t-table.t-vertical-align-top th:not(.t-table__cell-check){vertical-align:top}.t-table.t-vertical-align-middle td:not(.t-table__cell-check),.t-table.t-vertical-align-middle th:not(.t-table__cell-check){vertical-align:middle}.t-table.t-vertical-align-bottom td:not(.t-table__cell-check),.t-table.t-vertical-align-bottom th:not(.t-table__cell-check){vertical-align:bottom}.t-table .t-table__resize-line{border-left:1px solid var(--td-component-border);display:none;left:10px;position:absolute;width:0;z-index:1001}.t-table__column-controller-trigger.t-align-bottom-right,.t-table__column-controller-trigger.t-align-top-right{text-align:right}.t-table__column-controller-trigger{padding:var(--td-comp-paddingTB-l) 0}.t-table__column-controller-item:not(:last-child){margin-bottom:var(--td-comp-margin-l)}.t-table__content{position:relative}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar{height:6px;width:6px}.t-table__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover,.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__pagination{box-sizing:border-box;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table .t-icon{font-size:var(--td-font-size-body-large)}.t-table table{border-spacing:0;width:100%}.t-table .t-text-ellipsis{word-wrap:normal;line-height:var(--td-line-height-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-table td,.t-table th{background-color:inherit;border-bottom:1px solid var(--td-component-border);box-sizing:border-box;font-weight:400;line-height:var(--td-line-height-body-medium);overflow-wrap:break-word;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative;text-align:left}.t-table th.t-table__th-drag{height:0;padding:0;text-align:center}.t-table th,.t-table thead td{color:var(--td-text-color-placeholder)}.t-table td[key=row-select]{padding:13px 0 11px var(--td-comp-paddingLR-l)}.t-table td.t-align-left,.t-table th.t-align-left{text-align:left}.t-table td.t-align-right,.t-table th.t-align-right{text-align:right}.t-table td.t-align-center,.t-table th.t-align-center{text-align:center}.t-table tr{background-color:var(--td-bg-color-container)}.t-table.t-size-s td,.t-table.t-size-s th{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-table.t-size-l td,.t-table.t-size-l th{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-table .t-table__expandable-icon-cell,.t-table .t-table__selection-cell{height:0;padding:0}.t-table td.t-table__handle-draggable{height:0;padding:0;text-align:center}.t-table .t-table__cell--selectable>.t-checkbox{vertical-align:middle}.t-table .t-table__cell--selectable+td,.t-table .t-table__cell--selectable+th{padding-left:0}.t-table--bordered td,.t-table--bordered th{border-left:1px solid var(--td-component-border)}.t-table--bordered td.t-table__cell--fixed-left-last:before,.t-table--bordered th.t-table__cell--fixed-left-last:before{border-right:1px solid var(--td-component-border)}.t-table--bordered td.t-table__td-first-col,.t-table--bordered th:first-child,.t-table--bordered:not(.t-table--rowspan-colspan) td:first-child{border-left-width:0}.t-table--bordered .t-table__content{border-left:1px solid var(--td-component-border)}.t-table--bordered .t-table__content::-webkit-scrollbar-corner{background-color:transparent}.t-table--bordered .t-table__content{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-table--bordered .t-table--loading{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table--bordered .t-table__bottom-content+.t-table__pagination{padding:0}.t-table--bordered.t-table__header--fixed .t-table__content{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__td-last-row,.t-table--striped:not(.t-table--bordered) td,.t-table--striped:not(.t-table--bordered) th{border-bottom:none}.t-table--striped.t-table--header-fixed>.t-table__content>table>tbody tr:nth-of-type(2n),.t-table--striped:not(.t-table--header-fixed)>.t-table__content>table>tbody>tr:nth-of-type(odd):not(.t-table__expanded-row){background-color:var(--td-bg-color-secondarycontainer)}.t-table--striped.t-table--hoverable.t-table__header--fixed tbody tr:nth-of-type(2n):hover,.t-table--striped.t-table--hoverable:not(.t-table__header--fixed)>.t-table__content>table>tbody tr:nth-of-type(odd):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr{transition:background-color .2s linear}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table--hoverable tbody tr{transition:background-color .2s linear}.t-table--hoverable tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table.t-table--align-top tbody td{vertical-align:top}.t-table .t-table__cell--highlight{background-color:var(--td-bg-color-secondarycontainer)}.t-table__header--fixed table{table-layout:fixed}.t-table__header--fixed td,.t-table__header--fixed th{overflow-wrap:break-word}.t-table__header--fixed .t-table__header,.t-table__header--fixed.t-table__header{position:relative;width:fit-content;z-index:5}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body{overflow-y:auto;width:fit-content}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table:not(.t-table--bordered) .t-table__cell--selectable+td,.t-table:not(.t-table--bordered) .t-table__cell--selectable+th{padding-left:0}.t-table__cell--fixed.t-table__header--fixed .t-table__header{overflow:hidden;width:100%}.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-left:last-child:after,.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-right:last-child:after{background-color:var(--td-bg-color-secondarycontainer);content:"";height:100%;position:absolute;right:-6px;top:0;width:6px}.t-table__cell--fixed.t-table__header--fixed .t-table__body{overflow:auto scroll}.t-table__cell--fixed .t-table__content{overflow:auto hidden}.t-table__cell--fixed table{min-width:100%;table-layout:fixed}.t-table__cell--fixed td,.t-table__cell--fixed th{position:relative}.t-table__cell--fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table__cell--fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table .t-table__cell-resizable{position:relative}.t-table .t-table__cell-resizable .t-table__cell--resizer{bottom:0;cursor:col-resize;position:absolute;right:-5px;top:0;width:10px;z-index:10}.t-table .t-table__row--disabled{color:var(--td-text-color-disabled)}.t-table .t-table__cell--title{align-items:center;display:flex}.t-table__column-controller-desc{margin-bottom:var(--td-comp-margin-xxl)}.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__column-controller-block+.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border-top:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__column-controller--fixed .t-checkbox{width:108px}.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active,.t-table.t-table__row--active-single tbody>tr.t-table__row--active{background-color:var(--td-brand-color-light)}.t-table.t-table--hoverable tbody>tr.t-table__row--active:hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table__row--active-single tbody>tr.t-table__row--active.t-table__row--hover{background-color:var(--td-brand-color-light-hover)}.t-table.t-table--row-expandable tbody>tr.t-table__row--hover,.t-table.t-table--row-select tbody>tr.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--hover{background-color:var(--td-bg-color-container-hover)}.t-table--bordered .t-table__cell--filterable .t-table__cell--title,.t-table--bordered .t-table__cell--sortable .t-table__cell--title{justify-content:space-between}.t-table th.t-align-right .t-table__cell--title{justify-content:flex-end}.t-table__cell--sort-trigger{text-align:center;vertical-align:text-bottom}.t-table__cell--sort-trigger svg{vertical-align:initial}.t-table--loading{position:relative}.t-table--loading-progressbar{animation:tTableProgressbar 2s ease-in-out;animation-fill-mode:both;background-color:var(--td-brand-color);height:1px;left:0;overflow:hidden;position:absolute;top:0}.t-table--loading-message{align-items:center;color:var(--td-text-color-placeholder);display:flex;justify-content:center;min-height:120px}.t-table__expanded-cell{padding-left:45px}.t-table__async-loading{text-align:center}.t-table__async-loading.t-is-load-more{cursor:pointer}.t-table__empty{align-items:center;color:var(--td-text-color-disabled);display:flex;justify-content:center;min-height:120px}.t-table__filter-icon,.t-table__sort-icon{align-items:center;background-color:transparent;cursor:pointer;display:inline-flex;transition:.2s linear;vertical-align:text-bottom}.t-table__filter-icon>svg,.t-table__sort-icon>svg{margin-top:0}.t-table__sort-icon .t-is-focus,.t-table__sort-icon.t-is-focus,.t-table__sort-icon:hover{border-radius:var(--td-radius-circle);color:var(--td-brand-color);transition:.2s linear}.t-table__filter-icon .t-is-focus,.t-table__filter-icon.t-is-focus,.t-table__filter-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__filter-pop .t-popup__content{padding:0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-table__filter-popup-input{margin-bottom:var(--td-comp-margin-s)}.t-table__filter-pop .t-table__filter-pop-content .t-radio-group{display:block;height:auto}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox-group{display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox,.t-table__filter-pop .t-table__filter-pop-content .t-radio{display:block;margin:var(--td-comp-margin-xs) 0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button{border-top:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button .t-button+.t-button{margin-left:var(--td-comp-margin-l)}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner{max-height:280px;overflow:auto;padding:0;position:relative}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-input__wrap{background-color:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) 0 var(--td-comp-paddingLR-l);position:sticky;top:0;z-index:1}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-radio-group{padding:0 var(--td-comp-paddingLR-l)}.t-table__filter-pop-content-inner>.t-input__wrap{width:200px}.t-table__filter-pop-content-inner>.t-date-range-picker__panel{margin:calc(0px - var(--td-comp-margin-l))}.t-table__sort-icon--active{color:var(--td-brand-color);transition:.2s linear}.t-table__double-icons{display:flex;flex-direction:column;justify-content:center}.t-table__double-icons .t-table__sort-icon{position:relative}.t-table__double-icons .t-table-sort-asc{top:var(--td-comp-margin-xxs)}.t-table__double-icons .t-table-sort-desc{bottom:var(--td-comp-margin-xxs)}.t-table__filter-icon-wrap{align-items:center;display:flex;height:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);pointer-events:all;width:var(--td-font-size-body-large)}.t-table--bordered .t-table__filter-icon-wrap{justify-content:flex-end}.t-table--bordered .t-table__cell--sortable.t-table__cell--filterable .t-table__filter-icon-wrap{flex:1;justify-content:space-between}.t-table .t-align-center .t-table__cell--filterable,.t-table .t-align-center .t-table__cell--sortable{display:flex;justify-content:space-around}.t-table__expand-box{align-items:center;color:var(--td-text-color-placeholder);cursor:pointer;display:flex;height:100%;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1) 0s;width:100%}.t-table__expand-box:hover{color:var(--td-brand-color);transition:.2s linear}@keyframes tTableProgressbar{0%{width:0}to{width:100%}}.t-table__th-row-select .t-table__th-cell-inner{align-items:center;display:inline-flex}.t-table-expandable-icon-cell+.t-table__cell--selectable[key=row-select]{padding-left:var(--td-comp-margin-s)}.t-table__filter--bottom-buttons{border-top:1px solid var(--td-component-border);display:flex;justify-content:flex-end;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter--bottom-buttons>.t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-table__row-filter-inner{left:0;position:sticky;text-align:center}.t-table__filter-result{align-items:center;display:flex;justify-content:center}.t-table__filter-result>.t-button{margin-left:var(--td-comp-margin-s)}.t-table--layout-fixed{table-layout:fixed}.t-table--layout-auto{table-layout:auto}.t-table__ellipsis{white-space:nowrap;width:100%}.t-table__content{overflow:auto}.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:2px solid var(--td-component-border)}.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:2px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:4px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:4px solid var(--td-component-border)}.t-table__scroll-bar-divider{border-right:1px solid var(--td-component-border);bottom:0;height:100%;position:absolute;right:0;z-index:71}.t-table__footer,.t-table__header.t-table__header--fixed{position:sticky;z-index:50}.t-table:not(.t-table--striped) .t-table__footer>tr,.t-table__header--fixed:not(.t-table__header--multiple)>tr>th{background-color:var(--td-bg-color-secondarycontainer)}.t-table__row--fixed-bottom,.t-table__row--fixed-top{position:sticky;z-index:70}.t-table__row--fixed-bottom-first>td{border-top:1px solid var(--td-component-border)}.t-table--bordered .t-table__content .t-table__row--without-border-bottom>td,.t-table--bordered tbody>tr:last-child>td,.t-table--bordered tfoot>tr:last-child>td{border-bottom:0}.t-table--bordered tfoot>tr:first-child>td{border-top:1px solid var(--td-component-border)}.t-table__header.t-table__header--fixed{top:0}.t-table__footer.t-table__footer--fixed{bottom:0}.t-table--column-fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-left,.t-table--column-fixed .t-table__cell--fixed-right{position:sticky}.t-table--column-fixed .t-table__cell--fixed-left{z-index:30}.t-table--column-fixed .t-table__cell--fixed-right{z-index:31}.t-table__empty-row>td{border:0;padding:0}.t-table:not(.t-table--bordered) .t-table__header.t-table--bordered>tr:first-child>th{border-top:1px solid var(--td-component-border)}.t-table--multiple-header .t-table__header th.t-table__header-th--bordered{border-left-width:1px}.t-table__header.t-table__header--multiple>tr{background-color:var(--td-bg-color-container)}.t-table__tree-op-icon{cursor:pointer;display:inline-flex;margin-right:var(--td-comp-margin-s);vertical-align:-3px}.t-table__tree-op-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__tree-leaf-node .t-table__tree-op-icon{margin-right:var(--td-comp-margin-xxs);min-width:0}.t-table__virtual-scroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-table__virtual-scroll-header{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm-wrap{overflow:hidden}.t-table__affixed-header-elm,.t-table__affixed-header-elm-wrap{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm{opacity:1;overflow:auto;transition:opacity .2s linear}.t-table__affixed-footer-elm{overflow:auto;z-index:50}.t-table--bordered .t-table__affixed-header-elm{border:1px solid var(--td-component-border);border-bottom:0;border-right:0}.t-table--bordered .t-table__affixed-footer-elm{border-bottom:1px solid var(--td-component-border);border-left:1px solid var(--td-component-border)}.t-table--multiple-header.t-table--bordered .t-table__affixed-header-elm{border-right:0}.t-is-hidden{display:none}.t-positive-rotate-90{transform:rotate(90deg)}.t-negative-rotate-180{transform:rotate(180deg)}.t-table__expanded-row>td,.t-table__row--full>td{padding:0}.t-table__row-full-element{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__row-full-inner{left:0;position:sticky}.t-table__row-full-inner:not(.t-table__empty){display:inline-block}.t-table__tree-col{align-items:center;display:flex}.t-table__tree-col--inline{display:inline}.t-table--full-height{height:100%}.t-table--loading .t-table__content{min-height:168px}.t-table--row-draggable tr,.t-table__handle-draggable:hover,.t-table__th--drag-sort{cursor:move}.t-table__ele--draggable-chosen{box-shadow:var(--td-shadow-1)}.t-table:not(.t-table--row-edit) .t-table__cell--editable{cursor:pointer;line-height:var(--td-line-height-body-medium);min-height:22px}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);transition:.2s linear}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon:hover{color:var(--td-brand-color)}.t-table:not(.t-table--row-edit) .t-table__cell--editable:hover{transition:.2s linear}.t-affix .t-table__pagination{background-color:var(--td-bg-color-container)}.t-table--bordered .t-affix .t-table__pagination{border-top:1px solid var(--td-component-border)}.t-table__bottom-content+.t-table__pagination-wrap .t-table__pagination{border:0;padding:0}.t-table--column-resizable:not(.t-table--bordered) th{border-top:1px solid transparent}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th:not(:last-child){border-right:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th{border-top:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child),.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left.t-table__content--scrollable-to-right thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child){border-right:0}.t-table td.t-table__cell-check,.t-table th.t-table__cell-check{height:0;padding:0}.t-table td.t-table__cell-check .t-checkbox__label:empty,.t-table td.t-table__cell-check .t-radio__label:empty,.t-table th.t-table__cell-check .t-checkbox__label:empty,.t-table th.t-table__cell-check .t-radio__label:empty{display:none}.t-table .t-table__cell-check .t-checkbox,.t-table .t-table__cell-check .t-radio,.t-table .t-table__cell-check .t-table__th-cell-inner{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-table td .t-input__tips{position:static}.t-table .t-table__sort-column{background-color:var(--td-bg-color-secondarycontainer)}.t-table__ellipsis-content.t-size-s .t-popup__content,.t-timeline{font:var(--td-font-body-medium)}.t-timeline{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.t-timeline-item{display:flex;flex-direction:row;min-height:72px;position:relative}.t-timeline-item__label.t-timeline-item__label--alternate{position:absolute}.t-timeline-item__wrapper{position:relative;width:8px}.t-timeline-item__wrapper .t-timeline-item__dot{border:2px solid transparent;border-radius:50%;box-sizing:unset;height:4px;position:absolute;top:8px;width:4px}.t-timeline-item__wrapper .t-timeline-item__dot--primary{border-color:var(--td-brand-color)}.t-timeline-item__wrapper .t-timeline-item__dot--default{border-color:var(--td-component-border)}.t-timeline-item__wrapper .t-timeline-item__dot--success{border-color:var(--td-success-color)}.t-timeline-item__wrapper .t-timeline-item__dot--warning{border-color:var(--td-warning-color)}.t-timeline-item__wrapper .t-timeline-item__dot--error{border-color:var(--td-error-color)}.t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;left:50%;position:relative;top:4px;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:50%;position:absolute;top:0;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail{border-left:2px solid transparent;border-color:var(--td-component-border);bottom:0;box-sizing:border-box;height:calc(100% - 24px);left:50%;padding-bottom:var(--td-comp-size-s);position:absolute;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-item__label{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-medium)}.t-timeline-item__content{flex:1;font-size:var(--td-font-size-body-large);padding-left:var(--td-comp-margin-l)}.t-timeline-item--last .t-timeline-item__tail{display:none}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__label{left:0;text-align:right}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__wrapper{margin-left:100px}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__label{right:0;text-align:left}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__wrapper{margin-right:100px}.t-timeline-right .t-timeline-item{flex-direction:row-reverse}.t-timeline-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l);text-align:right}.t-timeline-alternate .t-timeline-item-left{margin-left:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right{flex-direction:row-reverse;margin-right:calc(50% - 4px);text-align:right}.t-timeline-alternate .t-timeline-item-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-alternate .t-timeline-item__label{width:100%}.t-timeline-label.t-timeline-alternate .t-timeline-item-left .t-timeline-item__label--alternate{left:0;padding-right:var(--td-comp-margin-l);text-align:right;transform:translateX(-100%)}.t-timeline-label.t-timeline-alternate .t-timeline-item-right .t-timeline-item__label--alternate{padding-left:var(--td-comp-margin-l);right:0;text-align:left;transform:translateX(100%)}.t-timeline-horizontal{align-items:center;flex-direction:row;min-height:200px}.t-timeline-horizontal .t-timeline-item{flex-direction:column;min-width:160px;padding-right:8px}.t-timeline-horizontal .t-timeline-item__wrapper{height:8px;width:100%}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot{border-radius:50%;height:4px;left:unset;position:absolute;top:50%;transform:translateY(-50%);width:4px}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:0;position:absolute;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail{border:0;border-top:2px solid transparent;border-color:var(--td-component-border);left:calc(8px + var(--td-comp-margin-s));padding-bottom:0;top:50%;transform:translateY(-50%);width:calc(100% - 8px - var(--td-comp-margin-s))}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-horizontal .t-timeline-item__content{flex:unset;padding-left:unset;padding-top:var(--td-comp-margin-l)}.t-timeline-vertical .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-top .t-timeline-item__label--alternate{padding-bottom:0;top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item{flex-direction:column-reverse}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__wrapper{padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-top .t-timeline-item__label--alternate{padding-bottom:var(--td-comp-margin-l);top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom{flex-direction:column-reverse;position:relative;transform:translateY(calc(-100% + 8px))}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:unset}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%)}.t-collapse{background:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-bottom:0;box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-collapse.t--border-less{border:none}.t-collapse.t--border-less .t-collapse-panel__header{border-bottom:none}.t-collapse.t--border-less .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__icon{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon>.t-fake-arrow{transform:rotate(-90deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon--left{margin-right:var(--td-comp-margin-s)}.t-collapse-panel__icon--right{margin-left:var(--td-comp-margin-s)}.t-collapse-panel__icon--active>.t-fake-arrow{transform:rotate(0)}.t-collapse-panel__icon:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-small)}.t-collapse-panel__wrapper{overflow:hidden}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__header{border-bottom:none}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__wrapper .t-collapse-panel__header{align-items:center;border-bottom:1px solid var(--td-component-border);display:flex;font:var(--td-font-title-small);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-collapse-panel__wrapper .t-collapse-panel__header--blank{flex:1}.t-collapse-panel__wrapper .t-collapse-panel__header.t-is-clickable{cursor:pointer}.t-collapse-panel__wrapper .t-collapse-panel__header-left,.t-collapse-panel__wrapper .t-collapse-panel__header-right,.t-collapse-panel__wrapper .t-collapse-panel__header-right-content{display:flex}.t-collapse-panel__wrapper .t-collapse-panel__body{background:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-border);overflow:inherit}.t-collapse-panel__wrapper .t-collapse-panel__body--collapsed{border:none}.t-collapse-panel__wrapper .t-collapse-panel__content{color:var(--td-text-color-secondary);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-m) calc(var(--td-comp-paddingLR-l) + var(--td-comp-margin-xxl))}.t-collapse-panel.t-is-disabled .t-collapse-panel__header{color:var(--td-text-color-disabled);cursor:not-allowed}.t-collapse-panel.t-is-disabled .t-collapse-panel__icon{cursor:not-allowed;pointer-events:none}.t-collapse-panel.t-is-disabled .t-collapse-panel__body{background:var(--td-bg-color-component-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__content{color:var(--td-text-color-disabled)}.t-rate{align-items:center;display:flex}.t-rate .t-rate__star-top{height:100%;left:0;overflow:hidden;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-rate .t-rate__star-bottom,.t-rate .t-rate__star-top{display:grid}.t-rate__list{display:flex;list-style:none;margin:0;padding:0}.t-rate__item{cursor:pointer;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-rate__item:hover{transform:scale(1.33)}.t-rate__item--half .t-rate__star-top{width:50%}.t-rate__item--full .t-rate__star-top{width:100%}.t-rate__text{font:var(--td-font-mark-medium);margin-left:var(--td-comp-margin-l)}.t-rate__text,.t-typography{color:var(--td-text-color-primary)}.t-typography{font:var(--td-font-body-medium);margin:var(--td-comp-margin-m) 0}h1.t-typography{font:var(--td-font-headline-large);margin-top:var(--td-comp-margin-xxxxl)}h1.t-typography,h2.t-typography{margin-bottom:var(--td-comp-margin-l)}h2.t-typography{font:var(--td-font-headline-medium);margin-top:var(--td-comp-margin-xxxl)}h3.t-typography{font:var(--td-font-headline-small);margin-top:var(--td-comp-margin-xxl)}h3.t-typography,h4.t-typography{margin-bottom:var(--td-comp-margin-m)}h4.t-typography{font:var(--td-font-title-large);margin-top:var(--td-comp-margin-xl)}h5.t-typography{font:var(--td-font-title-medium);margin-bottom:var(--td-comp-margin-m);margin-top:var(--td-comp-margin-l)}h6.t-typography{font:var(--td-font-title-small)}.t-typography strong{font-weight:600}.t-typography mark{background-color:#fcdf47}.t-typography code{background-color:var(--td-bg-color-secondarycontainer);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s);transition:background-color .2s;white-space:nowrap}.t-typography code,.t-typography code:hover{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-typography code:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-typography kbd{background-color:var(--td-bg-color-secondarycontainer);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-shadow:0 1px 0 0 var(--td-component-border);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s)}.t-typography--disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-typography--success{color:var(--td-success-color)}.t-typography--warning{color:var(--td-warning-color)}.t-typography--error{color:var(--td-error-color)}.t-typography--secondary{color:var(--td-text-color-secondary)}.t-typography .t-icon-copy,.t-typography-ellipsis-symbol{color:var(--td-brand-color);cursor:pointer}.t-typography .t-icon-copy:hover,.t-typography-ellipsis-symbol:hover{color:var(--td-brand-color-hover)}.t-typography .t-icon-checked{color:var(--td-success-color)}.t-alert{align-items:flex-start;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;opacity:1;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);transition:opacity .2s}.t-alert.t-is-hidden{display:none}.t-alert--closing{opacity:0}.t-alert--info{background-color:var(--td-brand-color-focus)}.t-alert--info .t-alert__icon,.t-alert--info .t-alert__swiper-trigger--active,.t-alert--info .t-alert__swiper-trigger-wrap{color:var(--td-brand-color)}.t-alert--success{background-color:var(--td-success-color-focus)}.t-alert--success .t-alert__icon{color:var(--td-success-color)}.t-alert--success .t-alert__swiper-trigger-wrap{color:var(--td-success-color-focus)}.t-alert--success .t-alert__swiper-trigger--active{color:var(--td-success-color)}.t-alert--warning{background-color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__icon{color:var(--td-warning-color)}.t-alert--warning .t-alert__swiper-trigger-wrap{color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__swiper-trigger--active{color:var(--td-warning-color)}.t-alert--error{background-color:var(--td-error-color-focus)}.t-alert--error .t-alert__icon{color:var(--td-error-color)}.t-alert--error .t-alert__swiper-trigger-wrap{color:var(--td-error-color-focus)}.t-alert--error .t-alert__swiper-trigger--active{color:var(--td-error-color)}.t-alert__icon{display:inherit;font-size:var(--td-line-height-body-medium)}.t-alert__close,.t-alert__icon{flex:0 0 auto;line-height:var(--td-line-height-body-small)}.t-alert__content{flex:1 1 0;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);overflow:hidden}.t-alert__message,.t-alert__title{display:flex;width:100%}.t-alert__title{color:var(--td-text-color-primary);font-weight:700}.t-alert__title+.t-alert__message{margin-top:var(--td-comp-margin-s)}.t-alert__description{color:var(--td-text-color-secondary);flex:0 1 auto;transition:height .2s}.t-alert__operation{color:var(--td-brand-color);cursor:pointer;flex:0 0 auto;padding:0 var(--td-comp-paddingLR-s);transition:color .2s}.t-alert__operation:hover{color:var(--td-brand-color-hover)}.t-alert__operation:active{color:var(--td-brand-color-active)}.t-alert__icon+.t-alert__content{margin-left:var(--td-comp-margin-s)}.t-alert__collapse{color:var(--td-brand-color);cursor:pointer;margin-top:var(--td-comp-margin-s)}.t-alert__close{align-items:center;color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-l);transition:color .2s}.t-alert__close:hover{color:var(--td-text-color-primary)}.t-alert__close>.t-icon{font-size:calc(var(--td-line-height-body-medium) - 2px);padding:calc((var(--td-line-height-body-medium) - var(--td-line-height-body-medium) - 2px)/2) 0}.t-drawer-fade-appear,.t-drawer-fade-enter{opacity:0}.t-drawer-fade-appear,.t-drawer-fade-enter,.t-drawer-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:linear}.t-drawer-fade-appear.t-drawer-fade-appear-active,.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to,.t-drawer-fade-enter.t-drawer-fade-enter-active,.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to{animation-duration:.2s;animation-name:tDrawerFadeIn;animation-play-state:running}.t-drawer-fade-exit.t-drawer-fade-exit-active,.t-drawer-fade-leave-active.t-drawer-fade-leave-to{animation-duration:.2s;animation-name:tDrawerFadeOut;animation-play-state:running}@keyframes tDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDrawerFadeOut{0%{opacity:1}to{opacity:0}}.t-drawer{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:100%;list-style:none;margin:0;outline:none;padding:0;pointer-events:none;position:fixed;width:100%;z-index:1500}.t-drawer,.t-drawer--lock{overflow:hidden}.t-drawer--attach{position:absolute}.t-drawer--left,.t-drawer--right{top:0}.t-drawer--left{left:0}.t-drawer--right{right:0}.t-drawer--bottom,.t-drawer--top{left:0}.t-drawer--top{top:0}.t-drawer--bottom{bottom:0}.t-drawer__mask{background-color:var(--td-mask-active);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s cubic-bezier(.38,0,.24,1);width:100%}.t-drawer__content-wrapper{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);color:var(--td-text-color-secondary);display:flex;flex-direction:column;font-size:var(--td-font-body-medium);height:16px;overflow:hidden;pointer-events:auto;position:relative;transition:transform .28s cubic-bezier(.38,0,.24,1),visibility .28s cubic-bezier(.38,0,.24,1);width:16px}.t-drawer .t-drawer__content-wrapper{height:100%;position:absolute;visibility:hidden;width:100%}.t-drawer .t-drawer__content-wrapper--left,.t-drawer .t-drawer__content-wrapper--right{top:0}.t-drawer .t-drawer__content-wrapper--left{left:0;transform:translateX(-100%)}.t-drawer .t-drawer__content-wrapper--right{right:0;transform:translateX(100%)}.t-drawer .t-drawer__content-wrapper--bottom,.t-drawer .t-drawer__content-wrapper--top{left:0}.t-drawer .t-drawer__content-wrapper--top{top:0;transform:translateY(-100%)}.t-drawer .t-drawer__content-wrapper--bottom{bottom:0;transform:translateY(100%)}.t-drawer__header{align-items:center;border-bottom:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-l)}.t-drawer__body{flex:1;overflow:auto}.t-drawer__body,.t-drawer__footer{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-drawer__footer{background-color:var(--td-bg-color-container);border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;text-align:left;width:100%}.t-drawer__footer .t-button{margin-left:var(--td-comp-margin-s)}.t-drawer__footer .t-button:first-child{margin-left:0}.t-drawer__close-btn{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:var(--td-comp-size-xs);justify-content:center;position:absolute;right:var(--td-comp-margin-s);top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs))/2);transition:background-color .2s;width:var(--td-comp-size-xs)}.t-drawer__close-btn:hover{background-color:var(--td-bg-color-container-hover)}.t-drawer__close-btn:active{background-color:var(--td-bg-color-container-active)}.t-drawer__close-btn .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);vertical-align:unset}.t-drawer--open{height:100%;pointer-events:auto;width:100%}.t-drawer--open>.t-drawer__content-wrapper{visibility:visible}.t-drawer--open>.t-drawer__mask{height:100%;opacity:1;width:100%}.t-drawer--without-mask{pointer-events:none}[tabindex="-1"]:focus{outline:none!important}.t-guide{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-guide--lock{overflow:hidden}.t-guide--absolute{position:absolute}.t-guide--fixed{position:fixed}.t-guide__overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999997}.t-guide__highlight{border-radius:var(--td-radius-default);transition:.2s cubic-bezier(0,0,.15,1);z-index:999998}.t-guide__highlight--dialog{border-radius:var(--td-radius-large)}.t-guide__highlight--mask{box-shadow:0 0 0 0 var(--td-mask-active),var(--td-mask-active) 0 0 0 5000px}.t-guide__highlight--nomask{border:2px solid var(--td-brand-color);border-radius:var(--td-radius-medium);box-sizing:border-box}.t-guide__reference{z-index:999999}.t-guide__wrapper{bottom:0;display:flex;justify-content:center;left:0;padding-top:20vh;position:fixed;right:0;top:0;z-index:999999}.t-guide__wrapper--center{align-items:center;padding-top:0}.t-guide__dialog{animation:tGuideDialogFadeIn .3s ease-out;background:var(--td-bg-color-container);border-radius:var(--td-radius-large);box-sizing:border-box;max-width:500px;min-width:320px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-guide__dialog--nomask{border:1px solid var(--td-component-border)}.t-guide__dialog .t-guide__title{font:var(--td-font-title-medium);font-weight:700}.t-guide__dialog .t-guide__desc{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l)}.t-guide__tooltip{max-height:300px;max-width:600px;min-width:240px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-s)}.t-guide__title{color:var(--td-text-color-primary);font:var(--td-font-title-small);font-weight:700;text-align:left}.t-guide__desc{color:var(--td-text-color-secondary);font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s);text-align:left}.t-guide__action{align-items:center;display:flex}.t-guide__action button{margin-right:var(--td-comp-margin-s)}.t-guide__action button:last-child{margin-right:0}.t-guide__footer{align-items:center;display:flex}.t-guide__footer--popup{margin-top:var(--td-comp-margin-l)}.t-guide__footer--dialog{margin-top:24px}.t-guide__footer--dialog .t-guide__action{display:flex;justify-content:center}.t-guide__counter{color:var(--td-text-color-placeholder);flex:1;font:var(--td-font-body-small);text-align:left}.t-guide__popup .t-guide__popup--content{background:none;box-shadow:none;padding:0}@keyframes tGuideDialogFadeIn{0%{opacity:0}to{opacity:1}}.t-message{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-3),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);width:fit-content}.t-message .t-loading,.t-message>.t-icon,.t-message>[data-t-icon]>.t-icon{color:var(--td-brand-color);flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s)}.t-message.t-is-success .t-loading,.t-message.t-is-success>.t-icon,.t-message.t-is-success>[data-t-icon]>.t-icon{color:var(--td-success-color)}.t-message.t-is-warning .t-loading,.t-message.t-is-warning>.t-icon,.t-message.t-is-warning>[data-t-icon]>.t-icon{color:var(--td-warning-color)}.t-message.t-is-error .t-loading,.t-message.t-is-error>.t-icon,.t-message.t-is-error>[data-t-icon]>.t-icon{color:var(--td-error-color)}.t-message.t-is-closable .t-message__close{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-xxl);margin-right:0}.t-message.t-is-closable .t-message__close .t-icon-close{border-radius:var(--td-radius-default);font-size:calc(var(--td-font-size-body-medium) + 2px);transition:all .2s linear}.t-message.t-is-closable .t-message__close .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-message.t-is-closable .t-message__close .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-message__list{position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} /*# sourceMappingURL=tdesign.min.css.map */ \ No newline at end of file diff --git a/docs/assets/css/tdesign.min.css.map b/docs/assets/css/tdesign.min.css.map index 66e14b1..37d2b17 100644 --- a/docs/assets/css/tdesign.min.css.map +++ b/docs/assets/css/tdesign.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../packages/common/style/web/_global.less","_global.less","../../packages/common/style/web/mixins/_scrollbar.less","../../packages/common/style/web/theme/_light.less","_index.less","../../packages/common/style/web/theme/_dark.less","../../packages/common/style/web/theme/_radius.less","../../packages/common/style/web/theme/_font.less","../../packages/common/style/web/theme/_size.less","../../packages/common/style/web/components/loading/_index.less","../../packages/common/style/web/mixins/_reset.less","../../packages/common/style/web/components/button/_index.less","../../packages/common/style/web/components/button/_mixin.less","index.css","../../packages/common/style/web/components/link/_index.less","../../packages/common/style/web/components/grid/_index.less","../../packages/common/style/web/components/grid/_mixin.less","../../packages/common/style/web/components/layout/_index.less","../../packages/common/style/web/components/divider/_index.less","../../packages/common/style/web/components/space/_index.less","../../packages/common/style/web/components/descriptions/_index.less","../../packages/common/style/web/components/descriptions/_mixin.less","../../packages/common/style/web/components/affix/_index.less","../../packages/common/style/web/components/popup/_mixin.less","../../packages/common/style/web/components/popup/_index.less","../../packages/common/style/web/components/anchor/_index.less","../../packages/common/style/web/components/tooltip/_index.less","../../packages/common/style/web/components/breadcrumb/_mixin.less","../../packages/common/style/web/components/breadcrumb/_index.less","../../packages/common/style/web/components/dropdown/_index.less","../../packages/common/style/web/components/tabs/_index.less","../../packages/common/style/web/components/tabs/_mixin.less","../../packages/common/style/web/components/menu/_index.less","../../packages/common/style/web/mixins/_layout.less","../../packages/common/style/web/components/input/_mixin.less","../../packages/common/style/web/utilities/_tips.less","../../packages/common/style/web/mixins/_text.less","../../packages/common/style/web/components/input/_index.less","../../packages/common/style/web/components/input-number/_index.less","../../packages/common/style/web/components/tag/_index.less","../../packages/common/style/web/utilities/_animation.less","../../packages/common/style/web/components/tag-input/_index.less","../../packages/common/style/web/components/tag-input/_var.less","../../packages/common/style/web/components/select-input/_index.less","../../packages/common/style/web/components/checkbox/_index.less","../../packages/common/style/web/mixins/_focus.less","../../packages/common/style/web/components/select/_index.less","../../packages/common/style/web/components/input-adornment/_index.less","../../packages/common/style/web/components/pagination/_mini.less","../../packages/common/style/web/components/pagination/_index.less","../../packages/common/style/web/components/pagination/_mixin.less","../../packages/common/style/web/components/steps/_mixin.less","../../packages/common/style/web/components/steps/_index.less","../../packages/common/style/web/components/sticky-tool/_index.less","../../packages/common/style/web/components/sticky-tool/_mixin.less","../../packages/common/style/web/components/back-top/_index.less","../../packages/common/style/web/components/back-top/_mixin.less","../../packages/common/style/web/components/auto-complete/_index.less","../../packages/common/style/web/components/cascader/_index.less","../../packages/common/style/web/components/range-input/_mixin.less","../../packages/common/style/web/components/range-input/_index.less","../../packages/common/style/web/components/date-picker/_index.less","../../packages/common/style/web/components/form/_index.less","../../packages/common/style/web/components/form/_mixin.less","../../packages/common/style/web/components/radio/_index.less","../../packages/common/style/web/components/slider/_index.less","../../packages/common/style/web/components/switch/_index.less","../../packages/common/style/web/components/textarea/_index.less","../../packages/common/style/web/components/textarea/_mixin.less","../../packages/common/style/web/components/transfer/_index.less","../../packages/common/style/web/components/time-picker/_mixin.less","../../packages/common/style/web/components/time-picker/_index.less","../../packages/common/style/web/components/tree/_index.less","../../packages/common/style/web/components/tree-select/_index.less","../../packages/common/style/web/components/color-picker/_index.less","../../packages/common/style/web/components/image/_index.less","../../packages/common/style/web/components/avatar/_index.less","../../packages/common/style/web/components/avatar/_mixin.less","../../packages/common/style/web/components/badge/_index.less","../../packages/common/style/web/components/calendar/_index.less","../../packages/common/style/web/components/card/_index.less","../../packages/common/style/web/components/comment/_index.less","../../packages/common/style/web/components/empty/_index.less","../../packages/common/style/web/components/dialog/_animate.less","../../packages/common/style/web/components/dialog/_index.less","../../packages/common/style/web/components/image-viewer/_index.less","../../packages/common/style/web/components/list/_index.less","../../packages/common/style/web/components/progress/_index.less","../../packages/common/style/web/components/skeleton/_var.less","../../packages/common/style/web/components/skeleton/_index.less","../../packages/common/style/web/components/statistic/_index.less","../../packages/common/style/web/components/swiper/_index.less","../../packages/common/style/web/components/swiper/_mixin.less","../../packages/common/style/web/components/table/_index.less","../../packages/common/style/web/components/table/_mixin.less","../../packages/common/style/web/components/timeline/_index.less","../../packages/common/style/web/components/collapse/_index.less","../../packages/common/style/web/components/rate/_index.less","../../packages/common/style/web/components/typography/_index.less","../../packages/common/style/web/components/alert/_index.less","../../packages/common/style/web/components/drawer/_animate.less","../../packages/common/style/web/components/drawer/_index.less","../../packages/common/style/web/components/guide/_index.less","../../packages/common/style/web/components/message/_index.less","../../packages/common/style/web/components/message/_mixin.less","../../packages/common/style/web/components/notification/_index.less","../../packages/common/style/web/components/notification/_mixin.less","../../packages/common/style/web/components/popconfirm/_index.less","../../packages/common/style/web/components/upload/_index.less","../../packages/common/style/web/components/upload/_mixin.less"],"names":[],"mappings":"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J,CO/GG,8DACC,6CPiHJ,CO/CK,gDAzDH,wCAAA,CAAA,oCAAA,CA0DI,+BPmDN,CO1IE,oHAEE,8CP4IJ,COrIG,6DACC,wCPuIJ,CO9HG,8DACC,iDPgIJ,COpJE,oHAEE,0CPsJJ,CO/IG,6DACC,oCPiJJ,COxIG,8DACC,6CP0IJ,COlEK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPsEN,COnKE,kHAEE,4CPqKJ,CO9JG,4DACC,sCPgKJ,COvJG,6DACC,+CPyJJ,CO7KE,kHAEE,wCP+KJ,COxKG,4DACC,kCP0KJ,COjKG,6DACC,2CPmKJ,COrFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP+JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COxLG,sDACC,oCP2LJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COtMG,sDACC,yBPyMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COpNG,sDAEC,4BAAA,CADA,gCPuNJ,CO/HO,gEA1EL,kCAAA,CAAA,2BP6MF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COtOG,8EACC,yBPyOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COpPG,8EAEC,4BAAA,CADA,gCPuPJ,CO1JO,gEA/EL,oCAAA,CAAA,6BP6OF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COtQG,8EACC,yBPyQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COpRG,8EAEC,4BAAA,CADA,gCPuRJ,COrLO,gEApFL,oCAAA,CAAA,6BP6QF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COtSG,8EACC,yBPySJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COpTG,8EAEC,4BAAA,CADA,gCPuTJ,COhNO,+DAzFL,kCAAA,CAAA,2BP6SF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COtUG,6EACC,yBPyUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COpVG,6EAEC,4BAAA,CADA,gCPuVJ,COxOE,2BAjGA,oDAAA,CAAA,2CAAA,CAAA,kCAAA,CCbA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR6VF,COjPE,yECxGE,wCR6VJ,COnXE,0EAEE,iCPqXJ,CO9WG,wCACC,kCPgXJ,COvWG,yCACC,mCPyWJ,CO7XE,0EAEE,oDP+XJ,COxXG,wCACC,oDP0XJ,COjXG,yCACC,sDPmXJ,COvYE,0EAEE,wCPyYJ,COxXG,iFACC,2CP6XJ,CO5QK,mDAxGH,kCAAA,CAAA,2BPwXF,COrZE,0HAEE,iCPuZJ,COhZG,gEACC,2BPkZJ,COzYG,iEACC,oCP2YJ,CO/ZE,0HAEE,wCPiaJ,CO1ZG,gEACC,kCP4ZJ,COnZG,iEACC,2CPqZJ,CO/RK,mDA7GH,oCAAA,CAAA,6BPgZF,CO7aE,0HAEE,mCP+aJ,COxaG,gEACC,6BP0aJ,COjaG,iEACC,sCPmaJ,COvbE,0HAEE,0CPybJ,COlbG,gEACC,oCPobJ,CO3aG,iEACC,6CP6aJ,COlTK,mDAlHH,oCAAA,CAAA,6BPwaF,COrcE,0HAEE,mCPucJ,COhcG,gEACC,6BPkcJ,COzbG,iEACC,sCP2bJ,CO/cE,0HAEE,0CPidJ,CO1cG,gEACC,oCP4cJ,COncG,iEACC,6CPqcJ,COrUK,kDAvHH,kCAAA,CAAA,2BPgcF,CO7dE,wHAEE,iCP+dJ,COxdG,+DACC,2BP0dJ,COjdG,gEACC,oCPmdJ,COveE,wHAEE,wCPyeJ,COleG,+DACC,kCPoeJ,CO3dG,gEACC,2CP6dJ,COxVK,2CA5HH,4BAAA,CAAA,sCAAA,CAAA,+BPydF,COtfE,0GAEE,4BPwfJ,COjfG,0GACC,4BPsfJ,COlfG,yDACC,oCPqfJ,COpgBE,0GAEE,iCPsgBJ,COngBE,kDACE,kCPqgBJ,COlgBG,wDACC,+BPogBJ,COhgBG,yDACC,yBPmgBJ,COlhBE,0GAEE,wCPohBJ,COjhBE,kDACE,yCPmhBJ,COhhBG,wDACC,sCPkhBJ,CO9gBG,yDAEC,4BAAA,CADA,gCPihBJ,COlYO,mEAjIL,kCAAA,CAAA,2BPugBF,COpiBE,0JAEE,iCPsiBJ,COniBE,0EACE,kCPqiBJ,COliBG,gFACC,2BPoiBJ,COhiBG,iFACC,yBPmiBJ,COljBE,0JAEE,wCPojBJ,COjjBE,0EACE,yCPmjBJ,COhjBG,gFACC,kCPkjBJ,CO9iBG,iFAEC,4BAAA,CADA,gCPijBJ,CO7ZO,mEAtIL,oCAAA,CAAA,6BPuiBF,COpkBE,0JAEE,mCPskBJ,COnkBE,0EACE,oCPqkBJ,COlkBG,gFACC,6BPokBJ,COhkBG,iFACC,yBPmkBJ,COllBE,0JAEE,0CPolBJ,COjlBE,0EACE,2CPmlBJ,COhlBG,gFACC,oCPklBJ,CO9kBG,iFAEC,4BAAA,CADA,gCPilBJ,COxbO,mEA3IL,oCAAA,CAAA,6BPukBF,COpmBE,0JAEE,mCPsmBJ,COnmBE,0EACE,oCPqmBJ,COlmBG,gFACC,6BPomBJ,COhmBG,iFACC,yBPmmBJ,COlnBE,0JAEE,0CPonBJ,COjnBE,0EACE,2CPmnBJ,COhnBG,gFACC,oCPknBJ,CO9mBG,iFAEC,4BAAA,CADA,gCPinBJ,COndO,kEAhJL,kCAAA,CAAA,2BPumBF,COpoBE,wJAEE,iCPsoBJ,COnoBE,yEACE,kCPqoBJ,COloBG,+EACC,2BPooBJ,COhoBG,gFACC,yBPmoBJ,COlpBE,wJAEE,wCPopBJ,COjpBE,yEACE,yCPmpBJ,COhpBG,+EACC,kCPkpBJ,CO9oBG,gFAEC,4BAAA,CADA,gCPipBJ,CO3eE,0BAxJA,oDAAA,CAAA,2CAAA,CA8JE,mBAAA,CA9JF,kCAAA,CCbA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRwpBF,COrfE,uEC/JE,wCRwpBJ,CO9qBE,wEAEE,iCPgrBJ,COzqBG,uCACC,kCP2qBJ,COlqBG,wCACC,mCPoqBJ,COxrBE,wEAEE,oDP0rBJ,COnrBG,uCACC,oDPqrBJ,CO5qBG,wCACC,sDP8qBJ,COlsBE,wEAEE,wCPosBJ,COnrBG,+EACC,2CPwrBJ,CO/gBK,kDAhKH,kCAAA,CAAA,2BPmrBF,COhtBE,wHAEE,iCPktBJ,CO3sBG,+DACC,2BP6sBJ,COpsBG,gEACC,oCPssBJ,CO1tBE,wHAEE,wCP4tBJ,COrtBG,+DACC,kCPutBJ,CO9sBG,gEACC,2CPgtBJ,COliBK,kDArKH,oCAAA,CAAA,6BP2sBF,COxuBE,wHAEE,mCP0uBJ,COnuBG,+DACC,6BPquBJ,CO5tBG,gEACC,sCP8tBJ,COlvBE,wHAEE,0CPovBJ,CO7uBG,+DACC,oCP+uBJ,COtuBG,gEACC,6CPwuBJ,COrjBK,kDA1KH,oCAAA,CAAA,6BPmuBF,COhwBE,wHAEE,mCPkwBJ,CO3vBG,+DACC,6BP6vBJ,COpvBG,gEACC,sCPsvBJ,CO1wBE,wHAEE,0CP4wBJ,COrwBG,+DACC,oCPuwBJ,CO9vBG,gEACC,6CPgwBJ,COxkBK,iDA/KH,kCAAA,CAAA,2BP2vBF,COxxBE,sHAEE,iCP0xBJ,COnxBG,8DACC,2BPqxBJ,CO5wBG,+DACC,oCP8wBJ,COlyBE,sHAEE,wCPoyBJ,CO7xBG,8DACC,kCP+xBJ,COtxBG,+DACC,2CPwxBJ,CO3lBK,0CApLH,4BAAA,CAAA,sCAAA,CAAA,+BPoxBF,COjzBE,wGAEE,4BPmzBJ,CO5yBG,wGACC,4BPizBJ,CO7yBG,wDACC,oCPgzBJ,CO/zBE,wGAEE,iCPi0BJ,CO9zBE,iDACE,kCPg0BJ,CO7zBG,uDACC,+BP+zBJ,CO3zBG,wDACC,yBP8zBJ,CO70BE,wGAEE,wCP+0BJ,CO50BE,iDACE,yCP80BJ,CO30BG,uDACC,sCP60BJ,COz0BG,wDAEC,4BAAA,CADA,gCP40BJ,COroBO,kEAzLL,kCAAA,CAAA,2BPk0BF,CO/1BE,wJAEE,iCPi2BJ,CO91BE,yEACE,kCPg2BJ,CO71BG,+EACC,2BP+1BJ,CO31BG,gFACC,yBP81BJ,CO72BE,wJAEE,wCP+2BJ,CO52BE,yEACE,yCP82BJ,CO32BG,+EACC,kCP62BJ,COz2BG,gFAEC,4BAAA,CADA,gCP42BJ,COhqBO,kEA9LL,oCAAA,CAAA,6BPk2BF,CO/3BE,wJAEE,mCPi4BJ,CO93BE,yEACE,oCPg4BJ,CO73BG,+EACC,6BP+3BJ,CO33BG,gFACC,yBP83BJ,CO74BE,wJAEE,0CP+4BJ,CO54BE,yEACE,2CP84BJ,CO34BG,+EACC,oCP64BJ,COz4BG,gFAEC,4BAAA,CADA,gCP44BJ,CO3rBO,kEAnML,oCAAA,CAAA,6BPk4BF,CO/5BE,wJAEE,mCPi6BJ,CO95BE,yEACE,oCPg6BJ,CO75BG,+EACC,6BP+5BJ,CO35BG,gFACC,yBP85BJ,CO76BE,wJAEE,0CP+6BJ,CO56BE,yEACE,2CP86BJ,CO36BG,+EACC,oCP66BJ,COz6BG,gFAEC,4BAAA,CADA,gCP46BJ,COttBO,iEAxML,kCAAA,CAAA,2BPk6BF,CO/7BE,sJAEE,iCPi8BJ,CO97BE,wEACE,kCPg8BJ,CO77BG,8EACC,2BP+7BJ,CO37BG,+EACC,yBP87BJ,CO78BE,sJAEE,wCP+8BJ,CO58BE,wEACE,yCP88BJ,CO38BG,8EACC,kCP68BJ,COz8BG,+EAEC,4BAAA,CADA,gCP48BJ,CO9uBE,wBAhNA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCbA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRk9BF,COvvBE,mECvNE,wCRk9BJ,COx+BE,oEAEE,kCP0+BJ,COn+BG,qCACC,kCPq+BJ,CO59BG,sCACC,mCP89BJ,COl/BE,oEAEE,mDPo/BJ,COn+BG,2EACC,4BPw+BJ,CO5/BE,oEAEE,+CP8/BJ,CO7+BG,2EACC,wBPk/BJ,COnxBK,gDAtNH,2BP4+BF,COzgCE,oHAEE,iCP2gCJ,COpgCG,6DACC,2BPsgCJ,CO7/BG,8DACC,oCP+/BJ,CO5xBK,gDA1NH,6BPy/BF,COthCE,oHAEE,mCPwhCJ,COjhCG,6DACC,6BPmhCJ,CO1gCG,8DACC,sCP4gCJ,COryBK,gDA9NH,6BPsgCF,COniCE,oHAEE,mCPqiCJ,CO9hCG,6DACC,6BPgiCJ,COvhCG,8DACC,sCPyhCJ,CO9yBK,+CAlOH,2BPmhCF,COhjCE,kHAEE,iCPkjCJ,CO3iCG,4DACC,2BP6iCJ,COpiCG,6DACC,oCPsiCJ,COvzBK,wCACC,eAAA,CAvOJ,+BPiiCF,CO9jCE,oGAEE,iCPgkCJ,CO7jCE,+CACE,kCP+jCJ,CO5jCG,qDACC,+BP8jCJ,CO1jCG,sDAEC,4BAAA,CADA,yBP6jCJ,COp0BO,gEA3OL,2BPkjCF,CO/kCE,oJAEE,iCPilCJ,CO9kCE,uEACE,kCPglCJ,CO7kCG,6EACC,2BP+kCJ,CO3kCG,8EAEC,4BAAA,CADA,yBP8kCJ,COj1BO,gEA/OL,6BPmkCF,COhmCE,oJAEE,mCPkmCJ,CO/lCE,uEACE,oCPimCJ,CO9lCG,6EACC,6BPgmCJ,CO5lCG,8EAEC,4BAAA,CADA,yBP+lCJ,CO91BO,gEAnPL,6BPolCF,COjnCE,oJAEE,mCPmnCJ,COhnCE,uEACE,oCPknCJ,CO/mCG,6EACC,6BPinCJ,CO7mCG,8EAEC,4BAAA,CADA,yBPgnCJ,CO32BO,+DAvPL,2BPqmCF,COloCE,kJAEE,iCPooCJ,COjoCE,sEACE,kCPmoCJ,COhoCG,4EACC,2BPkoCJ,CO9nCG,6EAEC,4BAAA,CADA,yBPioCJ,COt3BG,+CAEC,kBPw3BJ,COr3BG,mBC/QD,8BAAA,CADA,6BAAA,CAEA,mDAAA,CACA,oDRwoCF,CO33BG,yDCzQC,yCRwoCJ,CO33BG,mBCnRD,8BAAA,CADA,6BAAA,CAEA,oDAAA,CACA,qDRkpCF,COj4BG,yDC7QC,yCRkpCJ,COj4BE,wBAEE,SAAA,CADA,2BPo4BJ,COj4BK,iCAEC,SAAA,CADA,4BPo4BN,COh4BK,iCAEC,SAAA,CADA,4BPm4BN,CO93BE,uBACE,oCPg4BJ,CO93BK,gCACC,4CPg4BN,CO73BK,gCACC,4CP+3BN,CO33BE,wBAIE,2CAAA,CAFA,SAAA,CACA,iBAAA,CAFA,2BPg4BJ,COj4BE,mEAWI,wCP43BN,COz3BK,iCAEC,4CAAA,CADA,4BP43BN,COx3BK,iCAGC,4CAAA,CADA,SAAA,CADA,4BP43BN,COt3BG,4BACC,YAAA,CACA,UPw3BJ,COp3BC,iBACC,sCPs3BF,COn3BC,oDACC,kDPq3BF,COl3BC,kEACC,kDPo3BF,COj3BC,0FACC,2CPm3BF,COh3BC,0FACC,6CPk3BF,CO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IG,cACC,kBZ0IJ,CYvIG,gBACC,wBZyIJ,CYtIG,eACC,OZwIJ,CY3JG,SACC,aAAA,CACA,YAAA,CACA,aZ6JJ,CY1JG,cACC,QZ4JJ,CYzJG,cACC,SZ2JJ,CYxJG,gBACC,eZ0JJ,CYvJG,eACC,OZyJJ,CY5KG,SACC,aAAA,CACA,qBAAA,CACA,sBZ8KJ,CY3KG,cACC,iBZ6KJ,CY1KG,cACC,kBZ4KJ,CYzKG,gBACC,wBZ2KJ,CYxKG,eACC,OZ0KJ,CY7LG,SACC,aAAA,CACA,qBAAA,CACA,sBZ+LJ,CY5LG,cACC,iBZ8LJ,CY3LG,cACC,kBZ6LJ,CY1LG,gBACC,wBZ4LJ,CYzLG,eACC,OZ2LJ,CY9MG,SACC,aAAA,CACA,YAAA,CACA,aZgNJ,CY7MG,cACC,QZ+MJ,CY5MG,cACC,SZ8MJ,CY3MG,gBACC,eZ6MJ,CY1MG,eACC,OZ4MJ,CY/NG,SACC,aAAA,CACA,qBAAA,CACA,sBZiOJ,CY9NG,cACC,iBZgOJ,CY7NG,cACC,kBZ+NJ,CY5NG,gBACC,wBZ8NJ,CY3NG,eACC,OZ6NJ,CYhPG,SACC,aAAA,CACA,oBAAA,CACA,qBZkPJ,CY/OG,cACC,gBZiPJ,CY9OG,cACC,iBZgPJ,CY7OG,gBACC,uBZ+OJ,CY5OG,eACC,OZ8OJ,CYvOG,SACC,YZyOJ,CYtNG,gBACC,aZoOJ,CYjOG,eACC,OZmOJ,CYtRG,aACC,aAAA,CACA,aAAA,CACA,cZwRJ,CYrRG,kBACC,SZuRJ,CYpRG,kBACC,UZsRJ,CYnRG,oBACC,gBZqRJ,CYlRG,mBACC,QZoRJ,CYvSG,aACC,aAAA,CACA,qBAAA,CACA,sBZySJ,CYtSG,kBACC,iBZwSJ,CYrSG,kBACC,kBZuSJ,CYpSG,oBACC,wBZsSJ,CYnSG,mBACC,QZqSJ,CYxTG,aACC,aAAA,CACA,qBAAA,CACA,sBZ0TJ,CYvTG,kBACC,iBZyTJ,CYtTG,kBACC,kBZwTJ,CYrTG,oBACC,wBZuTJ,CYpTG,mBACC,QZsTJ,CYzUG,YACC,aAAA,CACA,YAAA,CACA,aZ2UJ,CYxUG,iBACC,QZ0UJ,CYvUG,iBACC,SZyUJ,CYtUG,mBACC,eZwUJ,CYrUG,kBACC,OZuUJ,CY1VG,YACC,aAAA,CACA,qBAAA,CACA,sBZ4VJ,CYzVG,iBACC,iBZ2VJ,CYxVG,iBACC,kBZ0VJ,CYvVG,mBACC,wBZyVJ,CYtVG,kBACC,OZwVJ,CY3WG,YACC,aAAA,CACA,qBAAA,CACA,sBZ6WJ,CY1WG,iBACC,iBZ4WJ,CYzWG,iBACC,kBZ2WJ,CYxWG,mBACC,wBZ0WJ,CYvWG,kBACC,OZyWJ,CY5XG,YACC,aAAA,CACA,YAAA,CACA,aZ8XJ,CY3XG,iBACC,QZ6XJ,CY1XG,iBACC,SZ4XJ,CYzXG,mBACC,eZ2XJ,CYxXG,kBACC,OZ0XJ,CY7YG,YACC,aAAA,CACA,qBAAA,CACA,sBZ+YJ,CY5YG,iBACC,iBZ8YJ,CY3YG,iBACC,kBZ6YJ,CY1YG,mBACC,wBZ4YJ,CYzYG,kBACC,OZ2YJ,CY9ZG,YACC,aAAA,CACA,qBAAA,CACA,sBZgaJ,CY7ZG,iBACC,iBZ+ZJ,CY5ZG,iBACC,kBZ8ZJ,CY3ZG,mBACC,wBZ6ZJ,CY1ZG,kBACC,OZ4ZJ,CY/aG,YACC,aAAA,CACA,YAAA,CACA,aZibJ,CY9aG,iBACC,QZgbJ,CY7aG,iBACC,SZ+aJ,CY5aG,mBACC,eZ8aJ,CY3aG,kBACC,OZ6aJ,CYhcG,YACC,aAAA,CACA,qBAAA,CACA,sBZkcJ,CY/bG,iBACC,iBZicJ,CY9bG,iBACC,kBZgcJ,CY7bG,mBACC,wBZ+bJ,CY5bG,kBACC,OZ8bJ,CYjdG,YACC,aAAA,CACA,oBAAA,CACA,qBZmdJ,CYhdG,iBACC,gBZkdJ,CY/cG,iBACC,iBZidJ,CY9cG,mBACC,uBZgdJ,CY7cG,kBACC,OZ+cJ,CYxcG,YACC,YZ0cJ,CYvcG,cACC,SZycJ,CYtcG,cACC,UZwcJ,CYrcG,iBACC,SZucJ,CYpcG,iBACC,UZscJ,CYncG,mBACC,aZqcJ,CYlcG,kBACC,OZocJ,CW5ZA,yBC3FG,aACC,aAAA,CACA,aAAA,CACA,cZ0fF,CYvfC,kBACC,SZyfF,CYtfC,kBACC,UZwfF,CYrfC,oBACC,gBZufF,CYpfC,mBACC,QZsfF,CYzgBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ2gBF,CYxgBC,kBACC,iBZ0gBF,CYvgBC,kBACC,kBZygBF,CYtgBC,oBACC,wBZwgBF,CYrgBC,mBACC,QZugBF,CY1hBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ4hBF,CYzhBC,kBACC,iBZ2hBF,CYxhBC,kBACC,kBZ0hBF,CYvhBC,oBACC,wBZyhBF,CYthBC,mBACC,QZwhBF,CY3iBC,YACC,aAAA,CACA,YAAA,CACA,aZ6iBF,CY1iBC,iBACC,QZ4iBF,CYziBC,iBACC,SZ2iBF,CYxiBC,mBACC,eZ0iBF,CYviBC,kBACC,OZyiBF,CY5jBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ8jBF,CY3jBC,iBACC,iBZ6jBF,CY1jBC,iBACC,kBZ4jBF,CYzjBC,mBACC,wBZ2jBF,CYxjBC,kBACC,OZ0jBF,CY7kBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ+kBF,CY5kBC,iBACC,iBZ8kBF,CY3kBC,iBACC,kBZ6kBF,CY1kBC,mBACC,wBZ4kBF,CYzkBC,kBACC,OZ2kBF,CY9lBC,YACC,aAAA,CACA,YAAA,CACA,aZgmBF,CY7lBC,iBACC,QZ+lBF,CY5lBC,iBACC,SZ8lBF,CY3lBC,mBACC,eZ6lBF,CY1lBC,kBACC,OZ4lBF,CY/mBC,YACC,aAAA,CACA,qBAAA,CACA,sBZinBF,CY9mBC,iBACC,iBZgnBF,CY7mBC,iBACC,kBZ+mBF,CY5mBC,mBACC,wBZ8mBF,CY3mBC,kBACC,OZ6mBF,CYhoBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkoBF,CY/nBC,iBACC,iBZioBF,CY9nBC,iBACC,kBZgoBF,CY7nBC,mBACC,wBZ+nBF,CY5nBC,kBACC,OZ8nBF,CYjpBC,YACC,aAAA,CACA,YAAA,CACA,aZmpBF,CYhpBC,iBACC,QZkpBF,CY/oBC,iBACC,SZipBF,CY9oBC,mBACC,eZgpBF,CY7oBC,kBACC,OZ+oBF,CYlqBC,YACC,aAAA,CACA,qBAAA,CACA,sBZoqBF,CYjqBC,iBACC,iBZmqBF,CYhqBC,iBACC,kBZkqBF,CY/pBC,mBACC,wBZiqBF,CY9pBC,kBACC,OZgqBF,CYnrBC,YACC,aAAA,CACA,oBAAA,CACA,qBZqrBF,CYlrBC,iBACC,gBZorBF,CYjrBC,iBACC,iBZmrBF,CYhrBC,mBACC,uBZkrBF,CY/qBC,kBACC,OZirBF,CY1qBC,YACC,YZ4qBF,CYzqBC,cACC,SZ2qBF,CYxqBC,cACC,UZ0qBF,CYvqBC,iBACC,SZyqBF,CYtqBC,iBACC,UZwqBF,CYrqBC,mBACC,aZuqBF,CYpqBC,kBACC,OZsqBF,CACF,CW3nBA,yBC/FG,aACC,aAAA,CACA,aAAA,CACA,cZ6tBF,CY1tBC,kBACC,SZ4tBF,CYztBC,kBACC,UZ2tBF,CYxtBC,oBACC,gBZ0tBF,CYvtBC,mBACC,QZytBF,CY5uBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8uBF,CY3uBC,kBACC,iBZ6uBF,CY1uBC,kBACC,kBZ4uBF,CYzuBC,oBACC,wBZ2uBF,CYxuBC,mBACC,QZ0uBF,CY7vBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ+vBF,CY5vBC,kBACC,iBZ8vBF,CY3vBC,kBACC,kBZ6vBF,CY1vBC,oBACC,wBZ4vBF,CYzvBC,mBACC,QZ2vBF,CY9wBC,YACC,aAAA,CACA,YAAA,CACA,aZgxBF,CY7wBC,iBACC,QZ+wBF,CY5wBC,iBACC,SZ8wBF,CY3wBC,mBACC,eZ6wBF,CY1wBC,kBACC,OZ4wBF,CY/xBC,YACC,aAAA,CACA,qBAAA,CACA,sBZiyBF,CY9xBC,iBACC,iBZgyBF,CY7xBC,iBACC,kBZ+xBF,CY5xBC,mBACC,wBZ8xBF,CY3xBC,kBACC,OZ6xBF,CYhzBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkzBF,CY/yBC,iBACC,iBZizBF,CY9yBC,iBACC,kBZgzBF,CY7yBC,mBACC,wBZ+yBF,CY5yBC,kBACC,OZ8yBF,CYj0BC,YACC,aAAA,CACA,YAAA,CACA,aZm0BF,CYh0BC,iBACC,QZk0BF,CY/zBC,iBACC,SZi0BF,CY9zBC,mBACC,eZg0BF,CY7zBC,kBACC,OZ+zBF,CYl1BC,YACC,aAAA,CACA,qBAAA,CACA,sBZo1BF,CYj1BC,iBACC,iBZm1BF,CYh1BC,iBACC,kBZk1BF,CY/0BC,mBACC,wBZi1BF,CY90BC,kBACC,OZg1BF,CYn2BC,YACC,aAAA,CACA,qBAAA,CACA,sBZq2BF,CYl2BC,iBACC,iBZo2BF,CYj2BC,iBACC,kBZm2BF,CYh2BC,mBACC,wBZk2BF,CY/1BC,kBACC,OZi2BF,CYp3BC,YACC,aAAA,CACA,YAAA,CACA,aZs3BF,CYn3BC,iBACC,QZq3BF,CYl3BC,iBACC,SZo3BF,CYj3BC,mBACC,eZm3BF,CYh3BC,kBACC,OZk3BF,CYr4BC,YACC,aAAA,CACA,qBAAA,CACA,sBZu4BF,CYp4BC,iBACC,iBZs4BF,CYn4BC,iBACC,kBZq4BF,CYl4BC,mBACC,wBZo4BF,CYj4BC,kBACC,OZm4BF,CYt5BC,YACC,aAAA,CACA,oBAAA,CACA,qBZw5BF,CYr5BC,iBACC,gBZu5BF,CYp5BC,iBACC,iBZs5BF,CYn5BC,mBACC,uBZq5BF,CYl5BC,kBACC,OZo5BF,CY74BC,YACC,YZ+4BF,CY54BC,cACC,SZ84BF,CY34BC,cACC,UZ64BF,CY14BC,iBACC,SZ44BF,CYz4BC,iBACC,UZ24BF,CYx4BC,mBACC,aZ04BF,CYv4BC,kBACC,OZy4BF,CACF,CW11BA,0BCnGG,aACC,aAAA,CACA,aAAA,CACA,cZg8BF,CY77BC,kBACC,SZ+7BF,CY57BC,kBACC,UZ87BF,CY37BC,oBACC,gBZ67BF,CY17BC,mBACC,QZ47BF,CY/8BC,aACC,aAAA,CACA,qBAAA,CACA,sBZi9BF,CY98BC,kBACC,iBZg9BF,CY78BC,kBACC,kBZ+8BF,CY58BC,oBACC,wBZ88BF,CY38BC,mBACC,QZ68BF,CYh+BC,aACC,aAAA,CACA,qBAAA,CACA,sBZk+BF,CY/9BC,kBACC,iBZi+BF,CY99BC,kBACC,kBZg+BF,CY79BC,oBACC,wBZ+9BF,CY59BC,mBACC,QZ89BF,CYj/BC,YACC,aAAA,CACA,YAAA,CACA,aZm/BF,CYh/BC,iBACC,QZk/BF,CY/+BC,iBACC,SZi/BF,CY9+BC,mBACC,eZg/BF,CY7+BC,kBACC,OZ++BF,CYlgCC,YACC,aAAA,CACA,qBAAA,CACA,sBZogCF,CYjgCC,iBACC,iBZmgCF,CYhgCC,iBACC,kBZkgCF,CY//BC,mBACC,wBZigCF,CY9/BC,kBACC,OZggCF,CYnhCC,YACC,aAAA,CACA,qBAAA,CACA,sBZqhCF,CYlhCC,iBACC,iBZohCF,CYjhCC,iBACC,kBZmhCF,CYhhCC,mBACC,wBZkhCF,CY/gCC,kBACC,OZihCF,CYpiCC,YACC,aAAA,CACA,YAAA,CACA,aZsiCF,CYniCC,iBACC,QZqiCF,CYliCC,iBACC,SZoiCF,CYjiCC,mBACC,eZmiCF,CYhiCC,kBACC,OZkiCF,CYrjCC,YACC,aAAA,CACA,qBAAA,CACA,sBZujCF,CYpjCC,iBACC,iBZsjCF,CYnjCC,iBACC,kBZqjCF,CYljCC,mBACC,wBZojCF,CYjjCC,kBACC,OZmjCF,CYtkCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwkCF,CYrkCC,iBACC,iBZukCF,CYpkCC,iBACC,kBZskCF,CYnkCC,mBACC,wBZqkCF,CYlkCC,kBACC,OZokCF,CYvlCC,YACC,aAAA,CACA,YAAA,CACA,aZylCF,CYtlCC,iBACC,QZwlCF,CYrlCC,iBACC,SZulCF,CYplCC,mBACC,eZslCF,CYnlCC,kBACC,OZqlCF,CYxmCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0mCF,CYvmCC,iBACC,iBZymCF,CYtmCC,iBACC,kBZwmCF,CYrmCC,mBACC,wBZumCF,CYpmCC,kBACC,OZsmCF,CYznCC,YACC,aAAA,CACA,oBAAA,CACA,qBZ2nCF,CYxnCC,iBACC,gBZ0nCF,CYvnCC,iBACC,iBZynCF,CYtnCC,mBACC,uBZwnCF,CYrnCC,kBACC,OZunCF,CYhnCC,YACC,YZknCF,CY/mCC,cACC,SZinCF,CY9mCC,cACC,UZgnCF,CY7mCC,iBACC,SZ+mCF,CY5mCC,iBACC,UZ8mCF,CY3mCC,mBACC,aZ6mCF,CY1mCC,kBACC,OZ4mCF,CACF,CWzjCA,0BCvGG,aACC,aAAA,CACA,aAAA,CACA,cZmqCF,CYhqCC,kBACC,SZkqCF,CY/pCC,kBACC,UZiqCF,CY9pCC,oBACC,gBZgqCF,CY7pCC,mBACC,QZ+pCF,CYlrCC,aACC,aAAA,CACA,qBAAA,CACA,sBZorCF,CYjrCC,kBACC,iBZmrCF,CYhrCC,kBACC,kBZkrCF,CY/qCC,oBACC,wBZirCF,CY9qCC,mBACC,QZgrCF,CYnsCC,aACC,aAAA,CACA,qBAAA,CACA,sBZqsCF,CYlsCC,kBACC,iBZosCF,CYjsCC,kBACC,kBZmsCF,CYhsCC,oBACC,wBZksCF,CY/rCC,mBACC,QZisCF,CYptCC,YACC,aAAA,CACA,YAAA,CACA,aZstCF,CYntCC,iBACC,QZqtCF,CYltCC,iBACC,SZotCF,CYjtCC,mBACC,eZmtCF,CYhtCC,kBACC,OZktCF,CYruCC,YACC,aAAA,CACA,qBAAA,CACA,sBZuuCF,CYpuCC,iBACC,iBZsuCF,CYnuCC,iBACC,kBZquCF,CYluCC,mBACC,wBZouCF,CYjuCC,kBACC,OZmuCF,CYtvCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwvCF,CYrvCC,iBACC,iBZuvCF,CYpvCC,iBACC,kBZsvCF,CYnvCC,mBACC,wBZqvCF,CYlvCC,kBACC,OZovCF,CYvwCC,YACC,aAAA,CACA,YAAA,CACA,aZywCF,CYtwCC,iBACC,QZwwCF,CYrwCC,iBACC,SZuwCF,CYpwCC,mBACC,eZswCF,CYnwCC,kBACC,OZqwCF,CYxxCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0xCF,CYvxCC,iBACC,iBZyxCF,CYtxCC,iBACC,kBZwxCF,CYrxCC,mBACC,wBZuxCF,CYpxCC,kBACC,OZsxCF,CYzyCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ2yCF,CYxyCC,iBACC,iBZ0yCF,CYvyCC,iBACC,kBZyyCF,CYtyCC,mBACC,wBZwyCF,CYryCC,kBACC,OZuyCF,CY1zCC,YACC,aAAA,CACA,YAAA,CACA,aZ4zCF,CYzzCC,iBACC,QZ2zCF,CYxzCC,iBACC,SZ0zCF,CYvzCC,mBACC,eZyzCF,CYtzCC,kBACC,OZwzCF,CY30CC,YACC,aAAA,CACA,qBAAA,CACA,sBZ60CF,CY10CC,iBACC,iBZ40CF,CYz0CC,iBACC,kBZ20CF,CYx0CC,mBACC,wBZ00CF,CYv0CC,kBACC,OZy0CF,CY51CC,YACC,aAAA,CACA,oBAAA,CACA,qBZ81CF,CY31CC,iBACC,gBZ61CF,CY11CC,iBACC,iBZ41CF,CYz1CC,mBACC,uBZ21CF,CYx1CC,kBACC,OZ01CF,CYn1CC,YACC,YZq1CF,CYl1CC,cACC,SZo1CF,CYj1CC,cACC,UZm1CF,CYh1CC,iBACC,SZk1CF,CY/0CC,iBACC,UZi1CF,CY90CC,mBACC,aZg1CF,CY70CC,kBACC,OZ+0CF,CACF,CWxxCA,0BC3GG,cACC,aAAA,CACA,aAAA,CACA,cZs4CF,CYn4CC,mBACC,SZq4CF,CYl4CC,mBACC,UZo4CF,CYj4CC,qBACC,gBZm4CF,CYh4CC,oBACC,QZk4CF,CYr5CC,cACC,aAAA,CACA,qBAAA,CACA,sBZu5CF,CYp5CC,mBACC,iBZs5CF,CYn5CC,mBACC,kBZq5CF,CYl5CC,qBACC,wBZo5CF,CYj5CC,oBACC,QZm5CF,CYt6CC,cACC,aAAA,CACA,qBAAA,CACA,sBZw6CF,CYr6CC,mBACC,iBZu6CF,CYp6CC,mBACC,kBZs6CF,CYn6CC,qBACC,wBZq6CF,CYl6CC,oBACC,QZo6CF,CYv7CC,aACC,aAAA,CACA,YAAA,CACA,aZy7CF,CYt7CC,kBACC,QZw7CF,CYr7CC,kBACC,SZu7CF,CYp7CC,oBACC,eZs7CF,CYn7CC,mBACC,OZq7CF,CYx8CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ08CF,CYv8CC,kBACC,iBZy8CF,CYt8CC,kBACC,kBZw8CF,CYr8CC,oBACC,wBZu8CF,CYp8CC,mBACC,OZs8CF,CYz9CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ29CF,CYx9CC,kBACC,iBZ09CF,CYv9CC,kBACC,kBZy9CF,CYt9CC,oBACC,wBZw9CF,CYr9CC,mBACC,OZu9CF,CY1+CC,aACC,aAAA,CACA,YAAA,CACA,aZ4+CF,CYz+CC,kBACC,QZ2+CF,CYx+CC,kBACC,SZ0+CF,CYv+CC,oBACC,eZy+CF,CYt+CC,mBACC,OZw+CF,CY3/CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ6/CF,CY1/CC,kBACC,iBZ4/CF,CYz/CC,kBACC,kBZ2/CF,CYx/CC,oBACC,wBZ0/CF,CYv/CC,mBACC,OZy/CF,CY5gDC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8gDF,CY3gDC,kBACC,iBZ6gDF,CY1gDC,kBACC,kBZ4gDF,CYzgDC,oBACC,wBZ2gDF,CYxgDC,mBACC,OZ0gDF,CY7hDC,aACC,aAAA,CACA,YAAA,CACA,aZ+hDF,CY5hDC,kBACC,QZ8hDF,CY3hDC,kBACC,SZ6hDF,CY1hDC,oBACC,eZ4hDF,CYzhDC,mBACC,OZ2hDF,CY9iDC,aACC,aAAA,CACA,qBAAA,CACA,sBZgjDF,CY7iDC,kBACC,iBZ+iDF,CY5iDC,kBACC,kBZ8iDF,CY3iDC,oBACC,wBZ6iDF,CY1iDC,mBACC,OZ4iDF,CY/jDC,aACC,aAAA,CACA,oBAAA,CACA,qBZikDF,CY9jDC,kBACC,gBZgkDF,CY7jDC,kBACC,iBZ+jDF,CY5jDC,oBACC,uBZ8jDF,CY3jDC,mBACC,OZ6jDF,CYtjDC,aACC,YZwjDF,CYrjDC,cACC,SZujDF,CYpjDC,cACC,UZsjDF,CYnjDC,kBACC,SZqjDF,CYljDC,kBACC,UZojDF,CYjjDC,oBACC,aZmjDF,CYhjDC,mBACC,OZkjDF,CACF,CahmDC,UPLC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,CaOC,wCAIC,kCAAA,CAFA,YAAA,CAGA,SAAA,CAFA,qBbHF,CaQC,sDAEC,kBbNF,CaSC,kBAEC,6CAAA,CADA,+BbNF,CaUC,mBACC,SbRF,CaWC,iBAGC,uCAAA,CAFA,iBAAA,CACA,kBAAA,CAEA,WbTF,CaYC,kBACC,sCAAA,CACA,YbVF,CczBC,WAKC,mDAAA,CAEA,qBAAA,CADA,kCAAA,CAHA,+BAAA,CRLA,eAAA,CAFA,QAAA,CQQA,kCAAA,CRPA,SNEF,CcUE,mBACE,uBdRJ,CcWE,uBAEE,YAAA,CADA,UdRJ,CcYE,qBAIE,oDAAA,CAHA,YAAA,CACA,oBAAA,CAGA,WAAA,CAFA,gCAAA,CAGA,qBdVJ,CcaE,sBAIE,kBAAA,CAFA,YAAA,CADA,YAAA,CAEA,kBdVJ,CcOE,yDAQI,oBAAA,CADA,adVN,CccI,yDAIE,mDAAA,CAFA,UAAA,CACA,SdXN,CcgBM,kCACE,QddR,CcuBM,oEACE,SdlBR,CcqBM,kCACE,QdnBR,Cc0BE,mDAEE,oDdxBJ,Cc4BC,uCACC,qDd1BF,CevDC,SACC,mBfHF,CeEC,uBAIG,afHJ,CeME,qBACE,sBfJJ,CeOE,mBACE,oBfLJ,CeQE,wBACE,oBfNJ,CeSE,sBACE,kBfPJ,CeUE,kBACE,qBfRJ,CeOE,0CAII,UfRN,CeaC,6BACC,cfXF,CeeG,2BACC,YfbJ,CeeK,6FAEC,kDfbN,CegBK,2FAEC,8CfdN,CekBG,iGAEC,sCfhBJ,CemBG,+FAEC,kCfjBJ,CgBrCC,gBVHC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,CgBME,wBACE,kCAAA,CACA,gCAAA,CAEA,eAAA,CADA,qChBHJ,CgBOE,sBACE,wBAAA,CACA,+BAAA,CACA,UhBLJ,CiBjBG,2CAIO,kCjBgBV,CiBpBG,2CAIO,6DjBmBV,CiBvBG,2CAIO,6DjBsBV,CgBEK,6CACC,sChBAN,CgBGI,6BACE,kBhBDN,CgBII,0CAIQ,2ChBLZ,CgBCI,qDAUI,sDhBRR,CgBUQ,2DACE,mDhBRV,CkBxCC,SACC,cAAA,CACA,WlBDF,CmBHA,8EAGM,qCnBDN,CmBGM,qFACE,qCnBDR,CmBOA,oFAGM,kCnBPN,CmBSM,2FACE,kCnBPR,CmBaA,gFAGM,oCnBbN,CmBeM,uFACE,oCnBbR,CmBgBM,sFACE,enBdR,CmBoBA,kFAGM,mCnBpBN,CmBsBM,yFACE,mCnBpBR,CmBuBM,wFACE,enBrBR,CoBjBC,SdPC,qBAAA,CcUA,kCAAA,CACA,oBAAA,CdbA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CcUA,YpBsBF,CoBpBE,kBAEE,uCAAA,CAEA,qCAAA,CADA,+IAAA,CAKA,qBAAA,CAFA,yCAAA,CACA,6CAAA,CAFA,8DAAA,CAJA,iBAAA,CAQA,oBpBsBJ,CoBlBC,gBAIC,UAAA,CAHA,iBAAA,CAEA,SAAA,CADA,SpBsBF,CoBlBE,uBAME,uCAAA,CAJA,UAAA,CAEA,UAAA,CAHA,iBAAA,CAIA,uBAAA,CAFA,SpBuBJ,CmB/DG,uDAEG,qCnBgEN,CmB9DM,8DACE,qCnBgER,CmBzDG,0DAEG,kCnB0DN,CmBxDM,iEACE,kCnB0DR,CmBnDG,wDAEG,oCnBoDN,CmBlDM,+DACE,oCnBoDR,CmBjDM,8DACE,enBmDR,CmB5CG,yDAEG,mCnB6CN,CmB3CM,gEACE,mCnB6CR,CmB1CM,+DACE,enB4CR,CmBpCI,4DACE,2BAAA,CACA,oEnBsCN,CmBlCG,0DACC,QnBoCJ,CmBjCG,oDACC,QAAA,CACA,gBnBmCJ,CmBhCG,wDACC,sBnBkCJ,CmB7BG,wDACC,QnB+BJ,CmB7BI,+DACE,+BAAA,CACA,kEnB+BN,CmB3BG,6DACC,QnB6BJ,CmB1BG,uDACC,QAAA,CACA,gBnB4BJ,CmBzBG,2DACC,sBnB2BJ,CmBtBG,sDACC,UnBwBJ,CmBtBI,6DACE,iEnBwBN,CmBpBG,2DACC,OnBsBJ,CmBnBG,qDAEC,eAAA,CADA,OnBsBJ,CmBlBG,yDACC,qBnBoBJ,CmBfG,uDACC,SnBiBJ,CmBfI,8DACE,qEnBiBN,CmBbG,4DACC,OnBeJ,CmBZG,sDAEC,eAAA,CADA,OnBeJ,CmBXG,0DACC,qBnBaJ,CoBnGC,kHAIC,SAAA,CACA,iBpBqGF,CoBlGC,mHAIC,SAAA,CAEA,cAAA,CADA,kBpBqGF,CoBjGC,iCACC,6BpBmGF,CoBhGC,iCACC,sFpBkGF,CmBEG,oEACC,4FnBAJ,CmBGG,oEACC,+GnBDJ,CmBSI,2CACE,GACE,0DnBPN,CmBUI,GACE,oDnBRN,CACF,CmBWI,4CACE,GACE,oDnBTN,CmBYI,GACE,0DnBVN,CACF,CmBpBG,uEACC,+FnBsBJ,CmBnBG,uEACC,kHnBqBJ,CmBbI,8CACE,GACE,8CnBeN,CmBZI,GACE,oDnBcN,CACF,CmBXI,+CACE,GACE,oDnBaN,CmBVI,GACE,8CnBYN,CACF,CqBtNC,UAGC,uCAAA,CAGA,uCAAA,CfTA,qBAAA,CeWA,kCAAA,CACA,+BAAA,CfTA,eAAA,CAFA,QAAA,CAC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cN,CyBXI,4BACE,kBzBaN,CyBVI,0BAGE,kBAAA,CAFA,YAAA,CACA,MAAA,CAEA,6BAAA,CACA,czBYN,CyBTI,uBAIE,MAAA,CAHA,eAAA,CACA,sBAAA,CACA,kBzBYN,CyBRK,sEAEG,kBAAA,CAEA,aAAA,CADA,wCzBUR,CyBJI,iCACE,kCzBMN,CyBJM,uCACE,mDzBMR,CyBHM,wCACE,oDzBKR,CyBFO,0DAEC,4CAAA,CADA,2BzBKR,CyBFQ,gEACE,mDzBIV,CyBDQ,iEACE,oDzBGV,CyBCO,4DACC,mCzBCR,CyBCQ,kEACE,mDzBCV,CyBIQ,gEACE,4CAAA,CACA,2BzBFV,CyBOI,iCACE,6BzBLN,CyBOM,uCACE,mDzBLR,CyBQM,wCACE,oDzBNR,CyBSO,0DACC,8CzBPR,CyBSQ,gEACE,mDzBPV,CyBUQ,iEACE,oDzBRV,CyBYO,2DACC,mCzBVR,CyBYQ,iEACE,mDzBVV,CyBeQ,gEACE,8CzBbV,CyBkBI,+BACE,2BzBhBN,CyBkBM,qCACE,mDzBhBR,CyBmBM,sCACE,oDzBjBR,CyBoBO,wDACC,4CzBlBR,CyBoBQ,8DACE,mDzBlBV,CyBqBQ,+DACE,oDzBnBV,CyBuBO,0DACC,mCzBrBR,CyBuBQ,gEACE,mDzBrBV,CyB0BQ,8DACE,4CzBxBV,CyB8BI,iCACE,6BzB5BN,CyB8BM,uCACE,mDzB5BR,CyB+BM,wCACE,oDzB7BR,CyBgCO,0DACC,8CzB9BR,CyBgCQ,gEACE,mDzB9BV,CyBiCQ,iEACE,oDzB/BV,CyBmCO,4DACC,mCzBjCR,CyBmCQ,kEACE,mDzBjCV,CyBsCQ,gEACE,8CzBpCV,C0B1PC,QAIC,6CAAA,CpBTA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CoBOA,eAAA,CpBNA,SNEF,C0BQK,0BACC,U1BNN,C0BSK,2BACC,W1BPN,C0BCE,wBAUI,wC1BRN,C0BYE,aAEE,eAAA,CADA,iBAAA,CAEA,gB1BVJ,C0BaE,oBAKE,6CAAA,CADA,kDAAA,CAHA,YAAA,CACA,kBAAA,CACA,iB1BTJ,C0BaI,0BACE,MAAA,CACA,S1BXN,C0BcI,2B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BG,aAAA,CADA,kDAAA,CAFA,qCAAA,CACA,iDnCHJ,CmCbC,0BAyBG,cAAA,CADA,+BAAA,CADA,mCAAA,CADA,cAAA,CAIA,8CnCNJ,CmCSE,gBAEE,6CAAA,CADA,kCnCNJ,CmCKE,mCAKI,sCnCPN,CmCSM,yCACE,kCnCPR,CmCWI,uBACE,cnCTN,CmCaK,gCAEC,sDAAA,CACA,uCAAA,CAFA,mCAAA,CAGA,kBnCXN,CmCaM,sCACE,kBnCXR,CmCeQ,8CACE,cnCbV,CmCkBK,+BACC,uCnChBN,CmCuBK,kEAHC,sDnCbN,CmCgBK,qCACC,uCnCjBN,CmCsBE,gBACE,sCnCpBJ,CmCsBK,+BACC,kCnCpBN,CmC2BK,kEAHC,4CnCjBN,CmCoBK,qCACC,kCnCrBN,CmCyBK,iGACC,2BnCrBN,CmCwBQ,4KACE,iCnCpBV,CmC0BE,gBACE,wCnCxBJ,CmC0BK,+BACC,oCnCxBN,CmC+BK,kEAHC,8CnCrBN,CmCwBK,qCACC,oCnCzBN,CmC6BK,iGACC,6BnCzBN,CmC4BQ,4KACE,mCnCxBV,CmC8BE,gBACE,wCnC5BJ,CmC8BK,+BACC,oCnC5BN,CmCmCK,kEAHC,8CnCzBN,CmC4BK,qCACC,oCnC7BN,CmCiCK,iGACC,6BnC7BN,CmCgCQ,4KACE,mCnC5BV,CmCkCE,eACE,sCnChCJ,CmCkCK,8BACC,kCnChCN,CmCuCK,gEAHC,4CnC7BN,CmCgCK,oCACC,kCnCjCN,CmCqBE,kCAiBI,0BnCnCN,CmCqCM,wCACE,gCnCnCR,CmCuCK,8FACC,2BnCnCN,CmCsCQ,yKACE,iCnClCV,CmCwCE,2DAGI,4BnCxCN,CmC0CM,iEACE,4BnCxCR,CmC6CG,sBACC,sBnC3CJ,CmC8CG,gBAGC,8BAAA,CADA,8BAAA,CADA,qCnC1CJ,CmCyCG,wBAMG,mCnC5CN,CmCgDG,gBAEC,4BAAA,CADA,oCnC5CJ,CmC2CG,wCAGC,+BnC3CJ,CmCkDG,oBACC,yCnChDJ,CmCmDG,mBACC,yEnCjDJ,CmCoDG,oCH/OD,gBAAA,CGkPI,oBAAA,CHjPJ,eAAA,CACA,sBAAA,CAHA,kBhCmMF,CmCsDC,0CAEC,cAAA,CADA,y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8DACC,UzE0EJ,CyE3EG,8DACC,UzE6EJ,CyE9EG,8DACC,UzEgFJ,CyEjFG,8DACC,UzEmFJ,CyEpFG,8DACC,UzEsFJ,CyEvFG,8DACC,UzEyFJ,CyE1FG,8DACC,UzE4FJ,CyE7FG,8DACC,UzE+FJ,CyEhGG,8DACC,UzEkGJ,CyEnGG,8DACC,UzEqGJ,CyEtGG,8DACC,UzEwGJ,CyEzGG,8DACC,UzE2GJ,CyE5GG,8DACC,UzE8GJ,CyE/GG,8DACC,UzEiHJ,CyElHG,8DACC,UzEoHJ,CyErHG,8DACC,UzEuHJ,CyExHG,8DACC,UzE0HJ,CyE3HG,8DACC,UzE6HJ,CyE9HG,8DACC,UzEgIJ,CyEjIG,8DACC,UzEmIJ,CyEpIG,8DACC,UzEsIJ,CyEvIG,8DACC,UzEyIJ,CyE1IG,8DACC,UzE4IJ,CyE7IG,8DACC,UzE+IJ,CyEhJG,8DACC,UzEkJJ,CyEnJG,8DACC,UzEqJJ,CyEtJG,8DACC,UzEwJJ,CyEzJG,8DACC,UzE2JJ,CyE5JG,8DACC,UzE8JJ,CyE/JG,8DACC,UzEiKJ,CyElKG,8DACC,UzEoKJ,CyErKG,8DACC,SzEuKJ,CyExKG,8DACC,SzE0KJ,CyE3KG,8DACC,SzE6KJ,CyE9KG,8DACC,SzEgLJ,CyEjLG,8DACC,SzEmLJ,CyEpLG,8DACC,SzEsLJ,CyEvLG,8DACC,SzEyLJ,CyE1LG,8DACC,SzE4LJ,CyE7LG,8DACC,SzE+LJ,CyEhMG,8DACC,SzEkMJ,CwE/IM,kECzDJ,wCzE2MF,CyE7LG,2EAdD,wCzE8MF,CyE5LG,2EAlBD,wCzEiNF,C0ExNC,SpENC,qBAAA,CADA,kCAAA,CoEWA,oBAAA,CpEZA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CoEOA,iB1ELF,C0EQE,+CAWE,sBAAA,CALA,+BAAA,CAEA,8BAAA,CALA,iBAAA,CAEA,OAAA,CAEA,iBAAA,CAHA,KAAA,CAKA,6BAAA,CACA,uB1ELJ,C0ESE,iBAEE,oBAAA,CADA,eAAA,CAEA,c1EPJ,C0EUE,cAME,sCAAA,CADA,qCAAA,CADA,UAAA,CAFA,cAAA,CADA,SAAA,CAEA,S1ELJ,C0EWE,iCAME,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","file":"tdesign.min.css","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,"@keyframes t-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.t-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1em;\n}\n.t-icon::before {\n font-family: unset;\n}\n.t-icon-loading {\n animation: t-spin 1s linear infinite;\n}\n.t-icon {\n fill: currentColor;\n}\n.t-icon.t-size-s,\ni.t-size-s {\n font-size: 14px;\n}\n.t-icon.t-size-m,\ni.t-size-m {\n font-size: 16px;\n}\n.t-icon.t-size-l,\ni.t-size-l {\n font-size: 18px;\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file +{"version":3,"sources":["../../packages/common/style/web/_global.less","_global.less","../../packages/common/style/web/mixins/_scrollbar.less","../../packages/common/style/web/theme/_light.less","_index.less","../../packages/common/style/web/theme/_dark.less","../../packages/common/style/web/theme/_radius.less","../../packages/common/style/web/theme/_font.less","../../packages/common/style/web/theme/_size.less","../../packages/common/style/web/components/loading/_index.less","../../packages/common/style/web/mixins/_reset.less","../../packages/common/style/web/components/button/_index.less","../../packages/common/style/web/components/button/_mixin.less","index.css","../../packages/common/style/web/components/link/_index.less","../../packages/common/style/web/components/grid/_index.less","../../packages/common/style/web/components/grid/_mixin.less","../../packages/common/style/web/components/layout/_index.less","../../packages/common/style/web/components/divider/_index.less","../../packages/common/style/web/components/space/_index.less","../../packages/common/style/web/components/descriptions/_index.less","../../packages/common/style/web/components/descriptions/_mixin.less","../../packages/common/style/web/components/affix/_index.less","../../packages/common/style/web/components/popup/_mixin.less","../../packages/common/style/web/components/popup/_index.less","../../packages/common/style/web/components/anchor/_index.less","../../packages/common/style/web/components/tooltip/_index.less","../../packages/common/style/web/components/breadcrumb/_mixin.less","../../packages/common/style/web/components/breadcrumb/_index.less","../../packages/common/style/web/components/dropdown/_index.less","../../packages/common/style/web/components/tabs/_index.less","../../packages/common/style/web/components/tabs/_mixin.less","../../packages/common/style/web/components/menu/_index.less","../../packages/common/style/web/mixins/_layout.less","../../packages/common/style/web/components/input/_mixin.less","../../packages/common/style/web/utilities/_tips.less","../../packages/common/style/web/mixins/_text.less","../../packages/common/style/web/components/input/_index.less","../../packages/common/style/web/components/input-number/_index.less","../../packages/common/style/web/components/tag/_index.less","../../packages/common/style/web/utilities/_animation.less","../../packages/common/style/web/components/tag-input/_index.less","../../packages/common/style/web/components/tag-input/_var.less","../../packages/common/style/web/components/select-input/_index.less","../../packages/common/style/web/components/checkbox/_index.less","../../packages/common/style/web/mixins/_focus.less","../../packages/common/style/web/components/select/_index.less","../../packages/common/style/web/components/input-adornment/_index.less","../../packages/common/style/web/components/pagination/_mini.less","../../packages/common/style/web/components/pagination/_index.less","../../packages/common/style/web/components/pagination/_mixin.less","../../packages/common/style/web/components/steps/_mixin.less","../../packages/common/style/web/components/steps/_index.less","../../packages/common/style/web/components/sticky-tool/_index.less","../../packages/common/style/web/components/sticky-tool/_mixin.less","../../packages/common/style/web/components/back-top/_index.less","../../packages/common/style/web/components/back-top/_mixin.less","../../packages/common/style/web/components/auto-complete/_index.less","../../packages/common/style/web/components/cascader/_index.less","../../packages/common/style/web/components/range-input/_mixin.less","../../packages/common/style/web/components/range-input/_index.less","../../packages/common/style/web/components/date-picker/_index.less","../../packages/common/style/web/components/form/_index.less","../../packages/common/style/web/components/form/_mixin.less","../../packages/common/style/web/components/radio/_index.less","../../packages/common/style/web/components/slider/_index.less","../../packages/common/style/web/components/switch/_index.less","../../packages/common/style/web/components/textarea/_index.less","../../packages/common/style/web/components/textarea/_mixin.less","../../packages/common/style/web/components/transfer/_index.less","../../packages/common/style/web/components/time-picker/_mixin.less","../../packages/common/style/web/components/time-picker/_index.less","../../packages/common/style/web/components/tree/_index.less","../../packages/common/style/web/components/tree-select/_index.less","../../packages/common/style/web/components/color-picker/_index.less","../../packages/common/style/web/components/image/_index.less","../../packages/common/style/web/components/avatar/_index.less","../../packages/common/style/web/components/avatar/_mixin.less","../../packages/common/style/web/components/badge/_index.less","../../packages/common/style/web/components/calendar/_index.less","../../packages/common/style/web/components/card/_index.less","../../packages/common/style/web/components/comment/_index.less","../../packages/common/style/web/components/empty/_index.less","../../packages/common/style/web/components/dialog/_animate.less","../../packages/common/style/web/components/dialog/_index.less","../../packages/common/style/web/components/image-viewer/_index.less","../../packages/common/style/web/components/list/_index.less","../../packages/common/style/web/components/progress/_index.less","../../packages/common/style/web/components/skeleton/_var.less","../../packages/common/style/web/components/skeleton/_index.less","../../packages/common/style/web/components/statistic/_index.less","../../packages/common/style/web/components/swiper/_index.less","../../packages/common/style/web/components/swiper/_mixin.less","../../packages/common/style/web/components/table/_index.less","../../packages/common/style/web/components/table/_mixin.less","../../packages/common/style/web/components/timeline/_index.less","../../packages/common/style/web/components/collapse/_index.less","../../packages/common/style/web/components/rate/_index.less","../../packages/common/style/web/components/typography/_index.less","../../packages/common/style/web/components/alert/_index.less","../../packages/common/style/web/components/drawer/_animate.less","../../packages/common/style/web/components/drawer/_index.less","../../packages/common/style/web/components/guide/_index.less","../../packages/common/style/web/components/message/_index.less","../../packages/common/style/web/components/message/_mixin.less","../../packages/common/style/web/components/notification/_index.less","../../packages/common/style/web/components/notification/_mixin.less","../../packages/common/style/web/components/popconfirm/_index.less","../../packages/common/style/web/components/upload/_index.less","../../packages/common/style/web/components/upload/_mixin.less"],"names":[],"mappings":"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C,6CPsIJ,CO9DK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPkEN,COnKE,kHAEE,4CPqKJ,COhJG,yHACC,+CPqJJ,CO7KE,kHAEE,wCP+KJ,CO1JG,yHACC,2CP+JJ,COjFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP2JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COpLG,sDACC,oCPuLJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COlMG,sDACC,yBPqMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COhNG,sDAEC,4BAAA,CADA,gCPmNJ,CO3HO,gEA1EL,kCAAA,CAAA,2BPyMF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COlOG,8EACC,yBPqOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COhPG,8EAEC,4BAAA,CADA,gCPmPJ,COtJO,gEA/EL,oCAAA,CAAA,6BPyOF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COlQG,8EACC,yBPqQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COhRG,8EAEC,4BAAA,CADA,gCPmRJ,COjLO,gEApFL,oCAAA,CAAA,6BPyQF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COlSG,8EACC,yBPqSJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COhTG,8EAEC,4BAAA,CADA,gCPmTJ,CO5MO,+DAzFL,kCAAA,CAAA,2BPySF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COlUG,6EACC,yBPqUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COhVG,6EAEC,4BAAA,CADA,gCPmVJ,COpOE,2BAjGA,oDAAA,CAAA,2CAAA,CAAA,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR6VF,CO7OE,yEC5GE,wCR6VJ,COnXE,0EAEE,iCPqXJ,COhWG,iFACC,mCPqWJ,CO7XE,0EAEE,oDP+XJ,CO1WG,iFACC,sDP+WJ,COvYE,0EAEE,wCPyYJ,COpXG,iFACC,2CPyXJ,COxQK,mDAxGH,kCAAA,CAAA,2BPoXF,COrZE,0HAEE,iCPuZJ,COlYG,iIACC,oCPuYJ,CO/ZE,0HAEE,wCPiaJ,CO5YG,iIACC,2CPiZJ,CO3RK,mDA7GH,oCAAA,CAAA,6BP4YF,CO7aE,0HAEE,mCP+aJ,CO1ZG,iIACC,sCP+ZJ,COvbE,0HAEE,0CPybJ,COpaG,iIACC,6CPyaJ,CO9SK,mDAlHH,oCAAA,CAAA,6BPoaF,COrcE,0HAEE,mCPucJ,COlbG,iIACC,sCPubJ,CO/cE,0HAEE,0CPidJ,CO5bG,iIACC,6CPicJ,COjUK,kDAvHH,kCAAA,CAAA,2BP4bF,CO7dE,wHAEE,iCP+dJ,CO1cG,+HACC,oCP+cJ,COveE,wHAEE,wCPyeJ,COpdG,+HACC,2CPydJ,COpVK,2CA5HH,4BAAA,CAAA,sCAAA,CAAA,+BPqdF,COtfE,0GAEE,4BPwfJ,COjfG,0GACC,4BPsfJ,CO9eG,yDACC,oCPifJ,COpgBE,0GAEE,iCPsgBJ,COngBE,kDACE,kCPqgBJ,COlgBG,wDACC,+BPogBJ,CO5fG,yDACC,yBP+fJ,COlhBE,0GAEE,wCPohBJ,COjhBE,kDACE,yCPmhBJ,COhhBG,wDACC,sCPkhBJ,CO1gBG,yDAEC,4BAAA,CADA,gCP6gBJ,CO9XO,mEAjIL,kCAAA,CAAA,2BPmgBF,COpiBE,0JAEE,iCPsiBJ,COniBE,0EACE,kCPqiBJ,COliBG,gFACC,2BPoiBJ,CO5hBG,iFACC,yBP+hBJ,COljBE,0JAEE,wCPojBJ,COjjBE,0EACE,yCPmjBJ,COhjBG,gFACC,kCPkjBJ,CO1iBG,iFAEC,4BAAA,CADA,gCP6iBJ,COzZO,mEAtIL,oCAAA,CAAA,6BPmiBF,COpkBE,0JAEE,mCPskBJ,COnkBE,0EACE,oCPqkBJ,COlkBG,gFACC,6BPokBJ,CO5jBG,iFACC,yBP+jBJ,COllBE,0JAEE,0CPolBJ,COjlBE,0EACE,2CPmlBJ,COhlBG,gFACC,oCPklBJ,CO1kBG,iFAEC,4BAAA,CADA,gCP6kBJ,COpbO,mEA3IL,oCAAA,CAAA,6BPmkBF,COpmBE,0JAEE,mCPsmBJ,COnmBE,0EACE,oCPqmBJ,COlmBG,gFACC,6BPomBJ,CO5lBG,iFACC,yBP+lBJ,COlnBE,0JAEE,0CPonBJ,COjnBE,0EACE,2CPmnBJ,COhnBG,gFACC,oCPknBJ,CO1mBG,iFAEC,4BAAA,CADA,gCP6mBJ,CO/cO,kEAhJL,kCAAA,CAAA,2BPmmBF,COpoBE,wJAEE,iCPsoBJ,COnoBE,yEACE,kCPqoBJ,COloBG,+EACC,2BPooBJ,CO5nBG,gFACC,yBP+nBJ,COlpBE,wJAEE,wCPopBJ,COjpBE,yEACE,yCPmpBJ,COhpBG,+EACC,kCPkpBJ,CO1oBG,gFAEC,4BAAA,CADA,gCP6oBJ,COveE,0BAxJA,oDAAA,CAAA,2CAAA,CA8JE,mBAAA,CA9JF,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRwpBF,COjfE,uECnKE,wCRwpBJ,CO9qBE,wEAEE,iCPgrBJ,CO3pBG,+EACC,mCPgqBJ,COxrBE,wEAEE,oDP0rBJ,COrqBG,+EACC,sDP0qBJ,COlsBE,wEAEE,wCPosBJ,CO/qBG,+EACC,2CPorBJ,CO3gBK,kDAhKH,kCAAA,CAAA,2BP+qBF,COhtBE,wHAEE,iCPktBJ,CO7rBG,+HACC,oCPksBJ,CO1tBE,wHAEE,wCP4tBJ,COvsBG,+HACC,2CP4sBJ,CO9hBK,kDArKH,oCAAA,CAAA,6BPusBF,COxuBE,wHAEE,mCP0uBJ,COrtBG,+HACC,sCP0tBJ,COlvBE,wHAEE,0CPovBJ,CO/tBG,+HACC,6CPouBJ,COjjBK,kDA1KH,oCAAA,CAAA,6BP+tBF,COhwBE,wHAEE,mCPkwBJ,CO7uBG,+HACC,sCPkvBJ,CO1wBE,wHAEE,0CP4wBJ,COvvBG,+HACC,6CP4vBJ,COpkBK,iDA/KH,kCAAA,CAAA,2BPuvBF,COxxBE,sHAEE,iCP0xBJ,COrwBG,6HACC,oCP0wBJ,COlyBE,sHAEE,wCPoyBJ,CO/wBG,6HACC,2CPoxBJ,COvlBK,0CApLH,4BAAA,CAAA,sCAAA,CAAA,+BPgxBF,COjzBE,wGAEE,4BPmzBJ,CO5yBG,wGACC,4BPizBJ,COzyBG,wDACC,oCP4yBJ,CO/zBE,wGAEE,iCPi0BJ,CO9zBE,iDACE,kCPg0BJ,CO7zBG,uDACC,+BP+zBJ,COvzBG,wDACC,yBP0zBJ,CO70BE,wGAEE,wCP+0BJ,CO50BE,iDACE,yCP80BJ,CO30BG,uDACC,sCP60BJ,COr0BG,wDAEC,4BAAA,CADA,gCPw0BJ,COjoBO,kEAzLL,kCAAA,CAAA,2BP8zBF,CO/1BE,wJAEE,iCPi2BJ,CO91BE,yEACE,kCPg2BJ,CO71BG,+EACC,2BP+1BJ,COv1BG,gFACC,yBP01BJ,CO72BE,wJAEE,wCP+2BJ,CO52BE,yEACE,yCP82BJ,CO32BG,+EACC,kCP62BJ,COr2BG,gFAEC,4BAAA,CADA,gCPw2BJ,CO5pBO,kEA9LL,oCAAA,CAAA,6BP81BF,CO/3BE,wJAEE,mCPi4BJ,CO93BE,yEACE,oCPg4BJ,CO73BG,+EACC,6BP+3BJ,COv3BG,gFACC,yBP03BJ,CO74BE,wJAEE,0CP+4BJ,CO54BE,yEACE,2CP84BJ,CO34BG,+EACC,oCP64BJ,COr4BG,gFAEC,4BAAA,CADA,gCPw4BJ,COvrBO,kEAnML,oCAAA,CAAA,6BP83BF,CO/5BE,wJAEE,mCPi6BJ,CO95BE,yEACE,oCPg6BJ,CO75BG,+EACC,6BP+5BJ,COv5BG,gFACC,yBP05BJ,CO76BE,wJAEE,0CP+6BJ,CO56BE,yEACE,2CP86BJ,CO36BG,+EACC,oCP66BJ,COr6BG,gFAEC,4BAAA,CADA,gCPw6BJ,COltBO,iEAxML,kCAAA,CAAA,2BP85BF,CO/7BE,sJAEE,iCPi8BJ,CO97BE,wEACE,kCPg8BJ,CO77BG,8EACC,2BP+7BJ,COv7BG,+EACC,yBP07BJ,CO78BE,sJAEE,wCP+8BJ,CO58BE,wEACE,yCP88BJ,CO38BG,8EACC,kCP68BJ,COr8BG,+EAEC,4BAAA,CADA,gCPw8BJ,CO1uBE,wBAhNA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRk9BF,COnvBE,mEC3NE,wCRk9BJ,COx+BE,oEAEE,kCP0+BJ,COr9BG,2EACC,mCP09BJ,COl/BE,oEAEE,mDPo/BJ,CO/9BG,2EACC,4BPo+BJ,CO5/BE,oEAEE,+CP8/BJ,COz+BG,2EACC,wBP8+BJ,CO/wBK,gDAtNH,2BPw+BF,COzgCE,oHAEE,iCP2gCJ,COt/BG,2HACC,oCP2/BJ,COxxBK,gDA1NH,6BPq/BF,COthCE,oHAEE,mCPwhCJ,COngCG,2HACC,sCPwgCJ,COjyBK,gDA9NH,6BPkgCF,COniCE,oHAEE,mCPqiCJ,COhhCG,2HACC,sCPqhCJ,CO1yBK,+CAlOH,2BP+gCF,COhjCE,kHAEE,iCPkjCJ,CO7hCG,yHACC,oCPkiCJ,COnzBK,wCACC,eAAA,CAvOJ,+BP6hCF,CO9jCE,oGAEE,iCPgkCJ,CO7jCE,+CACE,kCP+jCJ,CO5jCG,qDACC,+BP8jCJ,COtjCG,sDAEC,4BAAA,CADA,yBPyjCJ,COh0BO,gEA3OL,2BP8iCF,CO/kCE,oJAEE,iCPilCJ,CO9kCE,uEACE,kCPglCJ,CO7kCG,6EACC,2BP+kCJ,COvkCG,8EAEC,4BAAA,CADA,yBP0kCJ,CO70BO,gEA/OL,6BP+jCF,COhmCE,oJAEE,mCPkmCJ,CO/lCE,uEACE,oCPimCJ,CO9lCG,6EACC,6BPgmCJ,COxlCG,8EAEC,4BAAA,CADA,yBP2lCJ,CO11BO,gEAnPL,6BPglCF,COjnCE,oJAEE,mCPmnCJ,COhnCE,uEACE,oCPknCJ,CO/mCG,6EACC,6BPinCJ,COzmCG,8EAEC,4BAAA,CADA,yBP4mCJ,COv2BO,+DAvPL,2BPimCF,COloCE,kJAEE,iCPooCJ,COjoCE,sEACE,kCPmoCJ,COhoCG,4EACC,2BPkoCJ,CO1nCG,6EAEC,4BAAA,CADA,yBP6nCJ,COl3BG,+CAEC,kBPo3BJ,COj3BG,mBCnRD,8BAAA,CADA,6BAAA,CAEA,mDAAA,CACA,oDRwoCF,COv3BG,yDC7QC,yCRwoCJ,COv3BG,mBCvRD,8BAAA,CADA,6BAA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AAA,CACA,qBAAA,CACA,sBZwEJ,CYrEG,eACC,iBZuEJ,CYpEG,eACC,kBZsEJ,CYnEG,iBACC,wBZqEJ,CYlEG,gBACC,QZoEJ,CYvFG,UACC,aAAA,CACA,qBAAA,CACA,sBZyFJ,CYtFG,eACC,iBZwFJ,CYrFG,eACC,kBZuFJ,CYpFG,iBACC,wBZsFJ,CYnFG,gBACC,QZqFJ,CYxGG,SACC,aAAA,CACA,YAAA,CACA,aZ0GJ,CYvGG,cACC,QZyGJ,CYtGG,cACC,SZwGJ,CYrGG,gBACC,eZuGJ,CYpGG,eACC,OZsGJ,CYzHG,SACC,aAAA,CACA,qBAAA,CACA,sBZ2HJ,CYxHG,cACC,iBZ0HJ,CYvHG,cACC,kBZyHJ,CYtHG,gBACC,wBZwHJ,CYrHG,eACC,OZuHJ,CY1IG,SACC,aAAA,CACA,qBAAA,CACA,sBZ4IJ,CYzIG,cACC,iBZ2IJ,CYxIG,cACC,kBZ0IJ,CYvIG,gBACC,wBZyIJ,CYtIG,eACC,OZwIJ,CY3JG,SACC,aAAA,CACA,YAAA,CACA,aZ6JJ,CY1JG,cACC,QZ4JJ,CYzJG,cACC,SZ2JJ,CYxJG,gBACC,eZ0JJ,CYvJG,eACC,OZyJJ,CY5KG,SACC,aAAA,CACA,qBAAA,CACA,sBZ8KJ,CY3KG,cACC,iBZ6KJ,CY1KG,cACC,kBZ4KJ,CYzKG,gBACC,wBZ2KJ,CYxKG,eACC,OZ0KJ,CY7LG,SACC,aAAA,CACA,qBAAA,CACA,sBZ+LJ,CY5LG,cACC,iBZ8LJ,CY3LG,cACC,kBZ6LJ,CY1LG,gBACC,wBZ4LJ,CYzLG,eACC,OZ2LJ,CY9MG,SACC,aAAA,CACA,YAAA,CACA,aZgNJ,CY7MG,cACC,QZ+MJ,CY5MG,cACC,SZ8MJ,CY3MG,gBACC,eZ6MJ,CY1MG,eACC,OZ4MJ,CY/NG,SACC,aAAA,CACA,qBAAA,CACA,sBZiOJ,CY9NG,cACC,iBZgOJ,CY7NG,cACC,kBZ+NJ,CY5NG,gBACC,wBZ8NJ,CY3NG,eACC,OZ6NJ,CYhPG,SACC,aAAA,CACA,oBAAA,CACA,qBZkPJ,CY/OG,cACC,gBZiPJ,CY9OG,cACC,iBZgPJ,CY7OG,gBACC,uBZ+OJ,CY5OG,eACC,OZ8OJ,CYvOG,SACC,YZyOJ,CYtNG,gBACC,aZoOJ,CYjOG,eACC,OZmOJ,CYtRG,aACC,aAAA,CACA,aAAA,CACA,cZwRJ,CYrRG,kBACC,SZuRJ,CYpRG,kBACC,UZsRJ,CYnRG,oBACC,gBZqRJ,CYlRG,mBACC,QZoRJ,CYvSG,aACC,aAAA,CACA,qBAAA,CACA,sBZySJ,CYtSG,kBACC,iBZwSJ,CYrSG,kBACC,kBZuSJ,CYpSG,oBACC,wBZsSJ,CYnSG,mBACC,QZqSJ,CYxTG,aACC,aAAA,CACA,qBAAA,CACA,sBZ0TJ,CYvTG,kBACC,iBZyTJ,CYtTG,kBACC,kBZwTJ,CYrTG,oBACC,wBZuTJ,CYpTG,mBACC,QZsTJ,CYzUG,YACC,aAAA,CACA,YAAA,CACA,aZ2UJ,CYxUG,iBACC,QZ0UJ,CYvUG,iBACC,SZyUJ,CYtUG,mBACC,eZwUJ,CYrUG,kBACC,OZuUJ,CY1VG,YACC,aAAA,CACA,qBAAA,CACA,sBZ4VJ,CYzVG,iBACC,iBZ2VJ,CYxVG,iBACC,kBZ0VJ,CYvVG,mBACC,wBZyVJ,CYtVG,kBACC,OZwVJ,CY3WG,YACC,aAAA,CACA,qBAAA,CACA,sBZ6WJ,CY1WG,iBACC,iBZ4WJ,CYzWG,iBACC,kBZ2WJ,CYxWG,mBACC,wBZ0WJ,CYvWG,kBACC,OZyWJ,CY5XG,YACC,aAAA,CACA,YAAA,CACA,aZ8XJ,CY3XG,iBACC,QZ6XJ,CY1XG,iBACC,SZ4XJ,CYzXG,mBACC,eZ2XJ,CYxXG,kBACC,OZ0XJ,CY7YG,YACC,aAAA,CACA,qBAAA,CACA,sBZ+YJ,CY5YG,iBACC,iBZ8YJ,CY3YG,iBACC,kBZ6YJ,CY1YG,mBACC,wBZ4YJ,CYzYG,kBACC,OZ2YJ,CY9ZG,YACC,aAAA,CACA,qBAAA,CACA,sBZgaJ,CY7ZG,iBACC,iBZ+ZJ,CY5ZG,iBACC,kBZ8ZJ,CY3ZG,mBACC,wBZ6ZJ,CY1ZG,kBACC,OZ4ZJ,CY/aG,YACC,aAAA,CACA,YAAA,CACA,aZibJ,CY9aG,iBACC,QZgbJ,CY7aG,iBACC,SZ+aJ,CY5aG,mBACC,eZ8aJ,CY3aG,kBACC,OZ6aJ,CYhcG,YACC,aAAA,CACA,qBAAA,CACA,sBZkcJ,CY/bG,iBACC,iBZicJ,CY9bG,iBACC,kBZgcJ,CY7bG,mBACC,wBZ+bJ,CY5bG,kBACC,OZ8bJ,CYjdG,YACC,aAAA,CACA,oBAAA,CACA,qBZmdJ,CYhdG,iBACC,gBZkdJ,CY/cG,iBACC,iBZidJ,CY9cG,mBACC,uBZgdJ,CY7cG,kBACC,OZ+cJ,CYxcG,YACC,YZ0cJ,CYvcG,cACC,SZycJ,CYtcG,cACC,UZwcJ,CYrcG,iBACC,SZucJ,CYpcG,iBACC,UZscJ,CYncG,mBACC,aZqcJ,CYlcG,kBACC,OZocJ,CW5ZA,yBC3FG,aACC,aAAA,CACA,aAAA,CACA,cZ0fF,CYvfC,kBACC,SZyfF,CYtfC,kBACC,UZwfF,CYrfC,oBACC,gBZufF,CYpfC,mBACC,QZsfF,CYzgBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ2gBF,CYxgBC,kBACC,iBZ0gBF,CYvgBC,kBACC,kBZygBF,CYtgBC,oBACC,wBZwgBF,CYrgBC,mBACC,QZugBF,CY1hBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ4hBF,CYzhBC,kBACC,iBZ2hBF,CYxhBC,kBACC,kBZ0hBF,CYvhBC,oBACC,wBZyhBF,CYthBC,mBACC,QZwhBF,CY3iBC,YACC,aAAA,CACA,YAAA,CACA,aZ6iBF,CY1iBC,iBACC,QZ4iBF,CYziBC,iBACC,SZ2iBF,CYxiBC,mBACC,eZ0iBF,CYviBC,kBACC,OZyiBF,CY5jBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ8jBF,CY3jBC,iBACC,iBZ6jBF,CY1jBC,iBACC,kBZ4jBF,CYzjBC,mBACC,wBZ2jBF,CYxjBC,kBACC,OZ0jBF,CY7kBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ+kBF,CY5kBC,iBACC,iBZ8kBF,CY3kBC,iBACC,kBZ6kBF,CY1kBC,mBACC,wBZ4kBF,CYzkBC,kBACC,OZ2kBF,CY9lBC,YACC,aAAA,CACA,YAAA,CACA,aZgmBF,CY7lBC,iBACC,QZ+lBF,CY5lBC,iBACC,SZ8lBF,CY3lBC,mBACC,eZ6lBF,CY1lBC,kBACC,OZ4lBF,CY/mBC,YACC,aAAA,CACA,qBAAA,CACA,sBZinBF,CY9mBC,iBACC,iBZgnBF,CY7mBC,iBACC,kBZ+mBF,CY5mBC,mBACC,wBZ8mBF,CY3mBC,kBACC,OZ6mBF,CYhoBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkoBF,CY/nBC,iBACC,iBZioBF,CY9nBC,iBACC,kBZgoBF,CY7nBC,mBACC,wBZ+nBF,CY5nBC,kBACC,OZ8nBF,CYjpBC,YACC,aAAA,CACA,YAAA,CACA,aZmpBF,CYhpBC,iBACC,QZkpBF,CY/oBC,iBACC,SZipBF,CY9oBC,mBACC,eZgpBF,CY7oBC,kBACC,OZ+oBF,CYlqBC,YACC,aAAA,CACA,qBAAA,CACA,sBZoqBF,CYjqBC,iBACC,iBZmqBF,CYhqBC,iBACC,kBZkqBF,CY/pBC,mBACC,wBZiqBF,CY9pBC,kBACC,OZgqBF,CYnrBC,YACC,aAAA,CACA,oBAAA,CACA,qBZqrBF,CYlrBC,iBACC,gBZorBF,CYjrBC,iBACC,iBZmrBF,CYhrBC,mBACC,uBZkrBF,CY/qBC,kBACC,OZirBF,CY1qBC,YACC,YZ4qBF,CYzqBC,cACC,SZ2qBF,CYxqBC,cACC,UZ0qBF,CYvqBC,iBACC,SZyqBF,CYtqBC,iBACC,UZwqBF,CYrqBC,mBACC,aZuqBF,CYpqBC,kBACC,OZsqBF,CACF,CW3nBA,yBC/FG,aACC,aAAA,CACA,aAAA,CACA,cZ6tBF,CY1tBC,kBACC,SZ4tBF,CYztBC,kBACC,UZ2tBF,CYxtBC,oBACC,gBZ0tBF,CYvtBC,mBACC,QZytBF,CY5uBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8uBF,CY3uBC,kBACC,iBZ6uBF,CY1uBC,kBACC,kBZ4uBF,CYzuBC,oBACC,wBZ2uBF,CYxuBC,mBACC,QZ0uBF,CY7vBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ+vBF,CY5vBC,kBACC,iBZ8vBF,CY3vBC,kBACC,kBZ6vBF,CY1vBC,oBACC,wBZ4vBF,CYzvBC,mBACC,QZ2vBF,CY9wBC,YACC,aAAA,CACA,YAAA,CACA,aZgxBF,CY7wBC,iBACC,QZ+wBF,CY5wBC,iBACC,SZ8wBF,CY3wBC,mBACC,eZ6wBF,CY1wBC,kBACC,OZ4wBF,CY/xBC,YACC,aAAA,CACA,qBAAA,CACA,sBZiyBF,CY9xBC,iBACC,iBZgyBF,CY7xBC,iBACC,kBZ+xBF,CY5xBC,mBACC,wBZ8xBF,CY3xBC,kBACC,OZ6xBF,CYhzBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkzBF,CY/yBC,iBACC,iBZizBF,CY9yBC,iBACC,kBZgzBF,CY7yBC,mBACC,wBZ+yBF,CY5yBC,kBACC,OZ8yBF,CYj0BC,YACC,aAAA,CACA,YAAA,CACA,aZm0BF,CYh0BC,iBACC,QZk0BF,CY/zBC,iBACC,SZi0BF,CY9zBC,mBACC,eZg0BF,CY7zBC,kBACC,OZ+zBF,CYl1BC,YACC,aAAA,CACA,qBAAA,CACA,sBZo1BF,CYj1BC,iBACC,iBZm1BF,CYh1BC,iBACC,kBZk1BF,CY/0BC,mBACC,wBZi1BF,CY90BC,kBACC,OZg1BF,CYn2BC,YACC,aAAA,CACA,qBAAA,CACA,sBZq2BF,CYl2BC,iBACC,iBZo2BF,CYj2BC,iBACC,kBZm2BF,CYh2BC,mBACC,wBZk2BF,CY/1BC,kBACC,OZi2BF,CYp3BC,YACC,aAAA,CACA,YAAA,CACA,aZs3BF,CYn3BC,iBACC,QZq3BF,CYl3BC,iBACC,SZo3BF,CYj3BC,mBACC,eZm3BF,CYh3BC,kBACC,OZk3BF,CYr4BC,YACC,aAAA,CACA,qBAAA,CACA,sBZu4BF,CYp4BC,iBACC,iBZs4BF,CYn4BC,iBACC,kBZq4BF,CYl4BC,mBACC,wBZo4BF,CYj4BC,kBACC,OZm4BF,CYt5BC,YACC,aAAA,CACA,oBAAA,CACA,qBZw5BF,CYr5BC,iBACC,gBZu5BF,CYp5BC,iBACC,iBZs5BF,CYn5BC,mBACC,uBZq5BF,CYl5BC,kBACC,OZo5BF,CY74BC,YACC,YZ+4BF,CY54BC,cACC,SZ84BF,CY34BC,cACC,UZ64BF,CY14BC,iBACC,SZ44BF,CYz4BC,iBACC,UZ24BF,CYx4BC,mBACC,aZ04BF,CYv4BC,kBACC,OZy4BF,CACF,CW11BA,0BCnGG,aACC,aAAA,CACA,aAAA,CACA,cZg8BF,CY77BC,kBACC,SZ+7BF,CY57BC,kBACC,UZ87BF,CY37BC,oBACC,gBZ67BF,CY17BC,mBACC,QZ47BF,CY/8BC,aACC,aAAA,CACA,qBAAA,CACA,sBZi9BF,CY98BC,kBACC,iBZg9BF,CY78BC,kBACC,kBZ+8BF,CY58BC,oBACC,wBZ88BF,CY38BC,mBACC,QZ68BF,CYh+BC,aACC,aAAA,CACA,qBAAA,CACA,sBZk+BF,CY/9BC,kBACC,iBZi+BF,CY99BC,kBACC,kBZg+BF,CY79BC,oBACC,wBZ+9BF,CY59BC,mBACC,QZ89BF,CYj/BC,YACC,aAAA,CACA,YAAA,CACA,aZm/BF,CYh/BC,iBACC,QZk/BF,CY/+BC,iBACC,SZi/BF,CY9+BC,mBACC,eZg/BF,CY7+BC,kBACC,OZ++BF,CYlgCC,YACC,aAAA,CACA,qBAAA,CACA,sBZogCF,CYjgCC,iBACC,iBZmgCF,CYhgCC,iBACC,kBZkgCF,CY//BC,mBACC,wBZigCF,CY9/BC,kBACC,OZggCF,CYnhCC,YACC,aAAA,CACA,qBAAA,CACA,sBZqhCF,CYlhCC,iBACC,iBZohCF,CYjhCC,iBACC,kBZmhCF,CYhhCC,mBACC,wBZkhCF,CY/gCC,kBACC,OZihCF,CYpiCC,YACC,aAAA,CACA,YAAA,CACA,aZsiCF,CYniCC,iBACC,QZqiCF,CYliCC,iBACC,SZoiCF,CYjiCC,mBACC,eZmiCF,CYhiCC,kBACC,OZkiCF,CYrjCC,YACC,aAAA,CACA,qBAAA,CACA,sBZujCF,CYpjCC,iBACC,iBZsjCF,CYnjCC,iBACC,kBZqjCF,CYljCC,mBACC,wBZojCF,CYjjCC,kBACC,OZmjCF,CYtkCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwkCF,CYrkCC,iBACC,iBZukCF,CYpkCC,iBACC,kBZskCF,CYnkCC,mBACC,wBZqkCF,CYlkCC,kBACC,OZokCF,CYvlCC,YACC,aAAA,CACA,YAAA,CACA,aZylCF,CYtlCC,iBACC,QZwlCF,CYrlCC,iBACC,SZulCF,CYplCC,mBACC,eZslCF,CYnlCC,kBACC,OZqlCF,CYxmCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0mCF,CYvmCC,iBACC,iBZymCF,CYtmCC,iBACC,kBZwmCF,CYrmCC,mBACC,wBZumCF,CYpmCC,kBACC,OZsmCF,CYznCC,YACC,aAAA,CACA,oBAAA,CACA,qBZ2nCF,CYxnCC,iBACC,gBZ0nCF,CYvnCC,iBACC,iBZynCF,CYtnCC,mBACC,uBZwnCF,CYrnCC,kBACC,OZunCF,CYhnCC,YACC,YZknCF,CY/mCC,cACC,SZinCF,CY9mCC,cACC,UZgnCF,CY7mCC,iBACC,SZ+mCF,CY5mCC,iBACC,UZ8mCF,CY3mCC,mBACC,aZ6mCF,CY1mCC,kBACC,OZ4mCF,CACF,CWzjCA,0BCvGG,aACC,aAAA,CACA,aAAA,CACA,cZmqCF,CYhqCC,kBACC,SZkqCF,CY/pCC,kBACC,UZiqCF,CY9pCC,oBACC,gBZgqCF,CY7pCC,mBACC,QZ+pCF,CYlrCC,aACC,aAAA,CACA,qBAAA,CACA,sBZorCF,CYjrCC,kBACC,iBZmrCF,CYhrCC,kBACC,kBZkrCF,CY/qCC,oBACC,wBZirCF,CY9qCC,mBACC,QZgrCF,CYnsCC,aACC,aAAA,CACA,qBAAA,CACA,sBZqsCF,CYlsCC,kBACC,iBZosCF,CYjsCC,kBACC,kBZmsCF,CYhsCC,oBACC,wBZksCF,CY/rCC,mBACC,QZisCF,CYptCC,YACC,aAAA,CACA,YAAA,CACA,aZstCF,CYntCC,iBACC,QZqtCF,CYltCC,iBACC,SZotCF,CYjtCC,mBACC,eZmtCF,CYhtCC,kBACC,OZktCF,CYruCC,YACC,aAAA,CACA,qBAAA,CACA,sBZuuCF,CYpuCC,iBACC,iBZsuCF,CYnuCC,iBACC,kBZquCF,CYluCC,mBACC,wBZouCF,CYjuCC,kBACC,OZmuCF,CYtvCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwvCF,CYrvCC,iBACC,iBZuvCF,CYpvCC,iBACC,kBZsvCF,CYnvCC,mBACC,wBZqvCF,CYlvCC,kBACC,OZovCF,CYvwCC,YACC,aAAA,CACA,YAAA,CACA,aZywCF,CYtwCC,iBACC,QZwwCF,CYrwCC,iBACC,SZuwCF,CYpwCC,mBACC,eZswCF,CYnwCC,kBACC,OZqwCF,CYxxCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0xCF,CYvxCC,iBACC,iBZyxCF,CYtxCC,iBACC,kBZwxCF,CYrxCC,mBACC,wBZuxCF,CYpxCC,kBACC,OZsxCF,CYzyCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ2yCF,CYxyCC,iBACC,iBZ0yCF,CYvyCC,iBACC,kBZyyCF,CYtyCC,mBACC,wBZwyCF,CYryCC,kBACC,OZuyCF,CY1zCC,YACC,aAAA,CACA,YAAA,CACA,aZ4zCF,CYzzCC,iBACC,QZ2zCF,CYxzCC,iBACC,SZ0zCF,CYvzCC,mBACC,eZyzCF,CYtzCC,kBACC,OZwzCF,CY30CC,YACC,aAAA,CACA,qBAAA,CACA,sBZ60CF,CY10CC,iBACC,iBZ40CF,CYz0CC,iBACC,kBZ20CF,CYx0CC,mBACC,wBZ00CF,CYv0CC,kBACC,OZy0CF,CY51CC,YACC,aAAA,CACA,oBAAA,CACA,qBZ81CF,CY31CC,iBACC,gBZ61CF,CY11CC,iBACC,iBZ41CF,CYz1CC,mBACC,uBZ21CF,CYx1CC,kBACC,OZ01CF,CYn1CC,YACC,YZq1CF,CYl1CC,cACC,SZo1CF,CYj1CC,cACC,UZm1CF,CYh1CC,iBACC,SZk1CF,CY/0CC,iBACC,UZi1CF,CY90CC,mBACC,aZg1CF,CY70CC,kBACC,OZ+0CF,CACF,CWxxCA,0BC3GG,cACC,aAAA,CACA,aAAA,CACA,cZs4CF,CYn4CC,mBACC,SZq4CF,CYl4CC,mBACC,UZo4CF,CYj4CC,qBACC,gBZm4CF,CYh4CC,oBACC,QZk4CF,CYr5CC,cACC,aAAA,CACA,qBAAA,CACA,sBZu5CF,CYp5CC,mBACC,iBZs5CF,CYn5CC,mBACC,kBZq5CF,CYl5CC,qBACC,wBZo5CF,CYj5CC,oBACC,QZm5CF,CYt6CC,cACC,aAAA,CACA,qBAAA,CACA,sBZw6CF,CYr6CC,mBACC,iBZu6CF,CYp6CC,mBACC,kBZs6CF,CYn6CC,qBACC,wBZq6CF,CYl6CC,oBACC,QZo6CF,CYv7CC,aACC,aAAA,CACA,YAAA,CACA,aZy7CF,CYt7CC,kBACC,QZw7CF,CYr7CC,kBACC,SZu7CF,CYp7CC,oBACC,eZs7CF,CYn7CC,mBACC,OZq7CF,CYx8CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ08CF,CYv8CC,kBACC,iBZy8CF,CYt8CC,kBACC,kBZw8CF,CYr8CC,oBACC,wBZu8CF,CYp8CC,mBACC,OZs8CF,CYz9CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ29CF,CYx9CC,kBACC,iBZ09CF,CYv9CC,kBACC,kBZy9CF,CYt9CC,oBACC,wBZw9CF,CYr9CC,mBACC,OZu9CF,CY1+CC,aACC,aAAA,CACA,YAAA,CACA,aZ4+CF,CYz+CC,kBACC,QZ2+CF,CYx+CC,kBACC,SZ0+CF,CYv+CC,oBACC,eZy+CF,CYt+CC,mBACC,OZw+CF,CY3/CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ6/CF,CY1/CC,kBACC,iBZ4/CF,CYz/CC,kBACC,kBZ2/CF,CYx/CC,oBACC,wBZ0/CF,CYv/CC,mBACC,OZy/CF,CY5gDC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8gDF,CY3gDC,kBACC,iBZ6gDF,CY1gDC,kBACC,kBZ4gDF,CYzgDC,oBACC,wBZ2gDF,CYxgDC,mBACC,OZ0gDF,CY7hDC,aACC,aAAA,CACA,YAAA,CACA,aZ+hDF,CY5hDC,kBACC,QZ8hDF,CY3hDC,kBACC,SZ6hDF,CY1hDC,oBACC,eZ4hDF,CYzhDC,mBACC,OZ2hDF,CY9iDC,aACC,aAAA,CACA,qBAAA,CACA,sBZgjDF,CY7iDC,kBACC,iBZ+iDF,CY5iDC,kBACC,kBZ8iDF,CY3iDC,oBACC,wBZ6iDF,CY1iDC,mBACC,OZ4iDF,CY/jDC,aACC,aAAA,CACA,oBAAA,CACA,qBZikDF,CY9jDC,kBACC,gBZgkDF,CY7jDC,kBACC,iBZ+jDF,CY5jDC,oBACC,uBZ8jDF,CY3jDC,mBACC,OZ6jDF,CYtjDC,aACC,YZwjDF,CYrjDC,cACC,SZujDF,CYpjDC,cACC,UZsjDF,CYnjDC,kBACC,SZqjDF,CYljDC,kBACC,UZojDF,CYjjDC,oBACC,aZmjDF,CYhjDC,mBACC,OZkjDF,CACF,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CxEGJ,CwEAE,iBACE,sCxEEJ,CwECG,mBC1BD,yCAAA,CADA,6BAAA,CAEA,kCAAA,CAHA,4BzEiCF,CyE5BG,kCACC,kCzE8BJ,CwEJG,mBC9BD,yCAAA,CADA,6BAAA,CAEA,kCAAA,CAHA,4BzE0CF,CyErCG,kCACC,gCzEuCJ,CwExCC,4BAkCG,eAAA,CADA,cxEWJ,CwENC,gBAEC,kBAAA,CADA,mBxESF,CwEVC,0BAKG,6CxEQJ,CwEFM,kEC3CJ,yCzEgDF,CwEFS,2EC9CP,yCzEmDF,CwEDS,2EClDP,yCzEsDF,CyE7CG,4DACC,UzE+CJ,CyEhDG,6DACC,UzEkDJ,CyEnDG,6DACC,UzEqDJ,CyEtDG,6DACC,UzEwDJ,CyEzDG,6DACC,UzE2DJ,CyE5DG,6DACC,UzE8DJ,CyE/DG,6DACC,UzEiEJ,CyElEG,6DACC,UzEoEJ,CyErEG,6DACC,UzEuEJ,CyExEG,8DACC,UzE0EJ,CyE3EG,8DACC,UzE6EJ,CyE9EG,8DACC,UzEgFJ,CyEjFG,8DACC,UzEmFJ,CyEpFG,8DACC,UzEsFJ,CyEvFG,8DACC,UzEyFJ,CyE1FG,8DACC,UzE4FJ,CyE7FG,8DACC,UzE+FJ,CyEhGG,8DACC,UzEkGJ,CyEnGG,8DACC,UzEqGJ,CyEtGG,8DACC,UzEwGJ,CyEzGG,8DACC,UzE2GJ,CyE5GG,8DACC,UzE8GJ,CyE/GG,8DACC,UzEiHJ,CyElHG,8DACC,UzEoHJ,CyErHG,8DACC,UzEuHJ,CyExHG,8DACC,UzE0HJ,CyE3HG,8DACC,UzE6HJ,CyE9HG,8DACC,UzEgIJ,CyEjIG,8DACC,UzEmIJ,CyEpIG,8DACC,UzEsIJ,CyEvIG,8DACC,UzEyIJ,CyE1IG,8DACC,UzE4IJ,CyE7IG,8DACC,UzE+IJ,CyEhJG,8DACC,UzEkJJ,CyEnJG,8DACC,UzEqJJ,CyEtJG,8DACC,UzEwJJ,CyEzJG,8DACC,UzE2JJ,CyE5JG,8DACC,UzE8JJ,CyE/JG,8DACC,UzEiKJ,CyElKG,8DACC,UzEoKJ,CyErKG,8DACC,SzEuKJ,CyExKG,8DACC,SzE0KJ,CyE3KG,8DACC,SzE6KJ,CyE9KG,8DACC,SzEgLJ,CyE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","file":"tdesign.min.css","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,"@keyframes t-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.t-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1em;\n}\n.t-icon::before {\n font-family: unset;\n}\n.t-icon-loading {\n animation: t-spin 1s linear infinite;\n}\n.t-icon {\n fill: currentColor;\n}\n.t-icon.t-size-s,\ni.t-size-s {\n font-size: 14px;\n}\n.t-icon.t-size-m,\ni.t-size-m {\n font-size: 16px;\n}\n.t-icon.t-size-l,\ni.t-size-l {\n font-size: 18px;\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file diff --git a/docs/assets/images/sponsor/runxinyun.png b/docs/assets/images/sponsor/runxinyun.png new file mode 100644 index 0000000000000000000000000000000000000000..9f1f90cfa51e1ded2de85ad77a0212d3eb63c3be GIT binary patch literal 6877 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 JOw%g(zW^rvvtIxJ literal 0 HcmV?d00001 diff --git a/docs/assets/images/sponsor/yuluyundun.png b/docs/assets/images/sponsor/yuluyundun.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbc8f368d87618db2ecf67031135889c826ac28 GIT binary patch literal 45121 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 JS6TDG{|D$T+0Xz0 literal 0 HcmV?d00001 diff --git a/docs/assets/js/modules/tdesign.min.js b/docs/assets/js/modules/tdesign.min.js index bac657f..0b80404 100644 --- a/docs/assets/js/modules/tdesign.min.js +++ b/docs/assets/js/modules/tdesign.min.js @@ -1,22 +1,22 @@ /** - * tdesign v1.12.0 + * tdesign v1.13.0 * (c) 2025 tdesign * @license MIT */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TDesign={},e.Vue)}(this,(function(e,t){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(t);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0){if(++ue>=800)return arguments[0]}else ue=0;return ie.apply(void 0,arguments)});function fe(e){return e!=e}function pe(e,t){return!!(null==e?0:e.length)&&function(e,t,n){return t==t?function(e,t,n){for(var r=n-1,o=e.length;++r-1}var me=/^(?:0|[1-9]\d*)$/;function he(e,t){var n=u(e);return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function Se(e){return null!=e&&je(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?Se(n)&&he(t,n.length):"string"==r&&t in n)&&ye(n[t],e)}function Ne(e){return Pe((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,l&&ke(n[0],n[1],l)&&(a=o<3?void 0:a,o=1),t=Object(t);++r-1},ft.prototype.set=function(e,t){var n=this.__data__,r=dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var pt=te(f,"Map");function mt(e,t){var n,r,o=e.__data__;return("string"==(r=u(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function ht(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(i)?t>1?Vt(i,t-1,n,r,o):kt(o,i):r||(o[o.length]=i)}return o}function Dt(e){return(null==e?0:e.length)?Vt(e,1):[]}function Et(e){return ve(xe(e,void 0,Dt),e+"")}var Ft=Xe(Object.getPrototypeOf,Object),Tt=Function.prototype,It=Object.prototype,Mt=Tt.toString,At=It.hasOwnProperty,Bt=Mt.call(Object);function Lt(e){if(!C(e)||"[object Object]"!=O(e))return!1;var t=Ft(e);if(null===t)return!0;var n=At.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Mt.call(n)==Bt}function Rt(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r=r?e:Rt(e,t,n)}var Ht=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Wt(e){return Ht.test(e)}var Kt="\\ud800-\\udfff",Ut="["+Kt+"]",Yt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",$t="\\ud83c[\\udffb-\\udfff]",Zt="[^"+Kt+"]",qt="(?:\\ud83c[\\udde6-\\uddff]){2}",Xt="[\\ud800-\\udbff][\\udc00-\\udfff]",Gt="(?:"+Yt+"|"+$t+")"+"?",Jt="[\\ufe0e\\ufe0f]?",Qt=Jt+Gt+("(?:\\u200d(?:"+[Zt,qt,Xt].join("|")+")"+Jt+Gt+")*"),en="(?:"+[Zt+Yt+"?",Yt,qt,Xt,Ut].join("|")+")",tn=RegExp($t+"(?="+$t+")|"+en+Qt,"g");function nn(e){return Wt(e)?function(e){return e.match(tn)||[]}(e):function(e){return e.split("")}(e)}var rn,on=(rn="toUpperCase",function(e){var t=Wt(e=Ct(e))?nn(e):void 0,n=t?t[0]:e.charAt(0),r=t?zt(t,1).join(""):e.slice(1);return n[rn]()+r});var an,ln=(an={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},function(e){return null==an?void 0:an[e]}),un=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,cn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var dn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var vn="\\ud800-\\udfff",fn="\\u2700-\\u27bf",pn="a-z\\xdf-\\xf6\\xf8-\\xff",mn="A-Z\\xc0-\\xd6\\xd8-\\xde",hn="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",gn="["+hn+"]",yn="\\d+",bn="["+fn+"]",wn="["+pn+"]",On="[^"+vn+hn+yn+fn+pn+mn+"]",Cn="(?:\\ud83c[\\udde6-\\uddff]){2}",xn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="["+mn+"]",jn="(?:"+wn+"|"+On+")",Sn="(?:"+Pn+"|"+On+")",kn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Nn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",_n="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Vn="[\\ufe0e\\ufe0f]?",Dn=Vn+_n+("(?:\\u200d(?:"+["[^"+vn+"]",Cn,xn].join("|")+")"+Vn+_n+")*"),En="(?:"+[bn,Cn,xn].join("|")+")"+Dn,Fn=RegExp([Pn+"?"+wn+"+"+kn+"(?="+[gn,Pn,"$"].join("|")+")",Sn+"+"+Nn+"(?="+[gn,Pn+jn,"$"].join("|")+")",Pn+"?"+jn+"+"+kn,Pn+"+"+Nn,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yn,En].join("|"),"g");function Tn(e,t,n){return e=Ct(e),void 0===(t=n?void 0:t)?function(e){return dn.test(e)}(e)?function(e){return e.match(Fn)||[]}(e):function(e){return e.match(sn)||[]}(e):e.match(t)||[]}var In=RegExp("['\u2019]","g");function Mn(e){return function(t){return function(e,t,n,r){var o=-1,a=null==e?0:e.length;for(r&&a&&(n=e[++o]);++oi))return!1;var c=a.get(e),s=a.get(t);if(c&&s)return c==t&&s==e;var d=-1,v=!0,f=2&n?new Ar:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&e-c>=a}function m(){var e=so();if(p(e))return h(e);i=setTimeout(m,function(e){var n=t-(e-u);return d?fo(n,a-(e-c)):n}(e))}function h(e){return i=void 0,v&&r?f(e):(r=o=void 0,l)}function g(){var e=so(),n=p(e);if(r=arguments,o=this,u=e,n){if(void 0===i)return function(e){return c=e,i=setTimeout(m,t),s?f(e):l}(u);if(d)return clearTimeout(i),i=setTimeout(m,t),f(u)}return void 0===i&&(i=setTimeout(m,t)),l}return t=A(t)||0,E(n)&&(s=!!n.leading,a=(d="maxWait"in n)?vo(A(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),g.cancel=function(){void 0!==i&&clearTimeout(i),c=0,r=u=o=i=void 0},g.flush=function(){return void 0===i?l:h(so())},g}function mo(e,t,n){(void 0!==n&&!ye(e[t],n)||void 0===n&&!(t in e))&&ge(e,t,n)}function ho(e){return C(e)&&Se(e)}function go(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function yo(e,t,n,r,o,a,l){var i=go(e,n),u=go(t,n),c=l.get(u);if(c)mo(e,n,c);else{var s,d=a?a(i,u,n+"",e,t,l):void 0,v=void 0===d;if(v){var f=j(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?j(i)?d=i:ho(i)?d=ae(i):p?(v=!1,d=$n(u,!0)):m?(v=!1,d=Pr(u,!0)):d=[]:Lt(u)||Ie(u)?(d=i,Ie(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=Sr(u))):v=!1}v&&(l.set(u,d),o(d,u,r,a,l),l.delete(u)),mo(e,n,d)}}function bo(e,t,n,r,o){e!==t&&io(t,(function(a,l){if(o||(o=new Hn),E(a))yo(e,t,l,n,bo,r,o);else{var i=r?r(go(e,l),a,l+"",e,t,o):void 0;void 0===i&&(i=a),mo(e,l,i)}}),rt)}var wo=Ne((function(e,t,n,r){bo(e,t,n,r)})),Oo=wo;function Co(e,t,n){for(var r=-1,o=null==e?0:e.length;++r=200&&(a=Lr,l=!1,t=new Ar(t));e:for(;++ot}function Do(e){return"string"==typeof e||!j(e)&&C(e)&&"[object String]"==O(e)}var Eo=Math.min;function Fo(e){return ho(e)?e:[]}var To=Pe((function(e){var t=P(e,Fo);return t.length&&t[0]===e[0]?function(e,t,n){for(var r=n?Co:pe,o=e[0].length,a=e.length,l=a,i=Array(a),u=1/0,c=[];l--;){var s=e[l];l&&t&&(s=P(s,ze(t))),u=Eo(s.length,u),i[l]=!n&&(t||o>=120&&s.length>=120)?new Ar(l&&s):void 0}s=e[0];var d=-1,v=i[0];e:for(;++d1),t})),Oe(e,nr(e),n),r&&(n=Ir(n,7,Qo));for(var o=t.length;o--;)Jo(n,t[o]);return n})),ta=ea;function na(e,t,n,r){if(!E(e))return e;for(var o=-1,a=(t=xt(t,e)).length,l=a-1,i=e;null!=i&&++o9007199254740991)return n;do{t%2&&(n+=e),(t=oa(t/2))&&(e+=e)}while(t);return n}var la=ro("length"),ia="\\ud800-\\udfff",ua="["+ia+"]",ca="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",sa="\\ud83c[\\udffb-\\udfff]",da="[^"+ia+"]",va="(?:\\ud83c[\\udde6-\\uddff]){2}",fa="[\\ud800-\\udbff][\\udc00-\\udfff]",pa="(?:"+ca+"|"+sa+")"+"?",ma="[\\ufe0e\\ufe0f]?",ha=ma+pa+("(?:\\u200d(?:"+[da,va,fa].join("|")+")"+ma+pa+")*"),ga="(?:"+[da+ca+"?",ca,va,fa,ua].join("|")+")",ya=RegExp(sa+"(?="+sa+")|"+ga+ha,"g");function ba(e){return Wt(e)?function(e){for(var t=ya.lastIndex=0;ya.test(e);)++t;return t}(e):la(e)}var wa=Math.ceil;function Oa(e,t,n){e=Ct(e);var r=(t=R(t))?ba(e):0;return t&&r=200){var c=t?null:Fa(e);if(c)return Hr(c);l=!1,o=Lr,u=new Ar}else u=t?[]:i;e:for(;++r=t?e:""+Array(t+1-r.length).join(n)+e},b={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(o,2,"0")},m:function e(t,n){if(t.date()1)return e(l[0])}else{var i=t.name;O[i]=t,o=i}return!r&&o&&(w=o),o||!r&&w},j=function(e,t){if(x(e))return e.clone();var n="object"==u(t)?t:{};return n.date=e,n.args=arguments,new k(n)},S=b;S.l=P,S.i=x,S.w=function(e,t){return j(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function u(e){this.$L=P(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[C]=!0}var g=u.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(m);if(r){var o=r[2]-1||0,a=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return S},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=j(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return j(e)0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject(qa,null):Xa,o=t.computed((function(){return(null==r?void 0:r.value)||Za})),a=t.computed((function(){return Object.assign({},o.value[e],n)}));return{t:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var rl=["from","to","direction"];function ol(e){var t={};return Object.keys(e).forEach((function(n){Uo(e[n])&&!Ko(e[n])||(t[n]=e[n])})),t}function al(e){if(Do(e))return e;if(j(e))return e[0]&&"#"===e[0][0]&&e.unshift("90deg"),"linear-gradient( ".concat(e.join(",")," )");var t=e.from,n=e.to,r=e.direction,o=void 0===r?"to right":r,a=nl(e,rl),l=Object.keys(a);if(l.length){var i=(l=l.sort((function(e,t){return parseFloat(e.substr(0,e.length-1))-parseFloat(t.substr(0,t.length-1))}))).map((function(e){return"".concat(a[e]," ").concat(e)}));return"linear-gradient(".concat(o,", ").concat(i.join(","),")")}return"linear-gradient(".concat(o,", ").concat(t,", ").concat(n,")")}function ll(){if("undefined"==typeof navigator||!navigator)return Number.MAX_SAFE_INTEGER;var e=navigator.userAgent,t=e.indexOf("compatible")>-1&&e.indexOf("MSIE")>-1,n=e.indexOf("Trident")>-1&&e.indexOf("rv:11.0")>-1;if(t){var r=new RegExp("MSIE (\\d+\\.\\d+);"),o=e.match(r);if(!o)return-1;var a=parseFloat(o[1]);return a<7?6:a}return n?11:Number.MAX_SAFE_INTEGER}function il(e,t){var n=Ho(t);if(!e||0===e.length)return n?{length:0,characters:e}:0;for(var r=0,o=0;o127?2:1,n&&r+a>t)return{length:r,characters:e.slice(0,o)};r+=a}return n?{length:r,characters:e}:r}function ul(e){return Ho(e)?"".concat(e,"px"):e}function cl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sl(e){for(var t=1;t11){var d=l.match(/[\d.]+/g),v=d?"rgba(".concat(d[0],", ").concat(d[1],", ").concat(d[2],", 0)"):"";tl(e,sl(sl({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(v," 0deg, ").concat(l," 360deg)")}))}else tl(e,sl(sl({},o),{},{background:""}))}}(n.value)}))})),function(){var r="".concat(e.value,"-loading__gradient"),o=[r,"".concat(e.value,"-icon-loading")];return t.createVNode("svg",{class:o,viewBox:"0 0 12 12",version:"1.1",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg"},[t.createVNode("foreignObject",{x:"0",y:"0",width:"12",height:"12"},[t.createVNode("div",{class:"".concat(r,"-conic"),ref:n},null)])])}}}),vl={exports:{}},fl={exports:{}};(function(){var e,t,n,r,o,a;"undefined"!=typeof performance&&null!==performance&&performance.now?fl.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(fl.exports=function(){return(e()-o)/1e6},t=process.hrtime,r=(e=function(){var e;return 1e9*(e=t())[0]+e[1]})(),a=1e9*process.uptime(),o=r-a):Date.now?(fl.exports=function(){return Date.now()-n},n=Date.now()):(fl.exports=function(){return(new Date).getTime()-n},n=(new Date).getTime())}).call(Wa);for(var pl=fl.exports,ml="undefined"==typeof window?Wa:window,hl=["moz","webkit"],gl="AnimationFrame",yl=ml["request"+gl],bl=ml["cancel"+gl]||ml["cancelRequest"+gl],wl=0;!yl&&wl-1}function Dl(e,t){if(e){for(var n=e.className,r=(t||"").split(" "),o=0,a=r.length;o0&&void 0!==arguments[0]?arguments[0]:"body";return Do(e)?document.querySelector(e):H(e)?e():e};function Il(e){return e&&e===e.window}function Ml(e,t){if(kl||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return Il(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function Al(e,t){var n=t.container,r=void 0===n?window:n,o=t.duration,a=void 0===o?450:o,l=t.easing,i=void 0===l?Sl:l,u=Ml(r),c=Date.now();return new Promise((function(t){var n=function(){var o=Date.now()-c,l=i(Math.min(o,a),u,e,a);Il(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,jl(on},Ll=function(e){if(!(e instanceof HTMLFormElement))throw new Error("target must be HTMLFormElement");var t=document.createElement("input");t.type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t)};function Rl(e,t){var n=e.getBoundingClientRect();if(t){var r=t.getBoundingClientRect();return n.top>=r.top&&n.left>=r.left&&n.bottom<=r.bottom&&n.right<=r.right}return n.top>=0&&n.left>=0&&n.bottom+80<=window.innerHeight&&n.right<=window.innerWidth}function zl(e,t){var n="";return document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(e,null).getPropertyValue(t)),n&&n.toLowerCase?n.toLowerCase():n}function Hl(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===zl(e,"position")||Hl(t))}function Wl(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}var Kl=Object.prototype.hasOwnProperty,Ul=function(e,t){return Kl.call(e,t)},Yl=function(e,t){return Ul(e,t)?e[t]:void 0};function $l(e){var n;return E(e)&&"defaultNode"in e?n=e.defaultNode:(t.isVNode(e)||Do(e))&&(n=e),n}function Zl(e){var n=[],r=function(e){if(j(e))return e.forEach((function(e){if(e.children&&j(e.children)){if(e.type!==t.Fragment)return;r(e.children)}else n.push(e)})),n};return r(e)}function ql(e){return E(e)&&"params"in e?e.params:{}}function Xl(e,t,n){var r,o,a,l,i=null===(r=(o=e.$slots)[Bn(n)])||void 0===r?void 0:r.call(o,t);return i||((i=null===(a=(l=e.$slots)[$o(n)])||void 0===a?void 0:a.call(l,t))||null)}var Gl=function(e,n,r){var o,a=ql(r),l=$l(r);if(n in e&&(o=e[n]),!1!==o&&null!==o)return!0===o&&l?Xl(e,a,n)||l:H(o)?o(t.h,a):[void 0,a,""].includes(o)&&(e.$slots[Bn(n)]||e.$slots[$o(n)])?Xl(e,a,n):o};function Jl(e,t,n){var r,o,a,l,i=null===(r=(o=e.slots)[Bn(t)])||void 0===r?void 0:r.call(o,n);return i&&i.filter((function(e){return"Symbol(v-cmt)"!==e.type.toString()})).length||(i=null===(a=(l=e.slots)[$o(t)])||void 0===a?void 0:a.call(l,n))&&i.filter((function(e){return"Symbol(v-cmt)"!==e.type.toString()})).length?i:null}function Ql(e){return!![void 0,null,""].includes(e)||!(e instanceof Array?e:[e]).filter((function(e){var t;return"Symbol(Comment)"!==(null==e||null===(t=e.type)||void 0===t?void 0:t.toString())})).length}var ei=function(){var e=t.getCurrentInstance();return function(n,r){var o=ql(r),a=$l(r),l=function(e){return!(!E(e)||!("slotFirst"in e))&&e.slotFirst}(r),i=e.slots[Bn(n)]||e.slots[$o(n)];if(l&&i)return Jl(e,n,o);if(function(e,t){var n=(null==e?void 0:e.vnode.props)||{};return Ul(n,Bn(t))||Ul(n,$o(t))}(e,n)){var u=e.props[Bn(n)]||e.props[$o(n)];if(!1===u||null===u)return;return!0===u?Jl(e,n,o)||a:H(u)?u(t.h,o):[void 0,""].includes(u)&&i?Jl(e,n,o):u}if(i)return Jl(e,n,o);var c=e.props[Bn(n)]||e.props[$o(n)];return!1!==c&&null!==c?!0===c?a:H(c)?c(t.h,o):c:void 0}},ti=function(){var e=ei();return function(t,n){var r=$l(n);return e(t,n)||r}},ni=function(){var e=ei();return function(t,n,r){var o=ql(r),a=$l(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Ql(i)?u:i;return Ql(c)?a:c}},ri=function(e,n){var r=H(e)?t.computed(e):t.ref(e),o=H(n)?t.computed(n):t.ref(n),a=t.ref(),l=function(){a.value=Fl(r.value,o.value)};return t.onMounted((function(){return l()})),t.watch([r,o],(function(){return l()})),a},oi={attach:{type:[String,Function],default:""},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},fullscreen:Boolean,indicator:{type:[Boolean,Function],default:!0},inheritColor:Boolean,loading:{type:Boolean,default:!0},preventScrollThrough:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},size:{type:String,default:"medium"},text:{type:[String,Function]},zIndex:{type:Number}},ai=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:oi,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:Qa("loading"),centerClass:Qa("loading--center"),fullscreenClass:Qa("loading__fullscreen"),lockClass:Qa("loading--lock"),overlayClass:Qa("loading__overlay"),relativeClass:Qa("loading__parent"),fullClass:Qa("loading--full"),inheritColorClass:Qa("loading--inherit-color")},i=l.name,u=l.centerClass,c=l.fullscreenClass,d=l.lockClass,v=l.overlayClass,f=l.relativeClass,p=l.fullClass,m=l.inheritColorClass,h=Qa(),g=ei(),y=ni(),b=el().SIZE,w=function(){a.value=!1;var t=setTimeout((function(){a.value=!0,clearTimeout(t)}),e.delay)},O=ri((function(){return e.attach})),C=t.computed((function(){return Boolean(!e.delay||e.delay&&a.value)})),x=t.computed((function(){var t={};return void 0!==e.zIndex&&(t.zIndex=e.zIndex),["small","medium","large"].includes(e.size)||(t["font-size"]=e.size),t})),P=t.computed((function(){return Boolean(e.default||r.default||e.content||r.content)})),j=t.computed((function(){return e.preventScrollThrough&&e.fullscreen})),S=t.computed((function(){return Boolean(e.text||r.text)})),k=t.computed((function(){return P.value&&e.loading&&C.value})),N=t.computed((function(){return e.fullscreen&&e.loading&&C.value})),_=t.computed((function(){return e.attach&&e.loading&&C.value})),V=t.computed((function(){var t=[u.value,Yl(b.value,e.size),s({},m.value,e.inheritColor)],n=[i.value,c.value,u.value,v.value];return{baseClasses:t,attachClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),withContentClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),fullScreenClasses:n,normalClasses:t.concat([i.value])}})),D=t.toRefs(e).loading;return t.watch([D],(function(e){Ha(e,1)[0]?(w(),j.value&&Dl(document.body,d.value)):j.value&&El(document.body,d.value)})),t.onMounted((function(){e.delay&&w()})),function(){var n=V.value,r=n.fullScreenClasses,a=n.baseClasses,l=n.withContentClasses,i=n.attachClasses,u=n.normalClasses,c=t.createVNode(dl,{size:e.size},null),s=D.value&&g("indicator",c),d=S.value&&t.createVNode("div",{class:"".concat(h.value,"-loading__text")},[g("text")]);return e.fullscreen?N.value&&e.loading?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:r,style:x.value},o),[t.createVNode("div",{class:a},[s,d])])]}}):null:P.value?t.createVNode("div",t.mergeProps({class:f.value},o),[y("default","content"),k.value&&t.createVNode("div",{class:l,style:x.value},[s,d])]):e.attach?_.value&&D.value?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:i,style:x.value},o),[s,d])]}}):null:D.value?t.createVNode("div",t.mergeProps({class:u,style:x.value},o),[s,d]):null}}});function li(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var ii=null;function ui(e){var n=function(e){return Go({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(n.fullscreen&&ii)return ii;var r=t.defineComponent({setup:function(){return{loadingOptions:t.reactive(n)}},render:function(){return t.h(ai,function(e){for(var t=1;t0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(tl(a.value,{position:"absolute",left:"".concat(0-s,"px"),top:"".concat(0-s,"px"),width:"".concat(d,"px"),height:"".concat(v,"px"),borderRadius:u.borderRadius,pointerEvents:"none",overflow:"hidden"}),r.appendChild(a.value));var f=document.createElement("div");tl(f,{marginTop:"0",marginLeft:"0",right:"".concat(d,"px"),width:"".concat(d+20,"px"),height:"100%",transition:"transform ".concat(200,"ms cubic-bezier(.38, 0, .24, 1), background ").concat(400,"ms linear"),transform:"skewX(-8deg)",pointerEvents:"none",position:"absolute",zIndex:0,backgroundColor:o,opacity:"0.9"});for(var p=new WeakMap,m=r.children.length,h=0;h0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Mv,"-svg-js-stylesheet--unique-class"))}))}));var v=t.computed((function(){return{class:s.value,style:d.value,onClick:function(t){var n;return null===(n=e.onClick)||void 0===n?void 0:n.call(e,{e:t})}}}));return function(){return t.h("svg",v.value,t.h("use",{href:e.url?"#".concat(a.value):"#t-icon-".concat(a.value)}))}}}),"TIcon"),Bv={content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},download:{type:[String,Boolean]},hover:{type:String,default:"underline",validator:function(e){return!e||["color","underline"].includes(e)}},href:{type:String,default:""},prefixIcon:{type:Function},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffixIcon:{type:Function},target:{type:String,default:""},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},underline:Boolean,onClick:Function},Lv=t.defineComponent({name:"TLink",props:Bv,emits:["click"],setup:function(e,n){var r=n.emit,o=ni(),a=ei(),l=Qa("link"),u=el(),c=u.STATUS,d=u.SIZE,v=Ga("classPrefix").classPrefix,f=Oi(),p=t.computed((function(){return["".concat(l.value),"".concat(l.value,"--theme-").concat(e.theme),s(s(s(s({},d.value[e.size],"medium"!==e.size),c.value.disabled,f.value),"".concat(v.value,"-is-underline"),e.underline),"".concat(l.value,"--hover-").concat(e.hover),!f.value)]})),m=function(e){f.value||r("click",e)};return function(){var n=o("default","content"),r=a("prefixIcon"),u=a("suffixIcon");return t.createVNode("a",{class:i(p.value),href:f.value||!e.href?void 0:e.href,target:e.target?e.target:void 0,download:e.download?e.download:void 0,onClick:m},[r?t.createVNode("span",{class:"".concat(l.value,"__prefix-icon")},[r]):null,n,u?t.createVNode("span",{class:"".concat(l.value,"__suffix-icon")},[u]):null])}}}),Rv=pi(Lv),zv={align:{type:String,default:"top",validator:function(e){return!e||["start","end","center","stretch","baseline","top","middle","bottom"].includes(e)}},gutter:{type:[Number,Object,Array],default:0},justify:{type:String,default:"start",validator:function(e){return!e||["start","end","center","space-around","space-between"].includes(e)}},tag:{type:String,default:"div"}},Hv=function(e){return e<768?"xs":e>=768&&e<992?"sm":e>=992&&e<1200?"md":e>=1200&&e<1400?"lg":e>=1400&&e<1880?"xl":"xxl"};function Wv(e,n){t.onMounted((function(){window.addEventListener(e,n)})),t.onBeforeUnmount((function(){window.removeEventListener(e,n)}))}function Kv(){var e=t.ref(Hv(kl?0:window.innerWidth));return Wv("resize",(function(){e.value=Hv(kl?0:window.innerWidth)})),e}function Uv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yv(e){for(var t=1;t=0),"".concat(e,"-").concat(r,"-offset-").concat(a.offset),parseInt(a.offset,10)>=0),"".concat(e,"-").concat(r,"-push-").concat(a.push),parseInt(a.push,10)>=0),"".concat(e,"-").concat(r,"-pull-").concat(a.pull),parseInt(a.pull,10)>=0))}),{});return Yv(s(s(s(s(s(s({},"".concat(e),!0),"".concat(e,"-").concat(n),!Uo(n)),"".concat(e,"-order-").concat(r),r),"".concat(e,"-offset-").concat(o),o),"".concat(e,"-push-").concat(a),a),"".concat(e,"-pull-").concat(l),l),i)}(n.value,e)})),i=t.computed((function(){var t,n,r,l,i,u={},c=e.flex;if(c&&(u.flex=function(e){return Ho(e)?"".concat(e," ").concat(e," 0"):/^\d+(\.\d+)?(px|r?em|%)$/.test(e)?"0 0 ".concat(e):e}(c)),o){var s=o.gutter;Object.assign(u,(t=s,n=a.value,r={},l=function(e){return Object.assign(r,{paddingLeft:"".concat(e/2,"px"),paddingRight:"".concat(e/2,"px")})},i={isNumber:function(e){Ho(e)&&l(e)},isArray:function(e){j(e)&&e.length&&(Ho(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!j(e)&&e[n]&&l(e[n])}},Object.keys(i).forEach((function(e){i[e](t)})),r))}return u}));return function(){var n,o,a=e.tag;return t.createVNode(a,{class:l.value,style:i.value},"function"==typeof(o=n=r("default"))||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?n:{default:function(){return[n]}})}}}),Xv=pi($v),Gv=pi(qv),Jv=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=ei(),r=Qa("layout"),o=t.computed((function(){return[r.value,s({},"".concat(r.value,"--with-sider"),e.value)]}));return t.provide("layout",{hasSide:e}),function(){return t.createVNode("section",{class:o.value},[n("default")])}}}),Qv={height:{type:String,default:""}},ef=t.defineComponent({name:"THeader",props:Qv,setup:function(e){var n=Qa("layout__header"),r=ei();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),tf={height:{type:String,default:""}},nf=t.defineComponent({name:"TFooter",props:tf,setup:function(e){var n=Qa("layout__footer"),r=ei();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),rf={width:{type:String,default:""}},of=t.defineComponent({name:"TAside",props:rf,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=Qa("layout__sider"),o=ei();if(n)return t.onMounted((function(){n.value=!0})),t.onUnmounted((function(){n.value=!1})),function(){var n=e.width?{width:e.width}:{};return t.createVNode("aside",{class:r.value,style:n},[o("default")])}}}),af={content:{type:[String,Function]},default:{type:[String,Function]}},lf=t.defineComponent({name:"TContent",props:af,setup:function(){var e=Qa("layout__content"),n=ni();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),uf=pi(of),cf=pi(Jv),sf=pi(ef),df=pi(nf),vf=pi(lf),ff={align:{type:String,default:"center",validator:function(e){return!e||["left","right","center"].includes(e)}},content:{type:[String,Function]},dashed:Boolean,default:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},theme:{type:String,validator:function(e){return!e||["horizontal","vertical"].includes(e)}}},pf=t.defineComponent({name:"TDivider",props:ff,setup:function(e){var n=Qa("divider"),r=ni();return function(){var o=e.layout,a=e.dashed,l=e.align,i=r("default","content"),u=["".concat(n.value),["".concat(n.value,"--").concat(o)],s(s(s({},"".concat(n.value,"--dashed"),!!a),"".concat(n.value,"--with-text"),!!i),"".concat(n.value,"--with-text-").concat(l),!!i)];return t.createVNode("div",{class:u},[i&&t.createVNode("span",{class:"".concat(n.value,"__inner-text")},[i])])}}}),mf=pi(pf),hf={align:{type:String,validator:function(e){return!e||["start","end","center","baseline"].includes(e)}},breakLine:Boolean,direction:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},separator:{type:[String,Function]},size:{type:[String,Number,Array],default:"medium"}};function gf(){var e=t.getCurrentInstance();return function(t,n){var r,o;return n||(n=e.slots),Zl((null===(r=n)||void 0===r||null===(o=r.default)||void 0===o?void 0:o.call(r))||[]).filter((function(e){var n;return null===(n=e.type.name)||void 0===n?void 0:n.endsWith(t)}))}}function yf(){var e=t.getCurrentInstance();return function(){var n,r=e.slots;return((null==r||null===(n=r.default)||void 0===n?void 0:n.call(r))||[]).filter((function(e){return!("symbol"===u(e.type)&&!e.children)&&e.type!==t.Comment})).map((function(e){return e.children&&j(e.children)&&e.type===t.Fragment?e.children:e})).flat()}}function bf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wf(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Do(e)?e:H(e)?e(t.h,n):H(null==e?void 0:e.render)?e.render(t.h,n):e}function _f(e,t,n){var r,o=null===(r=e.props)||void 0===r?void 0:r[t];if(o)return o;var a=e.children,l=(null==a?void 0:a[t])||(null==a?void 0:a[n]);return l?null==l?void 0:l():null}function Vf(e,t){return e===kf.props}var Df=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(Sf),r=Qa("descriptions"),o=Ga("descriptions").globalConfig,a=t.computed((function(){return"horizontal"===n.layout})),l=t.computed((function(){return"horizontal"===n.itemLayout})),i=function(i){var u=["".concat(r.value,"__label")],c=null,s=null;Vf(e.itemType)?(c=i.label,s=i.span):(c=_f(i,"label"),s=i.props.span);var d=a.value?l.value?1:s:1;return t.createVNode("td",t.mergeProps({colspan:d,class:u},{style:n.labelStyle}),[c,n.colon&&o.value.colonText])},u=function(o){var i=["".concat(r.value,"__content")],u=null,c=null;Vf(e.itemType)?(u=o.content,c=o.span):(u=_f(o,"content","default"),c=o.props.span);var s=a.value?c>1&&l.value?2*c-1:c:1;return t.createVNode("td",t.mergeProps({colspan:s,class:i},{style:n.contentStyle}),[u])};return function(){return t.createVNode(t.Fragment,null,[a.value?l.value?t.createVNode("tr",null,[e.row.map((function(e){return t.createVNode(t.Fragment,null,[i(e),u(e)])}))]):t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[e.row.map((function(e){return i(e)}))]),t.createVNode("tr",null,[e.row.map((function(e){return u(e)}))])]):l.value?t.createVNode(t.Fragment,null,[e.row.map((function(e){return t.createVNode("tr",null,[i(e),u(e)])}))]):t.createVNode(t.Fragment,null,[e.row.map((function(e){return t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[i(e)]),t.createVNode("tr",null,[u(e)])])}))])])}}}),Ef=t.defineComponent({name:"TDescriptions",props:jf,setup:function(e){var n=Qa("descriptions"),r=el().SIZE,o=gf(),a=ei(),l=t.ref(kf.props),i=function(){var t=e.column,n=e.layout,r=[];if(j(e.items))r=e.items.map((function(e){return{label:Nf(e.label),content:Nf(e.content),span:e.span||1}})),l.value=kf.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=kf.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach((function(e,n){var o,a=1;Vf(l.value)?a=(a=Wo(e.span)?a:e.span)>t?t:a:(e.props=e.props||{},a=(a=Wo(null===(o=e.props)||void 0===o?void 0:o.span)?a:e.props.span)>t?t:a,e.props.span=a);u>=a?(i.push(e),u-=a):(c.push(i),i=[e],u=t-a),n===r.length-1&&(Vf(l.value)?e.span+=u:e.props.span+=u,c.push(i))})),c};t.provide(Sf,e);return function(){return t.createVNode("div",{class:n.value},[(u=a("title"),u?t.createVNode("div",{class:"".concat(n.value,"__header")},[u]):""),(o=["".concat(n.value,"__body"),r.value[e.size],s({},"".concat(n.value,"__body--fixed"),"fixed"===e.tableLayout),s({},"".concat(n.value,"__body--border"),e.bordered)],t.createVNode("table",{class:o},[t.createVNode("tbody",null,[i().map((function(e){return t.createVNode(Df,{"item-type":l.value,row:e},null)}))])]))]);var o,u}}}),Ff={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},Tf=t.defineComponent({name:"TDescriptionsItem",props:Ff}),If=pi(Ef),Mf=pi(Tf);function Af(e,t,n,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){return void n(e)}i.done?t(u):Promise.resolve(u).then(r,o)}function Bf(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){Af(a,r,o,l,i,"next",e)}function i(e){Af(a,r,o,l,i,"throw",e)}l(void 0)}))}}var Lf={exports:{}},Rf={exports:{}};!function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(Rf),function(e){var t=Rf.exports.default;function n(){ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TDesign={},e.Vue)}(this,(function(e,t){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(t);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0){if(++ue>=800)return arguments[0]}else ue=0;return ie.apply(void 0,arguments)});function fe(e){return e!=e}function pe(e,t){return!!(null==e?0:e.length)&&function(e,t,n){return t==t?function(e,t,n){for(var r=n-1,o=e.length;++r-1}var me=/^(?:0|[1-9]\d*)$/;function he(e,t){var n=u(e);return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function Se(e){return null!=e&&je(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?Se(n)&&he(t,n.length):"string"==r&&t in n)&&ye(n[t],e)}function Ne(e){return Pe((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,l&&ke(n[0],n[1],l)&&(a=o<3?void 0:a,o=1),t=Object(t);++r-1},ft.prototype.set=function(e,t){var n=this.__data__,r=dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var pt=te(f,"Map");function mt(e,t){var n,r,o=e.__data__;return("string"==(r=u(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function ht(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(i)?t>1?Vt(i,t-1,n,r,o):kt(o,i):r||(o[o.length]=i)}return o}function Dt(e){return(null==e?0:e.length)?Vt(e,1):[]}function Et(e){return ve(xe(e,void 0,Dt),e+"")}var Ft=Xe(Object.getPrototypeOf,Object),Tt=Function.prototype,It=Object.prototype,Mt=Tt.toString,At=It.hasOwnProperty,Bt=Mt.call(Object);function Lt(e){if(!C(e)||"[object Object]"!=O(e))return!1;var t=Ft(e);if(null===t)return!0;var n=At.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Mt.call(n)==Bt}function Rt(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r=r?e:Rt(e,t,n)}var Ht=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Wt(e){return Ht.test(e)}var Kt="\\ud800-\\udfff",Ut="["+Kt+"]",Yt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",$t="\\ud83c[\\udffb-\\udfff]",Zt="[^"+Kt+"]",qt="(?:\\ud83c[\\udde6-\\uddff]){2}",Xt="[\\ud800-\\udbff][\\udc00-\\udfff]",Gt="(?:"+Yt+"|"+$t+")"+"?",Jt="[\\ufe0e\\ufe0f]?",Qt=Jt+Gt+("(?:\\u200d(?:"+[Zt,qt,Xt].join("|")+")"+Jt+Gt+")*"),en="(?:"+[Zt+Yt+"?",Yt,qt,Xt,Ut].join("|")+")",tn=RegExp($t+"(?="+$t+")|"+en+Qt,"g");function nn(e){return Wt(e)?function(e){return e.match(tn)||[]}(e):function(e){return e.split("")}(e)}var rn,on=(rn="toUpperCase",function(e){var t=Wt(e=Ct(e))?nn(e):void 0,n=t?t[0]:e.charAt(0),r=t?zt(t,1).join(""):e.slice(1);return n[rn]()+r});var an,ln=(an={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},function(e){return null==an?void 0:an[e]}),un=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,cn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var dn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var vn="\\ud800-\\udfff",fn="\\u2700-\\u27bf",pn="a-z\\xdf-\\xf6\\xf8-\\xff",mn="A-Z\\xc0-\\xd6\\xd8-\\xde",hn="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",gn="["+hn+"]",yn="\\d+",bn="["+fn+"]",wn="["+pn+"]",On="[^"+vn+hn+yn+fn+pn+mn+"]",Cn="(?:\\ud83c[\\udde6-\\uddff]){2}",xn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="["+mn+"]",jn="(?:"+wn+"|"+On+")",Sn="(?:"+Pn+"|"+On+")",kn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Nn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",_n="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Vn="[\\ufe0e\\ufe0f]?",Dn=Vn+_n+("(?:\\u200d(?:"+["[^"+vn+"]",Cn,xn].join("|")+")"+Vn+_n+")*"),En="(?:"+[bn,Cn,xn].join("|")+")"+Dn,Fn=RegExp([Pn+"?"+wn+"+"+kn+"(?="+[gn,Pn,"$"].join("|")+")",Sn+"+"+Nn+"(?="+[gn,Pn+jn,"$"].join("|")+")",Pn+"?"+jn+"+"+kn,Pn+"+"+Nn,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yn,En].join("|"),"g");function Tn(e,t,n){return e=Ct(e),void 0===(t=n?void 0:t)?function(e){return dn.test(e)}(e)?function(e){return e.match(Fn)||[]}(e):function(e){return e.match(sn)||[]}(e):e.match(t)||[]}var In=RegExp("['\u2019]","g");function Mn(e){return function(t){return function(e,t,n,r){var o=-1,a=null==e?0:e.length;for(r&&a&&(n=e[++o]);++oi))return!1;var c=a.get(e),s=a.get(t);if(c&&s)return c==t&&s==e;var d=-1,v=!0,f=2&n?new Ar:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&e-c>=a}function m(){var e=so();if(p(e))return h(e);i=setTimeout(m,function(e){var n=t-(e-u);return d?fo(n,a-(e-c)):n}(e))}function h(e){return i=void 0,v&&r?f(e):(r=o=void 0,l)}function g(){var e=so(),n=p(e);if(r=arguments,o=this,u=e,n){if(void 0===i)return function(e){return c=e,i=setTimeout(m,t),s?f(e):l}(u);if(d)return clearTimeout(i),i=setTimeout(m,t),f(u)}return void 0===i&&(i=setTimeout(m,t)),l}return t=A(t)||0,E(n)&&(s=!!n.leading,a=(d="maxWait"in n)?vo(A(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),g.cancel=function(){void 0!==i&&clearTimeout(i),c=0,r=u=o=i=void 0},g.flush=function(){return void 0===i?l:h(so())},g}function mo(e,t,n){(void 0!==n&&!ye(e[t],n)||void 0===n&&!(t in e))&&ge(e,t,n)}function ho(e){return C(e)&&Se(e)}function go(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function yo(e,t,n,r,o,a,l){var i=go(e,n),u=go(t,n),c=l.get(u);if(c)mo(e,n,c);else{var s,d=a?a(i,u,n+"",e,t,l):void 0,v=void 0===d;if(v){var f=j(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?j(i)?d=i:ho(i)?d=ae(i):p?(v=!1,d=$n(u,!0)):m?(v=!1,d=Pr(u,!0)):d=[]:Lt(u)||Ie(u)?(d=i,Ie(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=Sr(u))):v=!1}v&&(l.set(u,d),o(d,u,r,a,l),l.delete(u)),mo(e,n,d)}}function bo(e,t,n,r,o){e!==t&&io(t,(function(a,l){if(o||(o=new Hn),E(a))yo(e,t,l,n,bo,r,o);else{var i=r?r(go(e,l),a,l+"",e,t,o):void 0;void 0===i&&(i=a),mo(e,l,i)}}),rt)}var wo=Ne((function(e,t,n,r){bo(e,t,n,r)})),Oo=wo;function Co(e,t,n){for(var r=-1,o=null==e?0:e.length;++r=200&&(a=Lr,l=!1,t=new Ar(t));e:for(;++ot}function Do(e){return"string"==typeof e||!j(e)&&C(e)&&"[object String]"==O(e)}var Eo=Math.min;function Fo(e){return ho(e)?e:[]}var To=Pe((function(e){var t=P(e,Fo);return t.length&&t[0]===e[0]?function(e,t,n){for(var r=n?Co:pe,o=e[0].length,a=e.length,l=a,i=Array(a),u=1/0,c=[];l--;){var s=e[l];l&&t&&(s=P(s,ze(t))),u=Eo(s.length,u),i[l]=!n&&(t||o>=120&&s.length>=120)?new Ar(l&&s):void 0}s=e[0];var d=-1,v=i[0];e:for(;++d1),t})),Oe(e,nr(e),n),r&&(n=Ir(n,7,Qo));for(var o=t.length;o--;)Jo(n,t[o]);return n})),ta=ea;function na(e,t,n,r){if(!E(e))return e;for(var o=-1,a=(t=xt(t,e)).length,l=a-1,i=e;null!=i&&++o9007199254740991)return n;do{t%2&&(n+=e),(t=oa(t/2))&&(e+=e)}while(t);return n}var la=ro("length"),ia="\\ud800-\\udfff",ua="["+ia+"]",ca="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",sa="\\ud83c[\\udffb-\\udfff]",da="[^"+ia+"]",va="(?:\\ud83c[\\udde6-\\uddff]){2}",fa="[\\ud800-\\udbff][\\udc00-\\udfff]",pa="(?:"+ca+"|"+sa+")"+"?",ma="[\\ufe0e\\ufe0f]?",ha=ma+pa+("(?:\\u200d(?:"+[da,va,fa].join("|")+")"+ma+pa+")*"),ga="(?:"+[da+ca+"?",ca,va,fa,ua].join("|")+")",ya=RegExp(sa+"(?="+sa+")|"+ga+ha,"g");function ba(e){return Wt(e)?function(e){for(var t=ya.lastIndex=0;ya.test(e);)++t;return t}(e):la(e)}var wa=Math.ceil;function Oa(e,t,n){e=Ct(e);var r=(t=R(t))?ba(e):0;return t&&r=200){var c=t?null:Fa(e);if(c)return Hr(c);l=!1,o=Lr,u=new Ar}else u=t?[]:i;e:for(;++r=t?e:""+Array(t+1-r.length).join(n)+e},b={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(o,2,"0")},m:function e(t,n){if(t.date()1)return e(l[0])}else{var i=t.name;O[i]=t,o=i}return!r&&o&&(w=o),o||!r&&w},j=function(e,t){if(x(e))return e.clone();var n="object"==u(t)?t:{};return n.date=e,n.args=arguments,new k(n)},S=b;S.l=P,S.i=x,S.w=function(e,t){return j(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function u(e){this.$L=P(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[C]=!0}var g=u.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(m);if(r){var o=r[2]-1||0,a=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return S},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=j(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return j(e)0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject($a,null):Za,o=t.computed((function(){return(null==r?void 0:r.value)||Ya})),a=t.computed((function(){return Object.assign({},o.value[e],n)}));return{t:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var tl=["from","to","direction"];function nl(e){var t={};return Object.keys(e).forEach((function(n){Uo(e[n])&&!Ko(e[n])||(t[n]=e[n])})),t}function rl(e){if(Do(e))return e;if(j(e))return e[0]&&"#"===e[0][0]&&e.unshift("90deg"),"linear-gradient( ".concat(e.join(",")," )");var t=e.from,n=e.to,r=e.direction,o=void 0===r?"to right":r,a=el(e,tl),l=Object.keys(a);if(l.length){var i=(l=l.sort((function(e,t){return parseFloat(e.substr(0,e.length-1))-parseFloat(t.substr(0,t.length-1))}))).map((function(e){return"".concat(a[e]," ").concat(e)}));return"linear-gradient(".concat(o,", ").concat(i.join(","),")")}return"linear-gradient(".concat(o,", ").concat(t,", ").concat(n,")")}function ol(){if("undefined"==typeof navigator||!navigator)return Number.MAX_SAFE_INTEGER;var e=navigator.userAgent,t=e.indexOf("compatible")>-1&&e.indexOf("MSIE")>-1,n=e.indexOf("Trident")>-1&&e.indexOf("rv:11.0")>-1;if(t){var r=new RegExp("MSIE (\\d+\\.\\d+);"),o=e.match(r);if(!o)return-1;var a=parseFloat(o[1]);return a<7?6:a}return n?11:Number.MAX_SAFE_INTEGER}function al(e,t){var n=Ho(t);if(!e||0===e.length)return n?{length:0,characters:e}:0;for(var r=0,o=0;o127?2:1,n&&r+a>t)return{length:r,characters:e.slice(0,o)};r+=a}return n?{length:r,characters:e}:r}function ll(e){return Ho(e)?"".concat(e,"px"):e}var il=["padding-top","padding-bottom","padding-left","padding-right","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","border-width","box-sizing","line-height","letter-spacing"];function ul(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cl(e){for(var t=1;t11){var d=l.match(/[\d.]+/g),v=d?"rgba(".concat(d[0],", ").concat(d[1],", ").concat(d[2],", 0)"):"";Qa(e,cl(cl({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(v," 0deg, ").concat(l," 360deg)")}))}else Qa(e,cl(cl({},o),{},{background:""}))}}(n.value)}))})),function(){var r="".concat(e.value,"-loading__gradient"),o=[r,"".concat(e.value,"-icon-loading")];return t.createVNode("svg",{class:o,viewBox:"0 0 12 12",version:"1.1",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg"},[t.createVNode("foreignObject",{x:"0",y:"0",width:"12",height:"12"},[t.createVNode("div",{class:"".concat(r,"-conic"),ref:n},null)])])}}}),dl={exports:{}},vl={exports:{}};(function(){var e,t,n,r,o,a;"undefined"!=typeof performance&&null!==performance&&performance.now?vl.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(vl.exports=function(){return(e()-o)/1e6},t=process.hrtime,r=(e=function(){var e;return 1e9*(e=t())[0]+e[1]})(),a=1e9*process.uptime(),o=r-a):Date.now?(vl.exports=function(){return Date.now()-n},n=Date.now()):(vl.exports=function(){return(new Date).getTime()-n},n=(new Date).getTime())}).call(za);for(var fl=vl.exports,pl="undefined"==typeof window?za:window,ml=["moz","webkit"],hl="AnimationFrame",gl=pl["request"+hl],yl=pl["cancel"+hl]||pl["cancelRequest"+hl],bl=0;!gl&&bl-1}function Vl(e,t){if(e){for(var n=e.className,r=(t||"").split(" "),o=0,a=r.length;o0&&void 0!==arguments[0]?arguments[0]:"body";return Do(e)?document.querySelector(e):H(e)?e():e};function Tl(e){return e&&e===e.window}function Il(e,t){if(Sl||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return Tl(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function Ml(e,t){var n=t.container,r=void 0===n?window:n,o=t.duration,a=void 0===o?450:o,l=t.easing,i=void 0===l?jl:l,u=Il(r),c=Date.now();return new Promise((function(t){var n=function(){var o=Date.now()-c,l=i(Math.min(o,a),u,e,a);Tl(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,Pl(on},Bl=function(e){if(!(e instanceof HTMLFormElement))throw new Error("target must be HTMLFormElement");var t=document.createElement("input");t.type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t)};function Ll(e,t){var n=e.getBoundingClientRect();if(t){var r=t.getBoundingClientRect();return n.top>=r.top&&n.left>=r.left&&n.bottom<=r.bottom&&n.right<=r.right}return n.top>=0&&n.left>=0&&n.bottom+80<=window.innerHeight&&n.right<=window.innerWidth}function Rl(e,t){var n="";return document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(e,null).getPropertyValue(t)),n&&n.toLowerCase?n.toLowerCase():n}function zl(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===Rl(e,"position")||zl(t))}function Hl(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}var Wl=Object.prototype.hasOwnProperty,Kl=function(e,t){return Wl.call(e,t)},Ul=function(e,t){return Kl(e,t)?e[t]:void 0};function Yl(e){var n;return E(e)&&"defaultNode"in e?n=e.defaultNode:(t.isVNode(e)||Do(e))&&(n=e),n}function $l(e){var n=[],r=function(e){if(j(e))return e.forEach((function(e){if(e.children&&j(e.children)){if(e.type!==t.Fragment)return;r(e.children)}else n.push(e)})),n};return r(e)}function Zl(e){return E(e)&&"params"in e?e.params:{}}function ql(e,t,n){var r,o,a,l,i=null===(r=(o=e.$slots)[Bn(n)])||void 0===r?void 0:r.call(o,t);return i||((i=null===(a=(l=e.$slots)[$o(n)])||void 0===a?void 0:a.call(l,t))||null)}var Xl=function(e,n,r){var o,a=Zl(r),l=Yl(r);if(n in e&&(o=e[n]),!1!==o&&null!==o)return!0===o&&l?ql(e,a,n)||l:H(o)?o(t.h,a):[void 0,a,""].includes(o)&&(e.$slots[Bn(n)]||e.$slots[$o(n)])?ql(e,a,n):o};function Gl(e,t,n){var r,o,a,l,i=null===(r=(o=e.slots)[Bn(t)])||void 0===r?void 0:r.call(o,n);return i&&i.filter((function(e){return"Symbol(v-cmt)"!==e.type.toString()})).length||(i=null===(a=(l=e.slots)[$o(t)])||void 0===a?void 0:a.call(l,n))&&i.filter((function(e){return"Symbol(v-cmt)"!==e.type.toString()})).length?i:null}function Jl(e){return!![void 0,null,""].includes(e)||!(e instanceof Array?e:[e]).filter((function(e){var t;return"Symbol(Comment)"!==(null==e||null===(t=e.type)||void 0===t?void 0:t.toString())})).length}var Ql=function(){var e=t.getCurrentInstance();return function(n,r){var o=Zl(r),a=Yl(r),l=function(e){return!(!E(e)||!("slotFirst"in e))&&e.slotFirst}(r),i=e.slots[Bn(n)]||e.slots[$o(n)];if(l&&i)return Gl(e,n,o);if(function(e,t){var n=(null==e?void 0:e.vnode.props)||{};return Kl(n,Bn(t))||Kl(n,$o(t))}(e,n)){var u=e.props[Bn(n)]||e.props[$o(n)];if(!1===u||null===u)return;return!0===u?Gl(e,n,o)||a:H(u)?u(t.h,o):[void 0,""].includes(u)&&i?Gl(e,n,o):u}if(i)return Gl(e,n,o);var c=e.props[Bn(n)]||e.props[$o(n)];return!1!==c&&null!==c?!0===c?a:H(c)?c(t.h,o):c:void 0}},ei=function(){var e=Ql();return function(t,n){var r=Yl(n);return e(t,n)||r}},ti=function(){var e=Ql();return function(t,n,r){var o=Zl(r),a=Yl(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Jl(i)?u:i;return Jl(c)?a:c}},ni=function(e,n){var r=H(e)?t.computed(e):t.ref(e),o=H(n)?t.computed(n):t.ref(n),a=t.ref(),l=function(){a.value=El(r.value,o.value)};return t.onMounted((function(){return l()})),t.watch([r,o],(function(){return l()})),a},ri={attach:{type:[String,Function],default:""},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},fullscreen:Boolean,indicator:{type:[Boolean,Function],default:!0},inheritColor:Boolean,loading:{type:Boolean,default:!0},preventScrollThrough:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},size:{type:String,default:"medium"},text:{type:[String,Function]},zIndex:{type:Number}},oi=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:ri,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:Ga("loading"),centerClass:Ga("loading--center"),fullscreenClass:Ga("loading__fullscreen"),lockClass:Ga("loading--lock"),overlayClass:Ga("loading__overlay"),relativeClass:Ga("loading__parent"),fullClass:Ga("loading--full"),inheritColorClass:Ga("loading--inherit-color")},i=l.name,u=l.centerClass,c=l.fullscreenClass,d=l.lockClass,v=l.overlayClass,f=l.relativeClass,p=l.fullClass,m=l.inheritColorClass,h=Ga(),g=Ql(),y=ti(),b=Ja().SIZE,w=function(){a.value=!1;var t=setTimeout((function(){a.value=!0,clearTimeout(t)}),e.delay)},O=ni((function(){return e.attach})),C=t.computed((function(){return Boolean(!e.delay||e.delay&&a.value)})),x=t.computed((function(){var t={};return void 0!==e.zIndex&&(t.zIndex=e.zIndex),["small","medium","large"].includes(e.size)||(t["font-size"]=e.size),t})),P=t.computed((function(){return Boolean(e.default||r.default||e.content||r.content)})),j=t.computed((function(){return e.preventScrollThrough&&e.fullscreen})),S=t.computed((function(){return Boolean(e.text||r.text)})),k=t.computed((function(){return P.value&&e.loading&&C.value})),N=t.computed((function(){return e.fullscreen&&e.loading&&C.value})),_=t.computed((function(){return e.attach&&e.loading&&C.value})),V=t.computed((function(){var t=[u.value,Ul(b.value,e.size),s({},m.value,e.inheritColor)],n=[i.value,c.value,u.value,v.value];return{baseClasses:t,attachClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),withContentClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),fullScreenClasses:n,normalClasses:t.concat([i.value])}})),D=t.toRefs(e).loading;return t.watch([D],(function(e){Ra(e,1)[0]?(w(),j.value&&Vl(document.body,d.value)):j.value&&Dl(document.body,d.value)})),t.onMounted((function(){e.delay&&w()})),function(){var n=V.value,r=n.fullScreenClasses,a=n.baseClasses,l=n.withContentClasses,i=n.attachClasses,u=n.normalClasses,c=t.createVNode(sl,{size:e.size},null),s=D.value&&g("indicator",c),d=S.value&&t.createVNode("div",{class:"".concat(h.value,"-loading__text")},[g("text")]);return e.fullscreen?N.value&&e.loading?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:r,style:x.value},o),[t.createVNode("div",{class:a},[s,d])])]}}):null:P.value?t.createVNode("div",t.mergeProps({class:f.value},o),[y("default","content"),k.value&&t.createVNode("div",{class:l,style:x.value},[s,d])]):e.attach?_.value&&D.value?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:i,style:x.value},o),[s,d])]}}):null:D.value?t.createVNode("div",t.mergeProps({class:u,style:x.value},o),[s,d]):null}}});function ai(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var li=null;function ii(e){var n=function(e){return Go({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(n.fullscreen&&li)return li;var r=t.defineComponent({setup:function(){return{loadingOptions:t.reactive(n)}},render:function(){return t.h(oi,function(e){for(var t=1;t0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(Qa(a.value,{position:"absolute",left:"".concat(0-s,"px"),top:"".concat(0-s,"px"),width:"".concat(d,"px"),height:"".concat(v,"px"),borderRadius:u.borderRadius,pointerEvents:"none",overflow:"hidden"}),r.appendChild(a.value));var f=document.createElement("div");Qa(f,{marginTop:"0",marginLeft:"0",right:"".concat(d,"px"),width:"".concat(d+20,"px"),height:"100%",transition:"transform ".concat(200,"ms cubic-bezier(.38, 0, .24, 1), background ").concat(400,"ms linear"),transform:"skewX(-8deg)",pointerEvents:"none",position:"absolute",zIndex:0,backgroundColor:o,opacity:"0.9"});for(var p=new WeakMap,m=r.children.length,h=0;h0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Iv,"-svg-js-stylesheet--unique-class"))}))}));var v=t.computed((function(){return{class:s.value,style:d.value,onClick:function(t){var n;return null===(n=e.onClick)||void 0===n?void 0:n.call(e,{e:t})}}}));return function(){return t.h("svg",v.value,t.h("use",{href:e.url?"#".concat(a.value):"#t-icon-".concat(a.value)}))}}}),"TIcon"),Av={content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},download:{type:[String,Boolean]},hover:{type:String,default:"underline",validator:function(e){return!e||["color","underline"].includes(e)}},href:{type:String,default:""},prefixIcon:{type:Function},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffixIcon:{type:Function},target:{type:String,default:""},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},underline:Boolean,onClick:Function},Bv=t.defineComponent({name:"TLink",props:Av,emits:["click"],setup:function(e,n){var r=n.emit,o=ti(),a=Ql(),l=Ga("link"),u=Ja(),c=u.STATUS,d=u.SIZE,v=qa("classPrefix").classPrefix,f=wi(),p=t.computed((function(){return["".concat(l.value),"".concat(l.value,"--theme-").concat(e.theme),s(s(s(s({},d.value[e.size],"medium"!==e.size),c.value.disabled,f.value),"".concat(v.value,"-is-underline"),e.underline),"".concat(l.value,"--hover-").concat(e.hover),!f.value)]})),m=function(e){f.value||r("click",e)};return function(){var n=o("default","content"),r=a("prefixIcon"),u=a("suffixIcon");return t.createVNode("a",{class:i(p.value),href:f.value||!e.href?void 0:e.href,target:e.target?e.target:void 0,download:e.download?e.download:void 0,onClick:m},[r?t.createVNode("span",{class:"".concat(l.value,"__prefix-icon")},[r]):null,n,u?t.createVNode("span",{class:"".concat(l.value,"__suffix-icon")},[u]):null])}}}),Lv=fi(Bv),Rv={align:{type:String,default:"top",validator:function(e){return!e||["start","end","center","stretch","baseline","top","middle","bottom"].includes(e)}},gutter:{type:[Number,Object,Array],default:0},justify:{type:String,default:"start",validator:function(e){return!e||["start","end","center","space-around","space-between"].includes(e)}},tag:{type:String,default:"div"}},zv=function(e){return e<768?"xs":e>=768&&e<992?"sm":e>=992&&e<1200?"md":e>=1200&&e<1400?"lg":e>=1400&&e<1880?"xl":"xxl"};function Hv(e,n){t.onMounted((function(){window.addEventListener(e,n)})),t.onBeforeUnmount((function(){window.removeEventListener(e,n)}))}function Wv(){var e=t.ref(zv(Sl?0:window.innerWidth));return Hv("resize",(function(){e.value=zv(Sl?0:window.innerWidth)})),e}function Kv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Uv(e){for(var t=1;t=0),"".concat(e,"-").concat(r,"-offset-").concat(a.offset),parseInt(a.offset,10)>=0),"".concat(e,"-").concat(r,"-push-").concat(a.push),parseInt(a.push,10)>=0),"".concat(e,"-").concat(r,"-pull-").concat(a.pull),parseInt(a.pull,10)>=0))}),{});return Uv(s(s(s(s(s(s({},"".concat(e),!0),"".concat(e,"-").concat(n),!Uo(n)),"".concat(e,"-order-").concat(r),r),"".concat(e,"-offset-").concat(o),o),"".concat(e,"-push-").concat(a),a),"".concat(e,"-pull-").concat(l),l),i)}(n.value,e)})),i=t.computed((function(){var t,n,r,l,i,u={},c=e.flex;if(c&&(u.flex=function(e){return Ho(e)?"".concat(e," ").concat(e," 0"):/^\d+(\.\d+)?(px|r?em|%)$/.test(e)?"0 0 ".concat(e):e}(c)),o){var s=o.gutter;Object.assign(u,(t=s,n=a.value,r={},l=function(e){return Object.assign(r,{paddingLeft:"".concat(e/2,"px"),paddingRight:"".concat(e/2,"px")})},i={isNumber:function(e){Ho(e)&&l(e)},isArray:function(e){j(e)&&e.length&&(Ho(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!j(e)&&e[n]&&l(e[n])}},Object.keys(i).forEach((function(e){i[e](t)})),r))}return u}));return function(){var n,o,a=e.tag;return t.createVNode(a,{class:l.value,style:i.value},"function"==typeof(o=n=r("default"))||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?n:{default:function(){return[n]}})}}}),qv=fi(Yv),Xv=fi(Zv),Gv=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=Ql(),r=Ga("layout"),o=t.computed((function(){return[r.value,s({},"".concat(r.value,"--with-sider"),e.value)]}));return t.provide("layout",{hasSide:e}),function(){return t.createVNode("section",{class:o.value},[n("default")])}}}),Jv={height:{type:String,default:""}},Qv=t.defineComponent({name:"THeader",props:Jv,setup:function(e){var n=Ga("layout__header"),r=Ql();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),ef={height:{type:String,default:""}},tf=t.defineComponent({name:"TFooter",props:ef,setup:function(e){var n=Ga("layout__footer"),r=Ql();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),nf={width:{type:String,default:""}},rf=t.defineComponent({name:"TAside",props:nf,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=Ga("layout__sider"),o=Ql();if(n)return t.onMounted((function(){n.value=!0})),t.onUnmounted((function(){n.value=!1})),function(){var n=e.width?{width:e.width}:{};return t.createVNode("aside",{class:r.value,style:n},[o("default")])}}}),of={content:{type:[String,Function]},default:{type:[String,Function]}},af=t.defineComponent({name:"TContent",props:of,setup:function(){var e=Ga("layout__content"),n=ti();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),lf=fi(rf),uf=fi(Gv),cf=fi(Qv),sf=fi(tf),df=fi(af),vf={align:{type:String,default:"center",validator:function(e){return!e||["left","right","center"].includes(e)}},content:{type:[String,Function]},dashed:Boolean,default:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},theme:{type:String,validator:function(e){return!e||["horizontal","vertical"].includes(e)}}},ff=t.defineComponent({name:"TDivider",props:vf,setup:function(e){var n=Ga("divider"),r=ti();return function(){var o=e.layout,a=e.dashed,l=e.align,i=r("default","content"),u=["".concat(n.value),["".concat(n.value,"--").concat(o)],s(s(s({},"".concat(n.value,"--dashed"),!!a),"".concat(n.value,"--with-text"),!!i),"".concat(n.value,"--with-text-").concat(l),!!i)];return t.createVNode("div",{class:u},[i&&t.createVNode("span",{class:"".concat(n.value,"__inner-text")},[i])])}}}),pf=fi(ff),mf={align:{type:String,validator:function(e){return!e||["start","end","center","baseline"].includes(e)}},breakLine:Boolean,direction:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},separator:{type:[String,Function]},size:{type:[String,Number,Array],default:"medium"}};function hf(){var e=t.getCurrentInstance();return function(t,n){var r,o;return n||(n=e.slots),$l((null===(r=n)||void 0===r||null===(o=r.default)||void 0===o?void 0:o.call(r))||[]).filter((function(e){var n;return null===(n=e.type.name)||void 0===n?void 0:n.endsWith(t)}))}}function gf(){var e=t.getCurrentInstance();return function(){var n,r=e.slots;return((null==r||null===(n=r.default)||void 0===n?void 0:n.call(r))||[]).filter((function(e){return!("symbol"===u(e.type)&&!e.children)&&e.type!==t.Comment})).map((function(e){return e.children&&j(e.children)&&e.type===t.Fragment?e.children:e})).flat()}}function yf(){return function e(n){var r=[];return n.forEach((function(n){t.isVNode(n)&&n.type===t.Fragment&&Array.isArray(n.children)?r.push.apply(r,i(e(n.children))):t.isVNode(n)&&[t.Teleport,t.Comment].some((function(e){return e===n.type}))||r.push(n)})),r}}function bf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wf(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Do(e)?e:H(e)?e(t.h,n):H(null==e?void 0:e.render)?e.render(t.h,n):e}function _f(e,t,n){var r,o=null===(r=e.props)||void 0===r?void 0:r[t];if(o)return o;var a=e.children,l=(null==a?void 0:a[t])||(null==a?void 0:a[n]);return l?null==l?void 0:l():null}function Vf(e,t){return e===kf.props}var Df=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(Sf),r=Ga("descriptions"),o=qa("descriptions").globalConfig,a=t.computed((function(){return"horizontal"===n.layout})),l=t.computed((function(){return"horizontal"===n.itemLayout})),i=function(i){var u=["".concat(r.value,"__label")],c=null,s=null;Vf(e.itemType)?(c=i.label,s=i.span):(c=_f(i,"label"),s=i.props.span);var d=a.value?l.value?1:s:1;return t.createVNode("td",t.mergeProps({colspan:d,class:u},{style:n.labelStyle}),[c,n.colon&&o.value.colonText])},u=function(o){var i=["".concat(r.value,"__content")],u=null,c=null;Vf(e.itemType)?(u=o.content,c=o.span):(u=_f(o,"content","default"),c=o.props.span);var s=a.value?c>1&&l.value?2*c-1:c:1;return t.createVNode("td",t.mergeProps({colspan:s,class:i},{style:n.contentStyle}),[u])};return function(){return t.createVNode(t.Fragment,null,[a.value?l.value?t.createVNode("tr",null,[e.row.map((function(e){return t.createVNode(t.Fragment,null,[i(e),u(e)])}))]):t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[e.row.map((function(e){return i(e)}))]),t.createVNode("tr",null,[e.row.map((function(e){return u(e)}))])]):l.value?t.createVNode(t.Fragment,null,[e.row.map((function(e){return t.createVNode("tr",null,[i(e),u(e)])}))]):t.createVNode(t.Fragment,null,[e.row.map((function(e){return t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[i(e)]),t.createVNode("tr",null,[u(e)])])}))])])}}}),Ef=t.defineComponent({name:"TDescriptions",props:jf,setup:function(e){var n=Ga("descriptions"),r=Ja().SIZE,o=hf(),a=Ql(),l=t.ref(kf.props),i=function(){var t=e.column,n=e.layout,r=[];if(j(e.items))r=e.items.map((function(e){return{label:Nf(e.label),content:Nf(e.content),span:e.span||1}})),l.value=kf.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=kf.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach((function(e,n){var o,a=1;Vf(l.value)?a=(a=Wo(e.span)?a:e.span)>t?t:a:(e.props=e.props||{},a=(a=Wo(null===(o=e.props)||void 0===o?void 0:o.span)?a:e.props.span)>t?t:a,e.props.span=a);u>=a?(i.push(e),u-=a):(c.push(i),i=[e],u=t-a),n===r.length-1&&(Vf(l.value)?e.span+=u:e.props.span+=u,c.push(i))})),c};t.provide(Sf,e);return function(){return t.createVNode("div",{class:n.value},[(u=a("title"),u?t.createVNode("div",{class:"".concat(n.value,"__header")},[u]):""),(o=["".concat(n.value,"__body"),r.value[e.size],s({},"".concat(n.value,"__body--fixed"),"fixed"===e.tableLayout),s({},"".concat(n.value,"__body--border"),e.bordered)],t.createVNode("table",{class:o},[t.createVNode("tbody",null,[i().map((function(e){return t.createVNode(Df,{"item-type":l.value,row:e},null)}))])]))]);var o,u}}}),Ff={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},Tf=t.defineComponent({name:"TDescriptionsItem",props:Ff}),If=fi(Ef),Mf=fi(Tf);function Af(e,t,n,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){return void n(e)}i.done?t(u):Promise.resolve(u).then(r,o)}function Bf(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){Af(a,r,o,l,i,"next",e)}function i(e){Af(a,r,o,l,i,"throw",e)}l(void 0)}))}}var Lf={exports:{}},Rf={exports:{}};!function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(Rf),function(e){var t=Rf.exports.default;function n(){ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ -e.exports=n=function(){return o},e.exports.__esModule=!0,e.exports.default=e.exports;var r,o={},a=Object.prototype,l=a.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",s=u.asyncIterator||"@@asyncIterator",d=u.toStringTag||"@@toStringTag";function v(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{v({},"")}catch(r){v=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var o=t&&t.prototype instanceof w?t:w,a=Object.create(o.prototype),l=new F(r||[]);return i(a,"_invoke",{value:_(e,n,l)}),a}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}o.wrap=f;var m="suspendedStart",h="suspendedYield",g="executing",y="completed",b={};function w(){}function O(){}function C(){}var x={};v(x,c,(function(){return this}));var P=Object.getPrototypeOf,j=P&&P(P(T([])));j&&j!==a&&l.call(j,c)&&(x=j);var S=C.prototype=w.prototype=Object.create(x);function k(e){["next","throw","return"].forEach((function(t){v(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,n){function r(o,a,i,u){var c=p(e[o],e,a);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==t(d)&&l.call(d,"__await")?n.resolve(d.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):n.resolve(d).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var o;i(this,"_invoke",{value:function(e,t){function a(){return new n((function(n,o){r(e,t,n,o)}))}return o=o?o.then(a,a):a()}})}function _(e,t,n){var o=m;return function(a,l){if(o===g)throw new Error("Generator is already running");if(o===y){if("throw"===a)throw l;return{value:r,done:!0}}for(n.method=a,n.arg=l;;){var i=n.delegate;if(i){var u=V(i,n);if(u){if(u===b)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===m)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var c=p(e,t,n);if("normal"===c.type){if(o=n.done?y:h,c.arg===b)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=y,n.method="throw",n.arg=c.arg)}}}function V(e,t){var n=t.method,o=e.iterator[n];if(o===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=r,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var a=p(o,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,b;var l=a.arg;return l?l.done?(t[e.resultName]=l.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=r),t.delegate=null,b):l:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,b)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function T(e){if(e||""===e){var n=e[c];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function t(){for(;++o=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=l.call(a,"catchLoc"),c=l.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&l.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=r),b}},o}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Lf);var zf=Lf.exports(),Hf=zf;try{regeneratorRuntime=zf}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=zf:Function("r","regeneratorRuntime = r")(zf)}var Wf={container:{type:[String,Function],default:function(){return function(){return window}}},content:{type:[String,Function]},default:{type:[String,Function]},offsetBottom:{type:Number,default:0},offsetTop:{type:Number,default:0},zIndex:{type:Number},onFixedChange:Function},Kf=t.defineComponent({name:"TAffix",props:Wf,emits:["fixedChange"],setup:function(e,n){var r,o=Qa("affix"),a=ei(),l=t.ref(null),i=t.ref(null),u=t.ref(null===(r=document)||void 0===r?void 0:r.createElement("div")),c=t.ref(!1),s=t.ref(!1),d=t.ref(),v=t.ref(),f=0,p=function(){c.value||(f=window.requestAnimationFrame((function(){var t,r;f=0;var a,s=null!==(t=null===(r=l.value)||void 0===r?void 0:r.getBoundingClientRect())&&void 0!==t?t:{top:0,width:0,height:0},p=s.top,m=s.width,h=s.height,g=0;d.value instanceof HTMLElement&&(g=d.value.getBoundingClientRect().top);var y=p-g,b=g+(d.value[d.value instanceof Window?"innerHeight":"clientHeight"]-h)-e.offsetBottom;if(a=!Uo(e.offsetTop)&&y<=e.offsetTop?g+e.offsetTop:!Uo(e.offsetBottom)&&p>=b&&b,i.value){var w=!1!==a,O=l.value.contains(u.value);w?(i.value.className=o.value,v.value={top:"".concat(a,"px"),width:"".concat(m,"px"),height:"".concat(h,"px"),zIndex:e.zIndex},O||(u.value.style.width="".concat(m,"px"),u.value.style.height="".concat(h,"px"),l.value.appendChild(u.value))):(i.value.removeAttribute("class"),v.value=void 0,O&&u.value.remove()),n.emit("fixedChange",w,{top:Number(a)}),H(e.onFixedChange)&&e.onFixedChange(w,{top:Number(a)})}c.value=!1})),c.value=!0)},m=function(){var n=Bf(Hf.mark((function n(){return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.nextTick();case 2:if(!s.value){n.next=4;break}return n.abrupt("return");case 4:d.value=Tl(e.container),Nl(d.value,"scroll",p),Nl(window,"resize",p),s.value=!0;case 8:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(_l(d.value,"scroll",p),_l(window,"resize",p),f&&window.cancelAnimationFrame(f),s.value=!1)};return t.watch((function(){return e.offsetTop}),(function(){p()})),t.watch((function(){return e.offsetBottom}),(function(){p()})),t.watch((function(){return e.zIndex}),(function(){p()})),t.onMounted(m),t.onActivated(m),t.onDeactivated(h),t.onBeforeUnmount(h),n.expose({scrollContainer:d,affixWrapRef:l,handleScroll:p}),function(){return t.createVNode("div",{ref:l},[t.createVNode("div",{ref:i,style:v.value},[a("default")])])}}}),Uf=pi(Kf),Yf={exports:{}}; +e.exports=n=function(){return o},e.exports.__esModule=!0,e.exports.default=e.exports;var r,o={},a=Object.prototype,l=a.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",s=u.asyncIterator||"@@asyncIterator",d=u.toStringTag||"@@toStringTag";function v(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{v({},"")}catch(r){v=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var o=t&&t.prototype instanceof w?t:w,a=Object.create(o.prototype),l=new F(r||[]);return i(a,"_invoke",{value:_(e,n,l)}),a}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}o.wrap=f;var m="suspendedStart",h="suspendedYield",g="executing",y="completed",b={};function w(){}function O(){}function C(){}var x={};v(x,c,(function(){return this}));var P=Object.getPrototypeOf,j=P&&P(P(T([])));j&&j!==a&&l.call(j,c)&&(x=j);var S=C.prototype=w.prototype=Object.create(x);function k(e){["next","throw","return"].forEach((function(t){v(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,n){function r(o,a,i,u){var c=p(e[o],e,a);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==t(d)&&l.call(d,"__await")?n.resolve(d.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):n.resolve(d).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var o;i(this,"_invoke",{value:function(e,t){function a(){return new n((function(n,o){r(e,t,n,o)}))}return o=o?o.then(a,a):a()}})}function _(e,t,n){var o=m;return function(a,l){if(o===g)throw new Error("Generator is already running");if(o===y){if("throw"===a)throw l;return{value:r,done:!0}}for(n.method=a,n.arg=l;;){var i=n.delegate;if(i){var u=V(i,n);if(u){if(u===b)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===m)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var c=p(e,t,n);if("normal"===c.type){if(o=n.done?y:h,c.arg===b)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=y,n.method="throw",n.arg=c.arg)}}}function V(e,t){var n=t.method,o=e.iterator[n];if(o===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=r,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var a=p(o,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,b;var l=a.arg;return l?l.done?(t[e.resultName]=l.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=r),t.delegate=null,b):l:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,b)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function T(e){if(e||""===e){var n=e[c];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function t(){for(;++o=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=l.call(a,"catchLoc"),c=l.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&l.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=r),b}},o}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Lf);var zf=Lf.exports(),Hf=zf;try{regeneratorRuntime=zf}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=zf:Function("r","regeneratorRuntime = r")(zf)}var Wf={container:{type:[String,Function],default:function(){return function(){return window}}},content:{type:[String,Function]},default:{type:[String,Function]},offsetBottom:{type:Number,default:0},offsetTop:{type:Number,default:0},zIndex:{type:Number},onFixedChange:Function},Kf=t.defineComponent({name:"TAffix",props:Wf,emits:["fixedChange"],setup:function(e,n){var r,o=Ga("affix"),a=Ql(),l=t.ref(null),i=t.ref(null),u=t.ref(null===(r=document)||void 0===r?void 0:r.createElement("div")),c=t.ref(!1),s=t.ref(!1),d=t.ref(),v=t.ref(),f=0,p=function(){c.value||(f=window.requestAnimationFrame((function(){var t,r;f=0;var a,s=null!==(t=null===(r=l.value)||void 0===r?void 0:r.getBoundingClientRect())&&void 0!==t?t:{top:0,width:0,height:0},p=s.top,m=s.width,h=s.height,g=0;d.value instanceof HTMLElement&&(g=d.value.getBoundingClientRect().top);var y=p-g,b=g+(d.value[d.value instanceof Window?"innerHeight":"clientHeight"]-h)-e.offsetBottom;if(a=!Uo(e.offsetTop)&&y<=e.offsetTop?g+e.offsetTop:!Uo(e.offsetBottom)&&p>=b&&b,i.value){var w=!1!==a,O=l.value.contains(u.value);w?(i.value.className=o.value,v.value={top:"".concat(a,"px"),width:"".concat(m,"px"),height:"".concat(h,"px"),zIndex:e.zIndex},O||(u.value.style.width="".concat(m,"px"),u.value.style.height="".concat(h,"px"),l.value.appendChild(u.value))):(i.value.removeAttribute("class"),v.value=void 0,O&&u.value.remove()),n.emit("fixedChange",w,{top:Number(a)}),H(e.onFixedChange)&&e.onFixedChange(w,{top:Number(a)})}c.value=!1})),c.value=!0)},m=function(){var n=Bf(Hf.mark((function n(){return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.nextTick();case 2:if(!s.value){n.next=4;break}return n.abrupt("return");case 4:d.value=Fl(e.container),kl(d.value,"scroll",p),kl(window,"resize",p),s.value=!0;case 8:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(Nl(d.value,"scroll",p),Nl(window,"resize",p),f&&window.cancelAnimationFrame(f),s.value=!1)};return t.watch((function(){return e.offsetTop}),(function(){p()})),t.watch((function(){return e.offsetBottom}),(function(){p()})),t.watch((function(){return e.zIndex}),(function(){p()})),t.onMounted(m),t.onActivated(m),t.onDeactivated(h),t.onBeforeUnmount(h),n.expose({scrollContainer:d,affixWrapRef:l,handleScroll:p}),function(){return t.createVNode("div",{ref:l},[t.createVNode("div",{ref:i,style:v.value},[a("default")])])}}}),Uf=fi(Kf),Yf={exports:{}}; /*! * clipboard.js v2.0.11 * https://clipboardjs.com/ * * Licensed MIT © Zeno Rocha */ -!function(e){var t;t=function(){return function(){var e={686:function(e,t,n){n.d(t,{default:function(){return C}});var r=n(279),o=n.n(r),a=n(370),l=n.n(a),i=n(817),u=n.n(i);function c(e){try{return document.execCommand(e)}catch(e){return!1}}var s=function(e){var t=u()(e);return c("cut"),t},d=function(e,t){var n=function(e){var t="rtl"===document.documentElement.getAttribute("dir"),n=document.createElement("textarea");n.style.fontSize="12pt",n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[t?"right":"left"]="-9999px";var r=window.pageYOffset||document.documentElement.scrollTop;return n.style.top="".concat(r,"px"),n.setAttribute("readonly",""),n.value=e,n}(e);t.container.appendChild(n);var r=u()(n);return c("copy"),n.remove(),r},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof e?n=d(e,t):e instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==e?void 0:e.type)?n=d(e.value,t):(n=u()(e),c("copy")),n};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,n=void 0===t?"copy":t,r=e.container,o=e.target,a=e.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==o){if(!o||"object"!==f(o)||1!==o.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&o.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(o.hasAttribute("readonly")||o.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return a?v(a,{container:r}):o?"cut"===n?s(o):v(o,{container:r}):void 0};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function h(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===m(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=l()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,n=this.action(t)||"copy",r=p({action:n,container:this.container,target:this.target(t),text:this.text(t)});this.emit(r?"success":"error",{action:n,text:r,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return w("action",e)}},{key:"defaultTarget",value:function(e){var t=w("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return w("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],r=[{key:"copy",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return v(e,t)}},{key:"cut",value:function(e){return s(e)}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach((function(e){n=n&&!!document.queryCommandSupported(e)})),n}}],n&&h(t.prototype,n),r&&h(t,r),a}(o()),C=O},828:function(e){if("undefined"!=typeof Element&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},438:function(e,t,n){var r=n(828);function o(e,t,n,r,o){var l=a.apply(this,arguments);return e.addEventListener(n,l,o),{destroy:function(){e.removeEventListener(n,l,o)}}}function a(e,t,n,o){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&o.call(e,n)}}e.exports=function(e,t,n,r,a){return"function"==typeof e.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return o(e,t,n,r,a)})))}},879:function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},370:function(e,t,n){var r=n(879),o=n(438);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,n)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,n)}))}}}(e,t,n);if(r.string(e))return function(e,t,n){return o(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(e){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(e),r.removeAllRanges(),r.addRange(o),t=r.toString()}return t}},279:function(e){function t(){}t.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function o(){r.off(e,o),t.apply(n,arguments)}return o._=t,this.on(e,o,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,o=n.length;rt.top?e:t})).link;w(o)}},b=function(e){var t=e.match(Zf);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=Bf(Hf.mark((function n(r){var o;return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=2;break}return n.abrupt("return");case 2:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=6,t.nextTick();case 6:O();case 7:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),O=function(){var e,t=null===(e=o.value)||void 0===e?void 0:e.querySelector(".".concat(p.value.active,">a"));if(t){var n=t.offsetTop,r=t.offsetHeight;Object.assign(c,{top:"".concat(n,"px"),height:"".concat(r,"px"),opacity:1})}else Object.assign(c,{})},C=function(){var t=Bf(Hf.mark((function t(n){var r,o,a,l,c;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=4;break}return t.abrupt("return");case 4:return u.value=!0,o=e.targetOffset,a=Ml(i.value),l=qf(r,i.value),c=a+l-o,t.next=11,Al(c,{container:i.value});case 11:u.value=!1;case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return t.onMounted(Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=5;break}return e.next=4,t.nextTick();case 4:C(l.value);case 5:case"end":return e.stop()}}),e)})))),t.onUnmounted((function(){i.value&&_l(i.value,"scroll",y)})),t.watchEffect((function(){i.value&&_l(i.value,"scroll",y),g()})),t.provide(Gf,t.reactive({registerLink:function(e){Zf.test(e)&&-1===a.value.indexOf(e)&&a.value.push(e)},unregisterLink:function(e){a.value=a.value.filter((function(t){return t!==e}))},handleScrollTo:C,handleLinkClick:function(t){var n;null===(n=e.onClick)||void 0===n||n.call(e,t)},active:l})),function(){var n,a=e.size,l=e.affixProps,i=[s.value,m.value[a]],u=t.createVNode("div",t.mergeProps({ref:o,class:i},r),[t.createVNode("div",{class:d.value},[t.createVNode("div",{class:"".concat(v.value,"-wrapper"),style:c},[h("cursor")||t.createVNode("div",{class:v.value},null)])]),h("default")]);return l?t.createVNode(Uf,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):u}}});function Qf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ep(e){for(var t=1;t0&&Gp(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Gp(r.height)/e.offsetHeight||1);var l=(Kp(e)?Wp(e):window).visualViewport,i=!Qp()&&n,u=(r.left+(i&&l?l.offsetLeft:0))/o,c=(r.top+(i&&l?l.offsetTop:0))/a,s=r.width/o,d=r.height/a;return{width:s,height:d,top:c,right:u+s,bottom:c+d,left:u,x:u,y:c}}function tm(e){var t=em(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function nm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Yp(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function rm(e){return Wp(e).getComputedStyle(e)}function om(e){return["table","td","th"].indexOf(Hp(e))>=0}function am(e){return((Kp(e)?e.ownerDocument:e.document)||window.document).documentElement}function lm(e){return"html"===Hp(e)?e:e.assignedSlot||e.parentNode||(Yp(e)?e.host:null)||am(e)}function im(e){return Up(e)&&"fixed"!==rm(e).position?e.offsetParent:null}function um(e){for(var t=Wp(e),n=im(e);n&&om(n)&&"static"===rm(n).position;)n=im(n);return n&&("html"===Hp(n)||"body"===Hp(n)&&"static"===rm(n).position)?t:n||function(e){var t=/firefox/i.test(Jp());if(/Trident/i.test(Jp())&&Up(e)&&"fixed"===rm(e).position)return null;var n=lm(e);for(Yp(n)&&(n=n.host);Up(n)&&["html","body"].indexOf(Hp(n))<0;){var r=rm(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function cm(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function sm(e,t,n){return qp(e,Xp(t,n))}function dm(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function vm(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var fm={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,a=n.elements.arrow,l=n.modifiersData.popperOffsets,i=Zp(n.placement),u=cm(i),c=[Ep,Dp].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return dm("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:vm(e,Tp))}(o.padding,n),d=tm(a),v="y"===u?_p:Ep,f="y"===u?Vp:Dp,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=um(a),g=h?"y"===u?h.clientHeight||0:h.clientWidth||0:0,y=p/2-m/2,b=s[v],w=g-d[c]-s[f],O=g/2-d[c]/2+y,C=sm(b,O,w),x=u;n.modifiersData[r]=((t={})[x]=C,t.centerOffset=C-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&nm(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function pm(e){return e.split("-")[1]}var mm={top:"auto",right:"auto",bottom:"auto",left:"auto"};function hm(e){var t,n=e.popper,r=e.popperRect,o=e.placement,a=e.variation,l=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,s=e.roundOffsets,d=e.isFixed,v=l.x,f=void 0===v?0:v,p=l.y,m=void 0===p?0:p,h="function"==typeof s?s({x:f,y:m}):{x:f,y:m};f=h.x,m=h.y;var g=l.hasOwnProperty("x"),y=l.hasOwnProperty("y"),b=Ep,w=_p,O=window;if(c){var C=um(n),x="clientHeight",P="clientWidth";if(C===Wp(n)&&"static"!==rm(C=am(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===_p||(o===Ep||o===Dp)&&a===Mp)w=Vp,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===Ep||(o===_p||o===Vp)&&a===Mp)b=Dp,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var j,S=Object.assign({position:i},c&&mm),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:Gp(n*o)/o||0,y:Gp(r*o)/o||0}}({x:f,y:m},Wp(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},S,((j={})[w]=y?"0":"",j[b]=g?"0":"",j.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",j)):Object.assign({},S,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var gm={passive:!0};var ym={left:"right",right:"left",bottom:"top",top:"bottom"};function bm(e){return e.replace(/left|right|bottom|top/g,(function(e){return ym[e]}))}var wm={start:"end",end:"start"};function Om(e){return e.replace(/start|end/g,(function(e){return wm[e]}))}function Cm(e){var t=Wp(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function xm(e){return em(am(e)).left+Cm(e).scrollLeft}function Pm(e){var t=rm(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function jm(e){return["html","body","#document"].indexOf(Hp(e))>=0?e.ownerDocument.body:Up(e)&&Pm(e)?e:jm(lm(e))}function Sm(e,t){var n;void 0===t&&(t=[]);var r=jm(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=Wp(r),l=o?[a].concat(a.visualViewport||[],Pm(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(Sm(lm(l)))}function km(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Nm(e,t,n){return t===Ap?km(function(e,t){var n=Wp(e),r=am(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=Qp();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+xm(e),y:u}}(e,n)):Kp(t)?function(e,t){var n=em(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):km(function(e){var t,n=am(e),r=Cm(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=qp(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=qp(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+xm(e),u=-r.scrollTop;return"rtl"===rm(o||n).direction&&(i+=qp(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(am(e)))}function _m(e,t,n,r){var o="clippingParents"===t?function(e){var t=Sm(lm(e)),n=["absolute","fixed"].indexOf(rm(e).position)>=0&&Up(e)?um(e):e;return Kp(n)?t.filter((function(e){return Kp(e)&&nm(e,n)&&"body"!==Hp(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce((function(t,n){var o=Nm(e,n,r);return t.top=qp(o.top,t.top),t.right=Xp(o.right,t.right),t.bottom=Xp(o.bottom,t.bottom),t.left=qp(o.left,t.left),t}),Nm(e,l,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Vm(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Zp(o):null,l=o?pm(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case _p:t={x:i,y:n.y-r.height};break;case Vp:t={x:i,y:n.y+n.height};break;case Dp:t={x:n.x+n.width,y:u};break;case Ep:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?cm(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case Ip:t[c]=t[c]-(n[s]/2-r[s]/2);break;case Mp:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function Dm(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,a=n.strategy,l=void 0===a?e.strategy:a,i=n.boundary,u=void 0===i?"clippingParents":i,c=n.rootBoundary,s=void 0===c?Ap:c,d=n.elementContext,v=void 0===d?Bp:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=dm("number"!=typeof h?h:vm(h,Tp)),y=v===Bp?"reference":Bp,b=e.rects.popper,w=e.elements[p?y:v],O=_m(Kp(w)?w:w.contextElement||am(e.elements.popper),u,s,l),C=em(e.elements.reference),x=Vm({reference:C,element:b,strategy:"absolute",placement:o}),P=km(Object.assign({},b,x)),j=v===Bp?P:C,S={top:O.top-j.top+g.top,bottom:j.bottom-O.bottom+g.bottom,left:O.left-j.left+g.left,right:j.right-O.right+g.right},k=e.modifiersData.offset;if(v===Bp&&k){var N=k[o];Object.keys(S).forEach((function(e){var t=[Dp,Vp].indexOf(e)>=0?1:-1,n=[_p,Vp].indexOf(e)>=0?"y":"x";S[e]+=N[n]*t}))}return S}function Em(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,a=n.rootBoundary,l=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=void 0===u?Rp:u,s=pm(r),d=s?i?Lp:Lp.filter((function(e){return pm(e)===s})):Tp,v=d.filter((function(e){return c.indexOf(e)>=0}));0===v.length&&(v=d);var f=v.reduce((function(t,n){return t[n]=Dm(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Zp(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}var Fm={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0===l||l,u=n.fallbackPlacements,c=n.padding,s=n.boundary,d=n.rootBoundary,v=n.altBoundary,f=n.flipVariations,p=void 0===f||f,m=n.allowedAutoPlacements,h=t.options.placement,g=Zp(h),y=u||(g===h||!p?[bm(h)]:function(e){if(Zp(e)===Fp)return[];var t=bm(e);return[Om(e),t,Om(t)]}(h)),b=[h].concat(y).reduce((function(e,n){return e.concat(Zp(n)===Fp?Em(t,{placement:n,boundary:s,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):n)}),[]),w=t.rects.reference,O=t.rects.popper,C=new Map,x=!0,P=b[0],j=0;j=0,V=_?"width":"height",D=Dm(t,{placement:S,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?Dp:Ep:N?Vp:_p;w[V]>O[V]&&(E=bm(E));var F=bm(E),T=[];if(a&&T.push(D[k]<=0),i&&T.push(D[E]<=0,D[F]<=0),T.every((function(e){return e}))){P=S,x=!1;break}C.set(S,T)}if(x)for(var I=function(e){var t=b.find((function(t){var n=C.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return P=t,"break"},M=p?3:1;M>0;M--){if("break"===I(M))break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Tm(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Im(e){return[_p,Dp,Vp,Ep].some((function(t){return e[t]>=0}))}var Mm={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,a=void 0===o?[0,0]:o,l=Rp.reduce((function(e,n){return e[n]=function(e,t,n){var r=Zp(e),o=[Ep,_p].indexOf(r)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,l=a[0],i=a[1];return l=l||0,i=(i||0)*o,[Ep,Dp].indexOf(r)>=0?{x:i,y:l}:{x:l,y:i}}(n,t.rects,a),e}),{}),i=l[t.placement],u=i.x,c=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=l}};var Am={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0!==l&&l,u=n.boundary,c=n.rootBoundary,s=n.altBoundary,d=n.padding,v=n.tether,f=void 0===v||v,p=n.tetherOffset,m=void 0===p?0:p,h=Dm(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Zp(t.placement),y=pm(t.placement),b=!y,w=cm(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,j="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,S="number"==typeof j?{mainAxis:j,altAxis:j}:Object.assign({mainAxis:0,altAxis:0},j),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?_p:Ep,D="y"===w?Vp:Dp,E="y"===w?"height":"width",F=C[w],T=F+h[V],I=F-h[D],M=f?-P[E]/2:0,A=y===Ip?x[E]:P[E],B=y===Ip?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?tm(L):{width:0,height:0},z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=z[V],W=z[D],K=sm(0,x[E],R[E]),U=b?x[E]/2-M-K-H-S.mainAxis:A-K-H-S.mainAxis,Y=b?-x[E]/2+M+K+W+S.mainAxis:B+K+W+S.mainAxis,$=t.elements.arrow&&um(t.elements.arrow),Z=$?"y"===w?$.clientTop||0:$.clientLeft||0:0,q=null!=(_=null==k?void 0:k[w])?_:0,X=F+Y-q,G=sm(f?Xp(T,F+U-q-Z):T,F,f?qp(I,X):I);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?_p:Ep,ee="x"===w?Vp:Dp,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[_p,Ep].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+S.altAxis,ue=ae?te+x[ne]+P[ne]-le-S.altAxis:oe,ce=f&&ae?function(e,t,n){var r=sm(e,t,n);return r>n?n:r}(ie,te,ue):sm(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function Bm(e,t,n){void 0===n&&(n=!1);var r,o=Up(t),a=Up(t)&&function(e){var t=e.getBoundingClientRect(),n=Gp(t.width)/e.offsetWidth||1,r=Gp(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=am(t),i=em(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==Hp(t)||Pm(l))&&(u=(r=t)!==Wp(r)&&Up(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):Cm(r)),Up(t)?((c=em(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=xm(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function Lm(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var Rm={placement:"bottom",modifiers:[],strategy:"absolute"};function zm(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),a=1;a1?t-1:0),o=1;o4&&void 0!==arguments[4]?arguments[4]:"value",l=t.getCurrentInstance(),i=l.emit,u=l.vnode,c=t.ref(),s=u.props||{},d=Object.prototype.hasOwnProperty.call(s,"modelValue")||Object.prototype.hasOwnProperty.call(s,"model-value"),v=Object.prototype.hasOwnProperty.call(s,a)||Object.prototype.hasOwnProperty.call(s,$o(a));return d?[n,function(e){i("update:modelValue",e);for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r0&&void 0!==arguments[0]&&arguments[0],t=new Date,n=t.getMonth()+1;n=n<10?"0".concat(n):n;var r="".concat(t.getFullYear(),"-").concat(n,"-").concat(t.getDate()),o="".concat(t.getHours(),":").concat(t.getMinutes(),":").concat(t.getSeconds());return e?[r,o].join(" "):r}function sh(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,r=e,o=0,a=0;if(!r)return"";for(var l=0;ll-n&&a1&&void 0!==arguments[1]?arguments[1]:"",n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(n){j(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(hh(n.children))):e.push(n)})),e.filter((function(e){return!(e&&(e.type===t.Comment||e.type===t.Fragment&&0===e.children.length||e.type===t.Text&&""===e.children.trim()))}))}function gh(e){var n=t.getCurrentInstance(),r=t.ref();return t.onMounted((function(){r.value=e(n)})),t.onUpdated((function(){var t=e(n);r.value!==t&&(r.value=t)})),r}var yh=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=gh((function(e){return e.parent.vnode.el.nextElementSibling})),l=t.ref();return t.watch(a,(function(){var t;null===(t=e.forwardRef)||void 0===t||t.call(e,a.value)})),mh(a,(function(e){var t=Ha(e,1)[0].contentRect;l.value=t})),t.watch(l,(function(e,t){var n,o;o=t,!(n=e)&&!o||n&&o&&!["width","height","x","y"].some((function(e){return n[e]!==o[e]}))||r("resize")})),function(){var e,n,r=hh(null===(e=o.default)||void 0===e?void 0:e.call(o));return r.length>1||(null===(n=r[0])||void 0===n?void 0:n.type)===t.Text?t.createVNode("span",null,[r]):r[0]}}}),bh=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return mh(gh((function(e){return e.vnode.el.children[0]})),(function(){r("resize")})),function(){return t.createVNode("div",{style:"position: absolute; top: 0px; left: 0px; width: 100%"},[o.default()])}}}),wh=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:ph.attach,forwardRef:Function},emits:["resize","contentMounted"],setup:function(e,n){var r=n.emit,o=n.attrs,a=n.slots,l=n.expose,i=t.ref(),u=t.ref(!1);function c(){r("resize")}return t.onMounted((function(){requestAnimationFrame((function(){u.value=e.visible}))})),t.watch((function(){return e.visible}),(function(t){t&&(u.value=e.visible)})),l({unmountContent:function(){u.value=!1}}),function(){var n,l,s=function(){return Fl(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(yh,{class:o.class,forwardRef:function(t){e.forwardRef(t),i.value=t},onResize:c},(l=n=a.default(),"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!t.isVNode(l)?n:{default:function(){return[n]}})),u.value&&t.createVNode(t.Teleport,{disabled:!s(),to:s()},{default:function(){return[t.createVNode(bh,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function Oh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ch(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(Yh(l.value)||Yh(u.value))?(Qm("Breadcrumb","\u9700\u8981\u8bbe\u7f6e itemsBeforeCollapse \u548c itemsAfterCollapse \u5c5e\u6027\u6765\u63a7\u5236\u7701\u7565\u53f7\u524d\u540e\u7684\u663e\u793a\u9879\u6570\u3002"),!1):!(r<=0||o<=r||i>=o)})),s=t.computed((function(){var e=n.value;if(!c.value)return e;var t=e.length,o=e.slice(0,l.value),a=e.slice(t-u.value,t);return[].concat(i(o),[{content:r.value,disabled:!0,isEllipsisItem:!0}],i(a))})),d=t.computed((function(){var e=n.value;if(!c.value)return[];var t=e.slice(l.value,e.length-u.value);return t.map((function(e,n){return Uh(Uh({},e),{},{isLast:n===t.length-1})}))}));return{getDisplayItems:s,getEllipsisItems:d}}(e,s,m),g=h.getDisplayItems;return function(){var e=g.value.map((function(e,n){return"object"===u(e)&&"content"in e?t.createVNode(Wh,t.mergeProps({key:n},e),{default:function(){return[e.content]}}):e}));return t.createVNode("div",{class:a.value},[e])}}}),Xh=pi(qh),Gh=pi(Wh),Jh={active:Boolean,content:{type:[String,Function],default:""},disabled:Boolean,divider:Boolean,prefixIcon:{type:Function},theme:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},value:{type:[String,Number,Object]},onClick:Function};function Qh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function eg(e){for(var t=1;t=e.maxHeight&&(i.value=!0));a.value=document.querySelector(".".concat(n.value,"__item")).scrollHeight+2}));var d=function(e){return H(e)?e(t.h):e},v=function(r,l){var i,f,p=[];return null===(i=r.forEach)||void 0===i||i.call(r,(function(r,i){var m=function(e){for(var t=1;t=0?h:i;m.children?(m.children=v(m.children,l+1),f=t.createVNode("div",{key:i},[t.createVNode(tg,{style:m.style,class:["".concat(n.value,"__item"),"".concat(n.value,"__item--suffix"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,isSubmenu:!0},{default:function(){return[t.createVNode("div",{class:"".concat(n.value,"__item-content")},[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)]),t.createVNode(u,{class:"".concat(n.value,"__item-direction"),size:"16"},null)]),t.createVNode("div",{class:["".concat(n.value,"__submenu-wrapper"),s({},"".concat(n.value,"__submenu-wrapper--").concat(e.direction),e.direction)],style:{position:"absolute",top:"".concat(g*a.value,"px")}},[t.createVNode("div",{class:["".concat(n.value,"__submenu"),s({},"".concat(n.value,"__submenu--disabled"),m.disabled)],style:{position:"static",maxHeight:"".concat(e.maxHeight,"px")},onScroll:function(e){return c(e,l+1)}},[t.createVNode("ul",null,[m.children])])])]}}),m.divider?t.createVNode(mf,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(tg,{style:m.style,class:["".concat(n.value,"__item"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,onClick:m.disabled||m.children?function(){return null}:function(t,n){return function(t){var n,r,o=t.data,a=t.context;null==o||null===(n=o.onClick)||void 0===n||n.call(o,o,a),null===(r=e.onClick)||void 0===r||r.call(e,o,a)}({data:m,context:n})}},{default:function(){return[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)])]}}),m.divider?t.createVNode(mf,null,null):null]),p.push(f)})),p};return function(){return t.createVNode("div",{class:[r.value,"".concat(r.value,"--").concat(e.direction),s({},"".concat(r.value,"--overflow"),i.value)],style:{maxHeight:"".concat(e.maxHeight,"px")},ref:l,onScroll:function(e){return c(e,0)}},[v(e.options,0)])}}});function ag(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lg(e){for(var t=1;t0?ig(m):null})})).filter((function(e){return!!e.content})):j(e)&&j(null===(n=e[0])||void 0===n?void 0:n.children)?ig(null===(r=e[0])||void 0===r?void 0:r.children):[]};function ug(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cg(e){for(var t=1;t0?e.options:ig(u)}))}(e),f=cg(cg(cg({},r),{},{disabled:e.disabled,placement:e.placement,trigger:e.trigger},ta(e.popupProps,["onVisibleChange","on-visible-change"])),{},{overlayInnerClassName:[a.value,null===(u=e.popupProps)||void 0===u?void 0:u.overlayInnerClassName]});return t.createVNode(Nh,t.mergeProps({destroyOnClose:!0,ref:l,visible:i.value,onVisibleChange:s,expandAnimation:!0},f),{default:function(){return[d]},content:function(){var n;return t.createVNode(t.Fragment,null,[o("panelTopContent"),null!==(n=v.value)&&void 0!==n&&n.length?t.createVNode(og,t.mergeProps(ta(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),dg=pi(sg),vg=pi(tg),fg=pi(og),pg={collapsed:Boolean,expanded:{type:Array,default:void 0},defaultExpanded:{type:Array,default:[]},expandMutex:Boolean,expandType:{type:String,default:"normal",validator:function(e){return!e||["normal","popup"].includes(e)}},logo:{type:Function},operations:{type:Function},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},width:{type:[String,Number,Array],default:"232px"},onChange:Function,onExpand:Function};function mg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hg(e,t){for(var n=0;n0)for(var n=0,r=e.children.length;n0){var o=Og(this.data,n);o&&!o.children.some((function(e){return e.value===r.value}))?o.children.push(r):this.cache.add(r)}else this.cache.add(r)}},{key:"select",value:function(e){var t=bg(this.data,e,[])||[];return t.push(e),t.filter((function(e){return null!=e}))}},{key:"expand",value:function(e){var t=this;if(this.expandValues.has(e))return this.expandValues.delete(e),i(this.expandValues);if(this.expandValues.add(e),!this.isMutex.value)return i(this.expandValues);var n=wg(this.data,e)||[],r=new Set(n.filter((function(t){var n;return(null===(n=t.children)||void 0===n?void 0:n.length)>0&&t.value!==e})).map((function(e){return e.value})));return this.expandValues.forEach((function(e){r.has(e)&&t.expandValues.delete(e)})),i(this.expandValues)}},{key:"getChild",value:function(e){var t=Og(this.data,e);return t?t.children:[]}}])}();function xg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pg(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Tg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1})),C=t.computed((function(){return c.valueMath.abs(n)?E(c.value+t):E(c.value+n)}},I=function(){setTimeout((function(){E(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Vg(a),c=Vg(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Vg(l),v=Vg(i);if("auto"===n){if(s-vt+c-d)return s+u-c+d}else{if("start"===n)return s-v;if("center"===n)return s+(u-c)/2;if("end"===n)return s+u-c+d}return t}(b(),c.value,e.scrollPosition))}),0)},M=function(){t.nextTick((function(){var e,t,n,r,o;g.value=(e=b(),t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,o=e.toRightBtn,Vg(t)-Vg(n)+Vg(r)-Vg(o))}))};t.watch([function(){return e.placement},function(){return e.panels}],M),t.watch([function(){return e.scrollPosition}],I),function(e,n){Wv("resize",e);var r=null;t.onMounted((function(){window.ResizeObserver&&n&&(r=new window.ResizeObserver(e)).observe(n)})),t.onBeforeUnmount((function(){var e;null===(e=r)||void 0===e||e.disconnect()}))}(po(M),d.value);var A=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t})},B=function(t){var n=t.e,r=t.value,o=t.index;e.onRemove({e:n,value:r,index:o})},L=function(t){null!=t&&t.$el&&(null==t?void 0:t.value)===e.value&&h.value!==t.$el&&(h.value=t.$el,I())},R=function(e){var n,r=null,o=[],a=function(e){var t=e.target;n=t,t.style.opacity="0.5"},l=function(e){e.target.style.opacity=""},i=function(e){e.preventDefault()},u=function(e){var t=Mg(e.target,r.children);t&&t!==n&&t.draggable&&(t.firstChild.style.outline="1px dashed #0052d9",o.includes(t)||o.push(t))},c=function(e){for(var t=e.target,n=0,r=o;nl&&(o=r.children[i+1]);var u="card"===e.theme?l:l-1,c="card"===e.theme?i:i-1;null===(a=e.onDragSort)||void 0===a||a.call(e,{currentIndex:u,current:e.panels[u].value,targetIndex:c,target:e.panels[c].value})}};return t.onUnmounted((function(){r&&(r.removeEventListener("dragstart",a),r.removeEventListener("dragend",l),r.removeEventListener("dragover",i),r.removeEventListener("dragenter",u),document.removeEventListener("dragleave",c),document.removeEventListener("mousemove",c),r.removeEventListener("drop",s))})),{setNavsWrap:function(e){(r=e).addEventListener("dragstart",a,!1),r.addEventListener("dragend",l,!1),r.addEventListener("dragover",i,!1),r.addEventListener("dragenter",u,!1),document.addEventListener("dragleave",c,!1),document.addEventListener("mousemove",c,!1),r.addEventListener("drop",s,!1)}}}(e),z=R.setNavsWrap;t.onMounted((function(){z(v.value),M(),I()}));var W=function(){return e.panels.map((function(n,r){var o,a;a=null!=n&&null!==(o=n.children)&&void 0!==o&&o.label?n.children.label():H(n.label)?n.label(t.h):n.label||"\u9009\u9879\u5361".concat(r+1);var l=e.dragSort;return l&&!1===n.draggable&&(l=n.draggable),t.createVNode(Dg,{ref:L,draggable:l,key:n.value,index:r,theme:e.theme,size:e.size,placement:e.placement,label:a,active:n.value===e.value,disabled:e.disabled||n.disabled,removable:n.removable,value:n.value,onClick:function(t){return function(t,n){var r=n.value;if(n.disabled||e.value===r)return!1;e.onChange(r)}(0,n)},onRemove:B},null)}))};return function(){return t.createVNode("div",{ref:d,class:["".concat(n.value,"__nav")],style:P.value},[[t.createVNode("div",{ref:f,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--left")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[O.value?t.createVNode("div",{class:S.value,onClick:function(){return F("prev")}},[t.createVNode(o,null,null)]):null]}})]),t.createVNode("div",{ref:p,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--right")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[C.value?t.createVNode("div",{ref:m,class:k.value,onClick:function(){return F("next")}},[t.createVNode(a,null,null)]):null]}}),e.addable?t.createVNode("div",{class:N.value,onClick:A},[t.createVNode(l,null,null)]):null,y.value&&e.action])],(r=W(),t.createVNode("div",{class:_.value},[t.createVNode("div",{class:V.value,onWheel:T},[t.createVNode("div",{ref:v,class:D.value,style:x.value},["card"!==e.theme&&t.createVNode(Eg,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),Rg=t.defineComponent({name:"TTabs",props:_g,setup:function(e){var n=Qa("tabs"),r=Qa(),o=ei(),a=t.toRefs(e),l=Ha(qm(a.value,a.modelValue,e.defaultValue||"",e.onChange),2),i=l[0],u=l[1];t.provide("tabs",{value:i});var c=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t.e})},d=function(e){u(e)},v=function(t){var n,r=t.e,o=t.value,a=t.index;null===(n=e.onRemove)||void 0===n||n.call(e,{value:o,index:a,e:r})},f=function(){var e=o("default");if(!e)return[];var t=function(e){return e.map((function(e){return e.children&&j(e.children)?t(e.children):e})).flat().filter((function(e){return"TTabPanel"===e.type.name}))};return t(e)},p=function(){var n,a=(null!==(n=e.list)&&void 0!==n&&n.length?e.list:f())||[],l=o("action"),u=a.map((function(e){var t=e;return e.props&&Object.keys(e.props).forEach((function(n){t[n]=e.props[n]})),t})),p={theme:e.theme,value:i.value,size:e.size,disabled:e.disabled,placement:e.placement,scrollPosition:e.scrollPosition,addable:e.addable,panels:u,dragSort:e.dragSort,action:l};return t.createVNode("div",{class:s(s({},"".concat(r.value,"-tabs__header"),!0),"".concat(r.value,"-is-").concat(e.placement),!0)},[t.createVNode(Lg,t.mergeProps(p,{onDragSort:e.onDragSort,onChange:d,onAdd:c,onRemove:v}),null)])},m=function(){var n,o=f();return null!==(n=e.list)&&void 0!==n&&n.length?e.list.map((function(e){return t.createVNode(Ng,t.mergeProps(e,{onRemove:v}),null)})):o&&o.length?t.createVNode("div",{class:["".concat(r.value,"-tabs__content")]},[o]):void 0};return function(){return t.createVNode("div",{class:[n.value]},["bottom"!==e.placement?[p(),m()]:[m(),p()]])}}}),zg=pi(Rg),Hg=pi(Ng),Wg={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Kg=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=Qa("fake-arrow"),r=t.computed((function(){return[n.value,s({},"".concat(n.value,"--active"),e.isActive),e.overlayClassName]}));return function(){return t.createVNode("svg",{class:r.value,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:e.overlayStyle},[t.createVNode("path",{d:"M3.75 5.7998L7.99274 10.0425L12.2361 5.79921",stroke:"black","stroke-opacity":"0.9","stroke-width":"1.3"},null)])}}});function Ug(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Yg=t.defineComponent({name:"TSubmenu",props:Wg,setup:function(e,n){var r=n.attrs,o=n.slots,a=Qa(),l=ei(),u=ni(),c=t.getCurrentInstance(),d=t.inject("TdMenu"),v=t.toRefs(e).value,f=d.theme,p=d.activeValues,m=d.expandValues,h=d.isHead,g=d.open,y=t.inject("TdSubmenu",{}),b=y.setSubPopup,w=y.closeParentPopup,O=t.computed((function(){return r.expandType||d.mode.value})),C=t.ref([]),x=t.computed((function(){return p.value.indexOf(e.value)>-1})),P=t.ref(!1),j=t.ref(!1),S=t.computed((function(){return"light"===f.value?"#E7E7E7":"#383838"})),k=t.computed((function(){var t;return"popup"===O.value?P.value:!!m&&(null===(t=m.value)||void 0===t?void 0:t.includes(e.value))})),N=t.ref(!1),_=t.ref(),V=t.ref(),D=t.ref(),E=Qa("slide-down");wi(D,S);var F=t.computed((function(){return["".concat(a.value,"-submenu"),s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value)]})),T=t.computed((function(){var t;return["".concat(a.value,"-menu__popup"),"".concat(a.value,"-is-").concat(h?"horizontal":"vertical"),s({},"".concat(a.value,"-is-opened"),P.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayInnerClassName]})),I=t.computed((function(){var t;return["".concat(a.value,"-menu--").concat(f.value),h&&"".concat(a.value,"-is-head-menu"),s({},"".concat(a.value,"-menu-is-nested"),N.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayClassName]})),M=t.computed((function(){return["".concat(a.value,"-menu__item"),"".concat(a.value,"-menu__item-spacer"),"".concat(a.value,"-menu__item-spacer--").concat(h&&!N.value?"bottom":"right"),s(s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value),"".concat(a.value,"-is-active"),x.value)]})),A=t.computed((function(){return["".concat(a.value,"-menu__sub"),s({},"".concat(a.value,"-is-opened"),k.value)]})),B=t.computed((function(){return[s({},"".concat(a.value,"-fake-arrow--active"),k.value)]}));t.provide("TdSubmenu",t.reactive({value:v,addMenuItem:function(e){C.value.push(e),y&&y.addMenuItem(e)},setSubPopup:function(e){V.value=e},closeParentPopup:function(e){var t=e.relatedTarget;W(t)||U(e)}}));var L=function(e){H(b)&&b(e)},R=function(){e.disabled||setTimeout((function(){P.value||(g(e.value),t.nextTick().then((function(){L(_.value)}))),P.value=!0}),0)},z=function(e){return null==e?void 0:e.classList.contains("".concat(a.value,"-menu__popup"))},W=function(e){return!!e&&(z(e)||W(e.parentElement))},K=function(e){setTimeout((function(){var t=z(e.relatedTarget);j.value||t||(P.value=!1)}),0)},U=function(e){var t=e.toElement,n=e.relatedTarget,r=t||n;if(r!==V.value){for(var o=function(e){return e===D.value};null!==r&&r!==document&&!o(r);)r=r.parentNode;j.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){j.value=!0},$=function(){e.disabled||g(e.value)},Z=function(n){var r,o="right-top";!N.value&&h&&(o="bottom-left");var l=t.createVNode("div",{ref:_,class:["".concat(a.value,"-menu__spacer"),"".concat(a.value,"-menu__spacer--").concat(!N.value&&h?"top":"left")],onMouseenter:Y,onMouseleave:U},[t.createVNode("ul",{class:"".concat(a.value,"-menu__popup-wrapper")},[u("default","content")])]),c={content:function(){return l}},d=t.createVNode(Nh,t.mergeProps(null!==(r=e.popupProps)&&void 0!==r?r:{},{overlayInnerClassName:i(T.value),overlayClassName:i(I.value),visible:P.value,placement:o}),function(e){for(var t=1;t0&&(s=h?(e=l("icon"),n=[t.createVNode("div",{ref:D,class:M.value,onClick:$},[e,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})])]),t.createVNode("ul",{style:"opacity: 0; width: 0; height: 0; overflow: hidden"},[u("default","content")])],r="popup"===O.value&&N.value,i=[e,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Kg,{overlayClassName:/menu/i.test(null==c?void 0:c.parent.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(r?-90:0,"deg)")}},null)],"normal"===O.value?n:Z(i)):function(){for(var e=o.content||o.default,n=l("icon"),r=u("default","content"),i=c.parent,s=44;i&&"TMenu"!==i.type.name;)"TSubmenu"===i.type.name&&(s+=16),i=i.parent;var d={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},v=d.beforeEnter,f=d.enter,p=d.afterEnter,m=d.beforeLeave,h=d.leave,g=d.afterLeave,y="popup"===O.value&&N.value,b=[t.createVNode("div",{ref:D,class:M.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),e&&t.createVNode(Kg,{overlayClassName:B.value,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)")}},null)]),t.createVNode(t.Transition,{name:E.value,onBeforeEnter:v,onEnter:f,onAfterEnter:p,onBeforeLeave:m,onLeave:h,onAfterLeave:g},{default:function(){return[t.withDirectives(t.createVNode("ul",{class:A.value,style:{"--padding-left":"".concat(s,"px")}},[r]),[[t.vShow,k.value]])]}})],w=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Kg,{overlayClassName:/menu/i.test(i.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)"),"margin-left":"auto"}},null)];return"normal"===O.value?b:Z(w)}()),t.createVNode("li",t.mergeProps({class:F.value},d),[s])}}});function $g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Zg=t.defineComponent({name:"THeadMenu",props:Sg,setup:function(e,n){var r,o,a,l,u=Qa(),c=t.getCurrentInstance().proxy;t.watchEffect((function(){n.slots.options&&Jm("TMenu","`options` slot is going to be deprecated, please use `operations` for slot instead.")}));var d=t.toRefs(e),v=d.value,f=d.modelValue,p=d.expanded,m=Ha(qm(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ha(Um(p,e.defaultExpanded,e.onExpand,"expanded"),2),b=y[0],w=y[1],O=t.ref([]),C=t.computed((function(){return e.theme})),x=t.computed((function(){return["".concat(u.value,"-menu"),"".concat(u.value,"-head-menu"),"".concat(u.value,"-menu--").concat(e.theme)]})),P=t.ref(e.expandType),S=t.reactive([]),k=new Cg({isMutex:!0,expandValues:b.value});t.provide("TdMenu",{mode:P,theme:C,vMenu:k,isHead:!0,expandValues:b,activeValue:h,activeValues:O,select:function(e){g(e)},open:function(e,t){var n=i(b.value),r=n.indexOf(e);"popup"===P.value?"add"===t?-1===r&&n.push(e):"remove"===t&&n.splice(r,1):"normal"===P.value&&void 0!==e&&(n.splice(0,1),-1===r&&n.push(e)),w(n)}});var N=function(e){g(e),V(e)},_=function(e){var t=k.getChild(e);S.length=0,S.push.apply(S,i(t))};t.watch(b,(function(e){"normal"===P.value&&_(e[0])}));t.watch(h,(function(e){O.value=k.select(e)})),t.watch((function(){return e.expandType}),(function(e){P.value=e})),t.onMounted((function(){var e;O.value=k.select(h.value),(null===(e=b.value)||void 0===e?void 0:e.length)>0&&_(b.value[0])}));var V=function(e){var t,n=S.find((function(t){return t.value===e}));null===(t=n.onClick)||void 0===t||t.call(n,{value:e});var r=n.to,o=n.href,a=n.replace;o&&(window.location.href=n.href);var l=n.router||c.$router;r&&l&&(a?l.replace(r):l.push(r))},D=t.ref(),E=t.ref(),F=t.ref(),T=t.ref(),I=function(e,t){e.forEach((function(e){var n,r,o,a,l=null===(n=e.props)||void 0===n?void 0:n.value;"TSubmenu"!==(null===(r=e.type)||void 0===r?void 0:r.name)&&"TMenuItem"!==(null===(o=e.type)||void 0===o?void 0:o.name)||k.add(function(e){for(var t=1;tNumber(r)?"error":""}return""})),o=t.computed((function(){return e.value.status||r.value})),a=function(){var t,n;null===(t=(n=e.value).onValidate)||void 0===t||t.call(n,{error:r.value?"exceed-maximum":void 0})};return t.watch(r,a),t.onMounted((function(){r.value&&a()})),{tStatus:o,limitNumber:n,getValueByLimitNumber:function(t){var n,r,o,a=e.value,l=a.allowInputOverMax,u=a.maxlength,c=a.maxcharacter;if(!u&&!c||l||!t)return t;if(u)return n=t,r=u,i(null!=o?o:"").slice().length===r?o||"":i(null!=n?n:"").slice(0,r).join("");if(c){var s=il(t,c);if(E(s))return s.characters}}}}function vy(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function fy(e,n){var r=t.toRefs(e),o=r.value,a=r.modelValue,l=t.ref(),i=t.ref(!1),u=t.ref(),c=t.ref(null),s=t.ref(),d=Oi(),v=ly(),f=Ha(qm(o,a,e.defaultValue,e.onChange),2),p=f[0],m=f[1],h=t.ref(!1),g=t.ref(!1),y=t.ref(e.type),b=t.ref(null),w=dy(t.computed((function(){return{value:[void 0,null].includes(p.value)?void 0:String(p.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))),O=w.limitNumber,C=w.getValueByLimitNumber,x=w.tStatus,P=t.computed((function(){return(p.value&&!d.value&&e.clearable&&!v.value||e.showClearIconOnEmpty)&&h.value})),j=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=b.value;if(t){var n=String(e);t.value&&t.value!==n&&(t.value=n)}},k=function(n){var r,o=n.target.value;"number"!==e.type&&"string"==typeof p.value&&o.length>(null===(r=p.value)||void 0===r?void 0:r.length)&&(o=C(o)),m(vy(o,e.type),{e:n,trigger:"input"}),t.nextTick((function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?S(o):S(p.value)}))},N=t.inject(sy,void 0);return t.watch((function(){return e.autofocus}),(function(e){!0===e&&t.nextTick((function(){var e;null===(e=b.value)||void 0===e||e.focus()}))}),{immediate:!0}),t.watch(p,(function(t,n){var r="number"===e.type;void 0===n&&e.format&&"number"!=typeof t&&!r?l.value=e.format(t):l.value=t;var o="number"==typeof t?t:C(t);o===t||r||m(o,{trigger:"initial"})}),{immediate:!0}),t.watch((function(){return e.type}),(function(e){y.value=e}),{immediate:!0}),n({inputRef:b,focus:j,blur:function(){var e;g.value=!1,null===(e=b.value)||void 0===e||e.blur()}}),{isHover:h,focused:g,renderType:y,showClear:P,inputRef:b,clearIconRef:c,inputValue:l,isComposition:i,compositionValue:u,limitNumber:O,tStatus:x,emitFocus:function(t){var n;h.value&&g.value||(l.value=p.value,e.disabled||(g.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,p.value,{e:t})))},formatAndEmitBlur:function(t){var n;(function(){var e,t=s.value;if(!(t&&t.tagName&&null!==(e=c.value)&&void 0!==e&&e.$el&&["path","svg"].includes(t.tagName)))return!1;for(;t;){var n;if((null===(n=c.value)||void 0===n?void 0:n.$el)===t)return!0;t=t.parentNode}return!1})()?j():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,p.value,{e:t}),null==N||N.handleBlur())},onHandleCompositionend:function(t){var n;i.value=!1,u.value="",k(t),null===(n=e.onCompositionend)||void 0===n||n.call(e,String(p.value),{e:t})},onHandleCompositionstart:function(t){var n;i.value=!0;var r=t.currentTarget.value;u.value=r,null===(n=e.onCompositionstart)||void 0===n||n.call(e,String(p.value),{e:t})},onRootClick:function(t){var n,r;null===(n=b.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,{e:t})},emitPassword:function(){if(!d.value){var e="password"===y.value?"text":"password";y.value=e}},handleInput:function(e){var t=e.inputType&&"insertCompositionText"===e.inputType,n=e.currentTarget.value;t||i.value?u.value=n:k(e)},emitClear:function(t){var n,r=t.e,o="number"===e.type?void 0:"";m(o,{e:r,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onClearIconMousedown:function(e){s.value=e.target},innerValue:p}}function py(e,n,r){var o=t.toRefs(e),a=o.autoWidth,l=o.placeholder,i=t.ref(null),u=t.ref(null),c=function(){i.value&&n.value&&(n.value.style.width=getComputedStyle(i.value).width)};mh(i,(function(){a.value&&(u.value=setTimeout((function(){c(),clearTimeout(u.value)}),100))})),t.onBeforeUnmount((function(){clearTimeout(u.value)}));return t.onMounted((function(){a.value&&t.watch([r,l],(function(){a.value&&t.nextTick((function(){c()}))}),{immediate:!0})})),{inputPreRef:i}}var my=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function hy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gy(e){for(var t=1;t1)return!1;if(/(e|E)+/.test(e[o])&&(t+=1)>1)return!1;if("-"===e[o]&&(n+=1)>2)return!1}return!0}function Sy(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(Qm("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function ky(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=Sy(e,n),o=Sy(t,n),a=r.length>o.length,l=a?r:o,i=a?o:r,u=[],c=[],s=n?0:l.length-i.length,d=n?i.length:l.length,v=d-1;v>=0;v--){var f=v-s,p=Number(l[v])+(Number(i[f])||0)+(c[v]||0);p>=10&&(c[v-1]=1),u.unshift(String(p%10))}return c[-1]&&u.unshift("1"),n?u.concat(l.slice(d,l.length)).join(""):u.join("")}function Ny(e,t){var n=Ha(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ha(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=ky(o,c);if("0"===l&&"0"===d)return v;var f=Sy(l,!0),p=Sy(d,!0),m=ky(f,p,!0),h=m.length;return h>f.length&&h>p.length?[Sy(ky(v,"1")),Sy(m.slice(1),!0)].filter((function(e){return e})).join("."):[Sy(v),Sy(m,!0)].filter((function(e){return e})).join(".")}function _y(e,t){var n=Sy(e),r=Sy(t);if(n.length===r.length){for(var o=0,a=n.length;or[o])return 1;if(n[o]r.length?1:-1}function Vy(e,t){for(var n=e&&"0"!==e?e.replace(/0+$/,""):"0",r=t&&"0"!==t?t.replace(/0+$/,""):"0",o=0,a=Math.max(n.length,r.length);o(r[o]||0))return 1;if((n[o]||0)<(r[o]||0))return-1}return 0}function Dy(e){var t=Ha(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ha(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ha(i.split("e"),1)[0];if(u>c.length){var s=Py(u-c.length);return n.replace(/(^0+|\.)/g,"")+s}var d=a.replace(/^0+/,"")+c.slice(0,u),v=c.slice(u);return v?[d,v].join("."):d}function Ey(e){return[-1/0,1/0].includes(Number(e))}function Fy(e){return Number(e)Number.MIN_SAFE_INTEGER}function Ty(e,t,n){var r=Fy(e)&&Fy(t)&&!n,o=Ey(e)||Ey(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ha(Dy(e).split("."),2),r=n[0],o=n[1],a=Ha(Dy(t).split("."),2),l=a[0],i=a[1],u=_y(r.replace("-",""),l.replace("-","")),c=r.includes("-"),s=l.includes("-");return c&&!s?-1:!c&&s?1:c&&s?0===u?0:u>0?-1:1:0===u?Vy(o,i):u}(String(e),String(t))}function Iy(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=Sy(e),i=Sy(t),u=_y(l,i)>0,c=u?l:i,s=u?i:l,d=[],v=[],f=o?0:c.length-s.length,p=o?s.length:c.length,m=p-1;m>=0;m--){var h=m-f,g=Number(c[m])-(Number(s[h])||0)-(v[m]||0);g<0&&(v[m-1]=1,g+=10),d.unshift(String(g))}if(o)return d.concat(c.slice(p,c.length)).join("");var y=d.join("");return a||(y=y.replace(/^0+/,"")),Sy(u?y:"-".concat(y))}function My(e,t){if(e===t)return"0";var n=Ty(e,t,!0)>0,r=n?t:e,o=Ha((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ha(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=Iy(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=Iy(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ha(e.toString().split("."),2),r=n[0],o=n[1];if(0===t)return r;if(o){var a=o.slice(0,t);return o.length1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Number.isNaN(Number(e)))return"";if(!r)return function(e,t){var n;return E(t)?Ay(e,t.places,null===(n=t.enableRound)||void 0===n||n):Ay(e,t,!0)}(Number(e),n);var o=E(n)?n.places:n,a=!E(n)||(null===(t=n.enableRound)||void 0===t||t);if(!Do(e))return String(e);var l=Ha(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,Py(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Ny(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Ny(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(Py(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=Py(o))}return[i,c].join(".")}function Ly(e,t){var n,r;if(!e||!t)return(e||0)+(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0;if(!o&&!a)return e+t;var l=e,i=t,u=Math.abs(o-a),c=Math.pow(10,Math.max(o,a));if(u>0){var s=Math.pow(10,u);o>a?(l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""))*s):(l=Number(e.toString().replace(".",""))*s,i=Number(t.toString().replace(".","")))}else l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""));return(l+i)/c}function Ry(e,t){var n,r;if(!e||!t)return(e||0)-(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0,l=Math.pow(10,Math.max(o,a));return Number(((e*l-t*l)/l).toFixed(o>=a?o:a))}function zy(e){var t=e.op,n=e.step,r=e.lastValue,o=e.max,a=e.min,l=e.largeNumber;if(Number(n)<=0)return Qm("InputNumber","step must be larger than 0."),r;var i,u,c,s=Ho(n)?String(n):n;return"add"===t?l&&Do(r)?i=function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r)return My(t,e.slice(1));if(n&&r){var o=Ny(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?My(e,t.slice(1)):Ny(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ry(c,Math.abs(u)):u<0&&c<0?-1*Ly(Math.abs(u),Math.abs(c)):u>0&&c<0?Ry(u,Math.abs(c)):Ly(u,c)):"reduce"===t&&(i=l&&Do(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Ny(e.slice(1),t);return"-".concat(o)}return n&&r?My(t.slice(1),e.slice(1)):!n&&r?Ny(e,t.slice(1)):My(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Ly(Math.abs(e),t):e<0&&t<0?Ry(Math.abs(t),Math.abs(e)):e>0&&t<0?Ly(e,Math.abs(t)):Ry(e,t)}(Number(r||0),Number(n))),Uo(r)&&(i=function(e,t){if(""!==e){var n=t.max,r=t.min,o=t.lastValue,a=t.largeNumber;return jy(e)?!a||!Do(n)&&n!==1/0||!Do(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Ty(n,e,a)<0?n:Ty(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function Hy(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Uo(n)&&!Uo(t))return t&&Ho(n)&&Gm("InputNumber","largeNumber value must be a string."),Ty(n,r,t)>0?"exceed-maximum":Ty(n,o,t)<0?"below-minimum":void 0}var Wy=["-",".","e","E","+"];function Ky(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!["",null,void 0].includes(e)&&/\d+/.test(e)){var n=t.decimalPlaces,r=t.largeNumber,o=t.isToFixed,a=e.replace(/[.|+|\-|e]$/,"");return r&&(a=Dy(a)),void 0!==n&&(a=By(a,n,r)),r||o?a:parseFloat(a)}}function Uy(e){var n=Km(),r=n.classPrefix,o=n.sizeClassNames,a=n.statusClassNames,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ha(qm(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=Oi(),y=ly(),b=t.ref(),w=t.computed((function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&Do(e)?Ty(e,t,n)>0:e>t)}(f.value,e.min,e.largeNumber)})),O=t.computed((function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&Do(e)?Ty(e,t,n)<0:e1)return!1;if((null===(r=e.match(/e/g))||void 0===r?void 0:r.length)>1)return!1;var o=e.slice(1),a=o.match(/(\+|-)/g);return!(a&&(!/e(\+|-)/i.test(o)||a.length>1)||!(t&&jy(e)||!Number.isNaN(Number(e))||Wy.includes(e.slice(-1)))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}(a,e.largeNumber))if(h.value=a,e.largeNumber)p(a,{type:"input",e:o});else if(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))}(String(a),Number(f.value))){var l=""===a?void 0:Number(a);p(l,{type:"input",e:o})}},isReadonly:y}}function Yy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var $y=t.defineComponent({name:"TInputNumber",props:xy,setup:function(e,n){var r=up({AddIcon:zi,RemoveIcon:Vd,ChevronDownIcon:Au,ChevronUpIcon:fc}),o=r.AddIcon,a=r.RemoveIcon,l=r.ChevronDownIcon,i=r.ChevronUpIcon,u=Uy(e),c=u.inputRef;return n.expose(function(e){for(var t=1;t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=wb(e,360),t=wb(t,100),n=wb(n,100),0===t)r=o=a=n;else{var i=n<.5?n*(1+t):n+t-n*t,u=2*n-i;r=l(u,i,e+1/3),o=l(u,i,e),a=l(u,i,e-1/3)}return{r:255*r,g:255*o,b:255*a}}(e.h,r,a),l=!0,i="hsl"),e.hasOwnProperty("a")&&(n=e.a));var u,c,s;return n=bb(n),{ok:l,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}function tb(e,t,n){e=wb(e,255),t=wb(t,255),n=wb(n,255);var r,o,a=Math.max(e,t,n),l=Math.min(e,t,n),i=(a+l)/2;if(a==l)r=o=0;else{var u=a-l;switch(o=i>.5?u/(2-a-l):u/(a+l),a){case e:r=(t-n)/u+(t>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(eb(r));return a}function hb(e,t){t=t||6;for(var n=eb(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(eb({h:r,s:o,v:a})),a=(a+i)%1;return l}eb.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=bb(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=nb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=nb(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=tb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=tb(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return rb(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,o){var a=[xb(Math.round(e).toString(16)),xb(Math.round(t).toString(16)),xb(Math.round(n).toString(16)),xb(jb(r))];if(o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*wb(this._r,255))+"%",g:Math.round(100*wb(this._g,255))+"%",b:Math.round(100*wb(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*wb(this._r,255))+"%, "+Math.round(100*wb(this._g,255))+"%, "+Math.round(100*wb(this._b,255))+"%)":"rgba("+Math.round(100*wb(this._r,255))+"%, "+Math.round(100*wb(this._g,255))+"%, "+Math.round(100*wb(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(yb[rb(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+ob(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=eb(e);n="#"+ob(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return eb(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(ub,arguments)},brighten:function(){return this._applyModification(cb,arguments)},darken:function(){return this._applyModification(sb,arguments)},desaturate:function(){return this._applyModification(ab,arguments)},saturate:function(){return this._applyModification(lb,arguments)},greyscale:function(){return this._applyModification(ib,arguments)},spin:function(){return this._applyModification(db,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(mb,arguments)},complement:function(){return this._applyCombination(vb,arguments)},monochromatic:function(){return this._applyCombination(hb,arguments)},splitcomplement:function(){return this._applyCombination(pb,arguments)},triad:function(){return this._applyCombination(fb,[3])},tetrad:function(){return this._applyCombination(fb,[4])}},eb.fromRatio=function(e,t){if("object"==Gy(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Pb(e[r]));e=n}return eb(e,t)},eb.equals=function(e,t){return!(!e||!t)&&eb(e).toRgbString()==eb(t).toRgbString()},eb.random=function(){return eb.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},eb.mix=function(e,t,n){n=0===n?0:n||50;var r=eb(e).toRgb(),o=eb(t).toRgb(),a=n/100;return eb({r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a})},eb.readability=function(e,t){var n=eb(e),r=eb(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},eb.isReadable=function(e,t,n){var r,o,a=eb.readability(e,t);switch(o=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":o=a>=4.5;break;case"AAlarge":o=a>=3;break;case"AAAsmall":o=a>=7}return o},eb.mostReadable=function(e,t,n){var r,o,a,l,i=null,u=0;o=(n=n||{}).includeFallbackColors,a=n.level,l=n.size;for(var c=0;cu&&(u=r,i=eb(t[c]));return eb.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,eb.mostReadable(e,["#fff","#000"],n))};var gb=eb.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},yb=eb.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(gb);function bb(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function wb(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Ob(e){return Math.min(1,Math.max(0,e))}function Cb(e){return parseInt(e,16)}function xb(e){return 1==e.length?"0"+e:""+e}function Pb(e){return e<=1&&(e=100*e+"%"),e}function jb(e){return Math.round(255*parseFloat(e)).toString(16)}function Sb(e){return Cb(e)/255}var kb,Nb,_b,Vb=(Nb="[\\s|\\(]+("+(kb="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+kb+")[,|\\s]+("+kb+")\\s*\\)?",_b="[\\s|\\(]+("+kb+")[,|\\s]+("+kb+")[,|\\s]+("+kb+")[,|\\s]+("+kb+")\\s*\\)?",{CSS_UNIT:new RegExp(kb),rgb:new RegExp("rgb"+Nb),rgba:new RegExp("rgba"+_b),hsl:new RegExp("hsl"+Nb),hsla:new RegExp("hsla"+_b),hsv:new RegExp("hsv"+Nb),hsva:new RegExp("hsva"+_b),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function Db(e){return!!Vb.CSS_UNIT.exec(e)}var Eb={closable:Boolean,color:{type:String,default:""},content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function,default:void 0},maxWidth:{type:[String,Number]},shape:{type:String,default:"square",validator:function(e){return!e||["square","round","mark"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","warning","danger","success"].includes(e)}},title:{type:String,default:""},variant:{type:String,default:"dark",validator:function(e){return!e||["dark","light","outline","light-outline"].includes(e)}},onClick:Function,onClose:Function},Fb=t.defineComponent({name:"TTag",props:Eb,setup:function(e){var n=Ga("tag").globalConfig,r=Qa("tag"),o=up({CloseIcon:xc}).CloseIcon,a=ei(),l=ni(),i=el().SIZE,u=t.getCurrentInstance().vnode,c=t.computed((function(){return["".concat(r.value),"".concat(r.value,"--").concat(e.theme),"".concat(r.value,"--").concat(e.variant),s(s(s(s({},"".concat(r.value,"--ellipsis"),e.maxWidth),"".concat(r.value,"--close"),e.closable),"".concat(r.value,"--disabled"),e.disabled),i.value[e.size],"medium"!==e.size),"square"!==e.shape&&"".concat(r.value,"--").concat(e.shape)]})),d=t.computed((function(){return f()})),v=t.computed((function(){return e.maxWidth?{maxWidth:isNaN(Number(e.maxWidth))?String(e.maxWidth):"".concat(e.maxWidth,"px")}:{}})),f=function(){var t=e.color,n=e.variant;if(!t)return{};var r,o,a,l,i={color:eb(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=eb(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(t){if(e.maxWidth){var n=u.props||{};return Reflect.has(n,"title")?n.title||void 0:t||void 0}}(Do(s)?s:"");return t.createVNode("div",{class:c.value,style:d.value,onClick:p},[f,t.createVNode("span",{class:e.maxWidth?"".concat(r.value,"--text"):void 0,style:v.value,title:m},[s]),!e.disabled&&i])}}}),Tb={checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,checkedProps:{type:Object},content:{type:[String,Number,Array,Function]},default:{type:[String,Function]},disabled:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},uncheckedProps:{type:Object},value:{type:[String,Number]},onChange:Function,onClick:Function},Ib=/^ArrowDown$/i,Mb=/^ArrowUp$/i,Ab=/^ArrowLeft$/i,Bb=/^ArrowRight$/i,Lb=/^Escape$/i,Rb=/^Space$/i,zb=/^Enter$/i,Hb=/^(Shift|ShiftLeft|ShiftRight)$/i,Wb=/^KeyC$/i,Kb=/^(KeyA|KeyL)$/i,Ub=/^(Enter|Space)$/i;function Yb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $b(e){for(var t=1;ts&&fv))return}null==r||r({currentIndex:a.value,current:l,target:n,targetIndex:t}),a.value=t}}};if(!n)return{};function s(e,t,n){a.value=t,l.value=n;var r=e.target;if(o&&r){var i=r.getBoundingClientRect(),c=i.x,s=i.width;u.nodeX=c,u.nodeWidth=s,u.mouseX=e.clientX}}function d(){i.value=!0}function v(){i.value,i.value=!1,a.value=-1,l.value=null}return{onDragStart:s,onDragOver:c,onDrop:d,onDragEnd:v,getDragProps:function(e,t){return n?{draggable:!0,onDragstart:function(n){s(n,e,t)},onDragover:function(n){c(n,e,t)},onDrop:function(){d()},onDragend:function(){v()}}:{}},dragging:-1!==a.value}}(rw(rw({},e),{},{sortOnDraggable:e.dragSort,onDragOverCheck:{x:!0,targetClassNameRegExp:new RegExp("^".concat(A.value,"-tag"))}})),R=L.getDragProps,z=function(e){var n=t.ref(),r=t.toRefs(e),o=r.excessTagsDisplayType,a=r.readonly,l=r.disabled,i=t.ref(0),u=t.ref(),c=t.ref(),s=t.ref(!1),d=function(e){var t=e.children[0];u.value=t},v=function(){i.value=u.value.scrollWidth-u.value.clientWidth},f=function(e){var t;H(null===(t=u.value)||void 0===t?void 0:t.scroll)&&u.value.scroll({left:e,behavior:"smooth"})},p=function(){v(),f(i.value),setTimeout((function(){s.value=!0}),200)};return t.onMounted((function(){var e,t=null===(e=n.value)||void 0===e?void 0:e.$el;t&&d(t)})),t.onUnmounted((function(){clearTimeout(c.value)})),{tagInputRef:n,scrollElement:u,scrollDistance:i,scrollTo:f,scrollToRight:p,scrollToLeft:function(){f(0)},updateScrollElement:d,updateScrollDistance:v,onWheel:function(e){var t=e.e;if(!a.value&&!l.value&&u.value)if(t.deltaX>0){var n=Math.min(u.value.scrollLeft+120,i.value);f(n)}else{var r=Math.max(u.value.scrollLeft-120,0);f(r)}},scrollToRightOnEnter:function(){"scroll"===o.value&&(c.value=setTimeout((function(){p(),clearTimeout(c.value)}),100))},scrollToLeftOnLeave:function(){"scroll"===o.value&&(s.value=!1,f(0),clearTimeout(c.value))},isScrollable:s}}(e),W=z.scrollToRight,K=z.onWheel,U=z.scrollToRightOnEnter,Y=z.scrollToLeftOnLeave,$=z.tagInputRef,Z=z.isScrollable,q=function(e){var n=ei(),r=Qa(),o=t.toRefs(e),a=o.value,l=o.modelValue,u=o.onRemove,c=o.max,s=o.minCollapsedNum,d=o.size,v=o.tagProps,f=o.getDragProps,p=Ha(qm(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.ref(),y=Oi(),b=ly(),w=function(e){var t,n=i(m.value),r=Ha(n.splice(e.index,1),1)[0];h(n,tw(tw({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,tw(tw({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:m,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:w,onInnerEnter:function(t,n){var r,o,a=t?String(t).trim():"",l=c&&(null===(r=m.value)||void 0===r?void 0:r.length)>=c.value,i=m.value;!l&&a&&(i=m.value instanceof Array?m.value.concat(String(a)):[a],h(i,{trigger:"enter",index:i.length-1,item:a,e:n.e})),null==e||null===(o=e.onEnter)||void 0===o||o.call(e,i,tw(tw({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){m.value&&m.value.length&&(g.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(m.value&&m.value.length&&"Process"!==n.key&&!b.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=m.value.length-1,l=m.value[a],i="backspace",c=m.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}g.value=e}},renderLabel:function(e){var o,a=e.displayNode,l=e.label,i=s.value?m.value.slice(0,s.value):m.value,u=a?[a]:(null==i||null===(o=i.map)||void 0===o?void 0:o.call(i,(function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(Gb,t.mergeProps({key:"".concat(e).concat(r),size:d.value,disabled:y.value,onClose:function(e){return w({e:e.e,index:r})},closable:!b.value&&!y.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})})))||[];if([null,void 0,""].includes(l)||u.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[l])),i.length!==(m.value||[]).length){var c=m.value.length-i.length,p=n("collapsedItems",{params:{value:m.value,count:m.value.length-s.value,collapsedTags:m.value.slice(s.value,m.value.length),collapsedSelectedItems:m.value.slice(s.value,m.value.length),onClose:w}});u.push(null!=p?p:t.createVNode(Gb,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",c]}}))}return u}}}(t.reactive(rw(rw({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed((function(){var e=!(j(X.value)&&X.value.length);return[l.value,s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),e),"".concat(A.value,"-tag-input--with-tag"),!e)]})),oe=t.computed((function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value})),ae=t.computed((function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||S.value))})),le=function(e,n){var r,o;null===(r=n.e)||void 0===r||null===(o=r.preventDefault)||void 0===o||o.call(r),k("",{e:n.e,trigger:"enter"}),!M.value&&G(e,n),t.nextTick((function(){W(),M.value=!1}))},ie=function(e,t){var n,r;M.value=!0,null===(n=h.value)||void 0===n||null===(r=n.onCompositionstart)||void 0===r||r.call(n,e,t)},ue=function(e,t){var n,r;M.value=!1,null===(n=h.value)||void 0===n||null===(r=n.onCompositionend)||void 0===r||r.call(n,e,t)},ce=function(t){var n,r;v.value||(B.value=!0,null===(n=$.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,t))},se=function(t){var n;ee(t),k("",{e:t.e,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,t)},de=function(e){T(e),U()},ve=function(e){I(e),Y()},fe=function(t,n){var r;B.value||(B.value=!0,null===(r=e.onFocus)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t}))},pe=function(t,n){var r;B.value=!1,k("",{e:n.e,trigger:"blur"}),null===(r=e.onBlur)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t})},me=function(e,t){k(e,rw(rw({},t),{},{trigger:"input"}))};return t.watch((function(){return Z.value}),(function(t){if("scroll"===e.excessTagsDisplayType){var n="".concat(A.value,"-input__prefix"),r=$.value.$el.querySelector(".".concat(n));t?r.classList.add("".concat(n,"--scrollable")):r.classList.remove("".concat(n,"--scrollable"))}})),function(){var e,n,a=ae.value?t.createVNode(d,{class:u.value,onClick:se},null):o("suffixIcon"),l=o("prefixIcon"),i="".concat(A.value,"-tag-input__with-suffix-icon");a&&!re.value.includes(i)&&re.value.push(i);var c=o("valueDisplay",{params:{value:X.value,onClose:function(e){return ne({index:e})}}}),s=o("label",{silent:!0}),p=f.value||(null===(e=h.value)||void 0===e?void 0:e.readonly);return t.createVNode(Oy,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:S.value,autoWidth:!0,size:y.value,disabled:v.value,label:function(){return te({displayNode:c,label:s})},class:re.value,tips:b.value,status:w.value,placeholder:oe.value,suffix:O.value,suffixIcon:function(){return a},prefixIcon:function(){return l},keepWrapperWidth:!C.value,onWheel:K,onChange:me,onPaste:x.value,onEnter:le,onKeyup:J,onKeydown:Q,onMouseenter:de,onMouseleave:ve,onFocus:fe,onBlur:pe,onClick:ce,onCompositionstart:ie,onCompositionend:ue},h.value),{suffix:r.suffix})}}}),aw=pi(ow),lw=["tips"];function iw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uw(e){for(var t=1;t=e.offsetWidth?t.offsetWidth:e.offsetWidth,a={};return r.value&&"object"===u(r.value.overlayInnerStyle)&&!r.value.overlayInnerStyle.width&&(a=r.value.overlayInnerStyle),dw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return dw({width:"".concat(Math.max(e.offsetWidth,t.offsetWidth),"px")},null===(n=r.value)||void 0===n?void 0:n.overlayInnerStyle)};return{tOverlayInnerStyle:t.computed((function(){var e,t=(null===(e=r.value)||void 0===e?void 0:e.overlayInnerStyle)||{};return H(t)||E(t)&&t.width?t:o.value?s:c})),innerPopupVisible:a,onInnerPopupVisibleChange:function(t,n){if(!l.value&&!i.value){var r,o=!("trigger-element-click"!==n.trigger||!e.allowInput)||t;if(e.popupVisible!==o)a.value=o,null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,o,n)}}}}var fw=["tips"];function pw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mw(e){for(var t=1;t=0||e.multiple&&(null===(r=I.value)||void 0===r||null===(o=r.focus)||void 0===o||o.call(r))};return n.expose({popupRef:f,allowInput:O}),function(){var e,r,o={visible:null!==(e=g.value)&&void 0!==e?e:j.value},a=t.createVNode(Nh,t.mergeProps({ref:f,trigger:(null===(r=b.value)||void 0===r?void 0:r.trigger)||"click",placement:"bottom-left"},o,{content:w.value,hideEmptyPopup:!0},ww(ww({onVisibleChange:S,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),ww({default:function(){return[m.value?M({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},ww(ww({},n.slots),{},{content:n.slots.panel}))),l=d("tips"),i=["".concat(c.value,"-input__tips"),"".concat(c.value,"-tips"),"".concat(c.value,"-is-").concat(C.value)];return t.createVNode("div",{ref:v,class:B.value},[a,l&&t.createVNode("div",{class:i},[l])])}}}),Cw=pi(Ow),xw={checkAll:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,label:{type:String,default:""},title:{type:String,default:""},value:{type:[String,Number,Boolean]}},Pw={checkAll:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:{type:[String,Function]},lazyLoad:Boolean,name:{type:String,default:""},readonly:{type:Boolean,default:void 0},title:{type:String,default:""},value:{type:[String,Number,Boolean]},onChange:Function},jw=Symbol("CheckboxGroupProvide");function Sw(e,t,n,r){if("undefined"==typeof window)return null;if(!window||!window.IntersectionObserver)return n(),null;var o=null;try{(o=new window.IntersectionObserver((function(t){t[0].isIntersecting&&(n(),o.unobserve(e))}),{rootMargin:"0px 0px ".concat(r,"px 0px"),root:t})).observe(e)}catch(e){console.error(e),n()}return o}function kw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nw(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Iw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n((null===(r=e.scroll)||void 0===r?void 0:r.threshold)||100)})),u="virtual"===(null===(n=e.scroll)||void 0===n?void 0:n.type)?function(e){var n=e.data,r=e.container,o=e.fixedHeight,a=void 0!==o&&o,l=e.lineHeight,i=void 0===l?30:l,u=e.bufferSize,c=void 0===u?20:u,s=e.threshold,d=void 0===s?100:s,v=t.reactive({visibleData:[],cachedHeight:[],cachedScrollY:[]}),f=t.computed((function(){return n.value.length>d})),p=t.ref(0),m=new Map,h=0,g=0,y=0,b=0,w=0,O=0,C=function(){n.value.forEach((function(e,t){e.$index=t,a&&(v.cachedScrollY[t]=t*i)})),a||(v.cachedScrollY[n.value.length-1]=void 0)};C();var x=t.computed((function(){var e=v.cachedHeight;if(e.length){var t=e.reduce((function(e,t){return e+t||i}),0);if(e.length===n.value.length)return t;var r=t/e.length;return t+(n.value.length-e.length)*r}return f.value?n.value.length*i:0})),P=t.computed((function(){var e=v.visibleData,t=e[0];return t?1===e.length?0:v.cachedScrollY[t.$index]:0})),j=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},S=function(){var e,o=m.get(y);if(o){var a=null==o||null===(e=o.getBoundingClientRect())||void 0===e?void 0:e.height;v.cachedScrollY[y]=r.value.scrollTop-b,v.cachedHeight[y]=a;for(var l=y+1;l<=(null===(i=v.visibleData[v.visibleData.length-1])||void 0===i?void 0:i.$index);l++){var i,u=m.get(l),c=((null==u?void 0:u.getBoundingClientRect())||{}).height;v.cachedHeight[l]=c;var s=v.cachedScrollY[l-1]+v.cachedHeight[l-1];v.cachedScrollY.splice(l,1,s)}for(var d=y-1;d>=(null===(f=v.visibleData[0])||void 0===f?void 0:f.$index);d--){var f,p=m.get(d),h=((null==p?void 0:p.getBoundingClientRect())||{}).height;v.cachedHeight[d]=h;var C=v.cachedScrollY[d+1]-v.cachedHeight[d];v.cachedScrollY.splice(d,1,C)}if(v.cachedScrollY[0]>0){for(var x=v.cachedScrollY[0],P=Math.min(O,n.value.length),j=0;j=w;o--)o===O-1?v.cachedScrollY.splice(o,1,n.value-v.cachedHeight[o]):v.cachedScrollY.splice(o,1,v.cachedScrollY[o+1]-v.cachedHeight[o])}))}};!a&&t.watch(p,S,{flush:"post"}),t.watch(n,(function(){C(),v.visibleData=[],v.cachedScrollY=[],v.cachedHeight=[],g=0,y=0,b=0,w=0,m.clear(),n.value.length<=d?v.visibleData=n.value:j(),r.value&&(r.value.scrollTop=0)}));var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),j())};return t.onMounted((function(){if(window&&window.IntersectionObserver){var e=new window.IntersectionObserver((function(t){var n=t[0];(n.isIntersecting||n.intersectionRatio)&&(k=!0,f.value&&N(),e.unobserve(r.value))}));r.value&&e.observe(r.value)}})),Zm(Zm({trs:m,scrollHeight:x},t.toRefs(v)),{},{translateY:P,handleScroll:function(){if(f.value){var e=r.value.scrollTop,t=e-g;g=e;var o=y;if(t+=b){if(t>=0){for(;o(v.cachedHeight[o]||i);)v.cachedHeight[o]||(v.cachedHeight[o]=i),t-=v.cachedHeight[o],o++;o>=n.value.length?(y=n.value.length-1,b=0):(y=o,b=t);var a=r.value;e+a.clientHeight===a.scrollHeight&&(y=n.value.length-h+1),w<=y-c&&(w=Math.min(n.value.length-h,y-c))<0&&(w=0)}else{for(;t<0;)o--,v.cachedHeight[o]||(v.cachedHeight[o]=i),t+=v.cachedHeight[o];o<0?(y=0,b=0):(y=o,b=t),S(),w>y-c&&(w=Math.max(0,y-c))}j()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:S})}({container:e.popupContentRef,data:e.options,fixedHeight:(null===(r=e.scroll)||void 0===r?void 0:r.isFixedRowHeight)||!1,lineHeight:(null===(o=e.scroll)||void 0===o?void 0:o.rowHeight)||28,bufferSize:(null===(a=e.scroll)||void 0===a?void 0:a.bufferSize)||20,threshold:(null===(l=e.scroll)||void 0===l?void 0:l.threshold)||100}):{},c=u.trs,s=void 0===c?null:c,d=u.visibleData,v=void 0===d?null:d,f=u.handleScroll,p=void 0===f?null:f,m=u.scrollHeight,h=void 0===m?null:m,g=u.translateY,y=void 0===g?null:g,b=u.handleRowMounted,w=void 0===b?null:b,O=-1,C=function(e){if(i.value){var t=e.target.scrollTop;Math.abs(O-t)>5?(p(),O=t):O=-1}};t.onMounted((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.addEventListener("scroll",C)})),t.onBeforeUnmount((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.removeEventListener("scroll",C)}));var x=t.computed((function(){return{position:"absolute",width:"1px",height:"1px",transition:"transform 0.2s",transform:"translate(0, ".concat(h.value,"px)"),"-ms-transform":"translate(0, ".concat(h.value,"px)"),"-moz-transform":"translate(0, ".concat(h.value,"px)"),"-webkit-transform":"translate(0, ".concat(h.value,"px)")}})),P=t.computed((function(){return{transform:"translate(0, ".concat(y.value,"px)"),"-ms-transform":"translate(0, ".concat(y.value,"px)"),"-moz-transform":"translate(0, ".concat(y.value,"px)"),"-webkit-transform":"translate(0, ".concat(y.value,"px)")}}));return{trs:s,scrollHeight:h,translateY:y,visibleData:v,handleRowMounted:w,isVirtual:i,cursorStyle:x,panelStyle:P}};var Yw=t.defineComponent({name:"TSelectPanel",props:{inputValue:Kw.inputValue,panelTopContent:Kw.panelTopContent,panelBottomContent:Kw.panelBottomContent,empty:Kw.empty,creatable:Kw.creatable,loading:Kw.loading,loadingText:Kw.loadingText,multiple:Kw.multiple,filterable:Kw.filterable,filter:Kw.filter,scroll:Kw.scroll,size:Kw.size},setup:function(e,n){var r=n.expose,o=Qa("select"),a=ei(),l=ti(),i=Ga("select"),u=i.t,c=i.globalConfig,s=t.inject(Bw),d=t.ref(null),v=t.computed((function(){return s.value.popupContentRef.value})),f=t.computed((function(){return e.creatable&&e.filterable&&e.inputValue})),p=t.computed((function(){return s.value.displayOptions})),m=Uw({scroll:e.scroll,popupContentRef:v,options:p}),h=m.trs,g=m.visibleData,y=m.handleRowMounted,b=m.isVirtual,w=m.panelStyle,O=m.cursorStyle,C=t.computed((function(){return!p.value.length})),x=function(n){return t.createVNode("ul",{class:"".concat(o.value,"__list")},[n.map((function(n,r){var o,a,l,i;return n.children?t.createVNode(Ww,{label:n.group,divider:n.divider},"function"==typeof(i=l=x(n.children))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?l:{default:function(){return[l]}}):t.createVNode(zw,t.mergeProps(ta(n,"index","$index","className","tagName"),b.value?{rowIndex:n.$index,trs:h,scrollType:null===(o=e.scroll)||void 0===o?void 0:o.type,isVirtual:b.value,bufferSize:null===(a=e.scroll)||void 0===a?void 0:a.bufferSize,key:"".concat(n.$index||"","_").concat(r,"_").concat(n.value)}:{key:"".concat(r,"_").concat(n.value)},{index:r,multiple:e.multiple,onRowMounted:y}),n.slots)}))])},P=t.computed((function(){return{small:"s",medium:"m",large:"l"}[s.value.size]}));r({innerRef:d,visibleData:g,isVirtual:b,displayOptions:p});return{renderPanel:function(n,r){return t.createVNode("div",{ref:d,class:["".concat(o.value,"__dropdown-inner"),"".concat(o.value,"__dropdown-inner--size-").concat(P.value)],style:r},[f.value&&t.createVNode("ul",{class:["".concat(o.value,"__create-option"),"".concat(o.value,"__list")]},[t.createVNode(zw,{value:e.inputValue,label:"".concat(e.inputValue),createAble:!0,class:"".concat(o.value,"__create-option--special")},null)]),e.loading&&l("loadingText",{defaultNode:t.createVNode("div",{class:"".concat(o.value,"__loading-tips")},[u(c.value.loadingText)])}),!e.loading&&C.value&&!f.value&&t.createVNode("div",{class:"".concat(o.value,"__empty")},[a("empty")||u(c.value.empty)]),!C.value&&x(n)])},panelStyle:w,cursorStyle:O,isVirtual:b,displayOptions:p,visibleData:g,renderTNodeJSX:a}},render:function(){return this.isVirtual?t.createVNode(t.Fragment,null,[this.renderTNodeJSX("panelTopContent"),t.createVNode("div",null,[t.createVNode("div",{style:this.cursorStyle},null),this.renderPanel(this.visibleData,this.panelStyle)]),this.renderTNodeJSX("panelBottomContent")]):t.createVNode(t.Fragment,null,[this.renderTNodeJSX("panelTopContent"),this.renderPanel(this.displayOptions),this.renderTNodeJSX("panelBottomContent")])}});function $w(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Zw(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Zw(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Zw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Qw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},d=t.computed((function(){if(e.onSearch&&e.filterable)return l.value;if(!r.value||!e.filterable&&!H(e.filter))return l.value;var t,n=[];if(l.value.forEach((function(e){e.children&&n.push(Xw(Xw({},e),{},{children:e.children.filter(s)})),!0===(null==e?void 0:e.checkAll)&&(t=e),s(e)&&n.push(e)})),!H(e.filter)){var o=n.filter((function(e){return e.label===r.value})),a=n.filter((function(e){return e.label!==r.value}));n=o.concat(a)}return n.length&&t?[t].concat(i(n)):n}));return{options:l,optionsMap:c,optionsList:u,optionsCache:a,displayOptions:d,filterMethods:s}}(e,N,w),V=_.optionsMap,D=_.optionsList,E=_.optionsCache,F=_.displayOptions,T=_.filterMethods,I=t.computed((function(){return void 0===x.value?e.multiple?[]:void 0:"object"===e.valueType?e.multiple?x.value.map((function(e){return e[N.value.value]})):x.value[N.value.value]:x.value})),M=function(t,n){if("object"===e.valueType){var r=N.value,o=r.value,a=r.label,l=function(e){if(void 0!==e){var t=V.value.get(e);return s(s({},o,St(t,o)),a,St(t,a))}};t=e.multiple?t.map((function(e){return l(e)})):l(t)}var i;t!==x.value&&(e.multiple&&!e.reserveKeyword&&"check"==n.trigger&&O(""),P(t,tO({selectedOptions:X(t)},n)),e.multiple&&"uncheck"===n.trigger&&n.option&&(null===(i=e.onRemove)||void 0===i||i.call(e,{value:St(n.option,N.value.value),data:n.option,e:n.e})))},A=Ha(Um(m,!1,(function(t,n){var r;null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,t,n)}),"popupVisible"),2),B=A[0],L=A[1],R=t.computed((function(){var t;return null!==(t=!e.multiple&&B.value&&Mw(I.value,V)||e.placeholder)&&void 0!==t?t:f(v.value.placeholder)})),z=t.computed((function(){return e.multiple?function(e,t){var n,r=[],o=Tw(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=Mw(a,t);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}return r}(I.value,V):Mw(I.value,V)})),W=t.computed((function(){var t,n=e.multiple&&j(I.value)?I.value.map((function(e){var t;return{value:e,label:null===(t=V.value.get(e))||void 0===t?void 0:t.label}})):I.value,r={value:n,onClose:e.multiple?function(e){return Y(e)}:function(){}};return e.multiple||Object.assign(r,{label:z.value}),e.minCollapsedNum&&e.multiple?tO(tO({},r),{},{displayValue:null==n||null===(t=n.slice)||void 0===t?void 0:t.call(n,0,e.minCollapsedNum)}):r})),K=t.computed((function(){return Boolean(e.filterable||v.value.filterable||H(e.filter))})),U=t.computed((function(){return Boolean((e.filterable||v.value.filterable)&&H(e.onSearch))})),Y=function(t,n){var r,o=n||{},a=o.e,l=o.trigger,i=void 0===l?"tag-remove":l;a&&a.stopPropagation();var u=Mr(I.value),c=u[t];u.splice(t,1),"clear"!==i&&M(u,{selectedOptions:X(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:V.value.get(c),e:a})},$=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),B.value||O(""))},Z=t.computed((function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()})),q=t.computed((function(){return D.value.filter((function(e){return!e.disabled&&!(e["check-all"]||""===e["check-all"])&&!e.checkAll&&T(e)}))})),X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I.value;return D.value.filter((function(t){if(!t.checkAll)return j(e)?e.includes(t.value):e===t.value}))},G=function(t){if(e.multiple){var n=N.value.value,r=I.value.filter((function(e){return D.value.find((function(t){return t.value===e&&t.disabled}))})),o=q.value.map((function(e){return e.value})),a="object"===e.valueType?x.value.map((function(e){return St(e,n)})):x.value,l=i(t?new Set([].concat(i(a),i(o),i(r))):r);M(l,{selectedOptions:X(l),trigger:t?"check":"clear"})}},J=t.computed((function(){return 0!==oe.value&&oe.value===q.value.length})),Q=function(e){var n=e.displayOptions,r=e.optionsList,o=e.innerPopupVisible,a=e.setInnerPopupVisible,l=e.selectPanelRef,i=e.isFilterable,u=e.isRemoteSearch,c=e.getSelectedOptions,s=e.setInnerValue,d=e.onCheckAllChange,v=e.innerValue,f=e.popupContentRef,p=e.multiple,m=e.max,h=e.isCheckAll,g=t.ref(-1),y=t.ref([]),b=t.ref([]),w=Qa();return t.watch(o,(function(e){e&&(g.value=-1,b.value=[],y.value=[])})),t.watch(g,(function(e){var t,n=(null===(t=l.value)||void 0===t||null===(t=t.innerRef)||void 0===t||null===(t=t.querySelector(".".concat(w.value,"-select-option")))||void 0===t?void 0:t.clientHeight)*e;f.value.scrollTo({top:n,behavior:"smooth"})})),{hoverIndex:g,handleKeyDown:function(e){var t,f,w=n.value.length,O=g.value;switch(e.code){case"ArrowUp":e.preventDefault(),-1===g.value?O=0:0===g.value||g.value>n.value.length-1?O=w-1:O--,null!==(t=r.value[O])&&void 0!==t&&t.disabled&&O--,g.value=O;break;case"ArrowDown":e.preventDefault(),-1===g.value||g.value>=w-1?O=0:O++,null!==(f=r.value[O])&&void 0!==f&&f.disabled&&O++,g.value=O;break;case"Enter":if(-1===g.value)break;var C=l.value.isVirtual&&i.value&&b.value.length?b.value:u.value?r.value:y.value;if(C.length||(C=r.value),!o.value){a(!0,{e:e});break}if(p){var x;if(-1===g.value)return;if(C[g.value].checkAll)return void d(!h.value);var P=null===(x=C[g.value])||void 0===x?void 0:x.value;if(!P)return;var j=Aw(v.value,P);if(m>0&&j.value.length>m)return;var S=c(j.value);s(j.value,{option:S.find((function(e){return e.value==P})),selectedOptions:S,trigger:j.isCheck?"check":"uncheck",e:e}),y.value=[]}else{var k=c(C[g.value].value);s(C[g.value].value,{option:null==k?void 0:k[0],selectedOptions:c(C[g.value].value),trigger:"check",e:e}),a(!1,{e:e})}break;case"Escape":a(!1,{e:e})}},virtualFilteredOptions:b,filteredOptions:y}}({displayOptions:F,optionsList:D,innerPopupVisible:B,setInnerPopupVisible:L,selectPanelRef:S,isFilterable:K,isRemoteSearch:U,getSelectedOptions:X,setInnerValue:M,onCheckAllChange:G,isCheckAll:J,innerValue:I,popupContentRef:Z,multiple:e.multiple,max:e.max}),ee=Q.hoverIndex,te=Q.virtualFilteredOptions,ne=Q.handleKeyDown,re=Q.filteredOptions,oe=t.computed((function(){var e=q.value.map((function(e){return e.value}));return Io(I.value,e).length})),ae=t.computed((function(){return!J.value&&0!==oe.value})),le=t.computed((function(){return{max:e.max,multiple:e.multiple,hoverIndex:ee.value,selectValue:I.value,reserveKeyword:e.reserveKeyword,handleValueChange:M,handlerInputChange:O,handlePopupVisibleChange:L,handleCreate:$,size:e.size,popupContentRef:Z,indeterminate:ae.value,isCheckAll:J.value,onCheckAllChange:G,getSelectedOptions:X,displayOptions:F.value,emitBlur:se}}));t.provide(Bw,le);var ie=function(){!e.multiple&&j(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!j(x.value)&&P([],{selectedOptions:[],trigger:"default"})},ue=po((function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})}),300),ce=function(e,n){e&&!B.value&&L(!0,{e:n.e}),O(e),ue("".concat(e),{e:n.e}),t.nextTick((function(){var e,t;te.value=null===(e=S.value)||void 0===e?void 0:e.visibleData,re.value=null===(t=S.value)||void 0===t?void 0:t.displayOptions}))},se=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:I.value})},de=function(e,t){L(e,t),e&&"trigger-element-click"===t.trigger&&O("")},ve=function(){var t=Bf(Hf.mark((function t(n){var r,o,a;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=3;break}return t.abrupt("return");case 3:null==a||null===(r=a["on-scroll-to-bottom"])||void 0===r||r.call(a,n),null==a||null===(o=a.onScrollToBottom)||void 0===o||o.call(a,n);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();t.watch(x,(function(n){ie(),t.nextTick((function(){!function(t){if(e.multiple){var n,r=[],o=Jw(t||[]);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=V.value.get(a);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}E.value=Array.from(new Set([].concat(r,i(E.value))))}else{var u=V.value.get(t);u&&(E.value=Array.from(new Set([u].concat(i(E.value)))))}}(n)}))}),{immediate:!0}),t.watch((function(){return e.multiple}),(function(){ie()}));return t.provide("updateScrollTop",(function(e){var n;if(S.value){var r=null===(n=S.value)||void 0===n||null===(n=n.innerRef)||void 0===n?void 0:n.querySelector(".".concat(o.value,"-is-selected"));t.nextTick((function(){if(r&&e){var t=getComputedStyle(r).paddingBottom,n=getComputedStyle(e).marginBottom,o=parseInt(t,10)+parseInt(n,10),a=r.offsetTop-e.offsetTop-(e.clientHeight-r.clientHeight)+o;e.scrollTop=a}}))}})),function(){var n=e.popupProps||{},o=n.overlayClassName,i=nl(n,Gw);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(Cw,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:u("tips"),minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:k,class:c.value,value:z.value,disabled:a.value,popupVisible:B.value,inputValue:B.value?w.value:"",placeholder:"".concat(R.value),allowInput:K.value,"collapsed-items":e.collapsedItems,inputProps:tO(tO({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ne}),tagInputProps:tO({size:e.size},e.tagInputProps),onTagChange:function(e,t){Y(t.index,t)},tagProps:tO({},e.tagProps),popupProps:tO(tO({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:ve}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(Kg,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:B.value},null)},valueDisplay:function(){return u("valueDisplay",{params:W.value})},onPopupVisibleChange:de,onInputChange:ce,onClear:function(t){var n,r=t.e;M(e.multiple?[]:void 0,{option:null,selectedOptions:X(e.multiple?[]:void 0),trigger:"clear",e:r}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onEnter:function(t,n){var r=n.e;setTimeout((function(){var t;null===(t=e.onEnter)||void 0===t||t.call(e,{inputValue:"".concat(w.value),e:r,value:I.value}),$()}),0)},onBlur:function(t,n){var r,o=n.e;null===(r=e.onBlur)||void 0===r||r.call(e,{e:o,value:I.value})},onFocus:function(t,n){var r,o=n.e;null===(r=e.onFocus)||void 0===r||r.call(e,{e:o,value:I.value})}},e.selectInputProps),{label:r.label,prefixIcon:r.prefixIcon,suffix:r.suffix,panel:function(){return t.createVNode(Yw,t.mergeProps({ref:S},xa(e,["size","multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),rO=pi(nO),oO=pi(zw),aO=pi(Ww),lO={append:{type:[String,Function]},prepend:{type:[String,Function]}},iO=t.defineComponent({name:"TInputAdornment",inheritAttrs:!1,props:lO,setup:function(e,n){var r=n.slots,o=Qa("input-adornment"),a=ei(),l=function(e,n,a){var l,i=Do(a)||Ho(a);return r[n]||!Do(a)||a?(l=r[n]?1===r[n](null).length&&"string"==typeof r[n](null)[0].children?t.createVNode("span",{class:"".concat(o.value,"__text")},[r[n](null)]):r[n](null):H(a)?a(e):i?t.createVNode("span",{class:"".concat(o.value,"__text")},[a]):a)?t.createVNode("span",{class:"".concat(o.value,"__").concat(n)},[l]):l:null};return function(){var n=l(t.h,"prepend",e.prepend),r=l(t.h,"append",e.append),i=a("default")||[null],u=[o.value,s(s({},"".concat(o.value,"--prepend"),n),"".concat(o.value,"--append"),r)];return n||r?t.createVNode("div",{class:u},[n,i[0],r]):i[0]}}}),uO=pi(iO),cO={current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number,default:1},disabled:Boolean,foldedMaxPageBtn:{type:Number,default:5},maxPageBtn:{type:Number,default:10},pageEllipsisMode:{type:String,default:"mid",validator:function(e){return!e||["mid","both-ends"].includes(e)}},pageSize:{type:Number,default:void 0},defaultPageSize:{type:Number,default:10},pageSizeOptions:{type:Array,default:function(){return[5,10,20,50]}},selectProps:{type:Object},showFirstAndLastPageBtn:Boolean,showJumper:Boolean,showPageNumber:{type:Boolean,default:!0},showPageSize:{type:Boolean,default:!0},showPreviousAndNextBtn:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","simple"].includes(e)}},total:{type:Number,default:0},totalContent:{type:[Boolean,Function],default:!0},onChange:Function,onCurrentChange:Function,onPageSizeChange:Function};var sO=["pageCount"],dO=t.defineComponent({name:"TPagination",props:cO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=ei(),u=Ha(qm(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ha(Um(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=Ga("pagination"),h=m.t,g=m.globalConfig,y=Qa("pagination"),b=up({PageFirstIcon:wd,PageLastIcon:jd,ChevronLeftIcon:$u,ChevronRightIcon:uc,ChevronLeftDoubleIcon:Hu,ChevronRightDoubleIcon:rc,EllipsisIcon:Zc}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,j=b.ChevronRightDoubleIcon,S=b.EllipsisIcon,k=function(e,n,r,o){var a=el(),l=a.SIZE,i=a.STATUS,u=t.computed((function(){var t=Math.ceil(e.total/r.value);return t>0?t:1})),c=t.computed((function(){return["".concat(o.value),l.value[e.size],s(s({},i.value.disabled,e.disabled),"".concat(o.value,"-ie"),ll()<11),"simple"===e.theme?"".concat(o.value,"--simple"):""]})),d=t.computed((function(){return["".concat(o.value,"__total")]})),v=t.computed((function(){return["".concat(o.value,"__select")]})),f=t.computed((function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-prev"),s({},i.value.disabled,e.disabled||1===n.value)]})),p=t.computed((function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-next"),s({},i.value.disabled,e.disabled||n.value===u.value)]})),m=t.computed((function(){return["".concat(o.value,"__pager")]})),h=t.computed((function(){return["".concat(o.value,"__number"),"".concat(o.value,"__number--more"),s({},i.value.disabled,e.disabled)]})),g=t.computed((function(){return["".concat(o.value,"__jump")]})),y=t.computed((function(){return["".concat(o.value,"__input")]})),b=t.computed((function(){return["".concat(o.value,"__select")]}));return{pageCount:u,paginationClass:c,totalClass:d,sizerClass:v,preBtnClass:f,nextBtnClass:p,btnWrapClass:m,btnMoreClass:h,jumperClass:g,jumperInputClass:y,simpleClass:b,getButtonClass:function(t){return["".concat(o.value,"__number"),s(s({},i.value.disabled,e.disabled),i.value.current,n.value===t)]}}}(e,c,f,y),N=k.pageCount,_=nl(k,sO),V=function(e,n,r){var o=t.ref(!1),a=t.ref(!1),l=t.computed((function(){return Math.ceil((e.foldedMaxPageBtn-1)/2)})),i=t.computed((function(){return Math.floor((e.foldedMaxPageBtn-1)/2)})),u=t.computed((function(){return 2+l.valuer.value}));return{prevMore:o,nextMore:a,curPageLeftCount:l,curPageRightCount:i,isPrevMoreShow:u,isNextMoreShow:c}}(e,N,c),D=V.prevMore,F=V.isPrevMoreShow,T=V.curPageLeftCount,I=V.nextMore,M=V.isNextMoreShow,A=V.curPageRightCount,B=t.ref(c.value),L=t.computed((function(){return N.value>e.maxPageBtn})),R=t.computed((function(){return e.pageSizeOptions.map((function(e){return E(e)?e:{label:h(g.value.itemsPerPage,{size:e}),value:Number(e)}})).sort((function(e,t){return e.value-t.value}))})),z=t.computed((function(){return"mid"===e.pageEllipsisMode})),H=t.computed((function(){var t,n,r=[];if(L.value)if(F.value&&M.value)t=c.value-T.value,n=c.value+A.value;else{var o=z.value?2:1,a=z.value?N.value-1:N.value;t=F.value?Math.min(c.value-1,N.value-e.foldedMaxPageBtn+1):o,n=M.value?Math.max(c.value+1,e.foldedMaxPageBtn):a}else t=1,n=N.value;for(var l=t;l<=n;l++)r.push(l);return r}));t.watch((function(){return N.value}),(function(){c.value>N.value&&(c.value=1)})),t.watch((function(){return c.value}),(function(e){return B.value=e}));var W=function(t,r){if(!e.disabled){var o=t;if(t<1?o=1:t>N.value&&(o=N.value),c.value!==o){var a,l=c.value;if(r=r||{current:o,previous:l,pageSize:f.value})d(o,r),null===(a=e.onChange)||void 0===a||a.call(e,r);else n("update:modelValue",o)}}},K=function(t){({prevPage:function(){return W(c.value-1)},nextPage:function(){return W(c.value+1)},prevMorePage:function(){return W(Math.max(2,c.value-e.foldedMaxPageBtn))},nextMorePage:function(){return W(Math.min(c.value+e.foldedMaxPageBtn,N.value-1))}})[t]()},U=function(t){if(!e.disabled){var n=parseInt(t,10),r=1;n>0&&(r=Math.max(Math.ceil(e.total/n),1));var o=!1;c.value>r&&(o=!0);var a,l={current:o?r:c.value,previous:c.value,pageSize:n};if(p(n,l),o)W(r,l);else null===(a=e.onChange)||void 0===a||a.call(e,l)}},Y=function(e){var t,n=Math.trunc(+e);Ho(t=n)&&t!=+t||(B.value=n,W(n))};return function(){var n=e.total,r=e.pageSizeOptions,o=e.size,a=e.disabled,l=e.showPageSize;if(N.value<1)return null;var u=t.createVNode("div",{class:_.jumperClass.value},[h(g.value.jumpTo),t.createVNode(uO,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Zy,{class:_.jumperInputClass.value,modelValue:B.value,"onUpdate:modelValue":function(e){return B.value=e},onBlur:Y,onEnter:Y,max:N.value,min:1,size:o,disabled:a,theme:"normal",placeholder:""},null)]}})]);return t.createVNode("div",{class:_.paginationClass.value},[i("totalContent",t.createVNode("div",{class:_.totalClass.value},[h(g.value.total,{total:n})])),l&&r.length>0&&t.createVNode(rO,t.mergeProps({size:o,value:f,disabled:a,class:_.sizerClass.value,autoWidth:!0,onChange:U,options:R.value},e.selectProps),null),e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return W(1)}},[t.createVNode(w,null,null)]):null,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return K("prevPage")}},[t.createVNode(C,null,null)]):null,e.showPageNumber&&"default"===e.theme?t.createVNode("ul",{class:_.btnWrapClass.value},[L.value&&z.value&&t.createVNode("li",{class:_.getButtonClass(1),onClick:function(){return W(1)}},[1]),L.value&&F.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("prevMorePage")},onMouseover:function(){return D.value=!0},onMouseout:function(){return D.value=!1}},[D.value?t.createVNode(P,null,null):t.createVNode(S,null,null)]):null,H.value.map((function(e){return t.createVNode("li",{class:_.getButtonClass(e),key:e,onClick:function(){return W(e)}},[e])})),L.value&&M.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("nextMorePage")},onMouseover:function(){return I.value=!0},onMouseout:function(){return I.value=!1}},[I.value?t.createVNode(j,null,null):t.createVNode(S,null,null)]):null,L.value&&z.value?t.createVNode("li",{class:_.getButtonClass(N.value),onClick:function(){return W(N.value)}},[N.value]):null]):null,"simple"===e.theme&&u,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return K("nextPage")}},[t.createVNode(x,null,null)]):null,e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return W(N.value)}},[t.createVNode(O,null,null)]):null,"default"===e.theme&&e.showJumper&&u])}}}),vO={disabled:{type:[Boolean,Object]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},showCurrent:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},tips:{type:Object},variant:{type:String,default:"text",validator:function(e){return!e||["text","outline"].includes(e)}},onChange:Function},fO=t.defineComponent({name:"TPaginationMini",props:vO,setup:function(e){var n=Qa("pagination-mini"),r=up({ChevronLeftIcon:$u,RoundIcon:Rd,ChevronRightIcon:uc,ChevronUpIcon:fc,ChevronDownIcon:Au}),o=r.ChevronLeftIcon,a=r.RoundIcon,l=r.ChevronRightIcon,i=r.ChevronUpIcon,u=r.ChevronDownIcon,c=t.computed((function(){return E(e.tips)?e.tips:!0===e.tips?{prev:"\u4e0a\u4e00\u9875",current:"\u5f53\u524d",next:"\u4e0b\u4e00\u9875"}:{}})),d=t.computed((function(){return E(e.disabled)?e.disabled:!0===e.disabled?{prev:!0,current:!0,next:!0}:{prev:!1,current:!1,next:!1}}));return function(){var r=[n.value,s({},"".concat(n.value,"--outline"),"outline"===e.variant)];return t.createVNode("div",{class:r},[t.createVNode(ji,{title:c.value.prev,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"prev"})},icon:"horizontal"===e.layout?function(){return t.createVNode(o,null,null)}:function(){return t.createVNode(i,null,null)},class:"".concat(n.value,"__prev"),disabled:d.value.prev},null),e.showCurrent&&t.createVNode(ji,{title:c.value.current,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"current"})},icon:function(){return t.createVNode(a,null,null)},class:"".concat(n.value,"__current"),disabled:d.value.current},null),t.createVNode(ji,{title:c.value.next,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"next"})},icon:"horizontal"===e.layout?function(){return t.createVNode(l,null,null)}:function(){return t.createVNode(u,null,null)},class:"".concat(n.value,"__next"),disabled:d.value.next},null)])}}}),pO=pi(dO),mO=pi(fO),hO={current:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultCurrent:{type:[String,Number]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},options:{type:Array},readonly:{type:Boolean,default:void 0},separator:{type:String,default:"line",validator:function(e){return!e||["line","dashed","arrow"].includes(e)}},sequence:{type:String,default:"positive",validator:function(e){return!e||["positive","reverse"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}},onChange:Function},gO={content:{type:[String,Function],default:""},default:{type:[String,Function]},extra:{type:[String,Function]},icon:{type:[Boolean,Function],default:!0},status:{type:String,default:"default",validator:function(e){return!e||["default","process","finish","error"].includes(e)}},title:{type:[String,Function],default:""},value:{type:[String,Number]}};function yO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bO(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=gf(),s=function(){var t,n;null!==(t=e.options)&&void 0!==t&&t.length?n="reverse"===e.sequence?e.options.slice().reverse():e.options:n=function(t){var n=[];return null==t||t.forEach((function(t){var r=(null==t?void 0:t.props)||{},o=null==t?void 0:t.children;if(r||o){if(o&&E(o))for(var a in o)a in gO&&!r[a]&&(r[a]=o[a]);"reverse"===e.sequence?n.unshift(r):n.push(r)}})),n}(c("StepItem"));return(n||[]).forEach((function(e,t){void 0!==e.value&&(i.value[e.value]=t)})),n},d=t.computed((function(){return[n.value,"".concat(n.value,"--").concat(e.layout),"".concat(n.value,"--").concat((t=e.theme,s().forEach((function(e){void 0!==(null==e?void 0:e.icon)&&(t="default")})),t),"-anchor"),"".concat(n.value,"--").concat(e.sequence),"".concat(n.value,"--").concat(e.separator,"-separator")];var t}));return function(){return t.createVNode("div",{class:d.value},[(n=s(),n.map((function(r,o){var a="reverse"===e.sequence?n.length-o-1:o;return o=void 0!==r.value?o:a,t.createVNode(wO,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)})))]);var n}}}),CO=pi(OO),xO=pi(wO),PO={list:{type:Array,default:function(){return[]}},offset:{type:Array},placement:{type:String,default:"right-bottom",validator:function(e){return!e||["right-top","right-center","right-bottom","left-top","left-center","left-bottom"].includes(e)}},popupProps:{type:Object},shape:{type:String,default:"square",validator:function(e){return!e||["square","round"].includes(e)}},type:{type:String,default:"normal",validator:function(e){return!e||["normal","compact"].includes(e)}},width:{type:[String,Number]},onClick:Function,onHover:Function},jO={icon:{type:Function},label:{type:[String,Function]},popup:{type:[String,Function]},popupProps:{type:Object},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}}};function SO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kO(e){for(var t=1;t=t&&(n.value=!0),r=f.value.length?0:i+1;l.value=null===(a=f.value[u])||void 0===a?void 0:a.text}else(zb.test(e.code)||zb.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){Nl(document,"keydown",m)},g=function(){_l(document,"keydown",m)};return a({addKeyboardListener:h,removeKeyboardListener:g}),t.watch((function(){return e.popupVisible}),(function(){e.popupVisible?h():g()}),{immediate:!0}),t.watch((function(){return e.value}),(function(){e.value||(l.value="")}),{immediate:!0}),t.onBeforeUnmount((function(){g()})),function(){return f.value.length?t.createVNode("ul",{class:d.value},[f.value.map((function(n){var r=i(v.value);n.text===l.value&&r.push("".concat(u.value,"-select-option--hover"));var a=n.label;if(H(n.label))a=n.label(t.h);else if(o.option){var c;a=null===(c=o.option)||void 0===c?void 0:c.call(o,{option:n})}var s=a||n.text;return t.createVNode("li",{key:n.text,class:r,title:n.text,onClick:p},[Do(s)&&e.highlightKeyword?t.createVNode(BO,{content:s,keyword:e.value},null):s])}))]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function HO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function WO(e){for(var t=1;t=(n.getBoundingClientRect().width||n.offsetWidth||n.clientWidth)?"".concat(o,"px"):"auto"},null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)},b=t.computed((function(){return["".concat(d.value,"-auto-complete")]})),w=t.computed((function(){var t,n=["".concat(d.value,"-select__dropdown")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayClassName&&(n=n.concat(e.popupProps.overlayClassName)),n})),O=t.computed((function(){var t,n=["".concat(d.value,"-select__dropdown-inner")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayInnerClassName&&(n=n.concat(e.popupProps.overlayInnerClassName)),n})),C=function(e,t){i(e,t)},x=t.computed((function(){return WO({value:l.value,size:e.size},e.inputProps)})),P=function(n,r){var o;m.value||p.value||(h.value=!0,null===(o=e.onFocus)||void 0===o||o.call(e,WO(WO({},r),{},{value:n})),t.nextTick((function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()})))},j=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},S=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},_=function(t,n){var r;m.value||p.value||(h.value=!1,i(t,n),null===(r=e.onSelect)||void 0===r||r.call(e,t,n))},V=function(e,t){var n=t.trigger;m.value||p.value||"trigger-element-click"!==n&&(h.value=e)};return function(){var n,o,a=u("default","triggerElement")||t.createVNode(Oy,t.mergeProps({borderless:e.borderless,placeholder:null!==(n=e.placeholder)&&void 0!==n?n:f.value.placeholder,tips:e.tips,status:e.status,readonly:m.value,disabled:p.value,autofocus:e.autofocus,clearable:e.clearable,onChange:C,onFocus:P,onBlur:j,onClear:e.onClear,onCompositionend:S,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(zO,{ref:g,value:l.value,options:e.options,size:e.size,sizeClassNames:v,onSelect:_,popupVisible:h.value,highlightKeyword:e.highlightKeyword,filterable:e.filterable,filter:e.filter,empty:c("empty")},{option:r.option}),s=c("panelTopContent"),D=c("panelBottomContent"),E=s||i||D?t.createVNode("div",{class:"".concat(d.value,"-auto-complete__panel")},[s,i,D]):null,F=WO(WO({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(Nh,t.mergeProps({visible:h.value,onVisibleChange:V,trigger:"focus",placement:"bottom-left",hideEmptyPopup:!0,content:E?function(){return E}:null},F),(o=a,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}}))])}}}),UO=pi(KO),YO=pi(BO);function $O(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function ZO(e,t,n){var r=n.checkStrictly,o=n.multiple,a=n.value,l=n.max,i=!r&&e.expanded&&(!o||!e.isLeaf())||r&&e.expanded,u=e.isLeaf(),c=e.disabled||o&&a.length>=l&&0!==l,d=e.checked||o&&!r&&e.expanded&&!u;return o||r||u||(d=e.expanded),[s(s(s({},t.selected,!c&&d),t.expanded,!c&&i),t.disabled,c)]}function qO(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(j(t))return"";var a=r&&r.getNodes(t);if(!a||!a.length)return t;var l=a&&a[0].getPath();return l&&l.length?o?l.map((function(e){return e.label})).join(" / "):l.at(-1).label:t}function XO(e){var t=[];return e.forEach((function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]})),t}function GO(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/";return null==e?void 0:e.getPath().map((function(e){return e.label})).join(t)}var JO=function(e){var t=[];return j(e)?e.length>0&&E(e[0])?t=e.map((function(e){return e.value})):e.length&&(t=e):QO(e)||(t=E(e)?[e.value]:[e]),t};function QO(e){return!(Ho(e)&&!isNaN(e))&&Ro(e)}function eC(e,t,n){var r=e.disabled,o=e.setValue,a=e.value,l=e.valueType,i=e.treeStore;if(!r)if(void 0!==t){var u=Mr(a).splice(t,1),c=i.getNodes(u[0])[0],s=c.setChecked(!c.isChecked());o("single"===l?s:s.map((function(e){return i.getNode(e).getPath().map((function(e){return e.value}))})),"uncheck",c.getModel()),H(n)&&n({value:s,node:c})}else H(n)&&n({value:a,node:void 0})}var tC={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},nC=t.defineComponent({name:"TCascaderItem",props:tC,setup:function(e){var n=t.ref();wi(n);var r=Qa("cascader__item"),o=Qa(),a=up({ChevronRightIcon:uc}).ChevronRightIcon,l=el(),u=l.STATUS,c=l.SIZE,d=t.computed((function(){return function(e,t,n,r,o){var a=o.size;return["".concat(e,"-cascader__item")].concat(i(ZO(t,r,o)),[n[a],s(s({},"".concat(e,"-cascader__item--with-icon"),!!t.children),"".concat(e,"-cascader__item--leaf"),t.isLeaf())])}(o.value,e.node,c.value,u.value,e.cascaderContext)})),v=t.computed((function(){return function(e,t,n,r){return["".concat(e,"-cascader__item-icon"),"".concat(e,"-icon")].concat(i(ZO(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)}));function f(e,n){var o=n.inputVal,a=o?GO(e):e.label;if(o){for(var l=a.split(o),i=[],u=0;u=i&&0!==i,name:String(n.value),stopLabelTrigger:!!n.children,title:u?GO(n):p(n),onChange:function(){e.onChange()}},a),"function"==typeof(o=c)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?c:{default:function(){return[c]}})}return function(){var r=e.cascaderContext,o=e.node,l=e.optionChild,i=l&&r.multiple;return t.createVNode("li",{ref:n,class:d.value,onClick:function(){return i?e.onChange():e.onClick()},onMouseenter:e.onMouseenter},[l||(r.multiple?h(o,r):m(o,r)),o.children&&(o.loading?t.createVNode(mi,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),rC={autofocus:Boolean,borderless:Boolean,checkProps:{type:Object},checkStrictly:Boolean,clearable:Boolean,collapsedItems:{type:Function},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function]},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},keys:{type:Object},label:{type:[String,Function]},lazy:{type:Boolean,default:!0},load:{type:Function},loading:Boolean,loadingText:{type:[String,Function]},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,option:{type:Function},options:{type:Array,default:function(){return[]}},panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:Boolean,prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},reserveKeyword:Boolean,selectInputProps:{type:Object},showAllLevels:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["large","medium","small"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagInputProps:{type:Object},tagProps:{type:Object},tips:{type:[String,Function]},trigger:{type:String,default:"click",validator:function(e){return!e||["click","hover"].includes(e)}},value:{type:[String,Number,Array],default:void 0},modelValue:{type:[String,Number,Array],default:void 0},defaultValue:{type:[String,Number,Array],default:function(){return[]}},valueDisplay:{type:[String,Function]},valueMode:{type:String,default:"onlyLeaf",validator:function(e){return!e||["onlyLeaf","parentFirst","all"].includes(e)}},valueType:{type:String,default:"single",validator:function(e){return!e||["single","full"].includes(e)}},onBlur:Function,onChange:Function,onFocus:Function,onPopupVisibleChange:Function,onRemove:Function},oC=t.defineComponent({name:"TCascaderSubPanel",props:{option:rC.option,empty:rC.empty,trigger:rC.trigger,onChange:rC.onChange,loading:rC.loading,loadingText:rC.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=ti(),r=Qa("cascader"),o=Ga("cascader").globalConfig,a=t.computed((function(){return XO(e.cascaderContext.treeNodes)})),l=function(t,n){!function(e,t,n,r){var o=r.checkStrictly,a=r.multiple,l=r.treeStore,i=r.setVisible,u=r.setValue,c=r.setTreeNodes,s=r.setExpend,d=r.value,v=r.max,f=r.valueType;if(!(n.disabled||a&&d.length>=v&&0!==v)){if(e===t){var p=n.setExpanded(!0);l.refreshNodes(),l.replaceExpanded(p),c(l.getNodes().filter((function(e){return e.visible}))),a&&s(p)}if(!a&&(n.isLeaf()||o)&&"click"===t){l.resetChecked();var m=Ha(n.setChecked(!n.checked),1)[0];u("single"===f?m:n.getPath().map((function(e){return e.value})),"check",n.getModel()),o&&"hover"!==e||i(!1,{})}}}(e.trigger,n,t,e.cascaderContext)},i=function(r,o){var a=r.data.content?$l(r.data.content(t.h)):n("option",{params:{item:r.data,index:o}});return t.createVNode(nC,{key:r.value,node:r,optionChild:a,cascaderContext:e.cascaderContext,onClick:function(){l(r,"click")},onMouseenter:function(){l(r,"hover")},onChange:function(){!function(e,t){var n=t.disabled,r=t.max,o=t.inputVal,a=t.multiple,l=t.setVisible,i=t.setValue,u=t.treeNodes,c=t.treeStore,s=t.valueType;if(e&&!n&&!e.disabled){var d=e.setChecked(!e.isChecked());if(Ho(r)&&r<0&&console.warn("TDesign Warn:","max should > 0"),!(d.length>r&&Ho(r)&&r>0)){if(0===d.length){var v=c.getExpanded();setTimeout((function(){c.replaceExpanded(v),c.refreshNodes()}),0)}a||l(!1,{});var f=u.every((function(e){return d.indexOf(e.value)>-1}));o&&f&&l(!1,{}),i("single"===s?d:d.map((function(e){return c.getNode(e).getPath().map((function(e){return e.value}))})),e.checked?"uncheck":"check",e.getModel())}}}(r,e.cascaderContext)}},null)},u=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return t.createVNode("ul",{class:["".concat(r.value,"__menu"),"narrow-scrollbar",s(s({},"".concat(r.value,"__menu--segment"),o),"".concat(r.value,"__menu--filter"),n)],key:"".concat(r,"__menu").concat(a)},[e.map((function(e){return i(e,a)}))])};return function(){var l,i,c,d;return l=e.loading?n("loadingText",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.loadingText])):a.value.length?(i=e.cascaderContext,c=i.inputVal,d=i.treeNodes,c?u(d,!0):a.value.map((function(e,t){return u(e,!1,t!==a.value.length-1,t)}))):n("empty",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.empty])),t.createVNode("div",{class:["".concat(r.value,"__panel"),s({},"".concat(r.value,"--normal"),a.value.length&&!e.loading)]},[l])}}});var aC="__tdesign_tree-node__",lC=function(){return gg((function e(t){mg(this,e),s(this,aC,void 0),this[aC]=t}),[{key:"value",get:function(){return this[aC].value}},{key:"label",get:function(){return this[aC].label}},{key:"data",get:function(){return this[aC].data}},{key:"actived",get:function(){return this[aC].actived}},{key:"expanded",get:function(){return this[aC].expanded}},{key:"checked",get:function(){return this[aC].checked}},{key:"indeterminate",get:function(){return this[aC].indeterminate}},{key:"loading",get:function(){return this[aC].loading}},{key:"disabled",get:function(){return this[aC].isDisabled()}},{key:"getLevel",value:function(){return this[aC].getLevel()}},{key:"getIndex",value:function(){return this[aC].getIndex()}},{key:"isFirst",value:function(){return this[aC].isFirst()}},{key:"isLast",value:function(){return this[aC].isLast()}},{key:"isLeaf",value:function(){return this[aC].isLeaf()}},{key:"insertBefore",value:function(e){return this[aC].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[aC].insertAfter(e)}},{key:"appendData",value:function(e){return this[aC].append(e)}},{key:"getPath",value:function(){return this[aC].getPath().map((function(e){return e.getModel()}))}},{key:"getParent",value:function(){var e;return null===(e=this[aC].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[aC].getParents().map((function(e){return e.getModel()}))}},{key:"getRoot",value:function(){var e=this[aC].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[aC].getSiblings().map((function(e){return e.getModel()}))}},{key:"getChildren",value:function(e){var t=this[aC],n=!1,r=t.children;if(Array.isArray(r))if(r.length>0)if(e){var o=t.walk();o.shift(),n=o.map((function(e){return e.getModel()}))}else n=r.map((function(e){return e.getModel()}));else n=!1;else Mo(r)&&(n=r);return n}},{key:"remove",value:function(e){var t=this[aC];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map((function(e){return e.value})).indexOf(t.value)<0?Jm("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else Jm("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[aC],n=["value","label","disabled"],r=ta(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach((function(t){var n=St(e,(null==o?void 0:o[t])||t);Uo(n)||(r[t]=n)})),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();function iC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uC(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 13:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"set",value:function(e){var t=this,n=this.tree;Object.keys(e).forEach((function(n){(cC.call(sC,n)||"label"===n)&&(t[n]=e[n]),"disabled"===n&&t.setDisabled(e[n])})),n.updated(this)}},{key:"getParent",value:function(){return this.parent}},{key:"getParents",value:function(){for(var e=[],t=this.parent;t;)e.push(t),t=t.parent;return e}},{key:"getSiblings",value:function(){var e=this.parent,t=this.tree,n=[];return e?Array.isArray(e.children)&&(n=e.children):t&&(n=t.children),n}},{key:"getChildren",value:function(e){var t=!1,n=this.children;if(Array.isArray(n))if(n.length>0)if(e){var r=this.walk();r.shift(),t=r.map((function(e){return e.getModel()}))}else t=n.map((function(e){return e.getModel()}));else t=!1;else Mo(n)&&(t=n);return t}},{key:"getRoot",value:function(){var e=this.getParents();return e[e.length-1]||null}},{key:"getIndex",value:function(){return this.getSiblings().indexOf(this)}},{key:"getPath",value:function(){var e=this.getParents();return e.unshift(this),e.reverse()}},{key:"getLevel",value:function(){return this.getParents().length}},{key:"isRest",value:function(){var e=this.tree,t=e.config,n=e.filterMap,r=!1;if(e.hasFilter){var o=this.getModel();r=t.filter(o)}return r?n.set(this.value,!0):n.get(this.value)&&n.delete(this.value),r}},{key:"isVisible",value:function(){var e=this.tree,t=e.nodeMap,n=e.hasFilter,r=e.config.allowFoldNodeOnFilter;if(!t.get(this.value))return!1;if(n&&!r)return this.vmIsLocked||this.vmIsRest;var o=!0,a=this.getParents();return a.length>0&&(o=a.every((function(e){return e.expanded}))),n?o&&(this.vmIsRest||this.vmIsLocked):o}},{key:"isDisabledState",value:function(){var e=this.tree,t=this.parent,n=e.config,r=n.disabled,o=n.disableCheck,a=n.checkStrictly,l=r||!1;return this.disabled&&(l=!0),!a&&null!=t&&t.isDisabledState()&&(l=!0),"boolean"==typeof o?o&&(l=!0):"function"==typeof o&&o(this.getModel())&&(l=!0),l}},{key:"isDisabled",value:function(){var e=this.tree,t=e.hasFilter,n=e.config.allowFoldNodeOnFilter;return!(!t||n||!this.vmIsLocked||this.vmIsRest)||this.isDisabledState()}},{key:"isDraggable",value:function(){var e=!!St(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!St(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!St(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!St(this,"tree.config.checkable");return"boolean"==typeof this.checkable&&(e=this.checkable),e}},{key:"isActived",value:function(e){var t=this.tree,n=this.value,r=e||t.activedMap;return!(!t.nodeMap.get(n)||!r.get(n))}},{key:"isExpanded",value:function(e){var t=this.tree,n=this.value,r=this.vmIsLocked,o=t.hasFilter,a=t.config.allowFoldNodeOnFilter;if(o&&!a&&r)return!0;var l=e||t.expandedMap;return!(!t.nodeMap.get(n)||!l.get(n))}},{key:"isChecked",value:function(e){var t=this.children,n=this.tree,r=this.value,o=n.config,a=o.checkStrictly,l=o.valueMode;if(!n.nodeMap.get(r))return!1;if(!this.isCheckable())return!1;var i=e||n.checkedMap;if(a)return!!i.get(r);var u=!1;if(i.get(r)&&("onlyLeaf"!==l||this.isLeaf()))return!0;Array.isArray(t)&&t.length>0?u=t.every((function(e){return e.isChecked(i)})):u=this.getParents().some((function(e){return i.get(e.value)}));return u}},{key:"isIndeterminate",value:function(){var e=this.children,t=this.tree,n=this.value,r=t.config.checkStrictly;if(!t.nodeMap.get(n))return!1;if(!this.isCheckable())return!1;if(r)return!1;if(!Array.isArray(e))return!1;var o=null;return e.some((function(e){return!!e.isIndeterminate()||(Ko(o)&&(o=e.isChecked()),o!==e.isChecked())}))}},{key:"isFirst",value:function(){return this.getSiblings()[0]===this}},{key:"isLast",value:function(){var e=this.getSiblings();return e[e.length-1]===this}},{key:"isLeaf",value:function(){var e=!1;return e=Array.isArray(this.children)?this.children.length<=0:!this.children,e}},{key:"lock",value:function(e){this.vmIsLocked=e,this.expanded=this.isExpanded(),this.visible=this.isVisible()}},{key:"afterExpanded",value:function(){this.update(),this.expanded&&!0===this.children&&this.loadChildren(),this.updateChildren()}},{key:"toggleExpanded",value:function(e){return this.setExpanded(!this.isExpanded(),e)}},{key:"setExpanded",value:function(e,t){var n=this.tree,r=n.config,o=uC({directly:!1},t),a=n.expandedMap;if(o.directly||(a=new Map(n.expandedMap)),e){var l=[];l.push(this),r.expandParent&&this.getParents().forEach((function(e){l.push(e)})),l.forEach((function(e){var t,r=!1;e.parent?r=e.parent.isExpandMutex():r=null==n||null===(t=n.config)||void 0===t?void 0:t.expandMutex;r&&e.getSiblings().forEach((function(e){a.delete(e.value),e.update(),e.updateChildren()}));a.set(e.value,!0),e.update(),e.updateChildren()}))}else a.delete(this.value);return o.directly&&this.afterExpanded(),n.getExpanded(a)}},{key:"toggleActived",value:function(e){return this.setActived(!this.isActived(),e)}},{key:"setActived",value:function(e,t){var n=this.tree,r=uC({isAction:!0,directly:!1},t),o=n.config||{},a=n.activedMap;if(r.directly||(a=new Map(n.activedMap)),r.isAction&&this.isDisabledState())return n.getActived(a);if(this.isActivable())if(e){var l=Array.from(a.keys());o.activeMultiple||a.clear(),l.forEach((function(e){var t=n.getNode(e);null==t||t.update()})),a.set(this.value,!0)}else a.delete(this.value);return this.update(),n.getActived(a)}},{key:"hasEnableUnCheckedChild",value:function(){var e=this.children;if(!Array.isArray(e)||e.length<=0)return!1;var t=!1;return e.some((function(e){return!e.isDisabledState()&&(!e.isChecked()&&(e.isIndeterminate()?!!e.hasEnableUnCheckedChild()&&(t=!0,!0):(t=!0,!0)))})),t}},{key:"toggleChecked",value:function(e){if(this.isIndeterminate()){var t=this.hasEnableUnCheckedChild();return this.setChecked(t,e)}return this.setChecked(!this.isChecked(),e)}},{key:"setChecked",value:function(e,t){var n=this.tree,r=n.config||{},o=uC({isAction:!0,directly:!1},t),a=n.checkedMap;if(o.directly||(a=new Map(n.checkedMap)),!this.isCheckable())return n.getChecked(a);if(o.isAction&&this.isDisabledState())return n.getChecked(a);if(e===this.isChecked()&&!(this.isIndeterminate()&&!this.hasEnableUnCheckedChild()))return n.getChecked(a);(e?a.set(this.value,!0):a.delete(this.value),r.checkStrictly)?o.directly&&this.updateChecked():(this.spreadChildrenChecked(e,a,o),this.spreadParentChecked(e,a,o),o.directly&&n.getRelatedNodes([this.value],{reverse:!0}).forEach((function(e){e.updateChecked()})));return n.getChecked(a)}},{key:"spreadParentChecked",value:function(e,t,n){var r=uC({isAction:!0,directly:!1},n);if(this.isCheckable()){var o=this.children;Array.isArray(o)&&o.length>0&&t.delete(this.value);var a=this.parent;a&&a.spreadParentChecked(e,t,r)}}},{key:"spreadChildrenChecked",value:function(e,t,n){var r=uC({isAction:!0,directly:!1},n);if(this.isCheckable()&&(!r.isAction||!this.isDisabledState())){var o=this.children;Array.isArray(o)&&(o.length<=0||(t.delete(this.value),o.forEach((function(n){r.isAction&&n.isDisabledState()||(e?t.set(n.value,!0):t.delete(n.value),n.spreadChildrenChecked(e,t,r))}))))}}},{key:"setDisabled",value:function(e){this.disabled=e,this.update(),this.updateChildren()}},{key:"update",value:function(){this.level=this.getLevel(),this.vmIsFirst=this.isFirst(),this.vmIsLast=this.isLast(),this.vmIsLeaf=this.isLeaf(),this.vmCheckable=this.isCheckable(),this.vmIsRest=this.isRest(),this.actived=this.isActived(),this.expanded=this.isExpanded(),this.visible=this.isVisible(),this.tree.updated(this)}},{key:"updateChecked",value:function(){var e=this.tree,t=this.value,n=e.checkedMap;this.checked=this.isChecked(),this.indeterminate=this.isIndeterminate(),this.checked&&n.set(t,!0),e.updated(this)}},{key:"updateChildren",value:function(){var e=this;this.spreadChildren((function(t){t!==e&&(t.update(),t.updateChecked())}))}},{key:"updateParents",value:function(){var e=this;this.spreadParents((function(t){t!==e&&(t.update(),t.updateChecked())}))}},{key:"updateRelated",value:function(){this.tree.getRelatedNodes([this.value]).forEach((function(e){e.update(),e.updateChecked()}))}},{key:"walk",value:function(){var e=[];return this.spreadChildren((function(t){e.push(t)})),e}},{key:"spreadChildren",value:function(e){e(this);var t=this.children;Array.isArray(t)&&t.length>0&&t.forEach((function(t){null==t||t.spreadChildren(e)}))}},{key:"spreadParents",value:function(e){e(this);var t=this.parent;t&&(null==t||t.spreadParents(e))}},{key:"getModel",value:function(){var e=this.model;return e||(e=new lC(this),this.model=e),e}}]);var t}();function mC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hC(e){for(var t=1;t>>0,1):n.set(e,[]))},emit:function(e,t){var r=n.get(e);r&&r.slice().map((function(e){e(t)})),(r=n.get("*"))&&r.slice().map((function(n){n(e,t)}))}}}),[{key:"setConfig",value:function(e){var t=this.config,n=!1;Object.keys(e).forEach((function(r){var o=e[r];o!==t[r]&&(n=!0,t[r]=o)})),this.hasFilter=H(t.filter),n&&this.refreshState()}},{key:"getChildren",value:function(){return this.children}},{key:"getNode",value:function(e){var t=null;return Do(e)||Ho(e)?t=this.nodeMap.get(e):e instanceof pC&&(t=this.nodeMap.get(e.value)),t||(t=null),t}},{key:"getIndex",value:function(e){return this.nodes.indexOf(e)}},{key:"getParent",value:function(e){var t=null,n=this.getNode(e);return n&&(t=n.getParent()),t}},{key:"getParents",value:function(e){var t=this.getNode(e),n=[];return t&&(n=t.getParents()),n}},{key:"getNodeIndex",value:function(e){var t=this.getNode(e),n=-1;return t&&(n=t.getIndex()),n}},{key:"getNodes",value:function(e,t){var n=[],r="";if(Do(e)||Ho(e)?r=e:e instanceof pC&&(r=e.value),r||0===r){var o=this.getNode(r);o&&(n=o.walk())}else n=this.nodes.slice(0);if(t){var a=hC({filter:null,level:1/0},t);Ho(a.level)&&a.level!==1/0&&(n=n.filter((function(e){return e.level<=a.level}))),H(a.filter)&&(n=n.filter((function(e){var t=e.getModel();return a.filter(t)}))),Lt(a.props)&&(n=n.filter((function(e){var t=Object.keys(a.props).every((function(t){return e[t]===a.props[t]}));return t})))}return n}},{key:"append",value:function(e){var t=this;e.forEach((function(e){var n=new pC(t,e);t.children.push(n)})),this.reflow()}},{key:"reload",value:function(e){this.removeAll(),this.append(e)}},{key:"parseNodeData",value:function(e,t){var n="",r=null,o=null;return Do(e)||Ho(e)?(n=e,r=this.getNode(n),o=t):e instanceof pC&&t?(r=e,o=t):o=e,{node:r,data:o}}},{key:"appendNodes",value:function(e,t){var n=this.parseNodeData(e,t);n.data&&(n.node?(n.data instanceof pC?n.data.appendTo(this,n.node):j(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof pC?n.data.appendTo(this):Array.isArray(n.data)?this.append(n.data):this.append([n.data]))}},{key:"insertBefore",value:function(e,t){var n=this.getNode(e);n&&n.insertBefore(t)}},{key:"insertAfter",value:function(e,t){var n=this.getNode(e);n&&n.insertAfter(t)}},{key:"refreshNodes",value:function(){var e=this.children,t=this.nodes;t.length=0,e.forEach((function(e){var n=e.walk();Array.prototype.push.apply(t,n)}))}},{key:"reflow",value:function(e){this.shouldReflow=!0,this.updated(e)}},{key:"updated",value:function(e){var t,n,r=this,o=this.updatedMap;(e?o.set(e[fC],"changed"):this.getNodes().forEach((function(e){o.set(e[fC],"changed")})),this.updateTick)||(this.updateTick=(t=function(){r.updateTick=null,r.shouldReflow&&(r.refreshNodes(),r.emit("reflow")),r.lockFilterPathNodes();var e="t".concat((new Date).getTime()),t=Array.from(o.keys()).map((function(t){return o.set(t,e),r.privateMap.get(t)}));r.emit("update",{nodes:t,map:o}),r.shouldReflow=!1,o.clear()},(n=Promise.resolve()).then(t),n))}},{key:"getActived",value:function(e){var t=e||this.activedMap;return Array.from(t.keys())}},{key:"getActivedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter((function(e){return e.isActived()}))}},{key:"replaceActived",value:function(e){this.resetActived(),this.setActived(e)}},{key:"setActived",value:function(e){var t=this,n=this.config.activeMultiple,r=e.slice(0);n||(r.length=1),r.forEach((function(e){t.activedMap.set(e,!0);var n=t.getNode(e);n&&n.update()}))}},{key:"resetActived",value:function(){var e=this.getActived();this.activedMap.clear(),this.getRelatedNodes(e).forEach((function(e){e.update()}))}},{key:"getExpanded",value:function(e){var t=e||this.expandedMap;return Array.from(t.keys())}},{key:"replaceExpanded",value:function(e){var t=this.getExpanded(),n=Po(e,t),r=Po(t,e);this.setExpandedDirectly(r,!1),this.updateExpanded(r),this.setExpanded(n)}},{key:"setExpanded",value:function(e){this.setExpandedDirectly(e),this.updateExpanded(e)}},{key:"setExpandedDirectly",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.forEach((function(e){n?t.expandedMap.set(e,!0):t.expandedMap.delete(e);var r=t.getNode(e);r&&r.afterExpanded()}))}},{key:"resetExpanded",value:function(){var e=this.getExpanded();this.expandedMap.clear(),this.updateExpanded(e)}},{key:"updateExpanded",value:function(e){this.getRelatedNodes(e,{withParents:!1}).forEach((function(e){e.update()}))}},{key:"getChecked",value:function(e){var t=this.nodeMap,n=this.config,r=n.valueMode,o=n.checkStrictly,a=[],l=e||this.checkedMap;return t.forEach((function(e){e.isChecked(l)&&("parentFirst"!==r||o?("onlyLeaf"!==r||o||e.isLeaf())&&a.push(e.value):e.parent&&e.parent.isChecked(l)||a.push(e.value))})),a}},{key:"getCheckedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter((function(e){return e.isChecked()}))}},{key:"replaceChecked",value:function(e){this.resetChecked(),this.setChecked(e)}},{key:"setChecked",value:function(e){var t=this,n=this.config,r=n.checkStrictly;if(n.checkable&&(e.forEach((function(e){var n=t.getNode(e);n&&(r?(t.checkedMap.set(e,!0),n.updateChecked()):n.walk().forEach((function(e){t.checkedMap.set(e.value,!0)})))})),!r)){var o=this.getChecked();this.getRelatedNodes(o).forEach((function(e){e.updateChecked()}))}}},{key:"resetChecked",value:function(){var e=this.getChecked(),t=this.getRelatedNodes(e);this.checkedMap.clear(),t.forEach((function(e){e.updateChecked()}))}},{key:"refreshState",value:function(){this.nodeMap.forEach((function(e){e.update()}))}},{key:"updateAll",value:function(){this.nodeMap.forEach((function(e){e.update(),e.updateChecked()}))}},{key:"remove",value:function(e){var t=this.getNode(e);t&&t.remove()}},{key:"removeAll",value:function(){this.expandedMap.clear(),this.checkedMap.clear(),this.activedMap.clear(),this.filterMap.clear(),this.nodeMap.clear(),this.privateMap.clear(),this.updatedMap.clear(),this.nodes=[],this.children=[],this.reflow()}},{key:"getRelatedNodes",value:function(e,t){var n=this,r=hC({reverse:!1,withParents:!0},t),o=new Map;e.forEach((function(e){if(!o.get(e)){var t=n.getNode(e);if(t){var a=t.getParents().reverse(),l=t.walk();(r.withParents?a.concat(l):l).forEach((function(e){o.set(e.value,e)}))}}}));var a=Array.from(o.values());return r.reverse&&(a=a.reverse()),a}},{key:"emit",value:function(e,t){var n=this.config,r=this.emitter,o=n[Bn("on-".concat(e))];H(o)&&o(t),r.emit(e,t)}},{key:"lockFilterPathNodes",value:function(){var e=this.config,t=this.getNodes();this.prevFilter&&t.forEach((function(e){e.vmIsLocked&&e.lock(!1)}));var n=e.filter;n&&H(n)&&(this.prevFilter=e.filter,t.reverse().forEach((function(e){var t=e.getParent();t&&(e.vmIsRest||e.vmIsLocked)&&(t.vmIsLocked||t.lock(!0))})))}}])}();function yC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bC(e){for(var t=1;t-1})):t.getNodes().filter((function(e){return e.visible})))}}(t.inputVal,t.treeStore,t.setTreeNodes,e.filter)},y=function(){var e=p.value,t=e.value,n=e.treeStore;!function(e,t,n){var r=JO(t);if(e){if(j(r)&&0===n.length){var o=new Map,a=Ha(r,1)[0];if(!QO(a)){o.set(a,!0);var l=e.getNode(a);if(!l)return void e.refreshNodes();l.getParents().forEach((function(e){o.set(e.value,!0)}));var i=Array.from(o.keys());e.replaceExpanded(i)}}e.getExpanded()&&n.length&&e.replaceExpanded(n),e.refreshNodes()}}(n,t,m.expend),n.replaceChecked(JO(t))};t.watch((function(){return e.options}),(function(){var n=e.options,r=e.keys,o=void 0===r?{}:r,a=e.checkStrictly,l=e.lazy,i=e.load,u=e.valueMode,c=m.treeStore;if(n.length||c){if(c)c.reload(n),c.refreshNodes();else{var s=new gC({keys:bC(bC({},o),{},{children:Do(o.children)?o.children:"children"}),checkable:!0,expandMutex:!0,expandParent:!0,lazy:l,load:i,valueMode:u,checkStrictly:a,onLoad:function(){t.nextTick((function(){s.refreshNodes(),g()}))}});s.append(n),m.treeStore=s}y(),g()}}),{immediate:!0,deep:!0}),t.watch((function(){var t=e.checkStrictly,n=e.lazy,r=e.load,o=e.valueMode;return JSON.stringify({valueMode:o,checkStrictly:t,lazy:n,load:r})}),(function(){var t=m.treeStore;if(t){var r=e.checkStrictly,o=e.lazy,a=e.load,l=e.valueMode,i={checkStrictly:r,disabled:n,load:a,lazy:o,valueMode:l};t.setConfig(i)}}),{immediate:!0}),t.watch(u,(function(){var e=p.value,t=e.setValue,n=e.multiple,r=e.valueType;!function(e,t){var n=t.multiple,r=t.showAllLevels,o=t.valueType;return n&&!j(e)||!n&&j(e)&&"single"===o&&!r}(u.value,p.value)?m.scopeVal=n?[]:"":t(n?[]:"","invalid-value"),QO(u)||(m.scopeVal=function(e,t,n){if("single"===t)return e;var r=e;return n?r.map((function(e){return e.at(-1)})):r.at(-1)}(u.value,r,n)),m.treeStore&&(y(),g())}),{immediate:!0}),t.watch((function(){return d.value&&h.value}),(function(e){var t=p.value.setInputVal;e&&t("")})),t.watch((function(){return m.inputVal}),(function(){g()}));return{cascaderContext:p,isFilterable:h,innerValue:u,getCascaderItems:function(e){var t=[];return e.forEach((function(e){var n,r=null===(n=m.treeStore)||void 0===n?void 0:n.getNodes(e);r&&r[0]&&t.push(r[0].data)})),t}}};function OC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function CC(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"").replace(/\W?Y{2,4}|\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()}function FC(e,t,n,r){if(""===e||null===e)return Ya();var o=e;if(/[w|W]/g.test(t)){Do(o)||(o=Ya(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=Ya(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=Ya(a,"YYYY").locale(r||"zh-cn").isoWeeksInYear(),s=0;s<=c;s+=1){var d=u.add(s,"week");if("start"===n&&(d=d.subtract(5,"day")),d.format(i)===l)return d}}if(/Q/g.test(t)){Do(o)||(o=Ya(o).locale(r||"zh-cn").format(t));for(var v=o.split(/[-/.\s]/)[0],f=o.split(/[-/.\s]/)[1],p=t.split(/[-/.\s]/)[1],m=Ya(v,"YYYY").startOf("year"),h=0;h<4;h+=1){var g=m.add(h,"quarter");if(g.format(p)===f)return g}}var y=Ya(o,t).isValid()?Ya(o,t):Ya(o);return y.isValid()?y:(Qm("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),Ya())}function TC(e,t){return Array.isArray(e)?e.every((function(e){return""===e||(Ya(e,t).isValid()||Ya(e).isValid())})):""===e||(Ya(e,t).isValid()||Ya(e).isValid())}function IC(e,t){var n,r=t.format,o=t.targetFormat,a=t.dayjsLocale,l=void 0===a?"zh-cn":a,i=t.autoSwap;return n=Array.isArray(e)?function(e){var t=e.newDate,n=e.format,r=e.dayjsLocale,o=e.targetFormat,a=e.autoSwap;if(!t||!Array.isArray(t))return[];var l=t.map((function(e){return e&&FC(e,n).locale(r)}));return a&&l[0]&&l[1]&&l[0].toDate().getTime()>l[1].toDate().getTime()&&(l=[l[1],l[0]]),l.some((function(e){return e&&!e.isValid()}))?(Qm("DatePicker","Check whether the value\u3001format\u3001valueType format is valid.\nformat: '".concat(n,"' value: '").concat(t,"' valueType: '").concat(o,"'")),[]):"time-stamp"===o?l.map((function(e){return e&&e.toDate().getTime()})):"Date"===o?l.map((function(e){return e&&e.toDate()})):l.map((function(e){return e&&e.format(o||n)}))}({newDate:e,format:r,dayjsLocale:l,targetFormat:o,autoSwap:i}):function(e){var t=e.newDate,n=e.format,r=e.targetFormat,o=e.dayjsLocale;if(!t)return"";var a=FC(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(Qm("DatePicker","Check whether the format\u3001value format is valid.\nformat: '".concat(n,"' value: '").concat(t,"'")),"")}({newDate:e,format:r,dayjsLocale:l,targetFormat:o}),n}function MC(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function AC(e,t,n,r){var o,a=Array.isArray(e)?e:[e];return r=Array.isArray(r)?r:[r,r],a=a.map((function(e,o){return e?Ya(e,"string"==typeof e?t:void 0).format(n):MC(r[o],n)})),a=a.length?a:r.map((function(e){return MC(e,n)})),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function BC(e){var t=e.mode,n=void 0===t?"date":t,r=e.format,o=e.valueType,a=e.enableTimePicker;return"year"===n?{format:r||"YYYY",valueType:o||r||"YYYY",timeFormat:DC}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:DC}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:DC}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:DC}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:EC(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||DC}:(Qm("DatePicker","Invalid mode: ".concat(n)),{})}function LC(e){var t=e.value,n=e.mode,r=void 0===n?"date":n,o=e.format,a=e.timeFormat,l=void 0===a?"HH:mm:ss":a,i=e.enableTimePicker,u={year:[Ya().year(),Ya().year()],month:[Ya().month(),Ya().month()],time:[Ya().format(l),Ya().format(l)]};return"year"===r?u.year[1]+=10:"month"===r||"quarter"===r?u.year[1]+=1:"date"!==r&&"week"!==r||i||(11===u.month[0]?(u.year[1]+=1,u.month[1]=0):u.month[1]+=1),t&&Array.isArray(t)&&t.length?{year:t.map((function(e){return FC(e,o).year()})),month:t.map((function(e){return FC(e,o).month()})),time:t.map((function(e){return FC(e,o).format(l)}))}:u}function RC(e){var n,r,o,a,l=t.toRefs(e),i=Ha(qm(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed((function(){return BC({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})}));e.enableTimePicker&&(EC(s.value.format)||console.error("format: ".concat(s.value.format," \u4e0d\u89c4\u8303\uff0c\u5305\u542b\u65f6\u95f4\u9009\u62e9\u5fc5\u987b\u8981\u6709\u65f6\u95f4\u683c\u5f0f\u5316 HH:mm:ss")));var d=t.ref(AC(e.multiple?null===(n=u.value)||void 0===n?void 0:n[0]:u.value,s.value.format,s.value.timeFormat,e.defaultTime)),v=t.ref(FC(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(FC(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(IC(e.multiple?null===(a=u.value)||void 0===a?void 0:a[0]:u.value,{format:s.value.format}));return t.watchEffect((function(){u.value?TC(u.value,s.value.format)&&(p.value=IC(u.value,{format:s.value.format}),d.value=AC(u.value,s.value.format,s.value.timeFormat,e.defaultTime)):p.value=""})),{year:f,month:v,value:u,time:d,cacheValue:p,onChange:c}}function zC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function HC(e){for(var t=1;t25){var a=o(this).startOf(n).add(1,n).date(r),l=o(this).endOf(t);if(a.isBefore(l))return 1}var i=o(this).startOf(n).date(r).startOf(t).subtract(1,"millisecond"),u=this.diff(i,t,!0);return u<0?o(this).startOf("week").week():Math.ceil(u)},a.weeks=function(e){return void 0===e&&(e=null),this.week(e)}})}(YC);var $C=YC.exports,ZC={exports:{}};!function(e){e.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}(ZC);var qC=ZC.exports,XC={exports:{}};!function(e){e.exports=function(e,t,n){var r=t.prototype,o=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var l=e.name?e:e.$locale(),i=o(l[t]),u=o(l[n]),c=i||u.map((function(e){return e.slice(0,r)}));if(!a)return c;var s=l.weekStart;return c.map((function(e,t){return c[(t+(s||0))%7]}))},l=function(){return n.Ls[n.locale()]},i=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}(e.formats[t.toUpperCase()])},u=function(){var e=this;return{months:function(t){return t?t.format("MMMM"):a(e,"months")},monthsShort:function(t){return t?t.format("MMM"):a(e,"monthsShort","months",3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format("dddd"):a(e,"weekdays")},weekdaysMin:function(t){return t?t.format("dd"):a(e,"weekdaysMin","weekdays",2)},weekdaysShort:function(t){return t?t.format("ddd"):a(e,"weekdaysShort","weekdays",3)},longDateFormat:function(t){return i(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return u.bind(this)()},n.localeData=function(){var e=l();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return i(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(l(),"months")},n.monthsShort=function(){return a(l(),"monthsShort","months",3)},n.weekdays=function(e){return a(l(),"weekdays",null,null,e)},n.weekdaysShort=function(e){return a(l(),"weekdaysShort","weekdays",3,e)},n.weekdaysMin=function(e){return a(l(),"weekdaysMin","weekdays",2,e)}}}(XC);var GC=XC.exports,JC={exports:{}};!function(e){var t,n;e.exports=(t="month",n="quarter",function(e,r){var o=r.prototype;o.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=o.add;o.add=function(e,r){return e=Number(e),this.$utils().p(r)===n?this.add(3*e,t):a.bind(this)(e,r)};var l=o.startOf;o.startOf=function(e,r){var o=this.$utils(),a=!!o.u(r)||r;if(o.p(e)===n){var i=this.quarter()-1;return a?this.month(3*i).startOf(t).startOf("day"):this.month(3*i+2).endOf(t).endOf("day")}return l.bind(this)(e,r)}})}(JC);var QC=JC.exports,ex={exports:{}};!function(e){e.exports=function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var o=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return o.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return o.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return o.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return r.bind(this)(a)}}}(ex);var tx=ex.exports,nx={exports:{}};!function(e){e.exports=function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,a={},l=function(e){return(e=+e)+(e>68?1900:2e3)},i=function(e){return function(t){this[e]=+t}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=a[e];return t&&(t.indexOf?t:t.s.concat(t.f))},s=function(e,t){var n,r=a.meridiem;if(r){for(var o=1;o<=24;o+=1)if(e.indexOf(r(o,0,t))>-1){n=o>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[o,function(e){this.afternoon=s(e,!1)}],a:[o,function(e){this.afternoon=s(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,i("seconds")],ss:[r,i("seconds")],m:[r,i("minutes")],mm:[r,i("minutes")],H:[r,i("hours")],h:[r,i("hours")],HH:[r,i("hours")],hh:[r,i("hours")],D:[r,i("day")],DD:[n,i("day")],Do:[o,function(e){var t=a.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,i("month")],MM:[n,i("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,i("year")],YY:[n,function(e){this.year=l(e)}],YYYY:[/\d{4}/,i("year")],Z:u,ZZ:u};function v(n){var r,o;r=n,o=a&&a.formats;for(var l=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var a=r&&r.toUpperCase();return n||o[r]||e[r]||o[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),i=l.length,u=0;u-1)return new Date(("X"===t?1e3:1)*e);var r=v(t)(e),o=r.year,a=r.month,l=r.day,i=r.hours,u=r.minutes,c=r.seconds,s=r.milliseconds,d=r.zone,f=new Date,p=l||(o||a?1:f.getDate()),m=o||f.getFullYear(),h=0;o&&!a||(h=a>0?a-1:f.getMonth());var g=i||0,y=u||0,b=c||0,w=s||0;return d?new Date(Date.UTC(m,h,p,g,y,b,w+60*d.offset*1e3)):n?new Date(Date.UTC(m,h,p,g,y,b,w)):new Date(m,h,p,g,y,b,w)}catch(e){return new Date("")}}(t,i,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),s&&t!=this.format(i)&&(this.$d=new Date("")),a={}}else if(i instanceof Array)for(var f=i.length,p=1;p<=f;p+=1){l[1]=i[p-1];var m=n.apply(this,l);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}p===f&&(this.$d=new Date(""))}else o.call(this,e)}}}()}(nx);var rx=nx.exports;function ox(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ax(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return cx(e,t)&&Ya(e).locale(n).week()===Ya(t).locale(n).week()}function dx(e,t){return cx(e,t)&&e.getDate()===t.getDate()}function vx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function fx(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:ix,isSameQuarter:ux,isSameMonth:cx,isSameWeek:sx,isSameDate:dx}["isSame".concat((n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"date",n?n[0].toUpperCase().concat(n.substring(1,n.length)):n))](e,t,r)}function px(e,t,n){return t&&-1===vx(e,t)||n&&1===vx(e,n)}function mx(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function hx(e,t){return Ya(e).subtract(t,"month").toDate()}function gx(e,t){return Ya(e).add(t,"month").toDate()}function yx(e,t){for(var n=e.year,r=e.month,o=t.firstDayOfWeek,a=t.showWeekOfYear,l=void 0!==a&&a,i=t.disableDate,u=void 0===i?function(){return!1}:i,c=t.minDate,s=t.maxDate,d=t.dayjsLocale,v=void 0===d?"zh-cn":d,f=t.cancelRangeSelectLimit,p=void 0!==f&&f,m=function(e){var t=e.year,n=e.month;return new Date(t,n,1)}({year:n,month:r}),h=function(e){var t=e.year,n=e.month;return new Date(t,n,lx({year:t,month:n}))}({year:n,month:r}),g=lx({year:n,month:r}),y=[],b=1,w=mx();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&px(O,c,s),now:fx(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:Ya(O).locale(v)})}if(m.getDay()!==o)for(m.setDate(0);y.unshift({text:m.getDate().toString(),active:!1,value:new Date(m),disabled:H(u)&&u(m)||!p&&px(m,c,s),additional:!0,type:"prev-month",dayjsObj:Ya(m).locale(v)}),m.setDate(m.getDate()-1),m.getDay()!==Math.abs(o+6)%7;);for(;y.length<42;)h.setDate(h.getDate()+1),y.push({text:h.getDate(),active:!1,value:new Date(h),disabled:H(u)&&u(h)||!p&&px(h,c,s),additional:!0,type:"next-month",dayjsObj:Ya(h).locale(v)});var C=zn(y,7);return l&&C.forEach((function(e){e.unshift(ax(ax({},e[0]),{},{active:!1,value:e[0].value,text:Ya(e[0].value).locale(v).week(),dayjsObj:Ya(e[0].value).locale(v)}))})),C}function bx(e,t){var n=WC({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(t),t)),r=n.start,o=n.end,a=n.hoverStart,l=n.hoverEnd,i=n.type,u=void 0===i?"date":i,c=n.isRange,s=void 0!==c&&c,d=n.value,v=n.multiple,f=void 0!==v&&v;return"week"===u?e:s?e.map((function(e){return e.map((function(e){var t=e,n=e.value,i=r&&fx(r,n,u),c=a&&fx(a,n,u),s=o&&fx(o,n,u),d=l&&fx(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=Ya(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=Ya(n).isBetween(a,l,u,"[]")&&!t.additional,t.hoverStartOfRange=c,t.hoverEndOfRange=d),t}))})):e.map((function(e){return e.map((function(e){var t,n=e;f?n.active=null==d||null===(t=d.some)||void 0===t?void 0:t.call(d,(function(e){return fx(Ya(e).toDate(),n.value,u)&&!n.additional})):n.active=r&&fx(e.value,r,u)&&!n.additional;return n}))}))}function wx(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ha((e.match(/\d{1,2}(:\d{1,2})?(:\d{1,2})?(:\d{1,3})?/)||["0:0:0:0"])[0].split(":"),4),r=n[0],o=void 0===r?0:r,a=n[1],l=void 0===a?0:a,i=n[2],u=void 0===i?0:i,c=n[3];return{hours:+o,minutes:+l,seconds:+u,milliseconds:+(void 0===c?0:c),meridiem:t[0]}}Ya.extend($C),Ya.extend(qC),Ya.extend(GC),Ya.extend(QC),Ya.extend(tx),Ya.extend(rx),Ya.extend(UC);var Ox={allowInput:Boolean,borderless:Boolean,clearable:Boolean,defaultTime:{type:String,default:"00:00:00"},disableDate:{type:[Object,Array,Function]},disabled:{type:Boolean,default:void 0},enableTimePicker:Boolean,firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:void 0},inputProps:{type:Object},label:{type:[String,Function]},mode:{type:String,default:"date",validator:function(e){return!e||["year","quarter","month","week","date"].includes(e)}},multiple:Boolean,needConfirm:{type:Boolean,default:!0},placeholder:{type:[String,Array],default:void 0},popupProps:{type:Object},prefixIcon:{type:Function},presets:{type:Object},presetsPlacement:{type:String,default:"bottom",validator:function(e){return!e||["left","top","right","bottom"].includes(e)}},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffixIcon:{type:Function},timePickerProps:{type:Object},tips:{type:[String,Function]},value:{type:[String,Number,Array,Date],default:void 0},modelValue:{type:[String,Number,Array,Date],default:void 0},defaultValue:{type:[String,Number,Array,Date],default:""},valueDisplay:{type:[String,Function]},valueType:{type:String,default:""},onBlur:Function,onChange:Function,onConfirm:Function,onFocus:Function,onPick:Function,onPresetClick:Function},Cx=t.defineComponent({name:"TDatePickerHeader",props:{mode:{type:String,default:"date"},year:Number,month:Number,onMonthChange:Function,onYearChange:Function,onJumperClick:Function},setup:function(e){var n=Ga("classPrefix").classPrefix,r=Qa("date-picker__header"),o=Ga("datePicker").globalConfig,a=t.ref(s(e.year)),l=t.computed((function(){return"date"===e.mode||"week"===e.mode})),u=t.computed((function(){var t;return(null===(t=a.value.find((function(t){return t.value-e.year<=9&&t.value-e.year>=0})))||void 0===t?void 0:t.value)||e.year})),c=t.computed((function(){return o.value.months.map((function(e,t){return{label:e,value:t}}))}));function s(t){var n=[];if("year"===e.mode)for(var r=t%10,o=t-r+100,a=t-r-100;a<=o;a+=10)n.push({label:"".concat(a," - ").concat(a+9),value:a+9});else{n.push({label:"".concat(t),value:t});for(var l=1;l<=10;l++)n.push({label:"".concat(t+l),value:t+l}),n.unshift({label:"".concat(t-l),value:t-l})}return n}function d(t,n){var r=[];if("year"===e.mode){var o=t%10;if("add"===n)for(var a=t-o+10;a<=t-o+50;a+=10)r.push({label:"".concat(a," - ").concat(a+9),value:a});else for(var l=t-o-1;l>t-o-50;l-=10)r.unshift({label:"".concat(l-9," - ").concat(l),value:l})}else if("add"===n)for(var i=t+1;i<=t+10;i++)r.push({label:"".concat(i),value:i});else for(var u=t-1;u>t-10;u--)r.unshift({label:"".concat(u),value:u});return r}var v=t.computed((function(){return{year:{prev:o.value.preDecade,current:o.value.now,next:o.value.nextDecade},month:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},date:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth},quarter:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},week:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth}}}));function f(e){var t=e.e;0===t.target.scrollTop?p(t):t.target.scrollTop===t.target.scrollHeight-t.target.clientHeight&&m(t)}function p(e){var t;null==e||null===(t=e.stopPropagation)||void 0===t||t.call(e);var n=d(a.value[0].value,"reduce");a.value=[].concat(i(n),i(a.value))}function m(e){var t;null==e||null===(t=e.stopPropagation)||void 0===t||t.call(e);var n=d(a.value.slice(-1)[0].value,"add");a.value=[].concat(i(a.value),i(n))}return t.watch((function(){return e.mode}),(function(){a.value=s(e.year)})),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-controller")},[l.value&&t.createVNode(rO,{class:"".concat(r.value,"-controller-month"),value:e.month,options:c.value,onChange:function(t){var n;return null===(n=e.onMonthChange)||void 0===n?void 0:n.call(e,t)},popupProps:{attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-month-popup")}},null),t.createVNode(rO,{class:"".concat(r.value,"-controller-year"),value:"year"===e.mode?u.value:e.year,options:a.value,onChange:function(t){var n;return null===(n=e.onYearChange)||void 0===n?void 0:n.call(e,t)},popupProps:{onScroll:f,attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-year-popup")},panelTopContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:p},[t.createTextVNode("...")])},panelBottomContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:m},[t.createTextVNode("...")])}},null)]),t.createVNode(mO,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),xx=t.defineComponent({name:"TDatePickerCell",props:{time:String,text:[String,Number],value:Date,active:Boolean,highlight:Boolean,disabled:Boolean,startOfRange:Boolean,endOfRange:Boolean,hoverHighlight:Boolean,hoverStartOfRange:Boolean,hoverEndOfRange:Boolean,additional:Boolean,now:Boolean,firstDayOfMonth:Boolean,lastDayOfMonth:Boolean,onClick:Function,onMouseEnter:Function,dayjsObj:Ua.exports.Dayjs},setup:function(e){var n=Qa("date-picker__cell"),r=t.computed((function(){var t;return[n.value,(t={},s(s(s(s(s(s(s(s(s(s(t,"".concat(n.value,"--now"),e.now),"".concat(n.value,"--active"),e.active),"".concat(n.value,"--disabled"),e.disabled),"".concat(n.value,"--highlight"),e.highlight),"".concat(n.value,"--hover-highlight"),e.hoverHighlight),"".concat(n.value,"--active-start"),e.startOfRange),"".concat(n.value,"--active-end"),e.endOfRange),"".concat(n.value,"--hover-start"),e.hoverStartOfRange),"".concat(n.value,"--hover-end"),e.hoverEndOfRange),"".concat(n.value,"--additional"),e.additional),s(s(t,"".concat(n.value,"--first-day-of-month"),e.firstDayOfMonth),"".concat(n.value,"--last-day-of-month"),e.lastDayOfMonth))]}));function o(t){var n;if(!e.disabled){if(e.time){var r=wx(e.time),o=r.hours,a=r.minutes,l=r.seconds,i=r.milliseconds,u=r.meridiem,c=o;/am/i.test(u)&&12===c&&(c-=12),/pm/i.test(u)&&c<12&&(c+=12),e.value.setHours(c),e.value.setMinutes(a),e.value.setSeconds(l),e.value.setMilliseconds(i)}null===(n=e.onClick)||void 0===n||n.call(e,e.value,{e:t})}}function a(){var t;if(!e.disabled){if(e.time){var n=wx(e.time),r=n.hours,o=n.minutes,a=n.seconds,l=n.milliseconds,i=n.meridiem,u=r;/am/i.test(i)&&12===u&&(u-=12),/pm/i.test(i)&&u<12&&(u+=12),e.value.setHours(u),e.value.setMinutes(o),e.value.setSeconds(a),e.value.setMilliseconds(l)}null===(t=e.onMouseEnter)||void 0===t||t.call(e,e.value)}}return function(){return t.createVNode("td",{class:r.value,onClick:o,onMouseenter:a},[t.createVNode("div",{class:"".concat(n.value,"-inner")},[e.text])])}}});function Px(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jx(e){for(var t=1;t=f&&y<=m&&b>p&&b1})).length;return i.value?Ya(i.value,u.value):e?Ya().hour(0).minute(0).second(0):Ya()}));t.watch((function(){return h.value}),(function(){h.value&&i.value&&x(!0)})),t.watch((function(){return d.value}),(function(){d.value&&x(!0)})),t.onMounted((function(){v.value=function(e){var t=[],n=Ex.meridiem,r=Ex.hour,o=Ex.minute,a=Ex.second,l=Ex.milliSecond;return e.match(Fx).forEach((function(e){switch(e){case"H":case"HH":case"h":case"hh":t.push(r);break;case"a":case"A":t.push(n);break;case"m":case"mm":t.push(o);break;case"s":case"ss":t.push(a);break;case"SSS":t.push(l)}})),t}(u.value)}));var g=function(){var e,t=null===(e=p.value)||void 0===e?void 0:e.querySelector("div");return t?{offsetHeight:parseFloat(getComputedStyle(t).height),margin:parseFloat(getComputedStyle(t).marginTop)}:{offsetHeight:0,margin:0}},y=function(t,n){var r=Wx.indexOf(t);if(-1!==r){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))}return!0},b=function(t){var n=0;if(Wx.includes(t)){var r=Wx.indexOf(t),o=l.value[r]||1;n=t===Ex.hour?Tx.test(u.value)?11:23:t===Ex.milliSecond?999:59;var a=Na(0,n+1,Number(o)).map((function(e){return Oa(String(e),2,"0")}))||[];return e.hideDisabledTime&&e.disableTime?a.filter((function(n){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))})):a}return _x},w=function(e,t){e===Ex.hour&&/[h]{1}/.test(u.value)&&(t%=12);var n=b(e).indexOf(Oa(String(t),2,"0")),r=g(),o=r.offsetHeight+r.margin;return Math.abs(Math.max(0,n)*o)},O=function(t,n,r){var o,a,c,s;if(e.isShowPanel){var d=((null===(o=m[n])||void 0===o?void 0:o.scrollTop)||0)+Kx,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=_x[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),Wx.includes(t)){var x=59;t===Ex.hour?x=/[h]{1}/.test(u.value)?11:23:t===Ex.milliSecond&&(x=999);var P=Wx.indexOf(t),j=Na(0,x+1,Number(l.value[P])||1);c=function(e,t,n){return n<=1?t:e.sort((function(e,n){return Math.abs(t+1-e)-Math.abs(t+1-n)}))[0]}(j,Number(b(t)[Math.min(O-1,x+1,j.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=j[j.length-1]),t===Ex.hour&&v.value.includes(Ex.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var S=w(t,c);if(Ya(h.value).isValid()&&(!i.value||Ya(i.value,u.value,!0).isValid())){if(Wx.includes(t)){var k,N;s=y(t,c)?null===(k=(N=h.value)[t])||void 0===k?void 0:k.call(N,c).format(u.value):h.value.format(u.value)}else{var _=h.value.hour();s=C===kx&&_>=12?h.value.hour(_-12).format(u.value):C===Nx&&_<12?h.value.hour(_+12).format(u.value):h.value.format(u.value)}if(s!==i.value&&(null===(a=e.onChange)||void 0===a||a.call(e,s,r)),S!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===S)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:S,behavior:"smooth"})}}}},C=function(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",a=w(e,t),l=m[n];l&&l.scrollTop!==a&&y(e,t)&&(null===(r=l.scrollTo)||void 0===r||r.call(l,{top:a,behavior:o}))},x=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=i.value&&!n?"smooth":"auto",o=!!l.value.filter((function(e){return Number(e)>1})).length;t.nextTick((function(){v.value.forEach((function(e,t){var n,a,l;!o||o&&i.value?C(e,Wx.includes(e)?null===(n=(a=h.value)[e])||void 0===n?void 0:n.call(a):h.value.format("a"),t,r):C(e,null===(l=b(e))||void 0===l?void 0:l[0],t,r)}))})),e.resetTriggerScroll()},P=function(e,t){var n,r,o;return e===Ex.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===Ex.hour&&/[h]{1}/.test(u.value)&&(o%=12),o===Number(t))};return function(){var a,l,i,c;return t.createVNode("div",{class:"".concat(r.value,"-body"),ref:f},[t.createVNode("div",{class:"".concat(r.value,"-body-active-mask"),ref:p},[null===(a=(l=v.value).map)||void 0===a?void 0:a.call(l,(function(e,n){return t.createVNode("div",{key:"".concat(e,"_").concat(n)},null)}))]),null===(i=(c=v.value).map)||void 0===i?void 0:i.call(c,(function(a,l){return t.createVNode("ul",{key:"".concat(a,"_").concat(l),ref:function(e){return m[l]=e},class:"".concat(r.value,"-body-scroll"),onScroll:po((function(e){return O(a,l,e)}),50)},[b(a).map((function(i){return t.createVNode("li",{key:i,class:["".concat(r.value,"-body-scroll-item"),s(s({},o.value.disabled,!y(a,i)),o.value.current,P(a,i))],onClick:function(t){return function(t,n,r,o){if(y(t,n))if(Wx.includes(t))t===Ex.hour&&h.value.format("a")===Nx&&v.value.includes(Ex.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===kx&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===Nx&&l<12){var i;null===(i=e.onChange)||void 0===i||i.call(e,h.value.hour(l+12).format(u.value),o)}}}(a,i,l,t)}},[Wx.includes(a)?Tx.test(u.value)&&a===Ex.hour&&"00"===i?"12":i:n.value[i===kx?"anteMeridiem":"postMeridiem"]])}))])}))])}}});function Yx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $x(e){for(var t=1;t1})).length})),d=t.computed((function(){s.value;var t=Ya(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Ya().hour(0).minute(0).second(0).format(e.format)})),v=function(){t.nextTick((function(){u.value=!0}))},f=function(){u.value=!1},p=function(){return Uo(e.presets)?s.value?null:t.createVNode(Pi,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,Ya().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map((function(n){return t.createVNode(Pi,{key:n,theme:"primary",size:"small",variant:"text",onClick:function(){return t=e.presets[n],a="function"==typeof t?t():t,void("number"==typeof e.activeIndex?Array.isArray(a)?null===(r=e.onChange)||void 0===r||r.call(e,a[e.activeIndex]):Qm("TimePicker","preset: ".concat(e.presets," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!")):null===(o=e.onChange)||void 0===o||o.call(e,a));var t,r,o,a}},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}});var r}))};return t.onMounted((function(){v()})),t.watch((function(){return i.value}),(function(){v()})),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-section-body")},[t.createVNode(Ux,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||Dx,value:Ya(e.value,e.format).isValid()?e.value:d.value,triggerScroll:u.value,onChange:e.onChange,resetTriggerScroll:f,isShowPanel:e.isShowPanel}),null)]),l.value?t.createVNode("div",{class:"".concat(r.value,"-section-footer")},[t.createVNode(Pi,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(){var t;return null===(t=e.handleConfirmClick)||void 0===t?void 0:t.call(e,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function qx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xx(e){for(var t=1;t=o[1]&&(r?o[0]=o[1]-1:(o[0]=o[1],a[0]>=a[1]&&(a[0]=a[1]-1,-1===a[0]&&(a[0]=11,o=[o[0]-1,o[1]])))),{nextYear:o,nextMonth:a}}var _P=t.defineComponent({name:"TDateRangePicker",props:fP,setup:function(e,n){var r=n.slots,o=Qa("date-range-picker"),a=function(e){var n=Qa("date-range-picker"),r=Ga("datePicker").globalConfig,o=up({CalendarIcon:gu}).CalendarIcon,a=ei(),l=t.ref(!1),i=t.ref(),u=nP(e),c=u.value,d=u.onChange,v=u.time,f=u.month,p=u.year,m=u.cacheValue,h=u.isFirstValueSelected,g=t.computed((function(){return BC({mode:e.mode,format:e.format,valueType:e.valueType,enableTimePicker:e.enableTimePicker})})),y=t.ref(!1),b=t.ref(!1),w=t.ref(0),O=t.ref(IC(e.value,{format:g.value.format})),C=ly(),x=t.computed((function(){return oP(oP({},e.rangeInputProps),{},{size:e.size,ref:i,borderless:e.borderless,clearable:e.clearable&&!C.value,prefixIcon:function(){return a("prefixIcon")},readonly:C.value||!e.allowInput,separator:e.separator||r.value.rangeSeparator,placeholder:e.placeholder||r.value.placeholder[e.mode],activeIndex:y.value?w.value:void 0,suffixIcon:function(){return a("suffixIcon")||t.createVNode(o,null,null)},class:s({},"".concat(n.value,"__input--placeholder"),b.value),onClick:function(e){var t=e.position;w.value="first"===t?0:1},onClear:function(e){e.e.stopPropagation(),y.value=!1,null==d||d([],{dayjsValue:[],trigger:"clear"})},onBlur:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onBlur)||void 0===r||r.call(e,{value:t,partial:aP[a],e:o})},onFocus:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onFocus)||void 0===r||r.call(e,{value:t,partial:aP[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,TC(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach((function(e){n.push(FC(e,g.value.format).year()),r.push(FC(e,g.value.format).month()),o.push(FC(e,g.value.format).format(g.value.timeFormat))})),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(TC(e,g.value.format)||TC(c.value,g.value.format))&&(y.value=!1,TC(e,g.value.format)?null==d||d(IC(e,{format:g.value.format,targetFormat:g.value.valueType,autoSwap:!0}),{dayjsValue:e.map((function(e){return FC(e,g.value.format)})),trigger:"enter"}):TC(c.value,g.value.format)?O.value=IC(c.value,{format:g.value.format}):O.value=[])}})})),P=t.computed((function(){var t,r,o;return oP(oP({expandAnimation:!0},ta(e.popupProps,"on-visible-change")),{},{overlayInnerStyle:null!==(t=null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)&&void 0!==t?t:{width:"auto"},overlayClassName:[null===(o=e.popupProps)||void 0===o?void 0:o.overlayClassName,"".concat(n.value,"__panel-container")],onVisibleChange:function(t,n){var r,o,a,l;if(!C.value){if(null===(r=e.popupProps)||void 0===r||null===(o=r.onVisibleChange)||void 0===o||o.call(r,t,n),null===(a=e.popupProps)||void 0===a||null===(l=a["on-visible-change"])||void 0===l||l.call(a,t,n),"trigger-element-click"===n.trigger)return i.value.focus({position:{0:"first",1:"second"}[w.value]}),void(y.value=!0);y.value=t}}})}));return t.watch(c,(function(e){e?TC(e,g.value.format)&&(O.value=IC(e,{format:g.value.valueType,targetFormat:g.value.format})):O.value=[]}),{immediate:!0}),t.watch(w,(function(e){var t,n;l.value?y.value&&(null===(t=i.value)||void 0===t||null===(n=t.focus)||void 0===n||n.call(t,{position:{0:"first",1:"second"}[e]})):l.value=!0}),{immediate:!0}),{year:p,month:f,value:c,time:v,inputValue:O,popupVisible:y,rangeInputProps:x,popupProps:P,isHoverCell:b,activeIndex:w,isFirstValueSelected:h,cacheValue:m,onChange:d}}(e),l=a.inputValue,u=a.popupVisible,c=a.rangeInputProps,d=a.popupProps,v=a.value,f=a.year,p=a.month,m=a.time,h=a.cacheValue,g=a.activeIndex,y=a.isHoverCell,b=a.isFirstValueSelected,w=a.onChange,O=Oi(),C=ly(),x=t.computed((function(){return BC({mode:e.mode,enableTimePicker:e.enableTimePicker,format:e.format,valueType:e.valueType})})),P=t.ref(!1);function S(e){y.value=!0;var t=i(l.value);t[g.value]=IC(e,{format:x.value.format}),l.value=t}function k(){y.value=!1,l.value=h.value}function N(t,n){var r,o=n.e;null===(r=e.onPick)||void 0===r||r.call(e,t,{e:o,partial:g.value?"end":"start"}),y.value=!1,P.value=!0;var a=i(l.value);if(a[g.value]=IC(t,{format:x.value.format}),h.value=a,l.value=a,!e.enableTimePicker){var c=a.findIndex((function(e){return!e||!TC(e,x.value.format)}));if(-1===c&&2===a.length&&(!b.value&&FC(a[0],x.value.format).isAfter(FC(a[1],x.value.format))?(a[g.value?0:1]="",h.value=a,l.value=a):null==w||w(IC(a,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:a.map((function(e){return FC(e,x.value.format)})),trigger:"pick"})),b.value&&g.value)u.value=!1;else{var s=c;-1===s&&(s=g.value?0:1),g.value=s,b.value=!!a[0]}}}function _(t){var n=t.trigger,r="start"===t.partial?0:1,o={date:1,week:1,month:12,quarter:12,year:120}[e.mode]||0,a=new Date(f.value[r],p.value[r]),l=null;"prev"===n?l=hx(a,o):"current"===n?l=new Date:"next"===n&&(l=gx(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=NP(r,u,c,["year","quarter","month"].includes(e.mode));u=s.nextYear,c=s.nextMonth,f.value=u,p.value=c}function V(e){var t=wx(e),n=t.hours,r=t.minutes,o=t.seconds,a=t.milliseconds,u=t.meridiem,c=i(l.value),s=c[g.value],d=Ya(s,x.value.format).isValid()?Ya(s,x.value.format):Ya().year(f.value[g.value]).month(p.value[g.value]),v=n;/am/i.test(u)&&12===v&&(v-=12),/pm/i.test(u)&&v<12&&(v+=12);var y=d.hour(v).minute(r).second(o).millisecond(a).toDate();c[g.value]=y;var b=i(m.value);b[g.value]=e,m.value=b,P.value=!0,l.value=IC(c,{format:x.value.format}),h.value=IC(c,{format:x.value.format})}function D(t){var n,r=t.e,o=i(l.value),a=o.findIndex((function(e){return!e||!TC(e,x.value.format)}));-1===a&&2===o.length&&(!b.value&&FC(o[0],x.value.format).isAfter(FC(o[1],x.value.format))?(o[g.value?0:1]="",h.value=o,l.value=o):(null==e||null===(n=e.onConfirm)||void 0===n||n.call(e,{date:o.map((function(e){return Ya(e).toDate()})),e:r,partial:g.value?"end":"start"}),null==w||w(IC(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return FC(e,x.value.format)})),trigger:"confirm"})));if(b.value&&g.value)2===o.length&&(u.value=!1);else{var c=a;-1===c&&(c=g.value?0:1),g.value=c,b.value=!!o[0]}}function E(t,n){var r,o=t;(H(t)&&(o=t()),j(o))?(null==w||w(IC(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return FC(e,x.value.format)})),trigger:"preset"}),u.value=!1,null===(r=e.onPresetClick)||void 0===r||r.call(e,n)):console.error("preset: ".concat(t," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!"))}function F(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(f.value),a=i(p.value);o[r]=t;var l=["year","quarter","month"].includes(e.mode),u=NP(r,o,a,l);o=u.nextYear,a=u.nextMonth,f.value=o,l||(p.value=a)}function T(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(p.value);if(o[r]=t,f.value[0]===f.value[1]){var a,l,u,c;if(0===r)if(o[1]<=o[0])if(o[1]=o[0]+1,12===o[1])o[1]=0,f.value=[null===(a=f.value)||void 0===a?void 0:a[0],(null===(l=f.value)||void 0===l?void 0:l[1])+1];if(1===r)if(o[0]=Math.min(o[0],o[1]),o[0]>=o[1])if(o[0]-=1,-1===o[0])o[0]=11,f.value=[(null===(u=f.value)||void 0===u?void 0:u[0])-1,null===(c=f.value)||void 0===c?void 0:c[1]]}p.value=o}t.watch(u,(function(t){if(t)if(P.value=!1,h.value=IC(v.value||[],{format:x.value.valueType,targetFormat:x.value.format}),m.value=AC(v.value||[Ya().format(x.value.timeFormat),Ya().format(x.value.timeFormat)],x.value.format,x.value.timeFormat,e.defaultTime),v.value.length)if(2!==v.value.length||e.enableTimePicker)f.value=v.value.map((function(e){return FC(e,x.value.format).year()})),1===f.value.length&&(f.value=[f.value[0],f.value[0]]),p.value=v.value.map((function(e){return FC(e,x.value.format).month()})),1===p.value.length&&(p.value=[p.value[0],Math.min(p.value[0]+1,11)]);else{var n=v.value.map((function(e){return FC(e,x.value.format).month()}));f.value=v.value.map((function(e){return FC(e,x.value.valueType).year()})),f.value[0]===f.value[1]&&n[0]===n[1]&&(11===n[0]?n[0]-=1:n[1]+=1),p.value=n,"month"!==e.mode&&"quarter"!==e.mode||f.value[0]!==f.value[1]||(f.value=[f.value[0],f.value[0]+1])}else{var r=LC({value:v.value,mode:e.mode,format:x.value.format,enableTimePicker:e.enableTimePicker}),o=r.year,a=r.month;f.value=o,p.value=a}else g.value=0,y.value=!1,b.value=!1,l.value=IC(v.value,{format:x.value.valueType,targetFormat:x.value.format})}));var I=t.computed((function(){return{hoverValue:y.value?l.value:[],value:P.value?h.value:v.value,isFirstValueSelected:b.value,activeIndex:g.value,year:f.value,month:p.value,format:x.value.format,mode:e.mode,presets:e.presets,time:m.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,popupVisible:u.value,panelPreselection:e.panelPreselection,cancelRangeSelectLimit:e.cancelRangeSelectLimit,onCellClick:N,onCellMouseEnter:S,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:D,onPresetClick:E,onYearChange:F,onMonthChange:T,onTimePickerChange:V}}));return function(){return t.createVNode("div",{class:o.value},[t.createVNode(PP,{readonly:C.value,disabled:O.value,label:e.label,status:e.status,tips:e.tips||r.tips,inputValue:l.value,popupProps:d.value,rangeInputProps:c.value,popupVisible:u.value,panel:function(){return t.createVNode(kP,I.value,null)}},null)])}}}),VP={defaultTime:{type:Array,default:function(){return["00:00:00","23:59:59"]}},onCellClick:Function,onChange:Function,onConfirm:Function,onMonthChange:Function,onPanelClick:Function,onPresetClick:Function,onTimeChange:Function,onYearChange:Function};function DP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var EP=t.defineComponent({name:"TDateRangePickerPanel",props:function(e){for(var t=1;t=s[1])if(s[0]-=1,-1===s[0])s[0]=11,o.value=[(null===(f=o.value)||void 0===f?void 0:f[0])-1,null===(p=o.value)||void 0===p?void 0:p[1]]}a.value=s,null===(l=e.onMonthChange)||void 0===l||l.call(e,{partial:u,month:s[c],date:r.value.map((function(e){return Ya(e).toDate()})),trigger:"month-select"})}t.onMounted((function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map((function(e){return FC(e,d.value.format).month()}));o.value=r.value.map((function(e){return FC(e,d.value.valueType).year()})),o.value[0]===o.value[1]&&t[0]===t[1]&&(11===t[0]?t[0]-=1:t[1]+=1),a.value=t,["month","quarter"].includes(e.mode)&&o.value[0]===o.value[1]&&(o.value=[o.value[0],o.value[0]+1])}}));var S=t.computed((function(){return{hoverValue:f.value?p.value:[],value:v.value?u.value:r.value,activeIndex:m.value,year:o.value,month:a.value,mode:e.mode,format:d.value.format,presets:e.presets,time:l.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,panelPreselection:e.panelPreselection,popupVisible:!0,panelClick:e.onPanelClick,onCellClick:y,onCellMouseEnter:h,onCellMouseLeave:g,onJumperClick:b,onConfirmClick:O,onPresetClick:C,onYearChange:x,onMonthChange:P,onTimePickerChange:w}}));return function(){return t.createVNode(kP,S.value,null)}}}),FP=pi(cP),TP=pi(vP),IP=pi(_P),MP=pi(EP),AP={exports:{}},BP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var n in t)void 0===e[n]&&(e[n]=t[n]);return e},e.exports=t.default,e.exports.default=t.default}(BP,BP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,r.default)({format:t},l):(0,r.default)(t,l);if("string"==typeof e&&function(e){return/(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(e)}(t.format)){if(t.strictMode&&e.length!==t.format.length)return!1;var n,a=t.delimiters.find((function(e){return-1!==t.format.indexOf(e)})),i=t.strictMode?a:t.delimiters.find((function(t){return-1!==e.indexOf(t)})),u=function(e,t){for(var n=[],r=Math.max(e.length,t.length),o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,l=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw l}}}}(u);try{for(s.s();!(n=s.n()).done;){var d=(y=n.value,b=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(y,b)||o(y,b)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=d[0],f=d[1];if(!v||!f||v.length!==f.length)return!1;c[f.charAt(0)]=v}}catch(e){s.e(e)}finally{s.f()}var p=c.y;if(p.startsWith("-"))return!1;if(2===c.y.length){var m=parseInt(c.y,10);if(isNaN(m))return!1;p=m<(new Date).getFullYear()%100?"20".concat(c.y):"19".concat(c.y)}var h=c.m;1===c.m.length&&(h="0".concat(c.m));var g=c.d;return 1===c.d.length&&(g="0".concat(c.d)),new Date("".concat(p,"-").concat(h,"-").concat(g,"T00:00:00.000Z")).getUTCDate()===+c.d}var y,b;if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,r=(n=BP.exports)&&n.__esModule?n:{default:n};function o(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=n&&(void 0===a||l<=a)};var n,r=(n=zP.exports)&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}e.exports=t.default,e.exports.default=t.default}(WP,WP.exports);var KP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),(t=(0,r.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));!0===t.allow_wildcard&&0===e.indexOf("*.")&&(e=e.substring(2));var o=e.split("."),l=o[o.length-1];if(t.require_tld){if(o.length<2)return!1;if(!t.allow_numeric_tld&&!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(l))return!1;if(/\s/.test(l))return!1}if(!t.allow_numeric_tld&&/^\d+$/.test(l))return!1;return o.every((function(e){return!(e.length>63&&!t.ignore_max_length)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)&&(!/[\uff01-\uff5e]/.test(e)&&(!/^-|-$/.test(e)&&!(!t.allow_underscores&&/_/.test(e)))))}))};var n=o(zP.exports),r=o(BP.exports);function o(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1,ignore_max_length:!1};e.exports=t.default,e.exports.default=t.default}(KP,KP.exports);var UP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,r.default)(t),n=String(n),!n)return e(t,4)||e(t,6);if("4"===n)return l.test(t);if("6"===n)return u.test(t);return!1};var n,r=(n=zP.exports)&&n.__esModule?n:{default:n};var o="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",a="(".concat(o,"[.]){3}").concat(o),l=new RegExp("^".concat(a,"$")),i="(?:[0-9a-fA-F]{1,4})",u=new RegExp("^("+"(?:".concat(i,":){7}(?:").concat(i,"|:)|")+"(?:".concat(i,":){6}(?:").concat(a,"|:").concat(i,"|:)|")+"(?:".concat(i,":){5}(?::").concat(a,"|(:").concat(i,"){1,2}|:)|")+"(?:".concat(i,":){4}(?:(:").concat(i,"){0,1}:").concat(a,"|(:").concat(i,"){1,3}|:)|")+"(?:".concat(i,":){3}(?:(:").concat(i,"){0,2}:").concat(a,"|(:").concat(i,"){1,4}|:)|")+"(?:".concat(i,":){2}(?:(:").concat(i,"){0,3}:").concat(a,"|(:").concat(i,"){1,5}|:)|")+"(?:".concat(i,":){1}(?:(:").concat(i,"){0,4}:").concat(a,"|(:").concat(i,"){1,6}|:)|")+"(?::((?::".concat(i,"){0,5}:").concat(a,"|(?::").concat(i,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");e.exports=t.default,e.exports.default=t.default}(UP,UP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,c)).require_display_name||t.allow_display_name){var u=e.match(s);if(u){var g=u[1];if(e=e.replace(g,"").replace(/(^<|>$)/g,""),g.endsWith(" ")&&(g=g.slice(0,-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(g))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>h)return!1;var y=e.split("@"),b=y.pop(),w=b.toLowerCase();if(t.host_blacklist.length>0&&(0,r.default)(w,t.host_blacklist))return!1;if(t.host_whitelist.length>0&&!(0,r.default)(w,t.host_whitelist))return!1;var O=y.join("@");if(t.domain_specific_validation&&("gmail.com"===w||"googlemail.com"===w)){var C=(O=O.toLowerCase()).split("+")[0];if(!(0,o.default)(C.replace(/\./g,""),{min:6,max:30}))return!1;for(var x=C.split("."),P=0;P]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,l.default)(t,c)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&e.includes("#"))return!1;if(!t.allow_query_components&&(e.includes("?")||e.includes("&")))return!1;var i,d,v,f,p,m,h,g;if(h=e.split("#"),e=h.shift(),h=e.split("?"),e=h.shift(),(h=e.split("://")).length>1){if(i=h.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(i))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;h[0]=e.slice(2)}}if(""===(e=h.join("://")))return!1;if(h=e.split("/"),""===(e=h.shift())&&!t.require_host)return!0;if((h=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===h[0])return!1;if((d=h.shift()).indexOf(":")>=0&&d.split(":").length>2)return!1;var y=d.split(":"),b=(x=2,function(e){if(Array.isArray(e))return e}(C=y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(C,x)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(C,x)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=b[0],O=b[1];if(""===w&&""===O)return!1}var C,x;f=h.join("@"),m=null,g=null;var P=f.match(s);P?(v="",g=P[1],m=P[2]||null):(v=(h=f.split(":")).shift(),h.length&&(m=h.join(":")));if(null!==m&&m.length>0){if(p=parseInt(m,10),!/^[0-9]+$/.test(m)||p<=0||p>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(v,t.host_whitelist);if(""===v&&!t.require_host)return!0;if(!((0,a.default)(v)||(0,o.default)(v,t)||g&&(0,a.default)(g,6)))return!1;if(v=v||g,t.host_blacklist&&(0,r.default)(v,t.host_blacklist))return!1;return!0};var n=i(zP.exports),r=i(HP.exports),o=i(KP.exports),a=i(UP.exports),l=i(BP.exports);function i(e){return e&&e.__esModule?e:{default:e}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:il(e)>=t},len:function(e,t){return il(String(e))===t},number:function(e){return Ho(e)},enum:function(e,t){return t.includes(e)},idcard:function(e){return/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/i.test(e)},telnumber:function(e){return/^1[3-9]\d{9}$/.test(e)},pattern:function(e,t){return t.test(e)},validator:function(e,t){return t(e)}};function JP(e,t){return QP.apply(this,arguments)}function QP(){return QP=Bf(Hf.mark((function e(t,n){var r,o,a,l,i,u,c;return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 3:if(!(i0;return null!=r?r:o})),h=t.computed((function(){var e;return null!==(e=null==v?void 0:v.requiredMarkPosition)&&void 0!==e?e:"left"})),g=t.computed((function(){return r.label||e.label})),y=t.computed((function(){return!(null==v||!v.colon||!g.value)})),b=Qa("form__label"),w=t.computed((function(){return Wo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign})),O=t.computed((function(){return Wo(e.labelWidth)?null==v?void 0:v.labelWidth:e.labelWidth})),C=t.computed((function(){return[a.value.label,s(s(s(s(s({},"".concat(b.value,"--required"),m.value),"".concat(b.value,"--required-right"),m.value&&"right"===h.value),"".concat(b.value,"--top"),g.value&&("top"===w.value||!O.value)),"".concat(b.value,"--left"),"left"===w.value&&O.value),"".concat(b.value,"--right"),"right"===w.value&&O.value)]})),x=t.computed((function(){return"".concat(f.value,"-is-").concat(e.status||"default"," ").concat("success"===e.status?a.value.successBorder:"")})),P=function(){if(0!==Number(O.value)){var n={};return O.value&&"top"!==w.value&&(n=Ho(O.value)?{width:"".concat(O.value,"px")}:{width:O.value}),t.createVNode("div",{class:C.value,style:n},[t.createVNode("label",{for:e.for||null},[o("label")]),y.value&&l.value.colonText])}},S=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=D.value;if(F.value===uy.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d}[r]||u)}return null},k=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:S()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:S(),params:e}))||void 0}},N=t.computed((function(){if(!Z.value)return"";if(F.value===uy.SUCCESS)return e.successBorder?[a.value.success,a.value.successBorder].join(" "):a.value.success;if(D.value.length){var t=D.value[0].type||"error";return e.status?x.value:"error"===t?a.value.error:a.value.warning}})),_=t.computed((function(){return[a.value.controls,N.value]})),V=t.computed((function(){var e={};return O.value&&"top"!==w.value&&(e=Ho(O.value)?{marginLeft:"".concat(O.value,"px")}:{marginLeft:O.value}),e})),D=t.ref([]),E=t.ref([]),F=t.ref(uy.TO_BE_VALIDATED),T=t.ref(!1),I=t.ref(!1),M=function(){I.value=!1,D.value=[],E.value=[],F.value=uy.TO_BE_VALIDATED},A=function(){var n=Bf(Hf.mark((function n(){var r,o=arguments;return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=o.length>0&&void 0!==o[0]?o[0]:null==v?void 0:v.resetType,e.name){n.next=3;break}return n.abrupt("return");case 3:return"empty"===r?Va(null==v?void 0:v.data,e.name,(a=void 0,l=void 0,"[object String]"===(l=Object.prototype.toString.call(St(null==v?void 0:v.data,e.name)))&&(a=""),"[object Array]"===l&&(a=[]),"[object Object]"===l&&(a={}),a)):"initial"===r&&Va(null==v?void 0:v.data,e.name,K.value),n.next=6,t.nextTick();case 6:T.value?I.value=!0:M();case 7:case"end":return n.stop()}var a,l}),n)})));return function(){return n.apply(this,arguments)}}(),B=t.computed((function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage})),L=t.computed((function(){var t;if(null!==(t=e.rules)&&void 0!==t&&t.length)return e.rules;if(!e.name)return[];var n="".concat(e.name).lastIndexOf(".")||-1,r="".concat(e.name).slice(n+1);return St(null==v?void 0:v.rules,e.name)||St(null==v?void 0:v.rules,r)||[]})),R=function(){var t=Bf(Hf.mark((function t(n){var r,o;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?L.value:L.value.filter((function(e){return(e.trigger||"change")===n})),!L.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=4;break}return t.abrupt("return",o);case 4:return o.allowSetValue=!0,t.next=7,ej(W.value,o.rules);case 7:return o.resultList=t.sent,o.errorList=o.resultList.filter((function(e){return!0!==e.result})).map((function(t){return Object.keys(t).forEach((function(n){if(!t.message&&B.value[n]){var r=Do(e.label)?e.label:e.name;t.message=(o=B.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,(function(e,t){return a[t.trim()]||""})))}var o,a})),t})),o.successList=o.resultList.filter((function(e){return!0===e.result&&e.message&&"success"===e.type})),t.abrupt("return",o);case 11:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),z=function(){var t=Bf(Hf.mark((function t(n,r){var o,a,l,i,u;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return T.value=!0,$.value=r,t.next=4,R(n);case 4:return o=t.sent,a=o.successList,l=o.errorList,i=o.rules,u=o.resultList,o.allowSetValue&&(E.value=a,D.value=l),i.length&&(F.value=l.length?uy.FAIL:uy.SUCCESS),I.value&&M(),T.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 15:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),H=function(){var t=Bf(Hf.mark((function t(n){var r,o,a;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,R(n);case 2:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),W=t.computed((function(){return(null==v?void 0:v.data)&&St(null==v?void 0:v.data,e.name)})),K=t.ref(void 0),U=t.toRefs(e).name,Y=t.reactive({name:U,resetHandler:M,resetField:A,validate:z,validateOnly:H,setValidateMessage:function(e){(e||j(e))&&(0===e.length&&(D.value=[],F.value=uy.SUCCESS),D.value=e.map((function(e){return oj(oj({},e),{},{result:!1})})),F.value=uy.FAIL)}});t.onMounted((function(){K.value=Mr(W.value),null==v||v.children.push(Y)})),t.onBeforeUnmount((function(){v&&(v.children=null==v?void 0:v.children.filter((function(e){return e!==Y})))})),t.watch(W,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,z("change");case 2:case"end":return e.stop()}}),e)}))),{deep:!0}),t.watch((function(){return[e.name,JSON.stringify(e.rules)].join(",")}),(function(){z("change")}));var $=t.ref(void 0),Z=t.computed((function(){return Mo($.value)?$.value:Mo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage})),q=t.computed((function(){return[a.value.formItem,aj(p.value,e.name),s(s({},a.value.formItemWithHelp,X.value),a.value.formItemWithExtra,G.value)]})),X=t.computed((function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null})),G=t.computed((function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=D.value;return Z.value&&null!=r&&null!==(e=r[0])&&void 0!==e&&e.message?n(r[0].message):E.value.length?n(E.value[0].message):null})),J=t.computed((function(){var e=o("tips");if(!e)return null;var n=["".concat(p.value,"-tips"),"".concat(f.value,"-tips"),x.value];return t.createVNode("div",{class:n},[e])})),Q=function(){var e=Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,z("blur");case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return t.provide(sy,{handleBlur:Q}),function(){return t.createVNode("div",{class:q.value},[P(),t.createVNode("div",{class:_.value,style:V.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),k()]),X.value,J.value,G.value])])}}}),ij={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},formControlledComponents:{type:Array},id:{type:String,default:void 0},labelAlign:{type:String,default:"right",validator:function(e){return!e||["left","right","top"].includes(e)}},labelWidth:{type:[String,Number],default:"100px"},layout:{type:String,default:"vertical",validator:function(e){return!e||["vertical","inline"].includes(e)}},preventSubmitDefault:{type:Boolean,default:!0},readonly:{type:Boolean,default:void 0},requiredMark:{type:Boolean,default:void 0},requiredMarkPosition:{type:String,default:"left",validator:function(e){return!e||["left","right"].includes(e)}},resetType:{type:String,default:"empty",validator:function(e){return!e||["empty","initial"].includes(e)}},rules:{type:Object},scrollToFirstError:{type:String,validator:function(e){return!e||["","smooth","auto"].includes(e)}},showErrorMessage:{type:Boolean,default:!0},statusIcon:{type:[Boolean,Function],default:void 0},submitWithWarningMessage:Boolean,onReset:Function,onSubmit:Function,onValidate:Function},uj=t.defineComponent({name:"TForm",props:ij,setup:function(e,n){var r=n.expose,o=ei(),a=t.toRefs(e),l=a.disabled,i=a.readonly;t.provide("formDisabled",{disabled:l}),t.provide("formReadonly",{readonly:i});var u=t.ref(null),c=t.ref([]),d=t.toRefs(e),v=d.showErrorMessage,f=d.labelWidth,p=d.labelAlign,m=d.data,h=d.colon,g=d.requiredMark,y=d.requiredMarkPosition,b=d.rules,w=d.errorMessage,O=d.resetType;t.provide(cy,t.reactive({showErrorMessage:v,labelWidth:f,labelAlign:p,data:m,colon:h,requiredMark:g,requiredMarkPosition:y,rules:b,errorMessage:w,resetType:O,children:c,renderContent:o}));var C=Qa("form"),x=iy(),P=t.computed((function(){return[x.value.form,s({},"".concat(C.value,"-inline"),"inline"===e.layout)]})),S=Qa("form-item"),k=function(t){if(Mo(t))return"";var n=Ha(Object.keys(t),1)[0];if(e.scrollToFirstError){var r=aj(S.value,n);N(r)}var o=t[n];return j(o)?o.filter((function(e){return!e.result}))[0].message:""},N=function(t){var n=Ha(u.value.getElementsByClassName(t),1)[0],r=e.scrollToFirstError;r&&n&&n.scrollIntoView({behavior:r})},_=function(e,t){return!t||!j(t)||-1!==t.indexOf("".concat(e))},V=function(e){var t=e.reduce((function(e,t){return Object.assign(e||{},t)}),{});return Object.keys(t).forEach((function(e){!0===t[e]&&delete t[e]})),!!Ro(t)||t},D=function(){var t=Bf(Hf.mark((function t(n){var r,o,a,l,i,u,s,d,v,f;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=(o=n||{}).fields,l=o.trigger,i=void 0===l?"all":l,u=o.showErrorMessage,s=c.value.filter((function(e){return H(e.validate)&&_(String(e.name),a)})).map((function(e){return e.validate(i,u)})),t.next=4,Promise.all(s);case 4:return d=t.sent,v=V(d),f=k(v),null===(r=e.onValidate)||void 0===r||r.call(e,{validateResult:v,firstError:f}),t.abrupt("return",v);case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),E=function(){var e=Bf(Hf.mark((function e(t){var n,r,o,a,l,i;return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(n=t||{}).fields,o=n.trigger,a=void 0===o?"all":o,l=c.value.filter((function(e){return H(e.validateOnly)&&_(String(e.name),r)})).map((function(e){return e.validateOnly(a)})),e.next=4,Promise.all(l);case 4:return i=e.sent,e.abrupt("return",V(i));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),F=t.ref(),T=function(){var e=Bf(Hf.mark((function e(t){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:F.value=t,Ll(u.value);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),I=t.ref();return r({validate:D,submit:T,reset:function(e){I.value=e,u.value.reset()},clearValidate:function(e){c.value.forEach((function(t){H(t.resetHandler)&&_(String(t.name),e)&&t.resetHandler()}))},setValidateMessage:function(e){var t=Object.keys(e);if(t.length){var n=c.value.filter((function(e){return H(e.setValidateMessage)&&t.includes("".concat(e.name))})).map((function(t){return t.setValidateMessage(e[t.name])}));Promise.all(n)}},validateOnly:E}),function(){return t.createVNode("form",{ref:u,class:P.value,onSubmit:function(t){return function(t){e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),D(F.value).then((function(n){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,{validateResult:n,firstError:k(n),e:t})})),F.value=void 0}(t)},onReset:function(t){return function(t){var n;e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),c.value.filter((function(e){var t;return H(e.resetField)&&_(String(e.name),null===(t=I.value)||void 0===t?void 0:t.fields)})).forEach((function(e){var t;return e.resetField(null===(t=I.value)||void 0===t?void 0:t.type)})),I.value=void 0,null===(n=e.onReset)||void 0===n||n.call(e,{e:t})}(t)}},[o("default")])}}}),cj=pi(uj),sj=pi(lj),dj={allowUncheck:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},label:{type:[String,Function]},name:{type:String,default:""},readonly:{type:Boolean,default:void 0},value:{type:[String,Number,Boolean],default:void 0},onChange:Function,onClick:Function},vj=Symbol("RadioGroupProvide"),fj=Symbol("RadioButtonProvide"),pj=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:dj,setup:function(e,n){var r=n.attrs,o=t.ref(),a=t.toRefs(e),l=Ha(qm(a.checked,a.modelValue,e.defaultChecked,e.onChange,"checked"),2),u=l[0],c=l[1],d=t.computed((function(){return v?e.value===v.value:u.value})),v=t.inject(vj,void 0),f=t.computed((function(){return Boolean(e.allowUncheck||(null==v?void 0:v.allowUncheck))})),p=function(e){e.stopPropagation()},m=function(t){var n;if(!w.value&&!O.value&&(null===(n=e.onClick)||void 0===n||n.call(e,{e:t}),!d.value||f.value))if(v){var r=d.value&&f.value?void 0:e.value;v.setValue(r,{e:t,name:v.name})}else{var o=!f.value||!d.value;c(o,{e:t})}},h=t.computed((function(){return ol({focus:r.onFocus,blur:r.onBlur,keydown:r.onKeydown,keyup:r.onKeyup,keypresss:r.onKeypresss})})),g=t.computed((function(){var e=[].concat(i(Object.keys(h.value)),["input","change"]).map((function(e){return"on".concat(e[0].toUpperCase()).concat(e.slice(1))}));return ta(r,e)})),y=t.computed((function(){return null==v?void 0:v.disabled})),b=t.computed((function(){return null==v?void 0:v.readonly})),w=Oi({afterDisabled:y}),O=ly({afterReadonly:b}),C=t.computed((function(){return{name:v?v.name:e.name,checked:d.value,disabled:w.value,readonly:O.value,value:e.value}})),x=el().STATUS,P=t.inject(fj,void 0),j=Qa("radio-button"),S=Qa("radio"),k=t.computed((function(){return P?j.value:S.value})),N=t.computed((function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]})),_=ni();return function(){return t.createVNode("label",t.mergeProps({ref:o,class:N.value},g.value,{tabindex:w.value?void 0:"0",onClick:m}),[t.createVNode("input",t.mergeProps({type:"radio",class:"".concat(k.value,"__former")},h.value,C.value,{onClick:p,tabindex:"-1","data-value":Do(e.value)?"'".concat(e.value,"'"):e.value,"data-allow-uncheck":f.value||void 0}),null),t.createVNode("span",{class:"".concat(k.value,"__input")},null),t.createVNode("span",{class:"".concat(k.value,"__label")},[_("default","label")])])}}}),mj={allowUncheck:Boolean,disabled:{type:Boolean,default:void 0},name:{type:String,default:""},options:{type:Array},readonly:{type:Boolean,default:void 0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"radio",validator:function(e){return!e||["radio","button"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},variant:{type:String,default:"outline",validator:function(e){return!e||["outline","primary-filled","default-filled"].includes(e)}},onChange:Function};function hj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gj(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?wj:l,u=nl(a,bj),c=i&&"MutationObserver"in i,s=function(){r&&(r.disconnect(),r=void 0)},d=t.watch((function(){return n=e,o=t.unref(n),null!==(r=null==o?void 0:o.$el)&&void 0!==r?r:o;var n,r,o}),(function(e){s(),c&&i&&e&&(r=new MutationObserver(n)).observe(e,u)}),{immediate:!0}),v=function(){s(),d()};return o=v,t.getCurrentScope()&&t.onScopeDispose(o),{isSupported:c,stop:v}}function Cj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xj(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if("outline"!==e.variant){var n=l.value.querySelector(f.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?p.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(f.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;p.value=xj(xj({},p.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else p.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.nextTick();case 2:m();case 3:case"end":return e.stop()}}),e)})))),t.onMounted((function(){m(!0),mh(l,Ea(Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.nextTick();case 2:m();case 3:case"end":return e.stop()}}),e)}))),300));var e=l.value.querySelector("".concat(f.value," .").concat(i.value,"__label"));e&&(v=Oj(e,(function(e){e.forEach((function(e){"characterData"===e.type&&m()}))}),{attributes:!0,childList:!0,characterData:!0,subtree:!0}))})),t.onUnmounted((function(){var e;null===(e=v)||void 0===e||e.stop()}));var h=t.toRefs(e),g=h.name,y=h.disabled,b=h.readonly;t.provide(vj,t.reactive({name:g,disabled:y,readonly:b,value:o,allowUncheck:e.allowUncheck,setValue:a}));var w=Qa("radio-group"),O=ti(),C=function(){if(e.variant.includes("filled")&&!Wo(o.value))return t.createVNode("div",{style:p.value,class:"".concat(w.value,"__bg-block")},null)},x=t.computed((function(){return["".concat(w.value),d.value[e.size],s(s(s({},"".concat(w.value,"__outline"),"outline"===e.variant),"".concat(w.value,"--filled"),e.variant.includes("filled")),"".concat(w.value,"--primary-filled"),"primary-filled"===e.variant)]}));return function(){return t.createVNode("div",{ref:l,class:x.value},[O("default")||(null===(n=e.options)||void 0===n?void 0:n.map((function(n){var r=n;(Ho(n)||Do(n))&&(r={value:n,label:n.toString()});var a="button"===e.theme?yj:pj;return t.createVNode(a,{key:"radio-group-options-".concat(r.value,"-").concat(Math.random()),name:e.name,checked:o.value===r.value,disabled:"disabled"in r?r.disabled:e.disabled,value:r.value},{default:function(){return[H(r.label)?r.label(t.h):r.label]}})}))),C()]);var n}}}),jj=pi(pj),Sj=pi(Pj),kj=pi(yj),Nj={disabled:{type:Boolean,default:void 0},inputNumberProps:{type:[Boolean,Object],default:!1},label:{type:[String,Boolean,Function],default:!0},layout:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},marks:{type:[Object,Array]},max:{type:Number,default:100},min:{type:Number,default:0},range:Boolean,showStep:Boolean,step:{type:Number,default:1},tooltipProps:{type:Object},value:{type:[Number,Array],default:void 0},modelValue:{type:[Number,Array],default:void 0},defaultValue:{type:[Number,Array],default:0},onChange:Function,onChangeEnd:Function},_j=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},Vj=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};function Dj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ej(e){for(var t=1;t100?r=100:r<0&&(r=0);var o=100*g.value/m.value,a=Math.round(r/o)*o*m.value*.01;a+=d.min,a=Number(parseFloat("".concat(a)).toFixed(d.precision)),n.emit("input",a),t.nextTick((function(){var e,t;l.value&&(null===(e=(t=l.value).updatePopper)||void 0===e||e.call(t))}))}},w=function(){v.value.focus(),u(!0)},O=function(){p.dragging||u(!1)},C=function(t){var n=t;if(p.dragging){f.value=!0,p.isClick=!1,null!=d&&d.resetSize&&H(null==d?void 0:d.resetSize)&&d.resetSize();var r=0,o=d.sliderSize,a=n.type,l=n.clientY,i=n.clientX;if("touchmove"===a){var u=n.touches,c=[u[0].clientY,u[0].clientX];l=c[0],i=c[1]}r=(r=e.vertical?p.startY-l:i-p.startX)/o*100,p.newPos=p.startPos+r,b(p.newPos)}},x=function(){p.dragging&&(setTimeout((function(){p.dragging=!1,u(!1),p.isClick||b(p.newPos),f.value&&n.emit("mouseup"),f.value=!1}),0),window.removeEventListener("mousemove",C),window.removeEventListener("touchmove",C),window.removeEventListener("mouseup",x),window.removeEventListener("touchend",x),window.removeEventListener("contextmenu",x))};function P(t){d.disabled||(t.preventDefault(),function(t){p.dragging=!0,p.isClick=!0;var n=t.type,r=t.clientY,o=t.clientX;if("touchstart"===n){var a=t.touches,l=[a[0].clientY,a[0].clientX];r=l[0],o=l[1]}e.vertical?p.startY=r:p.startX=o,p.startPos=parseFloat(h.value),p.newPos=p.startPos}(t),window.addEventListener("mousemove",C),window.addEventListener("mouseup",x),window.addEventListener("touchmove",C),window.addEventListener("touchend",x),window.addEventListener("contextmenu",x))}var j=function(e){if(!d.disabled){var t=g.value/m.value*100;"sub"===e&&(t=-t),p.newPos=parseFloat(h.value)+t,b(p.newPos)}},S=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||j("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||j("add")};return n.expose({setPosition:b}),function(){return t.createVNode("div",{ref:v,class:"".concat(r.value,"-wrapper"),style:y.value,tabindex:"0","show-tooltip":c.value,onMouseenter:w,onMouseleave:O,onMousedown:P,onTouchstart:P,onFocus:w,onBlur:O,onKeydown:S},[t.createVNode(Lh,t.mergeProps({ref:l,hideEmptyPopup:!0,disabled:!c.value},i.value),{default:function(){return[t.createVNode("div",{class:[r.value,s({},"".concat(r.value,"--dragging"),p.dragging)]},null)]}})])}}}),Aj=t.defineComponent({name:"TSliderMark",props:{mark:{type:[Object,Array,String,Number]},point:{type:Number},onClickMarkPoint:{type:Function,default:function(){}}},setup:function(e){var n=Qa("slider__mark"),r=function(t){var n;t.stopPropagation(),null==e||null===(n=e.onClickMarkPoint)||void 0===n||n.call(e,e.point)};return function(){return t.createVNode("div",{class:"".concat(n.value,"-text"),onClick:r},[e.mark])}}});function Bj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Lj(e){for(var t=1;te.max)return[];if(0===e.step)return console.warn("[Element Warn][Slider]step should not be 0."),[];for(var t=S.value/e.step,n=100*e.step/S.value,r=[],o=1;o100*(N.value-e.max)/S.value})):r.filter((function(t){return t>100*(m.value-e.min)/S.value}))})),V=t.computed((function(){var t=[e.min,e.max,e.step].map((function(e){var t="".concat(e).split(".");return t[1]?t[1].length:0}));return Math.max.apply(null,t)})),D=function(t){var n=[e.min,e.max],r=n[0],o=n[1];if(!(r>o)){if(e.range&&j(t)){var a=[Math.min.apply(Math,i(t)),Math.max.apply(Math,i(t))],l=a[0],u=a[1];l>o&&(l=m.value),lo&&(u=o);var c=[l,u];return m.value=c[0],h.value=c[1],[l,u]}var s=t;return so&&(s=o),s}console.warn("[Slider] max should be greater than min.")},E=function(t){var n=t;void 0===n&&(n=e.range?[m.value,h.value]:m.value);var r=D(n);c(r)},F=function(){v.value&&(y.value=v.value["client".concat(b.value?"Height":"Width")])},T=t.ref(!1),I=function(){var t;e.range?(j(u.value)?(m.value=Math.max(e.min||0,u.value[0]),h.value=Math.min(e.max||100,u.value[1])):(m.value=e.min||0,h.value=e.max||100),t="".concat(m.value,"-").concat(h.value)):(Ho(u.value)?m.value=Math.min(e.max,Math.max(e.min,u.value)):m.value=e.min,t=String(m.value)),d.value&&d.value.setAttribute("aria-valuetext",t),F(),window.addEventListener("resize",F)},M=function(t){var n,r=t*S.value/100;(r=e.min+r,e.range||!f.value)?("button1"===(n=Math.abs(k.value-r)h.value?"button1":"button2")&&f.value&&f.value.setPosition(t),"button2"===n&&p.value&&p.value.setPosition(t)):f.value.setPosition(t)},A=function(){var t=e.range?[m.value,h.value]:m.value;return D(t)},B=function(t){var r;if(!n.value&&!g.value&&v.value){F();var o=0;if(b.value){o=(v.value.getBoundingClientRect().bottom-t.clientY)/y.value*100,M(o)}else{var a=v.value.getBoundingClientRect().left;o=(t.clientX-a)/y.value*100,M(o)}var l=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,l)}},L=function(t){var r;if(!n.value&&!g.value){F();var o=Number(t/S.value*100);M(o),E(t);var a=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,a)}};t.watch((function(){return u.value}),(function(t){if(!0!==g.value)if(j(t)&&e.range){var n=Ha(t,2);m.value=n[0],h.value=n[1]}else m.value=t})),t.watch([m,h,g],(function(t,n){t[0]!==n[0]&&(e.range?E([k.value,N.value]):E(m.value)),t[1]!==n[1]&&e.range&&E([k.value,N.value]),t[2]!==n[2]&&!1===t[2]&&I()})),t.onMounted((function(){I(),T.value=!0})),t.onBeforeUnmount((function(){window.removeEventListener("resize",F)}));var R,z,H,W=t.computed((function(){return{max:e.max,min:e.min,marks:e.marks,vertical:b.value,prefixName:r.value}})),K=(z=(R=W).value.prefixName,H=t.computed((function(){var e=R.value;if(!e.marks)return[];var t=[];if(j(e.marks)){var n=Mr(e.marks).sort((function(e,t){return e-t})),r=Math.max.apply(Math,i(n).concat([e.max])),o=Math.min.apply(Math,i(n).concat([e.min]));o= props min"),r>e.max&&eh("TSlider","marks max value should <= props max"),n.forEach((function(e){t.push({point:e,position:(e-o)/(r-o)*100,mark:e})}))}else Object.keys(e.marks).map(parseFloat).sort((function(e,t){return e-t})).filter((function(t){return t<=e.max&&t>=e.min})).forEach((function(n){var r={point:n,position:100*(n-e.min)/(e.max-e.min),mark:e.marks[n]};t.push(r)}));return t})),function(e){return H.value.length?t.createVNode("div",null,[t.createVNode("div",{class:"".concat(z,"__stops")},[H.value.map((function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(z,"__stop ").concat(z,"__mark-stop"),style:_j(e.position,R.value.vertical),key:n},null)}))]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map((function(n,r){return t.createVNode(Aj,{mark:n.mark,point:n.point,key:r,style:_j(n.position,R.value.vertical),onClickMarkPoint:e},null)}))])]):null}),U=function(e){var n=e.value.prefixName,r=t.computed((function(){var t,n={format:void 0,placeholder:"",theme:"column",decimalPlaces:(null===(t=e.value.step.toString().split(".")[1])||void 0===t?void 0:t.length)||0},r=e.value;if(!Mo(r.inputNumberProps)){var o,a=null===(o=r.inputNumberProps)||void 0===o?void 0:o.theme;n=Lj(Lj({},n),ta(r.inputNumberProps,"onChange")),["column","row","normal"].includes(a)&&(n.theme=a)}return n})),o=t.computed((function(){return["".concat(n,"__input"),{"is-vertical":e.value.vertical}]}));return function(n,a){return t.createVNode(Zy,t.mergeProps(r.value,{class:o.value,value:n,step:e.value.step,onChange:function(t,n){var r,o;void 0===t||isNaN(t)||a(t),null===(r=e.value)||void 0===r||null===(r=r.inputNumberProps)||void 0===r||null===(o=r.onChange)||void 0===o||o.call(r,t,n)},disabled:e.value.disabled,min:e.value.min,max:e.value.max}),null)}}(t.computed((function(){return{max:e.max,min:e.min,inputNumberProps:e.inputNumberProps,step:e.step,prefixName:r.value,vertical:b.value,disabled:n.value}}))),Y=t.toRefs(e),$=Y.min,Z=Y.max,q=Y.step;return t.provide(Ij,t.reactive({min:$,max:Z,step:q,dragging:g,toggleDragging:function(e){g.value=e},precision:V,disabled:n,resetSize:F,sliderSize:y})),function(){return t.createVNode("div",{class:w.value,ref:d},[t.createVNode("div",{class:O.value,role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.layout,"aria-disabled":n.value,"tooltip-props":e.tooltipProps},[t.createVNode("div",{class:C.value,style:x.value,onClick:B,ref:v},[t.createVNode("div",{class:"".concat(r.value,"__track"),style:P.value},null),t.createVNode(Mj,{vertical:b.value,value:m.value,ref:f,disabled:n.value,range:e.range,position:"start","tooltip-props":e.tooltipProps,label:e.label,onInput:function(e){m.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.range&&t.createVNode(Mj,{vertical:b.value,value:h.value,ref:p,disabled:n.value,label:e.label,range:e.range,position:"end","tooltip-props":e.tooltipProps,onInput:function(e){h.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.showStep&&t.createVNode("div",{class:"".concat(r.value,"__stops")},[_.value.map((function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(r.value,"__stop"),key:n,style:_j(e,b.value)},null)}))]),K(L)])]),T.value&&e.inputNumberProps&&(o=D(m.value),a=D(h.value),t.createVNode("div",{class:["".concat(r.value,"__input-container"),{"is-vertical":b.value}]},[U(o,(function(e){m.value=D(e)})),e.range&&t.createVNode("div",{class:"".concat(r.value,"__center-line")},null),e.range&&U(a,(function(e){h.value=D(e)}))]))]);var o,a}}}),Hj=pi(zj),Wj=pi(Mj),Kj={beforeChange:{type:Function},customValue:{type:Array},disabled:{type:Boolean,default:void 0},label:{type:[Array,Function],default:function(){return[]}},loading:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},onChange:Function},Uj=t.defineComponent({name:"TSwitch",props:Kj,setup:function(e,n){var r=n.slots,o=Oi(),a=Qa("switch"),l=el(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ha(qm(c.value,c.modelValue,e.defaultValue,e.onChange),2),v=d[0],f=d[1],p=t.computed((function(){return!(e.customValue&&e.customValue.length>0)||e.customValue[0]})),m=t.computed((function(){return!!(e.customValue&&e.customValue.length>1)&&e.customValue[1]}));function h(e){var t=v.value===p.value?m.value:p.value;f(t,{e:e})}function g(t){o.value||e.loading||(e.beforeChange?Promise.resolve(e.beforeChange()).then((function(e){e&&h(t)})).catch((function(e){throw new Error("Switch: some error occurred: ".concat(e))})):h(t))}var y=t.computed((function(){return["".concat(a.value),u.value[e.size],s(s(s({},i.value.disabled,o.value),i.value.loading,e.loading),i.value.checked,v.value===p.value||e.modelValue===p.value)]})),b=t.computed((function(){return["".concat(a.value,"__handle"),s(s({},i.value.disabled,o.value),i.value.loading,e.loading)]})),w=t.computed((function(){return["".concat(a.value,"__content"),u.value[e.size],s({},i.value.disabled,o.value)]}));t.watch(v,(function(t){if(e.customValue&&e.customValue.length&&!e.customValue.includes(t))throw new Error("value is not in ".concat(JSON.stringify(e.customValue)))}),{immediate:!0});var O=t.computed((function(){if(H(e.label))return e.label(t.h,{value:v.value});if(Do(e.label))return e.label;if(j(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(Do(n))return n;if(H(n))return n(t.h)}return r.label?r.label({value:v.value}):null}));return function(){var n,r;return e.loading?r=t.createVNode(mi,{size:"small"},null):O.value&&(n=O.value),t.createVNode("div",{class:y.value,onClick:g},[t.createVNode("span",{class:b.value},[r]),t.createVNode("div",{class:w.value},[n])])}}}),Yj=pi(Uj),$j=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Zj(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Rj||(Rj=document.createElement("textarea"),document.body.appendChild(Rj));var r=function(e){if("undefined"!=typeof window&&e){var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing"),r=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),o=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{sizingStyle:$j.map((function(e){return"".concat(e,":").concat(t.getPropertyValue(e))})).join(";"),paddingSize:r,borderSize:o,boxSizing:n}}}(e),o=r.paddingSize,a=r.borderSize,l=r.boxSizing,i=r.sizingStyle;Rj.setAttribute("style","".concat(i,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow-y:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),Rj.value=e.value||e.placeholder||"";var u=Rj.scrollHeight,c={};"border-box"===l?u+=a:"content-box"===l&&(u-=o),Rj.value="";var s=Rj.scrollHeight-o;if(null!==t){var d=s*t;"border-box"===l&&(d=d+o+a),u=Math.max(d,u),c.minHeight="".concat(d,"px")}if(null!==n){var v=s*n;"border-box"===l&&(v=v+o+a),u=Math.min(v,u)}return c.height="".concat(u,"px"),Rj.parentNode&&Rj.parentNode.removeChild(Rj),Rj=null,c}var qj={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function},Xj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:qj,setup:function(e,n){var r=n.attrs,o=n.expose,a=Qa(),l=Qa("textarea"),i=t.computed((function(){return"".concat(l.value,"__tips")})),c=t.computed((function(){return"".concat(l.value,"__limit")})),d=t.toRefs(e),v=Ha(qm(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Oi(),h=ly(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var t;if(!0===e.autosize)g.value=Zj(y.value);else if(e.autosize&&"object"===u(e.autosize)){var n=e.autosize,o=n.minRows,a=n.maxRows;g.value=Zj(y.value,o,a)}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(t=y.value)&&void 0!==t&&null!==(t=t.style)&&void 0!==t&&t.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=il(r,e.maxcharacter);r="object"===u(o)&&o.characters}!w.value&&p(r,{e:n}),t.nextTick((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=y.value,n=String(e);t&&t.value!==n&&(t.value=n,f.value=n)}(r)})),O()},x=function(e){C(e)},P=function(){w.value=!0},j=function(e){w.value=!1,C(e)},S=function(t,n){var r;if(!m.value){var o="on".concat(t[0].toUpperCase()).concat(t.slice(1));null===(r=e[o])||void 0===r||r.call(e,f.value,{e:n})}},k=function(e){S("keydown",e)},N=function(e){S("keyup",e)},_=function(e){S("keypress",e)},V=function(t){var n;O(),m.value||(b.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,f.value,{e:t}))},D=t.inject(sy,void 0),F=function(t){var n;t.target&&(O(),b.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,f.value,{e:t}),null==D||D.handleBlur())},T=t.computed((function(){return[l.value,s(s({},"".concat(a.value,"-is-disabled"),m.value),"".concat(a.value,"-is-readonly"),h.value)]})),I=t.computed((function(){return ol({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})})),M=t.computed((function(){var e=il(String(f.value||""));return"object"===u(e)?e.length:e})),A=dy(t.computed((function(){return{value:[void 0,null].includes(f.value)?void 0:String(f.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))).tStatus;t.watch((function(){return f.value}),(function(){return O()})),t.watch(y,(function(t){t&&(O(),e.autofocus&&t.focus())})),t.watch(g,(function(e){var t=r.style;E(t)?tl(y.value,Go(t,e)):tl(y.value,e)})),t.watch(f,(function(){t.nextTick((function(){return O()}))})),t.watch((function(){return e.autosize}),O,{deep:!0}),o({focus:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.focus()},blur:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.blur()}}),t.onMounted((function(){O()}));var B=ei();return function(){var n,o=ol({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=el().STATUS,v=t.computed((function(){return["".concat(l.value,"__inner"),s(s(s(s({},"".concat(a.value,"-is-").concat(A.value),A.value),d.value.disabled,m.value),d.value.focused,b.value),"".concat(a.value,"-resize-none"),"object"===u(e.autosize)),"narrow-scrollbar"]})),p=B("tips"),h=p&&t.createVNode("div",{class:"".concat(i.value," ").concat(l.value,"__tips--").concat(e.status||"normal")},[p]),g=e.maxcharacter&&t.createVNode("span",{class:c.value},["".concat(M.value,"/").concat(e.maxcharacter)])||!e.maxcharacter&&e.maxlength&&t.createVNode("span",{class:c.value},["".concat(f.value?null===(n=String(f.value))||void 0===n?void 0:n.length:0,"/").concat(e.maxlength)]);return t.createVNode("div",t.mergeProps({class:T.value},ta(r,["style"])),[t.createVNode("textarea",t.mergeProps({onInput:x,onCompositionstart:P,onCompositionend:j,ref:y,value:f.value,class:v.value},o,I.value),null),h||g?t.createVNode("div",{class:["".concat(l.value,"__info_wrapper"),s({},"".concat(l.value,"__info_wrapper_align"),!h)]},[h,g]):null])}}}),Gj=pi(Xj);function Jj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Qj="source",eS="target";function tS(e){return j(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function nS(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.isTreeMode,o=void 0!==r&&r,a=n.include,l=void 0===a||a,i=n.remainValue,u=void 0===i?[]:i;if(o){var c=[];if(e)for(var s=0;s0){var f=nS(d.children,t,{isTreeMode:o,include:l});c=c.concat(f)}else(l&&v||!l&&!v)&&c.push(d.value)}return c}return e.filter((function(e){if(!e)return!1;var n=t.includes(e.value);return(l&&n||!l&&!n)&&(!e.disabled||u.includes(e.value))})).map((function(e){return e.value}))}function rS(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.map((function(e,r){var o,a=(null==t?void 0:t.label)||"label",l=(null==t?void 0:t.value)||"value",i=(null==t?void 0:t.disabled)||"disabled";if(Uo(e[a]))throw new Error("".concat(a," is not in DataOption ").concat(JSON.stringify(e)));if(Uo(e[l]))throw new Error("".concat(l," is not in DataOption ").concat(JSON.stringify(e)));var u={label:e[a],value:e[l],key:"key__value_".concat(e[l],"_index_").concat(r),disabled:null!==(o=e[i])&&void 0!==o&&o,data:e};return n&&e.children&&(u.children=rS(e.children,t,!0)),u}));return r}function oS(e,t,n){var r;return e?t.includes(e.value)?n:null!==(r=e.children)&&void 0!==r&&r.length?e.children.some((function(e){return oS(e,t,n)})):!n:!n}function aS(e,t,n,r){e.forEach((function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?oS(e,n,r)&&(o=function(e){for(var t=1;t2&&void 0!==arguments[2])||arguments[2];if(!(arguments.length>3&&void 0!==arguments[3]&&arguments[3]))return n?t.map((function(t){return e.find((function(e){return e.value===t}))})).filter((function(e){return!!e})):e.filter((function(e){return!t.includes(e.value)}));var r=[];return aS(e,r,t,n),r}function iS(e){var t=0;return e.forEach((function(e){e.children&&e.children.length>0?t+=iS(e.children):t+=1})),t}var uS=t.defineComponent({name:"TTransferSearch",props:{value:{type:String,default:""},search:{type:[Boolean,Object],default:!1},placeholder:{type:String,default:""},onChange:Function},setup:function(e){var n=Qa(),r=up({SearchIcon:Ud}).SearchIcon,o=function(t,n){var r,o=n.e,a=n.trigger;null===(r=e.onChange)||void 0===r||r.call(e,{value:t,e:o,trigger:a})},a="object"===u(e.search)?e.search:{clearable:!0};return function(){return t.createVNode("div",{class:"".concat(n.value,"-transfer__search-wrapper")},[t.createVNode(Oy,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function cS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sS(e){for(var t=1;t-1}))})),m=t.computed((function(){return p.value&&p.value.length||0})),h=t.computed((function(){var t=p.value;if(!e.pagination)return t;if(0===f.value)return t;var n=(v.value-1)*f.value,r=v.value*f.value;return t=t.slice(n,r)})),g=t.computed((function(){return"object"===u(e.pagination)?sS(sS(sS({},{totalContent:!1,pageSizeOptions:[]}),e.pagination),{},{size:"small",theme:"simple",current:v.value,total:m.value,pageSize:f.value}):{}})),y=function(e,n,r){var o=t.ref(null),a=t.ref(null),l=t.ref(null);return{onDragStart:function(e){var t=Number(e.target.dataset.index);o.value=t},onDragEnd:function(){o.value=null,a.value=null,l.value=""},onDrop:function(t){t.preventDefault();var u=o.value,c=a.value;if(o.value=null,a.value=null,l.value="",u!==c){var s=i(e.value),d=n.value[u].value,v=n.value[c].value,f=s.indexOf(d),p=s.indexOf(v);s.splice(f,1),"bottom"===l.value&&(p+=1),s.splice(p,0,d),null==r||r(s,[d,v])}},onDragOver:function(e){if(e.preventDefault(),e.currentTarget){var t=e.currentTarget,n=Number(t.dataset.index),r=t.offsetHeight,i=e.clientY-t.getBoundingClientRect().top,u=.3*r;if(a.value=n,a.value===o.value)return void(l.value="");l.value=ir-u?"bottom":"center"}},onDragLeave:function(){l.value="",a.value=null}}}(r,h,e.onDataChange),b=y.onDragStart,w=y.onDragEnd,O=y.onDrop,C=y.onDragOver,x=y.onDragLeave,P=t.computed((function(){var t=nS(e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});return e.checkedValue.length>0&&(e.isTreeMode?t.every((function(t){return e.checkedValue.includes(t)})):(e.search?p.value:e.dataSource).every((function(t){return t.disabled||e.checkedValue.includes(t.value)})))})),S=t.computed((function(){return!P.value&&e.checkedValue.length>0})),k=t.computed((function(){return iS(e.dataSource)}));t.watch(k,(function(e){if(e<=(v.value-1)*f.value){var t=Math.ceil(e/f.value);s.value=t}}));var N=function(e,t){var n,r;return n=Mr(e),r=function(e){return!!e.label.toLowerCase().includes(t.toLowerCase())||!!(e.children&&e.children.length>0&&(e.children=N(e.children,t),e.children.length>0))},(j(n)?Zn:_o)(n,ao(r))},_=function(t){var n;null===(n=e.onPageChange)||void 0===n||n.call(e,t),s.value=t.current,d.value=t.pageSize},V=function(t){var n;null===(n=e.onCheckedChange)||void 0===n||n.call(e,t)},D=function(t){if(t){var n=nS(e.search?p.value:e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});V(n)}else V([])},E=function(t){var n;null===(n=e.onScroll)||void 0===n||n.call(e,t)},F=function(t){var n,r={query:t.value,type:e.listType,e:t.e,trigger:t.trigger};c.value=t.value,null===(n=e.onSearch)||void 0===n||n.call(e,r)},T=ti(),I=function(){var r,o,a=e.draggable&&e.listType===eS,l=null;a?l=t.createVNode(Fw,{value:e.checkedValue,onChange:V},dS(r=h.value.map((function(r,o){var l;return t.createVNode("div",{draggable:a,onDragend:w,onDragstart:b,onDragover:C,onDragleave:x,onDrop:O,"data-index":o},[t.createVNode(Ew,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),dS(l=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?l:{default:function(){return[l]}})])})))?r:{default:function(){return[r]}}):l=t.createVNode(Fw,{value:e.checkedValue,onChange:V},dS(o=h.value.map((function(r,o){var a;return t.createVNode(Ew,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),dS(a=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?a:{default:function(){return[a]}})})))?o:{default:function(){return[o]}});return t.createVNode("div",{class:["".concat(n.value,"-transfer__list-content"),"narrow-scrollbar"],onScroll:E},[T("tree",{defaultNode:l,params:{data:h.value,value:e.checkedValue,onChange:V}})])},M=function(){var r=e.empty||a(l.value.empty),o=Do(r)?t.createVNode("span",null,[r]):null;return t.createVNode("div",{class:"".concat(n.value,"-transfer__empty")},[T("empty",{defaultNode:o,params:{type:e.listType}})])},A=function(){var r=Do(e.footer)?t.createVNode("div",{class:"".concat(n.value,"-transfer__footer")},[e.footer]):null;return T("footer",{defaultNode:r,params:{type:e.listType}})};return function(){return t.createVNode("div",{class:["".concat(n.value,"-transfer__list"),"".concat(n.value,"-transfer__list-").concat(e.listType)]},[t.createVNode("div",{class:"".concat(n.value,"-transfer__list-header")},[t.createVNode("div",null,[e.checkAll&&t.createVNode(Ew,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:S.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&Do(e.title)?t.createVNode("template",null,[e.title]):null,o=T("title",{defaultNode:r,params:{type:e.listType}}),t.createVNode("span",null,[o]))]),t.createVNode("div",{class:["".concat(n.value,"-transfer__list-body"),e.search?"".concat(n.value,"-transfer__list--with-search"):""]},[e.search&&t.createVNode(uS,{searchValue:c.value,placeholder:a(l.value.placeholder),onChange:F,disabled:e.disabled,search:e.search},null),h.value.length>0?I():M()]),e.pagination&&f.value>0&&m.value>0&&t.createVNode("div",{class:"".concat(n.value,"-transfer__list-pagination")},[t.createVNode(pO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),pS={checkboxProps:{type:Object},checked:{type:Array,default:void 0},defaultChecked:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},direction:{type:String,default:"both",validator:function(e){return!e||["left","right","both"].includes(e)}},disabled:{type:[Boolean,Array],default:void 0},empty:{type:[String,Array,Function],default:""},footer:{type:[Array,Function]},keys:{type:Object},operation:{type:[Array,Function]},pagination:{type:[Object,Array]},search:{type:[Boolean,Object,Array],default:!1},showCheckAll:{type:[Boolean,Array],default:!0},targetDraggable:Boolean,targetSort:{type:String,default:"original",validator:function(e){return!e||["original","push","unshift"].includes(e)}},title:{type:[Array,Function],default:function(){return[]}},transferItem:{type:Function},value:{type:Array,default:void 0},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:function(){return[]}},onChange:Function,onCheckedChange:Function,onPageChange:Function,onScroll:Function,onSearch:Function},mS=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:pS.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=Qa(),l=up({ChevronRightIcon:uc,ChevronLeftIcon:$u}),i=l.ChevronRightIcon,u=l.ChevronLeftIcon,c=function(){o("moveToRight")},s=function(){o("moveToLeft")},d=function(){return t.createVNode(i,null,null)},v=function(){return t.createVNode(u,null,null)},f=function(t){return H(e.operation)||"right"===t&&e.operation&&H(e.operation[0])||"left"===t&&e.operation&&H(e.operation[1])||r.operation?null:"left"===t?v:d},p=function(t,n){if(H(r.operation))return r.operation({direction:n});var o;if(H(e.operation))return(0,e.operation)(t,{direction:n});if(j(e.operation)){var a=Ha(e.operation,2),l=a[0],i=a[1];o="right"===n?i:l}else o="";return o};return function(){return t.createVNode("div",{class:"".concat(a.value,"-transfer__operations")},[t.createVNode(ji,{variant:"outline",size:"small",shape:j(e.operation)&&Do(e.operation[1])?"rectangle":"square",key:e.rightDisabled?"right-outline":"right-base",disabled:e.rightDisabled,onClick:c,icon:f("right")},{default:function(){return[r.operation||j(e.operation)&&e.operation[1]?p(t.h,"right"):null]}}),t.createVNode(ji,{variant:"outline",size:"small",shape:j(e.operation)&&Do(e.operation[0])?"rectangle":"square",key:e.rightDisabled?"left-outline":"left-base",disabled:e.leftDisabled,onClick:s,icon:f("left")},{default:function(){return[r.operation||j(e.operation)&&e.operation[0]?p(t.h,"left"):null]}})])}}});var hS=t.defineComponent({name:"TTransfer",props:pS,setup:function(e,n){var r=n.slots,o=Oi(),a=Qa(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ha(qm(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ha(Um(d,e.defaultChecked,e.onCheckedChange,"checked"),1)[0],h=t.computed((function(){return f.value})),g=t.computed((function(){return H(r.tree)})),y=t.computed((function(){return"right"===e.direction})),b=t.computed((function(){return"left"===e.direction})),w=t.computed((function(){return rS(e.data,e.keys,g.value)})),O=t.computed((function(){return lS(w.value,h.value,!1,g.value)})),C=t.computed((function(){return lS(w.value,h.value,!0,g.value)})),x=t.computed((function(){return s(s({},Qj,nS(O.value,m.value,{isTreeMode:g.value})),eS,nS(C.value,m.value,{isTreeMode:g.value}))})),P=t.computed((function(){return!!r.footer||!!e.footer})),j=t.computed((function(){return!!e.pagination&&!r.content})),S=t.computed((function(){return!!e.search})),k=t.computed((function(){return tS(e.footer||"")})),N=t.computed((function(){return tS(e.empty)})),_=t.computed((function(){return tS(e.search)})),V=t.computed((function(){return tS(e.showCheckAll)})),D=t.computed((function(){return tS(o.value)})),E=t.computed((function(){return tS(e.title)})),F=t.computed((function(){return tS(e.pagination)})),T=function(t,n){var r,o=n===Qj?t:x.value[Qj],a=n===eS?t:x.value[eS],l=[].concat(i(o),i(a)),u={checked:l,sourceChecked:o,targetChecked:a,type:n};m.value=l,null===(r=e.onCheckedChange)||void 0===r||r.call(e,u)},I=function(t){var n,r=JSON.parse(JSON.stringify(h.value)),o=t===eS?x.value[Qj]:x.value[eS];if(t===Qj)n=r.filter((function(e){return!o.includes(e)}));else if("original"===e.targetSort){var a=w.value.reduce((function(e,t){return r.includes(t.value)&&t.disabled?e.concat(t.value):e}),[]);n=nS(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===Qj?eS:Qj),p(n,{type:t,movedValue:o})},M=function(){I(eS)},A=function(){I(Qj)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:eS,movedValue:t})},R=function(n){var o,a=xa(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(fS,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===Qj?O.value:C.value,"checked-value":x.value[n],disabled:D.value[n],search:_.value[n],pagination:F.value[n],"check-all":V.value[n],footer:k.value[n],empty:N.value[n],onCheckedChange:function(e){return T(e,n)},onScroll:function(t){return function(t,n){var r,o=t.target,a={e:t,bottomDistance:o.scrollHeight-o.scrollTop-o.clientHeight,type:n};null===(r=e.onScroll)||void 0===r||r.call(e,a)}(t,n)},onSearch:B,onPageChange:function(t){return function(t,n){var r;null===(r=e.onPageChange)||void 0===r||r.call(e,t,{type:n})}(t,n)},isTreeMode:g.value,onDataChange:L,currentValue:h.value,draggable:e.targetDraggable&&n===eS},"function"==typeof(o=a)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}})};return function(){return t.createVNode("div",{class:["".concat(a.value,"-transfer"),S.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",j.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R(Qj),t.createVNode(mS,{leftDisabled:D.value[eS]||y.value||0===x.value[eS].length,rightDisabled:D.value[Qj]||b.value||0===x.value[Qj].length,operation:e.operation,onMoveToRight:M,onMoveToLeft:A},{operation:r.operation}),R(eS)])}}}),gS=pi(hS);function yS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bS(e){for(var t=1;to&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Da(l)),-1===u&&(l.push(g),l.length>f.value.bufferSize&&l.shift()),-1===d&&(v>s.value+o||p===n.value.data.length-1)&&(d=p),-1!==u&&-1!==d)break}var y,b=(y=[u-f.value.bufferSize,0])&&y.length?qo(y,z,Vo):void 0,w=function(e){return e&&e.length?qo(e,z,Zo):void 0}([d+f.value.bufferSize,n.value.data.length]);return{startIndex:b,endIndex:w,translateY:i-Da(c.slice(0,Math.min(b,a)))}}var h=Ea((function(){var e=m(),t=e.startIndex,r=e.endIndex,o=e.translateY,i=Ha(f.value.fixedRows,2),u=i[0],c=i[1],s=u?n.value.data.slice(0,u):[];u&&t0&&(d=d.slice(p)),v.value.join()!==[t,r].join()&&t>=0&&(l.value=o,a.value=s.concat(n.value.data.slice(t,r),d),v.value=[t,r])}),100),g=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Da(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return mh(t.computed((function(){return p.value?e.value:void 0})),(function(t){var r=Ha(t,1)[0].contentRect;if(!n.value.preventResizeRefresh){Math.abs(r.width-d.value)>16&&e.value&&(e.value.scrollTop=0,l.value=0),d.value=r.width,s.value=r.height}})),t.watch((function(){return[i(n.value.data),f.value,p.value,e.value]}),(function(){if(p.value&&e.value){if(function(e){e.forEach((function(e,t){e.VIRTUAL_SCROLL_INDEX=t}))}(n.value.data),s.value=e.value.getBoundingClientRect().height,c.length!==n.value.data.length){var t=Array.from(c);t.length=n.value.data.length,t.fill(f.value.rowHeight||47),c=t}u.value=Da(c),v.value=[0,0],h()}}),{immediate:!0}),t.watch((function(){return s.value}),(function(){h()})),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&h()},handleRowMounted:function(t){var n;if(p.value&&t&&!f.value.isFixedRowHeight&&e.value){var r=(null===(n=t.ref.value)||void 0===n?void 0:n.getBoundingClientRect().height)||f.value.rowHeight,o=t.data.VIRTUAL_SCROLL_INDEX;if(c[o]!==r){var a=r-c[o];c[o]=r,u.value=u.value+a}}},scrollToElement:function(e){if(g(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout((function(){g(e),clearTimeout(r)}),n)}}},_S={name:"TTreeNode",inject:{onDrag:{default:void 0}}};function VS(e){return r.h}function DS(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"defaultValue",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"onChange",a=t.modelValue;return"value"===n?qm(t[n],a,e[r],e[o],n):Um(t[n],e[r],e[o],n)}var ES=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(ES||{});function FS(e){var n=e.treeItemRef,r=t.reactive({isDragOver:!1,isDragging:!1,dropPosition:0}),o=function(t,n){var o,l,i,u,c,s=e.node,d=e.treeScope.drag;if(d)switch(t){case"dragStart":r.isDragging=!0,r.dropPosition=0,null===(o=d.handleDragStart)||void 0===o||o.call(d,{node:s,dragEvent:n});break;case"dragEnd":r.isDragging=!1,r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(l=d.handleDragEnd)||void 0===l||l.call(d,{node:s,dragEvent:n});break;case"dragOver":r.isDragOver=!0,a(n),null===(i=d.handleDragOver)||void 0===i||i.call(d,{node:s,dragEvent:n});break;case"dragLeave":r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(u=d.handleDragLeave)||void 0===u||u.call(d,{node:s,dragEvent:n});break;case"drop":null===(c=d.handleDrop)||void 0===c||c.call(d,{node:s,dropPosition:r.dropPosition,dragEvent:n}),r.isDragOver=!1,a.cancel()}},a=Ea((function(e){!function(e){var t,o=n.value;if(o){var a=null==o||null===(t=o.getBoundingClientRect)||void 0===t?void 0:t.call(o),l=window.scrollY+a.top,i=e.pageY,u=a.height/4,c=i-l;c3?o-3:0),l=3;l0,n=Mo(l.children)&&l.children;return f&&(t||n)}));if(l.vmCheckable){var b=!1;l.vmIsLocked&&!l.vmIsRest&&(b=!0),l.isDisabled()&&(b=!0);var w=KS(KS({},p),{},{disabled:b}),O=m;m=t.createVNode(Ew,{class:g,checked:l.checked,indeterminate:l.indeterminate,disabled:b,name:String(l.value),onChange:o,stopLabelTrigger:y.value,ignore:d.expandOnClickNode?"active":"expand,active",props:w},"function"==typeof(h=m)||"[object Object]"===Object.prototype.toString.call(h)&&!t.isVNode(h)?m:{default:function(){return[O]}})}else{var C=t.createVNode("span",{style:"position: relative"},[m]);m=l.isActivable()?t.createVNode("span",{key:"1",ref:"label",class:g,title:l.label},[C]):t.createVNode("span",{key:"2",class:g,title:l.label},[C])}return m}}}function YS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $S(e){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=Qa().value,u=Qa("tree").value,c=zS(e).handleClick,d=HS(e).renderIcon,v=US(e).renderLabel,f=function(e){var n=Qa("tree").value;return{renderLine:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=(null==a?void 0:a.treeProps)||{},u=i.line,c=!!i.icon,s=null;if(!0===u){if(null!=l&&l.line)s=l.line({node:null==o?void 0:o.getModel()});else if(o.parent&&o.tree){var d=o.vmIsLeaf,v=o.vmIsFirst,f=o.level,p=[];p.push("".concat(n,"__line")),!d&&c||p.push("".concat(n,"__line--leaf")),v&&c&&p.push("".concat(n,"__line--first"));var m=[],h=o.getParents();h.pop(),h.forEach((function(e,t){e.vmIsLast||m.push("calc(-".concat(t+1," * var(--space)) 0 var(--color)"))}));var g={"--level":f?String(f):void 0,"box-shadow":m.join(",")};s=t.createVNode("span",{class:p,style:g},null)}}else s=BS(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=Qa("tree").value;return{renderOperations:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=((null==a?void 0:a.treeProps)||{}).operations,u=null;return(u=null!=l&&l.operations?l.operations({node:null==o?void 0:o.getModel()}):BS(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=FS(e),y=g.dragStates,b=g.handleDragStart,w=g.handleDragEnd,O=g.handleDragOver,C=g.handleDragLeave,x=g.handleDrop,P=function(e,n,r){var o=t.computed((function(){return Math.max(r.rowHeight||48,48)})),a=t.ref(!1),l=t.computed((function(){return"lazy"===(null==r?void 0:r.type)&&!a.value})),i=!kl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i((function(){a.value=!0}))};return t.onMounted((function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick((function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;Sw(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(a,r,t.reactive(function(e){for(var t=1;t0),"".concat(u,"__item--tip-highlight"),!r&&n&&0===o)),a}();return e.stateId=o.stateId,t.createVNode("div",{ref:"treeItemRef",class:v,"data-value":l,"data-level":a,style:d,onClick:function(e){return c(e)},draggable:r.isDraggable(),onDragstart:function(e){return b(e)},onDragend:function(e){return w(e)},onDragover:function(e){return O(e)},onDragleave:function(e){return C(e)},onDrop:function(e){return x(e)}},[j.value?[t.createVNode("div",null,null)]:N(n)])}}}function ZS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qS(e){for(var t=1;t=0&&("trigger"===e?c=!0:"ignore"===e&&(c=!1)),n.indexOf("active")>=0&&"ignore"===e&&(s=!1)})),c&&a(u),s&&l(u);var d={node:u.getModel(),e:o};IS(n,r,"click",d),t.mouseEvent=null}}}}(e),u=i.handleClick,c=i.handleChange,s=t.ref(!1),d=new Map,v=function(){o.value=n.getNodes()},f=function(){if(!(null==l?void 0:l.isVirtualScroll.value)){var e=[],t=!1;o.value.forEach((function(n){n.visible&&(t=!0,d.set(n.value,n.value)),d.has(n.value)&&e.push(n)})),d.forEach((function(e){n.getNode(e)||d.delete(e)})),a.value=e,s.value=!t}},p=function(){if(null==l?void 0:l.isVirtualScroll.value){var e=l.visibleData.value;a.value=e,s.value=e.length<=0}};return t.watch(o,f),t.watch(l.visibleData,p),v(),f(),p(),n.emitter.on("update",v),{nodesEmpty:s,renderTreeNodes:function(e){var n="render-".concat((new Date).getTime()),o=a.value.map((function(e,o){return function(e,n,o,a){var l=n.VIRTUAL_SCROLL_INDEX||o,i=n[fC];return t.createVNode(GS,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)}));return o}}}function QS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ek(e){for(var t=1;t0&&c.replaceChecked(s.value),Array.isArray(v.value)&&v.value.length>0&&c.replaceExpanded(v.value),Array.isArray(d.value)&&d.value.length>0&&c.replaceActived(d.value),null!=n&&n.onLoad&&(null==n||n.onLoad(t)),r.emit("load",t)};return c.setConfig({keys:u}),f(),c.append(n.data||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.emitter.on("load",b),c.emitter.on("update",g),e.setStore(c),t.watch((function(){return i(s.value||[])}),(function(e){c.replaceChecked(e)})),t.watch((function(){return i(v.value||[])}),(function(e){c.replaceExpanded(e)})),t.watch((function(){return i(d.value||[])}),(function(e){c.replaceActived(e)})),t.watch(o.filter,(function(e,t){y(e,t)})),t.watch(o.keys,(function(e){c.setConfig({keys:e})})),t.watch(o.expandAll,(function(e){if(e){var t=c.getNodes().filter((function(e){return Array.isArray(e.children)&&e.children.length})).map((function(e){return e.value}));c.setExpanded(t)}else c.replaceExpanded(h),h=null})),{store:c,rebuild:function(e){c.reload(e||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.refreshState()},checkFilterExpand:y,updateStoreConfig:f,updateExpanded:p,expandFilterPath:g}}(s),p=f.store,m=f.updateStoreConfig,h=f.rebuild;!function(e){var t=e.props,n=e.context,r=e.scope,o=e.store,a=null,l={handleDragStart:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};IS(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};IS(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};IS(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};IS(t,n,"drag-leave",o)},handleDrop:function(e){var r,l=e.dragEvent,i=e.node,u=e.dropPosition;if(i.value!==a.value&&!i.getParents().some((function(e){return e.value===a.value}))){var c={dropNode:i.getModel(),dragNode:a.getModel(),dropPosition:u,e:l};!1!==(null===(r=t.allowDrop)||void 0===r?void 0:r.call(t,c))&&(o.getNodes().some((function(e){return e.value===i.value&&(u===ES.Inside?a.appendTo(o,e):u===ES.Before?i.insertBefore(a):i.insertAfter(a),!0)})),IS(t,n,"drop",c))}}};r.drag=l}(s);var g=RS(s),y=g.setActived,b=g.setExpanded,w=g.setChecked,O=tk(s),C=O.onInnerVirtualScroll,x=O.virtualConfig,P=O.scrollToElement,j=JS(s),S=j.renderTreeNodes,k=j.nodesEmpty,N=function(e){var n=e.props,r=Qa("tree").value,o=Qa().value,a=e.virtualConfig,l=e.isScrolling,i=e.refProps,u=i.height,c=i.maxHeight;return{treeClasses:t.computed((function(){var e=[r],t=n.disabled,i=n.hover,u=n.transition,c=n.checkable,s=n.draggable,d=n.expandOnClickNode,v=n.scroll;return t&&e.push("".concat(o,"-is-disabled")),i&&e.push("".concat(r,"--hoverable")),c&&e.push("".concat(r,"--checkable")),s&&e.push("".concat(r,"--draggable")),u&&e.push("".concat(r,"--transition")),d&&e.push("".concat(r,"--block-node")),(null==a?void 0:a.isVirtualScroll.value)?(e.push("".concat(r,"__vscroll")),l.value&&e.push("".concat(r,"--scrolling"))):v&&"lazy"===v.type&&e.push("".concat(r,"__lazyload")),e})),treeContentStyles:t.computed((function(){return{height:nk(u.value),maxHeight:nk(c.value),overflowY:nk(u.value)||nk(c.value)?"auto":void 0}})),scrollStyles:t.computed((function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translateY(".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}})),cursorStyles:t.computed((function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translate(0, ".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}}))}}(s);return{t:o,global:a,classPrefix:l,componentName:u,state:s,store:p,treeClasses:N.treeClasses,treeContentRef:d,rebuild:h,updateStoreConfig:m,setActived:y,setExpanded:b,setChecked:w,renderTreeNodes:S,nodesEmpty:k,isScrolling:v,onInnerVirtualScroll:C,treeContentStyles:N.treeContentStyles,scrollStyles:N.scrollStyles,cursorStyles:N.cursorStyles,virtualConfig:x,scrollToElement:P,scrollTo:P}},watch:{data:function(e){this.rebuild(e)}},methods:{refresh:function(){this.store.refreshState()},setItem:function(e,t){var n=this,r=this.store.getNode(e),o=t,a=Object.keys(o);r&&o&&(["expanded","actived","checked"].forEach((function(e){if(a.includes(e)){var t=o[e];delete o[e];var l="set".concat(on(e)),i=n[l];H(i)&&i.call(n,r,t)}})),r.set(o))},getItem:function(e){var t=this.store.getNode(e);return null==t?void 0:t.getModel()},getItems:function(e){return this.store.getNodes(e).map((function(e){return e.getModel()}))},appendTo:function(e,t){var n=this.store;(Array.isArray(t)?t:[t]).forEach((function(t){var r=(null==t?void 0:t.value)||"",o=LS(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)}))},insertBefore:function(e,t){var n=this.store,r=LS(n,(null==t?void 0:t.value)||"");r?n.insertBefore(e,r):n.insertBefore(e,t)},insertAfter:function(e,t){var n=this.store,r=LS(n,(null==t?void 0:t.value)||"");r?n.insertAfter(e,r):n.insertAfter(e,t)},remove:function(e){return this.store.remove(e)},getIndex:function(e){return this.store.getNodeIndex(e)},getParent:function(e){var t=this.store.getParent(e);return null==t?void 0:t.getModel()},getParents:function(e){return this.store.getParents(e).map((function(e){return e.getModel()}))},getPath:function(e){var t=this.store.getNode(e),n=[];return t&&(n=t.getPath().map((function(e){return e.getModel()}))),n},getTreeData:function(e){var t=[];if(e){if(!this.store.getNode(e))return[];t=this.store.getNodes(e)}else t=this.store.getNodes();var n={},r=[];return t.forEach((function(e){var t=e.value,o=ak(ak({},e.data),{},{value:t});!0!==o.children&&delete o.children,n[t]=o;var a=e.getParent();if(a){var l=n[a.value];l?(Array.isArray(l.children)||(l.children=[]),l.children.push(o)):r.push(o)}else r.push(o)})),r}},render:function(e){var n,r,o,a,l=this.state,i=this.treeClasses,u=this.updateStoreConfig,c=this.renderTreeNodes,s=this.nodesEmpty,d=this.isScrolling,v=this.virtualConfig,f=this.treeContentStyles,p=this.scrollStyles,m=this.cursorStyles,h=VS(),g=l.scope,y=l.allNodes,b=l.refProps;g.scopedSlots=this.$slots,u();var w=c(h),O=this.componentName,C=v.isVirtualScroll.value,x=null;if(s){var P=!this.empty&&!this.$slots.empty?this.t(this.global.empty):Gl(this,"empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var j,S=null;S=!this.$props.transition||C&&d?t.createVNode("div",{class:"".concat(O,"__list"),style:p},[w]):t.createVNode(t.TransitionGroup,{tag:"div",class:"".concat(O,"__list"),"enter-active-class":"".concat(O,"__item--enter-active"),"leave-active-class":"".concat(O,"__item--leave-active"),style:p},"function"==typeof(j=w)||"[object Object]"===Object.prototype.toString.call(j)&&!t.isVNode(j)?w:{default:function(){return[w]}});var k=(null!==(n=null===(r=y.value)||void 0===r?void 0:r.filter((function(e){return e.visible})).length)&&void 0!==n?n:0)*(null!==(o=null===(a=b.scroll.value)||void 0===a?void 0:a.rowHeight)&&void 0!==o?o:34),N={width:"1px",height:"1px",opacity:0,pointerEvents:"none",position:"absolute",left:0,top:"".concat(k,"px")},_=t.createVNode("div",{style:N},null);return t.createVNode("div",{class:i,ref:"treeContentRef",onScroll:this.onInnerVirtualScroll,style:f},[C&&t.createVNode("div",{class:"".concat(O,"__vscroll-cursor"),style:m},null),x||S,C&&_])}}),ik=pi(lk),uk={autoWidth:Boolean,borderless:Boolean,clearable:Boolean,collapsedItems:{type:Function},data:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},inputValue:{type:[String,Number],default:void 0},defaultInputValue:{type:[String,Number]},keys:{type:Object},loading:Boolean,loadingText:{type:[String,Function],default:""},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:{type:Boolean,default:void 0},prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagProps:{type:Object},treeProps:{type:Object},value:{type:[String,Number,Object,Array],default:void 0},modelValue:{type:[String,Number,Object,Array],default:void 0},defaultValue:{type:[String,Number,Object,Array]},valueDisplay:{type:Function},valueType:{type:String,default:"value",validator:function(e){return!e||["value","object"].includes(e)}},onBlur:Function,onChange:Function,onClear:Function,onFocus:Function,onInputChange:Function,onPopupVisibleChange:Function,onRemove:Function,onSearch:Function};function ck(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sk(e){for(var t=1;t=0}})),M=t.computed((function(){return v.value||e.disabled})),A=t.computed((function(){var t;return _.value&&(null===(t=g.value)||void 0===t?void 0:t.label)||e.placeholder||d.value.placeholder})),B=t.computed((function(){return["".concat(c.value,"-select__dropdown"),"narrow-scrollbar"]})),L=t.computed((function(){return{small:"s",medium:"m",large:"l"}[e.size]})),R=t.computed((function(){return"object"===e.valueType})),z=t.computed((function(){return e.multiple?R.value?j(S.value)?S.value.map((function(e){return e.value})):[]:j(S.value)?S.value.map((function(e){return e})):[]:[]})),W=t.computed((function(){return e.multiple&&!!e.max&&j(S.value)&&e.max<=S.value.length})),K=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.label)||"label":e.treeProps.keys.label||"label"})),U=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.value)||"value":e.treeProps.keys.value||"value"})),Y=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.children)||"children":e.treeProps.keys.children||"children"}));t.onMounted(Bf(Hf.mark((function t(){var n;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:T(),!S.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=j(S.value)?S.value.map((function(e){return null==e?void 0:e.value})):[null===(n=S.value)||void 0===n?void 0:n.value]:m.value=j(S.value)?S.value:[S.value],ne();case 4:case"end":return t.stop()}}),t)}))));var $=function(e,t,n){k(e,{node:t,trigger:n}),ne()},Z=function(t){var n,r=e.multiple?[]:"";m.value=[],$(r,null,"clear"),null===(n=e.onClear)||void 0===n||n.call(e,{e:t.e})},q=function(e,t){var n=e;R.value&&(n=e.map(ae)),$(n,t.node,"check")},X=function(t,n){if(e.multiple||V(!1,n),!e.multiple&&n.node.actived&&S.value!==n.node.data[U.value]){var r=t;if(R.value){var o=Ro(t)?"":t[0];r=ae(o)}else r=Ro(t)?"":t[0];$(r,n.node,"check"),m.value=t}},G=function(e){h.value=e},J=function(){ne()},Q=function(t){var n,r;_.value?(F(t),null===(n=e.onSearch)||void 0===n||n.call(e,String(t))):null===(r=e.onSearch)||void 0===r||r.call(e,String(t))},ee=function(t,n){var r,o=n.trigger,a=n.index;["tag-remove","backspace"].includes(o)&&j(S.value)&&S.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(S.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=Bf(Hf.mark((function t(){return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?j(S.value)?g.value=oe():g.value=[]:g.value=null:S.value||0===S.value?g.value=re():g.value="";case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),re=function(){var e=R.value?S.value.value:S.value;return ae(e)},oe=function(){return S.value.map((function(e){var t=R.value?e.value:e;return ae(t)}))},ae=function(t){if(p.value){var n=p.value.getItem(t);if(n)return sk(sk({},n.data),{},{label:n.data[K.value],value:n.data[U.value]})}var r=le(e.data,t);return r||{label:t,value:t}},le=function(e,t){for(var n=0,r=e.length;n2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.clientX-a.left,r=(n=Math.max(0,Math.min(a.width,n)))/a.width*100,o=Kk(r,e.color.rgba);s.value.push(o),p(s.value,!0),f(o.id)}};return t.onMounted((function(){var e=o.value.getBoundingClientRect();a.left=e.left,a.width=e.width||176})),t.onBeforeUnmount((function(){window.removeEventListener("mousemove",m,!1),window.removeEventListener("mouseup",h,!1),window.removeEventListener("contextmenu",h,!1)})),function(){var d=e.color,p=d.linearGradient,b=d.gradientColors,w=Wk({points:b,degree:90});return t.createVNode("div",{class:"".concat(n.value,"__gradient")},[t.createVNode("div",{class:"".concat(n.value,"__gradient-slider")},[t.createVNode("div",{class:["".concat(n.value,"__slider"),"".concat(n.value,"--bg-alpha")],onKeyup:g,tabindex:0,ref:o},[t.createVNode("ul",{class:"gradient-thumbs",onClick:y,style:{background:w}},[s.value.map((function(u){var s="".concat(Math.round(100*u.left)/100,"%");return t.createVNode("li",{class:["".concat(n.value,"__thumb"),"gradient-thumbs__item",c.value===u.id?r.active:""],key:u.id,title:"".concat(u.color," ").concat(s),style:{color:u.color,left:s},onClick:function(e){return e.stopPropagation()},onMousedown:function(){return function(t){var n=o.value.getBoundingClientRect();a.left=n.left,a.width=n.width||176,l.value||e.disabled||(i.value=!1,l.value=!0,f(t),o.value.focus(),window.addEventListener("mousemove",m,!1),window.addEventListener("mouseup",h,!1),window.addEventListener("contextmenu",h,!1))}(u.id)}},[t.createVNode("span",{class:["gradient-thumbs__item-inner","".concat(n.value,"--bg-alpha")]},null)])}))])])]),t.createVNode("div",{class:"".concat(n.value,"__gradient-degree"),title:"".concat(u.value,"deg")},[t.createVNode(Zy,{size:"small",theme:"normal",min:0,max:360,step:1,format:function(e){return"".concat(e,"\xb0")},modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},onBlur:v,onEnter:v,disabled:e.disabled},null)]),t.createVNode("div",{class:["".concat(n.value,"__gradient-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"preview-inner",style:{background:p}},null)])])}}}),sN=t.defineComponent({name:"SaturationPanel",props:aN,setup:function(e){var n=yk(),r=t.ref(null),o=t.ref(null),a=t.ref(null),l=t.reactive({width:230,height:168}),i=t.computed((function(){var t=e.color,n=t.saturation,r=t.value,o=l.width,a=l.height,i=Math.round((1-r)*a),u=Math.round(n*o);return{color:e.color.rgb,left:"".concat(u,"px"),top:"".concat(i,"px")}})),u=function(t,n){if(!e.disabled){var r=function(e){var t=l.width,n=l.height,r=e.x,o=e.y;return{saturation:Math.round(r/t*100),value:Math.round(100*(1-o/n))}}(t),o=r.saturation,a=r.value;e.onChange({saturation:o/100,value:a/100,addUsedColor:n})}},c=function(n){e.disabled||t.nextTick((function(){u(n,!0)}))},s=t.computed((function(){return"hsl(".concat(e.color.hue,", 100%, 50%)")}));return t.onMounted((function(){l.width=r.value.offsetWidth||230,l.height=r.value.offsetHeight||168,a.value=new eN(r.value,{start:function(){l.width=r.value.offsetWidth,l.height=r.value.offsetHeight},drag:function(e){u(e)},end:c})})),t.onBeforeUnmount((function(){a.value.destroy()})),function(){return t.createVNode("div",{class:["".concat(n.value,"__saturation")],ref:r,style:{background:s.value}},[t.createVNode("span",{class:["".concat(n.value,"__thumb")],role:"slider",tabindex:0,ref:o,style:i.value},null)])}}});function dN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vN(e){for(var t=1;t0?t.createVNode("span",{role:"button",class:"".concat(n.value,"__icon"),onClick:function(){return s()}},[t.createVNode(o,null,null)]):null]):null]),t.createVNode("ul",{class:["".concat(r,"--items"),"narrow-scrollbar"]},[e.colors.map((function(o){return t.createVNode("li",{class:["".concat(r,"--item"),u(o)&&e.editable?l.active:""],title:o,key:o,onClick:function(){e.disabled||function(t){e.onSetColor(t)}(o)}},[t.createVNode("div",{class:["".concat(r,"--color"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(r,"--inner"),style:{background:o}},null)])])}))])])}}});function SN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kN(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),V(e)}},V=function(e){k(e)},D=function(e){y(N(),{color:$k(C.value),trigger:e||"palette-saturation-brightness"})};t.watch((function(){return[e.defaultValue,e.enableAlpha]}),x),t.watch((function(){return g.value}),(function(e){e!==N()&&(x(),w.value=C.value.isGradient?"linear-gradient":"monochrome")}));var E=function(e){w.value=e,"linear-gradient"===e?C.value.update(C.value.gradientColors.length>0?C.value.linearGradient:mk):C.value.update(C.value.rgba),D()},F=function(e){return P.value=e},T=function(e){var t=e.saturation,n=e.value,r=C.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)C.value.saturation=t,C.value.value=n,l="palette-saturation-brightness";else if(t!==o)C.value.saturation=t,l="palette-saturation";else{if(n===a)return;C.value.value=n,l="palette-brightness"}C.value.update(C.value.rgba),D(l)},I=function(t){var n;C.value.hue=t,D("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:$k(C.value)})},M=function(e){C.value.alpha=e,D("palette-alpha-bar")},A=function(e,t){C.value.update(e),C.value.alpha=t,D("input")},B=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":C.value.gradientDegree=n,r="input";break;case"selectedId":C.value.gradientSelectedId=n;break;case"colors":C.value.gradientColors=n}D(r)},L=function(t,n){Uk.isGradientColor(n)?e.colorModes.includes("linear-gradient")?(w.value="linear-gradient",C.value.update(n),C.value.updateCurrentGradientColor()):console.warn("\u8be5\u6a21\u5f0f\u4e0d\u652f\u6301\u6e10\u53d8\u8272"):"linear-gradient"===w.value?(C.value.updateStates(n),C.value.updateCurrentGradientColor()):C.value.update(n),D()};return function(){var n,r={color:C.value,disabled:e.disabled},o=null!==S.value&&!1!==S.value,l=e.swatchColors;void 0===l&&(l=i(hk));var u=(null===(n=l)||void 0===n?void 0:n.length)>0;return t.createVNode("div",{class:["".concat(a.value,"__panel"),!!e.disabled&&d.disabled]},[t.createVNode(_k,t.mergeProps(e,{mode:w.value,onModeChange:E}),null),t.createVNode("div",{class:["".concat(a.value,"__body")]},[O.value?t.createVNode(cN,t.mergeProps(r,{onChange:B,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(sN,t.mergeProps(r,{onChange:T}),null),t.createVNode("div",{class:["".concat(a.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(a.value,"__sliders")]},[t.createVNode(pN,t.mergeProps(r,{onChange:I}),null),e.enableAlpha?t.createVNode(mN,t.mergeProps(r,{onChange:M}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(a.value,"__sliders-preview"),"".concat(a.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(a.value,"__sliders-preview-inner"),style:{background:O.value?C.value.linearGradient:C.value.rgba}},null)]):null]),t.createVNode(CN,t.mergeProps(e,{color:C.value,format:P.value,onModeChange:F,onInputChange:A}),null),u||o?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(a.value,"__swatches-wrap")},[o?t.createVNode(jN,t.mergeProps(r,{title:c(s.value.recentColorTitle),editable:!0,colors:S.value,handleAddColor:_,onSetColor:function(e){return L(0,e)},onChange:V}),null):null,u?t.createVNode(jN,t.mergeProps(r,{title:c(s.value.swatchColorTitle),colors:l,onSetColor:function(e){return L(0,e)}}),null):null])]):null])])}}});function _N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function VN(e){for(var t=1;tn-2*d.value?"scale(".concat((n-2*d.value)/r,")"):"scale(1)")};return t.onMounted((function(){t.nextTick((function(){b()}))})),t.onUpdated((function(){t.nextTick((function(){b()}))})),t.watch((function(){return e.image}),(function(e){e&&(c.value=!0)})),function(){var l=r("default","content"),d=o("icon"),v=d&&!l,p=e.shape,b=e.image,w=e.alt,O=["".concat(n.value),a.value[f.value],s(s(s({},"".concat(n.value,"--circle"),"circle"===p),"".concat(n.value,"--round"),"round"===p),"".concat(n.value,"__icon"),!!v)];return l=t.createVNode("span",{ref:u,style:WN({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(zN,t.mergeProps({style:WN({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:WN({},m.value)},[l])}}}),UN={cascading:{type:String,default:"right-up",validator:function(e){return!e||["left-up","right-up"].includes(e)}},collapseAvatar:{type:[String,Function]},max:{type:Number},popupProps:{type:Object},size:{type:String,default:""}};var YN=t.defineComponent({name:"TAvatarGroup",props:UN,setup:function(e){t.provide("avatarGroup",e);var n=ei(),r=Qa("avatar"),o=Qa("avatar-group"),a=function(n){if((null==n?void 0:n.length)>e.max){var o=l(n),a=n.slice(0,e.max);return a.push(t.createVNode(KN,{class:"".concat(r.value,"__collapse"),size:e.size},"function"==typeof(i=o)||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?o:{default:function(){return[o]}})),a}var i;return n},l=function(t){return n("collapseAvatar")||"+".concat(t.length-e.max)};return function(){var l=n("default"),i=e.cascading,u=e.max,c=["".concat(o.value),s(s({},"".concat(r.value,"--offset-right"),"right-up"===i),"".concat(r.value,"--offset-left"),"left-up"===i)],d=u&&u>=0?[a(Zl(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),$N=pi(KN),ZN=pi(YN),qN={color:{type:String,default:""},content:{type:[String,Function]},count:{type:[String,Number,Function],default:0},default:{type:[String,Function]},dot:Boolean,maxCount:{type:Number,default:99},offset:{type:Array},shape:{type:String,default:"circle",validator:function(e){return["circle","round"].includes(e)}},showZero:Boolean,size:{type:String,default:"medium",validator:function(e){return["small","medium"].includes(e)}}},XN=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:qN,setup:function(e,n){var r=n.attrs,o=ni(),a=ei(),l=t.computed((function(){var t=a("count");return Number.isNaN(Number(t))?t:(t=Number(e.count))>e.maxCount?"".concat(e.maxCount,"+"):t})),i=Qa(),u=Qa("badge"),c=t.computed((function(){return!e.showZero&&(0===l.value||"0"===l.value)})),d=t.computed((function(){return[s(s(s(s({},"".concat(u.value,"--dot"),!!e.dot),"".concat(u.value,"--circle"),!e.dot&&"circle"===e.shape),"".concat(u.value,"--round"),!e.dot&&"round"===e.shape),"".concat(i.value,"-size-s"),"small"===e.size)]})),v=t.computed((function(){var t=function(){if(!e.offset)return{};var t=Ha(e.offset,2),n=t[0],r=t[1];return{xOffset:n=Number.isNaN(Number(n))?n:"".concat(n,"px"),yOffset:r=Number.isNaN(Number(r))?r:"".concat(r,"px")}}(),n=t.xOffset,r=t.yOffset;return{background:e.color,right:n,top:r}}));return function(){return t.createVNode("div",t.mergeProps({class:u.value},r),[o("default","content"),c.value?null:t.createVNode("sup",{class:d.value,style:v.value},[e.dot?null:l.value])])}}}),GN=pi(XN),JN={cell:{type:[String,Function]},cellAppend:{type:[String,Function]},controllerConfig:{type:[Boolean,Object],default:void 0},fillWithZero:{type:Boolean,default:void 0},firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:"YYYY-MM-DD"},head:{type:[String,Function]},isShowWeekendDefault:{type:Boolean,default:!0},mode:{type:String,default:"month",validator:function(e){return!e||["month","year"].includes(e)}},month:{type:[String,Number]},multiple:Boolean,preventCellContextmenu:Boolean,range:{type:Array},theme:{type:String,default:"full",validator:function(e){return!e||["full","card"].includes(e)}},value:{type:[String,Array,Date]},week:{type:[Array,Function]},year:{type:[String,Number]},onCellClick:Function,onCellDoubleClick:Function,onCellRightClick:Function,onControllerChange:Function,onMonthChange:Function},QN="calendar",e_=1970,t_={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},n_=function(e){var t=Ya(e).day();return 0===t&&(t=7),t},r_=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},o_=function(e,t){for(var n=t.curSelectedYear,r=t.curSelectedMonth,o=t.realFirstDayOfWeek,a=t.curDate,l=t.curDateList,i=e.format,u=e.multiple,c=[],s=Ya("".concat(n,"-").concat(r)).startOf("month").toDate(),d=Ya(Ya("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=n_(t);return n>=e?n-e:7-e+n}(o,s),p=[],m=1,h=function(e,t,n,r){return{mode:"month",belongTo:e,isCurrent:t,day:n_(n),weekOrder:r,date:n,formattedDate:Ya(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find((function(t){return t.isSame(Ya(e))})):a.isSame(Ya(e))},y=0;y0&&(r.curSelectedYear=n)}),{immediate:!0}),t.watch((function(){return e.month}),(function(e){var t,n;n=(t=e)?parseInt("".concat(t),10):parseInt(a_().format("M"),10),!isNaN(n)&&n>0&&n<=12&&(r.curSelectedMonth=n)}),{immediate:!0}),t.watch((function(){return e.isShowWeekendDefault}),(function(e){r.isShowWeekend=e}),{immediate:!0}),t.watch((function(){return e.mode}),(function(e){r.curSelectedMode=e}),{immediate:!0}),t.watch((function(){return e.theme}),(function(e){"card"===e&&(r.controlSize="small"),"full"===e&&(r.controlSize="medium")}),{immediate:!0}),{state:r,toToday:function(){var e=a_();r.curDate=e,r.curSelectedYear=e.year(),r.curSelectedMonth=parseInt(e.format("M"),10)},checkDayVisible:function(e){var t=!0;return r.isShowWeekend||(t=6!==e&&7!==e),t}}}function i_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u_(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0],disabled:!1,mode:{visible:!0,radioGroupProps:{}},year:{visible:!0,selectProps:{}},month:{visible:!0,selectProps:{}},weekend:{visible:!0,showWeekendButtonProps:{},hideWeekendButtonProps:{}},current:{visible:!0,currentDayButtonProps:{},currentMonthButtonProps:{}}}};function s_(e,n){var r=Ga(QN),o=r.t,a=r.globalConfig,l=t.computed((function(){return e.week||o(a.value.week).split(",")}));function i(e){var t,n,r=l.value;return E(r)&&r[e-1]?r[e-1]:(t="",(n=e.toString())in t_&&(t=t_[n]),t)}var u=t.computed((function(){for(var e=[],t=n.realFirstDayOfWeek;t<=7;t++)e.push({num:t,display:i(t)});if(n.realFirstDayOfWeek>1)for(var r=1;rparseInt(Ya(m.value.to).format("M"),10)}}return n}t.watch((function(){return{year:"".concat(c.curSelectedYear),month:"".concat(c.curSelectedMonth)}}),(function(t){H(e.onMonthChange)&&e.onMonthChange(h_({},t)),p.emitControllerChange()}));var g={yearSelectOptionList:t.computed((function(){var e=[],t=c.curSelectedYear-10,n=c.curSelectedYear+10;m.value&&m.value.from&&m.value.to&&(t=Ya(m.value.from).year(),n=Ya(m.value.to).year()),t1)||e===Array.from(t.popupStack.dialog).pop()}))})));function T_(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.visible,o=n.runOnMounted,a=t.ref(0),l=function(){a.value=F_.add(e)},i=function(){F_.delete(a.value,e)};return t.watch((function(){return null==r?void 0:r.value}),(function(e){e?l():i()}),{immediate:!0}),o&&(t.onMounted((function(){l()})),t.onBeforeUnmount((function(){i()}))),{zIndex:t.readonly(a),open:l,close:i,isLastDialog:function(){return"dialog"===e&&F_.isLastDialog(a.value)}}}function I_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function M_(e){var n=t.ref(e);return{transform:n,mouseDownHandler:function(e){var t=e.pageX,r=e.pageY,o=n.value,a=o.translateX,l=o.translateY,i=function(e){var o=e.pageX,i=e.pageY;n.value={translateX:a+o-t,translateY:l+i-r}},u=function(){document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},resetTransform:function(){n.value=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function K_(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var U_={body:{type:[String,Function]},cancelBtn:{type:[String,Object,Function]},closeBtn:{type:[String,Boolean,Function],default:!0},confirmBtn:{type:[String,Object,Function]},confirmLoading:{type:Boolean,default:void 0},footer:{type:[Boolean,Function]},header:{type:[String,Boolean,Function],default:!0},theme:{type:String,default:"default",validator:function(e){return!e||["default","info","warning","danger","success"].includes(e)}},onCancel:Function,onCloseBtnClick:Function,onConfirm:Function};function Y_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $_(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))})))}},props:$_($_({},L_),U_),setup:function(e,n){var r=n.expose,o=t.ref(null),a=Qa("dialog"),l=Qa(),i=ei(),u=ni(),c=Ga("dialog").globalConfig,s=up({CloseIcon:xc,InfoCircleFilledIcon:ad,CheckCircleFilledIcon:ku,ErrorCircleFilledIcon:Qc}),d=s.CloseIcon,v=s.InfoCircleFilledIcon,f=s.CheckCircleFilledIcon,p=s.ErrorCircleFilledIcon,m=t.toRefs(e),h=m.cancelBtn,g=m.confirmBtn,y=m.confirmLoading,b=H_({confirmBtnAction:function(t){var n;return null===(n=e.onConfirm)||void 0===n?void 0:n.call(e,{e:t})},cancelBtnAction:function(t){var n;return null===(n=e.onCancel)||void 0===n?void 0:n.call(e,{e:t})}}),w=b.getConfirmBtn,O=b.getCancelBtn,C=t.computed((function(){return"modeless"===e.mode})),x=t.computed((function(){return"full-screen"===e.mode})),P=function(t){var n;return null==e||null===(n=e.onCloseBtnClick)||void 0===n?void 0:n.call(e,{e:t})},j=function(t){C.value&&null!=e&&e.draggable&&t.stopPropagation()};r({$el:o,resetPosition:function(){!o.value&&C.value&&e.draggable||(o.value.style.position="relative",o.value.style.left="unset",o.value.style.top="unset")}});var S=t.computed((function(){var t=["".concat(a.value),"".concat(a.value,"__modal-").concat(e.theme),C.value&&e.draggable&&"".concat(a.value,"--draggable"),e.dialogClassName];return x.value?t.push("".concat(a.value,"__fullscreen")):t.push.apply(t,["".concat(a.value,"--default"),"".concat(a.value,"--").concat(e.placement)]),t})),k=t.computed((function(){return x.value?$_({},e.dialogStyle):$_({width:K_(e.width)},e.dialogStyle)}));return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:S.value,style:k.value},[(V=t.computed((function(){var e;return(null===(e=g.value)||void 0===e?void 0:e.loading)||y.value})),D=t.createVNode("div",null,[O({cancelBtn:h.value,globalCancel:c.value.cancel,className:"".concat(a.value,"__cancel")}),w({theme:null==e?void 0:e.theme,confirmBtn:g.value,globalConfirm:c.value.confirm,globalConfirmBtnTheme:c.value.confirmBtnTheme,className:"".concat(a.value,"__confirm"),confirmLoading:V.value})]),E=i("footer",D),t.createVNode(t.Fragment,null,[(b=null!==(m=i("header",t.createVNode("h5",{class:"title"},null)))&&void 0!==m&&m,N=x.value?["".concat(a.value,"__header"),"".concat(a.value,"__header--fullscreen")]:"".concat(a.value,"__header"),_=x.value?["".concat(a.value,"__close"),"".concat(a.value,"__close--fullscreen")]:"".concat(a.value,"__close"),(b||(null==e?void 0:e.closeBtn))&&t.createVNode("div",{class:N,onMousedown:j},[t.createVNode("div",{class:"".concat(a.value,"__header-content")},[{info:t.createVNode(v,{class:"".concat(l.value,"-is-info")},null),warning:t.createVNode(p,{class:"".concat(l.value,"-is-warning")},null),danger:t.createVNode(p,{class:"".concat(l.value,"-is-error")},null),success:t.createVNode(f,{class:"".concat(l.value,"-is-success")},null)}[null==e?void 0:e.theme],b]),null!=e&&e.closeBtn?t.createVNode("span",{class:_,onClick:P},[i("closeBtn",t.createVNode(d,null,null))]):null])),(r=u("default","body"),s="default"===(null==e?void 0:e.theme)?["".concat(a.value,"__body")]:["".concat(a.value,"__body__icon")],x.value&&E?s.push("".concat(a.value,"__body--fullscreen")):x.value&&s.push("".concat(a.value,"__body--fullscreen--without-footer")),t.createVNode("div",{class:s,onMousedown:j},[r])),!!e.footer&&(n=x.value?["".concat(a.value,"__footer"),"".concat(a.value,"__footer--fullscreen")]:"".concat(a.value,"__footer"),E&&t.createVNode("div",{class:n,onMousedown:j},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),X_=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",(function(e){Z_={x:e.clientX,y:e.clientY},setTimeout((function(){Z_=null}),100)}),!0);var G_=1,J_=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:L_,emits:["update:visible"],setup:function(e,n){var r=Qa("dialog"),o=Qa(),a=t.ref(null),l=Ga("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),B({e:t.e,trigger:"cancel"})},c=ri((function(){return e.attach}));Ym();var d=t.ref(),v=t.ref(),f=t.computed((function(){return"modal"===e.mode})),p=t.computed((function(){return"modeless"===e.mode})),m=t.computed((function(){return"full-screen"===e.mode})),h=t.computed((function(){return e.visible})),g=t.computed((function(){return["".concat(r.value,"__mask"),!e.showOverlay&&"".concat(o.value,"-is-hidden")]})),y=t.computed((function(){return m.value?["".concat(r.value,"__position_fullscreen")]:f.value||p.value?["".concat(r.value,"__position"),!!e.top&&"".concat(r.value,"--top"),"".concat(e.placement&&!e.top?"".concat(r.value,"--").concat(e.placement):"")]:[]})),b=t.computed((function(){return m.value||f.value||p.value?["".concat(r.value,"__wrap")]:null})),w=t.computed((function(){if(m.value)return{};var t=e.top,n={};void 0!==t&&(n={paddingTop:K_(t)});return n})),O=T_("dialog",{visible:h}).isLastDialog;function C(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch((function(){return e.visible}),(function(n){var r;n?((f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick((function(){var e;if(Z_&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(Z_.x-t.offsetLeft,"px ").concat(Z_.y-t.offsetTop,"px")}}))),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout((function(){C()}),150));S(n)}));var x,P,j,S=function(t){t?(document.addEventListener("keydown",N),e.confirmOnEnter&&document.addEventListener("keydown",k)):(document.removeEventListener("keydown",N),e.confirmOnEnter&&document.removeEventListener("keydown",k))},k=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},N=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&B({e:t,trigger:"esc"}))},_=(x=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),B({e:t,trigger:"overlay"}))},P=!1,j=!1,{onClick:function(e){P&&j&&x(e),P=!1,j=!1},onMousedown:function(e){P=e.target===e.currentTarget},onMouseup:function(e){j=e.target===e.currentTarget}}),V=_.onClick,D=_.onMousedown,E=_.onMouseup,F=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),B({trigger:"close-btn",e:t.e})},T=function(){var t;null===(t=e.onBeforeOpen)||void 0===t||t.call(e)},I=function(){var t;null===(t=e.onOpened)||void 0===t||t.call(e)},M=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},A=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};return t.onMounted((function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?W_():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(G_+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")})),t.onBeforeUnmount((function(){S(!1),C()})),function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=nl(e,X_);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:V,onMousedown:D,onMouseup:E},[t.createVNode(q_,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:F}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:T,onAfterEnter:I,onBeforeLeave:M,onAfterLeave:A},{default:function(){return[(!e.destroyOnClose||e.visible)&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function Q_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function eV(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{max:2,min:.5,step:.2},n=e.max,r=e.min,o=e.step,a=e.defaultScale,l=t.ref(null!=a?a:1),i=Ea((function(){var e=Ly(l.value,o);s(e)}),50),u=Ea((function(){var e=Ry(l.value,o);s(e)}),50),c=function(){l.value=null!=a?a:1},s=function(e){var t=e;en&&(t=n),l.value=t};return t.watch((function(){return e}),(function(){return c()})),{scale:l,onZoomIn:i,onZoomOut:u,resetScale:c}}(e.imageScale),E=D.scale,F=D.onZoomIn,T=D.onZoomOut,I=D.resetScale,M=function(){var e=t.ref(0);return{rotate:e,onRotate:function(){e.value+=90},resetRotate:function(){e.value=0}}}(),A=M.rotate,B=M.onRotate,L=M.resetRotate,R=function(){V(),I(),L()},z=t.computed((function(){return dV(e.images)})),H=t.computed((function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}})),W=T_("dialog",{visible:y}).isLastDialog,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob((function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)}))},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case cV.left:K();break;case cV.right:U();break;case cV.up:F();break;case cV.down:T();break;case cV.esc:e.closeOnEscKeydown&&W()&&Z({e:t,trigger:"esc"})}},J=t.ref();t.watch((function(){return y.value}),(function(e){clearTimeout(O.value),e?(w.value=!1,t.nextTick().then((function(){var e,t;null===(e=J.value)||void 0===e||null===(t=e.focus)||void 0===t||t.call(e)})),R()):O.value=setTimeout((function(){w.value=!0}),200)}));var Q=function(e){e.preventDefault(),e.deltaY>0?T():F()},ee=t.computed((function(){return{transform:"translateX(calc(-".concat(m.value," * (40px / 9 * 16 + 4px)))")}})),te=function(){return t.createVNode("div",{class:P.value},[t.createVNode(B_,{icon:function(){return t.createVNode(Au,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:S},null),t.createVNode("div",{class:"".concat(o.value,"__header-prev")},[t.createVNode("div",{class:"".concat(o.value,"__header-trans"),style:ee.value},[z.value.map((function(e,n){return t.createVNode("div",{key:n,class:["".concat(o.value,"__header-box"),s({},"".concat(r.value,"-is-active"),n===m.value)]},[t.createVNode(zN,{src:e.thumbnail||e.mainImage,error:"",class:"".concat(o.value,"__header-img"),onClick:function(){return function(e){h(e,{trigger:"current"})}(n)}},null)])}))])])])},ne=function(e){var n="prev"===e?0:180,r=a("navigationArrow",t.createVNode($u,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(B_,{class:"".concat(o.value,"__modal-").concat(e,"-bt"),onClick:"prev"===e?K:U,icon:function(){return r}},null)},re=function(){if(!1!==e.closeBtn)return t.createVNode("div",{class:["".concat(o.value,"__modal-icon"),"".concat(o.value,"__modal-close-bt")],onClick:q},[a("closeBtn",t.createVNode(xc,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(uV,{zIndex:j.value,visible:y.value,index:m.value,images:z.value,scale:E.value,rotate:A.value,mirror:N.value,currentImage:H.value,onRotate:B,onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onClose:Z,onDownload:Y,draggable:e.draggable,showOverlay:i.value,title:e.title,imageReferrerpolicy:f.value},null)]):t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(t.Teleport,{disabled:!e.attach||!C.value,to:C.value},{default:function(){return[t.createVNode(t.Transition,null,{default:function(){return[(y.value||!w.value)&&t.withDirectives(t.createVNode("div",{ref:J,class:x.value,style:{zIndex:j.value},onWheel:Q,tabindex:-1,onKeydown:G},[!!i.value&&t.createVNode("div",{class:"".concat(o.value,"__modal-mask"),onClick:X},null),z.value.length>1&&t.createVNode(t.Fragment,null,[te(),t.createVNode("div",{class:"".concat(o.value,"__modal-index")},[e.title&&a("title"),"".concat(m.value+1,"/").concat(z.value.length)]),ne("prev"),ne("next")]),re(),t.createVNode(iV,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(A_,{scale:E.value,rotate:A.value,mirror:N.value,src:H.value.mainImage,placementSrc:H.value.thumbnail,isSvg:H.value.isSvg,imageReferrerpolicy:f.value},null)]),[[t.vShow,y.value]])]}})]}})])}}}),fV=pi(vV),pV={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},mV=t.defineComponent({name:"TListItem",props:pV,setup:function(){var e=Qa("list-item"),n=ei();return function(){var r=n("content"),o=n("default"),a=n("action");return t.createVNode("li",{class:e.value},[t.createVNode("div",{class:"".concat(e.value,"-main")},[o||r,a&&t.createVNode("li",{class:"".concat(e.value,"__action")},[a])])])}}}),hV={asyncLoading:{type:[String,Function]},footer:{type:[String,Function]},header:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},scroll:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},split:Boolean,stripe:Boolean,onLoadMore:Function,onScroll:Function},gV="load-more";function yV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bV(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function OV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?Qm("List","".concat(o," does not exist in data, check `index` or `key` please.")):a.scrollToElement(xV(xV({},e),{},{index:o-1})):Qm("List","scrollTo: `index` or `key` must exist.")}}}(e.scroll,a,d),f=v.virtualConfig,p=v.cursorStyle,m=v.listStyle,h=v.isVirtualScroll,g=v.onInnerVirtualScroll,y=v.scrollToElement,b=t.computed((function(){return["".concat(i.value),u.value[e.size],s(s(s({},"".concat(i.value,"--split"),e.split),"".concat(i.value,"--stripe"),e.stripe),"".concat(i.value,"--vertical-action"),"vertical"===e.layout)]})),w=function(t){var n,r=t.target,o=r.scrollTop,a=r.scrollHeight,l=r.clientHeight;h.value&&g(t),null===(n=e.onScroll)||void 0===n||n.call(e,{e:t,scrollTop:o,scrollBottom:a-l-o})},O=t.computed((function(){return Do(e.asyncLoading)&&["loading","load-more"].includes(e.asyncLoading)?"".concat(i.value,"__load ").concat(i.value,"__load--").concat(e.asyncLoading):"".concat(i.value,"__load")})),C=function(){if(e.asyncLoading&&Do(e.asyncLoading)){if("loading"===e.asyncLoading)return t.createVNode("div",null,[t.createVNode(mi,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===gV)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;Do(e.asyncLoading)&&e.asyncLoading!==gV||null===(n=e.onLoadMore)||void 0===n||n.call(e,{e:t})};return o({scrollTo:y}),function(){var e,n,r,o=[(e=c("header"),n=c("footer"),r=f.isVirtualScroll.value,t.createVNode(t.Fragment,null,[e?t.createVNode("div",{class:"".concat(i.value,"__header")},[e]):null,r?t.createVNode(t.Fragment,null,[t.createVNode("div",{style:p.value},null),t.createVNode("ul",{class:"".concat(i.value,"__inner"),style:m.value},[f.visibleData.value.map((function(e){return t.createVNode(t.Fragment,null,[t.createVNode(mV,ta(e,"slots"),e.slots)])}))])]):t.createVNode("ul",{class:"".concat(i.value,"__inner")},[c("default")]),n?t.createVNode("div",{class:"".concat(i.value,"__footer")},[n]):null])),t.createVNode("div",{class:O.value,onClick:x},[C()])];return t.createVNode("div",{class:b.value,onScroll:w,ref:a,style:h.value?"position:relative":void 0},[o])}}}),jV={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},SV=t.defineComponent({name:"TListItemMeta",props:jV,setup:function(e,n){var r=Qa("list-item__meta"),o=ni(),a=ei(),l=function(){(e.avatar||n.slots.avatar)&&console.warn("`avatar` is going to be deprecated, please use `image` instead");var a=o("avatar","image");if(a)return Do(a)?t.createVNode("div",{class:"".concat(r.value,"-avatar")},[t.createVNode("img",{src:a},null)]):t.createVNode("div",{class:"".concat(r.value,"-avatar")},[a])};return function(){var e=a("title"),n=a("description"),o=[l(),t.createVNode("div",{class:"".concat(r.value,"-content")},[e&&t.createVNode("h3",{class:"".concat(r.value,"-title")},[e]),n&&t.createVNode("p",{class:"".concat(r.value,"-description")},[n])])];return t.createVNode("div",{class:r.value},[o])}}}),kV=pi(PV),NV=pi(mV),_V=pi(SV),VV="line",DV="plump",EV="circle",FV="small",TV="medium",IV="large",MV=72,AV=112,BV=160,LV=14/MV,RV=20/AV,zV=36/BV,HV=["success","error","warning"],WV={color:{type:[String,Object,Array],default:""},label:{type:[String,Boolean,Function],default:!0},percentage:{type:Number,default:0},size:{type:[String,Number],default:"medium"},status:{type:String,validator:function(e){return!e||["success","error","warning","active"].includes(e)}},strokeWidth:{type:[String,Number]},theme:{type:String,default:"line",validator:function(e){return!e||["line","plump","circle"].includes(e)}},trackColor:{type:String,default:""}},KV=t.defineComponent({name:"TProgress",props:WV,setup:function(e){var n=ei(),r=Qa("progress"),o=up({CloseCircleFilledIcon:yc,CheckCircleFilledIcon:ku,ErrorCircleFilledIcon:Qc,CloseIcon:xc,CheckIcon:Eu,ErrorIcon:os}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c=o.CheckIcon,d=o.ErrorIcon,v=t.computed((function(){return!e.status&&e.percentage>=100?"success":e.status||"default"})),f=t.computed((function(){var t={};if(e.strokeWidth){var n=Do(e.strokeWidth)?e.strokeWidth:"".concat(e.strokeWidth,"px");t.height=n,t.borderRadius=n}return e.trackColor&&(t.backgroundColor=e.trackColor),t})),p=t.computed((function(){return{width:"".concat(e.percentage,"%"),background:e.color&&al(e.color)}})),m=t.computed((function(){return{stroke:E(e.color)?"":e.color}})),h=t.computed((function(){return{stroke:E(e.trackColor)?"":e.trackColor}})),g=t.computed((function(){var t=AV;if(!e.size)return t;var n=FV,r=IV,o=TV;switch(e.size){case n:t=MV;break;case o:t=AV;break;case r:t=BV;break;default:t=Number(e.size)}return t})),y=t.computed((function(){return g.value/2})),b=t.computed((function(){return y.value-O.value/2})),w=t.computed((function(){if(e.theme!==EV)return{};var t=g.value*RV;return g.value<=MV?t=g.value*LV:g.value>=BV&&(t=g.value*zV),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}})),O=t.computed((function(){var t=e.size===FV?4:6;return e.strokeWidth?Number(e.strokeWidth):t})),C=t.computed((function(){var t=(g.value-O.value)/2,n=2*Math.PI*t,r=e.percentage/100;return"".concat(n*r," ").concat(n*(1-r))})),x=function(){var n,o,s="".concat(e.percentage,"%"),v=e.status||"";if(HV.includes(v)&&e.theme!==DV){var f=(n={success:c,warning:d,error:u},o={success:l,warning:i,error:a},e.theme===EV?n:o)[v];f&&(s=t.createVNode(f,{class:["".concat(r.value,"__icon")]},null))}return s};return function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",x())]),a=e.percentage>10?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten");return t.createVNode("div",{class:r.value},[e.theme===VV&&t.createVNode("div",{class:"".concat(r.value,"--thin ").concat(r.value,"--status--").concat(v.value)},[t.createVNode("div",{class:"".concat(r.value,"__bar"),style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),style:p.value},null)]),o]),e.theme===DV&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(a),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),style:p.value},[e.percentage>10&&o]),e.percentage<=10&&o]),e.theme===EV&&t.createVNode("div",{class:"".concat(r.value,"--circle ").concat(r.value,"--status--").concat(v.value),style:w.value},[o,t.createVNode("svg",{width:g.value,height:g.value,viewBox:"0 0 ".concat(g.value," ").concat(g.value)},[t.createVNode("circle",{cx:y.value,cy:y.value,r:b.value,"stroke-width":O.value,fill:"none",class:["".concat(r.value,"__circle-outer")],style:h.value},null),e.percentage>0&&t.createVNode("circle",{cx:y.value,cy:y.value,r:b.value,"stroke-width":O.value,fill:"none","stroke-linecap":"round",class:["".concat(r.value,"__circle-inner")],transform:"matrix(0,-1,1,0,0,".concat(g.value,")"),"stroke-dasharray":C.value,style:m.value},null)])])])}}}),UV=pi(KV),YV={animation:{type:String,default:"none",validator:function(e){return!e||["gradient","flashed","none"].includes(e)}},delay:{type:Number,default:0},loading:{type:Boolean,default:!0},rowCol:{type:Array},theme:{type:String,validator:function(e){return!e||["text","avatar","paragraph","avatar-text","tab","article"].includes(e)}}},$V={text:[1],avatar:[{type:"circle",size:"56px"}],paragraph:[1,1,{width:"70%"}],"avatar-text":[[{type:"circle"},{type:"text",height:"32px"}]],tab:[{height:"30px"},{height:"200px"}],article:[{type:"rect",height:"30px",width:"100%"},{type:"rect",height:"200px",width:"100%"},[{type:"text",height:"30px"},{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}]]},ZV=function(e){var t=Object.create(null);return["width","height","marginRight","marginLeft","margin","size","background","backgroundColor"].forEach((function(n){if(n in e){var r=e[n],o=Ho(r)?"".concat(r,"px"):r;if("size"===n){var a=[o,o];t.width=a[0],t.height=a[1]}else t[n]=o}})),t},qV=t.defineComponent({name:"TSkeleton",props:YV,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=Qa("skeleton"),l=ni(),i=function(t){return["".concat(a.value,"__col"),"".concat(a.value,"--type-").concat(t.type||"text"),s({},"".concat(a.value,"--animation-").concat(e.animation),e.animation)]},u=function(n){var r=n||e.rowCol;return r.map((function(e){return t.createVNode("div",{class:["".concat(a.value,"__row")]},[(n=e,(j(n)?n:Ho(n)?new Array(n).fill({type:"text"}):[n]).map((function(e){return t.createVNode("div",{class:i(e),style:ZV(e)},[H(e.content)?e.content(t.h):e.content])})))]);var n}))},c=null;return t.watch((function(){return e.loading}),(function(t){if(!t)return clearTimeout(c),void(o.value=!1);e.delay>0?c=setTimeout((function(){clearTimeout(c),o.value=!0}),e.delay):o.value=!0}),{immediate:!0}),function(){var n=l("default","content");if(r.default&&!o.value)return t.createVNode("div",null,[n]);if(o.value){var i=[];return e.theme&&i.push(u($V[e.theme])),e.rowCol&&i.push(u(e.rowCol)),e.theme||e.rowCol||i.push(u([1,1,1,{width:"70%"}])),t.createVNode("div",{class:a.value},[i])}}}}),XV=pi(qV),GV={animation:{type:Object},animationStart:Boolean,color:{type:String,validator:function(e){return!e||["black","blue","red","orange","green"].includes(e)}},decimalPlaces:{type:Number},extra:{type:[String,Function]},format:{type:Function},loading:Boolean,prefix:{type:[String,Function]},separator:{type:String,default:","},suffix:{type:[String,Function]},title:{type:[String,Function]},trend:{type:String,validator:function(e){return!e||["increase","decrease"].includes(e)}},trendPlacement:{type:String,default:"left",validator:function(e){return!e||["left","right"].includes(e)}},unit:{type:[String,Function]},value:{type:Number}},JV=function(e){return 1-Math.abs(Math.pow(e-1,4))},QV=function(){return gg((function e(t){var n=this,r=t.from,o=t.to,a=t.duration,l=void 0===a?200:a,i=t.onStart,u=t.onUpdate,c=void 0===u?function(){}:u,d=t.onFinish;mg(this,e),s(this,"from",void 0),s(this,"to",void 0),s(this,"duration",void 0),s(this,"onStart",void 0),s(this,"onUpdate",void 0),s(this,"onFinish",void 0),s(this,"startTime",void 0),s(this,"started",void 0),s(this,"finished",void 0),s(this,"timer",void 0),s(this,"keys",void 0),s(this,"time",0),s(this,"elapsed",0),this.from=r,this.to=o,this.duration=l,this.onStart=i,this.onUpdate=c,this.onFinish=d,this.startTime=Date.now(),this.started=!1,this.finished=!1,this.timer=null,this.keys={},Object.entries(r).forEach((function(e){var t=Ha(e,2),r=t[0],o=t[1];void 0===n.to[r]&&(n.to[r]=o)})),Object.entries(o).forEach((function(e){var t=Ha(e,2),r=t[0],o=t[1];void 0===n.from[r]&&(n.from[r]=o)}))}),[{key:"update",value:function(){var e=this;if(this.time=Date.now(),!(this.time=this.duration)return this.finished=!0,void(null===(t=this.onFinish)||void 0===t||t.call(this,this.keys));var n=Math.min(this.time-this.startTime,this.duration);this.elapsed=n;var r,o=JV(n/this.duration);if(Object.keys(this.to).forEach((function(t){var n=e.to[t]-e.from[t];e.keys[t]=e.from[t]+n*o})),!this.started)null===(r=this.onStart)||void 0===r||r.call(this,this.keys),this.started=!0;this.onUpdate(this.keys)}}},{key:"polyfillStart",value:function(){var e=this,t=Date.now()-this.startTime,n=JV(t/this.duration);this.timer=setInterval((function(){e.update(),e.finished&&clearInterval(e.timer)}),n)}},{key:"normalStart",value:function(){var e=this,t=function(){e.update(),e.timer=requestAnimationFrame(t),e.finished&&(cancelAnimationFrame(e.timer),e.timer=null)};t()}},{key:"start",value:function(){this.startTime=Date.now(),ll()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){ll()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),eD={black:"var(--td-text-color-primary)",blue:"var(--td-brand-color)",red:"var(--td-error-color)",orange:"var(--td-warning-color)",green:"var(--td-success-color)"};var tD=t.defineComponent({name:"TStatistic",props:GV,setup:function(e,n){var r,o,a=n.expose,l=Qa("statistic"),i=ei(),u=up({ArrowTriangleUpFilledIcon:Gi,ArrowTriangleDownFilledIcon:Yi}),c=u.ArrowTriangleUpFilledIcon,s=u.ArrowTriangleDownFilledIcon,d={increase:t.createVNode(c,null,null),decrease:t.createVNode(s,null,null)},v=t.computed((function(){return Ho(e.value)?e.value:0})),f=t.ref(null!==(r=null===(o=e.animation)||void 0===o?void 0:o.valueFrom)&&void 0!==r?r:e.value),p=t.computed((function(){var t,n,r;return null!==(t=null!==(n=e.decimalPlaces)&&void 0!==n?n:null===(r=v.value.toString().split(".")[1])||void 0===r?void 0:r.length)&&void 0!==t?t:0})),m=t.ref(),h=t.toRefs(e).value,g=function(){var t,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(t=null===(n=e.animation)||void 0===n?void 0:n.valueFrom)&&void 0!==t?t:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v.value;o!==a&&(m.value=new QV({from:{value:o},to:{value:a},duration:e.animation.duration,onUpdate:function(e){f.value=Number(e.value.toFixed(p.value))},onFinish:function(){f.value=a}}),null===(r=m.value)||void 0===r||r.start())},y=t.computed((function(){return H(e.format)?e.format(f.value):function(e,t,n){var r={minimumFractionDigits:null!=t?t:0,maximumFractionDigits:null!=t?t:20,useGrouping:!!n};return e.toLocaleString(void 0,r).replace(/,|\uff0c/g,n)}(f.value,e.decimalPlaces,e.separator)})),b=t.computed((function(){var t=e.color;return{color:eD[t]||t}}));return t.watch((function(){return e.animationStart}),(function(t){e.animation&&t&&!m.value&&g()})),t.watch(h,(function(t){var n;m.value&&(null===(n=m.value)||void 0===n||n.stop(),m.value=null);f.value=t,e.animationStart&&e.animation&&g()})),t.onMounted((function(){return e.animation&&e.animationStart&&g()})),a({start:g}),function(){var n=e.trend?d[e.trend]:null,r=i("prefix")||(n&&"right"!==e.trendPlacement?n:null),o=i("suffix")||(n&&"right"===e.trendPlacement?n:null),a=i("title"),u=i("unit"),c=i("extra");return t.createVNode("div",{class:l.value},[a&&t.createVNode("div",{class:"".concat(l.value,"-title")},[a]),t.createVNode(XV,{animation:"gradient",theme:"text",loading:!!e.loading},{default:function(){return[t.createVNode("div",{class:"".concat(l.value,"-content"),style:b.value},[r&&t.createVNode("span",{class:"".concat(l.value,"-content-prefix")},[r]),t.createVNode("span",{class:"".concat(l.value,"-content-value")},[y.value]),u&&t.createVNode("span",{class:"".concat(l.value,"-content-unit")},[u]),o&&t.createVNode("span",{class:"".concat(l.value,"-content-suffix")},[o])])]}}),c&&t.createVNode("div",{class:"".concat(l.value,"-extra")},[c])])}}}),nD=pi(tD),rD={animation:{type:String,default:"slide",validator:function(e){return!e||["slide","fade"].includes(e)}},autoplay:{type:Boolean,default:!0},current:{type:Number,default:0},defaultCurrent:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},duration:{type:Number,default:300},height:{type:Number},interval:{type:Number,default:5e3},loop:{type:Boolean,default:!0},navigation:{type:[Object,Function]},stopOnHover:{type:Boolean,default:!0},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}},type:{type:String,default:"default",validator:function(e){return!e||["default","card"].includes(e)}},cardScale:{type:Number,default:210/332},onChange:Function};function oD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function aD(e){for(var t=1;t=e.swiperItemLength/2?e.swiperItemLength+1:e.index>e.currentIndex+1&&e.index-e.currentIndex>=e.swiperItemLength/2?-2:e.index})),i=t.computed((function(){if("card"!==e.type)return 0;var t=e.getWrapAttribute("offsetWidth")||0,n=!a.value&&e.swiperItemLength>2?l.value:e.index;return Math.abs(n-e.currentIndex)<=1?t*((n-e.currentIndex)*(1-iD*e.cardScale)-iD+1)/2:n2?l.value:e.index,n=t===e.currentIndex,r=Math.round(Math.abs(t-e.currentIndex))<=1;return n?2:r?1:0})),c=t.computed((function(){if("fade"===e.animation)return{opacity:a.value?1:0,transition:e.isSwitching?"opacity ".concat(e.duration/1e3,"s"):"",zIndex:a.value?1:0};if("card"===e.type){var t=(!a.value&&e.swiperItemLength>2?l.value:e.index)===e.currentIndex;return{transform:"translateX(".concat(i.value,"px) scale(").concat(t?1:e.cardScale,")"),transition:"transform ".concat(e.duration/1e3,"s ease"),zIndex:u.value}}return{}}));return function(){var n;return t.createVNode("div",{class:["".concat(o.value,"-swiper__container__item"),s(s(s({},"".concat(o.value,"-swiper__card"),"card"===e.type),"".concat(o.value,"-is-active"),"card"===e.type&&a.value),"".concat(o.value,"-swiper__fade"),"fade"===e.animation)],style:c.value},[(null===(n=r.default)||void 0===n?void 0:n.call(r,{}))||[]])}}});function cD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sD(e){for(var t=1;t=O.value:!e.loop&&p.value+2>=O.value})),P=t.computed((function(){return[e.autoplay,p.value,e.duration,e.interval]})),j=t.computed((function(){return s(s(s(s(s(s({},"".concat(o.value,"-swiper__wrap"),!0),"".concat(o.value,"-swiper--inside"),"inside"===C.value.placement),"".concat(o.value,"-swiper--outside"),"outside"===C.value.placement),"".concat(o.value,"-swiper--vertical"),"vertical"===e.direction),"".concat(o.value,"-swiper--large"),"large"===C.value.size),"".concat(o.value,"-swiper--small"),"small"===C.value.size)})),S=t.computed((function(){var t=e.height?"".concat(e.height,"px"):"".concat(I("offsetHeight"),"px");if("card"===e.type||"fade"===e.animation)return{height:t};if("slide"===e.animation){var n={transition:g.value?"transform ".concat(e.duration/1e3,"s ease"):""},r=p.value;return O.value>1&&(r+=1,(v||f)&&(n.transition="")),"vertical"===e.direction?(n.height=t,n.transform="translate3d(0, -".concat(100*r,"%, 0px)")):n.transform="translate3d(-".concat(100*r,"%, 0px, 0px)"),["msTransform","WebkitTransform"].forEach((function(e){n[e]=n.transform})),n}return{}})),k=function(){var n=w("SwiperItem");O.value=n.length;var r=n.map((function(n,r){var o,a,l=sD(sD({},e),n.props);return t.createVNode(uD,t.mergeProps({index:r,currentIndex:p.value,isSwitching:g.value,getWrapAttribute:I,swiperItemLength:O.value},l),"function"==typeof(a=o=n.children.default())||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}})}));if("slide"===e.animation&&r.length>1){var o=t.cloneVNode(r[0],{key:"swiper-item-append-".concat(0)}),a=t.cloneVNode(r[r.length-1],{key:"swiper-item-prepend-".concat(r.length-1)});r.unshift(a),r.push(o)}return r},N=function(t,n){var o,a=t%O.value;m.value=a,r("update:current",a),null===(o=e.onChange)||void 0===o||o.call(e,a,n),g.value=!0,"slide"===e.animation&&O.value>1&&"card"!==e.type&&(a=t,v=!1,f=!1,t>=O.value&&(_(),setTimeout((function(){f=!0,p.value=0}),e.duration)),0===p.value&&(O.value>2&&t===O.value-1||2===O.value&&0===t)&&(a=-1,m.value=O.value-1,_(),setTimeout((function(){v=!0,p.value=O.value-1}),e.duration))),p.value=a},_=function(){c&&(clearTimeout(c),c=null)},V=function(){e.autoplay&&e.interval>0&&(_(),c=setTimeout((function(){N(p.value+1,{source:"autoplay"})}),0===p.value?e.interval-(e.duration+50):e.interval))},D=function(){h.value=!0,e.stopOnHover&&_(),"hover"===C.value.showSlideBtn&&(y.value=!0)},E=function(){h.value=!1,x.value||V(),"hover"===C.value.showSlideBtn&&(y.value=!1)},F=function(t){if(!g.value)return"card"===e.type?N(p.value+1>=O.value?0:p.value+1,t):N(p.value+1,t)},T=function(t){if(!g.value)return p.value-1<0?"slide"===e.animation&&2===O.value?N(0,t):N(O.value-1,t):N(p.value-1,t)},I=function(e){var t;return null===(t=b.value)||void 0===t||null===(t=t.parentNode)||void 0===t?void 0:t[e]},M=function(){if(t.isVNode(e.navigation))return e.navigation;var n,r=a("navigation");if(r&&t.isVNode(null==r?void 0:r[0]))return r;if("fraction"===C.value.type)return t.createVNode("div",{class:["".concat(o.value,"-swiper__navigation"),"".concat(o.value,"-swiper__navigation--fraction")]},[(n=p.value+1>O.value?1:p.value+1,t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow")},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__navigation-text-fraction")},[n,"/",O.value]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]))]);var l=w("SwiperItem");return t.createVNode("ul",{class:["".concat(o.value,"-swiper__navigation"),s(s(s({},"".concat(o.value,"-swiper__navigation-bars"),"bars"===C.value.type),"".concat(o.value,"-swiper__navigation-dots"),"dots"===C.value.type),"".concat(o.value,"-swiper__navigation-dots-bar"),"dots-bar"===C.value.type)]},[l.map((function(n,r){return t.createVNode("li",{key:r,class:["".concat(o.value,"-swiper__navigation-item"),s({},"".concat(o.value,"-is-active"),r===m.value)],onMouseenter:function(){return function(t){"hover"===e.trigger&&N(t,{source:"hover"})}(r)},onClick:function(){return function(t){"click"===e.trigger&&N(t,{source:"click"})}(r)}},[t.createVNode("span",null,null)])}))])};return t.watch((function(){return P.value}),(function(){V()})),t.watch((function(){return g.value}),(function(){g.value&&(d&&clearTimeout(d),d=setTimeout((function(){g.value=!1,d=0,x.value&&_()}),e.duration+50))})),t.watch((function(){return e.current}),(function(){N(e.current,{source:"autoplay"})})),t.onMounted((function(){V(),y.value="always"===C.value.showSlideBtn})),function(){return t.createVNode("div",{class:["".concat(o.value,"-swiper")],onMouseenter:D,onMouseleave:E,ref:b},[t.createVNode("div",{class:j.value},[t.createVNode("div",{class:["".concat(o.value,"-swiper__content"),s(s({},"".concat(o.value,"-swiper-fade"),"fade"===e.animation),"".concat(o.value,"-swiper-card"),"card"===e.type)]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__container"),style:S.value},[k()])]),M(),y.value?t.createVNode("div",{class:["".concat(o.value,"-swiper__arrow"),"".concat(o.value,"-swiper__arrow--default")]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]):null])])}}}),fD=pi(vD),pD=pi(uD),mD={activeRowKeys:{type:Array,default:void 0},defaultActiveRowKeys:{type:Array,default:function(){return[]}},activeRowType:{type:String,default:""},allowResizeColumnWidth:{type:Boolean,default:void 0},attach:{type:[String,Function]},bordered:Boolean,bottomContent:{type:[String,Function]},cellEmptyContent:{type:[String,Function]},columns:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},disableDataPage:Boolean,disableSpaceInactiveRow:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},firstFullRow:{type:[String,Function]},fixedRows:{type:Array},footData:{type:Array,default:function(){return[]}},footerAffixProps:{type:Object},footerAffixedBottom:{type:[Boolean,Object],default:!1},footerSummary:{type:[String,Function]},headerAffixProps:{type:Object},headerAffixedTop:{type:[Boolean,Object],default:!1},height:{type:[String,Number]},horizontalScrollAffixedBottom:{type:[Boolean,Object]},hover:Boolean,keyboardRowHover:{type:Boolean,default:!0},lastFullRow:{type:[String,Function]},lazyLoad:Boolean,loading:{type:[Boolean,Function],default:void 0},loadingProps:{type:Object},locale:{type:Object},maxHeight:{type:[String,Number]},pagination:{type:Object},paginationAffixedBottom:{type:[Boolean,Object]},resizable:Boolean,rowAttributes:{type:[Object,Array,Function]},rowClassName:{type:[String,Object,Array,Function]},rowKey:{type:String,default:"id",required:!0},rowspanAndColspan:{type:Function},rowspanAndColspanInFooter:{type:Function},scroll:{type:Object},showHeader:{type:Boolean,default:!0},size:{type:String,validator:function(e){return!e||["small","medium","large"].includes(e)}},stripe:Boolean,tableContentWidth:{type:String,default:""},tableLayout:{type:String,default:"fixed",validator:function(e){return!e||["auto","fixed"].includes(e)}},topContent:{type:[String,Function]},verticalAlign:{type:String,default:"middle",validator:function(e){return!e||["top","middle","bottom"].includes(e)}},onActiveChange:Function,onActiveRowAction:Function,onCellClick:Function,onColumnResizeChange:Function,onPageChange:Function,onRowClick:Function,onRowDblclick:Function,onRowMousedown:Function,onRowMouseenter:Function,onRowMouseleave:Function,onRowMouseover:Function,onRowMouseup:Function,onScroll:Function,onScrollX:Function,onScrollY:Function};function hD(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=n,o=0,a=e.length;or&&(r=u)}}return r}function gD(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(null==e?void 0:e.children)||[],r=0,o=n.length;r1&&(v.rowspan=s),d>1&&(v.colspan=d),r.set(c,v),null!=c&&null!==(u=c.children)&&void 0!==u&&u.length?o(c.children,a):a.push(c)}},a=[];return o(e,a),{rowspanAndColspanMap:r,leafColumns:a}}function bD(){var e=Qa();return{classPrefix:e.value,tableBaseClass:{table:"".concat(e.value,"-table"),columnResizableTable:"".concat(e.value,"-table--column-resizable"),overflowVisible:"".concat(e.value,"-table--overflow-visible"),body:"".concat(e.value,"-table__body"),content:"".concat(e.value,"-table__content"),topContent:"".concat(e.value,"-table__top-content"),bottomContent:"".concat(e.value,"-table__bottom-content"),paginationWrap:"".concat(e.value,"-table__pagination-wrap"),tdLastRow:"".concat(e.value,"-table__td-last-row"),tdFirstCol:"".concat(e.value,"-table__td-first-col"),thCellInner:"".concat(e.value,"-table__th-cell-inner"),tableRowEdit:"".concat(e.value,"-table--row-edit"),cellEditable:"".concat(e.value,"-table__cell--editable"),cellEditWrap:"".concat(e.value,"-table__cell-wrap"),bordered:"".concat(e.value,"-table--bordered"),striped:"".concat(e.value,"-table--striped"),hover:"".concat(e.value,"-table--hoverable"),loading:"".concat(e.value,"-table--loading"),rowspanAndColspan:"".concat(e.value,"-table--rowspan-colspan"),empty:"".concat(e.value,"-table__empty"),emptyRow:"".concat(e.value,"-table__empty-row"),headerFixed:"".concat(e.value,"-table--header-fixed"),columnFixed:"".concat(e.value,"-table--column-fixed"),widthOverflow:"".concat(e.value,"-table--width-overflow"),multipleHeader:"".concat(e.value,"-table--multiple-header"),footerAffixed:"".concat(e.value,"-table--footer-affixed"),horizontalBarAffixed:"".concat(e.value,"-table--horizontal-bar-affixed"),affixedHeader:"".concat(e.value,"-table--affixed-header"),affixedHeaderElm:"".concat(e.value,"-table__affixed-header-elm"),affixedFooterElm:"".concat(e.value,"-table__affixed-footer-elm"),affixedFooterWrap:"".concat(e.value,"-table__affixed-footer-wrap"),scrollbarDivider:"".concat(e.value,"-table__scroll-bar-divider"),fullHeight:"".concat(e.value,"-table--full-height"),resizeLine:"".concat(e.value,"-table__resize-line"),obviousScrollbar:"".concat(e.value,"-table__scrollbar--obvious"),affixedHeaderWrap:"".concat(e.value,"-table__affixed-header-elm-wrap")},tdAlignClasses:{left:"".concat(e.value,"-align-left"),right:"".concat(e.value,"-align-right"),center:"".concat(e.value,"-align-center")},tableHeaderClasses:{header:"".concat(e.value,"-table__header"),thBordered:"".concat(e.value,"-table__header-th--bordered"),fixed:"".concat(e.value,"-table__header--fixed"),multipleHeader:"".concat(e.value,"-table__header--multiple")},tableFooterClasses:{footer:"".concat(e.value,"-table__footer"),fixed:"".concat(e.value,"-table__footer--fixed")},tableAlignClasses:{top:"".concat(e.value,"-vertical-align-top"),middle:"".concat(e.value,"-vertical-align-middle"),bottom:"".concat(e.value,"-vertical-align-bottom")},tableRowFixedClasses:{top:"".concat(e.value,"-table__row--fixed-top"),bottom:"".concat(e.value,"-table__row--fixed-bottom"),firstBottom:"".concat(e.value,"-table__row--fixed-bottom-first"),withoutBorderBottom:"".concat(e.value,"-table__row--without-border-bottom")},tableColFixedClasses:{left:"".concat(e.value,"-table__cell--fixed-left"),right:"".concat(e.value,"-table__cell--fixed-right"),lastLeft:"".concat(e.value,"-table__cell--fixed-left-last"),firstRight:"".concat(e.value,"-table__cell--fixed-right-first"),leftShadow:"".concat(e.value,"-table__content--scrollable-to-left"),rightShadow:"".concat(e.value,"-table__content--scrollable-to-right")},tableLayoutClasses:{auto:"".concat(e.value,"-table--layout-auto"),fixed:"".concat(e.value,"-table--layout-fixed")},tdEllipsisClass:"".concat(e.value,"-table-td--ellipsis"),tableFullRowClasses:{base:"".concat(e.value,"-table__row--full"),innerFullRow:"".concat(e.value,"-table__row-full-inner"),innerFullElement:"".concat(e.value,"-table__row-full-element"),firstFullRow:"".concat(e.value,"-table__first-full-row"),lastFullRow:"".concat(e.value,"-table__last-full-row")},tableExpandClasses:{iconBox:"".concat(e.value,"-table__expand-box"),iconCell:"".concat(e.value,"-table__expandable-icon-cell"),rowExpanded:"".concat(e.value,"-table__row--expanded"),rowFolded:"".concat(e.value,"-table__row--folded"),row:"".concat(e.value,"-table__expanded-row"),rowInner:"".concat(e.value,"-table__expanded-row-inner"),expanded:"".concat(e.value,"-table__row--expanded"),collapsed:"".concat(e.value,"-table__row--collapsed")},tableSortClasses:{sortable:"".concat(e.value,"-table__cell--sortable"),sortColumn:"".concat(e.value,"-table__sort-column"),title:"".concat(e.value,"-table__cell--title"),trigger:"".concat(e.value,"-table__cell--sort-trigger"),doubleIcon:"".concat(e.value,"-table__double-icons"),sortIcon:"".concat(e.value,"-table__sort-icon"),iconDirection:{asc:"".concat(e.value,"-table-sort-asc"),desc:"".concat(e.value,"-table-sort-desc")},iconActive:"".concat(e.value,"-table__sort-icon--active"),iconDefault:"".concat(e.value,"-icon-sort--default")},tableSelectedClasses:{selected:"".concat(e.value,"-table__row--selected"),disabled:"".concat(e.value,"-table__row--disabled"),checkCell:"".concat(e.value,"-table__cell-check")},tableFilterClasses:{filterable:"".concat(e.value,"-table__cell--filterable"),popup:"".concat(e.value,"-table__filter-pop"),icon:"".concat(e.value,"-table__filter-icon"),popupContent:"".concat(e.value,"-table__filter-pop-content"),result:"".concat(e.value,"-table__filter-result"),inner:"".concat(e.value,"-table__row-filter-inner"),bottomButtons:"".concat(e.value,"-table__filter--bottom-buttons"),contentInner:"".concat(e.value,"-table__filter-pop-content-inner"),iconWrap:"".concat(e.value,"-table__filter-icon-wrap")},asyncLoadingClass:"".concat(e.value,"-table__async-loading"),isFocusClass:"".concat(e.value,"-is-focus"),isLoadingClass:"".concat(e.value,"-is-loading"),isLoadMoreClass:"".concat(e.value,"-is-load-more"),tableTreeClasses:{col:"".concat(e.value,"-table__tree-col"),inlineCol:"".concat(e.value,"-table__tree-col--inline"),icon:"".concat(e.value,"-table__tree-op-icon"),leafNode:"".concat(e.value,"-table__tree-leaf-node")},tableDraggableClasses:{rowDraggable:"".concat(e.value,"-table--row-draggable"),rowHandlerDraggable:"".concat(e.value,"-table--row-handler-draggable"),colDraggable:"".concat(e.value,"-table--col-draggable"),handle:"".concat(e.value,"-table__handle-draggable"),ghost:"".concat(e.value,"-table__ele--draggable-ghost"),chosen:"".concat(e.value,"-table__ele--draggable-chosen"),dragging:"".concat(e.value,"-table__ele--draggable-dragging"),dragSortTh:"".concat(e.value,"-table__th--drag-sort")},virtualScrollClasses:{cursor:"".concat(e.value,"-table__virtual-scroll-cursor"),header:"".concat(e.value,"-table__virtual-scroll-header")},positiveRotate90:"".concat(e.value,"-positive-rotate-90"),negativeRotate180:"".concat(e.value,"-negative-rotate-180")}}function wD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var OD=t.defineComponent({name:"TEllipsis",props:{content:{type:[String,Function]},default:{type:[String,Function]},tooltipContent:{type:[String,Number,Function]},placement:String,attach:[String,Function],tooltipProps:Object,zIndex:Number,overlayClassName:String,classPrefix:{type:String,default:"t"}},setup:function(e){var n=t.ref(),r=t.ref(!1),o=t.ref(!1),a=t.computed((function(){return["".concat(e.classPrefix,"-table__ellipsis"),"".concat(e.classPrefix,"-text-ellipsis")]})),l=t.computed((function(){return["".concat(e.classPrefix,"-table__ellipsis-content"),e.overlayClassName]}));t.onMounted((function(){o.value=Bl(n.value)})),t.onUpdated((function(){o.value=Bl(n.value)}));var i=po((function(e){"mouseleave"===e.type?n.value:n.value&&(r.value=!0)}),80);return{flag:r,root:n,isOverflow:o,ellipsisClasses:a,innerEllipsisClassName:l,onMouseAround:i,handleVisibleChange:function(e){e||(r.value=!1)}}},render:function(){var e,n,r,o,a,l,i,u,c,d,v,f=(e=this,n="default",r="content",a=ql(o),l=$l(o),u=Gl(e,n,i=a?{params:a}:void 0),c=Gl(e,r,i),d=Ro(u)?c:u,Ro(d)?l:d),p=t.createVNode("div",{ref:"root",class:this.ellipsisClasses,onMouseenter:this.onMouseAround,onMouseleave:this.onMouseAround,style:{textOverflow:this.isOverflow?"ellipsis":"clip"}},[f]),m=null,h=this.tooltipProps;if(this.isOverflow&&this.flag){var g=function(e){for(var t=1;t1}));return{thList:l,isMultipleHeader:i,spansAndLeafNodes:a,renderTitleWidthIcon:function(n,a,l,i,c,d){var v,f=Ha(n,3),p=f[0],m=f[1],h=f[2],g=s(s({},r.sortable,m),o.filterable,h),y=H(i)?i(t.h,{col:a,colIndex:l}):void 0,b=void 0!==i?Boolean(i):Boolean(a.ellipsis);return t.createVNode("div",{class:g},[t.createVNode("div",{class:r.title},[b?t.createVNode(OD,{placement:"bottom",attach:e.attach||(c?function(){return c}:void 0),tooltipContent:y&&function(){return y},tooltipProps:"object"===u(i)?i:void 0,classPrefix:null==d?void 0:d.classPrefix,overlayClassName:null==d?void 0:d.ellipsisOverlayClassName},(v=p,"function"==typeof v||"[object Object]"===Object.prototype.toString.call(v)&&!t.isVNode(v)?p:{default:function(){return[p]}})):t.createVNode("div",null,[p]),Boolean(m||h)&&t.createVNode("div",{class:o.iconWrap},[m,h])])])}}}function SD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kD(e){var n,r,o=e.isWidthOverflow,a=e.tableContentRef,l=e.showColumnShadow,i=e.getThWidthList,u=e.updateThWidthList,c=e.setTableElmWidth,d=e.updateTableAfterColumnResize,v=e.onColumnResizeChange,f=t.ref(),p=t.ref({}),m=t.ref([]);t.onMounted((function(){var e="undefined"!=typeof document;n=e?document.onselectstart:null,r=e?document.ondragstart:null}));var h=function(e,t,n){for(var r=t;e[r]&&!1===e[r].resizable;)"next"===n?r+=1:r-=1;return e[r]},g=function(e,t){e&&(m.value=e,e.forEach((function(n,r){var o=h(e,r-1,"prev"),a=h(e,r+1,"next"),l=t?p.value[t.colKey].prev:a,i=t?p.value[t.colKey].next:o,u=0===r?l:o,c=r===e.length-1?i:a;p.value[n.colKey]={prev:u,next:c,current:{prevSibling:h(e,r-1,"prev"),nextSibling:h(e,r+1,"next")}},g(n.children,n)})))},y={isDragging:!1,draggingCol:null,draggingStart:0,effectCol:"next"},b=t.reactive({display:"none",height:"10px",left:"10px",bottom:"0"}),w=function(e){return"right"===e.fixed&&l.right},O=function(e){var t,n,r=Ho(e.minWidth)?e.minWidth:parseInt(e.minWidth||"0",10);return{minColWidth:Math.max((null===(t=e.resize)||void 0===t?void 0:t.minWidth)||80,r),maxColWidth:(null===(n=e.resize)||void 0===n?void 0:n.maxWidth)||600}},C=function(e,t,n,r){return t?function(e,t,n,r){var o=n.right-r.left,a=n.left-r.left,l="next"===y.effectCol?e:t,i=O(l);return{resizeLinePos:o,minResizeLineLeft:a+i.minColWidth,maxResizeLineLeft:a+i.maxColWidth}}(e,t,n,r):function(e,t){var n=e.left-t.left,r=e.left-t.left;return{resizeLinePos:n,minResizeLineLeft:r,maxResizeLineLeft:r}}(n,r)};return{resizeLineRef:f,resizeLineStyle:b,onColumnMouseover:function(e,t){if(f.value&&!y.isDragging&&e.target){var n=e.target.closest("th"),r=n.getAttribute("data-colkey");if(m.value.find((function(e){return e.colKey===r}))){var o,a=n.getBoundingClientRect(),l=a.right-e.pageX<=8,i=e.pageX-a.left<=8,u=w(t);if(l||u){if(null===(o=t.resizable)||void 0===o||o){n.style.cursor=l||u&&i?"col-resize":"";var c=l&&!u||u&&i;return y.draggingCol=c?n:n.nextElementSibling,void(y.effectCol="next")}}else if(i){var s=n.previousElementSibling;if(s){var d,v,h=null===(d=p.value[t.colKey])||void 0===d?void 0:d.prev;if(null===(v=null==h?void 0:h.resizable)||void 0===v||v)return n.style.cursor="col-resize",y.draggingCol=s,void(y.effectCol="prev")}}n.style.cursor="",y.draggingCol=null,y.effectCol=null}}},onColumnMousedown:function(e,t,l){var h,g,x;if(y.draggingCol){var P=y.draggingCol,j=P.getBoundingClientRect(),S=null===(h=a.value)||void 0===h?void 0:h.getBoundingClientRect(),k=null===(g=p.value[t.colKey])||void 0===g?void 0:g.next,N=null===(x=p.value[t.colKey])||void 0===x?void 0:x.prev,_=w(t)?function(e,t,n,r,o){var a=r.left-o.left,l=e.dataset.colkey===t.colKey?t:n,i=r.left-o.left,u=O(l),c=u.minColWidth,s=u.maxColWidth;return{resizeLinePos:a,minResizeLineLeft:i+(r.width-s),maxResizeLineLeft:i+(r.width-c)}}(P,t,k,j,S):C(t,k,j,S),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(S.bottom-j.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-S.bottom,"px")}var T=function(){var e;if(y.isDragging){var a=V-parseFloat(b.left)||0,f=i("calculate"),h=null===(e=p.value[t.colKey])||void 0===e?void 0:e.current;if(h){var g="next"===y.effectCol?h.nextSibling:h.prevSibling,C=function(e){for(var t=1;tu}return!(a||o.value||r===m.value.length-1)}(C,"next"===y.effectCol?h.nextSibling:t,a,l);"next"===y.effectCol?w(t)?P.dataset.colkey!==t.colKey?C[k.colKey]+=a:C[x.colKey]+=a:(C[x.colKey]-=a,j&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(j&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var S=function(e){var t=0;return m.value.forEach((function(n){t+=e[n.colKey]})),t}(C);c(Math.round(S)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",_l(document,"mouseup",T),_l(document,"mousemove",I),document.onselectstart=n,document.ondragstart=r,null==v||v({columnsWidth:C})}}},I=function(e){if(y.isDragging){var t=V+e.x-y.draggingStart;b.left="".concat(Math.min(Math.max(t,D),E),"px")}};Nl(document,"mouseup",T),Nl(document,"mousemove",I),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}function ND(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _D(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Map,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4?arguments[4]:void 0,a=0,l=e.length;a2&&void 0!==arguments[2]?arguments[2]:{},r=0,o=e.length;r=0&&"left"!==e[u].fixed;)u-=1;var c=e[u],s=0===r&&(null==n?void 0:n.left)||0,d=t.get((null==c?void 0:c.colKey)||r-1);i&&(i.left=((null==d?void 0:d.left)||s)+((null==d?void 0:d.width)||0)),null!==(a=l.children)&&void 0!==a&&a.length&&B(l.children,t,i)}},L=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.length-1;r>=0;r--){var o,a=e[r];if("left"===a.fixed)return;for(var l=t.get(a.colKey||r),i=r+1;i=u.length-i;b--){var w=t[t.length-(u.length-b)],O=St(u[b],d),C=n.get(O)||{},x=St(u[b+1],d),P=n.get(x)||{},j=0;b===u.length-1&&(j=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||j)+(P.height||0),n.set(O,_D(_D({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),j.value=n}},z=function(e,t){if(D.value&&e){var n=e.scrollLeft;if(A!==n||t&&t.skipScrollLimit){A=n;var r=e.clientWidth+n0;S.left===o&&S.right===r||(S.left=o&&F.value,S.right=r&&E.value)}}},H=function(){var e=M(l.value),t=e.newColumnsMap;!function(e){for(var t=0;tw.value.clientHeight,C.value=w.value.scrollWidth>w.value.clientWidth;var t=w.value.getBoundingClientRect();k.value={top:t.top,left:t.left},clearTimeout(e)}}),0)},K=function(e){_.value!==e&&(_.value=e)},U=function(){var e,t,n,r,a,l,i,u;null===(e=o.paginationAffixRef.value)||void 0===e||null===(t=e.handleScroll)||void 0===t||t.call(e),null===(n=o.horizontalScrollAffixRef.value)||void 0===n||null===(r=n.handleScroll)||void 0===r||r.call(n),null===(a=o.headerTopAffixRef.value)||void 0===a||null===(l=a.handleScroll)||void 0===l||l.call(a),null===(i=o.footerBottomAffixRef.value)||void 0===i||null===(u=i.handleScroll)||void 0===u||u.call(i)},Y=function(e){for(var t={},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:0)+(arguments.length>1?arguments[1]:void 0)})),d=w.value.clientWidth,v=s-u;K(Math.max(d,v))}}));var X=function(){Z(),W(),U(),(D.value||O.value)&&(H(),z(w.value,{skipScrollLimit:!0})),"auto"===i.value&&$(q("calculate"))},G=po((function(){X()}),30),J=null;t.onMounted((function(){var e=function(){if("undefined"==typeof navigator||!navigator)return 6;if(/(Chrome|Safari)/i.test(navigator.userAgent))return 6;var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),/Firefox/.test(navigator.userAgent)&&(t-=4),ll()<=11&&(t=12),t}();P.value=e,Z();var t=D.value||O.value||!I.value||!y.value.length,n="undefined"!=typeof window&&void 0!==window.ResizeObserver;(t&&ll()<11||!n)&&Nl(window,"resize",G)})),t.onBeforeUnmount((function(){var e,t;"undefined"!=typeof window&&_l(window,"resize",G),null===(e=J)||void 0===e||e.unobserve(b.value),null===(t=J)||void 0===t||t.disconnect()}));return{tableWidth:N,tableElmWidth:_,thWidthList:V,isFixedHeader:O,isWidthOverflow:C,tableContentRef:w,isFixedColumn:D,showColumnShadow:S,rowAndColFixedPosition:j,virtualScrollHeaderPos:k,scrollbarWidth:P,setData:function(e){y.value=e},refreshTable:X,setTableElmWidth:K,emitScrollEvent:function(t){var n,r,o;null===(n=e.onScrollX)||void 0===n||n.call(e,{e:t}),null===(r=e.onScrollY)||void 0===r||r.call(e,{e:t}),null===(o=e.onScroll)||void 0===o||o.call(e,{e:t})},updateThWidthListHandler:Z,updateColumnFixedShadow:z,setUseFixedTableElmRef:function(e){x.value=e},getThWidthList:q,updateThWidthList:$,addTableResizeObserver:function(e){"undefined"!=typeof window&&(ll()<11||void 0===window.ResizeObserver||(_l(window,"resize",G),(J=new window.ResizeObserver((function(){var e=setTimeout((function(){X(),clearTimeout(e)}),200)}))).observe(e),b.value=e))},updateTableAfterColumnResize:function(){H(),W()}}}function ED(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function FD(e,n){var r=t.toRefs(e),o=r.pagination,a=r.data,l=r.disableDataPage,i=Ga().classPrefix,u=t.ref(e.pagination),c=t.ref([]),d=t.ref(!1),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=e.data,o=Boolean(!l.value&&r.length>n);if(d.value=o,o){var a=(t-1)*n,i=t*n;c.value=r.slice(a,i)}else c.value=r};t.watch((function(){var e,t;return[null===(e=o.value)||void 0===e?void 0:e.current,null===(t=o.value)||void 0===t?void 0:t.pageSize,a.value.length,l]}),(function(){if(o.value&&o.value.current){var e=o.value,t=e.current,n=e.pageSize;u.value={current:t,pageSize:n},v(o.value.current,o.value.pageSize)}}),{immediate:!0}),t.watch([a],(function(){var e,t;o.value&&o.value.defaultCurrent&&(Boolean(o.value.current)||v(null!==(e=u.value.current)&&void 0!==e?e:o.value.defaultCurrent,null!==(t=u.value.pageSize)&&void 0!==t?t:o.value.defaultPageSize))}),{immediate:!0});return{isPaginateData:d,dataSource:c,innerPagination:u,renderPagination:function(){if(!e.pagination)return null;var r=function(e){for(var t=1;te.height},g=function(){var t,s,d;if(f.value||v.value||n.value){var p,m=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect(),g=null===(s=n.value)||void 0===s||null===(s=s.querySelector("thead"))||void 0===s?void 0:s.getBoundingClientRect(),y=(null==g?void 0:g.height)||0,b=null===(d=o.value)||void 0===d?void 0:d.getBoundingClientRect();if((e.headerAffixedTop||v.value)&&r.value){var w=Mo(p=e.headerAffixProps||e.headerAffixedTop)?0:p.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(m.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,m,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,m,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,m,y)}}},y=function(){g()},b=function(){m(o.value)},w=function(){m(r.value)},O=function(){m(a.value)},C=function(){m(n.value)},x=function(){Nl(o.value,"scroll",b)},P=function(){_l(o.value,"scroll",b)},j=function(){Nl(r.value,"scroll",w),F()},S=function(){s||_l(r.value,"scroll",w),T()},k=function(){Nl(a.value,"scroll",O)},N=function(){_l(a.value,"scroll",O)},_=function(){Nl(n.value,"scroll",C),F()},V=function(){s||_l(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(_l(r.value,"scroll",w),_l(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},I=[],M=function(e){var t=po((function(t){_l(e,"scroll",t)}),200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(I.forEach((function(e){return e()})),I.length=0,Nl(e,"scroll",n),t(n),I.push((function(){_l(e,"scroll",n)})))}return Nl(e,"touchstart",r),{removeElementTouchScrollListener:function(){_l(e,"touchstart",r)}}},A=[],B=function(){_l(window,"mousedown",D),_l(window,"mouseup",E),A.forEach((function(e){return e()})),A.length=0,r.value&&(_l(r.value,"mouseenter",j),_l(r.value,"mouseleave",S)),o.value&&(_l(o.value,"mouseenter",x),_l(o.value,"mouseleave",P)),n.value&&(_l(n.value,"mouseenter",_),_l(n.value,"mouseleave",V)),a.value&&(_l(a.value,"mouseenter",k),_l(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout((function(){f.value||e.paginationAffixedBottom?Nl(document,"scroll",y):_l(document,"scroll",y),clearTimeout(t)}))};t.watch([r,o,a,n],(function(){!function(){if(Nl(window,"mousedown",D),Nl(window,"mouseup",E),B(),r.value){Nl(r.value,"mouseenter",j),Nl(r.value,"mouseleave",S);var t=M(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){Nl(o.value,"mouseenter",x),Nl(o.value,"mouseleave",P);var l=M(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){Nl(a.value,"mouseenter",k),Nl(a.value,"mouseleave",N);var i=M(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){Nl(n.value,"mouseenter",_),Nl(n.value,"mouseleave",V);var u=M(n.value).removeElementTouchScrollListener;A.push(u)}}(),m(),g()})),t.watch(f,L),t.watch((function(){return[e.data,e.columns,e.headerAffixedTop,e.footerAffixedBottom,e.horizontalScrollAffixedBottom]}),(function(){m()})),t.onBeforeUnmount((function(){_l(document,"scroll",y),B(),r.value=null,o.value=null,a.value=null,n.value=null}));return{showAffixHeader:i,showAffixFooter:u,showAffixPagination:c,affixHeaderRef:r,affixFooterRef:o,horizontalScrollbarRef:a,paginationRef:l,onHorizontalScroll:m,setTableContentRef:function(e){n.value=e,L()},updateAffixHeaderOrFooter:g}}function ID(e,t){if(e){for(var n=e instanceof Array?e:[e],r={},o=0;o6&&void 0!==arguments[6]?arguments[6]:0;if(!r||!r.length)return{style:void 0,classes:void 0};var i=tn-1-r[1],c=n-r[1],d=(null==o?void 0:o.get(e))||{},v=s(s(s(s({},a.top,i),a.bottom,u),a.firstBottom,t===c),a.withoutBorderBottom,t===c-1);return{style:{top:i?"".concat(d.top-l,"px"):void 0,bottom:u?"".concat(d.bottom+l,"px"):void 0},classes:v}}(St(e.row,e.rowKey||"id"),e.rowIndex,e.dataLength,e.fixedRows,e.rowAndColFixedPosition,p,e.virtualConfig.isVirtualScroll.value?e.virtualConfig.translateY.value:0)})),y=t.computed((function(){return ID(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}})),b=t.computed((function(){var t,n=MD(e.rowClassName,{row:e.row,rowKey:e.rowKey,rowIndex:e.rowIndex,type:"body"},e.rowKey||"id");return[null===(t=g.value)||void 0===t?void 0:t.classes,n,s(s({},"".concat(e.classPrefix,"-table__row--active"),a.value),"".concat(e.classPrefix,"-table__row--hover"),l.value)].filter((function(e){return e}))})),w=function(e,n,r){var o=t.computed((function(){return Math.max(r.rowHeight||48,48)})),a=t.ref(!1),l=t.computed((function(){return"lazy"===(null==r?void 0:r.type)&&!a.value})),i=!kl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i((function(){a.value=!0}))};return t.onMounted((function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick((function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;null!=n&&n.value&&null!=e&&e.value&&Sw(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(WD(WD({},e.scroll),{},{rowIndex:e.rowIndex}))),O=w.hasLazyLoadHolder,C=w.tRowHeight,x=function(){var t;null!==(t=e.virtualConfig)&&void 0!==t&&t.isVirtualScroll.value&&n.emit("row-mounted",{ref:i,data:e.row})};function P(r,o){var a,l=o.cellNode,i=r.col,c=r.colIndex;H(i.ellipsis)?a=i.ellipsis(t.h,r):"object"===u(i.ellipsis)&&H(i.ellipsis.content)?a=i.ellipsis.content(t.h,r):n.slots["ellipsis-".concat(i.colKey)]?a=n.slots["ellipsis-".concat(i.colKey)](r):n.slots.ellipsis&&(a=n.slots.ellipsis(r));var s={};"object"===u(i.ellipsis)&&(s="props"in i.ellipsis?i.ellipsis.props:i.ellipsis||void 0);var d,v=e.tableElm,f=0===c?"top-left":"top";return f=c===e.columns.length-1?"top-right":f,t.createVNode(OD,{placement:f,attach:v?function(){return v}:void 0,tooltipContent:a&&function(){return a},tooltipProps:s,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},"function"==typeof(d=l)||"[object Object]"===Object.prototype.toString.call(d)&&!t.isVNode(d)?l:{default:function(){return[l]}})}return t.onMounted((function(){t.nextTick((function(){x()}))})),t.onUpdated((function(){t.nextTick((function(){x()}))})),function(){var r,o=e.columns,a=e.skipSpansMap,l=e.row,u=e.dataLength,c=e.rowAndColFixedPosition,p=null==o?void 0:o.map((function(r,i){var p={},g={row:l,col:r,rowIndex:e.rowIndex,colIndex:i},y=null;if(e.skipSpansMap.size){var b,w,O=RD(l,e.rowKey,r.colKey,i);if((null===(b=y=a.get(O)||{})||void 0===b?void 0:b.rowspan)>1&&(p.rowspan=y.rowspan),(null===(w=y)||void 0===w?void 0:w.colspan)>1&&(p.colspan=y.colspan),y.skipped)return null}return function(r,o){var a=r.col,l=r.colIndex,i=r.rowIndex,u=o.cellSpans,c=o.dataLength,p=o.rowAndColFixedPosition,g=YD(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=VD(a,l,p,f),b=AD(a.className,WD(WD({},r),{},{type:"td"})),w=[y.classes,b,s(s(s(s(s({},d,a.ellipsis),v.tdLastRow,i+u.rowspan===c),v.tdFirstCol,0===l&&e.rowspanAndColspan),m[a.align],a.align&&"left"!==a.align),h.handle,"drag"===a.colKey)],O=H(a.attrs)?a.attrs(WD(WD({},r),{},{type:"td"})):a.attrs,C=WD(WD({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=WD(WD({},r),{},{e:t});a.stopPropagation&&t.stopPropagation(),null===(n=e.onCellClick)||void 0===n||n.call(e,o)}}),[a.ellipsis?P(r,{cellNode:g}):g])}(g,{dataLength:u,rowAndColFixedPosition:c,columnLength:o.length,cellSpans:p,cellEmptyContent:e.cellEmptyContent})}));return t.createVNode("tr",t.mergeProps({ref:i},y.value,{style:null===(r=g.value)||void 0===r?void 0:r.style,class:b.value},function(t,n){var r={};return UD.forEach((function(o){r["on".concat(on(o))]=function(r){var a,l={e:r,row:t,index:n};null===(a=e["onRow".concat(on(o))])||void 0===a||a.call(e,l)}})),r}(l,e.rowIndex)),[O.value?[t.createVNode("td",{style:{height:"".concat(C.value,"px"),border:"none"}},null)]:p])}}});function ZD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qD(e){for(var t=1;t1)for(var l=r+1;l1)for(var f=i+1;f1&&(_.colspan=l.colspan),t.createVNode("th",t.mergeProps({key:l.colKey,"data-colkey":l.colKey,class:C,style:P},_,v,S),[t.createVNode("div",{class:a.tableBaseClass.thCellInner},[N?t.createVNode(OD,{placement:"bottom",attach:a.attach||(a.theadRef?function(){return a.getTableNode(a.theadRef)}:void 0),tooltipContent:k&&function(){return k},tooltipProps:"object"===u(l.ellipsisTitle)?l.ellipsisTitle:void 0,overlayClassName:a.ellipsisOverlayClassName,classPrefix:a.classPrefix},(p=j,"function"==typeof p||"[object Object]"===Object.prototype.toString.call(p)&&!t.isVNode(p)?j:{default:function(){return[j]}})):j])])}));return t.createVNode("tr",{key:i},[c])})))])}});function rE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oE(e){for(var t=1;t1&&(i.rowspan=u.rowspan),(null===(s=u)||void 0===s?void 0:s.colspan)>1&&(i.colspan=u.colspan),u.skipped)return null}var v=VD(o,a,n.rowAndColFixedPosition,n.tableColFixedClasses),f=oE({},v.style);return null!==(l=n.thWidthList)&&void 0!==l&&l[o.colKey]&&(f.width="".concat(n.thWidthList[o.colKey],"px")),t.createVNode("td",t.mergeProps(oE({key:o.colKey},i),{class:v.classes,style:f}),[n.renderTFootCell({row:e,rowIndex:r,col:o,colIndex:a})])}))])})),a=this.renderTNode("footerSummary");return a||this.footData&&this.footData.length?t.createVNode("tfoot",{ref:"tFooterRef",class:r,style:{visibility:this.virtualScroll?"hidden":"visible"}},[a&&t.createVNode("tr",{class:this.tableFullRowClasses.base},[t.createVNode("td",{colspan:this.columns.length},[t.createVNode("div",{class:this.tableFullRowClasses.innerFullElement},[a])])]),o]):null}});function lE(e,n){var r=t.toRefs(e),o=r.data,a=r.activeRowType,l=r.activeRowKeys,i=r.defaultActiveRowKeys,u=r.disableSpaceInactiveRow,c=t.ref(-1),s=t.ref(!1),d=t.ref(!1),v=t.ref(-1),f=Ha(Um(l,i.value,e.onActiveChange,"activeRowKeys"),2),p=f[0],m=f[1],h=function(){for(var t=[],n=0,r=o.value.length;n1?[l]:[];m(i,{type:"inactive",activeRowList:[{row:n,rowIndex:r}],currentRowData:n})}else if("multiple"===a.value){for(var u=p.value.filter((function(e){return e!==l})),c=[],s=0,d=o.value.length;s0&&void 0!==arguments[0])||arguments[0];return t.createVNode("colgroup",null,[p.map((function(n){var r={width:JD((e||m?c.thWidthList[n.colKey]:void 0)||n.width)||h};return n.minWidth&&(r.minWidth=JD(n.minWidth)),r.width||n.minWidth||"fixed"!==c.tableLayout||(r.minWidth="80px"),t.createVNode("col",{key:n.colKey,style:r},null)}))])},y={isFixedHeader:this.isFixedHeader,rowAndColFixedPosition:this.rowAndColFixedPosition,isMultipleHeader:this.isMultipleHeader,bordered:this.bordered,maxHeight:this.maxHeight,height:this.height,spansAndLeafNodes:this.spansAndLeafNodes,thList:this.thList,thWidthList:this.thWidthList,resizable:this.resizable,columnResizeParams:this.columnResizeParams,classPrefix:this.classPrefix,ellipsisOverlayClassName:"medium"!==this.tableSize?this.sizeClassNames[this.tableSize]:"",attach:this.attach,showColumnShadow:this.showColumnShadow,thDraggable:this.thDraggable},b=ll()<=11?4:0,w=this.isWidthOverflow?this.scrollbarWidth:0,O=t.ref(((null===(r=this.affixHeaderRef)||void 0===r?void 0:r.getBoundingClientRect().height)||0)-b),C=setTimeout((function(){var e;O.value=((null===(e=c.affixHeaderRef)||void 0===e?void 0:e.getBoundingClientRect().height)||0)-b,clearTimeout(C)}),0),x=t.computed((function(){return O.value-w})),P=mD.headerAffixedTop?Number(this.showAffixHeader):1,j=t.computed((function(){return{width:"".concat(c.tableWidth,"px"),height:"".concat(x.value,"px"),opacity:P}})),S=this.bordered?1:0,k=Boolean((this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)&&this.tableWidth)&&t.createVNode("div",{ref:"affixHeaderRef",style:{width:"".concat(this.tableWidth-S,"px"),opacity:Number(this.showAffixHeader)},class:["scrollbar",s({},this.tableBaseClass.affixedHeaderElm,this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:this.tableElmClasses,style:uE(uE({},this.tableElementStyles),{},{width:"".concat(this.tableElmWidth,"px")})},[g(!0),t.createVNode(nE,y,this.$slots)])]),N=t.createVNode("div",{class:this.tableBaseClass.affixedHeaderWrap,style:j.value},[k]),_=this.isWidthOverflow?this.scrollbarWidth:0;this.bordered&&(_+=1);var V=Boolean(this.virtualConfig.isVirtualScroll.value||this.footerAffixedBottom),D=(null===(o=this.footData)||void 0===o?void 0:o.length)||this.footerSummary||this.$slots.footerSummary,E=Boolean(V&&D&&this.tableWidth)&&t.createVNode(Uf,t.mergeProps({class:this.tableBaseClass.affixedFooterWrap,onFixedChange:this.onFixedChange,offsetBottom:_||0},LD(this.footerAffixedBottom),{style:{marginTop:"".concat(-1*((null!==(a=this.tableFootHeight)&&void 0!==a?a:0)+_),"px")},ref:"footerBottomAffixRef"}),{default:function(){return[t.createVNode("div",{ref:"affixFooterRef",style:{width:"".concat(c.tableWidth-S,"px"),opacity:Number(c.showAffixFooter)},class:["scrollbar",s({},c.tableBaseClass.affixedFooterElm,c.footerAffixedBottom||c.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:c.tableElmClasses,style:uE(uE({},c.tableElementStyles),{},{width:"".concat(c.tableElmWidth,"px")})},[g(!0),t.createVNode(aE,{rowKey:c.rowKey,isFixedHeader:c.isFixedHeader,rowAndColFixedPosition:d,footData:c.footData,columns:p,rowAttributes:c.rowAttributes,rowClassName:c.rowClassName,thWidthList:c.thWidthList,footerSummary:c.footerSummary,rowspanAndColspanInFooter:c.rowspanAndColspanInFooter},c.$slots)])])]}}),F="translate(0, ".concat(this.virtualConfig.scrollHeight.value+(null!==(l=this.tableFootHeight)&&void 0!==l?l:0)+(null!==(i=O.value)&&void 0!==i?i:0),"px)"),T={transform:F,"-ms-transform":F,"-moz-transform":F,"-webkit-transform":F},I=uE(uE({classPrefix:this.classPrefix,ellipsisOverlayClassName:"medium"!==this.tableSize?this.sizeClassNames[this.tableSize]:"",rowAndColFixedPosition:d,showColumnShadow:this.showColumnShadow,data:f,virtualConfig:this.virtualConfig,columns:this.spansAndLeafNodes.leafColumns,tableElm:this.tableRef,tableWidth:this.tableWidth,isWidthOverflow:this.isWidthOverflow,scroll:this.scroll,cellEmptyContent:this.cellEmptyContent,tableContentElm:this.tableContentRef,handleRowMounted:this.virtualConfig.handleRowMounted,renderExpandedRow:this.renderExpandedRow},xa(this.$props,XD)),{},{pagination:this.innerPagination,attach:this.attach,hoverRow:this.hoverRow,activeRow:this.tActiveRow,onRowClick:this.onInnerRowClick}),M=t.createVNode("div",{ref:"tableContentRef",class:this.tableBaseClass.content,style:this.tableContentStyles,onScroll:this.onInnerVirtualScroll},[this.virtualConfig.isVirtualScroll.value&&t.createVNode("div",{class:this.virtualScrollClasses.cursor,style:T},null),t.createVNode("table",{ref:"tableElmRef",class:this.tableElmClasses,style:uE(uE({},this.tableElementStyles),{},{width:this.resizable&&this.isWidthOverflow&&this.tableElmWidth?"".concat(this.tableElmWidth,"px"):this.tableElementStyles.width})},[g(!1),this.showHeader&&t.createVNode(nE,uE(uE({},y),{},{thWidthList:m?this.thWidthList:{}}),this.$slots),t.createVNode(GD,t.mergeProps({ref:"tableBodyRef"},I),this.$slots),t.createVNode(aE,{rowKey:this.rowKey,isFixedHeader:this.isFixedHeader,rowAndColFixedPosition:d,footData:this.footData,columns:p,rowAttributes:this.rowAttributes,rowClassName:this.rowClassName,footerSummary:this.footerSummary,rowspanAndColspanInFooter:this.rowspanAndColspanInFooter,virtualScroll:this.virtualConfig.isVirtualScroll.value},this.$slots)])]),A=H(this.loading)?this.loading:this.$slots.loading,B=void 0!==this.loading&&t.createVNode(mi,t.mergeProps({loading:!!this.loading,text:A,attach:this.tableRef?function(){return c.tableRef}:void 0,showOverlay:!0,size:"small"},this.loadingProps),null),L=this.renderTNode("topContent"),R=this.renderTNode("bottomContent"),z=t.createVNode("div",{ref:"paginationRef",class:this.tableBaseClass.paginationWrap,style:{opacity:Number(this.showAffixPagination)}},[this.renderPagination()]),W=!!R&&t.createVNode("div",{ref:"bottomContentRef",class:this.tableBaseClass.bottomContent},[R]);return t.createVNode("div",{ref:"tableRef",tabindex:this.tableRefTabIndex,class:this.dynamicBaseTableClasses,onFocus:this.onTableFocus,onBlur:this.onTableBlur},[!!L&&t.createVNode("div",{class:this.tableBaseClass.topContent},[L]),!1===c.showHeader?null:!(!c.virtualConfig.isVirtualScroll.value&&!c.headerAffixedTop)&&(c.headerAffixedTop?t.createVNode(Uf,t.mergeProps({offsetTop:0},LD(c.headerAffixedTop),{onFixedChange:c.onFixedChange,ref:"headerTopAffixRef"}),cE(N)?N:{default:function(){return[N]}}):c.isFixedHeader&&N),M,E,B,W,this.showRightDivider&&t.createVNode("div",{class:this.tableBaseClass.scrollbarDivider,style:{right:"".concat(this.scrollbarWidth,"px"),bottom:this.dividerBottom?"".concat(this.dividerBottom,"px"):void 0,height:"".concat(null===(u=this.tableContentRef)||void 0===u?void 0:u.getBoundingClientRect().height,"px")}},null),this.horizontalScrollAffixedBottom&&t.createVNode(Uf,t.mergeProps({offsetBottom:0},LD(c.horizontalScrollAffixedBottom),{style:{marginTop:"-".concat(2*c.scrollbarWidth,"px")},horizontalScrollAffixedBottom:!0,ref:"horizontalScrollAffixRef"}),{default:function(){return[t.createVNode("div",{ref:"horizontalScrollbarRef",class:["scrollbar",c.tableBaseClass.obviousScrollbar],style:{width:"".concat(c.tableWidth,"px"),overflow:"auto",opacity:Number(c.showAffixFooter)}},[t.createVNode("div",{style:{width:"".concat(c.tableElmWidth,"px"),height:"5px"}},null)])]}}),this.paginationAffixedBottom?t.createVNode(Uf,t.mergeProps({offsetBottom:0},LD(this.paginationAffixedBottom),{ref:"paginationAffixRef"}),cE(z)?z:{default:function(){return[z]}}):z,t.createVNode("div",{ref:"resizeLineRef",class:this.tableBaseClass.resizeLine,style:this.resizeLineStyle},null)])}}),dE={asyncLoading:{type:[String,Function]},columnController:{type:Object},columnControllerVisible:{type:Boolean,default:void 0},defaultColumnControllerVisible:{type:Boolean,default:void 0},columns:{type:Array,default:function(){return[]}},displayColumns:{type:Array,default:void 0},defaultDisplayColumns:{type:Array},dragSort:{type:String,validator:function(e){return!e||["row","row-handler","col","row-handler-col","drag-col"].includes(e)}},dragSortOptions:{type:Object},editableCellState:{type:Function},editableRowKeys:{type:Array},expandIcon:{type:[Boolean,Function],default:!0},expandOnRowClick:Boolean,expandedRow:{type:[String,Function]},expandedRowKeys:{type:Array,default:void 0},defaultExpandedRowKeys:{type:Array,default:function(){return[]}},filterIcon:{type:Function},filterRow:{type:[String,Function]},filterValue:{type:Object,default:void 0},defaultFilterValue:{type:Object},hideSortTips:Boolean,indeterminateSelectedRowKeys:{type:Array},multipleSort:Boolean,reserveSelectedRowOnPaginate:{type:Boolean,default:!0},rowSelectionAllowUncheck:Boolean,rowSelectionType:{type:String,validator:function(e){return!e||["single","multiple"].includes(e)}},selectOnRowClick:Boolean,selectedRowKeys:{type:Array,default:void 0},defaultSelectedRowKeys:{type:Array,default:function(){return[]}},showSortColumnBgColor:Boolean,sort:{type:[Object,Array],default:void 0},defaultSort:{type:[Object,Array]},sortIcon:{type:Function},sortOnRowDraggable:Boolean,onAsyncLoadingClick:Function,onCellClick:Function,onChange:Function,onColumnChange:Function,onColumnControllerVisibleChange:Function,onDataChange:Function,onDisplayColumnsChange:Function,onDragSort:Function,onExpandChange:Function,onFilterChange:Function,onRowEdit:Function,onRowValidate:Function,onSelectChange:Function,onSortChange:Function,onValidate:Function};function vE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fE(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Set,n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:[];if(null!==(t=d.value)&&void 0!==t&&null!==(t=t.groupColumns)&&void 0!==t&&t.length)return[];for(var r=0,o=e.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=i(m.value),r=St(t,e.rowKey||"id"),o=n.indexOf(r),a=-1!==o;if("multiple"===b.value)a?n.splice(o,1):n.push(r);else{if("single"!==b.value)return void Gm("Table","`column.type` must be one of `multiple` and `single`");n=a&&C.value?[]:[r]}h(n,{selectedRowData:n.map((function(e){return g.value.get(e)})),currentRowKey:r,currentRowData:t,type:a?"uncheck":"check"})}function j(t){var n,r=e.rowKey||"id",a=w.value.map((function(e){return St(e,r)})),l=(null===(n=o.value)||void 0===n?void 0:n.filter((function(e){return!a.includes(e)})))||[],u=t?[].concat(i(l),i(a)):i(l);h(u,{selectedRowData:t?u.map((function(e){return g.value.get(e)})):[],type:t?"check":"uncheck",currentRowKey:"CHECK_ALL_BOX"})}t.watch([c,a,m,y,l],(function(){var t,r=null!==(t=y.value)&&void 0!==t&&t.disabled?function(e){return y.value.disabled(e)?n.disabled:""}:void 0,o=new Set(m.value),a=o.size?function(t){var r=St(t.row,e.rowKey||"id");return o.has(r)?n.selected:""}:void 0;f.value=[r,a]}),{immediate:!0}),t.watch(c,(function(){v.value=c.value}));t.watch([c,l],(function(){for(var e=0,t=c.value.length;e0&&O.value.length1)],o={asc:this.globalConfig.sortAscendingOperationText,desc:this.globalConfig.sortDescendingOperationText},a=this.allowSortTypes.map((function(r){var a,l,i,u=r===e.sortOrder?n.iconActive:n.iconDefault,c=e.globalConfig.sortCancelOperationText,s=r===e.sortOrder?c:o[r];return(null!==(l=e.hideSortTips)&&void 0!==l?l:e.globalConfig.hideSortTips)?e.getSortIcon(r,u):t.createVNode(Lh,t.mergeProps({content:s,placement:"right",showArrow:!1,class:e.tableSortClasses.iconDirection[r]},e.tooltipProps),"function"==typeof(i=a=e.getSortIcon(r,u))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?a:{default:function(){return[a]}})}));return t.createVNode("div",{class:r},[a])}});function kE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function NE(e,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ha(Um(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ha(Um(l,[],e.onDataChange,"data"),2),p=f[0],m=f[1],h=t.computed((function(){return w(e.columns)})),g=t.ref(),y=t.computed((function(){var e=d.value;return e?j(e)?e:[e]:[]})),b=t.computed((function(){var e={};return y.value.forEach((function(t,n){var r=t.sortBy;e[r]=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof e?n=d(e,t):e instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==e?void 0:e.type)?n=d(e.value,t):(n=u()(e),c("copy")),n};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,n=void 0===t?"copy":t,r=e.container,o=e.target,a=e.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==o){if(!o||"object"!==f(o)||1!==o.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&o.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(o.hasAttribute("readonly")||o.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return a?v(a,{container:r}):o?"cut"===n?s(o):v(o,{container:r}):void 0};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function h(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===m(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=l()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,n=this.action(t)||"copy",r=p({action:n,container:this.container,target:this.target(t),text:this.text(t)});this.emit(r?"success":"error",{action:n,text:r,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return w("action",e)}},{key:"defaultTarget",value:function(e){var t=w("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return w("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],r=[{key:"copy",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return v(e,t)}},{key:"cut",value:function(e){return s(e)}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach((function(e){n=n&&!!document.queryCommandSupported(e)})),n}}],n&&h(t.prototype,n),r&&h(t,r),a}(o()),C=O},828:function(e){if("undefined"!=typeof Element&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},438:function(e,t,n){var r=n(828);function o(e,t,n,r,o){var l=a.apply(this,arguments);return e.addEventListener(n,l,o),{destroy:function(){e.removeEventListener(n,l,o)}}}function a(e,t,n,o){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&o.call(e,n)}}e.exports=function(e,t,n,r,a){return"function"==typeof e.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return o(e,t,n,r,a)})))}},879:function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},370:function(e,t,n){var r=n(879),o=n(438);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,n)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,n)}))}}}(e,t,n);if(r.string(e))return function(e,t,n){return o(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(e){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(e),r.removeAllRanges(),r.addRange(o),t=r.toString()}return t}},279:function(e){function t(){}t.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function o(){r.off(e,o),t.apply(n,arguments)}return o._=t,this.on(e,o,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,o=n.length;rt.top?e:t})).link;w(o)}},b=function(e){var t=e.match(Zf);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=Bf(Hf.mark((function n(r){var o;return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=2;break}return n.abrupt("return");case 2:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=6,t.nextTick();case 6:O();case 7:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),O=function(){var e,t=null===(e=o.value)||void 0===e?void 0:e.querySelector(".".concat(p.value.active,">a"));if(t){var n=t.offsetTop,r=t.offsetHeight;Object.assign(c,{top:"".concat(n,"px"),height:"".concat(r,"px"),opacity:1})}else Object.assign(c,{})},C=function(){var t=Bf(Hf.mark((function t(n){var r,o,a,l,c;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=4;break}return t.abrupt("return");case 4:return u.value=!0,o=e.targetOffset,a=Il(i.value),l=qf(r,i.value),c=a+l-o,t.next=11,Ml(c,{container:i.value});case 11:u.value=!1;case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return t.onMounted(Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=5;break}return e.next=4,t.nextTick();case 4:C(l.value);case 5:case"end":return e.stop()}}),e)})))),t.onUnmounted((function(){i.value&&Nl(i.value,"scroll",y)})),t.watchEffect((function(){i.value&&Nl(i.value,"scroll",y),g()})),t.provide(Gf,t.reactive({registerLink:function(e){Zf.test(e)&&-1===a.value.indexOf(e)&&a.value.push(e)},unregisterLink:function(e){a.value=a.value.filter((function(t){return t!==e}))},handleScrollTo:C,handleLinkClick:function(t){var n;null===(n=e.onClick)||void 0===n||n.call(e,t)},active:l})),function(){var n,a=e.size,l=e.affixProps,i=[s.value,m.value[a]],u=t.createVNode("div",t.mergeProps({ref:o,class:i},r),[t.createVNode("div",{class:d.value},[t.createVNode("div",{class:"".concat(v.value,"-wrapper"),style:c},[h("cursor")||t.createVNode("div",{class:v.value},null)])]),h("default")]);return l?t.createVNode(Uf,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):u}}});function Qf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ep(e){for(var t=1;t0&&Gp(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Gp(r.height)/e.offsetHeight||1);var l=(Kp(e)?Wp(e):window).visualViewport,i=!Qp()&&n,u=(r.left+(i&&l?l.offsetLeft:0))/o,c=(r.top+(i&&l?l.offsetTop:0))/a,s=r.width/o,d=r.height/a;return{width:s,height:d,top:c,right:u+s,bottom:c+d,left:u,x:u,y:c}}function tm(e){var t=em(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function nm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Yp(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function rm(e){return Wp(e).getComputedStyle(e)}function om(e){return["table","td","th"].indexOf(Hp(e))>=0}function am(e){return((Kp(e)?e.ownerDocument:e.document)||window.document).documentElement}function lm(e){return"html"===Hp(e)?e:e.assignedSlot||e.parentNode||(Yp(e)?e.host:null)||am(e)}function im(e){return Up(e)&&"fixed"!==rm(e).position?e.offsetParent:null}function um(e){for(var t=Wp(e),n=im(e);n&&om(n)&&"static"===rm(n).position;)n=im(n);return n&&("html"===Hp(n)||"body"===Hp(n)&&"static"===rm(n).position)?t:n||function(e){var t=/firefox/i.test(Jp());if(/Trident/i.test(Jp())&&Up(e)&&"fixed"===rm(e).position)return null;var n=lm(e);for(Yp(n)&&(n=n.host);Up(n)&&["html","body"].indexOf(Hp(n))<0;){var r=rm(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function cm(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function sm(e,t,n){return qp(e,Xp(t,n))}function dm(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function vm(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var fm={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,a=n.elements.arrow,l=n.modifiersData.popperOffsets,i=Zp(n.placement),u=cm(i),c=[Ep,Dp].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return dm("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:vm(e,Tp))}(o.padding,n),d=tm(a),v="y"===u?_p:Ep,f="y"===u?Vp:Dp,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=um(a),g=h?"y"===u?h.clientHeight||0:h.clientWidth||0:0,y=p/2-m/2,b=s[v],w=g-d[c]-s[f],O=g/2-d[c]/2+y,C=sm(b,O,w),x=u;n.modifiersData[r]=((t={})[x]=C,t.centerOffset=C-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&nm(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function pm(e){return e.split("-")[1]}var mm={top:"auto",right:"auto",bottom:"auto",left:"auto"};function hm(e){var t,n=e.popper,r=e.popperRect,o=e.placement,a=e.variation,l=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,s=e.roundOffsets,d=e.isFixed,v=l.x,f=void 0===v?0:v,p=l.y,m=void 0===p?0:p,h="function"==typeof s?s({x:f,y:m}):{x:f,y:m};f=h.x,m=h.y;var g=l.hasOwnProperty("x"),y=l.hasOwnProperty("y"),b=Ep,w=_p,O=window;if(c){var C=um(n),x="clientHeight",P="clientWidth";if(C===Wp(n)&&"static"!==rm(C=am(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===_p||(o===Ep||o===Dp)&&a===Mp)w=Vp,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===Ep||(o===_p||o===Vp)&&a===Mp)b=Dp,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var j,S=Object.assign({position:i},c&&mm),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:Gp(n*o)/o||0,y:Gp(r*o)/o||0}}({x:f,y:m},Wp(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},S,((j={})[w]=y?"0":"",j[b]=g?"0":"",j.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",j)):Object.assign({},S,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var gm={passive:!0};var ym={left:"right",right:"left",bottom:"top",top:"bottom"};function bm(e){return e.replace(/left|right|bottom|top/g,(function(e){return ym[e]}))}var wm={start:"end",end:"start"};function Om(e){return e.replace(/start|end/g,(function(e){return wm[e]}))}function Cm(e){var t=Wp(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function xm(e){return em(am(e)).left+Cm(e).scrollLeft}function Pm(e){var t=rm(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function jm(e){return["html","body","#document"].indexOf(Hp(e))>=0?e.ownerDocument.body:Up(e)&&Pm(e)?e:jm(lm(e))}function Sm(e,t){var n;void 0===t&&(t=[]);var r=jm(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=Wp(r),l=o?[a].concat(a.visualViewport||[],Pm(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(Sm(lm(l)))}function km(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Nm(e,t,n){return t===Ap?km(function(e,t){var n=Wp(e),r=am(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=Qp();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+xm(e),y:u}}(e,n)):Kp(t)?function(e,t){var n=em(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):km(function(e){var t,n=am(e),r=Cm(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=qp(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=qp(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+xm(e),u=-r.scrollTop;return"rtl"===rm(o||n).direction&&(i+=qp(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(am(e)))}function _m(e,t,n,r){var o="clippingParents"===t?function(e){var t=Sm(lm(e)),n=["absolute","fixed"].indexOf(rm(e).position)>=0&&Up(e)?um(e):e;return Kp(n)?t.filter((function(e){return Kp(e)&&nm(e,n)&&"body"!==Hp(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce((function(t,n){var o=Nm(e,n,r);return t.top=qp(o.top,t.top),t.right=Xp(o.right,t.right),t.bottom=Xp(o.bottom,t.bottom),t.left=qp(o.left,t.left),t}),Nm(e,l,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Vm(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Zp(o):null,l=o?pm(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case _p:t={x:i,y:n.y-r.height};break;case Vp:t={x:i,y:n.y+n.height};break;case Dp:t={x:n.x+n.width,y:u};break;case Ep:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?cm(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case Ip:t[c]=t[c]-(n[s]/2-r[s]/2);break;case Mp:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function Dm(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,a=n.strategy,l=void 0===a?e.strategy:a,i=n.boundary,u=void 0===i?"clippingParents":i,c=n.rootBoundary,s=void 0===c?Ap:c,d=n.elementContext,v=void 0===d?Bp:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=dm("number"!=typeof h?h:vm(h,Tp)),y=v===Bp?"reference":Bp,b=e.rects.popper,w=e.elements[p?y:v],O=_m(Kp(w)?w:w.contextElement||am(e.elements.popper),u,s,l),C=em(e.elements.reference),x=Vm({reference:C,element:b,strategy:"absolute",placement:o}),P=km(Object.assign({},b,x)),j=v===Bp?P:C,S={top:O.top-j.top+g.top,bottom:j.bottom-O.bottom+g.bottom,left:O.left-j.left+g.left,right:j.right-O.right+g.right},k=e.modifiersData.offset;if(v===Bp&&k){var N=k[o];Object.keys(S).forEach((function(e){var t=[Dp,Vp].indexOf(e)>=0?1:-1,n=[_p,Vp].indexOf(e)>=0?"y":"x";S[e]+=N[n]*t}))}return S}function Em(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,a=n.rootBoundary,l=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=void 0===u?Rp:u,s=pm(r),d=s?i?Lp:Lp.filter((function(e){return pm(e)===s})):Tp,v=d.filter((function(e){return c.indexOf(e)>=0}));0===v.length&&(v=d);var f=v.reduce((function(t,n){return t[n]=Dm(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Zp(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}var Fm={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0===l||l,u=n.fallbackPlacements,c=n.padding,s=n.boundary,d=n.rootBoundary,v=n.altBoundary,f=n.flipVariations,p=void 0===f||f,m=n.allowedAutoPlacements,h=t.options.placement,g=Zp(h),y=u||(g===h||!p?[bm(h)]:function(e){if(Zp(e)===Fp)return[];var t=bm(e);return[Om(e),t,Om(t)]}(h)),b=[h].concat(y).reduce((function(e,n){return e.concat(Zp(n)===Fp?Em(t,{placement:n,boundary:s,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):n)}),[]),w=t.rects.reference,O=t.rects.popper,C=new Map,x=!0,P=b[0],j=0;j=0,V=_?"width":"height",D=Dm(t,{placement:S,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?Dp:Ep:N?Vp:_p;w[V]>O[V]&&(E=bm(E));var F=bm(E),T=[];if(a&&T.push(D[k]<=0),i&&T.push(D[E]<=0,D[F]<=0),T.every((function(e){return e}))){P=S,x=!1;break}C.set(S,T)}if(x)for(var I=function(e){var t=b.find((function(t){var n=C.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return P=t,"break"},M=p?3:1;M>0;M--){if("break"===I(M))break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Tm(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Im(e){return[_p,Dp,Vp,Ep].some((function(t){return e[t]>=0}))}var Mm={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,a=void 0===o?[0,0]:o,l=Rp.reduce((function(e,n){return e[n]=function(e,t,n){var r=Zp(e),o=[Ep,_p].indexOf(r)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,l=a[0],i=a[1];return l=l||0,i=(i||0)*o,[Ep,Dp].indexOf(r)>=0?{x:i,y:l}:{x:l,y:i}}(n,t.rects,a),e}),{}),i=l[t.placement],u=i.x,c=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=l}};var Am={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0!==l&&l,u=n.boundary,c=n.rootBoundary,s=n.altBoundary,d=n.padding,v=n.tether,f=void 0===v||v,p=n.tetherOffset,m=void 0===p?0:p,h=Dm(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Zp(t.placement),y=pm(t.placement),b=!y,w=cm(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,j="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,S="number"==typeof j?{mainAxis:j,altAxis:j}:Object.assign({mainAxis:0,altAxis:0},j),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?_p:Ep,D="y"===w?Vp:Dp,E="y"===w?"height":"width",F=C[w],T=F+h[V],I=F-h[D],M=f?-P[E]/2:0,A=y===Ip?x[E]:P[E],B=y===Ip?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?tm(L):{width:0,height:0},z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=z[V],W=z[D],K=sm(0,x[E],R[E]),U=b?x[E]/2-M-K-H-S.mainAxis:A-K-H-S.mainAxis,Y=b?-x[E]/2+M+K+W+S.mainAxis:B+K+W+S.mainAxis,$=t.elements.arrow&&um(t.elements.arrow),Z=$?"y"===w?$.clientTop||0:$.clientLeft||0:0,q=null!=(_=null==k?void 0:k[w])?_:0,X=F+Y-q,G=sm(f?Xp(T,F+U-q-Z):T,F,f?qp(I,X):I);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?_p:Ep,ee="x"===w?Vp:Dp,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[_p,Ep].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+S.altAxis,ue=ae?te+x[ne]+P[ne]-le-S.altAxis:oe,ce=f&&ae?function(e,t,n){var r=sm(e,t,n);return r>n?n:r}(ie,te,ue):sm(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function Bm(e,t,n){void 0===n&&(n=!1);var r,o=Up(t),a=Up(t)&&function(e){var t=e.getBoundingClientRect(),n=Gp(t.width)/e.offsetWidth||1,r=Gp(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=am(t),i=em(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==Hp(t)||Pm(l))&&(u=(r=t)!==Wp(r)&&Up(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):Cm(r)),Up(t)?((c=em(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=xm(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function Lm(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var Rm={placement:"bottom",modifiers:[],strategy:"absolute"};function zm(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),a=1;a1?t-1:0),o=1;o4&&void 0!==arguments[4]?arguments[4]:"value",l=t.getCurrentInstance(),i=l.emit,u=l.vnode,c=t.ref(),s=u.props||{},d=Object.prototype.hasOwnProperty.call(s,"modelValue")||Object.prototype.hasOwnProperty.call(s,"model-value"),v=Object.prototype.hasOwnProperty.call(s,a)||Object.prototype.hasOwnProperty.call(s,$o(a));return d?[n,function(e){i("update:modelValue",e);for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r0&&void 0!==arguments[0]&&arguments[0],t=new Date,n=t.getMonth()+1;n=n<10?"0".concat(n):n;var r="".concat(t.getFullYear(),"-").concat(n,"-").concat(t.getDate()),o="".concat(t.getHours(),":").concat(t.getMinutes(),":").concat(t.getSeconds());return e?[r,o].join(" "):r}function sh(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,r=e,o=0,a=0;if(!r)return"";for(var l=0;ll-n&&a1&&void 0!==arguments[1]?arguments[1]:"",n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(n){j(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(hh(n.children))):e.push(n)})),e.filter((function(e){return!(e&&(e.type===t.Comment||e.type===t.Fragment&&0===e.children.length||e.type===t.Text&&""===e.children.trim()))}))}function gh(e){var n=t.getCurrentInstance(),r=t.ref();return t.onMounted((function(){r.value=e(n)})),t.onUpdated((function(){var t=e(n);r.value!==t&&(r.value=t)})),r}var yh=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=gh((function(e){return e.parent.vnode.el.nextElementSibling})),l=t.ref();return t.watch(a,(function(){var t;null===(t=e.forwardRef)||void 0===t||t.call(e,a.value)})),mh(a,(function(e){var t=Ra(e,1)[0].contentRect;l.value=t})),t.watch(l,(function(e,t){var n,o;o=t,!(n=e)&&!o||n&&o&&!["width","height","x","y"].some((function(e){return n[e]!==o[e]}))||r("resize")})),function(){var e,n,r=hh(null===(e=o.default)||void 0===e?void 0:e.call(o));return r.length>1||(null===(n=r[0])||void 0===n?void 0:n.type)===t.Text?t.createVNode("span",null,[r]):r[0]}}}),bh=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return mh(gh((function(e){return e.vnode.el.children[0]})),(function(){r("resize")})),function(){return t.createVNode("div",{style:"position: absolute; top: 0px; left: 0px; width: 100%"},[o.default()])}}}),wh=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:ph.attach,forwardRef:Function},emits:["resize","contentMounted"],setup:function(e,n){var r=n.emit,o=n.attrs,a=n.slots,l=n.expose,i=t.ref(),u=t.ref(!1);function c(){r("resize")}return t.onMounted((function(){requestAnimationFrame((function(){u.value=e.visible}))})),t.watch((function(){return e.visible}),(function(t){t&&(u.value=e.visible)})),l({unmountContent:function(){u.value=!1}}),function(){var n,l,s=function(){return El(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(yh,{class:o.class,forwardRef:function(t){e.forwardRef(t),i.value=t},onResize:c},(l=n=a.default(),"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!t.isVNode(l)?n:{default:function(){return[n]}})),u.value&&t.createVNode(t.Teleport,{disabled:!s(),to:s()},{default:function(){return[t.createVNode(bh,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function Oh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ch(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(Yh(l.value)||Yh(u.value))?(Qm("Breadcrumb","\u9700\u8981\u8bbe\u7f6e itemsBeforeCollapse \u548c itemsAfterCollapse \u5c5e\u6027\u6765\u63a7\u5236\u7701\u7565\u53f7\u524d\u540e\u7684\u663e\u793a\u9879\u6570\u3002"),!1):!(r<=0||o<=r||i>=o)})),s=t.computed((function(){var e=n.value;if(!c.value)return e;var t=e.length,o=e.slice(0,l.value),a=e.slice(t-u.value,t);return[].concat(i(o),[{content:r,disabled:!0,isEllipsisItem:!0}],i(a))})),d=t.computed((function(){var e=n.value;if(!c.value)return[];var t=e.slice(l.value,e.length-u.value);return t.map((function(e,n){return Uh(Uh({},e),{},{isLast:n===t.length-1})}))}));return{getDisplayItems:s,getEllipsisItems:d}}(e,r,c),f=s.getDisplayItems.value.map((function(e,n){return"object"===u(e)&&"content"in e?t.createVNode(Wh,t.mergeProps({key:n},e),{default:function(){return[e.content]}}):e}));return t.createVNode("div",{class:a.value},[f])}}}),Xh=fi(qh),Gh=fi(Wh),Jh={active:Boolean,content:{type:[String,Function],default:""},disabled:Boolean,divider:Boolean,prefixIcon:{type:Function},theme:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},value:{type:[String,Number,Object]},onClick:Function};function Qh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function eg(e){for(var t=1;t=e.maxHeight&&(i.value=!0));a.value=document.querySelector(".".concat(n.value,"__item")).scrollHeight+2}));var d=function(e){return H(e)?e(t.h):e},v=function(r,l){var i,f,p=[];return null===(i=r.forEach)||void 0===i||i.call(r,(function(r,i){var m=function(e){for(var t=1;t=0?h:i;m.children?(m.children=v(m.children,l+1),f=t.createVNode("div",{key:i},[t.createVNode(tg,{style:m.style,class:["".concat(n.value,"__item"),"".concat(n.value,"__item--suffix"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,isSubmenu:!0},{default:function(){return[t.createVNode("div",{class:"".concat(n.value,"__item-content")},[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)]),t.createVNode(u,{class:"".concat(n.value,"__item-direction"),size:"16"},null)]),t.createVNode("div",{class:["".concat(n.value,"__submenu-wrapper"),s({},"".concat(n.value,"__submenu-wrapper--").concat(e.direction),e.direction)],style:{position:"absolute",top:"".concat(g*a.value,"px")}},[t.createVNode("div",{class:["".concat(n.value,"__submenu"),s({},"".concat(n.value,"__submenu--disabled"),m.disabled)],style:{position:"static",maxHeight:"".concat(e.maxHeight,"px")},onScroll:function(e){return c(e,l+1)}},[t.createVNode("ul",null,[m.children])])])]}}),m.divider?t.createVNode(pf,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(tg,{style:m.style,class:["".concat(n.value,"__item"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,onClick:m.disabled||m.children?function(){return null}:function(t,n){return function(t){var n,r,o=t.data,a=t.context;null==o||null===(n=o.onClick)||void 0===n||n.call(o,o,a),null===(r=e.onClick)||void 0===r||r.call(e,o,a)}({data:m,context:n})}},{default:function(){return[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)])]}}),m.divider?t.createVNode(pf,null,null):null]),p.push(f)})),p};return function(){return t.createVNode("div",{class:[r.value,"".concat(r.value,"--").concat(e.direction),s({},"".concat(r.value,"--overflow"),i.value)],style:{maxHeight:"".concat(e.maxHeight,"px")},ref:l,onScroll:function(e){return c(e,0)}},[v(e.options,0)])}}});function ag(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lg(e){for(var t=1;t0?ig(m):null})})).filter((function(e){return!!e.content})):j(e)&&j(null===(n=e[0])||void 0===n?void 0:n.children)?ig(null===(r=e[0])||void 0===r?void 0:r.children):[]};function ug(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cg(e){for(var t=1;t0?e.options:ig(u)}))}(e),f=cg(cg(cg({},r),{},{disabled:e.disabled,placement:e.placement,trigger:e.trigger},ta(e.popupProps,["onVisibleChange","on-visible-change"])),{},{overlayInnerClassName:[a.value,null===(u=e.popupProps)||void 0===u?void 0:u.overlayInnerClassName]});return t.createVNode(Nh,t.mergeProps({destroyOnClose:!0,ref:l,visible:i.value,onVisibleChange:s,expandAnimation:!0},f),{default:function(){return[d]},content:function(){var n;return t.createVNode(t.Fragment,null,[o("panelTopContent"),null!==(n=v.value)&&void 0!==n&&n.length?t.createVNode(og,t.mergeProps(ta(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),dg=fi(sg),vg=fi(tg),fg=fi(og),pg={collapsed:Boolean,expanded:{type:Array,default:void 0},defaultExpanded:{type:Array,default:[]},expandMutex:Boolean,expandType:{type:String,default:"normal",validator:function(e){return!e||["normal","popup"].includes(e)}},logo:{type:Function},operations:{type:Function},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},width:{type:[String,Number,Array],default:"232px"},onChange:Function,onExpand:Function};function mg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hg(e,t){for(var n=0;n0)for(var n=0,r=e.children.length;n0){var o=Og(this.data,n);o&&!o.children.some((function(e){return e.value===r.value}))?o.children.push(r):this.cache.add(r)}else this.cache.add(r)}},{key:"select",value:function(e){var t=bg(this.data,e,[])||[];return t.push(e),t.filter((function(e){return null!=e}))}},{key:"expand",value:function(e){var t=this;if(this.expandValues.has(e))return this.expandValues.delete(e),i(this.expandValues);if(this.expandValues.add(e),!this.isMutex.value)return i(this.expandValues);var n=wg(this.data,e)||[],r=new Set(n.filter((function(t){var n;return(null===(n=t.children)||void 0===n?void 0:n.length)>0&&t.value!==e})).map((function(e){return e.value})));return this.expandValues.forEach((function(e){r.has(e)&&t.expandValues.delete(e)})),i(this.expandValues)}},{key:"getChild",value:function(e){var t=Og(this.data,e);return t?t.children:[]}}])}();function xg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pg(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Tg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1})),C=t.computed((function(){return c.valueMath.abs(n)?E(c.value+t):E(c.value+n)}},I=function(){setTimeout((function(){E(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Vg(a),c=Vg(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Vg(l),v=Vg(i);if("auto"===n){if(s-vt+c-d)return s+u-c+d}else{if("start"===n)return s-v;if("center"===n)return s+(u-c)/2;if("end"===n)return s+u-c+d}return t}(b(),c.value,e.scrollPosition))}),0)},M=function(){t.nextTick((function(){var e,t,n,r,o;g.value=(e=b(),t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,o=e.toRightBtn,Vg(t)-Vg(n)+Vg(r)-Vg(o))}))};t.watch([function(){return e.placement},function(){return e.panels}],M),t.watch([function(){return e.scrollPosition}],I),function(e,n){Hv("resize",e);var r=null;t.onMounted((function(){window.ResizeObserver&&n&&(r=new window.ResizeObserver(e)).observe(n)})),t.onBeforeUnmount((function(){var e;null===(e=r)||void 0===e||e.disconnect()}))}(po(M),d.value);var A=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t})},B=function(t){var n=t.e,r=t.value,o=t.index;e.onRemove({e:n,value:r,index:o})},L=function(t){null!=t&&t.$el&&(null==t?void 0:t.value)===e.value&&h.value!==t.$el&&(h.value=t.$el,I())},R=function(e){var n,r=null,o=[],a=function(e){var t=e.target;n=t,t.style.opacity="0.5"},l=function(e){e.target.style.opacity=""},i=function(e){e.preventDefault()},u=function(e){var t=Mg(e.target,r.children);t&&t!==n&&t.draggable&&(t.firstChild.style.outline="1px dashed #0052d9",o.includes(t)||o.push(t))},c=function(e){for(var t=e.target,n=0,r=o;nl&&(o=r.children[i+1]);var u="card"===e.theme?l:l-1,c="card"===e.theme?i:i-1;null===(a=e.onDragSort)||void 0===a||a.call(e,{currentIndex:u,current:e.panels[u].value,targetIndex:c,target:e.panels[c].value})}};return t.onUnmounted((function(){r&&(r.removeEventListener("dragstart",a),r.removeEventListener("dragend",l),r.removeEventListener("dragover",i),r.removeEventListener("dragenter",u),document.removeEventListener("dragleave",c),document.removeEventListener("mousemove",c),r.removeEventListener("drop",s))})),{setNavsWrap:function(e){(r=e).addEventListener("dragstart",a,!1),r.addEventListener("dragend",l,!1),r.addEventListener("dragover",i,!1),r.addEventListener("dragenter",u,!1),document.addEventListener("dragleave",c,!1),document.addEventListener("mousemove",c,!1),r.addEventListener("drop",s,!1)}}}(e),z=R.setNavsWrap;t.onMounted((function(){z(v.value),M(),I()}));var W=function(){return e.panels.map((function(n,r){var o,a;a=null!=n&&null!==(o=n.children)&&void 0!==o&&o.label?n.children.label():H(n.label)?n.label(t.h):n.label||"\u9009\u9879\u5361".concat(r+1);var l=e.dragSort;return l&&!1===n.draggable&&(l=n.draggable),t.createVNode(Dg,{ref:L,draggable:l,key:n.value,index:r,theme:e.theme,size:e.size,placement:e.placement,label:a,active:n.value===e.value,disabled:e.disabled||n.disabled,removable:n.removable,value:n.value,onClick:function(t){return function(t,n){var r=n.value;if(n.disabled||e.value===r)return!1;e.onChange(r)}(0,n)},onRemove:B},null)}))};return function(){return t.createVNode("div",{ref:d,class:["".concat(n.value,"__nav")],style:P.value},[[t.createVNode("div",{ref:f,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--left")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[O.value?t.createVNode("div",{class:S.value,onClick:function(){return F("prev")}},[t.createVNode(o,null,null)]):null]}})]),t.createVNode("div",{ref:p,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--right")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[C.value?t.createVNode("div",{ref:m,class:k.value,onClick:function(){return F("next")}},[t.createVNode(a,null,null)]):null]}}),e.addable?t.createVNode("div",{class:N.value,onClick:A},[t.createVNode(l,null,null)]):null,y.value&&e.action])],(r=W(),t.createVNode("div",{class:_.value},[t.createVNode("div",{class:V.value,onWheel:T},[t.createVNode("div",{ref:v,class:D.value,style:x.value},["card"!==e.theme&&t.createVNode(Eg,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),Rg=t.defineComponent({name:"TTabs",props:_g,setup:function(e){var n=Ga("tabs"),r=Ga(),o=Ql(),a=t.toRefs(e),l=Ra(qm(a.value,a.modelValue,e.defaultValue||"",e.onChange),2),i=l[0],u=l[1];t.provide("tabs",{value:i});var c=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t.e})},d=function(e){u(e)},v=function(t){var n,r=t.e,o=t.value,a=t.index;null===(n=e.onRemove)||void 0===n||n.call(e,{value:o,index:a,e:r})},f=function(){var e=o("default");if(!e)return[];var t=function(e){return e.map((function(e){return e.children&&j(e.children)?t(e.children):e})).flat().filter((function(e){return"TTabPanel"===e.type.name}))};return t(e)},p=function(){var n,a=(null!==(n=e.list)&&void 0!==n&&n.length?e.list:f())||[],l=o("action"),u=a.map((function(e){var t=e;return e.props&&Object.keys(e.props).forEach((function(n){t[n]=e.props[n]})),t})),p={theme:e.theme,value:i.value,size:e.size,disabled:e.disabled,placement:e.placement,scrollPosition:e.scrollPosition,addable:e.addable,panels:u,dragSort:e.dragSort,action:l};return t.createVNode("div",{class:s(s({},"".concat(r.value,"-tabs__header"),!0),"".concat(r.value,"-is-").concat(e.placement),!0)},[t.createVNode(Lg,t.mergeProps(p,{onDragSort:e.onDragSort,onChange:d,onAdd:c,onRemove:v}),null)])},m=function(){var n,o=f();return null!==(n=e.list)&&void 0!==n&&n.length?e.list.map((function(e){return t.createVNode(Ng,t.mergeProps(e,{onRemove:v}),null)})):o&&o.length?t.createVNode("div",{class:["".concat(r.value,"-tabs__content")]},[o]):void 0};return function(){return t.createVNode("div",{class:[n.value]},["bottom"!==e.placement?[p(),m()]:[m(),p()]])}}}),zg=fi(Rg),Hg=fi(Ng),Wg={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Kg=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=Ga("fake-arrow"),r=t.computed((function(){return[n.value,s({},"".concat(n.value,"--active"),e.isActive),e.overlayClassName]}));return function(){return t.createVNode("svg",{class:r.value,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:e.overlayStyle},[t.createVNode("path",{d:"M3.75 5.7998L7.99274 10.0425L12.2361 5.79921",stroke:"black","stroke-opacity":"0.9","stroke-width":"1.3"},null)])}}});function Ug(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Yg=t.defineComponent({name:"TSubmenu",props:Wg,setup:function(e,n){var r=n.attrs,o=n.slots,a=Ga(),l=Ql(),u=ti(),c=t.getCurrentInstance(),d=t.inject("TdMenu"),v=t.toRefs(e).value,f=d.theme,p=d.activeValues,m=d.expandValues,h=d.isHead,g=d.open,y=t.inject("TdSubmenu",{}),b=y.setSubPopup,w=y.closeParentPopup,O=t.computed((function(){return r.expandType||d.mode.value})),C=t.ref([]),x=t.computed((function(){return p.value.indexOf(e.value)>-1})),P=t.ref(!1),j=t.ref(!1),S=t.computed((function(){return"light"===f.value?"#E7E7E7":"#383838"})),k=t.computed((function(){var t;return"popup"===O.value?P.value:!!m&&(null===(t=m.value)||void 0===t?void 0:t.includes(e.value))})),N=t.ref(!1),_=t.ref(),V=t.ref(),D=t.ref(),E=Ga("slide-down");bi(D,S);var F=t.computed((function(){return["".concat(a.value,"-submenu"),s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value)]})),T=t.computed((function(){var t;return["".concat(a.value,"-menu__popup"),"".concat(a.value,"-is-").concat(h?"horizontal":"vertical"),s({},"".concat(a.value,"-is-opened"),P.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayInnerClassName]})),I=t.computed((function(){var t;return["".concat(a.value,"-menu--").concat(f.value),h&&"".concat(a.value,"-is-head-menu"),s({},"".concat(a.value,"-menu-is-nested"),N.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayClassName]})),M=t.computed((function(){return["".concat(a.value,"-menu__item"),"".concat(a.value,"-menu__item-spacer"),"".concat(a.value,"-menu__item-spacer--").concat(h&&!N.value?"bottom":"right"),s(s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value),"".concat(a.value,"-is-active"),x.value)]})),A=t.computed((function(){return["".concat(a.value,"-menu__sub"),s({},"".concat(a.value,"-is-opened"),k.value)]})),B=t.computed((function(){return[s({},"".concat(a.value,"-fake-arrow--active"),k.value)]}));t.provide("TdSubmenu",t.reactive({value:v,addMenuItem:function(e){C.value.push(e),y&&y.addMenuItem(e)},setSubPopup:function(e){V.value=e},closeParentPopup:function(e){var t=e.relatedTarget;W(t)||U(e)}}));var L=function(e){H(b)&&b(e)},R=function(){e.disabled||setTimeout((function(){P.value||(g(e.value),t.nextTick().then((function(){L(_.value)}))),P.value=!0}),0)},z=function(e){return null==e?void 0:e.classList.contains("".concat(a.value,"-menu__popup"))},W=function(e){return!!e&&(z(e)||W(e.parentElement))},K=function(e){setTimeout((function(){var t=z(e.relatedTarget);j.value||t||(P.value=!1)}),0)},U=function(e){var t=e.toElement,n=e.relatedTarget,r=t||n;if(r!==V.value){for(var o=function(e){return e===D.value};null!==r&&r!==document&&!o(r);)r=r.parentNode;j.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){j.value=!0},$=function(){e.disabled||g(e.value)},Z=function(n){var r,o="right-top";!N.value&&h&&(o="bottom-left");var l=t.createVNode("div",{ref:_,class:["".concat(a.value,"-menu__spacer"),"".concat(a.value,"-menu__spacer--").concat(!N.value&&h?"top":"left")],onMouseenter:Y,onMouseleave:U},[t.createVNode("ul",{class:"".concat(a.value,"-menu__popup-wrapper")},[u("default","content")])]),c={content:function(){return l}},d=t.createVNode(Nh,t.mergeProps(null!==(r=e.popupProps)&&void 0!==r?r:{},{overlayInnerClassName:i(T.value),overlayClassName:i(I.value),visible:P.value,placement:o}),function(e){for(var t=1;t0&&(s=h?(e=l("icon"),n=[t.createVNode("div",{ref:D,class:M.value,onClick:$},[e,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})])]),t.createVNode("ul",{style:"opacity: 0; width: 0; height: 0; overflow: hidden"},[u("default","content")])],r="popup"===O.value&&N.value,i=[e,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Kg,{overlayClassName:/menu/i.test(null==c?void 0:c.parent.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(r?-90:0,"deg)")}},null)],"normal"===O.value?n:Z(i)):function(){for(var e=o.content||o.default,n=l("icon"),r=u("default","content"),i=c.parent,s=44;i&&"TMenu"!==i.type.name;)"TSubmenu"===i.type.name&&(s+=16),i=i.parent;var d={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},v=d.beforeEnter,f=d.enter,p=d.afterEnter,m=d.beforeLeave,h=d.leave,g=d.afterLeave,y="popup"===O.value&&N.value,b=[t.createVNode("div",{ref:D,class:M.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),e&&t.createVNode(Kg,{overlayClassName:B.value,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)")}},null)]),t.createVNode(t.Transition,{name:E.value,onBeforeEnter:v,onEnter:f,onAfterEnter:p,onBeforeLeave:m,onLeave:h,onAfterLeave:g},{default:function(){return[t.withDirectives(t.createVNode("ul",{class:A.value,style:{"--padding-left":"".concat(s,"px")}},[r]),[[t.vShow,k.value]])]}})],w=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Kg,{overlayClassName:/menu/i.test(i.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)"),"margin-left":"auto"}},null)];return"normal"===O.value?b:Z(w)}()),t.createVNode("li",t.mergeProps({class:F.value},d),[s])}}});function $g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Zg=t.defineComponent({name:"THeadMenu",props:Sg,setup:function(e,n){var r,o,a,l,u=Ga(),c=t.getCurrentInstance().proxy;t.watchEffect((function(){n.slots.options&&Jm("TMenu","`options` slot is going to be deprecated, please use `operations` for slot instead.")}));var d=t.toRefs(e),v=d.value,f=d.modelValue,p=d.expanded,m=Ra(qm(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ra(Um(p,e.defaultExpanded,e.onExpand,"expanded"),2),b=y[0],w=y[1],O=t.ref([]),C=t.computed((function(){return e.theme})),x=t.computed((function(){return["".concat(u.value,"-menu"),"".concat(u.value,"-head-menu"),"".concat(u.value,"-menu--").concat(e.theme)]})),P=t.ref(e.expandType),S=t.reactive([]),k=new Cg({isMutex:!0,expandValues:b.value});t.provide("TdMenu",{mode:P,theme:C,vMenu:k,isHead:!0,expandValues:b,activeValue:h,activeValues:O,select:function(e){g(e)},open:function(e,t){var n=i(b.value),r=n.indexOf(e);"popup"===P.value?"add"===t?-1===r&&n.push(e):"remove"===t&&n.splice(r,1):"normal"===P.value&&void 0!==e&&(n.splice(0,1),-1===r&&n.push(e)),w(n)}});var N=function(e){g(e),V(e)},_=function(e){var t=k.getChild(e);S.length=0,S.push.apply(S,i(t))};t.watch(b,(function(e){"normal"===P.value&&_(e[0])}));t.watch(h,(function(e){O.value=k.select(e)})),t.watch((function(){return e.expandType}),(function(e){P.value=e})),t.onMounted((function(){var e;O.value=k.select(h.value),(null===(e=b.value)||void 0===e?void 0:e.length)>0&&_(b.value[0])}));var V=function(e){var t,n=S.find((function(t){return t.value===e}));null===(t=n.onClick)||void 0===t||t.call(n,{value:e});var r=n.to,o=n.href,a=n.replace;o&&(window.location.href=n.href);var l=n.router||c.$router;r&&l&&(a?l.replace(r):l.push(r))},D=t.ref(),E=t.ref(),F=t.ref(),T=t.ref(),I=function(e,t){e.forEach((function(e){var n,r,o,a,l=null===(n=e.props)||void 0===n?void 0:n.value;"TSubmenu"!==(null===(r=e.type)||void 0===r?void 0:r.name)&&"TMenuItem"!==(null===(o=e.type)||void 0===o?void 0:o.name)||k.add(function(e){for(var t=1;tNumber(r)?"error":""}return""})),o=t.computed((function(){return e.value.status||r.value})),a=function(){var t,n;null===(t=(n=e.value).onValidate)||void 0===t||t.call(n,{error:r.value?"exceed-maximum":void 0})};return t.watch(r,a),t.onMounted((function(){r.value&&a()})),{tStatus:o,limitNumber:n,getValueByLimitNumber:function(t){var n,r,o,a=e.value,l=a.allowInputOverMax,u=a.maxlength,c=a.maxcharacter;if(!u&&!c||l||!t)return t;if(u)return n=t,r=u,i(null!=o?o:"").slice().length===r?o||"":i(null!=n?n:"").slice(0,r).join("");if(c){var s=al(t,c);if(E(s))return s.characters}}}}function vy(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function fy(e,n){var r=t.toRefs(e),o=r.value,a=r.modelValue,l=t.ref(),i=t.ref(!1),u=t.ref(),c=t.ref(null),s=t.ref(),d=wi(),v=ly(),f=Ra(qm(o,a,e.defaultValue,e.onChange),2),p=f[0],m=f[1],h=t.ref(!1),g=t.ref(!1),y=t.ref(e.type),b=t.ref(null),w=dy(t.computed((function(){return{value:[void 0,null].includes(p.value)?void 0:String(p.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))),O=w.limitNumber,C=w.getValueByLimitNumber,x=w.tStatus,P=t.computed((function(){return(p.value&&!d.value&&e.clearable&&!v.value||e.showClearIconOnEmpty)&&h.value})),j=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=b.value;if(t){var n=String(e);t.value&&t.value!==n&&(t.value=n)}},k=function(n){var r,o=n.target.value;"number"!==e.type&&"string"==typeof p.value&&o.length>(null===(r=p.value)||void 0===r?void 0:r.length)&&(o=C(o)),m(vy(o,e.type),{e:n,trigger:"input"}),t.nextTick((function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?S(o):S(p.value)}))},N=t.inject(sy,void 0);return t.watch((function(){return e.autofocus}),(function(e){!0===e&&t.nextTick((function(){var e;null===(e=b.value)||void 0===e||e.focus()}))}),{immediate:!0}),t.watch(p,(function(t,n){var r="number"===e.type;void 0===n&&e.format&&"number"!=typeof t&&!r?l.value=e.format(t):l.value=t;var o="number"==typeof t?t:C(t);o===t||r||m(o,{trigger:"initial"})}),{immediate:!0}),t.watch((function(){return e.type}),(function(e){y.value=e}),{immediate:!0}),n({inputRef:b,focus:j,blur:function(){var e;g.value=!1,null===(e=b.value)||void 0===e||e.blur()}}),{isHover:h,focused:g,renderType:y,showClear:P,inputRef:b,clearIconRef:c,inputValue:l,isComposition:i,compositionValue:u,limitNumber:O,tStatus:x,emitFocus:function(t){var n;h.value&&g.value||(l.value=p.value,e.disabled||(g.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,p.value,{e:t})))},formatAndEmitBlur:function(t){var n;(function(){var e,t=s.value;if(!(t&&t.tagName&&null!==(e=c.value)&&void 0!==e&&e.$el&&["path","svg"].includes(t.tagName)))return!1;for(;t;){var n;if((null===(n=c.value)||void 0===n?void 0:n.$el)===t)return!0;t=t.parentNode}return!1})()?j():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,p.value,{e:t}),null==N||N.handleBlur())},onHandleCompositionend:function(t){var n;i.value=!1,u.value="",k(t),null===(n=e.onCompositionend)||void 0===n||n.call(e,String(p.value),{e:t})},onHandleCompositionstart:function(t){var n;i.value=!0;var r=t.currentTarget.value;u.value=r,null===(n=e.onCompositionstart)||void 0===n||n.call(e,String(p.value),{e:t})},onRootClick:function(t){var n,r;null===(n=b.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,{e:t})},emitPassword:function(){if(!d.value){var e="password"===y.value?"text":"password";y.value=e}},handleInput:function(e){var t=e.inputType&&"insertCompositionText"===e.inputType,n=e.currentTarget.value;t||i.value?u.value=n:k(e)},emitClear:function(t){var n,r=t.e,o="number"===e.type?void 0:"";m(o,{e:r,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onClearIconMousedown:function(e){s.value=e.target},innerValue:p}}function py(e,n,r){var o=t.toRefs(e),a=o.autoWidth,l=o.placeholder,i=t.ref(null),u=t.ref(null),c=function(){i.value&&n.value&&(n.value.style.width=getComputedStyle(i.value).width)};mh(i,(function(){a.value&&(u.value=setTimeout((function(){c(),clearTimeout(u.value)}),100))})),t.onBeforeUnmount((function(){clearTimeout(u.value)}));return t.onMounted((function(){a.value&&t.watch([r,l],(function(){a.value&&t.nextTick((function(){c()}))}),{immediate:!0})})),{inputPreRef:i}}var my=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function hy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gy(e){for(var t=1;t1)return!1;if(/(e|E)+/.test(e[o])&&(t+=1)>1)return!1;if("-"===e[o]&&(n+=1)>2)return!1}return!0}function Sy(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(Qm("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function ky(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=Sy(e,n),o=Sy(t,n),a=r.length>o.length,l=a?r:o,i=a?o:r,u=[],c=[],s=n?0:l.length-i.length,d=n?i.length:l.length,v=d-1;v>=0;v--){var f=v-s,p=Number(l[v])+(Number(i[f])||0)+(c[v]||0);p>=10&&(c[v-1]=1),u.unshift(String(p%10))}return c[-1]&&u.unshift("1"),n?u.concat(l.slice(d,l.length)).join(""):u.join("")}function Ny(e,t){var n=Ra(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ra(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=ky(o,c);if("0"===l&&"0"===d)return v;var f=Sy(l,!0),p=Sy(d,!0),m=ky(f,p,!0),h=m.length;return h>f.length&&h>p.length?[Sy(ky(v,"1")),Sy(m.slice(1),!0)].filter((function(e){return e})).join("."):[Sy(v),Sy(m,!0)].filter((function(e){return e})).join(".")}function _y(e,t){var n=Sy(e),r=Sy(t);if(n.length===r.length){for(var o=0,a=n.length;or[o])return 1;if(n[o]r.length?1:-1}function Vy(e,t){for(var n=e&&"0"!==e?e.replace(/0+$/,""):"0",r=t&&"0"!==t?t.replace(/0+$/,""):"0",o=0,a=Math.max(n.length,r.length);o(r[o]||0))return 1;if((n[o]||0)<(r[o]||0))return-1}return 0}function Dy(e){var t=Ra(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ra(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ra(i.split("e"),1)[0];if(u>c.length){var s=Py(u-c.length);return n.replace(/(^0+|\.)/g,"")+s}var d=a.replace(/^0+/,"")+c.slice(0,u),v=c.slice(u);return v?[d,v].join("."):d}function Ey(e){return[-1/0,1/0].includes(Number(e))}function Fy(e){return Number(e)Number.MIN_SAFE_INTEGER}function Ty(e,t,n){var r=Fy(e)&&Fy(t)&&!n,o=Ey(e)||Ey(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ra(Dy(e).split("."),2),r=n[0],o=n[1],a=Ra(Dy(t).split("."),2),l=a[0],i=a[1],u=_y(r.replace("-",""),l.replace("-","")),c=r.includes("-"),s=l.includes("-");return c&&!s?-1:!c&&s?1:c&&s?0===u?0:u>0?-1:1:0===u?Vy(o,i):u}(String(e),String(t))}function Iy(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=Sy(e),i=Sy(t),u=_y(l,i)>0,c=u?l:i,s=u?i:l,d=[],v=[],f=o?0:c.length-s.length,p=o?s.length:c.length,m=p-1;m>=0;m--){var h=m-f,g=Number(c[m])-(Number(s[h])||0)-(v[m]||0);g<0&&(v[m-1]=1,g+=10),d.unshift(String(g))}if(o)return d.concat(c.slice(p,c.length)).join("");var y=d.join("");return a||(y=y.replace(/^0+/,"")),Sy(u?y:"-".concat(y))}function My(e,t){if(e===t)return"0";var n=Ty(e,t,!0)>0,r=n?t:e,o=Ra((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ra(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=Iy(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=Iy(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ra(e.toString().split("."),2),r=n[0],o=n[1];if(0===t)return r;if(o){var a=o.slice(0,t);return o.length1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Number.isNaN(Number(e)))return"";if(!r)return function(e,t){var n;return E(t)?Ay(e,t.places,null===(n=t.enableRound)||void 0===n||n):Ay(e,t,!0)}(Number(e),n);var o=E(n)?n.places:n,a=!E(n)||(null===(t=n.enableRound)||void 0===t||t);if(!Do(e))return String(e);var l=Ra(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,Py(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Ny(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Ny(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(Py(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=Py(o))}return[i,c].join(".")}function Ly(e,t){var n,r;if(!e||!t)return(e||0)+(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0;if(!o&&!a)return e+t;var l=e,i=t,u=Math.abs(o-a),c=Math.pow(10,Math.max(o,a));if(u>0){var s=Math.pow(10,u);o>a?(l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""))*s):(l=Number(e.toString().replace(".",""))*s,i=Number(t.toString().replace(".","")))}else l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""));return(l+i)/c}function Ry(e,t){var n,r;if(!e||!t)return(e||0)-(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0,l=Math.pow(10,Math.max(o,a));return Number(((e*l-t*l)/l).toFixed(o>=a?o:a))}function zy(e){var t=e.op,n=e.step,r=e.lastValue,o=e.max,a=e.min,l=e.largeNumber;if(Number(n)<=0)return Qm("InputNumber","step must be larger than 0."),r;var i,u,c,s=Ho(n)?String(n):n;return"add"===t?l&&Do(r)?i=function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r)return My(t,e.slice(1));if(n&&r){var o=Ny(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?My(e,t.slice(1)):Ny(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ry(c,Math.abs(u)):u<0&&c<0?-1*Ly(Math.abs(u),Math.abs(c)):u>0&&c<0?Ry(u,Math.abs(c)):Ly(u,c)):"reduce"===t&&(i=l&&Do(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Ny(e.slice(1),t);return"-".concat(o)}return n&&r?My(t.slice(1),e.slice(1)):!n&&r?Ny(e,t.slice(1)):My(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Ly(Math.abs(e),t):e<0&&t<0?Ry(Math.abs(t),Math.abs(e)):e>0&&t<0?Ly(e,Math.abs(t)):Ry(e,t)}(Number(r||0),Number(n))),Uo(r)&&(i=function(e,t){if(""!==e){var n=t.max,r=t.min,o=t.lastValue,a=t.largeNumber;return jy(e)?!a||!Do(n)&&n!==1/0||!Do(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Ty(n,e,a)<0?n:Ty(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function Hy(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Uo(n)&&!Uo(t))return t&&Ho(n)&&Gm("InputNumber","largeNumber value must be a string."),Ty(n,r,t)>0?"exceed-maximum":Ty(n,o,t)<0?"below-minimum":void 0}var Wy=["-",".","e","E","+"];function Ky(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!["",null,void 0].includes(e)&&/\d+/.test(e)){var n=t.decimalPlaces,r=t.largeNumber,o=t.isToFixed,a=e.replace(/[.|+|\-|e]$/,"");return r&&(a=Dy(a)),void 0!==n&&(a=By(a,n,r)),r||o?a:parseFloat(a)}}function Uy(e){var n=Km(),r=n.classPrefix,o=n.sizeClassNames,a=n.statusClassNames,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ra(qm(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=wi(),y=ly(),b=t.ref(),w=t.computed((function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&Do(e)?Ty(e,t,n)>0:e>t)}(f.value,e.min,e.largeNumber)})),O=t.computed((function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&Do(e)?Ty(e,t,n)<0:e1)return!1;if((null===(r=e.match(/e/g))||void 0===r?void 0:r.length)>1)return!1;var o=e.slice(1),a=o.match(/(\+|-)/g);return!(a&&(!/e(\+|-)/i.test(o)||a.length>1)||!(t&&jy(e)||!Number.isNaN(Number(e))||Wy.includes(e.slice(-1)))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}(a,e.largeNumber))if(h.value=a,e.largeNumber)p(a,{type:"input",e:o});else if(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))}(String(a),Number(f.value))){var l=""===a?void 0:Number(a);p(l,{type:"input",e:o})}},isReadonly:y}}function Yy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var $y=t.defineComponent({name:"TInputNumber",props:xy,setup:function(e,n){var r=up({AddIcon:Ri,RemoveIcon:_d,ChevronDownIcon:Mu,ChevronUpIcon:vc}),o=r.AddIcon,a=r.RemoveIcon,l=r.ChevronDownIcon,i=r.ChevronUpIcon,u=Uy(e),c=u.inputRef;return n.expose(function(e){for(var t=1;t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=wb(e,360),t=wb(t,100),n=wb(n,100),0===t)r=o=a=n;else{var i=n<.5?n*(1+t):n+t-n*t,u=2*n-i;r=l(u,i,e+1/3),o=l(u,i,e),a=l(u,i,e-1/3)}return{r:255*r,g:255*o,b:255*a}}(e.h,r,a),l=!0,i="hsl"),e.hasOwnProperty("a")&&(n=e.a));var u,c,s;return n=bb(n),{ok:l,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}function tb(e,t,n){e=wb(e,255),t=wb(t,255),n=wb(n,255);var r,o,a=Math.max(e,t,n),l=Math.min(e,t,n),i=(a+l)/2;if(a==l)r=o=0;else{var u=a-l;switch(o=i>.5?u/(2-a-l):u/(a+l),a){case e:r=(t-n)/u+(t>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(eb(r));return a}function hb(e,t){t=t||6;for(var n=eb(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(eb({h:r,s:o,v:a})),a=(a+i)%1;return l}eb.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=bb(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=nb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=nb(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=tb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=tb(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return rb(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,o){var a=[xb(Math.round(e).toString(16)),xb(Math.round(t).toString(16)),xb(Math.round(n).toString(16)),xb(jb(r))];if(o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*wb(this._r,255))+"%",g:Math.round(100*wb(this._g,255))+"%",b:Math.round(100*wb(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*wb(this._r,255))+"%, "+Math.round(100*wb(this._g,255))+"%, "+Math.round(100*wb(this._b,255))+"%)":"rgba("+Math.round(100*wb(this._r,255))+"%, "+Math.round(100*wb(this._g,255))+"%, "+Math.round(100*wb(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(yb[rb(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+ob(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=eb(e);n="#"+ob(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return eb(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(ub,arguments)},brighten:function(){return this._applyModification(cb,arguments)},darken:function(){return this._applyModification(sb,arguments)},desaturate:function(){return this._applyModification(ab,arguments)},saturate:function(){return this._applyModification(lb,arguments)},greyscale:function(){return this._applyModification(ib,arguments)},spin:function(){return this._applyModification(db,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(mb,arguments)},complement:function(){return this._applyCombination(vb,arguments)},monochromatic:function(){return this._applyCombination(hb,arguments)},splitcomplement:function(){return this._applyCombination(pb,arguments)},triad:function(){return this._applyCombination(fb,[3])},tetrad:function(){return this._applyCombination(fb,[4])}},eb.fromRatio=function(e,t){if("object"==Gy(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Pb(e[r]));e=n}return eb(e,t)},eb.equals=function(e,t){return!(!e||!t)&&eb(e).toRgbString()==eb(t).toRgbString()},eb.random=function(){return eb.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},eb.mix=function(e,t,n){n=0===n?0:n||50;var r=eb(e).toRgb(),o=eb(t).toRgb(),a=n/100;return eb({r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a})},eb.readability=function(e,t){var n=eb(e),r=eb(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},eb.isReadable=function(e,t,n){var r,o,a=eb.readability(e,t);switch(o=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":o=a>=4.5;break;case"AAlarge":o=a>=3;break;case"AAAsmall":o=a>=7}return o},eb.mostReadable=function(e,t,n){var r,o,a,l,i=null,u=0;o=(n=n||{}).includeFallbackColors,a=n.level,l=n.size;for(var c=0;cu&&(u=r,i=eb(t[c]));return eb.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,eb.mostReadable(e,["#fff","#000"],n))};var gb=eb.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},yb=eb.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(gb);function bb(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function wb(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Ob(e){return Math.min(1,Math.max(0,e))}function Cb(e){return parseInt(e,16)}function xb(e){return 1==e.length?"0"+e:""+e}function Pb(e){return e<=1&&(e=100*e+"%"),e}function jb(e){return Math.round(255*parseFloat(e)).toString(16)}function Sb(e){return Cb(e)/255}var kb,Nb,_b,Vb=(Nb="[\\s|\\(]+("+(kb="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+kb+")[,|\\s]+("+kb+")\\s*\\)?",_b="[\\s|\\(]+("+kb+")[,|\\s]+("+kb+")[,|\\s]+("+kb+")[,|\\s]+("+kb+")\\s*\\)?",{CSS_UNIT:new RegExp(kb),rgb:new RegExp("rgb"+Nb),rgba:new RegExp("rgba"+_b),hsl:new RegExp("hsl"+Nb),hsla:new RegExp("hsla"+_b),hsv:new RegExp("hsv"+Nb),hsva:new RegExp("hsva"+_b),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function Db(e){return!!Vb.CSS_UNIT.exec(e)}var Eb={closable:Boolean,color:{type:String,default:""},content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function,default:void 0},maxWidth:{type:[String,Number]},shape:{type:String,default:"square",validator:function(e){return!e||["square","round","mark"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","warning","danger","success"].includes(e)}},title:{type:String,default:""},variant:{type:String,default:"dark",validator:function(e){return!e||["dark","light","outline","light-outline"].includes(e)}},onClick:Function,onClose:Function},Fb=t.defineComponent({name:"TTag",props:Eb,setup:function(e){var n=qa("tag").globalConfig,r=Ga("tag"),o=up({CloseIcon:Cc}).CloseIcon,a=Ql(),l=ti(),i=Ja().SIZE,u=t.getCurrentInstance().vnode,c=t.computed((function(){return["".concat(r.value),"".concat(r.value,"--").concat(e.theme),"".concat(r.value,"--").concat(e.variant),s(s(s(s({},"".concat(r.value,"--ellipsis"),e.maxWidth),"".concat(r.value,"--close"),e.closable),"".concat(r.value,"--disabled"),e.disabled),i.value[e.size],"medium"!==e.size),"square"!==e.shape&&"".concat(r.value,"--").concat(e.shape)]})),d=t.computed((function(){return f()})),v=t.computed((function(){return e.maxWidth?{maxWidth:isNaN(Number(e.maxWidth))?String(e.maxWidth):"".concat(e.maxWidth,"px")}:{}})),f=function(){var t=e.color,n=e.variant;if(!t)return{};var r,o,a,l,i={color:eb(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=eb(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(e){var t=u.props||{};return Reflect.has(t,"title")?t.title||void 0:e||void 0}(Do(s)?s:"");return t.createVNode("div",{class:c.value,style:d.value,onClick:p},[f,t.createVNode("span",{class:e.maxWidth?"".concat(r.value,"--text"):void 0,style:v.value,title:m},[s]),!e.disabled&&i])}}}),Tb={checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,checkedProps:{type:Object},content:{type:[String,Number,Array,Function]},default:{type:[String,Function]},disabled:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},uncheckedProps:{type:Object},value:{type:[String,Number]},onChange:Function,onClick:Function},Ib=/^ArrowDown$/i,Mb=/^ArrowUp$/i,Ab=/^ArrowLeft$/i,Bb=/^ArrowRight$/i,Lb=/^Escape$/i,Rb=/^Space$/i,zb=/^Enter$/i,Hb=/^(Shift|ShiftLeft|ShiftRight)$/i,Wb=/^KeyC$/i,Kb=/^(KeyA|KeyL)$/i,Ub=/^(Enter|Space)$/i;function Yb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $b(e){for(var t=1;ts&&fv))return}null==r||r({currentIndex:a.value,current:l,target:n,targetIndex:t}),a.value=t}}};if(!n)return{};function s(e,t,n){a.value=t,l.value=n;var r=e.target;if(o&&r){var i=r.getBoundingClientRect(),c=i.x,s=i.width;u.nodeX=c,u.nodeWidth=s,u.mouseX=e.clientX}}function d(){i.value=!0}function v(){i.value,i.value=!1,a.value=-1,l.value=null}return{onDragStart:s,onDragOver:c,onDrop:d,onDragEnd:v,getDragProps:function(e,t){return n?{draggable:!0,onDragstart:function(n){s(n,e,t)},onDragover:function(n){c(n,e,t)},onDrop:function(){d()},onDragend:function(){v()}}:{}},dragging:-1!==a.value}}(rw(rw({},e),{},{sortOnDraggable:e.dragSort,onDragOverCheck:{x:!0,targetClassNameRegExp:new RegExp("^".concat(A.value,"-tag"))}})),R=L.getDragProps,z=function(e){var n=t.ref(),r=t.toRefs(e),o=r.excessTagsDisplayType,a=r.readonly,l=r.disabled,i=t.ref(0),u=t.ref(),c=t.ref(),s=t.ref(!1),d=function(e){var t=e.children[0];u.value=t},v=function(){i.value=u.value.scrollWidth-u.value.clientWidth},f=function(e){var t;H(null===(t=u.value)||void 0===t?void 0:t.scroll)&&u.value.scroll({left:e,behavior:"smooth"})},p=function(){v(),f(i.value),setTimeout((function(){s.value=!0}),200)};return t.onMounted((function(){var e,t=null===(e=n.value)||void 0===e?void 0:e.$el;t&&d(t)})),t.onUnmounted((function(){clearTimeout(c.value)})),{tagInputRef:n,scrollElement:u,scrollDistance:i,scrollTo:f,scrollToRight:p,scrollToLeft:function(){f(0)},updateScrollElement:d,updateScrollDistance:v,onWheel:function(e){var t=e.e;if(!a.value&&!l.value&&u.value)if(t.deltaX>0){var n=Math.min(u.value.scrollLeft+120,i.value);f(n)}else{var r=Math.max(u.value.scrollLeft-120,0);f(r)}},scrollToRightOnEnter:function(){"scroll"===o.value&&(c.value=setTimeout((function(){p(),clearTimeout(c.value)}),100))},scrollToLeftOnLeave:function(){"scroll"===o.value&&(s.value=!1,f(0),clearTimeout(c.value))},isScrollable:s}}(e),W=z.scrollToRight,K=z.onWheel,U=z.scrollToRightOnEnter,Y=z.scrollToLeftOnLeave,$=z.tagInputRef,Z=z.isScrollable,q=function(e){var n=Ql(),r=Ga(),o=t.toRefs(e),a=o.value,l=o.modelValue,u=o.onRemove,c=o.max,s=o.minCollapsedNum,d=o.size,v=o.tagProps,f=o.getDragProps,p=Ra(qm(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.computed((function(){return m.value||[]})),y=t.ref(),b=wi(),w=ly(),O=function(e){var t,n=i(g.value),r=Ra(n.splice(e.index,1),1)[0];h(n,tw(tw({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,tw(tw({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:g,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:O,onInnerEnter:function(t,n){var r,o=t?String(t).trim():"",a=c&&g.value.length>=c.value,l=g.value;!a&&o&&(l=g.value.concat(String(o)),h(l,{trigger:"enter",index:l.length-1,item:o,e:n.e})),null==e||null===(r=e.onEnter)||void 0===r||r.call(e,l,tw(tw({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){g.value.length&&(y.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(g.value.length&&"Process"!==n.key&&!w.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=g.value.length-1,l=g.value[a],i="backspace",c=g.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}y.value=e}},renderLabel:function(e){var o=e.displayNode,a=e.label,l=s.value?g.value.slice(0,s.value):g.value,i=o?[o]:l.map((function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(Gb,t.mergeProps({key:"".concat(e).concat(r),size:d.value,disabled:b.value,onClose:function(e){return O({e:e.e,index:r})},closable:!w.value&&!b.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})}))||[];if([null,void 0,""].includes(a)||i.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[a])),l.length!==g.value.length){var u=g.value.length-l.length,c=n("collapsedItems",{params:{value:g.value,count:g.value.length-s.value,collapsedTags:g.value.slice(s.value,g.value.length),collapsedSelectedItems:g.value.slice(s.value,g.value.length),onClose:O}});i.push(null!=c?c:t.createVNode(Gb,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",u]}}))}return i}}}(t.reactive(rw(rw({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed((function(){var t=!(j(X.value)&&X.value.length);return[l.value,s(s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),t),"".concat(A.value,"-tag-input--with-tag"),!t),"".concat(A.value,"-tag-input--drag-sort"),e.dragSort&&!f.value&&!v.value)]})),oe=t.computed((function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value})),ae=t.computed((function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||S.value))})),le=function(e,n){var r,o;null===(r=n.e)||void 0===r||null===(o=r.preventDefault)||void 0===o||o.call(r),k("",{e:n.e,trigger:"enter"}),!M.value&&G(e,n),t.nextTick((function(){W(),M.value=!1}))},ie=function(e,t){var n,r;M.value=!0,null===(n=h.value)||void 0===n||null===(r=n.onCompositionstart)||void 0===r||r.call(n,e,t)},ue=function(e,t){var n,r;M.value=!1,null===(n=h.value)||void 0===n||null===(r=n.onCompositionend)||void 0===r||r.call(n,e,t)},ce=function(t){var n,r;v.value||(B.value=!0,null===(n=$.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,t))},se=function(t){var n;ee(t),k("",{e:t.e,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,t)},de=function(e){T(e),U()},ve=function(e){I(e),Y()},fe=function(t,n){var r;B.value||(B.value=!0,null===(r=e.onFocus)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t}))},pe=function(t,n){var r;B.value=!1,k("",{e:n.e,trigger:"blur"}),null===(r=e.onBlur)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t})},me=function(e,t){k(e,rw(rw({},t),{},{trigger:"input"}))};return t.watch((function(){return Z.value}),(function(t){if("scroll"===e.excessTagsDisplayType){var n="".concat(A.value,"-input__prefix"),r=$.value.$el.querySelector(".".concat(n));t?r.classList.add("".concat(n,"--scrollable")):r.classList.remove("".concat(n,"--scrollable"))}})),function(){var e,n,a=ae.value?t.createVNode(d,{class:u.value,onClick:se},null):o("suffixIcon"),l=o("prefixIcon"),i="".concat(A.value,"-tag-input__with-suffix-icon");a&&!re.value.includes(i)&&re.value.push(i);var c=o("valueDisplay",{params:{value:X.value,onClose:function(e){return ne({index:e})}}}),s=o("label",{silent:!0}),p=f.value||(null===(e=h.value)||void 0===e?void 0:e.readonly);return t.createVNode(Oy,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:S.value,autoWidth:!0,size:y.value,disabled:v.value,label:function(){return te({displayNode:c,label:s})},class:re.value,tips:b.value,status:w.value,placeholder:oe.value,suffix:O.value,suffixIcon:function(){return a},prefixIcon:function(){return l},keepWrapperWidth:!C.value,onWheel:K,onChange:me,onPaste:x.value,onEnter:le,onKeyup:J,onKeydown:Q,onMouseenter:de,onMouseleave:ve,onFocus:fe,onBlur:pe,onClick:ce,onCompositionstart:ie,onCompositionend:ue},h.value),{suffix:r.suffix})}}}),aw=fi(ow),lw=["tips"];function iw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uw(e){for(var t=1;t=e.offsetWidth?t.offsetWidth:e.offsetWidth,a={};return r.value&&"object"===u(r.value.overlayInnerStyle)&&!r.value.overlayInnerStyle.width&&(a=r.value.overlayInnerStyle),dw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return dw({width:"".concat(Math.max(e.offsetWidth,t.offsetWidth),"px")},null===(n=r.value)||void 0===n?void 0:n.overlayInnerStyle)};return{tOverlayInnerStyle:t.computed((function(){var e,t=(null===(e=r.value)||void 0===e?void 0:e.overlayInnerStyle)||{};return H(t)||E(t)&&t.width?t:o.value?s:c})),innerPopupVisible:a,onInnerPopupVisibleChange:function(t,n){if(!l.value&&!i.value){var r,o=!("trigger-element-click"!==n.trigger||!e.allowInput)||t;if(e.popupVisible!==o)a.value=o,null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,o,n)}}}}var fw=["tips"];function pw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mw(e){for(var t=1;t=0||e.multiple&&(null===(r=I.value)||void 0===r||null===(o=r.focus)||void 0===o||o.call(r))};return n.expose({popupRef:f,allowInput:O}),function(){var e,r,o={visible:null!==(e=g.value)&&void 0!==e?e:j.value},a=t.createVNode(Nh,t.mergeProps({ref:f,trigger:(null===(r=b.value)||void 0===r?void 0:r.trigger)||"click",placement:"bottom-left"},o,{content:w.value,hideEmptyPopup:!0},ww(ww({onVisibleChange:S,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),ww({default:function(){return[m.value?M({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},ww(ww({},n.slots),{},{content:n.slots.panel}))),l=d("tips"),i=["".concat(c.value,"-input__tips"),"".concat(c.value,"-tips"),"".concat(c.value,"-is-").concat(C.value)];return t.createVNode("div",{ref:v,class:B.value},[a,l&&t.createVNode("div",{class:i},[l])])}}}),Cw=fi(Ow),xw={checkAll:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,label:{type:String,default:""},title:{type:String,default:""},value:{type:[String,Number,Boolean]}},Pw={checkAll:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:{type:[String,Function]},lazyLoad:Boolean,name:{type:String,default:""},readonly:{type:Boolean,default:void 0},title:{type:String,default:""},value:{type:[String,Number,Boolean]},onChange:Function},jw=Symbol("CheckboxGroupProvide");function Sw(e,t,n,r){if("undefined"==typeof window)return null;if(!window||!window.IntersectionObserver)return n(),null;var o=null;try{(o=new window.IntersectionObserver((function(t){t[0].isIntersecting&&(n(),o.unobserve(e))}),{rootMargin:"0px 0px ".concat(r,"px 0px"),root:t})).observe(e)}catch(e){console.error(e),n()}return o}function kw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nw(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Iw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n((null===(r=e.scroll)||void 0===r?void 0:r.threshold)||100)})),u="virtual"===(null===(n=e.scroll)||void 0===n?void 0:n.type)?function(e){var n=e.data,r=e.container,o=e.fixedHeight,a=void 0!==o&&o,l=e.lineHeight,i=void 0===l?30:l,u=e.bufferSize,c=void 0===u?20:u,s=e.threshold,d=void 0===s?100:s,v=t.reactive({visibleData:[],cachedHeight:[],cachedScrollY:[]}),f=t.computed((function(){return n.value.length>d})),p=t.ref(0),m=new Map,h=0,g=0,y=0,b=0,w=0,O=0,C=function(){n.value.forEach((function(e,t){e.$index=t,a&&(v.cachedScrollY[t]=t*i)})),a||(v.cachedScrollY[n.value.length-1]=void 0)};C();var x=t.computed((function(){var e=v.cachedHeight;if(e.length){var t=e.reduce((function(e,t){return e+t||i}),0);if(e.length===n.value.length)return t;var r=t/e.length;return t+(n.value.length-e.length)*r}return f.value?n.value.length*i:0})),P=t.computed((function(){var e=v.visibleData,t=e[0];return t?1===e.length?0:v.cachedScrollY[t.$index]:0})),j=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},S=function(){var e,o=m.get(y);if(o){var a=null==o||null===(e=o.getBoundingClientRect())||void 0===e?void 0:e.height;v.cachedScrollY[y]=r.value.scrollTop-b,v.cachedHeight[y]=a;for(var l=y+1;l<=(null===(i=v.visibleData[v.visibleData.length-1])||void 0===i?void 0:i.$index);l++){var i,u=m.get(l),c=((null==u?void 0:u.getBoundingClientRect())||{}).height;v.cachedHeight[l]=c;var s=v.cachedScrollY[l-1]+v.cachedHeight[l-1];v.cachedScrollY.splice(l,1,s)}for(var d=y-1;d>=(null===(f=v.visibleData[0])||void 0===f?void 0:f.$index);d--){var f,p=m.get(d),h=((null==p?void 0:p.getBoundingClientRect())||{}).height;v.cachedHeight[d]=h;var C=v.cachedScrollY[d+1]-v.cachedHeight[d];v.cachedScrollY.splice(d,1,C)}if(v.cachedScrollY[0]>0){for(var x=v.cachedScrollY[0],P=Math.min(O,n.value.length),j=0;j=w;o--)o===O-1?v.cachedScrollY.splice(o,1,n.value-v.cachedHeight[o]):v.cachedScrollY.splice(o,1,v.cachedScrollY[o+1]-v.cachedHeight[o])}))}};!a&&t.watch(p,S,{flush:"post"}),t.watch(n,(function(){C(),v.visibleData=[],v.cachedScrollY=[],v.cachedHeight=[],g=0,y=0,b=0,w=0,m.clear(),n.value.length<=d?v.visibleData=n.value:j(),r.value&&(r.value.scrollTop=0)}));var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),j())};return t.onMounted((function(){if(window&&window.IntersectionObserver){var e=new window.IntersectionObserver((function(t){var n=t[0];(n.isIntersecting||n.intersectionRatio)&&(k=!0,f.value&&N(),e.unobserve(r.value))}));r.value&&e.observe(r.value)}})),Zm(Zm({trs:m,scrollHeight:x},t.toRefs(v)),{},{translateY:P,handleScroll:function(){if(f.value){var e=r.value.scrollTop,t=e-g;g=e;var o=y;if(t+=b){if(t>=0){for(;o(v.cachedHeight[o]||i);)v.cachedHeight[o]||(v.cachedHeight[o]=i),t-=v.cachedHeight[o],o++;o>=n.value.length?(y=n.value.length-1,b=0):(y=o,b=t);var a=r.value;e+a.clientHeight===a.scrollHeight&&(y=n.value.length-h+1),w<=y-c&&(w=Math.min(n.value.length-h,y-c))<0&&(w=0)}else{for(;t<0;)o--,v.cachedHeight[o]||(v.cachedHeight[o]=i),t+=v.cachedHeight[o];o<0?(y=0,b=0):(y=o,b=t),S(),w>y-c&&(w=Math.max(0,y-c))}j()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:S})}({container:e.popupContentRef,data:e.options,fixedHeight:(null===(r=e.scroll)||void 0===r?void 0:r.isFixedRowHeight)||!1,lineHeight:(null===(o=e.scroll)||void 0===o?void 0:o.rowHeight)||28,bufferSize:(null===(a=e.scroll)||void 0===a?void 0:a.bufferSize)||20,threshold:(null===(l=e.scroll)||void 0===l?void 0:l.threshold)||100}):{},c=u.trs,s=void 0===c?null:c,d=u.visibleData,v=void 0===d?null:d,f=u.handleScroll,p=void 0===f?null:f,m=u.scrollHeight,h=void 0===m?null:m,g=u.translateY,y=void 0===g?null:g,b=u.handleRowMounted,w=void 0===b?null:b,O=-1,C=function(e){if(i.value){var t=e.target.scrollTop;Math.abs(O-t)>5?(p(),O=t):O=-1}};t.onMounted((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.addEventListener("scroll",C)})),t.onBeforeUnmount((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.removeEventListener("scroll",C)}));var x=t.computed((function(){return{position:"absolute",width:"1px",height:"1px",transition:"transform 0.2s",transform:"translate(0, ".concat(h.value,"px)"),"-ms-transform":"translate(0, ".concat(h.value,"px)"),"-moz-transform":"translate(0, ".concat(h.value,"px)"),"-webkit-transform":"translate(0, ".concat(h.value,"px)")}})),P=t.computed((function(){return{transform:"translate(0, ".concat(y.value,"px)"),"-ms-transform":"translate(0, ".concat(y.value,"px)"),"-moz-transform":"translate(0, ".concat(y.value,"px)"),"-webkit-transform":"translate(0, ".concat(y.value,"px)")}}));return{trs:s,scrollHeight:h,translateY:y,visibleData:v,handleRowMounted:w,isVirtual:i,cursorStyle:x,panelStyle:P}};var Yw=t.defineComponent({name:"TSelectPanel",props:{inputValue:Kw.inputValue,panelTopContent:Kw.panelTopContent,panelBottomContent:Kw.panelBottomContent,empty:Kw.empty,creatable:Kw.creatable,loading:Kw.loading,loadingText:Kw.loadingText,multiple:Kw.multiple,filterable:Kw.filterable,filter:Kw.filter,scroll:Kw.scroll,size:Kw.size},setup:function(e,n){var r=n.expose,o=Ga("select"),a=Ql(),l=ei(),i=qa("select"),u=i.t,c=i.globalConfig,s=t.inject(Bw),d=t.ref(null),v=t.computed((function(){return s.value.popupContentRef.value})),f=t.computed((function(){return e.creatable&&e.filterable&&e.inputValue})),p=t.computed((function(){return s.value.displayOptions})),m=Uw({scroll:e.scroll,popupContentRef:v,options:p}),h=m.trs,g=m.visibleData,y=m.handleRowMounted,b=m.isVirtual,w=m.panelStyle,O=m.cursorStyle,C=t.computed((function(){return!p.value.length})),x=function(n){return t.createVNode("ul",{class:"".concat(o.value,"__list")},[n.map((function(n,r){var o,a,l,i;return n.children?t.createVNode(Ww,{label:n.group,divider:n.divider},"function"==typeof(i=l=x(n.children))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?l:{default:function(){return[l]}}):t.createVNode(zw,t.mergeProps(ta(n,"index","$index","className","tagName"),b.value?{rowIndex:n.$index,trs:h,scrollType:null===(o=e.scroll)||void 0===o?void 0:o.type,isVirtual:b.value,bufferSize:null===(a=e.scroll)||void 0===a?void 0:a.bufferSize,key:"".concat(n.$index||"","_").concat(r,"_").concat(n.value)}:{key:"".concat(r,"_").concat(n.value)},{index:r,multiple:e.multiple,onRowMounted:y}),n.slots)}))])},P=t.computed((function(){return{small:"s",medium:"m",large:"l"}[s.value.size]}));r({innerRef:d,visibleData:g,isVirtual:b,displayOptions:p});return{renderPanel:function(n,r){return t.createVNode("div",{ref:d,class:["".concat(o.value,"__dropdown-inner"),"".concat(o.value,"__dropdown-inner--size-").concat(P.value)],style:r},[f.value&&t.createVNode("ul",{class:["".concat(o.value,"__create-option"),"".concat(o.value,"__list")]},[t.createVNode(zw,{value:e.inputValue,label:"".concat(e.inputValue),createAble:!0,class:"".concat(o.value,"__create-option--special")},null)]),e.loading&&l("loadingText",{defaultNode:t.createVNode("div",{class:"".concat(o.value,"__loading-tips")},[u(c.value.loadingText)])}),!e.loading&&C.value&&!f.value&&t.createVNode("div",{class:"".concat(o.value,"__empty")},[a("empty")||u(c.value.empty)]),!C.value&&x(n)])},panelStyle:w,cursorStyle:O,isVirtual:b,displayOptions:p,visibleData:g,renderTNodeJSX:a}},render:function(){return this.isVirtual?t.createVNode(t.Fragment,null,[this.renderTNodeJSX("panelTopContent"),t.createVNode("div",null,[t.createVNode("div",{style:this.cursorStyle},null),this.renderPanel(this.visibleData,this.panelStyle)]),this.renderTNodeJSX("panelBottomContent")]):t.createVNode(t.Fragment,null,[this.renderTNodeJSX("panelTopContent"),this.renderPanel(this.displayOptions),this.renderTNodeJSX("panelBottomContent")])}});function $w(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Zw(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Zw(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Zw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Qw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},d=t.computed((function(){if(e.onSearch&&e.filterable)return l.value;if(!r.value||!e.filterable&&!H(e.filter))return l.value;var t,n=[];if(l.value.forEach((function(e){e.children&&n.push(Xw(Xw({},e),{},{children:e.children.filter(s)})),!0===(null==e?void 0:e.checkAll)&&(t=e),s(e)&&n.push(e)})),!H(e.filter)){var o=n.filter((function(e){return e.label===r.value})),a=n.filter((function(e){return e.label!==r.value}));n=o.concat(a)}return n.length&&t?[t].concat(i(n)):n}));return{options:l,optionsMap:c,optionsList:u,optionsCache:a,displayOptions:d,filterMethods:s}}(e,N,w),V=_.optionsMap,D=_.optionsList,E=_.optionsCache,F=_.displayOptions,T=_.filterMethods,I=t.computed((function(){return void 0===x.value?e.multiple?[]:void 0:"object"===e.valueType?e.multiple?x.value.map((function(e){return e[N.value.value]})):x.value[N.value.value]:x.value})),M=function(t,n){if("object"===e.valueType){var r=N.value,o=r.value,a=r.label,l=function(e){if(void 0!==e){var t=V.value.get(e);return s(s({},o,St(t,"value")),a,St(t,"label"))}};t=e.multiple?t.map((function(e){return l(e)})):l(t)}var i;t!==x.value&&(e.multiple&&!e.reserveKeyword&&"check"==n.trigger&&O(""),P(t,tO({selectedOptions:X(t)},n)),e.multiple&&"uncheck"===n.trigger&&n.option&&(null===(i=e.onRemove)||void 0===i||i.call(e,{value:St(n.option,N.value.value),data:n.option,e:n.e})))},A=Ra(Um(m,!1,(function(t,n){var r;null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,t,n)}),"popupVisible"),2),B=A[0],L=A[1],R=t.computed((function(){var t;return null!==(t=!e.multiple&&B.value&&Mw(I.value,V)||e.placeholder)&&void 0!==t?t:f(v.value.placeholder)})),z=t.computed((function(){return e.multiple?function(e,t){var n,r=[],o=Tw(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=Mw(a,t);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}return r}(I.value,V):Mw(I.value,V)})),W=t.computed((function(){var t,n=e.multiple&&j(I.value)?I.value.map((function(e){var t;return{value:e,label:null===(t=V.value.get(e))||void 0===t?void 0:t.label}})):I.value,r={value:n,onClose:e.multiple?function(e){return Y(e)}:function(){}};return e.multiple||Object.assign(r,{label:z.value}),e.minCollapsedNum&&e.multiple?tO(tO({},r),{},{displayValue:null==n||null===(t=n.slice)||void 0===t?void 0:t.call(n,0,e.minCollapsedNum)}):r})),K=t.computed((function(){return Boolean(e.filterable||v.value.filterable||H(e.filter))})),U=t.computed((function(){return Boolean((e.filterable||v.value.filterable)&&H(e.onSearch))})),Y=function(t,n){var r,o=n||{},a=o.e,l=o.trigger,i=void 0===l?"tag-remove":l;a&&a.stopPropagation();var u=Mr(I.value),c=u[t];u.splice(t,1),"clear"!==i&&M(u,{selectedOptions:X(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:V.value.get(c),e:a})},$=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),B.value||O(""))},Z=t.computed((function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()})),q=t.computed((function(){return D.value.filter((function(e){return!e.disabled&&!(e["check-all"]||""===e["check-all"])&&!e.checkAll&&T(e)}))})),X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I.value;return D.value.filter((function(t){if(!t.checkAll)return j(e)?e.includes(t.value):e===t.value}))},G=function(t){if(e.multiple){var n=N.value.value,r=I.value.filter((function(e){return D.value.find((function(t){return t.value===e&&t.disabled}))})),o=q.value.map((function(e){return e.value})),a="object"===e.valueType?x.value.map((function(e){return St(e,n)})):x.value,l=i(t?new Set([].concat(i(a),i(o),i(r))):r);M(l,{selectedOptions:X(l),trigger:t?"check":"clear"})}},J=t.computed((function(){return 0!==oe.value&&oe.value===q.value.length})),Q=function(e){var n=e.displayOptions,r=e.optionsList,o=e.innerPopupVisible,a=e.setInnerPopupVisible,l=e.selectPanelRef,i=e.isFilterable,u=e.isRemoteSearch,c=e.getSelectedOptions,s=e.setInnerValue,d=e.onCheckAllChange,v=e.innerValue,f=e.popupContentRef,p=e.multiple,m=e.max,h=e.isCheckAll,g=t.ref(-1),y=t.ref([]),b=t.ref([]),w=Ga();return t.watch(o,(function(e){e&&(g.value=-1,b.value=[],y.value=[])})),t.watch(g,(function(e){var t,n=(null===(t=l.value)||void 0===t||null===(t=t.innerRef)||void 0===t||null===(t=t.querySelector(".".concat(w.value,"-select-option")))||void 0===t?void 0:t.clientHeight)*e;f.value.scrollTo({top:n,behavior:"smooth"})})),{hoverIndex:g,handleKeyDown:function(e){var t,f,w=n.value.length,O=g.value;switch(e.code){case"ArrowUp":e.preventDefault(),-1===g.value?O=0:0===g.value||g.value>n.value.length-1?O=w-1:O--,null!==(t=r.value[O])&&void 0!==t&&t.disabled&&O--,g.value=O;break;case"ArrowDown":e.preventDefault(),-1===g.value||g.value>=w-1?O=0:O++,null!==(f=r.value[O])&&void 0!==f&&f.disabled&&O++,g.value=O;break;case"Enter":if(-1===g.value)break;var C=l.value.isVirtual&&i.value&&b.value.length?b.value:u.value?r.value:y.value;if(C.length||(C=r.value),!o.value){a(!0,{e:e});break}if(p){var x;if(-1===g.value)return;if(C[g.value].checkAll)return void d(!h.value);var P=null===(x=C[g.value])||void 0===x?void 0:x.value;if(!P)return;var j=Aw(v.value,P);if(m>0&&j.value.length>m)return;var S=c(j.value);s(j.value,{option:S.find((function(e){return e.value==P})),selectedOptions:S,trigger:j.isCheck?"check":"uncheck",e:e}),y.value=[]}else{var k=c(C[g.value].value);s(C[g.value].value,{option:null==k?void 0:k[0],selectedOptions:c(C[g.value].value),trigger:"check",e:e}),a(!1,{e:e})}break;case"Escape":a(!1,{e:e})}},virtualFilteredOptions:b,filteredOptions:y}}({displayOptions:F,optionsList:D,innerPopupVisible:B,setInnerPopupVisible:L,selectPanelRef:S,isFilterable:K,isRemoteSearch:U,getSelectedOptions:X,setInnerValue:M,onCheckAllChange:G,isCheckAll:J,innerValue:I,popupContentRef:Z,multiple:e.multiple,max:e.max}),ee=Q.hoverIndex,te=Q.virtualFilteredOptions,ne=Q.handleKeyDown,re=Q.filteredOptions,oe=t.computed((function(){var e=q.value.map((function(e){return e.value}));return Io(I.value,e).length})),ae=t.computed((function(){return!J.value&&0!==oe.value})),le=t.computed((function(){return{max:e.max,multiple:e.multiple,hoverIndex:ee.value,selectValue:I.value,reserveKeyword:e.reserveKeyword,handleValueChange:M,handlerInputChange:O,handlePopupVisibleChange:L,handleCreate:$,size:e.size,popupContentRef:Z,indeterminate:ae.value,isCheckAll:J.value,onCheckAllChange:G,getSelectedOptions:X,displayOptions:F.value,emitBlur:se}}));t.provide(Bw,le);var ie=function(){!e.multiple&&j(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!j(x.value)&&P([],{selectedOptions:[],trigger:"default"})},ue=po((function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})}),300),ce=function(e,n){e&&!B.value&&L(!0,{e:n.e}),O(e),ue("".concat(e),{e:n.e}),t.nextTick((function(){var e,t;te.value=null===(e=S.value)||void 0===e?void 0:e.visibleData,re.value=null===(t=S.value)||void 0===t?void 0:t.displayOptions}))},se=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:I.value})},de=function(e,t){L(e,t),e&&"trigger-element-click"===t.trigger&&O("")},ve=function(){var t=Bf(Hf.mark((function t(n){var r,o,a;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=3;break}return t.abrupt("return");case 3:null==a||null===(r=a["on-scroll-to-bottom"])||void 0===r||r.call(a,n),null==a||null===(o=a.onScrollToBottom)||void 0===o||o.call(a,n);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();t.watch(x,(function(n){ie(),t.nextTick((function(){!function(t){if(e.multiple){var n,r=[],o=Jw(t||[]);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=V.value.get(a);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}E.value=Array.from(new Set([].concat(r,i(E.value))))}else{var u=V.value.get(t);u&&(E.value=Array.from(new Set([u].concat(i(E.value)))))}}(n)}))}),{immediate:!0}),t.watch((function(){return e.multiple}),(function(){ie()}));return t.provide("updateScrollTop",(function(e){var n;if(S.value){var r=null===(n=S.value)||void 0===n||null===(n=n.innerRef)||void 0===n?void 0:n.querySelector(".".concat(o.value,"-is-selected"));t.nextTick((function(){if(r&&e){var t=getComputedStyle(r).paddingBottom,n=getComputedStyle(e).marginBottom,o=parseInt(t,10)+parseInt(n,10),a=r.offsetTop-e.offsetTop-(e.clientHeight-r.clientHeight)+o;e.scrollTop=a}}))}})),function(){var n=e.popupProps||{},o=n.overlayClassName,i=el(n,Gw);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(Cw,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:u("tips"),minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:k,class:c.value,value:z.value,disabled:a.value,popupVisible:B.value,inputValue:B.value?w.value:"",placeholder:"".concat(R.value),allowInput:K.value,"collapsed-items":e.collapsedItems,inputProps:tO(tO({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ne}),tagInputProps:tO({size:e.size},e.tagInputProps),onTagChange:function(e,t){Y(t.index,t)},tagProps:tO({},e.tagProps),popupProps:tO(tO({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:ve}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(Kg,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:B.value},null)},valueDisplay:function(){return u("valueDisplay",{params:W.value})},onPopupVisibleChange:de,onInputChange:ce,onClear:function(t){var n,r=t.e;M(e.multiple?[]:void 0,{option:null,selectedOptions:X(e.multiple?[]:void 0),trigger:"clear",e:r}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onEnter:function(t,n){var r=n.e;setTimeout((function(){var t;null===(t=e.onEnter)||void 0===t||t.call(e,{inputValue:"".concat(w.value),e:r,value:I.value}),$()}),0)},onBlur:function(t,n){var r,o=n.e;null===(r=e.onBlur)||void 0===r||r.call(e,{e:o,value:I.value})},onFocus:function(t,n){var r,o=n.e;null===(r=e.onFocus)||void 0===r||r.call(e,{e:o,value:I.value})}},e.selectInputProps),{label:r.label,prefixIcon:r.prefixIcon,suffix:r.suffix,panel:function(){return t.createVNode(Yw,t.mergeProps({ref:S},xa(e,["size","multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),rO=fi(nO),oO=fi(zw),aO=fi(Ww),lO={append:{type:[String,Function]},prepend:{type:[String,Function]}},iO=t.defineComponent({name:"TInputAdornment",inheritAttrs:!1,props:lO,setup:function(e,n){var r=n.slots,o=Ga("input-adornment"),a=Ql(),l=function(e,n,a){var l,i=Do(a)||Ho(a);return r[n]||!Do(a)||a?(l=r[n]?1===r[n](null).length&&"string"==typeof r[n](null)[0].children?t.createVNode("span",{class:"".concat(o.value,"__text")},[r[n](null)]):r[n](null):H(a)?a(e):i?t.createVNode("span",{class:"".concat(o.value,"__text")},[a]):a)?t.createVNode("span",{class:"".concat(o.value,"__").concat(n)},[l]):l:null};return function(){var n=l(t.h,"prepend",e.prepend),r=l(t.h,"append",e.append),i=a("default")||[null],u=[o.value,s(s({},"".concat(o.value,"--prepend"),n),"".concat(o.value,"--append"),r)];return n||r?t.createVNode("div",{class:u},[n,i[0],r]):i[0]}}}),uO=fi(iO),cO={current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number,default:1},disabled:Boolean,foldedMaxPageBtn:{type:Number,default:5},maxPageBtn:{type:Number,default:10},pageEllipsisMode:{type:String,default:"mid",validator:function(e){return!e||["mid","both-ends"].includes(e)}},pageSize:{type:Number,default:void 0},defaultPageSize:{type:Number,default:10},pageSizeOptions:{type:Array,default:function(){return[5,10,20,50]}},selectProps:{type:Object},showFirstAndLastPageBtn:Boolean,showJumper:Boolean,showPageNumber:{type:Boolean,default:!0},showPageSize:{type:Boolean,default:!0},showPreviousAndNextBtn:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","simple"].includes(e)}},total:{type:Number,default:0},totalContent:{type:[Boolean,Function],default:!0},onChange:Function,onCurrentChange:Function,onPageSizeChange:Function};var sO=["pageCount"],dO=t.defineComponent({name:"TPagination",props:cO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=Ql(),u=Ra(qm(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ra(Um(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=qa("pagination"),h=m.t,g=m.globalConfig,y=Ga("pagination"),b=up({PageFirstIcon:bd,PageLastIcon:Pd,ChevronLeftIcon:Yu,ChevronRightIcon:ic,ChevronLeftDoubleIcon:zu,ChevronRightDoubleIcon:nc,EllipsisIcon:$c}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,j=b.ChevronRightDoubleIcon,S=b.EllipsisIcon,k=function(e,n,r,o){var a=Ja(),l=a.SIZE,i=a.STATUS,u=t.computed((function(){var t=Math.ceil(e.total/r.value);return t>0?t:1})),c=t.computed((function(){return["".concat(o.value),l.value[e.size],s(s({},i.value.disabled,e.disabled),"".concat(o.value,"-ie"),ol()<11),"simple"===e.theme?"".concat(o.value,"--simple"):""]})),d=t.computed((function(){return["".concat(o.value,"__total")]})),v=t.computed((function(){return["".concat(o.value,"__select")]})),f=t.computed((function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-prev"),s({},i.value.disabled,e.disabled||1===n.value)]})),p=t.computed((function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-next"),s({},i.value.disabled,e.disabled||n.value===u.value)]})),m=t.computed((function(){return["".concat(o.value,"__pager")]})),h=t.computed((function(){return["".concat(o.value,"__number"),"".concat(o.value,"__number--more"),s({},i.value.disabled,e.disabled)]})),g=t.computed((function(){return["".concat(o.value,"__jump")]})),y=t.computed((function(){return["".concat(o.value,"__input")]})),b=t.computed((function(){return["".concat(o.value,"__select")]}));return{pageCount:u,paginationClass:c,totalClass:d,sizerClass:v,preBtnClass:f,nextBtnClass:p,btnWrapClass:m,btnMoreClass:h,jumperClass:g,jumperInputClass:y,simpleClass:b,getButtonClass:function(t){return["".concat(o.value,"__number"),s(s({},i.value.disabled,e.disabled),i.value.current,n.value===t)]}}}(e,c,f,y),N=k.pageCount,_=el(k,sO),V=function(e,n,r){var o=t.ref(!1),a=t.ref(!1),l=t.computed((function(){return Math.ceil((e.foldedMaxPageBtn-1)/2)})),i=t.computed((function(){return Math.floor((e.foldedMaxPageBtn-1)/2)})),u=t.computed((function(){return 2+l.valuer.value}));return{prevMore:o,nextMore:a,curPageLeftCount:l,curPageRightCount:i,isPrevMoreShow:u,isNextMoreShow:c}}(e,N,c),D=V.prevMore,F=V.isPrevMoreShow,T=V.curPageLeftCount,I=V.nextMore,M=V.isNextMoreShow,A=V.curPageRightCount,B=t.ref(c.value),L=t.computed((function(){return N.value>e.maxPageBtn})),R=t.computed((function(){return e.pageSizeOptions.map((function(e){return E(e)?e:{label:h(g.value.itemsPerPage,{size:e}),value:Number(e)}})).sort((function(e,t){return e.value-t.value}))})),z=t.computed((function(){return"mid"===e.pageEllipsisMode})),H=t.computed((function(){var t,n,r=[];if(L.value)if(F.value&&M.value)t=c.value-T.value,n=c.value+A.value;else{var o=z.value?2:1,a=z.value?N.value-1:N.value;t=F.value?Math.min(c.value-1,N.value-e.foldedMaxPageBtn+1):o,n=M.value?Math.max(c.value+1,e.foldedMaxPageBtn):a}else t=1,n=N.value;for(var l=t;l<=n;l++)r.push(l);return r}));t.watch((function(){return N.value}),(function(){c.value>N.value&&(c.value=1)})),t.watch((function(){return c.value}),(function(e){return B.value=e}));var W=function(t,r){if(!e.disabled){var o=t;if(t<1?o=1:t>N.value&&(o=N.value),c.value!==o){var a,l=c.value;if(r=r||{current:o,previous:l,pageSize:f.value})d(o,r),null===(a=e.onChange)||void 0===a||a.call(e,r);else n("update:modelValue",o)}}},K=function(t){({prevPage:function(){return W(c.value-1)},nextPage:function(){return W(c.value+1)},prevMorePage:function(){return W(Math.max(2,c.value-e.foldedMaxPageBtn))},nextMorePage:function(){return W(Math.min(c.value+e.foldedMaxPageBtn,N.value-1))}})[t]()},U=function(t){if(!e.disabled){var n=parseInt(t,10),r=1;n>0&&(r=Math.max(Math.ceil(e.total/n),1));var o=!1;c.value>r&&(o=!0);var a,l={current:o?r:c.value,previous:c.value,pageSize:n};if(p(n,l),o)W(r,l);else null===(a=e.onChange)||void 0===a||a.call(e,l)}},Y=function(e){var t,n=Math.trunc(+e);Ho(t=n)&&t!=+t||(B.value=n,W(n))};return function(){var n=e.total,r=e.pageSizeOptions,o=e.size,a=e.disabled,l=e.showPageSize;if(N.value<1)return null;var u=t.createVNode("div",{class:_.jumperClass.value},[h(g.value.jumpTo),t.createVNode(uO,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Zy,{class:_.jumperInputClass.value,modelValue:B.value,"onUpdate:modelValue":function(e){return B.value=e},onBlur:Y,onEnter:Y,max:N.value,min:1,size:o,disabled:a,theme:"normal",placeholder:""},null)]}})]);return t.createVNode("div",{class:_.paginationClass.value},[i("totalContent",t.createVNode("div",{class:_.totalClass.value},[h(g.value.total,{total:n})])),l&&r.length>0&&t.createVNode(rO,t.mergeProps({size:o,value:f,disabled:a,class:_.sizerClass.value,autoWidth:!0,onChange:U,options:R.value},e.selectProps),null),e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return W(1)}},[t.createVNode(w,null,null)]):null,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return K("prevPage")}},[t.createVNode(C,null,null)]):null,e.showPageNumber&&"default"===e.theme?t.createVNode("ul",{class:_.btnWrapClass.value},[L.value&&z.value&&t.createVNode("li",{class:_.getButtonClass(1),onClick:function(){return W(1)}},[1]),L.value&&F.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("prevMorePage")},onMouseover:function(){return D.value=!0},onMouseout:function(){return D.value=!1}},[D.value?t.createVNode(P,null,null):t.createVNode(S,null,null)]):null,H.value.map((function(e){return t.createVNode("li",{class:_.getButtonClass(e),key:e,onClick:function(){return W(e)}},[e])})),L.value&&M.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("nextMorePage")},onMouseover:function(){return I.value=!0},onMouseout:function(){return I.value=!1}},[I.value?t.createVNode(j,null,null):t.createVNode(S,null,null)]):null,L.value&&z.value?t.createVNode("li",{class:_.getButtonClass(N.value),onClick:function(){return W(N.value)}},[N.value]):null]):null,"simple"===e.theme&&u,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return K("nextPage")}},[t.createVNode(x,null,null)]):null,e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return W(N.value)}},[t.createVNode(O,null,null)]):null,"default"===e.theme&&e.showJumper&&u])}}}),vO={disabled:{type:[Boolean,Object]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},showCurrent:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},tips:{type:Object},variant:{type:String,default:"text",validator:function(e){return!e||["text","outline"].includes(e)}},onChange:Function},fO=t.defineComponent({name:"TPaginationMini",props:vO,setup:function(e){var n=Ga("pagination-mini"),r=up({ChevronLeftIcon:Yu,RoundIcon:Ld,ChevronRightIcon:ic,ChevronUpIcon:vc,ChevronDownIcon:Mu}),o=r.ChevronLeftIcon,a=r.RoundIcon,l=r.ChevronRightIcon,i=r.ChevronUpIcon,u=r.ChevronDownIcon,c=t.computed((function(){return E(e.tips)?e.tips:!0===e.tips?{prev:"\u4e0a\u4e00\u9875",current:"\u5f53\u524d",next:"\u4e0b\u4e00\u9875"}:{}})),d=t.computed((function(){return E(e.disabled)?e.disabled:!0===e.disabled?{prev:!0,current:!0,next:!0}:{prev:!1,current:!1,next:!1}}));return function(){var r=[n.value,s({},"".concat(n.value,"--outline"),"outline"===e.variant)];return t.createVNode("div",{class:r},[t.createVNode(Pi,{title:c.value.prev,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"prev"})},icon:"horizontal"===e.layout?function(){return t.createVNode(o,null,null)}:function(){return t.createVNode(i,null,null)},class:"".concat(n.value,"__prev"),disabled:d.value.prev},null),e.showCurrent&&t.createVNode(Pi,{title:c.value.current,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"current"})},icon:function(){return t.createVNode(a,null,null)},class:"".concat(n.value,"__current"),disabled:d.value.current},null),t.createVNode(Pi,{title:c.value.next,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"next"})},icon:"horizontal"===e.layout?function(){return t.createVNode(l,null,null)}:function(){return t.createVNode(u,null,null)},class:"".concat(n.value,"__next"),disabled:d.value.next},null)])}}}),pO=fi(dO),mO=fi(fO),hO={current:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultCurrent:{type:[String,Number]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},options:{type:Array},readonly:{type:Boolean,default:void 0},separator:{type:String,default:"line",validator:function(e){return!e||["line","dashed","arrow"].includes(e)}},sequence:{type:String,default:"positive",validator:function(e){return!e||["positive","reverse"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}},onChange:Function},gO={content:{type:[String,Function],default:""},default:{type:[String,Function]},extra:{type:[String,Function]},icon:{type:[Boolean,Function],default:!0},status:{type:String,default:"default",validator:function(e){return!e||["default","process","finish","error"].includes(e)}},title:{type:[String,Function],default:""},value:{type:[String,Number]}};function yO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bO(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=hf(),s=function(){var t,n;null!==(t=e.options)&&void 0!==t&&t.length?n="reverse"===e.sequence?e.options.slice().reverse():e.options:n=function(t){var n=[];return null==t||t.forEach((function(t){var r=(null==t?void 0:t.props)||{},o=null==t?void 0:t.children;if(r||o){if(o&&E(o))for(var a in o)a in gO&&!r[a]&&(r[a]=o[a]);"reverse"===e.sequence?n.unshift(r):n.push(r)}})),n}(c("StepItem"));return(n||[]).forEach((function(e,t){void 0!==e.value&&(i.value[e.value]=t)})),n},d=t.computed((function(){return[n.value,"".concat(n.value,"--").concat(e.layout),"".concat(n.value,"--").concat((t=e.theme,s().forEach((function(e){void 0!==(null==e?void 0:e.icon)&&(t="default")})),t),"-anchor"),"".concat(n.value,"--").concat(e.sequence),"".concat(n.value,"--").concat(e.separator,"-separator")];var t}));return function(){return t.createVNode("div",{class:d.value},[(n=s(),n.map((function(r,o){var a="reverse"===e.sequence?n.length-o-1:o;return o=void 0!==r.value?o:a,t.createVNode(wO,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)})))]);var n}}}),CO=fi(OO),xO=fi(wO),PO={list:{type:Array,default:function(){return[]}},offset:{type:Array},placement:{type:String,default:"right-bottom",validator:function(e){return!e||["right-top","right-center","right-bottom","left-top","left-center","left-bottom"].includes(e)}},popupProps:{type:Object},shape:{type:String,default:"square",validator:function(e){return!e||["square","round"].includes(e)}},type:{type:String,default:"normal",validator:function(e){return!e||["normal","compact"].includes(e)}},width:{type:[String,Number]},onClick:Function,onHover:Function},jO={icon:{type:Function},label:{type:[String,Function]},popup:{type:[String,Function]},popupProps:{type:Object},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}}};function SO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kO(e){for(var t=1;t=t&&(n.value=!0),r=f.value.length?0:i+1;l.value=null===(a=f.value[u])||void 0===a?void 0:a.text}else(zb.test(e.code)||zb.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){kl(document,"keydown",m)},g=function(){Nl(document,"keydown",m)};return a({addKeyboardListener:h,removeKeyboardListener:g}),t.watch((function(){return e.popupVisible}),(function(){e.popupVisible?h():g()}),{immediate:!0}),t.watch((function(){return e.value}),(function(){e.value||(l.value="")}),{immediate:!0}),t.onBeforeUnmount((function(){g()})),function(){return f.value.length?t.createVNode("ul",{class:d.value},[f.value.map((function(n){var r=i(v.value);n.text===l.value&&r.push("".concat(u.value,"-select-option--hover"));var a=n.label;if(H(n.label))a=n.label(t.h);else if(o.option){var c;a=null===(c=o.option)||void 0===c?void 0:c.call(o,{option:n})}var s=a||n.text;return t.createVNode("li",{key:n.text,class:r,title:n.text,onClick:p},[Do(s)&&e.highlightKeyword?t.createVNode(BO,{content:s,keyword:e.value},null):s])}))]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function HO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function WO(e){for(var t=1;t=(n.getBoundingClientRect().width||n.offsetWidth||n.clientWidth)?"".concat(o,"px"):"auto"},null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)},b=t.computed((function(){return["".concat(d.value,"-auto-complete")]})),w=t.computed((function(){var t,n=["".concat(d.value,"-select__dropdown")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayClassName&&(n=n.concat(e.popupProps.overlayClassName)),n})),O=t.computed((function(){var t,n=["".concat(d.value,"-select__dropdown-inner")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayInnerClassName&&(n=n.concat(e.popupProps.overlayInnerClassName)),n})),C=function(e,t){i(e,t)},x=t.computed((function(){return WO({value:l.value,size:e.size},e.inputProps)})),P=function(n,r){var o;m.value||p.value||(h.value=!0,null===(o=e.onFocus)||void 0===o||o.call(e,WO(WO({},r),{},{value:n})),t.nextTick((function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()})))},j=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},S=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,WO(WO({},n),{},{value:t}))},_=function(t,n){var r;m.value||p.value||(h.value=!1,i(t,n),null===(r=e.onSelect)||void 0===r||r.call(e,t,n))},V=function(e,t){var n=t.trigger;m.value||p.value||"trigger-element-click"!==n&&(h.value=e)};return function(){var n,o,a=u("default","triggerElement")||t.createVNode(Oy,t.mergeProps({borderless:e.borderless,placeholder:null!==(n=e.placeholder)&&void 0!==n?n:f.value.placeholder,tips:e.tips,status:e.status,readonly:m.value,disabled:p.value,autofocus:e.autofocus,clearable:e.clearable,onChange:C,onFocus:P,onBlur:j,onClear:e.onClear,onCompositionend:S,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(zO,{ref:g,value:l.value,options:e.options,size:e.size,sizeClassNames:v,onSelect:_,popupVisible:h.value,highlightKeyword:e.highlightKeyword,filterable:e.filterable,filter:e.filter,empty:c("empty")},{option:r.option}),s=c("panelTopContent"),D=c("panelBottomContent"),E=s||i||D?t.createVNode("div",{class:"".concat(d.value,"-auto-complete__panel")},[s,i,D]):null,F=WO(WO({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(Nh,t.mergeProps({visible:h.value,onVisibleChange:V,trigger:"focus",placement:"bottom-left",hideEmptyPopup:!0,content:E?function(){return E}:null},F),(o=a,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}}))])}}}),UO=fi(KO),YO=fi(BO);function $O(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function ZO(e,t,n){var r=n.checkStrictly,o=n.multiple,a=n.value,l=n.max,i=!r&&e.expanded&&(!o||!e.isLeaf())||r&&e.expanded,u=e.isLeaf(),c=e.disabled||o&&a.length>=l&&0!==l,d=e.checked||o&&!r&&e.expanded&&!u;return o||r||u||(d=e.expanded),[s(s(s({},t.selected,!c&&d),t.expanded,!c&&i),t.disabled,c)]}function qO(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(j(t))return"";var a=r&&r.getNodes(t);if(!a||!a.length)return t;var l=a&&a[0].getPath();return l&&l.length?o?l.map((function(e){return e.label})).join(" / "):l.at(-1).label:t}function XO(e){var t=[];return e.forEach((function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]})),t}function GO(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/";return null==e?void 0:e.getPath().map((function(e){return e.label})).join(t)}var JO=function(e){var t=[];return j(e)?e.length>0&&E(e[0])?t=e.map((function(e){return e.value})):e.length&&(t=e):QO(e)||(t=E(e)?[e.value]:[e]),t};function QO(e){return!(Ho(e)&&!isNaN(e))&&Ro(e)}function eC(e,t,n){var r=e.disabled,o=e.setValue,a=e.value,l=e.valueType,i=e.treeStore;if(!r)if(void 0!==t){var u=Mr(a).splice(t,1),c=i.getNodes(u[0])[0],s=c.setChecked(!c.isChecked());o("single"===l?s:s.map((function(e){return i.getNode(e).getPath().map((function(e){return e.value}))})),"uncheck",c.getModel()),H(n)&&n({value:s,node:c})}else H(n)&&n({value:a,node:void 0})}var tC={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},nC=t.defineComponent({name:"TCascaderItem",props:tC,setup:function(e){var n=t.ref();bi(n);var r=Ga("cascader__item"),o=Ga(),a=up({ChevronRightIcon:ic}).ChevronRightIcon,l=Ja(),u=l.STATUS,c=l.SIZE,d=t.computed((function(){return function(e,t,n,r,o){var a=o.size;return["".concat(e,"-cascader__item")].concat(i(ZO(t,r,o)),[n[a],s(s({},"".concat(e,"-cascader__item--with-icon"),!!t.children),"".concat(e,"-cascader__item--leaf"),t.isLeaf())])}(o.value,e.node,c.value,u.value,e.cascaderContext)})),v=t.computed((function(){return function(e,t,n,r){return["".concat(e,"-cascader__item-icon"),"".concat(e,"-icon")].concat(i(ZO(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)}));function f(e,n){var o=n.inputVal,a=o?GO(e):e.label;if(o){for(var l=a.split(o),i=[],u=0;u=i&&0!==i,name:String(n.value),stopLabelTrigger:!!n.children,title:u?GO(n):p(n),onChange:function(){e.onChange()}},a),"function"==typeof(o=c)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?c:{default:function(){return[c]}})}return function(){var r=e.cascaderContext,o=e.node,l=e.optionChild,i=l&&r.multiple;return t.createVNode("li",{ref:n,class:d.value,onClick:function(){return i?e.onChange():e.onClick()},onMouseenter:e.onMouseenter},[l||(r.multiple?h(o,r):m(o,r)),o.children&&(o.loading?t.createVNode(pi,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),rC={autofocus:Boolean,borderless:Boolean,checkProps:{type:Object},checkStrictly:Boolean,clearable:Boolean,collapsedItems:{type:Function},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function]},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},keys:{type:Object},label:{type:[String,Function]},lazy:{type:Boolean,default:!0},load:{type:Function},loading:Boolean,loadingText:{type:[String,Function]},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,option:{type:Function},options:{type:Array,default:function(){return[]}},panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:Boolean,prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},reserveKeyword:Boolean,selectInputProps:{type:Object},showAllLevels:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["large","medium","small"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagInputProps:{type:Object},tagProps:{type:Object},tips:{type:[String,Function]},trigger:{type:String,default:"click",validator:function(e){return!e||["click","hover"].includes(e)}},value:{type:[String,Number,Array],default:void 0},modelValue:{type:[String,Number,Array],default:void 0},defaultValue:{type:[String,Number,Array],default:function(){return[]}},valueDisplay:{type:[String,Function]},valueMode:{type:String,default:"onlyLeaf",validator:function(e){return!e||["onlyLeaf","parentFirst","all"].includes(e)}},valueType:{type:String,default:"single",validator:function(e){return!e||["single","full"].includes(e)}},onBlur:Function,onChange:Function,onFocus:Function,onPopupVisibleChange:Function,onRemove:Function},oC=t.defineComponent({name:"TCascaderSubPanel",props:{option:rC.option,empty:rC.empty,trigger:rC.trigger,onChange:rC.onChange,loading:rC.loading,loadingText:rC.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=ei(),r=Ga("cascader"),o=qa("cascader").globalConfig,a=t.computed((function(){return XO(e.cascaderContext.treeNodes)})),l=function(t,n){!function(e,t,n,r){var o=r.checkStrictly,a=r.multiple,l=r.treeStore,i=r.setVisible,u=r.setValue,c=r.setTreeNodes,s=r.setExpend,d=r.value,v=r.max,f=r.valueType;if(!(n.disabled||a&&d.length>=v&&0!==v)){if(e===t){var p=n.setExpanded(!0);l.refreshNodes(),l.replaceExpanded(p),c(l.getNodes().filter((function(e){return e.visible}))),a&&s(p)}if(!a&&(n.isLeaf()||o)&&"click"===t){l.resetChecked();var m=Ra(n.setChecked(!n.checked),1)[0];u("single"===f?m:n.getPath().map((function(e){return e.value})),"check",n.getModel()),o&&"hover"!==e||i(!1,{})}}}(e.trigger,n,t,e.cascaderContext)},i=function(r,o){var a=r.data.content?Yl(r.data.content(t.h)):n("option",{params:{item:r.data,index:o}});return t.createVNode(nC,{key:r.value,node:r,optionChild:a,cascaderContext:e.cascaderContext,onClick:function(){l(r,"click")},onMouseenter:function(){l(r,"hover")},onChange:function(){!function(e,t){var n=t.disabled,r=t.max,o=t.inputVal,a=t.multiple,l=t.setVisible,i=t.setValue,u=t.treeNodes,c=t.treeStore,s=t.valueType;if(e&&!n&&!e.disabled){var d=e.setChecked(!e.isChecked());if(Ho(r)&&r<0&&console.warn("TDesign Warn:","max should > 0"),!(d.length>r&&Ho(r)&&r>0)){if(0===d.length){var v=c.getExpanded();setTimeout((function(){c.replaceExpanded(v),c.refreshNodes()}),0)}a||l(!1,{});var f=u.every((function(e){return d.indexOf(e.value)>-1}));o&&f&&l(!1,{}),i("single"===s?d:d.map((function(e){return c.getNode(e).getPath().map((function(e){return e.value}))})),e.checked?"uncheck":"check",e.getModel())}}}(r,e.cascaderContext)}},null)},u=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return t.createVNode("ul",{class:["".concat(r.value,"__menu"),"narrow-scrollbar",s(s({},"".concat(r.value,"__menu--segment"),o),"".concat(r.value,"__menu--filter"),n)],key:"".concat(r,"__menu").concat(a)},[e.map((function(e){return i(e,a)}))])};return function(){var l,i,c,d;return l=e.loading?n("loadingText",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.loadingText])):a.value.length?(i=e.cascaderContext,c=i.inputVal,d=i.treeNodes,c?u(d,!0):a.value.map((function(e,t){return u(e,!1,t!==a.value.length-1,t)}))):n("empty",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.empty])),t.createVNode("div",{class:["".concat(r.value,"__panel"),s({},"".concat(r.value,"--normal"),a.value.length&&!e.loading)]},[l])}}});var aC="__tdesign_tree-node__",lC=function(){return gg((function e(t){mg(this,e),s(this,aC,void 0),this[aC]=t}),[{key:"value",get:function(){return this[aC].value}},{key:"label",get:function(){return this[aC].label}},{key:"data",get:function(){return this[aC].data}},{key:"actived",get:function(){return this[aC].actived}},{key:"expanded",get:function(){return this[aC].expanded}},{key:"checked",get:function(){return this[aC].checked}},{key:"indeterminate",get:function(){return this[aC].indeterminate}},{key:"loading",get:function(){return this[aC].loading}},{key:"disabled",get:function(){return this[aC].isDisabled()}},{key:"getLevel",value:function(){return this[aC].getLevel()}},{key:"getIndex",value:function(){return this[aC].getIndex()}},{key:"isFirst",value:function(){return this[aC].isFirst()}},{key:"isLast",value:function(){return this[aC].isLast()}},{key:"isLeaf",value:function(){return this[aC].isLeaf()}},{key:"insertBefore",value:function(e){return this[aC].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[aC].insertAfter(e)}},{key:"appendData",value:function(e){return this[aC].append(e)}},{key:"getPath",value:function(){return this[aC].getPath().map((function(e){return e.getModel()}))}},{key:"getParent",value:function(){var e;return null===(e=this[aC].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[aC].getParents().map((function(e){return e.getModel()}))}},{key:"getRoot",value:function(){var e=this[aC].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[aC].getSiblings().map((function(e){return e.getModel()}))}},{key:"getChildren",value:function(e){var t=this[aC],n=!1,r=t.children;if(Array.isArray(r))if(r.length>0)if(e){var o=t.walk();o.shift(),n=o.map((function(e){return e.getModel()}))}else n=r.map((function(e){return e.getModel()}));else n=!1;else Mo(r)&&(n=r);return n}},{key:"remove",value:function(e){var t=this[aC];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map((function(e){return e.value})).indexOf(t.value)<0?Jm("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else Jm("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[aC],n=["value","label","disabled"],r=ta(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach((function(t){var n=St(e,(null==o?void 0:o[t])||t);Uo(n)||(r[t]=n)})),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();function iC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uC(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 13:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"set",value:function(e){var t=this,n=this.tree;Object.keys(e).forEach((function(n){(cC.call(sC,n)||"label"===n)&&(t[n]=e[n]),"disabled"===n&&t.setDisabled(e[n])})),n.updated(this)}},{key:"getParent",value:function(){return this.parent}},{key:"getParents",value:function(){for(var e=[],t=this.parent;t;)e.push(t),t=t.parent;return e}},{key:"getSiblings",value:function(){var e=this.parent,t=this.tree,n=[];return e?Array.isArray(e.children)&&(n=e.children):t&&(n=t.children),n}},{key:"getChildren",value:function(e){var t=!1,n=this.children;if(Array.isArray(n))if(n.length>0)if(e){var r=this.walk();r.shift(),t=r.map((function(e){return e.getModel()}))}else t=n.map((function(e){return e.getModel()}));else t=!1;else Mo(n)&&(t=n);return t}},{key:"getRoot",value:function(){var e=this.getParents();return e[e.length-1]||null}},{key:"getIndex",value:function(){return this.getSiblings().indexOf(this)}},{key:"getPath",value:function(){var e=this.getParents();return e.unshift(this),e.reverse()}},{key:"getLevel",value:function(){return this.getParents().length}},{key:"isRest",value:function(){var e=this.tree,t=e.config,n=e.filterMap,r=!1;if(e.hasFilter){var o=this.getModel();r=t.filter(o)}return r?n.set(this.value,!0):n.get(this.value)&&n.delete(this.value),r}},{key:"isVisible",value:function(){var e=this.tree,t=e.nodeMap,n=e.hasFilter,r=e.config.allowFoldNodeOnFilter;if(!t.get(this.value))return!1;if(n&&!r)return this.vmIsLocked||this.vmIsRest;var o=!0,a=this.getParents();return a.length>0&&(o=a.every((function(e){return e.expanded}))),n?o&&(this.vmIsRest||this.vmIsLocked):o}},{key:"isDisabledState",value:function(){var e=this.tree,t=this.parent,n=e.config,r=n.disabled,o=n.disableCheck,a=n.checkStrictly,l=r||!1;return this.disabled&&(l=!0),!a&&null!=t&&t.isDisabledState()&&(l=!0),"boolean"==typeof o?o&&(l=!0):"function"==typeof o&&o(this.getModel())&&(l=!0),l}},{key:"isDisabled",value:function(){var e=this.tree,t=e.hasFilter,n=e.config.allowFoldNodeOnFilter;return!(!t||n||!this.vmIsLocked||this.vmIsRest)||this.isDisabledState()}},{key:"isDraggable",value:function(){var e=!!St(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!St(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!St(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!St(this,"tree.config.checkable");return"boolean"==typeof this.checkable&&(e=this.checkable),e}},{key:"isActived",value:function(e){var t=this.tree,n=this.value,r=e||t.activedMap;return!(!t.nodeMap.get(n)||!r.get(n))}},{key:"isExpanded",value:function(e){var t=this.tree,n=this.value,r=this.vmIsLocked,o=t.hasFilter,a=t.config.allowFoldNodeOnFilter;if(o&&!a&&r)return!0;var l=e||t.expandedMap;return!(!t.nodeMap.get(n)||!l.get(n))}},{key:"isChecked",value:function(e){var t=this.children,n=this.tree,r=this.value,o=n.config,a=o.checkStrictly,l=o.valueMode;if(!n.nodeMap.get(r))return!1;if(!this.isCheckable())return!1;var i=e||n.checkedMap;if(a)return!!i.get(r);var u=!1;if(i.get(r)&&("onlyLeaf"!==l||this.isLeaf()))return!0;Array.isArray(t)&&t.length>0?u=t.every((function(e){return e.isChecked(i)})):u=this.getParents().some((function(e){return i.get(e.value)}));return u}},{key:"isIndeterminate",value:function(){var e=this.children,t=this.tree,n=this.value,r=t.config.checkStrictly;if(!t.nodeMap.get(n))return!1;if(!this.isCheckable())return!1;if(r)return!1;if(!Array.isArray(e))return!1;var o=null;return e.some((function(e){return!!e.isIndeterminate()||(Ko(o)&&(o=e.isChecked()),o!==e.isChecked())}))}},{key:"isFirst",value:function(){return this.getSiblings()[0]===this}},{key:"isLast",value:function(){var e=this.getSiblings();return e[e.length-1]===this}},{key:"isLeaf",value:function(){var e=!1;return e=Array.isArray(this.children)?this.children.length<=0:!this.children,e}},{key:"lock",value:function(e){this.vmIsLocked=e,this.expanded=this.isExpanded(),this.visible=this.isVisible()}},{key:"afterExpanded",value:function(){this.update(),this.expanded&&!0===this.children&&this.loadChildren(),this.updateChildren()}},{key:"toggleExpanded",value:function(e){return this.setExpanded(!this.isExpanded(),e)}},{key:"setExpanded",value:function(e,t){var n=this.tree,r=n.config,o=uC({directly:!1},t),a=n.expandedMap;if(o.directly||(a=new Map(n.expandedMap)),e){var l=[];l.push(this),r.expandParent&&this.getParents().forEach((function(e){l.push(e)})),l.forEach((function(e){var t,r=!1;e.parent?r=e.parent.isExpandMutex():r=null==n||null===(t=n.config)||void 0===t?void 0:t.expandMutex;r&&e.getSiblings().forEach((function(e){a.delete(e.value),e.update(),e.updateChildren()}));a.set(e.value,!0),e.update(),e.updateChildren()}))}else a.delete(this.value);return o.directly&&this.afterExpanded(),n.getExpanded(a)}},{key:"toggleActived",value:function(e){return this.setActived(!this.isActived(),e)}},{key:"setActived",value:function(e,t){var n=this.tree,r=uC({isAction:!0,directly:!1},t),o=n.config||{},a=n.activedMap;if(r.directly||(a=new Map(n.activedMap)),r.isAction&&this.isDisabledState())return n.getActived(a);if(this.isActivable())if(e){var l=Array.from(a.keys());o.activeMultiple||a.clear(),l.forEach((function(e){var t=n.getNode(e);null==t||t.update()})),a.set(this.value,!0)}else a.delete(this.value);return this.update(),n.getActived(a)}},{key:"hasEnableUnCheckedChild",value:function(){var e=this.children;if(!Array.isArray(e)||e.length<=0)return!1;var t=!1;return e.some((function(e){return!e.isDisabledState()&&(!e.isChecked()&&(e.isIndeterminate()?!!e.hasEnableUnCheckedChild()&&(t=!0,!0):(t=!0,!0)))})),t}},{key:"toggleChecked",value:function(e){if(this.isIndeterminate()){var t=this.hasEnableUnCheckedChild();return this.setChecked(t,e)}return this.setChecked(!this.isChecked(),e)}},{key:"setChecked",value:function(e,t){var n=this.tree,r=n.config||{},o=uC({isAction:!0,directly:!1},t),a=n.checkedMap;if(o.directly||(a=new Map(n.checkedMap)),!this.isCheckable())return n.getChecked(a);if(o.isAction&&this.isDisabledState())return n.getChecked(a);if(e===this.isChecked()&&!(this.isIndeterminate()&&!this.hasEnableUnCheckedChild()))return n.getChecked(a);(e?a.set(this.value,!0):a.delete(this.value),r.checkStrictly)?o.directly&&this.updateChecked():(this.spreadChildrenChecked(e,a,o),this.spreadParentChecked(e,a,o),o.directly&&n.getRelatedNodes([this.value],{reverse:!0}).forEach((function(e){e.updateChecked()})));return n.getChecked(a)}},{key:"spreadParentChecked",value:function(e,t,n){var r=uC({isAction:!0,directly:!1},n);if(this.isCheckable()){var o=this.children;Array.isArray(o)&&o.length>0&&t.delete(this.value);var a=this.parent;a&&a.spreadParentChecked(e,t,r)}}},{key:"spreadChildrenChecked",value:function(e,t,n){var r=uC({isAction:!0,directly:!1},n);if(this.isCheckable()&&(!r.isAction||!this.isDisabledState())){var o=this.children;Array.isArray(o)&&(o.length<=0||(t.delete(this.value),o.forEach((function(n){r.isAction&&n.isDisabledState()||(e?t.set(n.value,!0):t.delete(n.value),n.spreadChildrenChecked(e,t,r))}))))}}},{key:"setDisabled",value:function(e){this.disabled=e,this.update(),this.updateChildren()}},{key:"update",value:function(){this.level=this.getLevel(),this.vmIsFirst=this.isFirst(),this.vmIsLast=this.isLast(),this.vmIsLeaf=this.isLeaf(),this.vmCheckable=this.isCheckable(),this.vmIsRest=this.isRest(),this.actived=this.isActived(),this.expanded=this.isExpanded(),this.visible=this.isVisible(),this.tree.updated(this)}},{key:"updateChecked",value:function(){var e=this.tree,t=this.value,n=e.checkedMap;this.checked=this.isChecked(),this.indeterminate=this.isIndeterminate(),this.checked&&n.set(t,!0),e.updated(this)}},{key:"updateChildren",value:function(){var e=this;this.spreadChildren((function(t){t!==e&&(t.update(),t.updateChecked())}))}},{key:"updateParents",value:function(){var e=this;this.spreadParents((function(t){t!==e&&(t.update(),t.updateChecked())}))}},{key:"updateRelated",value:function(){this.tree.getRelatedNodes([this.value]).forEach((function(e){e.update(),e.updateChecked()}))}},{key:"walk",value:function(){var e=[];return this.spreadChildren((function(t){e.push(t)})),e}},{key:"spreadChildren",value:function(e){e(this);var t=this.children;Array.isArray(t)&&t.length>0&&t.forEach((function(t){null==t||t.spreadChildren(e)}))}},{key:"spreadParents",value:function(e){e(this);var t=this.parent;t&&(null==t||t.spreadParents(e))}},{key:"getModel",value:function(){var e=this.model;return e||(e=new lC(this),this.model=e),e}}]);var t}();function mC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hC(e){for(var t=1;t>>0,1):n.set(e,[]))},emit:function(e,t){var r=n.get(e);r&&r.slice().map((function(e){e(t)})),(r=n.get("*"))&&r.slice().map((function(n){n(e,t)}))}}}),[{key:"setConfig",value:function(e){var t=this.config,n=!1;Object.keys(e).forEach((function(r){var o=e[r];o!==t[r]&&(n=!0,t[r]=o)})),this.hasFilter=H(t.filter),n&&this.refreshState()}},{key:"getChildren",value:function(){return this.children}},{key:"getNode",value:function(e){var t=null;return Do(e)||Ho(e)?t=this.nodeMap.get(e):e instanceof pC&&(t=this.nodeMap.get(e.value)),t||(t=null),t}},{key:"getIndex",value:function(e){return this.nodes.indexOf(e)}},{key:"getParent",value:function(e){var t=null,n=this.getNode(e);return n&&(t=n.getParent()),t}},{key:"getParents",value:function(e){var t=this.getNode(e),n=[];return t&&(n=t.getParents()),n}},{key:"getNodeIndex",value:function(e){var t=this.getNode(e),n=-1;return t&&(n=t.getIndex()),n}},{key:"getNodes",value:function(e,t){var n=[],r="";if(Do(e)||Ho(e)?r=e:e instanceof pC&&(r=e.value),r||0===r){var o=this.getNode(r);o&&(n=o.walk())}else n=this.nodes.slice(0);if(t){var a=hC({filter:null,level:1/0},t);Ho(a.level)&&a.level!==1/0&&(n=n.filter((function(e){return e.level<=a.level}))),H(a.filter)&&(n=n.filter((function(e){var t=e.getModel();return a.filter(t)}))),Lt(a.props)&&(n=n.filter((function(e){var t=Object.keys(a.props).every((function(t){return e[t]===a.props[t]}));return t})))}return n}},{key:"append",value:function(e){var t=this;e.forEach((function(e){var n=new pC(t,e);t.children.push(n)})),this.reflow()}},{key:"reload",value:function(e){this.removeAll(),this.append(e)}},{key:"parseNodeData",value:function(e,t){var n="",r=null,o=null;return Do(e)||Ho(e)?(n=e,r=this.getNode(n),o=t):e instanceof pC&&t?(r=e,o=t):o=e,{node:r,data:o}}},{key:"appendNodes",value:function(e,t){var n=this.parseNodeData(e,t);n.data&&(n.node?(n.data instanceof pC?n.data.appendTo(this,n.node):j(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof pC?n.data.appendTo(this):Array.isArray(n.data)?this.append(n.data):this.append([n.data]))}},{key:"insertBefore",value:function(e,t){var n=this.getNode(e);n&&n.insertBefore(t)}},{key:"insertAfter",value:function(e,t){var n=this.getNode(e);n&&n.insertAfter(t)}},{key:"refreshNodes",value:function(){var e=this.children,t=this.nodes;t.length=0,e.forEach((function(e){var n=e.walk();Array.prototype.push.apply(t,n)}))}},{key:"reflow",value:function(e){this.shouldReflow=!0,this.updated(e)}},{key:"updated",value:function(e){var t,n,r=this,o=this.updatedMap;(e?o.set(e[fC],"changed"):this.getNodes().forEach((function(e){o.set(e[fC],"changed")})),this.updateTick)||(this.updateTick=(t=function(){r.updateTick=null,r.shouldReflow&&(r.refreshNodes(),r.emit("reflow")),r.lockFilterPathNodes();var e="t".concat((new Date).getTime()),t=Array.from(o.keys()).map((function(t){return o.set(t,e),r.privateMap.get(t)}));r.emit("update",{nodes:t,map:o}),r.shouldReflow=!1,o.clear()},(n=Promise.resolve()).then(t),n))}},{key:"getActived",value:function(e){var t=e||this.activedMap;return Array.from(t.keys())}},{key:"getActivedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter((function(e){return e.isActived()}))}},{key:"replaceActived",value:function(e){this.resetActived(),this.setActived(e)}},{key:"setActived",value:function(e){var t=this,n=this.config.activeMultiple,r=e.slice(0);n||(r.length=1),r.forEach((function(e){t.activedMap.set(e,!0);var n=t.getNode(e);n&&n.update()}))}},{key:"resetActived",value:function(){var e=this.getActived();this.activedMap.clear(),this.getRelatedNodes(e).forEach((function(e){e.update()}))}},{key:"getExpanded",value:function(e){var t=e||this.expandedMap;return Array.from(t.keys())}},{key:"replaceExpanded",value:function(e){var t=this.getExpanded(),n=Po(e,t),r=Po(t,e);this.setExpandedDirectly(r,!1),this.updateExpanded(r),this.setExpanded(n)}},{key:"setExpanded",value:function(e){this.setExpandedDirectly(e),this.updateExpanded(e)}},{key:"setExpandedDirectly",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.forEach((function(e){n?t.expandedMap.set(e,!0):t.expandedMap.delete(e);var r=t.getNode(e);r&&r.afterExpanded()}))}},{key:"resetExpanded",value:function(){var e=this.getExpanded();this.expandedMap.clear(),this.updateExpanded(e)}},{key:"updateExpanded",value:function(e){this.getRelatedNodes(e,{withParents:!1}).forEach((function(e){e.update()}))}},{key:"getChecked",value:function(e){var t=this.nodeMap,n=this.config,r=n.valueMode,o=n.checkStrictly,a=[],l=e||this.checkedMap;return t.forEach((function(e){e.isChecked(l)&&("parentFirst"!==r||o?("onlyLeaf"!==r||o||e.isLeaf())&&a.push(e.value):e.parent&&e.parent.isChecked(l)||a.push(e.value))})),a}},{key:"getCheckedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter((function(e){return e.isChecked()}))}},{key:"replaceChecked",value:function(e){this.resetChecked(),this.setChecked(e)}},{key:"setChecked",value:function(e){var t=this,n=this.config,r=n.checkStrictly;if(n.checkable&&(e.forEach((function(e){var n=t.getNode(e);n&&(r?(t.checkedMap.set(e,!0),n.updateChecked()):n.walk().forEach((function(e){t.checkedMap.set(e.value,!0)})))})),!r)){var o=this.getChecked();this.getRelatedNodes(o).forEach((function(e){e.updateChecked()}))}}},{key:"resetChecked",value:function(){var e=this.getChecked(),t=this.getRelatedNodes(e);this.checkedMap.clear(),t.forEach((function(e){e.updateChecked()}))}},{key:"refreshState",value:function(){this.nodeMap.forEach((function(e){e.update()}))}},{key:"updateAll",value:function(){this.nodeMap.forEach((function(e){e.update(),e.updateChecked()}))}},{key:"remove",value:function(e){var t=this.getNode(e);t&&t.remove()}},{key:"removeAll",value:function(){this.expandedMap.clear(),this.checkedMap.clear(),this.activedMap.clear(),this.filterMap.clear(),this.nodeMap.clear(),this.privateMap.clear(),this.updatedMap.clear(),this.nodes=[],this.children=[],this.reflow()}},{key:"getRelatedNodes",value:function(e,t){var n=this,r=hC({reverse:!1,withParents:!0},t),o=new Map;e.forEach((function(e){if(!o.get(e)){var t=n.getNode(e);if(t){var a=t.getParents().reverse(),l=t.walk();(r.withParents?a.concat(l):l).forEach((function(e){o.set(e.value,e)}))}}}));var a=Array.from(o.values());return r.reverse&&(a=a.reverse()),a}},{key:"emit",value:function(e,t){var n=this.config,r=this.emitter,o=n[Bn("on-".concat(e))];H(o)&&o(t),r.emit(e,t)}},{key:"lockFilterPathNodes",value:function(){var e=this.config,t=this.getNodes();this.prevFilter&&t.forEach((function(e){e.vmIsLocked&&e.lock(!1)}));var n=e.filter;n&&H(n)&&(this.prevFilter=e.filter,t.reverse().forEach((function(e){var t=e.getParent();t&&(e.vmIsRest||e.vmIsLocked)&&(t.vmIsLocked||t.lock(!0))})))}}])}();function yC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bC(e){for(var t=1;t-1})):t.getNodes().filter((function(e){return e.visible})))}}(t.inputVal,t.treeStore,t.setTreeNodes,e.filter)},y=function(){var e=p.value,t=e.value,n=e.treeStore;!function(e,t,n){var r=JO(t);if(e){if(j(r)&&0===n.length){var o=new Map,a=Ra(r,1)[0];if(!QO(a)){o.set(a,!0);var l=e.getNode(a);if(!l)return void e.refreshNodes();l.getParents().forEach((function(e){o.set(e.value,!0)}));var i=Array.from(o.keys());e.replaceExpanded(i)}}e.getExpanded()&&n.length&&e.replaceExpanded(n),e.refreshNodes()}}(n,t,m.expend),n.replaceChecked(JO(t))};t.watch((function(){return e.options}),(function(){var n=e.options,r=e.keys,o=void 0===r?{}:r,a=e.checkStrictly,l=e.lazy,i=e.load,u=e.valueMode,c=m.treeStore;if(n.length||c){if(c)c.reload(n),c.refreshNodes();else{var s=new gC({keys:bC(bC({},o),{},{children:Do(o.children)?o.children:"children"}),checkable:!0,expandMutex:!0,expandParent:!0,lazy:l,load:i,valueMode:u,checkStrictly:a,onLoad:function(){t.nextTick((function(){s.refreshNodes(),g()}))}});s.append(n),m.treeStore=s}y(),g()}}),{immediate:!0,deep:!0}),t.watch((function(){var t=e.checkStrictly,n=e.lazy,r=e.load,o=e.valueMode;return JSON.stringify({valueMode:o,checkStrictly:t,lazy:n,load:r})}),(function(){var t=m.treeStore;if(t){var r=e.checkStrictly,o=e.lazy,a=e.load,l=e.valueMode,i={checkStrictly:r,disabled:n,load:a,lazy:o,valueMode:l};t.setConfig(i)}}),{immediate:!0}),t.watch(u,(function(){var e=p.value,t=e.setValue,n=e.multiple,r=e.valueType;!function(e,t){var n=t.multiple,r=t.showAllLevels,o=t.valueType;return n&&!j(e)||!n&&j(e)&&"single"===o&&!r}(u.value,p.value)?m.scopeVal=n?[]:"":t(n?[]:"","invalid-value"),QO(u)||(m.scopeVal=function(e,t,n){if("single"===t)return e;var r=e;return n?r.map((function(e){return e.at(-1)})):r.at(-1)}(u.value,r,n)),m.treeStore&&(y(),g())}),{immediate:!0}),t.watch((function(){return d.value&&h.value}),(function(e){var t=p.value.setInputVal;e&&t("")})),t.watch((function(){return m.inputVal}),(function(){g()}));return{cascaderContext:p,isFilterable:h,innerValue:u,getCascaderItems:function(e){var t=[];return e.forEach((function(e){var n,r=null===(n=m.treeStore)||void 0===n?void 0:n.getNodes(e);r&&r[0]&&t.push(r[0].data)})),t}}};function OC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function CC(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"").replace(/\W?Y{2,4}|\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()}function FC(e,t,n,r){if(""===e||null===e)return Ka();var o=e;if(/[w|W]/g.test(t)){Do(o)||(o=Ka(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=Ka(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=Ka(a,"YYYY").locale(r||"zh-cn").isoWeeksInYear(),s=0;s<=c;s+=1){var d=u.add(s,"week");if("start"===n&&(d=d.subtract(5,"day")),d.format(i)===l)return d}}if(/Q/g.test(t)){Do(o)||(o=Ka(o).locale(r||"zh-cn").format(t));for(var v=o.split(/[-/.\s]/)[0],f=o.split(/[-/.\s]/)[1],p=t.split(/[-/.\s]/)[1],m=Ka(v,"YYYY").startOf("year"),h=0;h<4;h+=1){var g=m.add(h,"quarter");if(g.format(p)===f)return g}}var y=Ka(o,t).isValid()?Ka(o,t):Ka(o);return y.isValid()?y:(Qm("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),Ka())}function TC(e,t){return Array.isArray(e)?e.every((function(e){return""===e||(Ka(e,t).isValid()||Ka(e).isValid())})):""===e||(Ka(e,t).isValid()||Ka(e).isValid())}function IC(e,t){var n,r=t.format,o=t.targetFormat,a=t.dayjsLocale,l=void 0===a?"zh-cn":a,i=t.autoSwap;return n=Array.isArray(e)?function(e){var t=e.newDate,n=e.format,r=e.dayjsLocale,o=e.targetFormat,a=e.autoSwap;if(!t||!Array.isArray(t))return[];var l=t.map((function(e){return e&&FC(e,n).locale(r)}));return a&&l[0]&&l[1]&&l[0].toDate().getTime()>l[1].toDate().getTime()&&(l=[l[1],l[0]]),l.some((function(e){return e&&!e.isValid()}))?(Qm("DatePicker","Check whether the value\u3001format\u3001valueType format is valid.\nformat: '".concat(n,"' value: '").concat(t,"' valueType: '").concat(o,"'")),[]):"time-stamp"===o?l.map((function(e){return e&&e.toDate().getTime()})):"Date"===o?l.map((function(e){return e&&e.toDate()})):l.map((function(e){return e&&e.format(o||n)}))}({newDate:e,format:r,dayjsLocale:l,targetFormat:o,autoSwap:i}):function(e){var t=e.newDate,n=e.format,r=e.targetFormat,o=e.dayjsLocale;if(!t)return"";var a=FC(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(Qm("DatePicker","Check whether the format\u3001value format is valid.\nformat: '".concat(n,"' value: '").concat(t,"'")),"")}({newDate:e,format:r,dayjsLocale:l,targetFormat:o}),n}function MC(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function AC(e,t,n,r){var o,a=Array.isArray(e)?e:[e];return r=Array.isArray(r)?r:[r,r],a=a.map((function(e,o){return e?Ka(e,"string"==typeof e?t:void 0).format(n):MC(r[o],n)})),a=a.length?a:r.map((function(e){return MC(e,n)})),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function BC(e){var t=e.mode,n=void 0===t?"date":t,r=e.format,o=e.valueType,a=e.enableTimePicker;return"year"===n?{format:r||"YYYY",valueType:o||r||"YYYY",timeFormat:DC}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:DC}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:DC}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:DC}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:EC(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||DC}:(Qm("DatePicker","Invalid mode: ".concat(n)),{})}function LC(e){var t=e.value,n=e.mode,r=void 0===n?"date":n,o=e.format,a=e.timeFormat,l=void 0===a?"HH:mm:ss":a,i=e.enableTimePicker,u={year:[Ka().year(),Ka().year()],month:[Ka().month(),Ka().month()],time:[Ka().format(l),Ka().format(l)]};return"year"===r?u.year[1]+=10:"month"===r||"quarter"===r?u.year[1]+=1:"date"!==r&&"week"!==r||i||(11===u.month[0]?(u.year[1]+=1,u.month[1]=0):u.month[1]+=1),t&&Array.isArray(t)&&t.length?{year:t.map((function(e){return FC(e,o).year()})),month:t.map((function(e){return FC(e,o).month()})),time:t.map((function(e){return FC(e,o).format(l)}))}:u}function RC(e){var n,r,o,a,l=t.toRefs(e),i=Ra(qm(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed((function(){return BC({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})}));e.enableTimePicker&&(EC(s.value.format)||console.error("format: ".concat(s.value.format," \u4e0d\u89c4\u8303\uff0c\u5305\u542b\u65f6\u95f4\u9009\u62e9\u5fc5\u987b\u8981\u6709\u65f6\u95f4\u683c\u5f0f\u5316 HH:mm:ss")));var d=t.ref(AC(e.multiple?null===(n=u.value)||void 0===n?void 0:n[0]:u.value,s.value.format,s.value.timeFormat,e.defaultTime)),v=t.ref(FC(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(FC(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(IC(e.multiple?null===(a=u.value)||void 0===a?void 0:a[0]:u.value,{format:s.value.format}));return t.watchEffect((function(){u.value?TC(u.value,s.value.format)&&(p.value=IC(u.value,{format:s.value.format}),d.value=AC(u.value,s.value.format,s.value.timeFormat,e.defaultTime)):p.value=""})),{year:f,month:v,value:u,time:d,cacheValue:p,onChange:c}}function zC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function HC(e){for(var t=1;t25){var a=o(this).startOf(n).add(1,n).date(r),l=o(this).endOf(t);if(a.isBefore(l))return 1}var i=o(this).startOf(n).date(r).startOf(t).subtract(1,"millisecond"),u=this.diff(i,t,!0);return u<0?o(this).startOf("week").week():Math.ceil(u)},a.weeks=function(e){return void 0===e&&(e=null),this.week(e)}})}(YC);var $C=YC.exports,ZC={exports:{}};!function(e){e.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}(ZC);var qC=ZC.exports,XC={exports:{}};!function(e){e.exports=function(e,t,n){var r=t.prototype,o=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var l=e.name?e:e.$locale(),i=o(l[t]),u=o(l[n]),c=i||u.map((function(e){return e.slice(0,r)}));if(!a)return c;var s=l.weekStart;return c.map((function(e,t){return c[(t+(s||0))%7]}))},l=function(){return n.Ls[n.locale()]},i=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}(e.formats[t.toUpperCase()])},u=function(){var e=this;return{months:function(t){return t?t.format("MMMM"):a(e,"months")},monthsShort:function(t){return t?t.format("MMM"):a(e,"monthsShort","months",3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format("dddd"):a(e,"weekdays")},weekdaysMin:function(t){return t?t.format("dd"):a(e,"weekdaysMin","weekdays",2)},weekdaysShort:function(t){return t?t.format("ddd"):a(e,"weekdaysShort","weekdays",3)},longDateFormat:function(t){return i(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return u.bind(this)()},n.localeData=function(){var e=l();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return i(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(l(),"months")},n.monthsShort=function(){return a(l(),"monthsShort","months",3)},n.weekdays=function(e){return a(l(),"weekdays",null,null,e)},n.weekdaysShort=function(e){return a(l(),"weekdaysShort","weekdays",3,e)},n.weekdaysMin=function(e){return a(l(),"weekdaysMin","weekdays",2,e)}}}(XC);var GC=XC.exports,JC={exports:{}};!function(e){var t,n;e.exports=(t="month",n="quarter",function(e,r){var o=r.prototype;o.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=o.add;o.add=function(e,r){return e=Number(e),this.$utils().p(r)===n?this.add(3*e,t):a.bind(this)(e,r)};var l=o.startOf;o.startOf=function(e,r){var o=this.$utils(),a=!!o.u(r)||r;if(o.p(e)===n){var i=this.quarter()-1;return a?this.month(3*i).startOf(t).startOf("day"):this.month(3*i+2).endOf(t).endOf("day")}return l.bind(this)(e,r)}})}(JC);var QC=JC.exports,ex={exports:{}};!function(e){e.exports=function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var o=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return o.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return o.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return o.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return r.bind(this)(a)}}}(ex);var tx=ex.exports,nx={exports:{}};!function(e){e.exports=function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,a={},l=function(e){return(e=+e)+(e>68?1900:2e3)},i=function(e){return function(t){this[e]=+t}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=a[e];return t&&(t.indexOf?t:t.s.concat(t.f))},s=function(e,t){var n,r=a.meridiem;if(r){for(var o=1;o<=24;o+=1)if(e.indexOf(r(o,0,t))>-1){n=o>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[o,function(e){this.afternoon=s(e,!1)}],a:[o,function(e){this.afternoon=s(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,i("seconds")],ss:[r,i("seconds")],m:[r,i("minutes")],mm:[r,i("minutes")],H:[r,i("hours")],h:[r,i("hours")],HH:[r,i("hours")],hh:[r,i("hours")],D:[r,i("day")],DD:[n,i("day")],Do:[o,function(e){var t=a.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,i("month")],MM:[n,i("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,i("year")],YY:[n,function(e){this.year=l(e)}],YYYY:[/\d{4}/,i("year")],Z:u,ZZ:u};function v(n){var r,o;r=n,o=a&&a.formats;for(var l=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var a=r&&r.toUpperCase();return n||o[r]||e[r]||o[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),i=l.length,u=0;u-1)return new Date(("X"===t?1e3:1)*e);var r=v(t)(e),o=r.year,a=r.month,l=r.day,i=r.hours,u=r.minutes,c=r.seconds,s=r.milliseconds,d=r.zone,f=new Date,p=l||(o||a?1:f.getDate()),m=o||f.getFullYear(),h=0;o&&!a||(h=a>0?a-1:f.getMonth());var g=i||0,y=u||0,b=c||0,w=s||0;return d?new Date(Date.UTC(m,h,p,g,y,b,w+60*d.offset*1e3)):n?new Date(Date.UTC(m,h,p,g,y,b,w)):new Date(m,h,p,g,y,b,w)}catch(e){return new Date("")}}(t,i,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),s&&t!=this.format(i)&&(this.$d=new Date("")),a={}}else if(i instanceof Array)for(var f=i.length,p=1;p<=f;p+=1){l[1]=i[p-1];var m=n.apply(this,l);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}p===f&&(this.$d=new Date(""))}else o.call(this,e)}}}()}(nx);var rx=nx.exports;function ox(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ax(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return cx(e,t)&&Ka(e).locale(n).week()===Ka(t).locale(n).week()}function dx(e,t){return cx(e,t)&&e.getDate()===t.getDate()}function vx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function fx(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:ix,isSameQuarter:ux,isSameMonth:cx,isSameWeek:sx,isSameDate:dx}["isSame".concat((n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"date",n?n[0].toUpperCase().concat(n.substring(1,n.length)):n))](e,t,r)}function px(e,t,n){return t&&-1===vx(e,t)||n&&1===vx(e,n)}function mx(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function hx(e,t){return Ka(e).subtract(t,"month").toDate()}function gx(e,t){return Ka(e).add(t,"month").toDate()}function yx(e,t){for(var n=e.year,r=e.month,o=t.firstDayOfWeek,a=t.showWeekOfYear,l=void 0!==a&&a,i=t.disableDate,u=void 0===i?function(){return!1}:i,c=t.minDate,s=t.maxDate,d=t.dayjsLocale,v=void 0===d?"zh-cn":d,f=t.cancelRangeSelectLimit,p=void 0!==f&&f,m=function(e){var t=e.year,n=e.month;return new Date(t,n,1)}({year:n,month:r}),h=function(e){var t=e.year,n=e.month;return new Date(t,n,lx({year:t,month:n}))}({year:n,month:r}),g=lx({year:n,month:r}),y=[],b=1,w=mx();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&px(O,c,s),now:fx(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:Ka(O).locale(v)})}if(m.getDay()!==o)for(m.setDate(0);y.unshift({text:m.getDate().toString(),active:!1,value:new Date(m),disabled:H(u)&&u(m)||!p&&px(m,c,s),additional:!0,type:"prev-month",dayjsObj:Ka(m).locale(v)}),m.setDate(m.getDate()-1),m.getDay()!==Math.abs(o+6)%7;);for(;y.length<42;)h.setDate(h.getDate()+1),y.push({text:h.getDate(),active:!1,value:new Date(h),disabled:H(u)&&u(h)||!p&&px(h,c,s),additional:!0,type:"next-month",dayjsObj:Ka(h).locale(v)});var C=zn(y,7);return l&&C.forEach((function(e){e.unshift(ax(ax({},e[0]),{},{active:!1,value:e[0].value,text:Ka(e[0].value).locale(v).week(),dayjsObj:Ka(e[0].value).locale(v)}))})),C}function bx(e,t){var n=WC({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(t),t)),r=n.start,o=n.end,a=n.hoverStart,l=n.hoverEnd,i=n.type,u=void 0===i?"date":i,c=n.isRange,s=void 0!==c&&c,d=n.value,v=n.multiple,f=void 0!==v&&v;return"week"===u?e:s?e.map((function(e){return e.map((function(e){var t=e,n=e.value,i=r&&fx(r,n,u),c=a&&fx(a,n,u),s=o&&fx(o,n,u),d=l&&fx(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=Ka(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=Ka(n).isBetween(a,l,u,"[]")&&!t.additional,t.hoverStartOfRange=c,t.hoverEndOfRange=d),t}))})):e.map((function(e){return e.map((function(e){var t,n=e;f?n.active=null==d||null===(t=d.some)||void 0===t?void 0:t.call(d,(function(e){return fx(Ka(e).toDate(),n.value,u)&&!n.additional})):n.active=r&&fx(e.value,r,u)&&!n.additional;return n}))}))}function wx(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ra((e.match(/\d{1,2}(:\d{1,2})?(:\d{1,2})?(:\d{1,3})?/)||["0:0:0:0"])[0].split(":"),4),r=n[0],o=void 0===r?0:r,a=n[1],l=void 0===a?0:a,i=n[2],u=void 0===i?0:i,c=n[3];return{hours:+o,minutes:+l,seconds:+u,milliseconds:+(void 0===c?0:c),meridiem:t[0]}}Ka.extend($C),Ka.extend(qC),Ka.extend(GC),Ka.extend(QC),Ka.extend(tx),Ka.extend(rx),Ka.extend(UC);var Ox={allowInput:Boolean,borderless:Boolean,clearable:Boolean,defaultTime:{type:String,default:"00:00:00"},disableDate:{type:[Object,Array,Function]},disabled:{type:Boolean,default:void 0},enableTimePicker:Boolean,firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:void 0},inputProps:{type:Object},label:{type:[String,Function]},mode:{type:String,default:"date",validator:function(e){return!e||["year","quarter","month","week","date"].includes(e)}},multiple:Boolean,needConfirm:{type:Boolean,default:!0},placeholder:{type:[String,Array],default:void 0},popupProps:{type:Object},prefixIcon:{type:Function},presets:{type:Object},presetsPlacement:{type:String,default:"bottom",validator:function(e){return!e||["left","top","right","bottom"].includes(e)}},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffixIcon:{type:Function},timePickerProps:{type:Object},tips:{type:[String,Function]},value:{type:[String,Number,Array,Date],default:void 0},modelValue:{type:[String,Number,Array,Date],default:void 0},defaultValue:{type:[String,Number,Array,Date],default:""},valueDisplay:{type:[String,Function]},valueType:{type:String,default:""},onBlur:Function,onChange:Function,onConfirm:Function,onFocus:Function,onPick:Function,onPresetClick:Function},Cx=t.defineComponent({name:"TDatePickerHeader",props:{mode:{type:String,default:"date"},year:Number,month:Number,onMonthChange:Function,onYearChange:Function,onJumperClick:Function},setup:function(e){var n=qa("classPrefix").classPrefix,r=Ga("date-picker__header"),o=qa("datePicker").globalConfig,a=t.ref(s(e.year)),l=t.computed((function(){return"date"===e.mode||"week"===e.mode})),u=t.computed((function(){var t;return(null===(t=a.value.find((function(t){return t.value-e.year<=9&&t.value-e.year>=0})))||void 0===t?void 0:t.value)||e.year})),c=t.computed((function(){return o.value.months.map((function(e,t){return{label:e,value:t}}))}));function s(t){var n=[];if("year"===e.mode)for(var r=t%10,o=t-r+100,a=t-r-100;a<=o;a+=10)n.push({label:"".concat(a," - ").concat(a+9),value:a+9});else{n.push({label:"".concat(t),value:t});for(var l=1;l<=10;l++)n.push({label:"".concat(t+l),value:t+l}),n.unshift({label:"".concat(t-l),value:t-l})}return n}function d(t,n){var r=[];if("year"===e.mode){var o=t%10;if("add"===n)for(var a=t-o+10;a<=t-o+50;a+=10)r.push({label:"".concat(a," - ").concat(a+9),value:a});else for(var l=t-o-1;l>t-o-50;l-=10)r.unshift({label:"".concat(l-9," - ").concat(l),value:l})}else if("add"===n)for(var i=t+1;i<=t+10;i++)r.push({label:"".concat(i),value:i});else for(var u=t-1;u>t-10;u--)r.unshift({label:"".concat(u),value:u});return r}var v=t.computed((function(){return{year:{prev:o.value.preDecade,current:o.value.now,next:o.value.nextDecade},month:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},date:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth},quarter:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},week:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth}}}));function f(e){var t=e.e;0===t.target.scrollTop?p(t):t.target.scrollTop===t.target.scrollHeight-t.target.clientHeight&&m(t)}function p(e){var t;null==e||null===(t=e.stopPropagation)||void 0===t||t.call(e);var n=d(a.value[0].value,"reduce");a.value=[].concat(i(n),i(a.value))}function m(e){var t;null==e||null===(t=e.stopPropagation)||void 0===t||t.call(e);var n=d(a.value.slice(-1)[0].value,"add");a.value=[].concat(i(a.value),i(n))}return t.watch((function(){return e.mode}),(function(){a.value=s(e.year)})),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-controller")},[l.value&&t.createVNode(rO,{class:"".concat(r.value,"-controller-month"),value:e.month,options:c.value,onChange:function(t){var n;return null===(n=e.onMonthChange)||void 0===n?void 0:n.call(e,t)},popupProps:{attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-month-popup")}},null),t.createVNode(rO,{class:"".concat(r.value,"-controller-year"),value:"year"===e.mode?u.value:e.year,options:a.value,onChange:function(t){var n;return null===(n=e.onYearChange)||void 0===n?void 0:n.call(e,t)},popupProps:{onScroll:f,attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-year-popup")},panelTopContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:p},[t.createTextVNode("...")])},panelBottomContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:m},[t.createTextVNode("...")])}},null)]),t.createVNode(mO,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),xx=t.defineComponent({name:"TDatePickerCell",props:{time:String,text:[String,Number],value:Date,active:Boolean,highlight:Boolean,disabled:Boolean,startOfRange:Boolean,endOfRange:Boolean,hoverHighlight:Boolean,hoverStartOfRange:Boolean,hoverEndOfRange:Boolean,additional:Boolean,now:Boolean,firstDayOfMonth:Boolean,lastDayOfMonth:Boolean,onClick:Function,onMouseEnter:Function,dayjsObj:Wa.exports.Dayjs},setup:function(e){var n=Ga("date-picker__cell"),r=t.computed((function(){var t;return[n.value,(t={},s(s(s(s(s(s(s(s(s(s(t,"".concat(n.value,"--now"),e.now),"".concat(n.value,"--active"),e.active),"".concat(n.value,"--disabled"),e.disabled),"".concat(n.value,"--highlight"),e.highlight),"".concat(n.value,"--hover-highlight"),e.hoverHighlight),"".concat(n.value,"--active-start"),e.startOfRange),"".concat(n.value,"--active-end"),e.endOfRange),"".concat(n.value,"--hover-start"),e.hoverStartOfRange),"".concat(n.value,"--hover-end"),e.hoverEndOfRange),"".concat(n.value,"--additional"),e.additional),s(s(t,"".concat(n.value,"--first-day-of-month"),e.firstDayOfMonth),"".concat(n.value,"--last-day-of-month"),e.lastDayOfMonth))]}));function o(t){var n;if(!e.disabled){if(e.time){var r=wx(e.time),o=r.hours,a=r.minutes,l=r.seconds,i=r.milliseconds,u=r.meridiem,c=o;/am/i.test(u)&&12===c&&(c-=12),/pm/i.test(u)&&c<12&&(c+=12),e.value.setHours(c),e.value.setMinutes(a),e.value.setSeconds(l),e.value.setMilliseconds(i)}null===(n=e.onClick)||void 0===n||n.call(e,e.value,{e:t})}}function a(){var t;if(!e.disabled){if(e.time){var n=wx(e.time),r=n.hours,o=n.minutes,a=n.seconds,l=n.milliseconds,i=n.meridiem,u=r;/am/i.test(i)&&12===u&&(u-=12),/pm/i.test(i)&&u<12&&(u+=12),e.value.setHours(u),e.value.setMinutes(o),e.value.setSeconds(a),e.value.setMilliseconds(l)}null===(t=e.onMouseEnter)||void 0===t||t.call(e,e.value)}}return function(){return t.createVNode("td",{class:r.value,onClick:o,onMouseenter:a},[t.createVNode("div",{class:"".concat(n.value,"-inner")},[e.text])])}}});function Px(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jx(e){for(var t=1;t=f&&y<=m&&b>p&&b1})).length;return i.value?Ka(i.value,u.value):e?Ka().hour(0).minute(0).second(0):Ka()}));t.watch((function(){return h.value}),(function(){h.value&&i.value&&x(!0)})),t.watch((function(){return d.value}),(function(){d.value&&x(!0)})),t.onMounted((function(){v.value=function(e){var t=[],n=Ex.meridiem,r=Ex.hour,o=Ex.minute,a=Ex.second,l=Ex.milliSecond;return e.match(Fx).forEach((function(e){switch(e){case"H":case"HH":case"h":case"hh":t.push(r);break;case"a":case"A":t.push(n);break;case"m":case"mm":t.push(o);break;case"s":case"ss":t.push(a);break;case"SSS":t.push(l)}})),t}(u.value)}));var g=function(){var e,t=null===(e=p.value)||void 0===e?void 0:e.querySelector("div");return t?{offsetHeight:parseFloat(getComputedStyle(t).height),margin:parseFloat(getComputedStyle(t).marginTop)}:{offsetHeight:0,margin:0}},y=function(t,n){var r=Wx.indexOf(t);if(-1!==r){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))}return!0},b=function(t){var n=0;if(Wx.includes(t)){var r=Wx.indexOf(t),o=l.value[r]||1;n=t===Ex.hour?Tx.test(u.value)?11:23:t===Ex.milliSecond?999:59;var a=Na(0,n+1,Number(o)).map((function(e){return Oa(String(e),2,"0")}))||[];return e.hideDisabledTime&&e.disableTime?a.filter((function(n){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))})):a}return _x},w=function(e,t){e===Ex.hour&&/[h]{1}/.test(u.value)&&(t%=12);var n=b(e).indexOf(Oa(String(t),2,"0")),r=g(),o=r.offsetHeight+r.margin;return Math.abs(Math.max(0,n)*o)},O=function(t,n,r){var o,a,c,s;if(e.isShowPanel){var d=((null===(o=m[n])||void 0===o?void 0:o.scrollTop)||0)+Kx,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=_x[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),Wx.includes(t)){var x=59;t===Ex.hour?x=/[h]{1}/.test(u.value)?11:23:t===Ex.milliSecond&&(x=999);var P=Wx.indexOf(t),j=Na(0,x+1,Number(l.value[P])||1);c=function(e,t,n){return n<=1?t:e.sort((function(e,n){return Math.abs(t+1-e)-Math.abs(t+1-n)}))[0]}(j,Number(b(t)[Math.min(O-1,x+1,j.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=j[j.length-1]),t===Ex.hour&&v.value.includes(Ex.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var S=w(t,c);if(Ka(h.value).isValid()&&(!i.value||Ka(i.value,u.value,!0).isValid())){if(Wx.includes(t)){var k,N;s=y(t,c)?null===(k=(N=h.value)[t])||void 0===k?void 0:k.call(N,c).format(u.value):h.value.format(u.value)}else{var _=h.value.hour();s=C===kx&&_>=12?h.value.hour(_-12).format(u.value):C===Nx&&_<12?h.value.hour(_+12).format(u.value):h.value.format(u.value)}if(s!==i.value&&(null===(a=e.onChange)||void 0===a||a.call(e,s,r)),S!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===S)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:S,behavior:"smooth"})}}}},C=function(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",a=w(e,t),l=m[n];l&&l.scrollTop!==a&&y(e,t)&&(null===(r=l.scrollTo)||void 0===r||r.call(l,{top:a,behavior:o}))},x=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=i.value&&!n?"smooth":"auto",o=!!l.value.filter((function(e){return Number(e)>1})).length;t.nextTick((function(){v.value.forEach((function(e,t){var n,a,l;!o||o&&i.value?C(e,Wx.includes(e)?null===(n=(a=h.value)[e])||void 0===n?void 0:n.call(a):h.value.format("a"),t,r):C(e,null===(l=b(e))||void 0===l?void 0:l[0],t,r)}))})),e.resetTriggerScroll()},P=function(e,t){var n,r,o;return e===Ex.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===Ex.hour&&/[h]{1}/.test(u.value)&&(o%=12),o===Number(t))};return function(){var a,l,i,c;return t.createVNode("div",{class:"".concat(r.value,"-body"),ref:f},[t.createVNode("div",{class:"".concat(r.value,"-body-active-mask"),ref:p},[null===(a=(l=v.value).map)||void 0===a?void 0:a.call(l,(function(e,n){return t.createVNode("div",{key:"".concat(e,"_").concat(n)},null)}))]),null===(i=(c=v.value).map)||void 0===i?void 0:i.call(c,(function(a,l){return t.createVNode("ul",{key:"".concat(a,"_").concat(l),ref:function(e){return m[l]=e},class:"".concat(r.value,"-body-scroll"),onScroll:po((function(e){return O(a,l,e)}),50)},[b(a).map((function(i){return t.createVNode("li",{key:i,class:["".concat(r.value,"-body-scroll-item"),s(s({},o.value.disabled,!y(a,i)),o.value.current,P(a,i))],onClick:function(t){return function(t,n,r,o){if(y(t,n))if(Wx.includes(t))t===Ex.hour&&h.value.format("a")===Nx&&v.value.includes(Ex.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===kx&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===Nx&&l<12){var i;null===(i=e.onChange)||void 0===i||i.call(e,h.value.hour(l+12).format(u.value),o)}}}(a,i,l,t)}},[Wx.includes(a)?Tx.test(u.value)&&a===Ex.hour&&"00"===i?"12":i:n.value[i===kx?"anteMeridiem":"postMeridiem"]])}))])}))])}}});function Yx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $x(e){for(var t=1;t1})).length})),d=t.computed((function(){s.value;var t=Ka(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Ka().hour(0).minute(0).second(0).format(e.format)})),v=function(){t.nextTick((function(){u.value=!0}))},f=function(){u.value=!1},p=function(){return Uo(e.presets)?s.value?null:t.createVNode(xi,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,Ka().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map((function(n){return t.createVNode(xi,{key:n,theme:"primary",size:"small",variant:"text",onClick:function(){return t=e.presets[n],a="function"==typeof t?t():t,void("number"==typeof e.activeIndex?Array.isArray(a)?null===(r=e.onChange)||void 0===r||r.call(e,a[e.activeIndex]):Qm("TimePicker","preset: ".concat(e.presets," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!")):null===(o=e.onChange)||void 0===o||o.call(e,a));var t,r,o,a}},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}});var r}))};return t.onMounted((function(){v()})),t.watch((function(){return i.value}),(function(){v()})),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-section-body")},[t.createVNode(Ux,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||Dx,value:Ka(e.value,e.format).isValid()?e.value:d.value,triggerScroll:u.value,onChange:e.onChange,resetTriggerScroll:f,isShowPanel:e.isShowPanel}),null)]),l.value?t.createVNode("div",{class:"".concat(r.value,"-section-footer")},[t.createVNode(xi,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(t){var n;return null===(n=e.handleConfirmClick)||void 0===n?void 0:n.call(e,t,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function qx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xx(e){for(var t=1;t=o[1]&&(r?o[0]=o[1]-1:(o[0]=o[1],a[0]>=a[1]&&(a[0]=a[1]-1,-1===a[0]&&(a[0]=11,o=[o[0]-1,o[1]])))),{nextYear:o,nextMonth:a}}var _P=t.defineComponent({name:"TDateRangePicker",props:fP,setup:function(e,n){var r=n.slots,o=Ga("date-range-picker"),a=function(e){var n=Ga("date-range-picker"),r=qa("datePicker").globalConfig,o=up({CalendarIcon:hu}).CalendarIcon,a=Ql(),l=t.ref(!1),i=t.ref(),u=nP(e),c=u.value,d=u.onChange,v=u.time,f=u.month,p=u.year,m=u.cacheValue,h=u.isFirstValueSelected,g=t.computed((function(){return BC({mode:e.mode,format:e.format,valueType:e.valueType,enableTimePicker:e.enableTimePicker})})),y=t.ref(!1),b=t.ref(!1),w=t.ref(0),O=t.ref(IC(e.value,{format:g.value.format})),C=ly(),x=t.computed((function(){return oP(oP({},e.rangeInputProps),{},{size:e.size,ref:i,borderless:e.borderless,clearable:e.clearable&&!C.value,prefixIcon:function(){return a("prefixIcon")},readonly:C.value||!e.allowInput,separator:e.separator||r.value.rangeSeparator,placeholder:e.placeholder||r.value.placeholder[e.mode],activeIndex:y.value?w.value:void 0,suffixIcon:function(){return a("suffixIcon")||t.createVNode(o,null,null)},class:s({},"".concat(n.value,"__input--placeholder"),b.value),onClick:function(e){var t=e.position;w.value="first"===t?0:1},onClear:function(e){e.e.stopPropagation(),y.value=!1,null==d||d([],{dayjsValue:[],trigger:"clear"})},onBlur:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onBlur)||void 0===r||r.call(e,{value:t,partial:aP[a],e:o})},onFocus:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onFocus)||void 0===r||r.call(e,{value:t,partial:aP[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,TC(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach((function(e){n.push(FC(e,g.value.format).year()),r.push(FC(e,g.value.format).month()),o.push(FC(e,g.value.format).format(g.value.timeFormat))})),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(TC(e,g.value.format)||TC(c.value,g.value.format))&&(y.value=!1,TC(e,g.value.format)?null==d||d(IC(e,{format:g.value.format,targetFormat:g.value.valueType,autoSwap:!0}),{dayjsValue:e.map((function(e){return FC(e,g.value.format)})),trigger:"enter"}):TC(c.value,g.value.format)?O.value=IC(c.value,{format:g.value.format}):O.value=[])}})})),P=t.computed((function(){var t,r,o;return oP(oP({expandAnimation:!0},ta(e.popupProps,"on-visible-change")),{},{overlayInnerStyle:null!==(t=null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)&&void 0!==t?t:{width:"auto"},overlayClassName:[null===(o=e.popupProps)||void 0===o?void 0:o.overlayClassName,"".concat(n.value,"__panel-container")],onVisibleChange:function(t,n){var r,o,a,l;if(!C.value){if(null===(r=e.popupProps)||void 0===r||null===(o=r.onVisibleChange)||void 0===o||o.call(r,t,n),null===(a=e.popupProps)||void 0===a||null===(l=a["on-visible-change"])||void 0===l||l.call(a,t,n),"trigger-element-click"===n.trigger)return i.value.focus({position:{0:"first",1:"second"}[w.value]}),void(y.value=!0);y.value=t}}})}));return t.watch(c,(function(e){e?TC(e,g.value.format)&&(O.value=IC(e,{format:g.value.valueType,targetFormat:g.value.format})):O.value=[]}),{immediate:!0}),t.watch(w,(function(e){var t,n;l.value?y.value&&(null===(t=i.value)||void 0===t||null===(n=t.focus)||void 0===n||n.call(t,{position:{0:"first",1:"second"}[e]})):l.value=!0}),{immediate:!0}),{year:p,month:f,value:c,time:v,inputValue:O,popupVisible:y,rangeInputProps:x,popupProps:P,isHoverCell:b,activeIndex:w,isFirstValueSelected:h,cacheValue:m,onChange:d}}(e),l=a.inputValue,u=a.popupVisible,c=a.rangeInputProps,d=a.popupProps,v=a.value,f=a.year,p=a.month,m=a.time,h=a.cacheValue,g=a.activeIndex,y=a.isHoverCell,b=a.isFirstValueSelected,w=a.onChange,O=wi(),C=ly(),x=t.computed((function(){return BC({mode:e.mode,enableTimePicker:e.enableTimePicker,format:e.format,valueType:e.valueType})})),P=t.ref(!1);function S(e){y.value=!0;var t=i(l.value);t[g.value]=IC(e,{format:x.value.format}),l.value=t}function k(){y.value=!1,l.value=h.value}function N(t,n){var r,o=n.e;null===(r=e.onPick)||void 0===r||r.call(e,t,{e:o,partial:g.value?"end":"start"}),y.value=!1,P.value=!0;var a=i(l.value);if(a[g.value]=IC(t,{format:x.value.format}),h.value=a,l.value=a,!e.enableTimePicker){var c=a.findIndex((function(e){return!e||!TC(e,x.value.format)}));if(-1===c&&2===a.length&&(!b.value&&FC(a[0],x.value.format).isAfter(FC(a[1],x.value.format))?(a[g.value?0:1]="",h.value=a,l.value=a):null==w||w(IC(a,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:a.map((function(e){return FC(e,x.value.format)})),trigger:"pick"})),b.value&&g.value)u.value=!1;else{var s=c;-1===s&&(s=g.value?0:1),g.value=s,b.value=!!a[0]}}}function _(t){var n=t.trigger,r="start"===t.partial?0:1,o={date:1,week:1,month:12,quarter:12,year:120}[e.mode]||0,a=new Date(f.value[r],p.value[r]),l=null;"prev"===n?l=hx(a,o):"current"===n?l=new Date:"next"===n&&(l=gx(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=NP(r,u,c,["year","quarter","month"].includes(e.mode));u=s.nextYear,c=s.nextMonth,f.value=u,p.value=c}function V(e){var t=wx(e),n=t.hours,r=t.minutes,o=t.seconds,a=t.milliseconds,u=t.meridiem,c=i(l.value),s=c[g.value],d=Ka(s,x.value.format).isValid()?Ka(s,x.value.format):Ka().year(f.value[g.value]).month(p.value[g.value]),v=n;/am/i.test(u)&&12===v&&(v-=12),/pm/i.test(u)&&v<12&&(v+=12);var y=d.hour(v).minute(r).second(o).millisecond(a).toDate();c[g.value]=y;var b=i(m.value);b[g.value]=e,m.value=b,P.value=!0,l.value=IC(c,{format:x.value.format}),h.value=IC(c,{format:x.value.format})}function D(t){var n,r=t.e,o=i(l.value),a=o.findIndex((function(e){return!e||!TC(e,x.value.format)}));-1===a&&2===o.length&&(!b.value&&FC(o[0],x.value.format).isAfter(FC(o[1],x.value.format))?(o[g.value?0:1]="",h.value=o,l.value=o):(null==e||null===(n=e.onConfirm)||void 0===n||n.call(e,{date:o.map((function(e){return Ka(e).toDate()})),e:r,partial:g.value?"end":"start"}),null==w||w(IC(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return FC(e,x.value.format)})),trigger:"confirm"})));if(b.value&&g.value)2===o.length&&(u.value=!1);else{var c=a;-1===c&&(c=g.value?0:1),g.value=c,b.value=!!o[0]}}function E(t,n){var r,o=t;(H(t)&&(o=t()),j(o))?(null==w||w(IC(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return FC(e,x.value.format)})),trigger:"preset"}),u.value=!1,null===(r=e.onPresetClick)||void 0===r||r.call(e,n)):console.error("preset: ".concat(t," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!"))}function F(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(f.value),a=i(p.value);o[r]=t;var l=["year","quarter","month"].includes(e.mode),u=NP(r,o,a,l);o=u.nextYear,a=u.nextMonth,f.value=o,l||(p.value=a)}function T(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(p.value);if(o[r]=t,f.value[0]===f.value[1]){var a,l,u,c;if(0===r)if(o[1]<=o[0])if(o[1]=o[0]+1,12===o[1])o[1]=0,f.value=[null===(a=f.value)||void 0===a?void 0:a[0],(null===(l=f.value)||void 0===l?void 0:l[1])+1];if(1===r)if(o[0]=Math.min(o[0],o[1]),o[0]>=o[1])if(o[0]-=1,-1===o[0])o[0]=11,f.value=[(null===(u=f.value)||void 0===u?void 0:u[0])-1,null===(c=f.value)||void 0===c?void 0:c[1]]}p.value=o}t.watch(u,(function(t){if(t)if(P.value=!1,h.value=IC(v.value||[],{format:x.value.valueType,targetFormat:x.value.format}),m.value=AC(v.value||[Ka().format(x.value.timeFormat),Ka().format(x.value.timeFormat)],x.value.format,x.value.timeFormat,e.defaultTime),v.value.length)if(2!==v.value.length||e.enableTimePicker)f.value=v.value.map((function(e){return FC(e,x.value.format).year()})),1===f.value.length&&(f.value=[f.value[0],f.value[0]]),p.value=v.value.map((function(e){return FC(e,x.value.format).month()})),1===p.value.length&&(p.value=[p.value[0],Math.min(p.value[0]+1,11)]);else{var n=v.value.map((function(e){return FC(e,x.value.format).month()}));f.value=v.value.map((function(e){return FC(e,x.value.valueType).year()})),f.value[0]===f.value[1]&&n[0]===n[1]&&(11===n[0]?n[0]-=1:n[1]+=1),p.value=n,"month"!==e.mode&&"quarter"!==e.mode||f.value[0]!==f.value[1]||(f.value=[f.value[0],f.value[0]+1])}else{var r=LC({value:v.value,mode:e.mode,format:x.value.format,enableTimePicker:e.enableTimePicker}),o=r.year,a=r.month;f.value=o,p.value=a}else g.value=0,y.value=!1,b.value=!1,l.value=IC(v.value,{format:x.value.valueType,targetFormat:x.value.format})}));var I=t.computed((function(){return{hoverValue:y.value?l.value:[],value:P.value?h.value:v.value,isFirstValueSelected:b.value,activeIndex:g.value,year:f.value,month:p.value,format:x.value.format,mode:e.mode,presets:e.presets,time:m.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,popupVisible:u.value,panelPreselection:e.panelPreselection,cancelRangeSelectLimit:e.cancelRangeSelectLimit,onCellClick:N,onCellMouseEnter:S,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:D,onPresetClick:E,onYearChange:F,onMonthChange:T,onTimePickerChange:V}}));return function(){return t.createVNode("div",{class:o.value},[t.createVNode(PP,{readonly:C.value,disabled:O.value,label:e.label,status:e.status,tips:e.tips||r.tips,inputValue:l.value,popupProps:d.value,rangeInputProps:c.value,popupVisible:u.value,panel:function(){return t.createVNode(kP,I.value,null)}},null)])}}}),VP={defaultTime:{type:Array,default:function(){return["00:00:00","23:59:59"]}},onCellClick:Function,onChange:Function,onConfirm:Function,onMonthChange:Function,onPanelClick:Function,onPresetClick:Function,onTimeChange:Function,onYearChange:Function};function DP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var EP=t.defineComponent({name:"TDateRangePickerPanel",props:function(e){for(var t=1;t=s[1])if(s[0]-=1,-1===s[0])s[0]=11,o.value=[(null===(f=o.value)||void 0===f?void 0:f[0])-1,null===(p=o.value)||void 0===p?void 0:p[1]]}a.value=s,null===(l=e.onMonthChange)||void 0===l||l.call(e,{partial:u,month:s[c],date:r.value.map((function(e){return Ka(e).toDate()})),trigger:"month-select"})}t.onMounted((function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map((function(e){return FC(e,d.value.format).month()}));o.value=r.value.map((function(e){return FC(e,d.value.valueType).year()})),o.value[0]===o.value[1]&&t[0]===t[1]&&(11===t[0]?t[0]-=1:t[1]+=1),a.value=t,["month","quarter"].includes(e.mode)&&o.value[0]===o.value[1]&&(o.value=[o.value[0],o.value[0]+1])}}));var S=t.computed((function(){return{hoverValue:f.value?p.value:[],value:v.value?u.value:r.value,activeIndex:m.value,year:o.value,month:a.value,mode:e.mode,format:d.value.format,presets:e.presets,time:l.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,panelPreselection:e.panelPreselection,popupVisible:!0,panelClick:e.onPanelClick,onCellClick:y,onCellMouseEnter:h,onCellMouseLeave:g,onJumperClick:b,onConfirmClick:O,onPresetClick:C,onYearChange:x,onMonthChange:P,onTimePickerChange:w}}));return function(){return t.createVNode(kP,S.value,null)}}}),FP=fi(cP),TP=fi(vP),IP=fi(_P),MP=fi(EP),AP={exports:{}},BP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var n in t)void 0===e[n]&&(e[n]=t[n]);return e},e.exports=t.default,e.exports.default=t.default}(BP,BP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,r.default)({format:t},l):(0,r.default)(t,l);if("string"==typeof e&&function(e){return/(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(e)}(t.format)){if(t.strictMode&&e.length!==t.format.length)return!1;var n,a=t.delimiters.find((function(e){return-1!==t.format.indexOf(e)})),i=t.strictMode?a:t.delimiters.find((function(t){return-1!==e.indexOf(t)})),u=function(e,t){for(var n=[],r=Math.max(e.length,t.length),o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,l=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw l}}}}(u);try{for(s.s();!(n=s.n()).done;){var d=(y=n.value,b=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(y,b)||o(y,b)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=d[0],f=d[1];if(!v||!f||v.length!==f.length)return!1;c[f.charAt(0)]=v}}catch(e){s.e(e)}finally{s.f()}var p=c.y;if(p.startsWith("-"))return!1;if(2===c.y.length){var m=parseInt(c.y,10);if(isNaN(m))return!1;p=m<(new Date).getFullYear()%100?"20".concat(c.y):"19".concat(c.y)}var h=c.m;1===c.m.length&&(h="0".concat(c.m));var g=c.d;return 1===c.d.length&&(g="0".concat(c.d)),new Date("".concat(p,"-").concat(h,"-").concat(g,"T00:00:00.000Z")).getUTCDate()===+c.d}var y,b;if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,r=(n=BP.exports)&&n.__esModule?n:{default:n};function o(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=n&&(void 0===a||l<=a)};var n,r=(n=zP.exports)&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}e.exports=t.default,e.exports.default=t.default}(WP,WP.exports);var KP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),(t=(0,r.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));!0===t.allow_wildcard&&0===e.indexOf("*.")&&(e=e.substring(2));var o=e.split("."),l=o[o.length-1];if(t.require_tld){if(o.length<2)return!1;if(!t.allow_numeric_tld&&!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(l))return!1;if(/\s/.test(l))return!1}if(!t.allow_numeric_tld&&/^\d+$/.test(l))return!1;return o.every((function(e){return!(e.length>63&&!t.ignore_max_length)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)&&(!/[\uff01-\uff5e]/.test(e)&&(!/^-|-$/.test(e)&&!(!t.allow_underscores&&/_/.test(e)))))}))};var n=o(zP.exports),r=o(BP.exports);function o(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1,ignore_max_length:!1};e.exports=t.default,e.exports.default=t.default}(KP,KP.exports);var UP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,r.default)(t),n=String(n),!n)return e(t,4)||e(t,6);if("4"===n)return l.test(t);if("6"===n)return u.test(t);return!1};var n,r=(n=zP.exports)&&n.__esModule?n:{default:n};var o="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",a="(".concat(o,"[.]){3}").concat(o),l=new RegExp("^".concat(a,"$")),i="(?:[0-9a-fA-F]{1,4})",u=new RegExp("^("+"(?:".concat(i,":){7}(?:").concat(i,"|:)|")+"(?:".concat(i,":){6}(?:").concat(a,"|:").concat(i,"|:)|")+"(?:".concat(i,":){5}(?::").concat(a,"|(:").concat(i,"){1,2}|:)|")+"(?:".concat(i,":){4}(?:(:").concat(i,"){0,1}:").concat(a,"|(:").concat(i,"){1,3}|:)|")+"(?:".concat(i,":){3}(?:(:").concat(i,"){0,2}:").concat(a,"|(:").concat(i,"){1,4}|:)|")+"(?:".concat(i,":){2}(?:(:").concat(i,"){0,3}:").concat(a,"|(:").concat(i,"){1,5}|:)|")+"(?:".concat(i,":){1}(?:(:").concat(i,"){0,4}:").concat(a,"|(:").concat(i,"){1,6}|:)|")+"(?::((?::".concat(i,"){0,5}:").concat(a,"|(?::").concat(i,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");e.exports=t.default,e.exports.default=t.default}(UP,UP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,c)).require_display_name||t.allow_display_name){var u=e.match(s);if(u){var g=u[1];if(e=e.replace(g,"").replace(/(^<|>$)/g,""),g.endsWith(" ")&&(g=g.slice(0,-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(g))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>h)return!1;var y=e.split("@"),b=y.pop(),w=b.toLowerCase();if(t.host_blacklist.length>0&&(0,r.default)(w,t.host_blacklist))return!1;if(t.host_whitelist.length>0&&!(0,r.default)(w,t.host_whitelist))return!1;var O=y.join("@");if(t.domain_specific_validation&&("gmail.com"===w||"googlemail.com"===w)){var C=(O=O.toLowerCase()).split("+")[0];if(!(0,o.default)(C.replace(/\./g,""),{min:6,max:30}))return!1;for(var x=C.split("."),P=0;P]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,l.default)(t,c)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&e.includes("#"))return!1;if(!t.allow_query_components&&(e.includes("?")||e.includes("&")))return!1;var i,d,v,f,p,m,h,g;if(h=e.split("#"),e=h.shift(),h=e.split("?"),e=h.shift(),(h=e.split("://")).length>1){if(i=h.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(i))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;h[0]=e.slice(2)}}if(""===(e=h.join("://")))return!1;if(h=e.split("/"),""===(e=h.shift())&&!t.require_host)return!0;if((h=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===h[0])return!1;if((d=h.shift()).indexOf(":")>=0&&d.split(":").length>2)return!1;var y=d.split(":"),b=(x=2,function(e){if(Array.isArray(e))return e}(C=y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(C,x)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(C,x)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=b[0],O=b[1];if(""===w&&""===O)return!1}var C,x;f=h.join("@"),m=null,g=null;var P=f.match(s);P?(v="",g=P[1],m=P[2]||null):(v=(h=f.split(":")).shift(),h.length&&(m=h.join(":")));if(null!==m&&m.length>0){if(p=parseInt(m,10),!/^[0-9]+$/.test(m)||p<=0||p>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(v,t.host_whitelist);if(""===v&&!t.require_host)return!0;if(!((0,a.default)(v)||(0,o.default)(v,t)||g&&(0,a.default)(g,6)))return!1;if(v=v||g,t.host_blacklist&&(0,r.default)(v,t.host_blacklist))return!1;return!0};var n=i(zP.exports),r=i(HP.exports),o=i(KP.exports),a=i(UP.exports),l=i(BP.exports);function i(e){return e&&e.__esModule?e:{default:e}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:al(e)>=t},len:function(e,t){return al(String(e))===t},number:function(e){return Ho(e)},enum:function(e,t){return t.includes(e)},idcard:function(e){return/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/i.test(e)},telnumber:function(e){return/^1[3-9]\d{9}$/.test(e)},pattern:function(e,t){return t.test(e)},validator:function(e,t){return t(e)}};function JP(e,t){return QP.apply(this,arguments)}function QP(){return QP=Bf(Hf.mark((function e(t,n){var r,o,a,l,i,u,c;return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 3:if(!(i0;return null!=r?r:o})),h=t.computed((function(){var e;return null!==(e=null==v?void 0:v.requiredMarkPosition)&&void 0!==e?e:"left"})),g=t.computed((function(){return r.label||e.label})),y=t.computed((function(){return!(null==v||!v.colon||!g.value)})),b=Ga("form__label"),w=t.computed((function(){return Wo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign})),O=t.computed((function(){return Wo(e.labelWidth)?null==v?void 0:v.labelWidth:e.labelWidth})),C=t.computed((function(){return[a.value.label,s(s(s(s(s({},"".concat(b.value,"--required"),m.value),"".concat(b.value,"--required-right"),m.value&&"right"===h.value),"".concat(b.value,"--top"),g.value&&("top"===w.value||!O.value)),"".concat(b.value,"--left"),"left"===w.value&&O.value),"".concat(b.value,"--right"),"right"===w.value&&O.value)]})),x=t.computed((function(){return"".concat(f.value,"-is-").concat(e.status||"default"," ").concat("success"===e.status?a.value.successBorder:"")})),P=function(){if(0!==Number(O.value)){var n={};return O.value&&"top"!==w.value&&(n=Ho(O.value)?{width:"".concat(O.value,"px")}:{width:O.value}),t.createVNode("div",{class:C.value,style:n},[t.createVNode("label",{for:e.for||null},[o("label")]),y.value&&l.value.colonText])}},S=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=D.value;if(F.value===uy.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d}[r]||u)}return null},k=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:S()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:S(),params:e}))||void 0}},N=t.computed((function(){if(!Z.value)return"";if(F.value===uy.SUCCESS)return e.successBorder?[a.value.success,a.value.successBorder].join(" "):a.value.success;if(D.value.length){var t=D.value[0].type||"error";return e.status?x.value:"error"===t?a.value.error:a.value.warning}})),_=t.computed((function(){return[a.value.controls,N.value]})),V=t.computed((function(){var e={};return O.value&&"top"!==w.value&&(e=Ho(O.value)?{marginLeft:"".concat(O.value,"px")}:{marginLeft:O.value}),e})),D=t.ref([]),E=t.ref([]),F=t.ref(uy.TO_BE_VALIDATED),T=t.ref(!1),I=t.ref(!1),M=function(){I.value=!1,D.value=[],E.value=[],F.value=uy.TO_BE_VALIDATED},A=function(){var n=Bf(Hf.mark((function n(){var r,o=arguments;return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=o.length>0&&void 0!==o[0]?o[0]:null==v?void 0:v.resetType,e.name){n.next=3;break}return n.abrupt("return");case 3:return"empty"===r?Va(null==v?void 0:v.data,e.name,(a=void 0,l=void 0,"[object String]"===(l=Object.prototype.toString.call(St(null==v?void 0:v.data,e.name)))&&(a=""),"[object Array]"===l&&(a=[]),"[object Object]"===l&&(a={}),a)):"initial"===r&&Va(null==v?void 0:v.data,e.name,K.value),n.next=6,t.nextTick();case 6:T.value?I.value=!0:M();case 7:case"end":return n.stop()}var a,l}),n)})));return function(){return n.apply(this,arguments)}}(),B=t.computed((function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage})),L=t.computed((function(){var t;if(null!==(t=e.rules)&&void 0!==t&&t.length)return e.rules;if(!e.name)return[];var n="".concat(e.name).lastIndexOf(".")||-1,r="".concat(e.name).slice(n+1);return St(null==v?void 0:v.rules,e.name)||St(null==v?void 0:v.rules,r)||[]})),R=function(){var t=Bf(Hf.mark((function t(n){var r,o;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?L.value:L.value.filter((function(e){return(e.trigger||"change")===n})),!L.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=4;break}return t.abrupt("return",o);case 4:return o.allowSetValue=!0,t.next=7,ej(W.value,o.rules);case 7:return o.resultList=t.sent,o.errorList=o.resultList.filter((function(e){return!0!==e.result})).map((function(t){return Object.keys(t).forEach((function(n){if(!t.message&&B.value[n]){var r=Do(e.label)?e.label:e.name;t.message=(o=B.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,(function(e,t){return a[t.trim()]||""})))}var o,a})),t})),o.successList=o.resultList.filter((function(e){return!0===e.result&&e.message&&"success"===e.type})),t.abrupt("return",o);case 11:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),z=function(){var t=Bf(Hf.mark((function t(n,r){var o,a,l,i,u;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return T.value=!0,$.value=r,t.next=4,R(n);case 4:return o=t.sent,a=o.successList,l=o.errorList,i=o.rules,u=o.resultList,o.allowSetValue&&(E.value=a,D.value=l),i.length&&(F.value=l.length?uy.FAIL:uy.SUCCESS),I.value&&M(),T.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 15:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),H=function(){var t=Bf(Hf.mark((function t(n){var r,o,a;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,R(n);case 2:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),W=t.computed((function(){return(null==v?void 0:v.data)&&St(null==v?void 0:v.data,e.name)})),K=t.ref(void 0),U=t.toRefs(e).name,Y=t.reactive({name:U,resetHandler:M,resetField:A,validate:z,validateOnly:H,setValidateMessage:function(e){(e||j(e))&&(0===e.length&&(D.value=[],F.value=uy.SUCCESS),D.value=e.map((function(e){return oj(oj({},e),{},{result:!1})})),F.value=uy.FAIL)}});t.onMounted((function(){K.value=Mr(W.value),null==v||v.children.push(Y)})),t.onBeforeUnmount((function(){v&&(v.children=null==v?void 0:v.children.filter((function(e){return e!==Y})))})),t.watch(W,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,z("change");case 2:case"end":return e.stop()}}),e)}))),{deep:!0}),t.watch((function(){return[e.name,JSON.stringify(e.rules)].join(",")}),(function(){z("change")}));var $=t.ref(void 0),Z=t.computed((function(){return Mo($.value)?$.value:Mo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage})),q=t.computed((function(){return[a.value.formItem,aj(p.value,e.name),s(s({},a.value.formItemWithHelp,X.value),a.value.formItemWithExtra,G.value)]})),X=t.computed((function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null})),G=t.computed((function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=D.value;return Z.value&&null!=r&&null!==(e=r[0])&&void 0!==e&&e.message?n(r[0].message):E.value.length?n(E.value[0].message):null})),J=t.computed((function(){var e=o("tips");if(!e)return null;var n=["".concat(p.value,"-tips"),"".concat(f.value,"-tips"),x.value];return t.createVNode("div",{class:n},[e])})),Q=function(){var e=Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,z("blur");case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return t.provide(sy,{handleBlur:Q}),function(){return t.createVNode("div",{class:q.value},[P(),t.createVNode("div",{class:_.value,style:V.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),k()]),X.value,J.value,G.value])])}}}),ij={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},formControlledComponents:{type:Array},id:{type:String,default:void 0},labelAlign:{type:String,default:"right",validator:function(e){return!e||["left","right","top"].includes(e)}},labelWidth:{type:[String,Number],default:"100px"},layout:{type:String,default:"vertical",validator:function(e){return!e||["vertical","inline"].includes(e)}},preventSubmitDefault:{type:Boolean,default:!0},readonly:{type:Boolean,default:void 0},requiredMark:{type:Boolean,default:void 0},requiredMarkPosition:{type:String,default:"left",validator:function(e){return!e||["left","right"].includes(e)}},resetType:{type:String,default:"empty",validator:function(e){return!e||["empty","initial"].includes(e)}},rules:{type:Object},scrollToFirstError:{type:String,validator:function(e){return!e||["","smooth","auto"].includes(e)}},showErrorMessage:{type:Boolean,default:!0},statusIcon:{type:[Boolean,Function],default:void 0},submitWithWarningMessage:Boolean,onReset:Function,onSubmit:Function,onValidate:Function},uj=t.defineComponent({name:"TForm",props:ij,setup:function(e,n){var r=n.expose,o=Ql(),a=t.toRefs(e),l=a.disabled,i=a.readonly;t.provide("formDisabled",{disabled:l}),t.provide("formReadonly",{readonly:i});var u=t.ref(null),c=t.ref([]),d=t.toRefs(e),v=d.showErrorMessage,f=d.labelWidth,p=d.labelAlign,m=d.data,h=d.colon,g=d.requiredMark,y=d.requiredMarkPosition,b=d.rules,w=d.errorMessage,O=d.resetType;t.provide(cy,t.reactive({showErrorMessage:v,labelWidth:f,labelAlign:p,data:m,colon:h,requiredMark:g,requiredMarkPosition:y,rules:b,errorMessage:w,resetType:O,children:c,renderContent:o}));var C=Ga("form"),x=iy(),P=t.computed((function(){return[x.value.form,s({},"".concat(C.value,"-inline"),"inline"===e.layout)]})),S=Ga("form-item"),k=function(t){if(Mo(t))return"";var n=Ra(Object.keys(t),1)[0];if(e.scrollToFirstError){var r=aj(S.value,n);N(r)}var o=t[n];return j(o)?o.filter((function(e){return!e.result}))[0].message:""},N=function(t){var n=Ra(u.value.getElementsByClassName(t),1)[0],r=e.scrollToFirstError;r&&n&&n.scrollIntoView({behavior:r})},_=function(e,t){return!t||!j(t)||-1!==t.indexOf("".concat(e))},V=function(e){var t=e.reduce((function(e,t){return Object.assign(e||{},t)}),{});return Object.keys(t).forEach((function(e){!0===t[e]&&delete t[e]})),!!Ro(t)||t},D=function(){var t=Bf(Hf.mark((function t(n){var r,o,a,l,i,u,s,d,v,f;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=(o=n||{}).fields,l=o.trigger,i=void 0===l?"all":l,u=o.showErrorMessage,s=c.value.filter((function(e){return H(e.validate)&&_(String(e.name),a)})).map((function(e){return e.validate(i,u)})),t.next=4,Promise.all(s);case 4:return d=t.sent,v=V(d),f=k(v),null===(r=e.onValidate)||void 0===r||r.call(e,{validateResult:v,firstError:f}),t.abrupt("return",v);case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),E=function(){var e=Bf(Hf.mark((function e(t){var n,r,o,a,l,i;return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(n=t||{}).fields,o=n.trigger,a=void 0===o?"all":o,l=c.value.filter((function(e){return H(e.validateOnly)&&_(String(e.name),r)})).map((function(e){return e.validateOnly(a)})),e.next=4,Promise.all(l);case 4:return i=e.sent,e.abrupt("return",V(i));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),F=t.ref(),T=function(){var e=Bf(Hf.mark((function e(t){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:F.value=t,Bl(u.value);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),I=t.ref();return r({validate:D,submit:T,reset:function(e){I.value=e,u.value.reset()},clearValidate:function(e){c.value.forEach((function(t){H(t.resetHandler)&&_(String(t.name),e)&&t.resetHandler()}))},setValidateMessage:function(e){var t=Object.keys(e);if(t.length){var n=c.value.filter((function(e){return H(e.setValidateMessage)&&t.includes("".concat(e.name))})).map((function(t){return t.setValidateMessage(e[t.name])}));Promise.all(n)}},validateOnly:E}),function(){return t.createVNode("form",{ref:u,class:P.value,onSubmit:function(t){return function(t){e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),D(F.value).then((function(n){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,{validateResult:n,firstError:k(n),e:t})})),F.value=void 0}(t)},onReset:function(t){return function(t){var n;e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),c.value.filter((function(e){var t;return H(e.resetField)&&_(String(e.name),null===(t=I.value)||void 0===t?void 0:t.fields)})).forEach((function(e){var t;return e.resetField(null===(t=I.value)||void 0===t?void 0:t.type)})),I.value=void 0,null===(n=e.onReset)||void 0===n||n.call(e,{e:t})}(t)}},[o("default")])}}}),cj=fi(uj),sj=fi(lj),dj={allowUncheck:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},label:{type:[String,Function]},name:{type:String,default:""},readonly:{type:Boolean,default:void 0},value:{type:[String,Number,Boolean],default:void 0},onChange:Function,onClick:Function},vj=Symbol("RadioGroupProvide"),fj=Symbol("RadioButtonProvide"),pj=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:dj,setup:function(e,n){var r=n.attrs,o=t.ref(),a=t.toRefs(e),l=Ra(qm(a.checked,a.modelValue,e.defaultChecked,e.onChange,"checked"),2),u=l[0],c=l[1],d=t.computed((function(){return v?e.value===v.value:u.value})),v=t.inject(vj,void 0),f=t.computed((function(){return Boolean(e.allowUncheck||(null==v?void 0:v.allowUncheck))})),p=function(e){e.stopPropagation()},m=function(t){var n;if(!w.value&&!O.value&&(null===(n=e.onClick)||void 0===n||n.call(e,{e:t}),!d.value||f.value))if(v){var r=d.value&&f.value?void 0:e.value;v.setValue(r,{e:t,name:v.name})}else{var o=!f.value||!d.value;c(o,{e:t})}},h=t.computed((function(){return nl({focus:r.onFocus,blur:r.onBlur,keydown:r.onKeydown,keyup:r.onKeyup,keypresss:r.onKeypresss})})),g=t.computed((function(){var e=[].concat(i(Object.keys(h.value)),["input","change"]).map((function(e){return"on".concat(e[0].toUpperCase()).concat(e.slice(1))}));return ta(r,e)})),y=t.computed((function(){return null==v?void 0:v.disabled})),b=t.computed((function(){return null==v?void 0:v.readonly})),w=wi({afterDisabled:y}),O=ly({afterReadonly:b}),C=t.computed((function(){return{name:v?v.name:e.name,checked:d.value,disabled:w.value,readonly:O.value,value:e.value}})),x=Ja().STATUS,P=t.inject(fj,void 0),j=Ga("radio-button"),S=Ga("radio"),k=t.computed((function(){return P?j.value:S.value})),N=t.computed((function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]})),_=ti();return function(){return t.createVNode("label",t.mergeProps({ref:o,class:N.value},g.value,{tabindex:w.value?void 0:"0",onClick:m}),[t.createVNode("input",t.mergeProps({type:"radio",class:"".concat(k.value,"__former")},h.value,C.value,{onClick:p,tabindex:"-1","data-value":Do(e.value)?"'".concat(e.value,"'"):e.value,"data-allow-uncheck":f.value||void 0}),null),t.createVNode("span",{class:"".concat(k.value,"__input")},null),t.createVNode("span",{class:"".concat(k.value,"__label")},[_("default","label")])])}}}),mj={allowUncheck:Boolean,disabled:{type:Boolean,default:void 0},name:{type:String,default:""},options:{type:Array},readonly:{type:Boolean,default:void 0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"radio",validator:function(e){return!e||["radio","button"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},variant:{type:String,default:"outline",validator:function(e){return!e||["outline","primary-filled","default-filled"].includes(e)}},onChange:Function};function hj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gj(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?wj:l,u=el(a,bj),c=i&&"MutationObserver"in i,s=function(){r&&(r.disconnect(),r=void 0)},d=t.watch((function(){return n=e,o=t.unref(n),null!==(r=null==o?void 0:o.$el)&&void 0!==r?r:o;var n,r,o}),(function(e){s(),c&&i&&e&&(r=new MutationObserver(n)).observe(e,u)}),{immediate:!0}),v=function(){s(),d()};return o=v,t.getCurrentScope()&&t.onScopeDispose(o),{isSupported:c,stop:v}}function Cj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xj(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if("outline"!==e.variant){var n=l.value.querySelector(p.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?m.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(p.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;m.value=xj(xj({},m.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else m.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.nextTick();case 2:h();case 3:case"end":return e.stop()}}),e)})))),t.onMounted((function(){h(!0),mh(l,Ea(Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.nextTick();case 2:h();case 3:case"end":return e.stop()}}),e)}))),300));var e=l.value.querySelector("".concat(p.value," .").concat(i.value,"__label"));e&&(f=Oj(e,(function(e){e.forEach((function(e){"characterData"===e.type&&h()}))}),{attributes:!0,childList:!0,characterData:!0,subtree:!0}))})),t.onUnmounted((function(){var e;null===(e=f)||void 0===e||e.stop()}));var g=t.toRefs(e),y=g.name,b=g.disabled,w=g.readonly;t.provide(vj,t.reactive({name:y,disabled:b,readonly:w,value:o,allowUncheck:e.allowUncheck,setValue:v}));var O=Ga("radio-group"),C=ei(),x=function(){if(e.variant.includes("filled")&&!Wo(o.value))return t.createVNode("div",{style:m.value,class:"".concat(O.value,"__bg-block")},null)},P=t.computed((function(){return["".concat(O.value),d.value[e.size],s(s(s({},"".concat(O.value,"__outline"),"outline"===e.variant),"".concat(O.value,"--filled"),e.variant.includes("filled")),"".concat(O.value,"--primary-filled"),"primary-filled"===e.variant)]}));return function(){return t.createVNode("div",{ref:l,class:P.value},[C("default")||(null===(n=e.options)||void 0===n?void 0:n.map((function(n){var r=n;(Ho(n)||Do(n))&&(r={value:n,label:n.toString()});var a="button"===e.theme?yj:pj;return t.createVNode(a,{key:"radio-group-options-".concat(r.value,"-").concat(Math.random()),name:e.name,checked:o.value===r.value,disabled:"disabled"in r?r.disabled:e.disabled,value:r.value},{default:function(){return[H(r.label)?r.label(t.h):r.label]}})}))),x()]);var n}}}),jj=fi(pj),Sj=fi(Pj),kj=fi(yj),Nj={disabled:{type:Boolean,default:void 0},inputNumberProps:{type:[Boolean,Object],default:!1},label:{type:[String,Boolean,Function],default:!0},layout:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},marks:{type:[Object,Array]},max:{type:Number,default:100},min:{type:Number,default:0},range:Boolean,showStep:Boolean,step:{type:Number,default:1},tooltipProps:{type:Object},value:{type:[Number,Array],default:void 0},modelValue:{type:[Number,Array],default:void 0},defaultValue:{type:[Number,Array],default:0},onChange:Function,onChangeEnd:Function},_j=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},Vj=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};function Dj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ej(e){for(var t=1;t100?r=100:r<0&&(r=0);var o=100*g.value/m.value,a=Math.round(r/o)*o*m.value*.01;a+=d.min,a=Number(parseFloat("".concat(a)).toFixed(d.precision)),n.emit("input",a),t.nextTick((function(){var e,t;l.value&&(null===(e=(t=l.value).updatePopper)||void 0===e||e.call(t))}))}},w=function(){v.value.focus(),u(!0)},O=function(){p.dragging||u(!1)},C=function(t){var n=t;if(p.dragging){f.value=!0,p.isClick=!1,null!=d&&d.resetSize&&H(null==d?void 0:d.resetSize)&&d.resetSize();var r=0,o=d.sliderSize,a=n.type,l=n.clientY,i=n.clientX;if("touchmove"===a){var u=n.touches,c=[u[0].clientY,u[0].clientX];l=c[0],i=c[1]}r=(r=e.vertical?p.startY-l:i-p.startX)/o*100,p.newPos=p.startPos+r,b(p.newPos)}},x=function(){p.dragging&&(setTimeout((function(){p.dragging=!1,u(!1),p.isClick||b(p.newPos),f.value&&n.emit("mouseup"),f.value=!1}),0),window.removeEventListener("mousemove",C),window.removeEventListener("touchmove",C),window.removeEventListener("mouseup",x),window.removeEventListener("touchend",x),window.removeEventListener("contextmenu",x))};function P(t){d.disabled||(t.preventDefault(),function(t){p.dragging=!0,p.isClick=!0;var n=t.type,r=t.clientY,o=t.clientX;if("touchstart"===n){var a=t.touches,l=[a[0].clientY,a[0].clientX];r=l[0],o=l[1]}e.vertical?p.startY=r:p.startX=o,p.startPos=parseFloat(h.value),p.newPos=p.startPos}(t),window.addEventListener("mousemove",C),window.addEventListener("mouseup",x),window.addEventListener("touchmove",C),window.addEventListener("touchend",x),window.addEventListener("contextmenu",x))}var j=function(e){if(!d.disabled){var t=g.value/m.value*100;"sub"===e&&(t=-t),p.newPos=parseFloat(h.value)+t,b(p.newPos)}},S=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||j("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||j("add")};return n.expose({setPosition:b}),function(){return t.createVNode("div",{ref:v,class:"".concat(r.value,"-wrapper"),style:y.value,tabindex:"0","show-tooltip":c.value,onMouseenter:w,onMouseleave:O,onMousedown:P,onTouchstart:P,onFocus:w,onBlur:O,onKeydown:S},[t.createVNode(Lh,t.mergeProps({ref:l,hideEmptyPopup:!0,disabled:!c.value},i.value),{default:function(){return[t.createVNode("div",{class:[r.value,s({},"".concat(r.value,"--dragging"),p.dragging)]},null)]}})])}}}),Aj=t.defineComponent({name:"TSliderMark",props:{mark:{type:[Object,Array,String,Number]},point:{type:Number},onClickMarkPoint:{type:Function,default:function(){}}},setup:function(e){var n=Ga("slider__mark"),r=function(t){var n;t.stopPropagation(),null==e||null===(n=e.onClickMarkPoint)||void 0===n||n.call(e,e.point)};return function(){return t.createVNode("div",{class:"".concat(n.value,"-text"),onClick:r},[e.mark])}}});function Bj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Lj(e){for(var t=1;te.max)return[];if(0===e.step)return console.warn("[Element Warn][Slider]step should not be 0."),[];for(var t=S.value/e.step,n=100*e.step/S.value,r=[],o=1;o100*(N.value-e.max)/S.value})):r.filter((function(t){return t>100*(m.value-e.min)/S.value}))})),V=t.computed((function(){var t=[e.min,e.max,e.step].map((function(e){var t="".concat(e).split(".");return t[1]?t[1].length:0}));return Math.max.apply(null,t)})),D=function(t){var n=[e.min,e.max],r=n[0],o=n[1];if(!(r>o)){if(e.range&&j(t)){var a=[Math.min.apply(Math,i(t)),Math.max.apply(Math,i(t))],l=a[0],u=a[1];l>o&&(l=m.value),lo&&(u=o);var c=[l,u];return m.value=c[0],h.value=c[1],[l,u]}var s=t;return so&&(s=o),s}console.warn("[Slider] max should be greater than min.")},E=function(t){var n=t;void 0===n&&(n=e.range?[m.value,h.value]:m.value);var r=D(n);c(r)},F=function(){v.value&&(y.value=v.value["client".concat(b.value?"Height":"Width")])},T=t.ref(!1),I=function(){var t;e.range?(j(u.value)?(m.value=Math.max(e.min||0,u.value[0]),h.value=Math.min(e.max||100,u.value[1])):(m.value=e.min||0,h.value=e.max||100),t="".concat(m.value,"-").concat(h.value)):(Ho(u.value)?m.value=Math.min(e.max,Math.max(e.min,u.value)):m.value=e.min,t=String(m.value)),d.value&&d.value.setAttribute("aria-valuetext",t),F(),window.addEventListener("resize",F)},M=function(t){var n,r=t*S.value/100;(r=e.min+r,e.range||!f.value)?("button1"===(n=Math.abs(k.value-r)h.value?"button1":"button2")&&f.value&&f.value.setPosition(t),"button2"===n&&p.value&&p.value.setPosition(t)):f.value.setPosition(t)},A=function(){var t=e.range?[m.value,h.value]:m.value;return D(t)},B=function(t){var r;if(!n.value&&!g.value&&v.value){F();var o=0;if(b.value){o=(v.value.getBoundingClientRect().bottom-t.clientY)/y.value*100,M(o)}else{var a=v.value.getBoundingClientRect().left;o=(t.clientX-a)/y.value*100,M(o)}var l=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,l)}},L=function(t){var r;if(!n.value&&!g.value){F();var o=Number(t/S.value*100);M(o),E(t);var a=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,a)}};t.watch((function(){return u.value}),(function(t){if(!0!==g.value)if(j(t)&&e.range){var n=Ra(t,2);m.value=n[0],h.value=n[1]}else m.value=t})),t.watch([m,h,g],(function(t,n){t[0]!==n[0]&&(e.range?E([k.value,N.value]):E(m.value)),t[1]!==n[1]&&e.range&&E([k.value,N.value]),t[2]!==n[2]&&!1===t[2]&&I()})),t.onMounted((function(){I(),T.value=!0})),t.onBeforeUnmount((function(){window.removeEventListener("resize",F)}));var R,z,H,W=t.computed((function(){return{max:e.max,min:e.min,marks:e.marks,vertical:b.value,prefixName:r.value}})),K=(z=(R=W).value.prefixName,H=t.computed((function(){var e=R.value;if(!e.marks)return[];var t=[];if(j(e.marks)){var n=Mr(e.marks).sort((function(e,t){return e-t})),r=Math.max.apply(Math,i(n).concat([e.max])),o=Math.min.apply(Math,i(n).concat([e.min]));o= props min"),r>e.max&&eh("TSlider","marks max value should <= props max"),n.forEach((function(e){t.push({point:e,position:(e-o)/(r-o)*100,mark:e})}))}else Object.keys(e.marks).map(parseFloat).sort((function(e,t){return e-t})).filter((function(t){return t<=e.max&&t>=e.min})).forEach((function(n){var r={point:n,position:100*(n-e.min)/(e.max-e.min),mark:e.marks[n]};t.push(r)}));return t})),function(e){return H.value.length?t.createVNode("div",null,[t.createVNode("div",{class:"".concat(z,"__stops")},[H.value.map((function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(z,"__stop ").concat(z,"__mark-stop"),style:_j(e.position,R.value.vertical),key:n},null)}))]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map((function(n,r){return t.createVNode(Aj,{mark:n.mark,point:n.point,key:r,style:_j(n.position,R.value.vertical),onClickMarkPoint:e},null)}))])]):null}),U=function(e){var n=e.value.prefixName,r=t.computed((function(){var t,n={format:void 0,placeholder:"",theme:"column",decimalPlaces:(null===(t=e.value.step.toString().split(".")[1])||void 0===t?void 0:t.length)||0},r=e.value;if(!Mo(r.inputNumberProps)){var o,a=null===(o=r.inputNumberProps)||void 0===o?void 0:o.theme;n=Lj(Lj({},n),ta(r.inputNumberProps,"onChange")),["column","row","normal"].includes(a)&&(n.theme=a)}return n})),o=t.computed((function(){return["".concat(n,"__input"),{"is-vertical":e.value.vertical}]}));return function(n,a){return t.createVNode(Zy,t.mergeProps(r.value,{class:o.value,value:n,step:e.value.step,onChange:function(t,n){var r,o;void 0===t||isNaN(t)||a(t),null===(r=e.value)||void 0===r||null===(r=r.inputNumberProps)||void 0===r||null===(o=r.onChange)||void 0===o||o.call(r,t,n)},disabled:e.value.disabled,min:e.value.min,max:e.value.max}),null)}}(t.computed((function(){return{max:e.max,min:e.min,inputNumberProps:e.inputNumberProps,step:e.step,prefixName:r.value,vertical:b.value,disabled:n.value}}))),Y=t.toRefs(e),$=Y.min,Z=Y.max,q=Y.step;return t.provide(Ij,t.reactive({min:$,max:Z,step:q,dragging:g,toggleDragging:function(e){g.value=e},precision:V,disabled:n,resetSize:F,sliderSize:y})),function(){return t.createVNode("div",{class:w.value,ref:d},[t.createVNode("div",{class:O.value,role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.layout,"aria-disabled":n.value,"tooltip-props":e.tooltipProps},[t.createVNode("div",{class:C.value,style:x.value,onClick:B,ref:v},[t.createVNode("div",{class:"".concat(r.value,"__track"),style:P.value},null),t.createVNode(Mj,{vertical:b.value,value:m.value,ref:f,disabled:n.value,range:e.range,position:"start","tooltip-props":e.tooltipProps,label:e.label,onInput:function(e){m.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.range&&t.createVNode(Mj,{vertical:b.value,value:h.value,ref:p,disabled:n.value,label:e.label,range:e.range,position:"end","tooltip-props":e.tooltipProps,onInput:function(e){h.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.showStep&&t.createVNode("div",{class:"".concat(r.value,"__stops")},[_.value.map((function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(r.value,"__stop"),key:n,style:_j(e,b.value)},null)}))]),K(L)])]),T.value&&e.inputNumberProps&&(o=D(m.value),a=D(h.value),t.createVNode("div",{class:["".concat(r.value,"__input-container"),{"is-vertical":b.value}]},[U(o,(function(e){m.value=D(e)})),e.range&&t.createVNode("div",{class:"".concat(r.value,"__center-line")},null),e.range&&U(a,(function(e){h.value=D(e)}))]))]);var o,a}}}),Hj=fi(zj),Wj=fi(Mj),Kj={beforeChange:{type:Function},customValue:{type:Array},disabled:{type:Boolean,default:void 0},label:{type:[Array,Function],default:function(){return[]}},loading:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},onChange:Function},Uj=t.defineComponent({name:"TSwitch",props:Kj,setup:function(e,n){var r=n.slots,o=wi(),a=Ga("switch"),l=Ja(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ra(qm(c.value,c.modelValue,e.defaultValue,e.onChange),2),v=d[0],f=d[1],p=t.computed((function(){return!(e.customValue&&e.customValue.length>0)||e.customValue[0]})),m=t.computed((function(){return!!(e.customValue&&e.customValue.length>1)&&e.customValue[1]}));function h(e){var t=v.value===p.value?m.value:p.value;f(t,{e:e})}function g(t){o.value||e.loading||(e.beforeChange?Promise.resolve(e.beforeChange()).then((function(e){e&&h(t)})).catch((function(e){throw new Error("Switch: some error occurred: ".concat(e))})):h(t))}var y=t.computed((function(){return["".concat(a.value),u.value[e.size],s(s(s({},i.value.disabled,o.value),i.value.loading,e.loading),i.value.checked,v.value===p.value||e.modelValue===p.value)]})),b=t.computed((function(){return["".concat(a.value,"__handle"),s(s({},i.value.disabled,o.value),i.value.loading,e.loading)]})),w=t.computed((function(){return["".concat(a.value,"__content"),u.value[e.size],s({},i.value.disabled,o.value)]}));t.watch(v,(function(t){if(e.customValue&&e.customValue.length&&!e.customValue.includes(t))throw new Error("value is not in ".concat(JSON.stringify(e.customValue)))}),{immediate:!0});var O=t.computed((function(){if(H(e.label))return e.label(t.h,{value:v.value});if(Do(e.label))return e.label;if(j(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(Do(n))return n;if(H(n))return n(t.h)}return r.label?r.label({value:v.value}):null}));return function(){var n,r;return e.loading?r=t.createVNode(pi,{size:"small"},null):O.value&&(n=O.value),t.createVNode("div",{class:y.value,onClick:g},[t.createVNode("span",{class:b.value},[r]),t.createVNode("div",{class:w.value},[n])])}}}),Yj=fi(Uj),$j={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function};function Zj(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Rj||(Rj=document.createElement("textarea"),document.body.appendChild(Rj));var o=function(e){if("undefined"==typeof window)return{paddingSize:0,borderSize:0,boxSizing:0,sizingStyle:""};var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing");return{paddingSize:parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),borderSize:parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width")),boxSizing:n,sizingStyle:il.map((function(e){return"".concat(e,":").concat(t.getPropertyValue(e))})).join(";")}}(e),a=o.paddingSize,l=o.borderSize,i=o.boxSizing,u=o.sizingStyle;Rj.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),Rj.value=e.value||e.placeholder||"";var c=Rj.scrollHeight,s={},d="border-box"===i;d?c+=l:"content-box"===i&&(c-=a),Rj.value="";var v=Rj.scrollHeight-a;null===(t=Rj)||void 0===t||null===(t=t.parentNode)||void 0===t||t.removeChild(Rj),Rj=null;var f=function(e){var t=v*e;return d&&(t=t+a+l),t};if(!Ko(n)){var p=f(n);c=Math.max(p,c),s.minHeight="".concat(p,"px")}return Ko(r)||(c=Math.min(f(r),c)),s.height="".concat(c,"px"),s}var qj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:$j,setup:function(e,n){var r=n.attrs,o=n.expose,a=Ga(),l=Ga("textarea"),i=t.computed((function(){return"".concat(l.value,"__tips")})),c=t.computed((function(){return"".concat(l.value,"__limit")})),d=t.toRefs(e),v=Ra(qm(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=wi(),h=ly(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var n;if(!0===e.autosize)t.nextTick((function(){g.value=Zj(y.value)}));else if(e.autosize&&"object"===u(e.autosize)){var o=e.autosize,a=o.minRows,l=o.maxRows;t.nextTick((function(){g.value=Zj(y.value,a,l)}))}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(n=y.value)&&void 0!==n&&null!==(n=n.style)&&void 0!==n&&n.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=al(r,e.maxcharacter);r="object"===u(o)&&o.characters}!w.value&&p(r,{e:n}),t.nextTick((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=y.value,n=String(e);t&&t.value!==n&&(t.value=n,f.value=n)}(r)})),O()},x=function(e){C(e)},P=function(){w.value=!0},j=function(e){w.value=!1,C(e)},S=function(t,n){var r;if(!m.value){var o="on".concat(t[0].toUpperCase()).concat(t.slice(1));null===(r=e[o])||void 0===r||r.call(e,f.value,{e:n})}},k=function(e){S("keydown",e)},N=function(e){S("keyup",e)},_=function(e){S("keypress",e)},V=function(t){var n;O(),m.value||(b.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,f.value,{e:t}))},D=t.inject(sy,void 0),F=function(t){var n;t.target&&(O(),b.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,f.value,{e:t}),null==D||D.handleBlur())},T=t.computed((function(){return[l.value,s(s({},"".concat(a.value,"-is-disabled"),m.value),"".concat(a.value,"-is-readonly"),h.value)]})),I=t.computed((function(){return nl({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})})),M=t.computed((function(){var e=al(String(f.value||""));return"object"===u(e)?e.length:e})),A=dy(t.computed((function(){return{value:[void 0,null].includes(f.value)?void 0:String(f.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))).tStatus;t.watch((function(){return f.value}),(function(){return O()})),t.watch(y,(function(t){t&&(O(),e.autofocus&&t.focus())})),t.watch(g,(function(e){var t=r.style;E(t)?Qa(y.value,Go(t,e)):Qa(y.value,e)})),t.watch(f,(function(){t.nextTick((function(){return O()}))})),t.watch((function(){return e.autosize}),O,{deep:!0}),o({focus:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.focus()},blur:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.blur()}}),t.onMounted((function(){O()}));var B=Ql();return function(){var n,o=nl({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=Ja().STATUS,v=t.computed((function(){return["".concat(l.value,"__inner"),s(s(s(s({},"".concat(a.value,"-is-").concat(A.value),A.value),d.value.disabled,m.value),d.value.focused,b.value),"".concat(a.value,"-resize-none"),"object"===u(e.autosize)),"narrow-scrollbar"]})),p=B("tips"),h=p&&t.createVNode("div",{class:"".concat(i.value," ").concat(l.value,"__tips--").concat(e.status||"normal")},[p]),g=e.maxcharacter&&t.createVNode("span",{class:c.value},["".concat(M.value,"/").concat(e.maxcharacter)])||!e.maxcharacter&&e.maxlength&&t.createVNode("span",{class:c.value},["".concat(f.value?null===(n=String(f.value))||void 0===n?void 0:n.length:0,"/").concat(e.maxlength)]);return t.createVNode("div",t.mergeProps({class:T.value},ta(r,["style"])),[t.createVNode("textarea",t.mergeProps({onInput:x,onCompositionstart:P,onCompositionend:j,ref:y,value:f.value,class:v.value},o,I.value),null),h||g?t.createVNode("div",{class:["".concat(l.value,"__info_wrapper"),s({},"".concat(l.value,"__info_wrapper_align"),!h)]},[h,g]):null])}}}),Xj=fi(qj);function Gj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Jj="source",Qj="target";function eS(e){return j(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function tS(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.isTreeMode,o=void 0!==r&&r,a=n.include,l=void 0===a||a,i=n.remainValue,u=void 0===i?[]:i;if(o){var c=[];if(e)for(var s=0;s0){var f=tS(d.children,t,{isTreeMode:o,include:l});c=c.concat(f)}else(l&&v||!l&&!v)&&c.push(d.value)}return c}return e.filter((function(e){if(!e)return!1;var n=t.includes(e.value);return(l&&n||!l&&!n)&&(!e.disabled||u.includes(e.value))})).map((function(e){return e.value}))}function nS(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.map((function(e,r){var o,a=(null==t?void 0:t.label)||"label",l=(null==t?void 0:t.value)||"value",i=(null==t?void 0:t.disabled)||"disabled";if(Uo(e[a]))throw new Error("".concat(a," is not in DataOption ").concat(JSON.stringify(e)));if(Uo(e[l]))throw new Error("".concat(l," is not in DataOption ").concat(JSON.stringify(e)));var u={label:e[a],value:e[l],key:"key__value_".concat(e[l],"_index_").concat(r),disabled:null!==(o=e[i])&&void 0!==o&&o,data:e};return n&&e.children&&(u.children=nS(e.children,t,!0)),u}));return r}function rS(e,t,n){var r;return e?t.includes(e.value)?n:null!==(r=e.children)&&void 0!==r&&r.length?e.children.some((function(e){return rS(e,t,n)})):!n:!n}function oS(e,t,n,r){e.forEach((function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?rS(e,n,r)&&(o=function(e){for(var t=1;t2&&void 0!==arguments[2])||arguments[2];if(!(arguments.length>3&&void 0!==arguments[3]&&arguments[3]))return n?t.map((function(t){return e.find((function(e){return e.value===t}))})).filter((function(e){return!!e})):e.filter((function(e){return!t.includes(e.value)}));var r=[];return oS(e,r,t,n),r}function lS(e){var t=0;return e.forEach((function(e){e.children&&e.children.length>0?t+=lS(e.children):t+=1})),t}var iS=t.defineComponent({name:"TTransferSearch",props:{value:{type:String,default:""},search:{type:[Boolean,Object],default:!1},placeholder:{type:String,default:""},onChange:Function},setup:function(e){var n=Ga(),r=up({SearchIcon:Kd}).SearchIcon,o=function(t,n){var r,o=n.e,a=n.trigger;null===(r=e.onChange)||void 0===r||r.call(e,{value:t,e:o,trigger:a})},a="object"===u(e.search)?e.search:{clearable:!0};return function(){return t.createVNode("div",{class:"".concat(n.value,"-transfer__search-wrapper")},[t.createVNode(Oy,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function uS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cS(e){for(var t=1;t-1}))})),m=t.computed((function(){return p.value&&p.value.length||0})),h=t.computed((function(){var t=p.value;if(!e.pagination)return t;if(0===f.value)return t;var n=(v.value-1)*f.value,r=v.value*f.value;return t=t.slice(n,r)})),g=t.computed((function(){return"object"===u(e.pagination)?cS(cS(cS({},{totalContent:!1,pageSizeOptions:[]}),e.pagination),{},{size:"small",theme:"simple",current:v.value,total:m.value,pageSize:f.value}):{}})),y=function(e,n,r){var o=t.ref(null),a=t.ref(null),l=t.ref(null);return{onDragStart:function(e){var t=Number(e.target.dataset.index);o.value=t},onDragEnd:function(){o.value=null,a.value=null,l.value=""},onDrop:function(t){t.preventDefault();var u=o.value,c=a.value;if(o.value=null,a.value=null,l.value="",u!==c){var s=i(e.value),d=n.value[u].value,v=n.value[c].value,f=s.indexOf(d),p=s.indexOf(v);s.splice(f,1),"bottom"===l.value&&(p+=1),s.splice(p,0,d),null==r||r(s,[d,v])}},onDragOver:function(e){if(e.preventDefault(),e.currentTarget){var t=e.currentTarget,n=Number(t.dataset.index),r=t.offsetHeight,i=e.clientY-t.getBoundingClientRect().top,u=.3*r;if(a.value=n,a.value===o.value)return void(l.value="");l.value=ir-u?"bottom":"center"}},onDragLeave:function(){l.value="",a.value=null}}}(r,h,e.onDataChange),b=y.onDragStart,w=y.onDragEnd,O=y.onDrop,C=y.onDragOver,x=y.onDragLeave,P=t.computed((function(){var t=tS(e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});return e.checkedValue.length>0&&(e.isTreeMode?t.every((function(t){return e.checkedValue.includes(t)})):(e.search?p.value:e.dataSource).every((function(t){return t.disabled||e.checkedValue.includes(t.value)})))})),S=t.computed((function(){return!P.value&&e.checkedValue.length>0})),k=t.computed((function(){return lS(e.dataSource)}));t.watch(k,(function(e){if(e<=(v.value-1)*f.value){var t=Math.ceil(e/f.value);s.value=t}}));var N=function(e,t){var n,r;return n=Mr(e),r=function(e){return!!e.label.toLowerCase().includes(t.toLowerCase())||!!(e.children&&e.children.length>0&&(e.children=N(e.children,t),e.children.length>0))},(j(n)?Zn:_o)(n,ao(r))},_=function(t){var n;null===(n=e.onPageChange)||void 0===n||n.call(e,t),s.value=t.current,d.value=t.pageSize},V=function(t){var n;null===(n=e.onCheckedChange)||void 0===n||n.call(e,t)},D=function(t){if(t){var n=tS(e.search?p.value:e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});V(n)}else V([])},E=function(t){var n;null===(n=e.onScroll)||void 0===n||n.call(e,t)},F=function(t){var n,r={query:t.value,type:e.listType,e:t.e,trigger:t.trigger};c.value=t.value,null===(n=e.onSearch)||void 0===n||n.call(e,r)},T=ei(),I=function(){var r,o,a=e.draggable&&e.listType===Qj,l=null;a?l=t.createVNode(Fw,{value:e.checkedValue,onChange:V},sS(r=h.value.map((function(r,o){var l;return t.createVNode("div",{draggable:a,onDragend:w,onDragstart:b,onDragover:C,onDragleave:x,onDrop:O,"data-index":o},[t.createVNode(Ew,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),sS(l=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?l:{default:function(){return[l]}})])})))?r:{default:function(){return[r]}}):l=t.createVNode(Fw,{value:e.checkedValue,onChange:V},sS(o=h.value.map((function(r,o){var a;return t.createVNode(Ew,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),sS(a=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?a:{default:function(){return[a]}})})))?o:{default:function(){return[o]}});return t.createVNode("div",{class:["".concat(n.value,"-transfer__list-content"),"narrow-scrollbar"],onScroll:E},[T("tree",{defaultNode:l,params:{data:h.value,value:e.checkedValue,onChange:V}})])},M=function(){var r=e.empty||a(l.value.empty),o=Do(r)?t.createVNode("span",null,[r]):null;return t.createVNode("div",{class:"".concat(n.value,"-transfer__empty")},[T("empty",{defaultNode:o,params:{type:e.listType}})])},A=function(){var r=Do(e.footer)?t.createVNode("div",{class:"".concat(n.value,"-transfer__footer")},[e.footer]):null;return T("footer",{defaultNode:r,params:{type:e.listType}})};return function(){return t.createVNode("div",{class:["".concat(n.value,"-transfer__list"),"".concat(n.value,"-transfer__list-").concat(e.listType)]},[t.createVNode("div",{class:"".concat(n.value,"-transfer__list-header")},[t.createVNode("div",null,[e.checkAll&&t.createVNode(Ew,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:S.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&Do(e.title)?t.createVNode("template",null,[e.title]):null,o=T("title",{defaultNode:r,params:{type:e.listType}}),t.createVNode("span",null,[o]))]),t.createVNode("div",{class:["".concat(n.value,"-transfer__list-body"),e.search?"".concat(n.value,"-transfer__list--with-search"):""]},[e.search&&t.createVNode(iS,{searchValue:c.value,placeholder:a(l.value.placeholder),onChange:F,disabled:e.disabled,search:e.search},null),h.value.length>0?I():M()]),e.pagination&&f.value>0&&m.value>0&&t.createVNode("div",{class:"".concat(n.value,"-transfer__list-pagination")},[t.createVNode(pO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),fS={checkboxProps:{type:Object},checked:{type:Array,default:void 0},defaultChecked:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},direction:{type:String,default:"both",validator:function(e){return!e||["left","right","both"].includes(e)}},disabled:{type:[Boolean,Array],default:void 0},empty:{type:[String,Array,Function],default:""},footer:{type:[Array,Function]},keys:{type:Object},operation:{type:[Array,Function]},pagination:{type:[Object,Array]},search:{type:[Boolean,Object,Array],default:!1},showCheckAll:{type:[Boolean,Array],default:!0},targetDraggable:Boolean,targetSort:{type:String,default:"original",validator:function(e){return!e||["original","push","unshift"].includes(e)}},title:{type:[Array,Function],default:function(){return[]}},transferItem:{type:Function},value:{type:Array,default:void 0},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:function(){return[]}},onChange:Function,onCheckedChange:Function,onPageChange:Function,onScroll:Function,onSearch:Function},pS=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:fS.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=Ga(),l=up({ChevronRightIcon:ic,ChevronLeftIcon:Yu}),i=l.ChevronRightIcon,u=l.ChevronLeftIcon,c=function(){o("moveToRight")},s=function(){o("moveToLeft")},d=function(){return t.createVNode(i,null,null)},v=function(){return t.createVNode(u,null,null)},f=function(t){return H(e.operation)||"right"===t&&e.operation&&H(e.operation[0])||"left"===t&&e.operation&&H(e.operation[1])||r.operation?null:"left"===t?v:d},p=function(t,n){if(H(r.operation))return r.operation({direction:n});var o;if(H(e.operation))return(0,e.operation)(t,{direction:n});if(j(e.operation)){var a=Ra(e.operation,2),l=a[0],i=a[1];o="right"===n?i:l}else o="";return o};return function(){return t.createVNode("div",{class:"".concat(a.value,"-transfer__operations")},[t.createVNode(Pi,{variant:"outline",size:"small",shape:j(e.operation)&&Do(e.operation[1])?"rectangle":"square",key:e.rightDisabled?"right-outline":"right-base",disabled:e.rightDisabled,onClick:c,icon:f("right")},{default:function(){return[r.operation||j(e.operation)&&e.operation[1]?p(t.h,"right"):null]}}),t.createVNode(Pi,{variant:"outline",size:"small",shape:j(e.operation)&&Do(e.operation[0])?"rectangle":"square",key:e.rightDisabled?"left-outline":"left-base",disabled:e.leftDisabled,onClick:s,icon:f("left")},{default:function(){return[r.operation||j(e.operation)&&e.operation[0]?p(t.h,"left"):null]}})])}}});var mS=t.defineComponent({name:"TTransfer",props:fS,setup:function(e,n){var r=n.slots,o=wi(),a=Ga(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ra(qm(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ra(Um(d,e.defaultChecked,e.onCheckedChange,"checked"),1)[0],h=t.computed((function(){return f.value})),g=t.computed((function(){return H(r.tree)})),y=t.computed((function(){return"right"===e.direction})),b=t.computed((function(){return"left"===e.direction})),w=t.computed((function(){return nS(e.data,e.keys,g.value)})),O=t.computed((function(){return aS(w.value,h.value,!1,g.value)})),C=t.computed((function(){return aS(w.value,h.value,!0,g.value)})),x=t.computed((function(){return s(s({},Jj,tS(O.value,m.value,{isTreeMode:g.value})),Qj,tS(C.value,m.value,{isTreeMode:g.value}))})),P=t.computed((function(){return!!r.footer||!!e.footer})),j=t.computed((function(){return!!e.pagination&&!r.content})),S=t.computed((function(){return!!e.search})),k=t.computed((function(){return eS(e.footer||"")})),N=t.computed((function(){return eS(e.empty)})),_=t.computed((function(){return eS(e.search)})),V=t.computed((function(){return eS(e.showCheckAll)})),D=t.computed((function(){return eS(o.value)})),E=t.computed((function(){return eS(e.title)})),F=t.computed((function(){return eS(e.pagination)})),T=function(t,n){var r,o=n===Jj?t:x.value[Jj],a=n===Qj?t:x.value[Qj],l=[].concat(i(o),i(a)),u={checked:l,sourceChecked:o,targetChecked:a,type:n};m.value=l,null===(r=e.onCheckedChange)||void 0===r||r.call(e,u)},I=function(t){var n,r=JSON.parse(JSON.stringify(h.value)),o=t===Qj?x.value[Jj]:x.value[Qj];if(t===Jj)n=r.filter((function(e){return!o.includes(e)}));else if("original"===e.targetSort){var a=w.value.reduce((function(e,t){return r.includes(t.value)&&t.disabled?e.concat(t.value):e}),[]);n=tS(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===Jj?Qj:Jj),p(n,{type:t,movedValue:o})},M=function(){I(Qj)},A=function(){I(Jj)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:Qj,movedValue:t})},R=function(n){var o,a=xa(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(vS,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===Jj?O.value:C.value,"checked-value":x.value[n],disabled:D.value[n],search:_.value[n],pagination:F.value[n],"check-all":V.value[n],footer:k.value[n],empty:N.value[n],onCheckedChange:function(e){return T(e,n)},onScroll:function(t){return function(t,n){var r,o=t.target,a={e:t,bottomDistance:o.scrollHeight-o.scrollTop-o.clientHeight,type:n};null===(r=e.onScroll)||void 0===r||r.call(e,a)}(t,n)},onSearch:B,onPageChange:function(t){return function(t,n){var r;null===(r=e.onPageChange)||void 0===r||r.call(e,t,{type:n})}(t,n)},isTreeMode:g.value,onDataChange:L,currentValue:h.value,draggable:e.targetDraggable&&n===Qj},"function"==typeof(o=a)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}})};return function(){return t.createVNode("div",{class:["".concat(a.value,"-transfer"),S.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",j.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R(Jj),t.createVNode(pS,{leftDisabled:D.value[Qj]||y.value||0===x.value[Qj].length,rightDisabled:D.value[Jj]||b.value||0===x.value[Jj].length,operation:e.operation,onMoveToRight:M,onMoveToLeft:A},{operation:r.operation}),R(Qj)])}}}),hS=fi(mS);function gS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yS(e){for(var t=1;to&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Da(l)),-1===u&&(l.push(g),l.length>f.value.bufferSize&&l.shift()),-1===d&&(v>s.value+o||p===n.value.data.length-1)&&(d=p),-1!==u&&-1!==d)break}var y,b=(y=[u-f.value.bufferSize,0])&&y.length?qo(y,z,Vo):void 0,w=function(e){return e&&e.length?qo(e,z,Zo):void 0}([d+f.value.bufferSize,n.value.data.length]);return{startIndex:b,endIndex:w,translateY:i-Da(c.slice(0,Math.min(b,a)))}}var h=Ea((function(){var e=m(),t=e.startIndex,r=e.endIndex,o=e.translateY,i=Ra(f.value.fixedRows,2),u=i[0],c=i[1],s=u?n.value.data.slice(0,u):[];u&&t0&&(d=d.slice(p)),v.value.join()!==[t,r].join()&&t>=0&&(l.value=o,a.value=s.concat(n.value.data.slice(t,r),d),v.value=[t,r])}),100),g=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Da(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return mh(t.computed((function(){return p.value?e.value:void 0})),(function(t){var r=Ra(t,1)[0].contentRect;if(!n.value.preventResizeRefresh){Math.abs(r.width-d.value)>16&&e.value&&(e.value.scrollTop=0,l.value=0),d.value=r.width,s.value=r.height}})),t.watch((function(){return[i(n.value.data),f.value,p.value,e.value]}),(function(){if(p.value&&e.value){if(function(e){e.forEach((function(e,t){e.VIRTUAL_SCROLL_INDEX=t}))}(n.value.data),s.value=e.value.getBoundingClientRect().height,c.length!==n.value.data.length){var t=Array.from(c);t.length=n.value.data.length,t.fill(f.value.rowHeight||47),c=t}u.value=Da(c),v.value=[0,0],h()}}),{immediate:!0}),t.watch((function(){return s.value}),(function(){h()})),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&h()},handleRowMounted:function(t){var n;if(p.value&&t&&!f.value.isFixedRowHeight&&e.value){var r=(null===(n=t.ref.value)||void 0===n?void 0:n.getBoundingClientRect().height)||f.value.rowHeight,o=t.data.VIRTUAL_SCROLL_INDEX;if(c[o]!==r){var a=r-c[o];c[o]=r,u.value=u.value+a}}},scrollToElement:function(e){if(g(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout((function(){g(e),clearTimeout(r)}),n)}}},NS={name:"TTreeNode",inject:{onDrag:{default:void 0}}};function _S(e){return r.h}function VS(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"defaultValue",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"onChange",a=t.modelValue;return"value"===n?qm(t[n],a,e[r],e[o],n):Um(t[n],e[r],e[o],n)}var DS=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(DS||{});function ES(e){var n=e.treeItemRef,r=t.reactive({isDragOver:!1,isDragging:!1,dropPosition:0}),o=function(t,n){var o,l,i,u,c,s=e.node,d=e.treeScope.drag;if(d)switch(t){case"dragStart":r.isDragging=!0,r.dropPosition=0,null===(o=d.handleDragStart)||void 0===o||o.call(d,{node:s,dragEvent:n});break;case"dragEnd":r.isDragging=!1,r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(l=d.handleDragEnd)||void 0===l||l.call(d,{node:s,dragEvent:n});break;case"dragOver":r.isDragOver=!0,a(n),null===(i=d.handleDragOver)||void 0===i||i.call(d,{node:s,dragEvent:n});break;case"dragLeave":r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(u=d.handleDragLeave)||void 0===u||u.call(d,{node:s,dragEvent:n});break;case"drop":null===(c=d.handleDrop)||void 0===c||c.call(d,{node:s,dropPosition:r.dropPosition,dragEvent:n}),r.isDragOver=!1,a.cancel()}},a=Ea((function(e){!function(e){var t,o=n.value;if(o){var a=null==o||null===(t=o.getBoundingClientRect)||void 0===t?void 0:t.call(o),l=window.scrollY+a.top,i=e.pageY,u=a.height/4,c=i-l;c3?o-3:0),l=3;l0,n=Mo(l.children)&&l.children;return f&&(t||n)}));if(l.vmCheckable){var b=!1;l.vmIsLocked&&!l.vmIsRest&&(b=!0),l.isDisabled()&&(b=!0);var w=WS(WS({},p),{},{disabled:b}),O=m;m=t.createVNode(Ew,{class:g,checked:l.checked,indeterminate:l.indeterminate,disabled:b,name:String(l.value),onChange:o,stopLabelTrigger:y.value,ignore:d.expandOnClickNode?"active":"expand,active",props:w},"function"==typeof(h=m)||"[object Object]"===Object.prototype.toString.call(h)&&!t.isVNode(h)?m:{default:function(){return[O]}})}else{var C=t.createVNode("span",{style:"position: relative"},[m]);m=l.isActivable()?t.createVNode("span",{key:"1",ref:"label",class:g,title:l.label},[C]):t.createVNode("span",{key:"2",class:g,title:l.label},[C])}return m}}}function US(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function YS(e){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=Ga().value,u=Ga("tree").value,c=RS(e).handleClick,d=zS(e).renderIcon,v=KS(e).renderLabel,f=function(e){var n=Ga("tree").value;return{renderLine:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=(null==a?void 0:a.treeProps)||{},u=i.line,c=!!i.icon,s=null;if(!0===u){if(null!=l&&l.line)s=l.line({node:null==o?void 0:o.getModel()});else if(o.parent&&o.tree){var d=o.vmIsLeaf,v=o.vmIsFirst,f=o.level,p=[];p.push("".concat(n,"__line")),!d&&c||p.push("".concat(n,"__line--leaf")),v&&c&&p.push("".concat(n,"__line--first"));var m=[],h=o.getParents();h.pop(),h.forEach((function(e,t){e.vmIsLast||m.push("calc(-".concat(t+1," * var(--space)) 0 var(--color)"))}));var g={"--level":f?String(f):void 0,"box-shadow":m.join(",")};s=t.createVNode("span",{class:p,style:g},null)}}else s=AS(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=Ga("tree").value;return{renderOperations:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=((null==a?void 0:a.treeProps)||{}).operations,u=null;return(u=null!=l&&l.operations?l.operations({node:null==o?void 0:o.getModel()}):AS(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=ES(e),y=g.dragStates,b=g.handleDragStart,w=g.handleDragEnd,O=g.handleDragOver,C=g.handleDragLeave,x=g.handleDrop,P=function(e,n,r){var o=t.computed((function(){return Math.max(r.rowHeight||48,48)})),a=t.ref(!1),l=t.computed((function(){return"lazy"===(null==r?void 0:r.type)&&!a.value})),i=!Sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i((function(){a.value=!0}))};return t.onMounted((function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick((function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;Sw(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(a,r,t.reactive(function(e){for(var t=1;t0),"".concat(u,"__item--tip-highlight"),!r&&n&&0===o)),a}();return e.stateId=o.stateId,t.createVNode("div",{ref:"treeItemRef",class:v,"data-value":l,"data-level":a,style:d,onClick:function(e){return c(e)},draggable:r.isDraggable(),onDragstart:function(e){return b(e)},onDragend:function(e){return w(e)},onDragover:function(e){return O(e)},onDragleave:function(e){return C(e)},onDrop:function(e){return x(e)}},[j.value?[t.createVNode("div",null,null)]:N(n)])}}}function $S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ZS(e){for(var t=1;t=0&&("trigger"===e?c=!0:"ignore"===e&&(c=!1)),n.indexOf("active")>=0&&"ignore"===e&&(s=!1)})),c&&a(u),s&&l(u);var d={node:u.getModel(),e:o};TS(n,r,"click",d),t.mouseEvent=null}}}}(e),u=i.handleClick,c=i.handleChange,s=t.ref(!1),d=new Map,v=function(){o.value=n.getNodes()},f=function(){if(!(null==l?void 0:l.isVirtualScroll.value)){var e=[],t=!1;o.value.forEach((function(n){n.visible&&(t=!0,d.set(n.value,n.value)),d.has(n.value)&&e.push(n)})),d.forEach((function(e){n.getNode(e)||d.delete(e)})),a.value=e,s.value=!t}},p=function(){if(null==l?void 0:l.isVirtualScroll.value){var e=l.visibleData.value;a.value=e,s.value=e.length<=0}};return t.watch(o,f),t.watch(l.visibleData,p),v(),f(),p(),n.emitter.on("update",v),{nodesEmpty:s,renderTreeNodes:function(e){var n="render-".concat((new Date).getTime()),o=a.value.map((function(e,o){return function(e,n,o,a){var l=n.VIRTUAL_SCROLL_INDEX||o,i=n[fC];return t.createVNode(XS,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)}));return o}}}function JS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QS(e){for(var t=1;t0&&c.replaceChecked(s.value),Array.isArray(v.value)&&v.value.length>0&&c.replaceExpanded(v.value),Array.isArray(d.value)&&d.value.length>0&&c.replaceActived(d.value),null!=n&&n.onLoad&&(null==n||n.onLoad(t)),r.emit("load",t)};return c.setConfig({keys:u}),f(),c.append(n.data||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.emitter.on("load",b),c.emitter.on("update",g),e.setStore(c),t.watch((function(){return i(s.value||[])}),(function(e){c.replaceChecked(e)})),t.watch((function(){return i(v.value||[])}),(function(e){c.replaceExpanded(e)})),t.watch((function(){return i(d.value||[])}),(function(e){c.replaceActived(e)})),t.watch(o.filter,(function(e,t){y(e,t)})),t.watch(o.keys,(function(e){c.setConfig({keys:e})})),t.watch(o.expandAll,(function(e){if(e){var t=c.getNodes().filter((function(e){return Array.isArray(e.children)&&e.children.length})).map((function(e){return e.value}));c.setExpanded(t)}else c.replaceExpanded(h),h=null})),{store:c,rebuild:function(e){c.reload(e||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.refreshState()},checkFilterExpand:y,updateStoreConfig:f,updateExpanded:p,expandFilterPath:g}}(s),p=f.store,m=f.updateStoreConfig,h=f.rebuild;!function(e){var t=e.props,n=e.context,r=e.scope,o=e.store,a=null,l={handleDragStart:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};TS(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};TS(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};TS(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};TS(t,n,"drag-leave",o)},handleDrop:function(e){var r,l=e.dragEvent,i=e.node,u=e.dropPosition;if(i.value!==a.value&&!i.getParents().some((function(e){return e.value===a.value}))){var c={dropNode:i.getModel(),dragNode:a.getModel(),dropPosition:u,e:l};!1!==(null===(r=t.allowDrop)||void 0===r?void 0:r.call(t,c))&&(o.getNodes().some((function(e){return e.value===i.value&&(u===DS.Inside?a.appendTo(o,e):u===DS.Before?i.insertBefore(a):i.insertAfter(a),!0)})),TS(t,n,"drop",c))}}};r.drag=l}(s);var g=LS(s),y=g.setActived,b=g.setExpanded,w=g.setChecked,O=ek(s),C=O.onInnerVirtualScroll,x=O.virtualConfig,P=O.scrollToElement,j=GS(s),S=j.renderTreeNodes,k=j.nodesEmpty,N=function(e){var n=e.props,r=Ga("tree").value,o=Ga().value,a=e.virtualConfig,l=e.isScrolling,i=e.refProps,u=i.height,c=i.maxHeight;return{treeClasses:t.computed((function(){var e=[r],t=n.disabled,i=n.hover,u=n.transition,c=n.checkable,s=n.draggable,d=n.expandOnClickNode,v=n.scroll;return t&&e.push("".concat(o,"-is-disabled")),i&&e.push("".concat(r,"--hoverable")),c&&e.push("".concat(r,"--checkable")),s&&e.push("".concat(r,"--draggable")),u&&e.push("".concat(r,"--transition")),d&&e.push("".concat(r,"--block-node")),(null==a?void 0:a.isVirtualScroll.value)?(e.push("".concat(r,"__vscroll")),l.value&&e.push("".concat(r,"--scrolling"))):v&&"lazy"===v.type&&e.push("".concat(r,"__lazyload")),e})),treeContentStyles:t.computed((function(){return{height:tk(u.value),maxHeight:tk(c.value),overflowY:tk(u.value)||tk(c.value)?"auto":void 0}})),scrollStyles:t.computed((function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translateY(".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}})),cursorStyles:t.computed((function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translate(0, ".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}}))}}(s);return{t:o,global:a,classPrefix:l,componentName:u,state:s,store:p,treeClasses:N.treeClasses,treeContentRef:d,rebuild:h,updateStoreConfig:m,setActived:y,setExpanded:b,setChecked:w,renderTreeNodes:S,nodesEmpty:k,isScrolling:v,onInnerVirtualScroll:C,treeContentStyles:N.treeContentStyles,scrollStyles:N.scrollStyles,cursorStyles:N.cursorStyles,virtualConfig:x,scrollToElement:P,scrollTo:P}},watch:{data:function(e){this.rebuild(e)}},methods:{refresh:function(){this.store.refreshState()},setItem:function(e,t){var n=this,r=this.store.getNode(e),o=t,a=Object.keys(o);r&&o&&(["expanded","actived","checked"].forEach((function(e){if(a.includes(e)){var t=o[e];delete o[e];var l="set".concat(on(e)),i=n[l];H(i)&&i.call(n,r,t)}})),r.set(o))},getItem:function(e){var t=this.store.getNode(e);return null==t?void 0:t.getModel()},getItems:function(e){return this.store.getNodes(e).map((function(e){return e.getModel()}))},appendTo:function(e,t){var n=this.store;(Array.isArray(t)?t:[t]).forEach((function(t){var r=(null==t?void 0:t.value)||"",o=BS(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)}))},insertBefore:function(e,t){var n=this.store,r=BS(n,(null==t?void 0:t.value)||"");r?n.insertBefore(e,r):n.insertBefore(e,t)},insertAfter:function(e,t){var n=this.store,r=BS(n,(null==t?void 0:t.value)||"");r?n.insertAfter(e,r):n.insertAfter(e,t)},remove:function(e){return this.store.remove(e)},getIndex:function(e){return this.store.getNodeIndex(e)},getParent:function(e){var t=this.store.getParent(e);return null==t?void 0:t.getModel()},getParents:function(e){return this.store.getParents(e).map((function(e){return e.getModel()}))},getPath:function(e){var t=this.store.getNode(e),n=[];return t&&(n=t.getPath().map((function(e){return e.getModel()}))),n},getTreeData:function(e){var t=[];if(e){if(!this.store.getNode(e))return[];t=this.store.getNodes(e)}else t=this.store.getNodes();var n={},r=[];return t.forEach((function(e){var t=e.value,o=ok(ok({},e.data),{},{value:t});!0!==o.children&&delete o.children,n[t]=o;var a=e.getParent();if(a){var l=n[a.value];l?(Array.isArray(l.children)||(l.children=[]),l.children.push(o)):r.push(o)}else r.push(o)})),r}},render:function(e){var n,r,o,a,l=this.state,i=this.treeClasses,u=this.updateStoreConfig,c=this.renderTreeNodes,s=this.nodesEmpty,d=this.isScrolling,v=this.virtualConfig,f=this.treeContentStyles,p=this.scrollStyles,m=this.cursorStyles,h=_S(),g=l.scope,y=l.allNodes,b=l.refProps;g.scopedSlots=this.$slots,u();var w=c(h),O=this.componentName,C=v.isVirtualScroll.value,x=null;if(s){var P=!this.empty&&!this.$slots.empty?this.t(this.global.empty):Xl(this,"empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var j,S=null;S=!this.$props.transition||C&&d?t.createVNode("div",{class:"".concat(O,"__list"),style:p},[w]):t.createVNode(t.TransitionGroup,{tag:"div",class:"".concat(O,"__list"),"enter-active-class":"".concat(O,"__item--enter-active"),"leave-active-class":"".concat(O,"__item--leave-active"),style:p},"function"==typeof(j=w)||"[object Object]"===Object.prototype.toString.call(j)&&!t.isVNode(j)?w:{default:function(){return[w]}});var k=(null!==(n=null===(r=y.value)||void 0===r?void 0:r.filter((function(e){return e.visible})).length)&&void 0!==n?n:0)*(null!==(o=null===(a=b.scroll.value)||void 0===a?void 0:a.rowHeight)&&void 0!==o?o:34),N={width:"1px",height:"1px",opacity:0,pointerEvents:"none",position:"absolute",left:0,top:"".concat(k,"px")},_=t.createVNode("div",{style:N},null);return t.createVNode("div",{class:i,ref:"treeContentRef",onScroll:this.onInnerVirtualScroll,style:f},[C&&t.createVNode("div",{class:"".concat(O,"__vscroll-cursor"),style:m},null),x||S,C&&_])}}),lk=fi(ak),ik={autoWidth:Boolean,borderless:Boolean,clearable:Boolean,collapsedItems:{type:Function},data:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},inputValue:{type:[String,Number],default:void 0},defaultInputValue:{type:[String,Number]},keys:{type:Object},loading:Boolean,loadingText:{type:[String,Function],default:""},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:{type:Boolean,default:void 0},prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagProps:{type:Object},treeProps:{type:Object},value:{type:[String,Number,Object,Array],default:void 0},modelValue:{type:[String,Number,Object,Array],default:void 0},defaultValue:{type:[String,Number,Object,Array]},valueDisplay:{type:Function},valueType:{type:String,default:"value",validator:function(e){return!e||["value","object"].includes(e)}},onBlur:Function,onChange:Function,onClear:Function,onFocus:Function,onInputChange:Function,onPopupVisibleChange:Function,onRemove:Function,onSearch:Function};function uk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ck(e){for(var t=1;t=0}})),M=t.computed((function(){return v.value||e.disabled})),A=t.computed((function(){var t;return _.value&&(null===(t=g.value)||void 0===t?void 0:t.label)||e.placeholder||d.value.placeholder})),B=t.computed((function(){return["".concat(c.value,"-select__dropdown"),"narrow-scrollbar"]})),L=t.computed((function(){return{small:"s",medium:"m",large:"l"}[e.size]})),R=t.computed((function(){return"object"===e.valueType})),z=t.computed((function(){return e.multiple?R.value?j(S.value)?S.value.map((function(e){return e.value})):[]:j(S.value)?S.value.map((function(e){return e})):[]:[]})),W=t.computed((function(){return e.multiple&&!!e.max&&j(S.value)&&e.max<=S.value.length})),K=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.label)||"label":e.treeProps.keys.label||"label"})),U=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.value)||"value":e.treeProps.keys.value||"value"})),Y=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.children)||"children":e.treeProps.keys.children||"children"}));t.onMounted(Bf(Hf.mark((function t(){var n;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:T(),!S.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=j(S.value)?S.value.map((function(e){return null==e?void 0:e.value})):[null===(n=S.value)||void 0===n?void 0:n.value]:m.value=j(S.value)?S.value:[S.value],ne();case 4:case"end":return t.stop()}}),t)}))));var $=function(e,t,n){k(e,{node:t,trigger:n}),ne()},Z=function(t){var n,r=e.multiple?[]:"";m.value=[],$(r,null,"clear"),null===(n=e.onClear)||void 0===n||n.call(e,{e:t.e})},q=function(e,t){var n=e;R.value&&(n=e.map(ae)),$(n,t.node,"check")},X=function(t,n){if(e.multiple||V(!1,n),!e.multiple&&n.node.actived&&S.value!==n.node.data[U.value]){var r=t;if(R.value){var o=Ro(t)?"":t[0];r=ae(o)}else r=Ro(t)?"":t[0];$(r,n.node,"check"),m.value=t}},G=function(e){h.value=e},J=function(){ne()},Q=function(t){var n,r;_.value?(F(t),null===(n=e.onSearch)||void 0===n||n.call(e,String(t))):null===(r=e.onSearch)||void 0===r||r.call(e,String(t))},ee=function(t,n){var r,o=n.trigger,a=n.index;["tag-remove","backspace"].includes(o)&&j(S.value)&&S.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(S.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=Bf(Hf.mark((function t(){return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?j(S.value)?g.value=oe():g.value=[]:g.value=null:S.value||0===S.value?g.value=re():g.value="";case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),re=function(){var e=R.value?S.value.value:S.value;return ae(e)},oe=function(){return S.value.map((function(e){var t=R.value?e.value:e;return ae(t)}))},ae=function(t){if(p.value){var n=p.value.getItem(t);if(n)return ck(ck({},n.data),{},{label:n.data[K.value],value:n.data[U.value]})}var r=le(e.data,t);return r||{label:t,value:t}},le=function(e,t){for(var n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:"RGB",n=arguments.length>1?arguments[1]:void 0;if(e=n&&Object.keys(kk).find((function(e){return e in kk&&kk[e]===t}))||t,!Nk[e])return[];var r=i(Nk[e]);return n&&"CMYK"!==t&&r.push({type:"inputNumber",key:"a",min:0,max:100,format:function(e){return"".concat(e,"%")},flex:1.15}),r},rN=function(e){var n=Ga("color-picker");return t.computed((function(){return e?"".concat(n.value,"-").concat(e):n.value}))};function oN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function aN(e){for(var t=1;t2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.clientX-a.left,r=(n=Math.max(0,Math.min(a.width,n)))/a.width*100,o=Rk(r,e.color.rgba);s.value.push(o),p(s.value,!0),f(o.id)}};return t.onMounted((function(){var e=o.value.getBoundingClientRect();a.left=e.left,a.width=e.width||176})),t.onBeforeUnmount((function(){window.removeEventListener("mousemove",m,!1),window.removeEventListener("mouseup",h,!1),window.removeEventListener("contextmenu",h,!1)})),function(){var d=e.color,p=d.linearGradient,b=d.gradientColors,w=Lk({points:b,degree:90});return t.createVNode("div",{class:"".concat(n.value,"__gradient")},[t.createVNode("div",{class:"".concat(n.value,"__gradient-slider")},[t.createVNode("div",{class:["".concat(n.value,"__slider"),"".concat(n.value,"--bg-alpha")],onKeyup:g,tabindex:0,ref:o},[t.createVNode("ul",{class:"gradient-thumbs",onClick:y,style:{background:w}},[s.value.map((function(u){var s="".concat(Math.round(100*u.left)/100,"%");return t.createVNode("li",{class:["".concat(n.value,"__thumb"),"gradient-thumbs__item",c.value===u.id?r.active:""],key:u.id,title:"".concat(u.color," ").concat(s),style:{color:u.color,left:s},onClick:function(e){return e.stopPropagation()},onMousedown:function(){return function(t){var n=o.value.getBoundingClientRect();a.left=n.left,a.width=n.width||176,l.value||e.disabled||(i.value=!1,l.value=!0,f(t),o.value.focus(),window.addEventListener("mousemove",m,!1),window.addEventListener("mouseup",h,!1),window.addEventListener("contextmenu",h,!1))}(u.id)}},[t.createVNode("span",{class:["gradient-thumbs__item-inner","".concat(n.value,"--bg-alpha")]},null)])}))])])]),t.createVNode("div",{class:"".concat(n.value,"__gradient-degree"),title:"".concat(u.value,"deg")},[t.createVNode(Zy,{size:"small",theme:"normal",min:0,max:360,step:1,format:function(e){return"".concat(e,"\xb0")},modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},onBlur:v,onEnter:v,disabled:e.disabled},null)]),t.createVNode("div",{class:["".concat(n.value,"__gradient-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"preview-inner",style:{background:p}},null)])])}}}),fN=t.defineComponent({name:"SaturationPanel",props:uN,setup:function(e){var n=rN(),r=t.ref(null),o=t.ref(null),a=t.ref(null),l=t.reactive({width:230,height:168}),i=t.computed((function(){var t=e.color,n=t.saturation,r=t.value,o=l.width,a=l.height,i=Math.round((1-r)*a),u=Math.round(n*o);return{color:e.color.rgb,left:"".concat(u,"px"),top:"".concat(i,"px")}})),u=function(t,n){if(!e.disabled){var r=function(e){var t=l.width,n=l.height,r=e.x,o=e.y;return{saturation:Math.round(r/t*100),value:Math.round(100*(1-o/n))}}(t),o=r.saturation,a=r.value;e.onChange({saturation:o/100,value:a/100,addUsedColor:n})}},c=function(n){e.disabled||t.nextTick((function(){u(n,!0)}))},s=t.computed((function(){return"hsl(".concat(e.color.hue,", 100%, 50%)")}));return t.onMounted((function(){l.width=r.value.offsetWidth||230,l.height=r.value.offsetHeight||168,a.value=new Xk(r.value,{start:function(){l.width=r.value.offsetWidth,l.height=r.value.offsetHeight},drag:function(e){u(e)},end:c})})),t.onBeforeUnmount((function(){a.value.destroy()})),function(){return t.createVNode("div",{class:["".concat(n.value,"__saturation")],ref:r,style:{background:s.value}},[t.createVNode("span",{class:["".concat(n.value,"__thumb")],role:"slider",tabindex:0,ref:o,style:i.value},null)])}}});function pN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mN(e){for(var t=1;t0?t.createVNode("span",{role:"button",class:"".concat(n.value,"__icon"),onClick:function(){return s()}},[t.createVNode(o,null,null)]):null]):null]),t.createVNode("ul",{class:["".concat(r,"--items"),"narrow-scrollbar"]},[e.colors.map((function(o){return t.createVNode("li",{class:["".concat(r,"--item"),u(o)&&e.editable?l.active:""],title:o,key:o,onClick:function(){e.disabled||function(t){e.onSetColor(t)}(o)}},[t.createVNode("div",{class:["".concat(r,"--color"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(r,"--inner"),style:{background:o}},null)])])}))])])}}});function NN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _N(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),S(e)}},S=function(e){y(e)},k=function(t){var n=x.value.getFormattedColor(e.format,e.enableAlpha);m(n,{color:Wk(x.value),trigger:t||"palette-saturation-brightness"})};t.watch((function(){return p.value}),(function(e){var t=b(e);w.value=t,x.value.isGradient="linear-gradient"===t,x.value.update(e)}));var N=function(e){w.value=e;var t="linear-gradient"===e;x.value.isGradient=t,t?x.value.update(x.value.gradientColors.length>0?x.value.linearGradient:Pk):x.value.update(x.value.rgba),k()},_=function(e){var t=e.saturation,n=e.value,r=x.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)x.value.saturation=t,x.value.value=n,l="palette-saturation-brightness";else if(t!==o)x.value.saturation=t,l="palette-saturation";else{if(n===a)return;x.value.value=n,l="palette-brightness"}k(l)},V=function(t){var n;x.value.hue=t,k("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:Wk(x.value)})},D=function(e){x.value.alpha=e,k("palette-alpha-bar")},E=function(e,t){x.value.update(e),x.value.alpha=t,k("input")},F=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":x.value.gradientDegree=n,r="input";break;case"selectedId":x.value.gradientSelectedId=n;break;case"colors":x.value.gradientColors=n}k(r)},T=function(e,t){var n=b(e);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.update(e),k(t)};return function(){var r={color:x.value,disabled:e.disabled},o=1===e.colorModes.length&&e.colorModes.includes("linear-gradient"),c=g.value;o&&Array.isArray(c)&&(c=c.filter((function(e){return zk.isGradientColor(e)})));var s=!!Array.isArray(c),d=e.swatchColors;void 0===d&&(d=i(jk)),o&&(d=d.filter((function(e){return zk.isGradientColor(e)})));var v=Array.isArray(d);return t.createVNode("div",{class:["".concat(n.value,"__panel"),!!e.disabled&&u.disabled]},[t.createVNode(iN,t.mergeProps(e,{mode:w.value,onModeChange:N}),null),t.createVNode("div",{class:["".concat(n.value,"__body")]},[O.value?t.createVNode(vN,t.mergeProps(r,{onChange:F,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(fN,t.mergeProps(r,{onChange:_}),null),t.createVNode("div",{class:["".concat(n.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(n.value,"__sliders")]},[t.createVNode(gN,t.mergeProps(r,{onChange:V}),null),e.enableAlpha?t.createVNode(yN,t.mergeProps(r,{onChange:D}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(n.value,"__sliders-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(n.value,"__sliders-preview-inner"),style:{background:O.value?x.value.linearGradient:x.value.rgba}},null)]):null]),t.createVNode(PN,t.mergeProps(e,{color:x.value,format:P.value,onInputChange:E}),null),v||s?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(n.value,"__swatches-wrap")},[s?t.createVNode(kN,t.mergeProps(r,{title:a(l.value.recentColorTitle),editable:!0,colors:c,handleAddColor:j,onSetColor:function(e){return T(e,"recent")},onChange:S}),null):null,v?t.createVNode(kN,t.mergeProps(r,{title:a(l.value.swatchColorTitle),colors:d,onSetColor:function(e){return T(e,"preset")}}),null):null])]):null])])}}});function DN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function EN(e){for(var t=1;tn-2*d.value?"scale(".concat((n-2*d.value)/r,")"):"scale(1)")};return t.onMounted((function(){t.nextTick((function(){b()}))})),t.onUpdated((function(){t.nextTick((function(){b()}))})),t.watch((function(){return e.image}),(function(e){e&&(c.value=!0)})),function(){var l=r("default","content"),d=o("icon"),v=d&&!l,p=e.shape,b=e.image,w=e.alt,O=["".concat(n.value),a.value[f.value],s(s(s({},"".concat(n.value,"--circle"),"circle"===p),"".concat(n.value,"--round"),"round"===p),"".concat(n.value,"__icon"),!!v)];return l=t.createVNode("span",{ref:u,style:UN({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(WN,t.mergeProps({style:UN({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:UN({},m.value)},[l])}}}),$N={cascading:{type:String,default:"right-up",validator:function(e){return!e||["left-up","right-up"].includes(e)}},collapseAvatar:{type:[String,Function]},max:{type:Number},popupProps:{type:Object},size:{type:String,default:""}};var ZN=t.defineComponent({name:"TAvatarGroup",props:$N,setup:function(e){t.provide("avatarGroup",e);var n=Ql(),r=Ga("avatar"),o=Ga("avatar-group"),a=function(n){if((null==n?void 0:n.length)>e.max){var o=l(n),a=n.slice(0,e.max);return a.push(t.createVNode(YN,{class:"".concat(r.value,"__collapse"),size:e.size},"function"==typeof(i=o)||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?o:{default:function(){return[o]}})),a}var i;return n},l=function(t){return n("collapseAvatar")||"+".concat(t.length-e.max)};return function(){var l=n("default"),i=e.cascading,u=e.max,c=["".concat(o.value),s(s({},"".concat(r.value,"--offset-right"),"right-up"===i),"".concat(r.value,"--offset-left"),"left-up"===i)],d=u&&u>=0?[a($l(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),qN=fi(YN),XN=fi(ZN),GN={color:{type:String,default:""},content:{type:[String,Function]},count:{type:[String,Number,Function],default:0},default:{type:[String,Function]},dot:Boolean,maxCount:{type:Number,default:99},offset:{type:Array},shape:{type:String,default:"circle",validator:function(e){return["circle","round"].includes(e)}},showZero:Boolean,size:{type:String,default:"medium",validator:function(e){return["small","medium"].includes(e)}}},JN=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:GN,setup:function(e,n){var r=n.attrs,o=ti(),a=Ql(),l=t.computed((function(){var t=a("count");return Number.isNaN(Number(t))?t:(t=Number(e.count))>e.maxCount?"".concat(e.maxCount,"+"):t})),i=Ga(),u=Ga("badge"),c=t.computed((function(){return!e.showZero&&(0===l.value||"0"===l.value)})),d=t.computed((function(){return[s(s(s(s({},"".concat(u.value,"--dot"),!!e.dot),"".concat(u.value,"--circle"),!e.dot&&"circle"===e.shape),"".concat(u.value,"--round"),!e.dot&&"round"===e.shape),"".concat(i.value,"-size-s"),"small"===e.size)]})),v=t.computed((function(){var t=function(){if(!e.offset)return{};var t=Ra(e.offset,2),n=t[0],r=t[1];return{xOffset:n=Number.isNaN(Number(n))?n:"".concat(n,"px"),yOffset:r=Number.isNaN(Number(r))?r:"".concat(r,"px")}}(),n=t.xOffset,r=t.yOffset;return{background:e.color,right:n,top:r}}));return function(){return t.createVNode("div",t.mergeProps({class:u.value},r),[o("default","content"),c.value?null:t.createVNode("sup",{class:d.value,style:v.value},[e.dot?null:l.value])])}}}),QN=fi(JN),e_={cell:{type:[String,Function]},cellAppend:{type:[String,Function]},controllerConfig:{type:[Boolean,Object],default:void 0},fillWithZero:{type:Boolean,default:void 0},firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:"YYYY-MM-DD"},head:{type:[String,Function]},isShowWeekendDefault:{type:Boolean,default:!0},mode:{type:String,default:"month",validator:function(e){return!e||["month","year"].includes(e)}},month:{type:[String,Number]},multiple:Boolean,preventCellContextmenu:Boolean,range:{type:Array},theme:{type:String,default:"full",validator:function(e){return!e||["full","card"].includes(e)}},value:{type:[String,Array,Date]},week:{type:[Array,Function]},year:{type:[String,Number]},onCellClick:Function,onCellDoubleClick:Function,onCellRightClick:Function,onControllerChange:Function,onMonthChange:Function},t_="calendar",n_=1970,r_={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},o_=function(e){var t=Ka(e).day();return 0===t&&(t=7),t},a_=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},l_=function(e,t){for(var n=t.curSelectedYear,r=t.curSelectedMonth,o=t.realFirstDayOfWeek,a=t.curDate,l=t.curDateList,i=e.format,u=e.multiple,c=[],s=Ka("".concat(n,"-").concat(r)).startOf("month").toDate(),d=Ka(Ka("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=o_(t);return n>=e?n-e:7-e+n}(o,s),p=[],m=1,h=function(e,t,n,r){return{mode:"month",belongTo:e,isCurrent:t,day:o_(n),weekOrder:r,date:n,formattedDate:Ka(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find((function(t){return t.isSame(Ka(e))})):a.isSame(Ka(e))},y=0;y0&&(r.curSelectedYear=n)}),{immediate:!0}),t.watch((function(){return e.month}),(function(e){var t,n;n=(t=e)?parseInt("".concat(t),10):parseInt(i_().format("M"),10),!isNaN(n)&&n>0&&n<=12&&(r.curSelectedMonth=n)}),{immediate:!0}),t.watch((function(){return e.isShowWeekendDefault}),(function(e){r.isShowWeekend=e}),{immediate:!0}),t.watch((function(){return e.mode}),(function(e){r.curSelectedMode=e}),{immediate:!0}),t.watch((function(){return e.theme}),(function(e){"card"===e&&(r.controlSize="small"),"full"===e&&(r.controlSize="medium")}),{immediate:!0}),{state:r,toToday:function(){var e=i_();r.curDate=e,r.curSelectedYear=e.year(),r.curSelectedMonth=parseInt(e.format("M"),10)},checkDayVisible:function(e){var t=!0;return r.isShowWeekend||(t=6!==e&&7!==e),t}}}function c_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s_(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0],disabled:!1,mode:{visible:!0,radioGroupProps:{}},year:{visible:!0,selectProps:{}},month:{visible:!0,selectProps:{}},weekend:{visible:!0,showWeekendButtonProps:{},hideWeekendButtonProps:{}},current:{visible:!0,currentDayButtonProps:{},currentMonthButtonProps:{}}}};function v_(e,n){var r=qa(t_),o=r.t,a=r.globalConfig,l=t.computed((function(){return e.week||o(a.value.week).split(",")}));function i(e){var t,n,r=l.value;return E(r)&&r[e-1]?r[e-1]:(t="",(n=e.toString())in r_&&(t=r_[n]),t)}var u=t.computed((function(){for(var e=[],t=n.realFirstDayOfWeek;t<=7;t++)e.push({num:t,display:i(t)});if(n.realFirstDayOfWeek>1)for(var r=1;rparseInt(Ka(m.value.to).format("M"),10)}}return n}t.watch((function(){return{year:"".concat(c.curSelectedYear),month:"".concat(c.curSelectedMonth)}}),(function(t){H(e.onMonthChange)&&e.onMonthChange(y_({},t)),p.emitControllerChange()}));var g={yearSelectOptionList:t.computed((function(){var e=[],t=c.curSelectedYear-10,n=c.curSelectedYear+10;m.value&&m.value.from&&m.value.to&&(t=Ka(m.value.from).year(),n=Ka(m.value.to).year()),t1)||n===Array.from(t.popupStack[e]).pop()})),s(this,"getLastZIndex",(function(){return t.zIndexStack[t.zIndexStack.length-1]}))})),A_=new M_;function B_(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.visible,o=n.runOnMounted,a=t.ref(0),l=function(){a.value=A_.add(e)},i=function(){A_.delete(a.value,e)};return t.watch((function(){return null==r?void 0:r.value}),(function(e){e?l():i()}),{immediate:!0}),o&&(t.onMounted((function(){l()})),t.onBeforeUnmount((function(){i()}))),{zIndex:t.readonly(a),open:l,close:i,isTopInteractivePopup:function(){return!!I_.includes(e)&&A_.isTopInteractivePopup(e,a.value)}}}function L_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function R_(e){var n=t.ref(e);return{transform:n,mouseDownHandler:function(e){var t=e.pageX,r=e.pageY,o=n.value,a=o.translateX,l=o.translateY,i=function(e){var o=e.pageX,i=e.pageY;n.value={translateX:a+o-t,translateY:l+i-r}},u=function(){document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},resetTransform:function(){n.value=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function Z_(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var q_={body:{type:[String,Function]},cancelBtn:{type:[String,Object,Function]},closeBtn:{type:[String,Boolean,Function],default:!0},confirmBtn:{type:[String,Object,Function]},confirmLoading:{type:Boolean,default:void 0},footer:{type:[Boolean,Function]},header:{type:[String,Boolean,Function],default:!0},theme:{type:String,default:"default",validator:function(e){return!e||["default","info","warning","danger","success"].includes(e)}},onCancel:Function,onCloseBtnClick:Function,onConfirm:Function};function X_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function G_(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))})))}},props:G_(G_({},W_),q_),setup:function(e,n){var r=n.expose,o=t.ref(null),a=Ga("dialog"),l=Ga(),i=Ql(),u=ti(),c=qa("dialog").globalConfig,s=up({CloseIcon:Cc,InfoCircleFilledIcon:od,CheckCircleFilledIcon:Su,ErrorCircleFilledIcon:Jc}),d=s.CloseIcon,v=s.InfoCircleFilledIcon,f=s.CheckCircleFilledIcon,p=s.ErrorCircleFilledIcon,m=t.toRefs(e),h=m.cancelBtn,g=m.confirmBtn,y=m.confirmLoading,b=Y_({confirmBtnAction:function(t){var n;return null===(n=e.onConfirm)||void 0===n?void 0:n.call(e,{e:t})},cancelBtnAction:function(t){var n;return null===(n=e.onCancel)||void 0===n?void 0:n.call(e,{e:t})}}),w=b.getConfirmBtn,O=b.getCancelBtn,C=t.computed((function(){return"modeless"===e.mode})),x=t.computed((function(){return"full-screen"===e.mode})),P=function(t){var n;return null==e||null===(n=e.onCloseBtnClick)||void 0===n?void 0:n.call(e,{e:t})},j=function(t){C.value&&null!=e&&e.draggable&&t.stopPropagation()};r({$el:o,resetPosition:function(){!o.value&&C.value&&e.draggable||(o.value.style.position="relative",o.value.style.left="unset",o.value.style.top="unset")}});var S=t.computed((function(){var t=["".concat(a.value),"".concat(a.value,"__modal-").concat(e.theme),C.value&&e.draggable&&"".concat(a.value,"--draggable"),e.dialogClassName];return x.value?t.push("".concat(a.value,"__fullscreen")):t.push.apply(t,["".concat(a.value,"--default"),"".concat(a.value,"--").concat(e.placement)]),t})),k=t.computed((function(){return x.value?G_({},e.dialogStyle):G_({width:Z_(e.width)},e.dialogStyle)}));return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:S.value,style:k.value},[(V=t.computed((function(){var e;return(null===(e=g.value)||void 0===e?void 0:e.loading)||y.value})),D=t.createVNode("div",null,[O({cancelBtn:h.value,globalCancel:c.value.cancel,className:"".concat(a.value,"__cancel")}),w({theme:null==e?void 0:e.theme,confirmBtn:g.value,globalConfirm:c.value.confirm,globalConfirmBtnTheme:c.value.confirmBtnTheme,className:"".concat(a.value,"__confirm"),confirmLoading:V.value})]),E=i("footer",D),t.createVNode(t.Fragment,null,[(b=null!==(m=i("header",t.createVNode("h5",{class:"title"},null)))&&void 0!==m&&m,N=x.value?["".concat(a.value,"__header"),"".concat(a.value,"__header--fullscreen")]:"".concat(a.value,"__header"),_=x.value?["".concat(a.value,"__close"),"".concat(a.value,"__close--fullscreen")]:"".concat(a.value,"__close"),(b||(null==e?void 0:e.closeBtn))&&t.createVNode("div",{class:N,onMousedown:j},[t.createVNode("div",{class:"".concat(a.value,"__header-content")},[{info:t.createVNode(v,{class:"".concat(l.value,"-is-info")},null),warning:t.createVNode(p,{class:"".concat(l.value,"-is-warning")},null),danger:t.createVNode(p,{class:"".concat(l.value,"-is-error")},null),success:t.createVNode(f,{class:"".concat(l.value,"-is-success")},null)}[null==e?void 0:e.theme],b]),null!=e&&e.closeBtn?t.createVNode("span",{class:_,onClick:P},[i("closeBtn",t.createVNode(d,null,null))]):null])),(r=u("default","body"),s="default"===(null==e?void 0:e.theme)?["".concat(a.value,"__body")]:["".concat(a.value,"__body__icon")],x.value&&E?s.push("".concat(a.value,"__body--fullscreen")):x.value&&s.push("".concat(a.value,"__body--fullscreen--without-footer")),t.createVNode("div",{class:s,onMousedown:j},[r])),!!e.footer&&(n=x.value?["".concat(a.value,"__footer"),"".concat(a.value,"__footer--fullscreen")]:"".concat(a.value,"__footer"),E&&t.createVNode("div",{class:n,onMousedown:j},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),eV=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",(function(e){J_={x:e.clientX,y:e.clientY},setTimeout((function(){J_=null}),100)}),!0);var tV=1,nV=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:W_,emits:["update:visible"],setup:function(e,n){var r=Ga("dialog"),o=Ga(),a=t.ref(null),l=qa("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),L({e:t.e,trigger:"cancel"})},c=ni((function(){return e.attach}));Ym();var d=t.ref(),v=t.ref(),f=t.computed((function(){return"modal"===e.mode})),p=t.computed((function(){return"modeless"===e.mode})),m=t.computed((function(){return"full-screen"===e.mode})),h=t.computed((function(){return e.visible})),g=t.computed((function(){return["".concat(r.value,"__mask"),!e.showOverlay&&"".concat(o.value,"-is-hidden")]})),y=t.computed((function(){return m.value?["".concat(r.value,"__position_fullscreen")]:f.value||p.value?["".concat(r.value,"__position"),!!e.top&&"".concat(r.value,"--top"),"".concat(e.placement&&!e.top?"".concat(r.value,"--").concat(e.placement):"")]:[]})),b=t.computed((function(){return m.value||f.value||p.value?["".concat(r.value,"__wrap")]:null})),w=t.computed((function(){if(m.value)return{};var t=e.top,n={};void 0!==t&&(n={paddingTop:Z_(t)});return n})),O=B_("dialog",{visible:h}).isTopInteractivePopup,C=t.ref(!1);function x(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch((function(){return e.visible}),(function(n){var r;n?(C.value=!0,(f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick((function(){var e;if(J_&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(J_.x-t.offsetLeft,"px ").concat(J_.y-t.offsetTop,"px")}}))),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout((function(){x()}),150));k(n)}));var P,j,S,k=function(t){t?(document.addEventListener("keydown",_),e.confirmOnEnter&&document.addEventListener("keydown",N)):(document.removeEventListener("keydown",_),e.confirmOnEnter&&document.removeEventListener("keydown",N))},N=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},_=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&(L({e:t,trigger:"esc"}),t.stopImmediatePropagation()))},V=(P=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),L({e:t,trigger:"overlay"}))},j=!1,S=!1,{onClick:function(e){j&&S&&P(e),j=!1,S=!1},onMousedown:function(e){j=e.target===e.currentTarget},onMouseup:function(e){S=e.target===e.currentTarget}}),D=V.onClick,E=V.onMousedown,F=V.onMouseup,T=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),L({trigger:"close-btn",e:t.e})},I=function(){var t;null===(t=e.onBeforeOpen)||void 0===t||t.call(e)},M=function(){var t;null===(t=e.onOpened)||void 0===t||t.call(e)},A=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},B=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},L=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onMounted((function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?$_():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(tV+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")})),t.onBeforeUnmount((function(){k(!1),x()}));var R=t.computed((function(){var t=e.destroyOnClose,n=e.visible,r=e.lazy;return C.value?n||!t:!r}));return function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=el(e,eV);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:D,onMousedown:E,onMouseup:F},[t.createVNode(Q_,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:T}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:I,onAfterEnter:M,onBeforeLeave:A,onAfterLeave:B},{default:function(){return[R.value&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function rV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oV(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{max:2,min:.5,step:.2},n=e.max,r=e.min,o=e.step,a=e.defaultScale,l=t.ref(null!=a?a:1),i=Ea((function(){var e=Ly(l.value,o);s(e)}),50),u=Ea((function(){var e=Ry(l.value,o);s(e)}),50),c=function(){l.value=null!=a?a:1},s=function(e){var t=e;en&&(t=n),l.value=t};return t.watch((function(){return e}),(function(){return c()})),{scale:l,onZoomIn:i,onZoomOut:u,resetScale:c}}(e.imageScale),E=D.scale,F=D.onZoomIn,T=D.onZoomOut,I=D.resetScale,M=function(){var e=t.ref(0);return{rotate:e,onRotate:function(){e.value+=90},resetRotate:function(){e.value=0}}}(),A=M.rotate,B=M.onRotate,L=M.resetRotate,R=function(){V(),I(),L()},z=t.computed((function(){return mV(e.images)})),H=t.computed((function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}})),W=B_("dialog",{visible:y}).isTopInteractivePopup,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob((function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)}))},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case fV.left:K();break;case fV.right:U();break;case fV.up:F();break;case fV.down:T();break;case fV.esc:e.closeOnEscKeydown&&W()&&Z({e:t,trigger:"esc"})}},J=t.ref();t.watch((function(){return y.value}),(function(e){clearTimeout(O.value),e?(w.value=!1,t.nextTick().then((function(){var e,t;null===(e=J.value)||void 0===e||null===(t=e.focus)||void 0===t||t.call(e)})),R()):O.value=setTimeout((function(){w.value=!0}),200)}));var Q=function(e){e.preventDefault(),e.deltaY>0?T():F()},ee=t.computed((function(){return{transform:"translateX(calc(-".concat(m.value," * (40px / 9 * 16 + 4px)))")}})),te=function(){return t.createVNode("div",{class:P.value},[t.createVNode(H_,{icon:function(){return t.createVNode(Mu,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:S},null),t.createVNode("div",{class:"".concat(o.value,"__header-prev")},[t.createVNode("div",{class:"".concat(o.value,"__header-trans"),style:ee.value},[z.value.map((function(e,n){return t.createVNode("div",{key:n,class:["".concat(o.value,"__header-box"),s({},"".concat(r.value,"-is-active"),n===m.value)]},[t.createVNode(WN,{src:e.thumbnail||e.mainImage,error:"",class:"".concat(o.value,"__header-img"),onClick:function(){return function(e){h(e,{trigger:"current"})}(n)}},null)])}))])])])},ne=function(e){var n="prev"===e?0:180,r=a("navigationArrow",t.createVNode(Yu,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(H_,{class:"".concat(o.value,"__modal-").concat(e,"-bt"),onClick:"prev"===e?K:U,icon:function(){return r}},null)},re=function(){if(!1!==e.closeBtn)return t.createVNode("div",{class:["".concat(o.value,"__modal-icon"),"".concat(o.value,"__modal-close-bt")],onClick:q},[a("closeBtn",t.createVNode(Cc,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(vV,{zIndex:j.value,visible:y.value,index:m.value,images:z.value,scale:E.value,rotate:A.value,mirror:N.value,currentImage:H.value,onRotate:B,onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onClose:Z,onDownload:Y,draggable:e.draggable,showOverlay:i.value,title:e.title,imageReferrerpolicy:f.value},null)]):t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(t.Teleport,{disabled:!e.attach||!C.value,to:C.value},{default:function(){return[t.createVNode(t.Transition,null,{default:function(){return[(y.value||!w.value)&&t.withDirectives(t.createVNode("div",{ref:J,class:x.value,style:{zIndex:j.value},onWheel:Q,tabindex:-1,onKeydown:G},[!!i.value&&t.createVNode("div",{class:"".concat(o.value,"__modal-mask"),onClick:X},null),z.value.length>1&&t.createVNode(t.Fragment,null,[te(),t.createVNode("div",{class:"".concat(o.value,"__modal-index")},[e.title&&a("title"),"".concat(m.value+1,"/").concat(z.value.length)]),ne("prev"),ne("next")]),re(),t.createVNode(dV,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(z_,{scale:E.value,rotate:A.value,mirror:N.value,src:H.value.mainImage,placementSrc:H.value.thumbnail,isSvg:H.value.isSvg,imageReferrerpolicy:f.value},null)]),[[t.vShow,y.value]])]}})]}})])}}}),gV=fi(hV),yV={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},bV=t.defineComponent({name:"TListItem",props:yV,setup:function(){var e=Ga("list-item"),n=Ql();return function(){var r=n("content"),o=n("default"),a=n("action");return t.createVNode("li",{class:e.value},[t.createVNode("div",{class:"".concat(e.value,"-main")},[o||r,a&&t.createVNode("li",{class:"".concat(e.value,"__action")},[a])])])}}}),wV={asyncLoading:{type:[String,Function]},footer:{type:[String,Function]},header:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},scroll:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},split:Boolean,stripe:Boolean,onLoadMore:Function,onScroll:Function},OV="load-more";function CV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xV(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function jV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?Qm("List","".concat(o," does not exist in data, check `index` or `key` please.")):a.scrollToElement(kV(kV({},e),{},{index:o-1})):Qm("List","scrollTo: `index` or `key` must exist.")}}}(e.scroll,a,d),f=v.virtualConfig,p=v.cursorStyle,m=v.listStyle,h=v.isVirtualScroll,g=v.onInnerVirtualScroll,y=v.scrollToElement,b=t.computed((function(){return["".concat(i.value),u.value[e.size],s(s(s({},"".concat(i.value,"--split"),e.split),"".concat(i.value,"--stripe"),e.stripe),"".concat(i.value,"--vertical-action"),"vertical"===e.layout)]})),w=function(t){var n,r=t.target,o=r.scrollTop,a=r.scrollHeight,l=r.clientHeight;h.value&&g(t),null===(n=e.onScroll)||void 0===n||n.call(e,{e:t,scrollTop:o,scrollBottom:a-l-o})},O=t.computed((function(){return Do(e.asyncLoading)&&["loading","load-more"].includes(e.asyncLoading)?"".concat(i.value,"__load ").concat(i.value,"__load--").concat(e.asyncLoading):"".concat(i.value,"__load")})),C=function(){if(e.asyncLoading&&Do(e.asyncLoading)){if("loading"===e.asyncLoading)return t.createVNode("div",null,[t.createVNode(pi,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===OV)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;Do(e.asyncLoading)&&e.asyncLoading!==OV||null===(n=e.onLoadMore)||void 0===n||n.call(e,{e:t})};return o({scrollTo:y}),function(){var e,n,r,o=[(e=c("header"),n=c("footer"),r=f.isVirtualScroll.value,t.createVNode(t.Fragment,null,[e?t.createVNode("div",{class:"".concat(i.value,"__header")},[e]):null,r?t.createVNode(t.Fragment,null,[t.createVNode("div",{style:p.value},null),t.createVNode("ul",{class:"".concat(i.value,"__inner"),style:m.value},[f.visibleData.value.map((function(e){return t.createVNode(t.Fragment,null,[t.createVNode(bV,ta(e,"slots"),e.slots)])}))])]):t.createVNode("ul",{class:"".concat(i.value,"__inner")},[c("default")]),n?t.createVNode("div",{class:"".concat(i.value,"__footer")},[n]):null])),t.createVNode("div",{class:O.value,onClick:x},[C()])];return t.createVNode("div",{class:b.value,onScroll:w,ref:a,style:h.value?"position:relative":void 0},[o])}}}),_V={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},VV=t.defineComponent({name:"TListItemMeta",props:_V,setup:function(e,n){var r=Ga("list-item__meta"),o=ti(),a=Ql(),l=function(){(e.avatar||n.slots.avatar)&&console.warn("`avatar` is going to be deprecated, please use `image` instead");var a=o("avatar","image");if(a)return Do(a)?t.createVNode("div",{class:"".concat(r.value,"-avatar")},[t.createVNode("img",{src:a},null)]):t.createVNode("div",{class:"".concat(r.value,"-avatar")},[a])};return function(){var e=a("title"),n=a("description"),o=[l(),t.createVNode("div",{class:"".concat(r.value,"-content")},[e&&t.createVNode("h3",{class:"".concat(r.value,"-title")},[e]),n&&t.createVNode("p",{class:"".concat(r.value,"-description")},[n])])];return t.createVNode("div",{class:r.value},[o])}}}),DV=fi(NV),EV=fi(bV),FV=fi(VV),TV="line",IV="plump",MV="circle",AV="small",BV="medium",LV="large",RV=72,zV=112,HV=160,WV=14/RV,KV=20/zV,UV=36/HV,YV=["success","error","warning"],$V={color:{type:[String,Object,Array],default:""},label:{type:[String,Boolean,Function],default:!0},percentage:{type:Number,default:0},size:{type:[String,Number],default:"medium"},status:{type:String,validator:function(e){return!e||["success","error","warning","active"].includes(e)}},strokeWidth:{type:[String,Number]},theme:{type:String,default:"line",validator:function(e){return!e||["line","plump","circle"].includes(e)}},trackColor:{type:String,default:""}},ZV=t.defineComponent({name:"TProgress",props:$V,setup:function(e){var n=Ql(),r=Ga("progress"),o=up({CloseCircleFilledIcon:gc,CheckCircleFilledIcon:Su,ErrorCircleFilledIcon:Jc,CloseIcon:Cc,CheckIcon:Du,ErrorIcon:rs}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c=o.CheckIcon,d=o.ErrorIcon,v=t.computed((function(){return!e.status&&e.percentage>=100?"success":e.status||"default"})),f=t.computed((function(){var t={};if(e.strokeWidth){var n=Do(e.strokeWidth)?e.strokeWidth:"".concat(e.strokeWidth,"px");t.height=n,t.borderRadius=n}return e.trackColor&&(t.backgroundColor=e.trackColor),t})),p=t.computed((function(){return{width:"".concat(e.percentage,"%"),background:e.color&&rl(e.color)}})),m=t.computed((function(){return{stroke:E(e.color)?"":e.color}})),h=t.computed((function(){return{stroke:E(e.trackColor)?"":e.trackColor}})),g=t.computed((function(){var t=zV;if(!e.size)return t;var n=AV,r=LV,o=BV;switch(e.size){case n:t=RV;break;case o:t=zV;break;case r:t=HV;break;default:t=Number(e.size)}return t})),y=t.computed((function(){return g.value/2})),b=t.computed((function(){return y.value-O.value/2})),w=t.computed((function(){if(e.theme!==MV)return{};var t=g.value*KV;return g.value<=RV?t=g.value*WV:g.value>=HV&&(t=g.value*UV),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}})),O=t.computed((function(){var t=e.size===AV?4:6;return e.strokeWidth?Number(e.strokeWidth):t})),C=t.computed((function(){var t=(g.value-O.value)/2,n=2*Math.PI*t,r=e.percentage/100;return"".concat(n*r," ").concat(n*(1-r))})),x=function(){var n,o,s="".concat(e.percentage,"%"),v=e.status||"";if(YV.includes(v)&&e.theme!==IV){var f=(n={success:c,warning:d,error:u},o={success:l,warning:i,error:a},e.theme===MV?n:o)[v];f&&(s=t.createVNode(f,{class:["".concat(r.value,"__icon")]},null))}return s};return function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",x())]),a=e.percentage>10?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten");return t.createVNode("div",{class:r.value},[e.theme===TV&&t.createVNode("div",{class:"".concat(r.value,"--thin ").concat(r.value,"--status--").concat(v.value)},[t.createVNode("div",{class:"".concat(r.value,"__bar"),style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),style:p.value},null)]),o]),e.theme===IV&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(a),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),style:p.value},[e.percentage>10&&o]),e.percentage<=10&&o]),e.theme===MV&&t.createVNode("div",{class:"".concat(r.value,"--circle ").concat(r.value,"--status--").concat(v.value),style:w.value},[o,t.createVNode("svg",{width:g.value,height:g.value,viewBox:"0 0 ".concat(g.value," ").concat(g.value)},[t.createVNode("circle",{cx:y.value,cy:y.value,r:b.value,"stroke-width":O.value,fill:"none",class:["".concat(r.value,"__circle-outer")],style:h.value},null),e.percentage>0&&t.createVNode("circle",{cx:y.value,cy:y.value,r:b.value,"stroke-width":O.value,fill:"none","stroke-linecap":"round",class:["".concat(r.value,"__circle-inner")],transform:"matrix(0,-1,1,0,0,".concat(g.value,")"),"stroke-dasharray":C.value,style:m.value},null)])])])}}}),qV=fi(ZV),XV={animation:{type:String,default:"none",validator:function(e){return!e||["gradient","flashed","none"].includes(e)}},delay:{type:Number,default:0},loading:{type:Boolean,default:!0},rowCol:{type:Array},theme:{type:String,validator:function(e){return!e||["text","avatar","paragraph","avatar-text","tab","article"].includes(e)}}},GV={text:[1],avatar:[{type:"circle",size:"56px"}],paragraph:[1,1,{width:"70%"}],"avatar-text":[[{type:"circle"},{type:"text",height:"32px"}]],tab:[{height:"30px"},{height:"200px"}],article:[{type:"rect",height:"30px",width:"100%"},{type:"rect",height:"200px",width:"100%"},[{type:"text",height:"30px"},{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}]]},JV=function(e){var t=Object.create(null);return["width","height","marginRight","marginLeft","margin","size","background","backgroundColor"].forEach((function(n){if(n in e){var r=e[n],o=Ho(r)?"".concat(r,"px"):r;if("size"===n){var a=[o,o];t.width=a[0],t.height=a[1]}else t[n]=o}})),t},QV=t.defineComponent({name:"TSkeleton",props:XV,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=Ga("skeleton"),l=ti(),i=function(t){return["".concat(a.value,"__col"),"".concat(a.value,"--type-").concat(t.type||"text"),s({},"".concat(a.value,"--animation-").concat(e.animation),e.animation)]},u=function(n){var r=n||e.rowCol;return r.map((function(e){return t.createVNode("div",{class:["".concat(a.value,"__row")]},[(n=e,(j(n)?n:Ho(n)?new Array(n).fill({type:"text"}):[n]).map((function(e){return t.createVNode("div",{class:i(e),style:JV(e)},[H(e.content)?e.content(t.h):e.content])})))]);var n}))},c=null;return t.watch((function(){return e.loading}),(function(t){if(!t)return clearTimeout(c),void(o.value=!1);e.delay>0?c=setTimeout((function(){clearTimeout(c),o.value=!0}),e.delay):o.value=!0}),{immediate:!0}),function(){var n=l("default","content");if(r.default&&!o.value)return t.createVNode("div",null,[n]);if(o.value){var i=[];return e.theme&&i.push(u(GV[e.theme])),e.rowCol&&i.push(u(e.rowCol)),e.theme||e.rowCol||i.push(u([1,1,1,{width:"70%"}])),t.createVNode("div",{class:a.value},[i])}}}}),eD=fi(QV),tD={animation:{type:Object},animationStart:Boolean,color:{type:String,validator:function(e){return!e||["black","blue","red","orange","green"].includes(e)}},decimalPlaces:{type:Number},extra:{type:[String,Function]},format:{type:Function},loading:Boolean,prefix:{type:[String,Function]},separator:{type:String,default:","},suffix:{type:[String,Function]},title:{type:[String,Function]},trend:{type:String,validator:function(e){return!e||["increase","decrease"].includes(e)}},trendPlacement:{type:String,default:"left",validator:function(e){return!e||["left","right"].includes(e)}},unit:{type:[String,Function]},value:{type:Number}},nD=function(e){return 1-Math.abs(Math.pow(e-1,4))},rD=function(){return gg((function e(t){var n=this,r=t.from,o=t.to,a=t.duration,l=void 0===a?200:a,i=t.onStart,u=t.onUpdate,c=void 0===u?function(){}:u,d=t.onFinish;mg(this,e),s(this,"from",void 0),s(this,"to",void 0),s(this,"duration",void 0),s(this,"onStart",void 0),s(this,"onUpdate",void 0),s(this,"onFinish",void 0),s(this,"startTime",void 0),s(this,"started",void 0),s(this,"finished",void 0),s(this,"timer",void 0),s(this,"keys",void 0),s(this,"time",0),s(this,"elapsed",0),this.from=r,this.to=o,this.duration=l,this.onStart=i,this.onUpdate=c,this.onFinish=d,this.startTime=Date.now(),this.started=!1,this.finished=!1,this.timer=null,this.keys={},Object.entries(r).forEach((function(e){var t=Ra(e,2),r=t[0],o=t[1];void 0===n.to[r]&&(n.to[r]=o)})),Object.entries(o).forEach((function(e){var t=Ra(e,2),r=t[0],o=t[1];void 0===n.from[r]&&(n.from[r]=o)}))}),[{key:"update",value:function(){var e=this;if(this.time=Date.now(),!(this.time=this.duration)return this.finished=!0,void(null===(t=this.onFinish)||void 0===t||t.call(this,this.keys));var n=Math.min(this.time-this.startTime,this.duration);this.elapsed=n;var r,o=nD(n/this.duration);if(Object.keys(this.to).forEach((function(t){var n=e.to[t]-e.from[t];e.keys[t]=e.from[t]+n*o})),!this.started)null===(r=this.onStart)||void 0===r||r.call(this,this.keys),this.started=!0;this.onUpdate(this.keys)}}},{key:"polyfillStart",value:function(){var e=this,t=Date.now()-this.startTime,n=nD(t/this.duration);this.timer=setInterval((function(){e.update(),e.finished&&clearInterval(e.timer)}),n)}},{key:"normalStart",value:function(){var e=this,t=function(){e.update(),e.timer=requestAnimationFrame(t),e.finished&&(cancelAnimationFrame(e.timer),e.timer=null)};t()}},{key:"start",value:function(){this.startTime=Date.now(),ol()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){ol()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),oD={black:"var(--td-text-color-primary)",blue:"var(--td-brand-color)",red:"var(--td-error-color)",orange:"var(--td-warning-color)",green:"var(--td-success-color)"};var aD=t.defineComponent({name:"TStatistic",props:tD,setup:function(e,n){var r,o,a=n.expose,l=Ga("statistic"),i=Ql(),u=up({ArrowTriangleUpFilledIcon:Xi,ArrowTriangleDownFilledIcon:Ui}),c=u.ArrowTriangleUpFilledIcon,s=u.ArrowTriangleDownFilledIcon,d={increase:t.createVNode(c,null,null),decrease:t.createVNode(s,null,null)},v=t.computed((function(){return Ho(e.value)?e.value:0})),f=t.ref(null!==(r=null===(o=e.animation)||void 0===o?void 0:o.valueFrom)&&void 0!==r?r:e.value),p=t.computed((function(){var t,n,r;return null!==(t=null!==(n=e.decimalPlaces)&&void 0!==n?n:null===(r=v.value.toString().split(".")[1])||void 0===r?void 0:r.length)&&void 0!==t?t:0})),m=t.ref(),h=t.toRefs(e).value,g=function(){var t,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(t=null===(n=e.animation)||void 0===n?void 0:n.valueFrom)&&void 0!==t?t:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v.value;o!==a&&(m.value=new rD({from:{value:o},to:{value:a},duration:e.animation.duration,onUpdate:function(e){f.value=Number(e.value.toFixed(p.value))},onFinish:function(){f.value=a}}),null===(r=m.value)||void 0===r||r.start())},y=t.computed((function(){return H(e.format)?e.format(f.value):function(e,t,n){var r={minimumFractionDigits:null!=t?t:0,maximumFractionDigits:null!=t?t:20,useGrouping:!!n};return e.toLocaleString(void 0,r).replace(/,|\uff0c/g,n)}(f.value,e.decimalPlaces,e.separator)})),b=t.computed((function(){var t=e.color;return{color:oD[t]||t}}));return t.watch((function(){return e.animationStart}),(function(t){e.animation&&t&&!m.value&&g()})),t.watch(h,(function(t){var n;m.value&&(null===(n=m.value)||void 0===n||n.stop(),m.value=null);f.value=t,e.animationStart&&e.animation&&g()})),t.onMounted((function(){return e.animation&&e.animationStart&&g()})),a({start:g}),function(){var n=e.trend?d[e.trend]:null,r=i("prefix")||(n&&"right"!==e.trendPlacement?n:null),o=i("suffix")||(n&&"right"===e.trendPlacement?n:null),a=i("title"),u=i("unit"),c=i("extra");return t.createVNode("div",{class:l.value},[a&&t.createVNode("div",{class:"".concat(l.value,"-title")},[a]),t.createVNode(eD,{animation:"gradient",theme:"text",loading:!!e.loading},{default:function(){return[t.createVNode("div",{class:"".concat(l.value,"-content"),style:b.value},[r&&t.createVNode("span",{class:"".concat(l.value,"-content-prefix")},[r]),t.createVNode("span",{class:"".concat(l.value,"-content-value")},[y.value]),u&&t.createVNode("span",{class:"".concat(l.value,"-content-unit")},[u]),o&&t.createVNode("span",{class:"".concat(l.value,"-content-suffix")},[o])])]}}),c&&t.createVNode("div",{class:"".concat(l.value,"-extra")},[c])])}}}),lD=fi(aD),iD={animation:{type:String,default:"slide",validator:function(e){return!e||["slide","fade"].includes(e)}},autoplay:{type:Boolean,default:!0},current:{type:Number,default:0},defaultCurrent:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},duration:{type:Number,default:300},height:{type:Number},interval:{type:Number,default:5e3},loop:{type:Boolean,default:!0},navigation:{type:[Object,Function]},stopOnHover:{type:Boolean,default:!0},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}},type:{type:String,default:"default",validator:function(e){return!e||["default","card"].includes(e)}},cardScale:{type:Number,default:210/332},onChange:Function};function uD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cD(e){for(var t=1;t=e.swiperItemLength/2?e.swiperItemLength+1:e.index>e.currentIndex+1&&e.index-e.currentIndex>=e.swiperItemLength/2?-2:e.index})),i=t.computed((function(){if("card"!==e.type)return 0;var t=e.getWrapAttribute("offsetWidth")||0,n=!a.value&&e.swiperItemLength>2?l.value:e.index;return Math.abs(n-e.currentIndex)<=1?t*((n-e.currentIndex)*(1-dD*e.cardScale)-dD+1)/2:n2?l.value:e.index,n=t===e.currentIndex,r=Math.round(Math.abs(t-e.currentIndex))<=1;return n?2:r?1:0})),c=t.computed((function(){if("fade"===e.animation)return{opacity:a.value?1:0,transition:e.isSwitching?"opacity ".concat(e.duration/1e3,"s"):"",zIndex:a.value?1:0};if("card"===e.type){var t=(!a.value&&e.swiperItemLength>2?l.value:e.index)===e.currentIndex;return{transform:"translateX(".concat(i.value,"px) scale(").concat(t?1:e.cardScale,")"),transition:"transform ".concat(e.duration/1e3,"s ease"),zIndex:u.value}}return{}}));return function(){var n;return t.createVNode("div",{class:["".concat(o.value,"-swiper__container__item"),s(s(s({},"".concat(o.value,"-swiper__card"),"card"===e.type),"".concat(o.value,"-is-active"),"card"===e.type&&a.value),"".concat(o.value,"-swiper__fade"),"fade"===e.animation)],style:c.value},[(null===(n=r.default)||void 0===n?void 0:n.call(r,{}))||[]])}}});function fD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pD(e){for(var t=1;t=O.value:!e.loop&&p.value+2>=O.value})),P=t.computed((function(){return[e.autoplay,p.value,e.duration,e.interval]})),j=t.computed((function(){return s(s(s(s(s(s({},"".concat(o.value,"-swiper__wrap"),!0),"".concat(o.value,"-swiper--inside"),"inside"===C.value.placement),"".concat(o.value,"-swiper--outside"),"outside"===C.value.placement),"".concat(o.value,"-swiper--vertical"),"vertical"===e.direction),"".concat(o.value,"-swiper--large"),"large"===C.value.size),"".concat(o.value,"-swiper--small"),"small"===C.value.size)})),S=t.computed((function(){var t=e.height?"".concat(e.height,"px"):"".concat(I("offsetHeight"),"px");if("card"===e.type||"fade"===e.animation)return{height:t};if("slide"===e.animation){var n={transition:g.value?"transform ".concat(e.duration/1e3,"s ease"):""},r=p.value;return O.value>1&&(r+=1,(v||f)&&(n.transition="")),"vertical"===e.direction?(n.height=t,n.transform="translate3d(0, -".concat(100*r,"%, 0px)")):n.transform="translate3d(-".concat(100*r,"%, 0px, 0px)"),["msTransform","WebkitTransform"].forEach((function(e){n[e]=n.transform})),n}return{}})),k=function(){var n=w("SwiperItem");O.value=n.length;var r=n.map((function(n,r){var o,a,l=pD(pD({},e),n.props);return t.createVNode(vD,t.mergeProps({index:r,currentIndex:p.value,isSwitching:g.value,getWrapAttribute:I,swiperItemLength:O.value},l),"function"==typeof(a=o=n.children.default())||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}})}));if("slide"===e.animation&&r.length>1){var o=t.cloneVNode(r[0],{key:"swiper-item-append-".concat(0)}),a=t.cloneVNode(r[r.length-1],{key:"swiper-item-prepend-".concat(r.length-1)});r.unshift(a),r.push(o)}return r},N=function(t,n){var o,a=t%O.value;m.value=a,r("update:current",a),null===(o=e.onChange)||void 0===o||o.call(e,a,n),g.value=!0,"slide"===e.animation&&O.value>1&&"card"!==e.type&&(a=t,v=!1,f=!1,t>=O.value&&(_(),setTimeout((function(){f=!0,p.value=0}),e.duration)),0===p.value&&(O.value>2&&t===O.value-1||2===O.value&&0===t)&&(a=-1,m.value=O.value-1,_(),setTimeout((function(){v=!0,p.value=O.value-1}),e.duration))),p.value=a},_=function(){c&&(clearTimeout(c),c=null)},V=function(){e.autoplay&&e.interval>0&&(_(),c=setTimeout((function(){N(p.value+1,{source:"autoplay"})}),0===p.value?e.interval-(e.duration+50):e.interval))},D=function(){h.value=!0,e.stopOnHover&&_(),"hover"===C.value.showSlideBtn&&(y.value=!0)},E=function(){h.value=!1,x.value||V(),"hover"===C.value.showSlideBtn&&(y.value=!1)},F=function(t){if(!g.value)return"card"===e.type?N(p.value+1>=O.value?0:p.value+1,t):N(p.value+1,t)},T=function(t){if(!g.value)return p.value-1<0?"slide"===e.animation&&2===O.value?N(0,t):N(O.value-1,t):N(p.value-1,t)},I=function(e){var t;return null===(t=b.value)||void 0===t||null===(t=t.parentNode)||void 0===t?void 0:t[e]},M=function(){if(t.isVNode(e.navigation))return e.navigation;var n,r=a("navigation");if(r&&t.isVNode(null==r?void 0:r[0]))return r;if("fraction"===C.value.type)return t.createVNode("div",{class:["".concat(o.value,"-swiper__navigation"),"".concat(o.value,"-swiper__navigation--fraction")]},[(n=p.value+1>O.value?1:p.value+1,t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow")},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__navigation-text-fraction")},[n,"/",O.value]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]))]);var l=w("SwiperItem");return t.createVNode("ul",{class:["".concat(o.value,"-swiper__navigation"),s(s(s({},"".concat(o.value,"-swiper__navigation-bars"),"bars"===C.value.type),"".concat(o.value,"-swiper__navigation-dots"),"dots"===C.value.type),"".concat(o.value,"-swiper__navigation-dots-bar"),"dots-bar"===C.value.type)]},[l.map((function(n,r){return t.createVNode("li",{key:r,class:["".concat(o.value,"-swiper__navigation-item"),s({},"".concat(o.value,"-is-active"),r===m.value)],onMouseenter:function(){return function(t){"hover"===e.trigger&&N(t,{source:"hover"})}(r)},onClick:function(){return function(t){"click"===e.trigger&&N(t,{source:"click"})}(r)}},[t.createVNode("span",null,null)])}))])};return t.watch((function(){return P.value}),(function(){V()})),t.watch((function(){return g.value}),(function(){g.value&&(d&&clearTimeout(d),d=setTimeout((function(){g.value=!1,d=0,x.value&&_()}),e.duration+50))})),t.watch((function(){return e.current}),(function(){N(e.current,{source:"autoplay"})})),t.onMounted((function(){V(),y.value="always"===C.value.showSlideBtn})),function(){return t.createVNode("div",{class:["".concat(o.value,"-swiper")],onMouseenter:D,onMouseleave:E,ref:b},[t.createVNode("div",{class:j.value},[t.createVNode("div",{class:["".concat(o.value,"-swiper__content"),s(s({},"".concat(o.value,"-swiper-fade"),"fade"===e.animation),"".concat(o.value,"-swiper-card"),"card"===e.type)]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__container"),style:S.value},[k()])]),M(),y.value?t.createVNode("div",{class:["".concat(o.value,"-swiper__arrow"),"".concat(o.value,"-swiper__arrow--default")]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]):null])])}}}),gD=fi(hD),yD=fi(vD),bD={activeRowKeys:{type:Array,default:void 0},defaultActiveRowKeys:{type:Array,default:function(){return[]}},activeRowType:{type:String,default:""},allowResizeColumnWidth:{type:Boolean,default:void 0},attach:{type:[String,Function]},bordered:Boolean,bottomContent:{type:[String,Function]},cellEmptyContent:{type:[String,Function]},columns:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},disableDataPage:Boolean,disableSpaceInactiveRow:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},firstFullRow:{type:[String,Function]},fixedRows:{type:Array},footData:{type:Array,default:function(){return[]}},footerAffixProps:{type:Object},footerAffixedBottom:{type:[Boolean,Object],default:!1},footerSummary:{type:[String,Function]},headerAffixProps:{type:Object},headerAffixedTop:{type:[Boolean,Object],default:!1},height:{type:[String,Number]},horizontalScrollAffixedBottom:{type:[Boolean,Object]},hover:Boolean,keyboardRowHover:{type:Boolean,default:!0},lastFullRow:{type:[String,Function]},lazyLoad:Boolean,loading:{type:[Boolean,Function],default:void 0},loadingProps:{type:Object},locale:{type:Object},maxHeight:{type:[String,Number]},pagination:{type:Object},paginationAffixedBottom:{type:[Boolean,Object]},resizable:Boolean,rowAttributes:{type:[Object,Array,Function]},rowClassName:{type:[String,Object,Array,Function]},rowKey:{type:String,default:"id",required:!0},rowspanAndColspan:{type:Function},rowspanAndColspanInFooter:{type:Function},scroll:{type:Object},showHeader:{type:Boolean,default:!0},size:{type:String,validator:function(e){return!e||["small","medium","large"].includes(e)}},stripe:Boolean,tableContentWidth:{type:String,default:""},tableLayout:{type:String,default:"fixed",validator:function(e){return!e||["auto","fixed"].includes(e)}},topContent:{type:[String,Function]},verticalAlign:{type:String,default:"middle",validator:function(e){return!e||["top","middle","bottom"].includes(e)}},onActiveChange:Function,onActiveRowAction:Function,onCellClick:Function,onColumnResizeChange:Function,onPageChange:Function,onRowClick:Function,onRowDblclick:Function,onRowMousedown:Function,onRowMouseenter:Function,onRowMouseleave:Function,onRowMouseover:Function,onRowMouseup:Function,onScroll:Function,onScrollX:Function,onScrollY:Function};function wD(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=n,o=0,a=e.length;or&&(r=u)}}return r}function OD(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(null==e?void 0:e.children)||[],r=0,o=n.length;r1&&(v.rowspan=s),d>1&&(v.colspan=d),r.set(c,v),null!=c&&null!==(u=c.children)&&void 0!==u&&u.length?o(c.children,a):a.push(c)}},a=[];return o(e,a),{rowspanAndColspanMap:r,leafColumns:a}}function xD(){var e=Ga();return{classPrefix:e.value,tableBaseClass:{table:"".concat(e.value,"-table"),columnResizableTable:"".concat(e.value,"-table--column-resizable"),overflowVisible:"".concat(e.value,"-table--overflow-visible"),body:"".concat(e.value,"-table__body"),content:"".concat(e.value,"-table__content"),topContent:"".concat(e.value,"-table__top-content"),bottomContent:"".concat(e.value,"-table__bottom-content"),paginationWrap:"".concat(e.value,"-table__pagination-wrap"),tdLastRow:"".concat(e.value,"-table__td-last-row"),tdFirstCol:"".concat(e.value,"-table__td-first-col"),thCellInner:"".concat(e.value,"-table__th-cell-inner"),tableRowEdit:"".concat(e.value,"-table--row-edit"),cellEditable:"".concat(e.value,"-table__cell--editable"),cellEditWrap:"".concat(e.value,"-table__cell-wrap"),bordered:"".concat(e.value,"-table--bordered"),striped:"".concat(e.value,"-table--striped"),hover:"".concat(e.value,"-table--hoverable"),loading:"".concat(e.value,"-table--loading"),rowspanAndColspan:"".concat(e.value,"-table--rowspan-colspan"),empty:"".concat(e.value,"-table__empty"),emptyRow:"".concat(e.value,"-table__empty-row"),headerFixed:"".concat(e.value,"-table--header-fixed"),columnFixed:"".concat(e.value,"-table--column-fixed"),widthOverflow:"".concat(e.value,"-table--width-overflow"),multipleHeader:"".concat(e.value,"-table--multiple-header"),footerAffixed:"".concat(e.value,"-table--footer-affixed"),horizontalBarAffixed:"".concat(e.value,"-table--horizontal-bar-affixed"),affixedHeader:"".concat(e.value,"-table--affixed-header"),affixedHeaderElm:"".concat(e.value,"-table__affixed-header-elm"),affixedFooterElm:"".concat(e.value,"-table__affixed-footer-elm"),affixedFooterWrap:"".concat(e.value,"-table__affixed-footer-wrap"),scrollbarDivider:"".concat(e.value,"-table__scroll-bar-divider"),fullHeight:"".concat(e.value,"-table--full-height"),resizeLine:"".concat(e.value,"-table__resize-line"),obviousScrollbar:"".concat(e.value,"-table__scrollbar--obvious"),affixedHeaderWrap:"".concat(e.value,"-table__affixed-header-elm-wrap")},tdAlignClasses:{left:"".concat(e.value,"-align-left"),right:"".concat(e.value,"-align-right"),center:"".concat(e.value,"-align-center")},tableHeaderClasses:{header:"".concat(e.value,"-table__header"),thBordered:"".concat(e.value,"-table__header-th--bordered"),fixed:"".concat(e.value,"-table__header--fixed"),multipleHeader:"".concat(e.value,"-table__header--multiple")},tableFooterClasses:{footer:"".concat(e.value,"-table__footer"),fixed:"".concat(e.value,"-table__footer--fixed")},tableAlignClasses:{top:"".concat(e.value,"-vertical-align-top"),middle:"".concat(e.value,"-vertical-align-middle"),bottom:"".concat(e.value,"-vertical-align-bottom")},tableRowFixedClasses:{top:"".concat(e.value,"-table__row--fixed-top"),bottom:"".concat(e.value,"-table__row--fixed-bottom"),firstBottom:"".concat(e.value,"-table__row--fixed-bottom-first"),withoutBorderBottom:"".concat(e.value,"-table__row--without-border-bottom")},tableColFixedClasses:{left:"".concat(e.value,"-table__cell--fixed-left"),right:"".concat(e.value,"-table__cell--fixed-right"),lastLeft:"".concat(e.value,"-table__cell--fixed-left-last"),firstRight:"".concat(e.value,"-table__cell--fixed-right-first"),leftShadow:"".concat(e.value,"-table__content--scrollable-to-left"),rightShadow:"".concat(e.value,"-table__content--scrollable-to-right")},tableLayoutClasses:{auto:"".concat(e.value,"-table--layout-auto"),fixed:"".concat(e.value,"-table--layout-fixed")},tdEllipsisClass:"".concat(e.value,"-table-td--ellipsis"),tableFullRowClasses:{base:"".concat(e.value,"-table__row--full"),innerFullRow:"".concat(e.value,"-table__row-full-inner"),innerFullElement:"".concat(e.value,"-table__row-full-element"),firstFullRow:"".concat(e.value,"-table__first-full-row"),lastFullRow:"".concat(e.value,"-table__last-full-row")},tableExpandClasses:{iconBox:"".concat(e.value,"-table__expand-box"),iconCell:"".concat(e.value,"-table__expandable-icon-cell"),rowExpanded:"".concat(e.value,"-table__row--expanded"),rowFolded:"".concat(e.value,"-table__row--folded"),row:"".concat(e.value,"-table__expanded-row"),rowInner:"".concat(e.value,"-table__expanded-row-inner"),expanded:"".concat(e.value,"-table__row--expanded"),collapsed:"".concat(e.value,"-table__row--collapsed")},tableSortClasses:{sortable:"".concat(e.value,"-table__cell--sortable"),sortColumn:"".concat(e.value,"-table__sort-column"),title:"".concat(e.value,"-table__cell--title"),trigger:"".concat(e.value,"-table__cell--sort-trigger"),doubleIcon:"".concat(e.value,"-table__double-icons"),sortIcon:"".concat(e.value,"-table__sort-icon"),iconDirection:{asc:"".concat(e.value,"-table-sort-asc"),desc:"".concat(e.value,"-table-sort-desc")},iconActive:"".concat(e.value,"-table__sort-icon--active"),iconDefault:"".concat(e.value,"-icon-sort--default")},tableSelectedClasses:{selected:"".concat(e.value,"-table__row--selected"),disabled:"".concat(e.value,"-table__row--disabled"),checkCell:"".concat(e.value,"-table__cell-check")},tableFilterClasses:{filterable:"".concat(e.value,"-table__cell--filterable"),popup:"".concat(e.value,"-table__filter-pop"),icon:"".concat(e.value,"-table__filter-icon"),popupContent:"".concat(e.value,"-table__filter-pop-content"),result:"".concat(e.value,"-table__filter-result"),inner:"".concat(e.value,"-table__row-filter-inner"),bottomButtons:"".concat(e.value,"-table__filter--bottom-buttons"),contentInner:"".concat(e.value,"-table__filter-pop-content-inner"),iconWrap:"".concat(e.value,"-table__filter-icon-wrap")},asyncLoadingClass:"".concat(e.value,"-table__async-loading"),isFocusClass:"".concat(e.value,"-is-focus"),isLoadingClass:"".concat(e.value,"-is-loading"),isLoadMoreClass:"".concat(e.value,"-is-load-more"),tableTreeClasses:{col:"".concat(e.value,"-table__tree-col"),inlineCol:"".concat(e.value,"-table__tree-col--inline"),icon:"".concat(e.value,"-table__tree-op-icon"),leafNode:"".concat(e.value,"-table__tree-leaf-node")},tableDraggableClasses:{rowDraggable:"".concat(e.value,"-table--row-draggable"),rowHandlerDraggable:"".concat(e.value,"-table--row-handler-draggable"),colDraggable:"".concat(e.value,"-table--col-draggable"),handle:"".concat(e.value,"-table__handle-draggable"),ghost:"".concat(e.value,"-table__ele--draggable-ghost"),chosen:"".concat(e.value,"-table__ele--draggable-chosen"),dragging:"".concat(e.value,"-table__ele--draggable-dragging"),dragSortTh:"".concat(e.value,"-table__th--drag-sort")},virtualScrollClasses:{cursor:"".concat(e.value,"-table__virtual-scroll-cursor"),header:"".concat(e.value,"-table__virtual-scroll-header")},positiveRotate90:"".concat(e.value,"-positive-rotate-90"),negativeRotate180:"".concat(e.value,"-negative-rotate-180")}}function PD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var jD=t.defineComponent({name:"TEllipsis",props:{content:{type:[String,Function]},default:{type:[String,Function]},tooltipContent:{type:[String,Number,Function]},placement:String,attach:[String,Function],tooltipProps:Object,zIndex:Number,overlayClassName:String,classPrefix:{type:String,default:"t"}},setup:function(e){var n=t.ref(),r=t.ref(!1),o=t.ref(!1),a=t.computed((function(){return["".concat(e.classPrefix,"-table__ellipsis"),"".concat(e.classPrefix,"-text-ellipsis")]})),l=t.computed((function(){return["".concat(e.classPrefix,"-table__ellipsis-content"),e.overlayClassName]}));t.onMounted((function(){o.value=Al(n.value)})),t.onUpdated((function(){o.value=Al(n.value)}));var i=po((function(e){"mouseleave"===e.type?n.value:n.value&&(r.value=!0)}),80);return{flag:r,root:n,isOverflow:o,ellipsisClasses:a,innerEllipsisClassName:l,onMouseAround:i,handleVisibleChange:function(e){e||(r.value=!1)}}},render:function(){var e,n,r,o,a,l,i,u,c,d,v,f=(e=this,n="default",r="content",a=Zl(o),l=Yl(o),u=Xl(e,n,i=a?{params:a}:void 0),c=Xl(e,r,i),d=Ro(u)?c:u,Ro(d)?l:d),p=t.createVNode("div",{ref:"root",class:this.ellipsisClasses,onMouseenter:this.onMouseAround,onMouseleave:this.onMouseAround,style:{textOverflow:this.isOverflow?"ellipsis":"clip"}},[f]),m=null,h=this.tooltipProps;if(this.isOverflow&&this.flag){var g=function(e){for(var t=1;t1}));return{thList:l,isMultipleHeader:i,spansAndLeafNodes:a,renderTitleWidthIcon:function(n,a,l,i,c,d){var v,f=Ra(n,3),p=f[0],m=f[1],h=f[2],g=s(s({},r.sortable,m),o.filterable,h),y=H(i)?i(t.h,{col:a,colIndex:l}):void 0,b=void 0!==i?Boolean(i):Boolean(a.ellipsis);return t.createVNode("div",{class:g},[t.createVNode("div",{class:r.title},[b?t.createVNode(jD,{placement:"bottom",attach:e.attach||(c?function(){return c}:void 0),tooltipContent:y&&function(){return y},tooltipProps:"object"===u(i)?i:void 0,classPrefix:null==d?void 0:d.classPrefix,overlayClassName:null==d?void 0:d.ellipsisOverlayClassName},(v=p,"function"==typeof v||"[object Object]"===Object.prototype.toString.call(v)&&!t.isVNode(v)?p:{default:function(){return[p]}})):t.createVNode("div",null,[p]),Boolean(m||h)&&t.createVNode("div",{class:o.iconWrap},[m,h])])])}}}function VD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function DD(e){var n,r,o=e.isWidthOverflow,a=e.tableContentRef,l=e.showColumnShadow,i=e.getThWidthList,u=e.updateThWidthList,c=e.setTableElmWidth,d=e.updateTableAfterColumnResize,v=e.onColumnResizeChange,f=t.ref(),p=t.ref({}),m=t.ref([]);t.onMounted((function(){var e="undefined"!=typeof document;n=e?document.onselectstart:null,r=e?document.ondragstart:null}));var h=function(e,t,n){for(var r=t;e[r]&&!1===e[r].resizable;)"next"===n?r+=1:r-=1;return e[r]},g=function(e,t){e&&(m.value=e,e.forEach((function(n,r){var o=h(e,r-1,"prev"),a=h(e,r+1,"next"),l=t?p.value[t.colKey].prev:a,i=t?p.value[t.colKey].next:o,u=0===r?l:o,c=r===e.length-1?i:a;p.value[n.colKey]={prev:u,next:c,current:{prevSibling:h(e,r-1,"prev"),nextSibling:h(e,r+1,"next")}},g(n.children,n)})))},y={isDragging:!1,draggingCol:null,draggingStart:0,effectCol:"next"},b=t.reactive({display:"none",height:"10px",left:"10px",bottom:"0"}),w=function(e){return"right"===e.fixed&&l.right},O=function(e){var t,n,r=Ho(e.minWidth)?e.minWidth:parseInt(e.minWidth||"0",10);return{minColWidth:Math.max((null===(t=e.resize)||void 0===t?void 0:t.minWidth)||80,r),maxColWidth:(null===(n=e.resize)||void 0===n?void 0:n.maxWidth)||600}},C=function(e,t,n,r){return t?function(e,t,n,r){var o=n.right-r.left,a=n.left-r.left,l="next"===y.effectCol?e:t,i=O(l);return{resizeLinePos:o,minResizeLineLeft:a+i.minColWidth,maxResizeLineLeft:a+i.maxColWidth}}(e,t,n,r):function(e,t){var n=e.left-t.left,r=e.left-t.left;return{resizeLinePos:n,minResizeLineLeft:r,maxResizeLineLeft:r}}(n,r)};return{resizeLineRef:f,resizeLineStyle:b,onColumnMouseover:function(e,t){if(f.value&&!y.isDragging&&e.target){var n=e.target.closest("th"),r=n.getAttribute("data-colkey");if(m.value.find((function(e){return e.colKey===r}))){var o,a=n.getBoundingClientRect(),l=a.right-e.pageX<=8,i=e.pageX-a.left<=8,u=w(t);if(l||u){if(null===(o=t.resizable)||void 0===o||o){n.style.cursor=l||u&&i?"col-resize":"";var c=l&&!u||u&&i;return y.draggingCol=c?n:n.nextElementSibling,void(y.effectCol="next")}}else if(i){var s=n.previousElementSibling;if(s){var d,v,h=null===(d=p.value[t.colKey])||void 0===d?void 0:d.prev;if(null===(v=null==h?void 0:h.resizable)||void 0===v||v)return n.style.cursor="col-resize",y.draggingCol=s,void(y.effectCol="prev")}}n.style.cursor="",y.draggingCol=null,y.effectCol=null}}},onColumnMousedown:function(e,t,l){var h,g,x;if(y.draggingCol){var P=y.draggingCol,j=P.getBoundingClientRect(),S=null===(h=a.value)||void 0===h?void 0:h.getBoundingClientRect(),k=null===(g=p.value[t.colKey])||void 0===g?void 0:g.next,N=null===(x=p.value[t.colKey])||void 0===x?void 0:x.prev,_=w(t)?function(e,t,n,r,o){var a=r.left-o.left,l=e.dataset.colkey===t.colKey?t:n,i=r.left-o.left,u=O(l),c=u.minColWidth,s=u.maxColWidth;return{resizeLinePos:a,minResizeLineLeft:i+(r.width-s),maxResizeLineLeft:i+(r.width-c)}}(P,t,k,j,S):C(t,k,j,S),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(S.bottom-j.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-S.bottom,"px")}var T=function(){var e;if(y.isDragging){var a=V-parseFloat(b.left)||0,f=i("calculate"),h=null===(e=p.value[t.colKey])||void 0===e?void 0:e.current;if(h){var g="next"===y.effectCol?h.nextSibling:h.prevSibling,C=function(e){for(var t=1;tu}return!(a||o.value||r===m.value.length-1)}(C,"next"===y.effectCol?h.nextSibling:t,a,l);"next"===y.effectCol?w(t)?P.dataset.colkey!==t.colKey?C[k.colKey]+=a:C[x.colKey]+=a:(C[x.colKey]-=a,j&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(j&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var S=function(e){var t=0;return m.value.forEach((function(n){t+=e[n.colKey]})),t}(C);c(Math.round(S)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",Nl(document,"mouseup",T),Nl(document,"mousemove",I),document.onselectstart=n,document.ondragstart=r,null==v||v({columnsWidth:C})}}},I=function(e){if(y.isDragging){var t=V+e.x-y.draggingStart;b.left="".concat(Math.min(Math.max(t,D),E),"px")}};kl(document,"mouseup",T),kl(document,"mousemove",I),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}function ED(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function FD(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Map,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4?arguments[4]:void 0,a=0,l=e.length;a2&&void 0!==arguments[2]?arguments[2]:{},r=0,o=e.length;r=0&&"left"!==e[u].fixed;)u-=1;var c=e[u],s=0===r&&(null==n?void 0:n.left)||0,d=t.get((null==c?void 0:c.colKey)||r-1);i&&(i.left=((null==d?void 0:d.left)||s)+((null==d?void 0:d.width)||0)),null!==(a=l.children)&&void 0!==a&&a.length&&B(l.children,t,i)}},L=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.length-1;r>=0;r--){var o,a=e[r];if("left"===a.fixed)return;for(var l=t.get(a.colKey||r),i=r+1;i=u.length-i;b--){var w=t[t.length-(u.length-b)],O=St(u[b],d),C=n.get(O)||{},x=St(u[b+1],d),P=n.get(x)||{},j=0;b===u.length-1&&(j=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||j)+(P.height||0),n.set(O,FD(FD({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),j.value=n}},z=function(e,t){if(D.value&&e){var n=e.scrollLeft;if(A!==n||t&&t.skipScrollLimit){A=n;var r=e.clientWidth+n0;S.left===o&&S.right===r||(S.left=o&&F.value,S.right=r&&E.value)}}},H=function(){var e=M(l.value),t=e.newColumnsMap;!function(e){for(var t=0;tw.value.clientHeight,C.value=w.value.scrollWidth>w.value.clientWidth;var t=w.value.getBoundingClientRect();k.value={top:t.top,left:t.left},clearTimeout(e)}}),0)},K=function(e){_.value!==e&&(_.value=e)},U=function(){var e,t,n,r,a,l,i,u;null===(e=o.paginationAffixRef.value)||void 0===e||null===(t=e.handleScroll)||void 0===t||t.call(e),null===(n=o.horizontalScrollAffixRef.value)||void 0===n||null===(r=n.handleScroll)||void 0===r||r.call(n),null===(a=o.headerTopAffixRef.value)||void 0===a||null===(l=a.handleScroll)||void 0===l||l.call(a),null===(i=o.footerBottomAffixRef.value)||void 0===i||null===(u=i.handleScroll)||void 0===u||u.call(i)},Y=function(e){for(var t={},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:0)+(arguments.length>1?arguments[1]:void 0)})),d=w.value.clientWidth,v=s-u;K(Math.max(d,v))}}));var X=function(){Z(),W(),U(),(D.value||O.value)&&(H(),z(w.value,{skipScrollLimit:!0})),"auto"===i.value&&$(q("calculate"))},G=po((function(){X()}),30),J=null;t.onMounted((function(){var e=function(){if("undefined"==typeof navigator||!navigator)return 6;if(/(Chrome|Safari)/i.test(navigator.userAgent))return 6;var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),/Firefox/.test(navigator.userAgent)&&(t-=4),ol()<=11&&(t=12),t}();P.value=e,Z();var t=D.value||O.value||!I.value||!y.value.length,n="undefined"!=typeof window&&void 0!==window.ResizeObserver;(t&&ol()<11||!n)&&kl(window,"resize",G)})),t.onBeforeUnmount((function(){var e,t;"undefined"!=typeof window&&Nl(window,"resize",G),null===(e=J)||void 0===e||e.unobserve(b.value),null===(t=J)||void 0===t||t.disconnect()}));return{tableWidth:N,tableElmWidth:_,thWidthList:V,isFixedHeader:O,isWidthOverflow:C,tableContentRef:w,isFixedColumn:D,showColumnShadow:S,rowAndColFixedPosition:j,virtualScrollHeaderPos:k,scrollbarWidth:P,setData:function(e){y.value=e},refreshTable:X,setTableElmWidth:K,emitScrollEvent:function(t){var n,r,o;null===(n=e.onScrollX)||void 0===n||n.call(e,{e:t}),null===(r=e.onScrollY)||void 0===r||r.call(e,{e:t}),null===(o=e.onScroll)||void 0===o||o.call(e,{e:t})},updateThWidthListHandler:Z,updateColumnFixedShadow:z,setUseFixedTableElmRef:function(e){x.value=e},getThWidthList:q,updateThWidthList:$,addTableResizeObserver:function(e){"undefined"!=typeof window&&(ol()<11||void 0===window.ResizeObserver||(Nl(window,"resize",G),(J=new window.ResizeObserver((function(){var e=setTimeout((function(){X(),clearTimeout(e)}),200)}))).observe(e),b.value=e))},updateTableAfterColumnResize:function(){H(),W()}}}function MD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function AD(e,n){var r=t.toRefs(e),o=r.pagination,a=r.data,l=r.disableDataPage,i=qa().classPrefix,u=t.ref(e.pagination),c=t.ref([]),d=t.ref(!1),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=e.data,o=Boolean(!l.value&&r.length>n);if(d.value=o,o){var a=(t-1)*n,i=t*n;c.value=r.slice(a,i)}else c.value=r};t.watch((function(){var e,t;return[null===(e=o.value)||void 0===e?void 0:e.current,null===(t=o.value)||void 0===t?void 0:t.pageSize,a.value.length,l]}),(function(){if(o.value&&o.value.current){var e=o.value,t=e.current,n=e.pageSize;u.value={current:t,pageSize:n},v(o.value.current,o.value.pageSize)}}),{immediate:!0}),t.watch([a],(function(){var e,t;o.value&&o.value.defaultCurrent&&(Boolean(o.value.current)||v(null!==(e=u.value.current)&&void 0!==e?e:o.value.defaultCurrent,null!==(t=u.value.pageSize)&&void 0!==t?t:o.value.defaultPageSize))}),{immediate:!0});return{isPaginateData:d,dataSource:c,innerPagination:u,renderPagination:function(){if(!e.pagination)return null;var r=function(e){for(var t=1;te.height},g=function(){var t,s,d;if(f.value||v.value||n.value){var p,m=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect(),g=null===(s=n.value)||void 0===s||null===(s=s.querySelector("thead"))||void 0===s?void 0:s.getBoundingClientRect(),y=(null==g?void 0:g.height)||0,b=null===(d=o.value)||void 0===d?void 0:d.getBoundingClientRect();if((e.headerAffixedTop||v.value)&&r.value){var w=Mo(p=e.headerAffixProps||e.headerAffixedTop)?0:p.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(m.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,m,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,m,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,m,y)}}},y=function(){g()},b=function(){m(o.value)},w=function(){m(r.value)},O=function(){m(a.value)},C=function(){m(n.value)},x=function(){kl(o.value,"scroll",b)},P=function(){Nl(o.value,"scroll",b)},j=function(){kl(r.value,"scroll",w),F()},S=function(){s||Nl(r.value,"scroll",w),T()},k=function(){kl(a.value,"scroll",O)},N=function(){Nl(a.value,"scroll",O)},_=function(){kl(n.value,"scroll",C),F()},V=function(){s||Nl(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(Nl(r.value,"scroll",w),Nl(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},I=[],M=function(e){var t=po((function(t){Nl(e,"scroll",t)}),200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(I.forEach((function(e){return e()})),I.length=0,kl(e,"scroll",n),t(n),I.push((function(){Nl(e,"scroll",n)})))}return kl(e,"touchstart",r),{removeElementTouchScrollListener:function(){Nl(e,"touchstart",r)}}},A=[],B=function(){Nl(window,"mousedown",D),Nl(window,"mouseup",E),A.forEach((function(e){return e()})),A.length=0,r.value&&(Nl(r.value,"mouseenter",j),Nl(r.value,"mouseleave",S)),o.value&&(Nl(o.value,"mouseenter",x),Nl(o.value,"mouseleave",P)),n.value&&(Nl(n.value,"mouseenter",_),Nl(n.value,"mouseleave",V)),a.value&&(Nl(a.value,"mouseenter",k),Nl(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout((function(){f.value||e.paginationAffixedBottom?kl(document,"scroll",y):Nl(document,"scroll",y),clearTimeout(t)}))};t.watch([r,o,a,n],(function(){!function(){if(kl(window,"mousedown",D),kl(window,"mouseup",E),B(),r.value){kl(r.value,"mouseenter",j),kl(r.value,"mouseleave",S);var t=M(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){kl(o.value,"mouseenter",x),kl(o.value,"mouseleave",P);var l=M(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){kl(a.value,"mouseenter",k),kl(a.value,"mouseleave",N);var i=M(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){kl(n.value,"mouseenter",_),kl(n.value,"mouseleave",V);var u=M(n.value).removeElementTouchScrollListener;A.push(u)}}(),m(),g()})),t.watch(f,L),t.watch((function(){return[e.data,e.columns,e.headerAffixedTop,e.footerAffixedBottom,e.horizontalScrollAffixedBottom]}),(function(){m()})),t.onBeforeUnmount((function(){Nl(document,"scroll",y),B(),r.value=null,o.value=null,a.value=null,n.value=null}));return{showAffixHeader:i,showAffixFooter:u,showAffixPagination:c,affixHeaderRef:r,affixFooterRef:o,horizontalScrollbarRef:a,paginationRef:l,onHorizontalScroll:m,setTableContentRef:function(e){n.value=e,L()},updateAffixHeaderOrFooter:g}}function LD(e,t){if(e){for(var n=e instanceof Array?e:[e],r={},o=0;o6&&void 0!==arguments[6]?arguments[6]:0;if(!r||!r.length)return{style:void 0,classes:void 0};var i=tn-1-r[1],c=n-r[1],d=(null==o?void 0:o.get(e))||{},v=s(s(s(s({},a.top,i),a.bottom,u),a.firstBottom,t===c),a.withoutBorderBottom,t===c-1);return{style:{top:i?"".concat(d.top-l,"px"):void 0,bottom:u?"".concat(d.bottom+l,"px"):void 0},classes:v}}(St(e.row,e.rowKey||"id"),e.rowIndex,e.dataLength,e.fixedRows,e.rowAndColFixedPosition,p,e.virtualConfig.isVirtualScroll.value?e.virtualConfig.translateY.value:0)})),y=t.computed((function(){return LD(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}})),b=t.computed((function(){var t,n=RD(e.rowClassName,{row:e.row,rowKey:e.rowKey,rowIndex:e.rowIndex,type:"body"},e.rowKey||"id");return[null===(t=g.value)||void 0===t?void 0:t.classes,n,s(s({},"".concat(e.classPrefix,"-table__row--active"),a.value),"".concat(e.classPrefix,"-table__row--hover"),l.value)].filter((function(e){return e}))})),w=function(e,n,r){var o=t.computed((function(){return Math.max(r.rowHeight||48,48)})),a=t.ref(!1),l=t.computed((function(){return"lazy"===(null==r?void 0:r.type)&&!a.value})),i=!Sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i((function(){a.value=!0}))};return t.onMounted((function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick((function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;null!=n&&n.value&&null!=e&&e.value&&Sw(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive($D($D({},e.scroll),{},{rowIndex:e.rowIndex}))),O=w.hasLazyLoadHolder,C=w.tRowHeight,x=function(){var t;null!==(t=e.virtualConfig)&&void 0!==t&&t.isVirtualScroll.value&&n.emit("row-mounted",{ref:i,data:e.row})};function P(r,o){var a,l=o.cellNode,i=r.col,c=r.colIndex;H(i.ellipsis)?a=i.ellipsis(t.h,r):"object"===u(i.ellipsis)&&H(i.ellipsis.content)?a=i.ellipsis.content(t.h,r):n.slots["ellipsis-".concat(i.colKey)]?a=n.slots["ellipsis-".concat(i.colKey)](r):n.slots.ellipsis&&(a=n.slots.ellipsis(r));var s={};"object"===u(i.ellipsis)&&(s="props"in i.ellipsis?i.ellipsis.props:i.ellipsis||void 0);var d,v=e.tableElm,f=0===c?"top-left":"top";return f=c===e.columns.length-1?"top-right":f,t.createVNode(jD,{placement:f,attach:v?function(){return v}:void 0,tooltipContent:a&&function(){return a},tooltipProps:s,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},"function"==typeof(d=l)||"[object Object]"===Object.prototype.toString.call(d)&&!t.isVNode(d)?l:{default:function(){return[l]}})}return t.onMounted((function(){t.nextTick((function(){x()}))})),t.onUpdated((function(){t.nextTick((function(){x()}))})),function(){var r,o=e.columns,a=e.skipSpansMap,l=e.row,u=e.dataLength,c=e.rowAndColFixedPosition,p=null==o?void 0:o.map((function(r,i){var p={},g={row:l,col:r,rowIndex:e.rowIndex,colIndex:i},y=null;if(e.skipSpansMap.size){var b,w,O=KD(l,e.rowKey,r.colKey,i);if((null===(b=y=a.get(O)||{})||void 0===b?void 0:b.rowspan)>1&&(p.rowspan=y.rowspan),(null===(w=y)||void 0===w?void 0:w.colspan)>1&&(p.colspan=y.colspan),y.skipped)return null}return function(r,o){var a=r.col,l=r.colIndex,i=r.rowIndex,u=o.cellSpans,c=o.dataLength,p=o.rowAndColFixedPosition,g=XD(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=TD(a,l,p,f),b=zD(a.className,$D($D({},r),{},{type:"td"})),w=[y.classes,b,s(s(s(s(s({},d,a.ellipsis),v.tdLastRow,i+u.rowspan===c),v.tdFirstCol,0===l&&e.rowspanAndColspan),m[a.align],a.align&&"left"!==a.align),h.handle,"drag"===a.colKey)],O=H(a.attrs)?a.attrs($D($D({},r),{},{type:"td"})):a.attrs,C=$D($D({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=$D($D({},r),{},{e:t});a.stopPropagation&&t.stopPropagation(),null===(n=e.onCellClick)||void 0===n||n.call(e,o)}}),[a.ellipsis?P(r,{cellNode:g}):g])}(g,{dataLength:u,rowAndColFixedPosition:c,columnLength:o.length,cellSpans:p,cellEmptyContent:e.cellEmptyContent})}));return t.createVNode("tr",t.mergeProps({ref:i},y.value,{style:null===(r=g.value)||void 0===r?void 0:r.style,class:b.value},function(t,n){var r={};return qD.forEach((function(o){r["on".concat(on(o))]=function(r){var a,l={e:r,row:t,index:n};null===(a=e["onRow".concat(on(o))])||void 0===a||a.call(e,l)}})),r}(l,e.rowIndex)),[O.value?[t.createVNode("td",{style:{height:"".concat(C.value,"px"),border:"none"}},null)]:p])}}});function JD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QD(e){for(var t=1;t1)for(var l=r+1;l1)for(var f=i+1;f1&&(_.colspan=l.colspan),t.createVNode("th",t.mergeProps({key:l.colKey,"data-colkey":l.colKey,class:C,style:P},_,v,S),[t.createVNode("div",{class:a.tableBaseClass.thCellInner},[N?t.createVNode(jD,{placement:"bottom",attach:a.attach||(a.theadRef?function(){return a.getTableNode(a.theadRef)}:void 0),tooltipContent:k&&function(){return k},tooltipProps:"object"===u(l.ellipsisTitle)?l.ellipsisTitle:void 0,overlayClassName:a.ellipsisOverlayClassName,classPrefix:a.classPrefix},(p=j,"function"==typeof p||"[object Object]"===Object.prototype.toString.call(p)&&!t.isVNode(p)?j:{default:function(){return[j]}})):j])])}));return t.createVNode("tr",{key:i},[c])})))])}});function iE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uE(e){for(var t=1;t1&&(i.rowspan=u.rowspan),(null===(s=u)||void 0===s?void 0:s.colspan)>1&&(i.colspan=u.colspan),u.skipped)return null}var v=TD(o,a,n.rowAndColFixedPosition,n.tableColFixedClasses),f=uE({},v.style);return null!==(l=n.thWidthList)&&void 0!==l&&l[o.colKey]&&(f.width="".concat(n.thWidthList[o.colKey],"px")),t.createVNode("td",t.mergeProps(uE({key:o.colKey},i),{class:v.classes,style:f}),[n.renderTFootCell({row:e,rowIndex:r,col:o,colIndex:a})])}))])})),a=this.renderTNode("footerSummary");return a||this.footData&&this.footData.length?t.createVNode("tfoot",{ref:"tFooterRef",class:r,style:{visibility:this.virtualScroll?"hidden":"visible"}},[a&&t.createVNode("tr",{class:this.tableFullRowClasses.base},[t.createVNode("td",{colspan:this.columns.length},[t.createVNode("div",{class:this.tableFullRowClasses.innerFullElement},[a])])]),o]):null}});function sE(e,n){var r=t.toRefs(e),o=r.data,a=r.activeRowType,l=r.activeRowKeys,i=r.defaultActiveRowKeys,u=r.disableSpaceInactiveRow,c=t.ref(-1),s=t.ref(!1),d=t.ref(!1),v=t.ref(-1),f=Ra(Um(l,i.value,e.onActiveChange,"activeRowKeys"),2),p=f[0],m=f[1],h=function(){for(var t=[],n=0,r=o.value.length;n1?[l]:[];m(i,{type:"inactive",activeRowList:[{row:n,rowIndex:r}],currentRowData:n})}else if("multiple"===a.value){for(var u=p.value.filter((function(e){return e!==l})),c=[],s=0,d=o.value.length;s0&&void 0!==arguments[0])||arguments[0];return t.createVNode("colgroup",null,[p.map((function(n){var r={width:nE((e||m?c.thWidthList[n.colKey]:void 0)||n.width)||h};return n.minWidth&&(r.minWidth=nE(n.minWidth)),r.width||n.minWidth||"fixed"!==c.tableLayout||(r.minWidth="80px"),t.createVNode("col",{key:n.colKey,style:r},null)}))])},y={isFixedHeader:this.isFixedHeader,rowAndColFixedPosition:this.rowAndColFixedPosition,isMultipleHeader:this.isMultipleHeader,bordered:this.bordered,maxHeight:this.maxHeight,height:this.height,spansAndLeafNodes:this.spansAndLeafNodes,thList:this.thList,thWidthList:this.thWidthList,resizable:this.resizable,columnResizeParams:this.columnResizeParams,classPrefix:this.classPrefix,ellipsisOverlayClassName:"medium"!==this.tableSize?this.sizeClassNames[this.tableSize]:"",attach:this.attach,showColumnShadow:this.showColumnShadow,thDraggable:this.thDraggable},b=ol()<=11?4:0,w=this.isWidthOverflow?this.scrollbarWidth:0,O=t.ref(((null===(r=this.affixHeaderRef)||void 0===r?void 0:r.getBoundingClientRect().height)||0)-b),C=setTimeout((function(){var e;O.value=((null===(e=c.affixHeaderRef)||void 0===e?void 0:e.getBoundingClientRect().height)||0)-b,clearTimeout(C)}),0),x=t.computed((function(){return O.value-w})),P=bD.headerAffixedTop?Number(this.showAffixHeader):1,j=t.computed((function(){return{width:"".concat(c.tableWidth,"px"),height:"".concat(x.value,"px"),opacity:P}})),S=this.bordered?1:0,k=Boolean((this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)&&this.tableWidth)&&t.createVNode("div",{ref:"affixHeaderRef",style:{width:"".concat(this.tableWidth-S,"px"),opacity:Number(this.showAffixHeader)},class:["scrollbar",s({},this.tableBaseClass.affixedHeaderElm,this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:this.tableElmClasses,style:vE(vE({},this.tableElementStyles),{},{width:"".concat(this.tableElmWidth,"px")})},[g(!0),t.createVNode(lE,y,this.$slots)])]),N=t.createVNode("div",{class:this.tableBaseClass.affixedHeaderWrap,style:j.value},[k]),_=this.isWidthOverflow?this.scrollbarWidth:0;this.bordered&&(_+=1);var V=Boolean(this.virtualConfig.isVirtualScroll.value||this.footerAffixedBottom),D=(null===(o=this.footData)||void 0===o?void 0:o.length)||this.footerSummary||this.$slots.footerSummary,E=Boolean(V&&D&&this.tableWidth)&&t.createVNode(Uf,t.mergeProps({class:this.tableBaseClass.affixedFooterWrap,onFixedChange:this.onFixedChange,offsetBottom:_||0},WD(this.footerAffixedBottom),{style:{marginTop:"".concat(-1*((null!==(a=this.tableFootHeight)&&void 0!==a?a:0)+_),"px")},ref:"footerBottomAffixRef"}),{default:function(){return[t.createVNode("div",{ref:"affixFooterRef",style:{width:"".concat(c.tableWidth-S,"px"),opacity:Number(c.showAffixFooter)},class:["scrollbar",s({},c.tableBaseClass.affixedFooterElm,c.footerAffixedBottom||c.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:c.tableElmClasses,style:vE(vE({},c.tableElementStyles),{},{width:"".concat(c.tableElmWidth,"px")})},[g(!0),t.createVNode(cE,{rowKey:c.rowKey,isFixedHeader:c.isFixedHeader,rowAndColFixedPosition:d,footData:c.footData,columns:p,rowAttributes:c.rowAttributes,rowClassName:c.rowClassName,thWidthList:c.thWidthList,footerSummary:c.footerSummary,rowspanAndColspanInFooter:c.rowspanAndColspanInFooter},c.$slots)])])]}}),F="translate(0, ".concat(this.virtualConfig.scrollHeight.value+(null!==(l=this.tableFootHeight)&&void 0!==l?l:0)+(null!==(i=O.value)&&void 0!==i?i:0),"px)"),T={transform:F,"-ms-transform":F,"-moz-transform":F,"-webkit-transform":F},I=vE(vE({classPrefix:this.classPrefix,ellipsisOverlayClassName:"medium"!==this.tableSize?this.sizeClassNames[this.tableSize]:"",rowAndColFixedPosition:d,showColumnShadow:this.showColumnShadow,data:f,virtualConfig:this.virtualConfig,columns:this.spansAndLeafNodes.leafColumns,tableElm:this.tableRef,tableWidth:this.tableWidth,isWidthOverflow:this.isWidthOverflow,scroll:this.scroll,cellEmptyContent:this.cellEmptyContent,tableContentElm:this.tableContentRef,handleRowMounted:this.virtualConfig.handleRowMounted,renderExpandedRow:this.renderExpandedRow},xa(this.$props,eE)),{},{pagination:this.innerPagination,attach:this.attach,hoverRow:this.hoverRow,activeRow:this.tActiveRow,onRowClick:this.onInnerRowClick}),M=t.createVNode("div",{ref:"tableContentRef",class:this.tableBaseClass.content,style:this.tableContentStyles,onScroll:this.onInnerVirtualScroll},[this.virtualConfig.isVirtualScroll.value&&t.createVNode("div",{class:this.virtualScrollClasses.cursor,style:T},null),t.createVNode("table",{ref:"tableElmRef",class:this.tableElmClasses,style:vE(vE({},this.tableElementStyles),{},{width:this.resizable&&this.isWidthOverflow&&this.tableElmWidth?"".concat(this.tableElmWidth,"px"):this.tableElementStyles.width})},[g(!1),this.showHeader&&t.createVNode(lE,vE(vE({},y),{},{thWidthList:m?this.thWidthList:{}}),this.$slots),t.createVNode(tE,t.mergeProps({ref:"tableBodyRef"},I),this.$slots),t.createVNode(cE,{rowKey:this.rowKey,isFixedHeader:this.isFixedHeader,rowAndColFixedPosition:d,footData:this.footData,columns:p,rowAttributes:this.rowAttributes,rowClassName:this.rowClassName,footerSummary:this.footerSummary,rowspanAndColspanInFooter:this.rowspanAndColspanInFooter,virtualScroll:this.virtualConfig.isVirtualScroll.value},this.$slots)])]),A=H(this.loading)?this.loading:this.$slots.loading,B=void 0!==this.loading&&t.createVNode(pi,t.mergeProps({loading:!!this.loading,text:A,attach:this.tableRef?function(){return c.tableRef}:void 0,showOverlay:!0,size:"small"},this.loadingProps),null),L=this.renderTNode("topContent"),R=this.renderTNode("bottomContent"),z=t.createVNode("div",{ref:"paginationRef",class:this.tableBaseClass.paginationWrap,style:{opacity:Number(this.showAffixPagination)}},[this.renderPagination()]),W=!!R&&t.createVNode("div",{ref:"bottomContentRef",class:this.tableBaseClass.bottomContent},[R]);return t.createVNode("div",{ref:"tableRef",tabindex:this.tableRefTabIndex,class:this.dynamicBaseTableClasses,onFocus:this.onTableFocus,onBlur:this.onTableBlur},[!!L&&t.createVNode("div",{class:this.tableBaseClass.topContent},[L]),!1===c.showHeader?null:!(!c.virtualConfig.isVirtualScroll.value&&!c.headerAffixedTop)&&(c.headerAffixedTop?t.createVNode(Uf,t.mergeProps({offsetTop:0},WD(c.headerAffixedTop),{onFixedChange:c.onFixedChange,ref:"headerTopAffixRef"}),fE(N)?N:{default:function(){return[N]}}):c.isFixedHeader&&N),M,E,B,W,this.showRightDivider&&t.createVNode("div",{class:this.tableBaseClass.scrollbarDivider,style:{right:"".concat(this.scrollbarWidth,"px"),bottom:this.dividerBottom?"".concat(this.dividerBottom,"px"):void 0,height:"".concat(null===(u=this.tableContentRef)||void 0===u?void 0:u.getBoundingClientRect().height,"px")}},null),this.horizontalScrollAffixedBottom&&t.createVNode(Uf,t.mergeProps({offsetBottom:0},WD(c.horizontalScrollAffixedBottom),{style:{marginTop:"-".concat(2*c.scrollbarWidth,"px")},horizontalScrollAffixedBottom:!0,ref:"horizontalScrollAffixRef"}),{default:function(){return[t.createVNode("div",{ref:"horizontalScrollbarRef",class:["scrollbar",c.tableBaseClass.obviousScrollbar],style:{width:"".concat(c.tableWidth,"px"),overflow:"auto",opacity:Number(c.showAffixFooter)}},[t.createVNode("div",{style:{width:"".concat(c.tableElmWidth,"px"),height:"5px"}},null)])]}}),this.paginationAffixedBottom?t.createVNode(Uf,t.mergeProps({offsetBottom:0},WD(this.paginationAffixedBottom),{ref:"paginationAffixRef"}),fE(z)?z:{default:function(){return[z]}}):z,t.createVNode("div",{ref:"resizeLineRef",class:this.tableBaseClass.resizeLine,style:this.resizeLineStyle},null)])}}),mE={asyncLoading:{type:[String,Function]},columnController:{type:Object},columnControllerVisible:{type:Boolean,default:void 0},defaultColumnControllerVisible:{type:Boolean,default:void 0},columns:{type:Array,default:function(){return[]}},displayColumns:{type:Array,default:void 0},defaultDisplayColumns:{type:Array},dragSort:{type:String,validator:function(e){return!e||["row","row-handler","col","row-handler-col","drag-col"].includes(e)}},dragSortOptions:{type:Object},editableCellState:{type:Function},editableRowKeys:{type:Array},expandIcon:{type:[Boolean,Function],default:!0},expandOnRowClick:Boolean,expandedRow:{type:[String,Function]},expandedRowKeys:{type:Array,default:void 0},defaultExpandedRowKeys:{type:Array,default:function(){return[]}},filterIcon:{type:Function},filterRow:{type:[String,Function]},filterValue:{type:Object,default:void 0},defaultFilterValue:{type:Object},hideSortTips:Boolean,indeterminateSelectedRowKeys:{type:Array},multipleSort:Boolean,reserveSelectedRowOnPaginate:{type:Boolean,default:!0},rowSelectionAllowUncheck:Boolean,rowSelectionType:{type:String,validator:function(e){return!e||["single","multiple"].includes(e)}},selectOnRowClick:Boolean,selectedRowKeys:{type:Array,default:void 0},defaultSelectedRowKeys:{type:Array,default:function(){return[]}},showSortColumnBgColor:Boolean,sort:{type:[Object,Array],default:void 0},defaultSort:{type:[Object,Array]},sortIcon:{type:Function},sortOnRowDraggable:Boolean,onAsyncLoadingClick:Function,onCellClick:Function,onChange:Function,onColumnChange:Function,onColumnControllerVisibleChange:Function,onDataChange:Function,onDisplayColumnsChange:Function,onDragSort:Function,onExpandChange:Function,onFilterChange:Function,onRowEdit:Function,onRowValidate:Function,onSelectChange:Function,onSortChange:Function,onValidate:Function};function hE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gE(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Set,n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:[];if(null!==(t=d.value)&&void 0!==t&&null!==(t=t.groupColumns)&&void 0!==t&&t.length)return[];for(var r=0,o=e.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=i(m.value),r=St(t,e.rowKey||"id"),o=n.indexOf(r),a=-1!==o;if("multiple"===b.value)a?n.splice(o,1):n.push(r);else{if("single"!==b.value)return void Gm("Table","`column.type` must be one of `multiple` and `single`");n=a&&C.value?[]:[r]}h(n,{selectedRowData:n.map((function(e){return g.value.get(e)})),currentRowKey:r,currentRowData:t,type:a?"uncheck":"check"})}function j(t){var n,r=e.rowKey||"id",a=w.value.map((function(e){return St(e,r)})),l=(null===(n=o.value)||void 0===n?void 0:n.filter((function(e){return!a.includes(e)})))||[],u=t?[].concat(i(l),i(a)):i(l);h(u,{selectedRowData:t?u.map((function(e){return g.value.get(e)})):[],type:t?"check":"uncheck",currentRowKey:"CHECK_ALL_BOX"})}t.watch([c,a,m,y,l],(function(){var t,r=null!==(t=y.value)&&void 0!==t&&t.disabled?function(e){return y.value.disabled(e)?n.disabled:""}:void 0,o=new Set(m.value),a=o.size?function(t){var r=St(t.row,e.rowKey||"id");return o.has(r)?n.selected:""}:void 0;f.value=[r,a]}),{immediate:!0}),t.watch(c,(function(){v.value=c.value}));t.watch([c,l],(function(){for(var e=0,t=c.value.length;e0&&O.value.length1)],o={asc:this.globalConfig.sortAscendingOperationText,desc:this.globalConfig.sortDescendingOperationText},a=this.allowSortTypes.map((function(r){var a,l,i,u=r===e.sortOrder?n.iconActive:n.iconDefault,c=e.globalConfig.sortCancelOperationText,s=r===e.sortOrder?c:o[r];return(null!==(l=e.hideSortTips)&&void 0!==l?l:e.globalConfig.hideSortTips)?e.getSortIcon(r,u):t.createVNode(Lh,t.mergeProps({content:s,placement:"right",showArrow:!1,class:e.tableSortClasses.iconDirection[r]},e.tooltipProps),"function"==typeof(i=a=e.getSortIcon(r,u))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?a:{default:function(){return[a]}})}));return t.createVNode("div",{class:r},[a])}});function DE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function EE(e,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ra(Um(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ra(Um(l,[],e.onDataChange,"data"),2),p=f[0],m=f[1],h=t.computed((function(){return w(e.columns)})),g=t.ref(),y=t.computed((function(){var e=d.value;return e?j(e)?e:[e]:[]})),b=t.computed((function(){var e={};return y.value.forEach((function(t,n){var r=t.sortBy;e[r]=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n * @author owenm * @license MIT - */function ME(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function AE(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function HE(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var WE=HE(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),KE=HE(/Edge/i),UE=HE(/firefox/i),YE=HE(/safari/i)&&!HE(/chrome/i)&&!HE(/android/i),$E=HE(/iP(ad|od|hone)/i),ZE=HE(/chrome/i)&&HE(/android/i),qE={capture:!1,passive:!1};function XE(e,t,n){e.addEventListener(t,n,!WE&&qE)}function GE(e,t,n){e.removeEventListener(t,n,!WE&&qE)}function JE(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function QE(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function eF(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&JE(e,t):JE(e,t))||r&&e===n)return e;if(e===n)break}while(e=QE(e))}return null}var tF,nF=/\s+/g;function rF(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(nF," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(nF," ")}}function oF(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf("webkit")||(t="-webkit-"+t),r[t]=n+("string"==typeof n?"":"px")}}function aF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=oF(e,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function lF(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,a=r.length;if(n)for(;o=a:o<=a))return r;if(r===iF())break;r=pF(r,!1)}return!1}function sF(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=zE(n,jF);PF.pluginEvent.bind(yT)(e,t,AE({dragEl:NF,parentEl:_F,ghostEl:VF,rootEl:DF,nextEl:EF,lastDownEl:FF,cloneEl:TF,cloneHidden:IF,dragStarted:ZF,putSortable:zF,activeSortable:yT.active,originalEvent:r,oldIndex:MF,oldDraggableIndex:BF,newIndex:AF,newDraggableIndex:LF,hideGhostForTarget:pT,unhideGhostForTarget:mT,cloneNowHidden:function(){IF=!0},cloneNowShown:function(){IF=!1},dispatchSortableEvent:function(e){kF({sortable:t,name:e,originalEvent:r})}},o))};function kF(e){!function(e){var t=e.sortable,n=e.rootEl,r=e.name,o=e.targetEl,a=e.cloneEl,l=e.toEl,i=e.fromEl,u=e.oldIndex,c=e.newIndex,s=e.oldDraggableIndex,d=e.newDraggableIndex,v=e.originalEvent,f=e.putSortable,p=e.extraEventProperties;if(t=t||n&&n[wF]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||WE||KE?(m=document.createEvent("Event")).initEvent(r,!0,!0):m=new CustomEvent(r,{bubbles:!0,cancelable:!0}),m.to=l||n,m.from=i||n,m.item=o||n,m.clone=a,m.oldIndex=u,m.newIndex=c,m.oldDraggableIndex=s,m.newDraggableIndex=d,m.originalEvent=v,m.pullMode=f?f.lastPutMode:void 0;var y=AE(AE({},p),PF.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(AE({putSortable:zF,cloneEl:TF,targetEl:NF,rootEl:DF,oldIndex:MF,oldDraggableIndex:BF,newIndex:AF,newDraggableIndex:LF},e))}var NF,_F,VF,DF,EF,FF,TF,IF,MF,AF,BF,LF,RF,zF,HF,WF,KF,UF,YF,$F,ZF,qF,XF,GF,JF,QF=!1,eT=!1,tT=[],nT=!1,rT=!1,oT=[],aT=!1,lT=[],iT="undefined"!=typeof document,uT=$E,cT=KE||WE?"cssFloat":"float",sT=iT&&!ZE&&!$E&&"draggable"in document.createElement("div"),dT=function(){if(iT){if(WE)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),vT=function(e,t){var n=oF(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=sF(e,0,t),a=sF(e,1,t),l=o&&oF(o),i=a&&oF(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+uF(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+uF(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&l.float&&"none"!==l.float){var s="left"===l.float?"left":"right";return!a||"both"!==i.clear&&i.clear!==s?"horizontal":"vertical"}return o&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||u>=r&&"none"===n[cT]||a&&"none"===n[cT]&&u+c>r)?"vertical":"horizontal"},fT=function(e){function t(e,n){return function(r,o,a,l){var i=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==e&&(n||i))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(r,o,a,l),n)(r,o,a,l);var u=(n?r:o).options.group.name;return!0===e||"string"==typeof e&&e===u||e.join&&e.indexOf(u)>-1}}var n={},r=e.group;r&&"object"==BE(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},pT=function(){!dT&&VF&&oF(VF,"display","none")},mT=function(){!dT&&VF&&oF(VF,"display","")};iT&&!ZE&&document.addEventListener("click",(function(e){if(eT)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),eT=!1,!1}),!0);var hT=function(e){if(NF){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,tT.some((function(e){var t=e[wF].options.emptyInsertThreshold;if(t&&!dF(e)){var n=uF(e),r=o>=n.left-t&&o<=n.right+t,i=a>=n.top-t&&a<=n.bottom+t;return r&&i?l=e:void 0}})),l);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[wF]._onDragOver(n)}}var o,a,l},gT=function(e){NF&&NF.parentNode[wF]._isOutsideThisEl(e.target)};function yT(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=RE({},t),e[wF]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return vT(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==yT.supportPointer&&"PointerEvent"in window&&(!YE||$E),emptyInsertThreshold:5};for(var r in PF.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in fT(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&sT,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?XE(e,"pointerdown",this._onTapStart):(XE(e,"mousedown",this._onTapStart),XE(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(XE(e,"dragover",this),XE(e,"dragenter",this)),tT.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),RE(this,OF())}function bT(e,t,n,r,o,a,l,i){var u,c,s=e[wF],d=s.options.onMove;return!window.CustomEvent||WE||KE?(u=document.createEvent("Event")).initEvent("move",!0,!0):u=new CustomEvent("move",{bubbles:!0,cancelable:!0}),u.to=t,u.from=e,u.dragged=n,u.draggedRect=r,u.related=o||t,u.relatedRect=a||uF(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function wT(e){e.draggable=!1}function OT(){aT=!1}function CT(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function xT(e){return setTimeout(e,0)}function PT(e){return clearTimeout(e)}yT.prototype={constructor:yT,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(qF=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,NF):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,a=e.type,l=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,i=(l||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||i,c=r.filter;if(function(e){lT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&lT.push(r)}}(n),!NF&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!YE||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=eF(i,r.draggable,n,!1))&&i.animated||FF===i)){if(MF=vF(i),BF=vF(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return kF({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),SF("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=eF(u,r.trim(),n,!1))return kF({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),SF("filter",t,{evt:e}),!0}))))return void(o&&e.preventDefault());r.handle&&!eF(u,r.handle,n,!1)||this._prepareDragStart(e,l,i)}}},_prepareDragStart:function(e,t,n){var r,o=this,a=o.el,l=o.options,i=a.ownerDocument;if(n&&!NF&&n.parentNode===a){var u=uF(n);if(DF=a,_F=(NF=n).parentNode,EF=NF.nextSibling,FF=n,RF=l.group,yT.dragged=NF,HF={target:NF,clientX:(t||e).clientX,clientY:(t||e).clientY},YF=HF.clientX-u.left,$F=HF.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,NF.style["will-change"]="all",r=function(){SF("delayEnded",o,{evt:e}),yT.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!UE&&o.nativeDraggable&&(NF.draggable=!0),o._triggerDragStart(e,t),kF({sortable:o,name:"choose",originalEvent:e}),rF(NF,l.chosenClass,!0))},l.ignore.split(",").forEach((function(e){lF(NF,e.trim(),wT)})),XE(i,"dragover",hT),XE(i,"mousemove",hT),XE(i,"touchmove",hT),l.supportPointer?(XE(i,"pointerup",o._onDrop),!this.nativeDraggable&&XE(i,"pointercancel",o._onDrop)):(XE(i,"mouseup",o._onDrop),XE(i,"touchend",o._onDrop),XE(i,"touchcancel",o._onDrop)),UE&&this.nativeDraggable&&(this.options.touchStartThreshold=4,NF.draggable=!0),SF("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(KE||WE))r();else{if(yT.eventCanceled)return void this._onDrop();l.supportPointer?(XE(i,"pointerup",o._disableDelayedDrag),XE(i,"pointercancel",o._disableDelayedDrag)):(XE(i,"mouseup",o._disableDelayedDrag),XE(i,"touchend",o._disableDelayedDrag),XE(i,"touchcancel",o._disableDelayedDrag)),XE(i,"mousemove",o._delayedDragTouchMoveHandler),XE(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&XE(i,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,l.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){NF&&wT(NF),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;GE(e,"mouseup",this._disableDelayedDrag),GE(e,"touchend",this._disableDelayedDrag),GE(e,"touchcancel",this._disableDelayedDrag),GE(e,"pointerup",this._disableDelayedDrag),GE(e,"pointercancel",this._disableDelayedDrag),GE(e,"mousemove",this._delayedDragTouchMoveHandler),GE(e,"touchmove",this._delayedDragTouchMoveHandler),GE(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?XE(document,"pointermove",this._onTouchMove):XE(document,t?"touchmove":"mousemove",this._onTouchMove):(XE(NF,"dragend",this),XE(DF,"dragstart",this._onDragStart));try{document.selection?xT((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(QF=!1,DF&&NF){SF("dragStarted",this,{evt:t}),this.nativeDraggable&&XE(document,"dragover",gT);var n=this.options;!e&&rF(NF,n.dragClass,!1),rF(NF,n.ghostClass,!0),yT.active=this,e&&this._appendGhost(),kF({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(WF){this._lastX=WF.clientX,this._lastY=WF.clientY,pT();for(var e=document.elementFromPoint(WF.clientX,WF.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(WF.clientX,WF.clientY))!==t;)t=e;if(NF.parentNode[wF]._isOutsideThisEl(e),t)do{if(t[wF]){if(t[wF]._onDragOver({clientX:WF.clientX,clientY:WF.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=QE(t));mT()}},_onTouchMove:function(e){if(HF){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=VF&&aF(VF,!0),l=VF&&a&&a.a,i=VF&&a&&a.d,u=uT&&JF&&fF(JF),c=(o.clientX-HF.clientX+r.x)/(l||1)+(u?u[0]-oT[0]:0)/(l||1),s=(o.clientY-HF.clientY+r.y)/(i||1)+(u?u[1]-oT[1]:0)/(i||1);if(!yT.active&&!QF){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))o.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+a||e.clientX>r.right&&e.clientY>r.top}(e,o,this)&&!m.animated){if(m===NF)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=uF(l)),!1!==bT(DF,a,NF,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(NF,m.nextSibling):a.appendChild(NF),_F=a,E(),D(!0)}else if(m&&function(e,t,n){var r=uF(sF(n.el,0,n.options,!0)),o=bF(n.el,n.options,VF),a=10;return t?e.clientXs+c*a/2:ud-GF)return-XF}else if(u>s+c*(1-o)/2&&ud-c*a/2))return u>s+c/2?1:-1;return 0}(e,l,n,o,O?1:i.swapThreshold,null==i.invertedSwapThreshold?i.swapThreshold:i.invertedSwapThreshold,rT,qF===l),0!==g){var j=vF(NF);do{j-=g,b=_F.children[j]}while(b&&("none"===oF(b,"display")||b===VF))}if(0===g||b===l)return D(!1);qF=l,XF=g;var S=l.nextElementSibling,k=!1,N=bT(DF,a,NF,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),aT=!0,setTimeout(OT,30),V(),k&&!S?a.appendChild(NF):l.parentNode.insertBefore(NF,k?S:l),x&&gF(x,0,P-x.scrollTop),_F=NF.parentNode,void 0===y||rT||(GF=Math.abs(y-uF(l)[C])),E(),D(!0)}if(a.contains(NF))return D(!1)}return!1}function _(i,u){SF(i,f,AE({evt:e,isOwner:s,axis:o?"vertical":"horizontal",revert:r,dragRect:t,targetRect:n,canSort:d,fromSortable:v,target:l,completed:D,onMove:function(n,r){return bT(DF,a,NF,t,n,uF(n),e,r)},changed:E},u))}function V(){_("dragOverAnimationCapture"),f.captureAnimationState(),f!==v&&v.captureAnimationState()}function D(t){return _("dragOverCompleted",{insertion:t}),t&&(s?c._hideClone():c._showClone(f),f!==v&&(rF(NF,zF?zF.options.ghostClass:c.options.ghostClass,!1),rF(NF,i.ghostClass,!0)),zF!==f&&f!==yT.active?zF=f:f===yT.active&&zF&&(zF=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll((function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===NF&&!NF.animated||l===a&&!l.animated)&&(qF=null),i.dragoverBubble||e.rootEl||l===document||(NF.parentNode[wF]._isOutsideThisEl(e.target),!t&&hT(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){AF=vF(NF),LF=vF(NF,i.draggable),kF({sortable:f,name:"change",toEl:a,newIndex:AF,newDraggableIndex:LF,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){GE(document,"mousemove",this._onTouchMove),GE(document,"touchmove",this._onTouchMove),GE(document,"pointermove",this._onTouchMove),GE(document,"dragover",hT),GE(document,"mousemove",hT),GE(document,"touchmove",hT)},_offUpEvents:function(){var e=this.el.ownerDocument;GE(e,"mouseup",this._onDrop),GE(e,"touchend",this._onDrop),GE(e,"pointerup",this._onDrop),GE(e,"pointercancel",this._onDrop),GE(e,"touchcancel",this._onDrop),GE(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;AF=vF(NF),LF=vF(NF,n.draggable),SF("drop",this,{evt:e}),_F=NF&&NF.parentNode,AF=vF(NF),LF=vF(NF,n.draggable),yT.eventCanceled||(QF=!1,rT=!1,nT=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),PT(this.cloneId),PT(this._dragStartId),this.nativeDraggable&&(GE(document,"drop",this),GE(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),YE&&oF(document.body,"user-select",""),oF(NF,"transform",""),e&&(ZF&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),VF&&VF.parentNode&&VF.parentNode.removeChild(VF),(DF===_F||zF&&"clone"!==zF.lastPutMode)&&TF&&TF.parentNode&&TF.parentNode.removeChild(TF),NF&&(this.nativeDraggable&&GE(NF,"dragend",this),wT(NF),NF.style["will-change"]="",ZF&&!QF&&rF(NF,zF?zF.options.ghostClass:this.options.ghostClass,!1),rF(NF,this.options.chosenClass,!1),kF({sortable:this,name:"unchoose",toEl:_F,newIndex:null,newDraggableIndex:null,originalEvent:e}),DF!==_F?(AF>=0&&(kF({rootEl:_F,name:"add",toEl:_F,fromEl:DF,originalEvent:e}),kF({sortable:this,name:"remove",toEl:_F,originalEvent:e}),kF({rootEl:_F,name:"sort",toEl:_F,fromEl:DF,originalEvent:e}),kF({sortable:this,name:"sort",toEl:_F,originalEvent:e})),zF&&zF.save()):AF!==MF&&AF>=0&&(kF({sortable:this,name:"update",toEl:_F,originalEvent:e}),kF({sortable:this,name:"sort",toEl:_F,originalEvent:e})),yT.active&&(null!=AF&&-1!==AF||(AF=MF,LF=BF),kF({sortable:this,name:"end",toEl:_F,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){SF("nulling",this),DF=NF=_F=VF=EF=TF=FF=IF=HF=WF=ZF=AF=LF=MF=BF=qF=XF=zF=RF=yT.dragged=yT.ghost=yT.clone=yT.active=null,lT.forEach((function(e){e.checked=!0})),lT.length=KF=UF=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":NF&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,o=n.length,a=this.options;r0?(r.splice(n+1,0,r[t]),r.splice(t,1)):(r.splice(n,0,r[t]),r.splice(t+1,1)),r}function RT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zT(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&Qm("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=zT({animation:150,dataIdAttr:"data-colkey",direction:"vertical",ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,handle:".".concat(v.thCellInner),onEnd:function(t){var r;if(t.newIndex!==t.oldIndex){n&&(HT(t.item),WT(t.from,t.item,t.oldIndex));var o=t.oldIndex,a=t.newIndex,l=t.target,u=n?o:a,c=n?a:o,s=l.children[u],d=l.children[c],v=wE(m.value,s.dataset.colkey),f=wE(m.value,d.dataset.colkey);v&&v.colKey||Qm("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||Qm("Table","colKey is missing in ".concat(JSON.stringify(f))),u=OE(e.columns,v.colKey),c=OE(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:LT(i(e.columns),u,c),e:t,sort:"col"};p.currentData=p.newData,null===(r=e.onDragSort)||void 0===r||r.call(e,p)}}},e.dragSortOptions);t&&new yT(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ha(t,1)[0];C(n,!0)}else null==t||t.forEach((function(e){C(e,!1)}))}};return t.watch([h,m,l,r],(function(r){var o=Ha(r,4),a=o[0];o[1],o[2],function(r,o){var a=r;if(!r||!a.$el||!o.showElement)return;var l=setTimeout((function(){!function(r){var o;if(0!==(null==r||null===(o=r.children)||void 0===o?void 0:o.length)&&(b.value||y.value)){var a=null==r?void 0:r.querySelector("tbody");if(!a)return console.error("tbody does not exist."),null;var l=zT({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!Vl(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){HT(r.item),WT(r.from,r.item,r.oldIndex);var a=r.oldIndex,l=r.newIndex;(H(e.firstFullRow)&&e.firstFullRow(t.h)||n.slots.firstFullRow||n.slots["first-full-row"])&&(a-=1,l-=1),c.value&&(a=O(a,c.value),l=O(l,c.value));var s={data:u.value,currentIndex:a,current:u.value[a],targetIndex:l,target:u.value[l],newData:LT(i(e.data),a,l),e:r,sort:"row"};s.currentData=s.newData,null===(o=e.onDragSort)||void 0===o||o.call(e,s)}}},e.dragSortOptions);a&&(y.value?new yT(a,zT({},l)):new yT(a,zT(zT({},l),{},{handle:".".concat(d.handle)})))}}(a.$el),x(a.$el);var r=setTimeout((function(){a.$refs.affixHeaderRef&&x(a.$refs.affixHeaderRef),clearTimeout(r)}));clearTimeout(l)}),60)}(a,o[3])})),{innerPagination:c,isRowDraggable:y,isRowHandlerDraggable:b,isColDraggable:w,setDragSortPrimaryTableRef:function(e){h.value=e},setDragSortColumns:function(e){m.value=e}}}function UT(e){return Ra(e)||a(e)||l(e)||za()}function YT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $T(e){for(var t=1;t2?r-2:0),u=2;u1?f-1:0),m=1;m0&&void 0!==arguments[0]?arguments[0]:{errors:[],errorMap:{}}).errorMap;e&&Object.assign(a,e)})),o.value=a,null===(r=e.onValidate)||void 0===r||r.call(e,{result:a}),n({result:a})}),r)}))},validateTableCellData:s,validateRowData:function(t){return new Promise((function(n,r){c(t).then((function(t){var r,a=t.errors,l=t.errorMap;o.value=l;var i="parent";null===(r=e.onRowValidate)||void 0===r||r.call(e,{trigger:i,result:a}),n({trigger:i,result:a})}),r)}))},onRuleChange:function(t){if(e.editableRowKeys){var n=St(t.row,e.rowKey||"id"),o=r.get(n);if(o){var a=o.findIndex((function(e){return e.col.colKey===t.col.colKey}));-1===a?o.push(t):o[a]=t,r.set(n,o)}else r.set(n,[t])}},clearValidateData:function(){o.value={}},onUpdateEditedCell:function(e,t,n){i.value[e]||(i.value[e]=Mr(t)),Object.entries(n).forEach((function(t){var n=Ha(t,2),r=n[0],o=n[1];Va(i.value[e],r,o)}))},getEditRowData:function(t){var n,r=t.row,o=t.col,a=St(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=XT({},l);return Va(u,o.colKey,St(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=RD(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function JT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QT(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=QT({},r[i]);if(!((null===(l=m.children)||void 0===l?void 0:l.length)||(null===(c=O.value)||void 0===c?void 0:c.includes(m.colKey)))&&(e.columnController||e.displayColumns||e.defaultDisplayColumns)&&!o)return 1;m=M(m);var g,w=e.sort;m.sorter&&e.showSortColumnBgColor&&((w instanceof Array?w:[w]).find((function(e){return e&&e.sortBy===m.colKey&&void 0!==e.descending}))&&(m.className=m.className instanceof Array?m.className.concat(h.sortColumn):[m.className,h.sortColumn]));if(m.sorter||m.filter){var C=PD(n.slots,m,i),x=m.ellipsisTitle;m.title=function(e,t){var n,r=m.sorter?V(t):null,o=m.filter?W(t):null,a=null===(n=u.value)||void 0===n?void 0:n.tableContentRef;return ee([C,r,o],t.col,t.colIndex,x,a,{classPrefix:v,ellipsisOverlayClassName:"medium"!==b.value?y[b.value]:""})},m.ellipsisTitle=!1}if(null!==(s=m.edit)&&void 0!==s&&s.component){var P=m.cell;m.cell=function(r,o){var a=QT(QT({},o),{},{row:ve(o),oldCell:P,rowKey:e.rowKey||"id",tableBaseClass:p,cellEmptyContent:e.cellEmptyContent,onChange:we,onValidate:e.onRowValidate,onRuleChange:ce,onEditableChange:fe});if(e.editableRowKeys){var l,i=St(o.row,e.rowKey||"id");a.editable=ae.value[i]||!1;var u=[i,o.col.colKey].join("__"),c=null===(l=oe.value)||void 0===l?void 0:l[u];c&&(a.errors=c)}return e.editableCellState&&(a.readonly=!e.editableCellState(o)),t.createVNode(ZT,t.mergeProps(a,{onUpdateEditedCell:de}),n.slots)}}null!==(d=m.children)&&void 0!==d&&d.length&&(m.children=Oe(m.children,o||(null===(g=O.value)||void 0===g?void 0:g.includes(m.colKey))));(!m.children||null!==(f=m.children)&&void 0!==f&&f.length)&&a.push(m)},i=0,c=r.length;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=St(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var uI=function(){return gg((function e(){mg(this,e),s(this,"treeDataMap",new Map),s(this,"expandAllRowIndex",void 0),this.treeDataMap=new Map}),[{key:"initialTreeStore",value:function(e,t,n){var r;null===(r=this.treeDataMap)||void 0===r||r.clear(),this.initialTreeDataMap(this.treeDataMap,e,t.find((function(e){return"row-select"===e.colKey})),n)}},{key:"getAllUniqueKeys",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r=0){var o=(r.expandChildrenLength||0)+1;if(t.splice(r.rowIndex,o),r.parent){var a=St(r.parent.row,n.childrenKey),l=a.findIndex((function(t){return St(t,n.rowKey)===e}));a.splice(l,1),cI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),fI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else Gm("EnhancedTable","Can not remove this node, which is not appeared.");return t}},{key:"removeChildren",value:function(e,t,n){var r=this.treeDataMap.get(e);if(r&&r.rowIndex>=0){var o=r.expandChildrenLength||0;o&&t.splice(r.rowIndex+1,o),r.parent&&cI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Va(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&fI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else Gm("EnhancedTable","Can not remove this node's children, which is not appeared.");return t}},{key:"appendTo",value:function(e,t,n,r){var o=this.treeDataMap.get(e);if(!this.validateDataExist(o,e))return n;for(var a=St(o.row,r.childrenKey),l=o.expanded||!(null!=a&&a.length),u=t instanceof Array?t:[t],c=[],s=-1,d=0,v=u.length;do){var p=e.slice(d,r),m=v.concat(f,p);e.splice(o,m.length),e.splice.apply(e,[o,0].concat(i(m))),fI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:o,maxRowIndex:s})}else{var h=e.slice(s,o).concat(f,v);e.splice(r,h.length),e.splice.apply(e,[r,0].concat(i(h))),fI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:r,maxRowIndex:d})}if(u.parent){for(var g=u.parent.row[n.childrenKey],y=0,b=-1,w=-1,O=0,C=g.length;O=2));O++);w2&&void 0!==arguments[2]?arguments[2]:null,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:"data",o=[];return e.forEach((function(e){var a=St(e,t.rowKey),l=n.treeDataMap.get(a);l.expanded&&("unique"===r?o.push(a):"data"===r?o.push(e):o.push(l))})),o}},{key:"initialTreeDataMap",value:function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=0,i=t.length;l0&&void 0!==arguments[0]?arguments[0]:"expand-all",t=(arguments.length>1?arguments[1]:void 0)||u.value;o.value=r.value.expandAll(t,a.value);var n=o.value.map((function(e){return iI(e,a.value.rowKey)}));m(n,{row:void 0,rowState:void 0,rowIndex:void 0,type:"expand",trigger:e}),h.value.type="expand-all"}function y(e,t){var n=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=new Map,a=new Map,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:[]),o=n.addedList,l=n.removedList;return r.value.expandTreeNode(o,e,a.value),r.value.foldTreeNode(l,e,a.value),i(e)}t.watch([p,u],(function(e,t){var n=Ha(e,1)[0],l=Ha(t,1)[0];if(r.value.treeDataMap.size&&u.value.length){if("user-reaction-change"===h.value.type){var c=h.value||{},s=c.row,d=c.rowIndex;o.value=i(r.value.toggleExpandData({row:s,rowIndex:d},i(o.value),a.value))}else"props-change"===h.value.type&&y(o.value,n,l);h.value.type="props-change"}}));return{tExpandedTreeNode:p,isDefaultExpandAllExecute:d,isDefaultExpandedTreeNodesExecute:v,expandAll:g,foldAll:function(){o.value=i(r.value.foldAll(o.value,a.value)),m([],{row:void 0,rowState:void 0,rowIndex:void 0,type:"fold",trigger:"fold-all"})},onExpandFoldIconClick:function(t,n){var o,l=t.row,u=t.rowIndex;h.value=mI({type:"user-reaction-change"},t);var c=iI(l,a.value.rowKey),s=r.value.treeDataMap.get(c),d=i(p.value);if(s.expanded){for(var v=r.value.getExpandedChildrenKeys([l],a.value),f=0,g=d.length;f0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;h.value=e?i(p.value.appendTo(e,t,h.value,b.value)):p.value.appendToRoot(t,h.value,b.value)},insertAfter:function(e,t){h.value=i(p.value.insertAfter(e,t,h.value,b.value))},insertBefore:function(e,t){h.value=i(p.value.insertBefore(e,t,h.value,b.value))},formatTreeColumn:function(r){if(!e.tree||r.colKey!==m.value.colKey)return r;var o=yI({},m.value);return o.cell=function(o,a){var l,i,d=YD(yI(yI({},a),{},{col:yI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(St(a.row,b.value.rowKey)),w=function(t){var n,r;if(void 0!==t){var o=void 0===(null===(n=e.tree)||void 0===n?void 0:n.indent)?24:null===(r=e.tree)||void 0===r?void 0:r.indent;return o?{paddingLeft:"".concat(t*o||1,"px")}:{}}}(null==h?void 0:h.level),O=s({},g.inlineCol,!!r.ellipsis),C=St(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(St(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=yI(yI({},a),{},{type:"fold"}),i=u(c.value.treeExpandAndFoldIcon,t.h,l)||t.createVNode(f,null,null),y("treeExpandAndFoldIcon",{defaultNode:i,params:l})):function(e){var n=yI(yI({},e),{},{type:"expand"}),r=u(c.value.treeExpandAndFoldIcon,t.h,n)||t.createVNode(v,null,null);return y("treeExpandAndFoldIcon",{defaultNode:r,params:n})}(a);return t.createVNode("div",{class:[g.col,O],style:w},[!(!C.length&&!0!==C)&&t.createVNode("span",{class:g.icon,onClick:function(e){k(a,"expand-fold-icon"),e.stopPropagation()}},[P]),d])}return t.createVNode("div",{style:w,class:[O,g.leafNode]},[t.createVNode("span",{class:g.icon},null),d])},!0===o.ellipsis&&(o.ellipsis=function(e,t){return YD(yI(yI({},t),{},{col:yI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=yI({},t);void 0!==t.row.VIRTUAL_SCROLL_INDEX&&(a.rowIndex=t.row.VIRTUAL_SCROLL_INDEX),h.value=i(p.value.toggleExpandData(a,h.value,b.value));var l=St(t.row,b.value.rowKey),u=null===(r=p.value)||void 0===r||null===(r=r.treeDataMap)||void 0===r?void 0:r.get(l);null===(o=e.onTreeExpandChange)||void 0===o||o.call(e,{row:t.row,rowIndex:t.rowIndex,rowState:u,trigger:n})},expandAll:P,foldAll:j,getTreeNode:function(){return p.value.getTreeNode(h.value,b.value)},resetData:_,getTreeExpandedRow:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data";return p.value.getTreeExpandedRow(h.value,b.value,e)},onExpandFoldIconClick:k}}function wI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function OI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(kI(kI({store:a.value,dataSource:l.value},s),{},{primaryTableRef:r,validateRowData:function(e){return r.value.validateRowData(e)},validateTableData:function(){return r.value.validateTableData()},clearValidateData:function(){r.value.clearValidateData()},refreshTable:function(){r.value.refreshTable()},scrollToElement:function(e){var t=e.index;if(!t&&0!==t){if(!e.key)return void Qm("Table","scrollToElement: one of `index` or `key` must exist.");var n=v.value.get(e.key);((t=w(n,e.key))<0||void 0===t)&&Qm("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(kI(kI({},e),{},{index:t}))}})),function(){var o,a=kI(kI({},t.getCurrentInstance().vnode.props),{},{rowKey:e.rowKey||"id",data:l.value,columns:g.value,indeterminateSelectedRowKeys:p.value,disableDataPage:Boolean(e.tree&&Object.keys(e.tree).length)||e.disableDataPage,onSelectChange:m,onDragSort:y,rowClassName:function(t){var n=St(t.row,e.rowKey||"id"),r=v.value.get(n);return r?["".concat(d.value,"-table-tr--level-").concat(r.level),e.rowClassName]:[e.rowClassName]}});return null!==(o=e.tree)&&void 0!==o&&o.expandTreeNodeOnClick&&(a.onRowClick=b),t.createVNode(tI,t.mergeProps(a,{ref:r}),n.slots)}}}),_I=pi(sE),VI=pi(tI),DI=pi(NI),EI=pi(Mr(tI),"TTable"),FI={labelAlign:{type:String,default:"left",validator:function(e){return!e||["left","right","alternate","top","bottom"].includes(e)}},layout:{type:String,default:"vertical",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},mode:{type:String,default:"alternate",validator:function(e){return!e||["alternate","same"].includes(e)}},reverse:Boolean,theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}}},TI={vertical:["left","right"],horizontal:["top","bottom"]},II=Symbol("timeLineProvide"),MI=t.computed((function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}})),AI={content:{type:[String,Function]},dot:{type:Function},dotColor:{type:String,default:"primary"},label:{type:[String,Function]},labelAlign:{type:String,validator:function(e){return!e||["left","right","top","bottom"].includes(e)}},loading:Boolean,onClick:Function};function BI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function LI(e){for(var t=1;t=0?t.splice(n,1):i.value?t=[e]:t.push(e),v(t)})),t.provide("collapseProps",t.toRefs(e)),t.provide("getUniqId",p),t.provide("renderParentTNode",o),function(){var e=o("default");return t.createVNode("div",{class:f.value},[e])}}}),$I={content:{type:[String,Function]},default:{type:[String,Function]},destroyOnCollapse:Boolean,disabled:{type:Boolean,default:void 0},expandIcon:{type:[Boolean,Function],default:void 0},header:{type:[String,Function]},headerRightContent:{type:[String,Function]},value:{type:[String,Number]}};var ZI=t.defineComponent({name:"TCollapsePanel",props:$I,setup:function(e,n){var r=n.slots,o=ei(),a=ni(),l=Qa("collapse-panel"),i=Qa("is-disabled"),u=Qa("is-clickable"),c=Qa("slide-down"),d=t.toRefs(e),v=d.value,f=d.disabled,p=d.destroyOnCollapse,m=t.inject("collapseValue"),h=t.inject("updateCollapseValue"),g=t.inject("getUniqId",(function(){}),!1),y=t.inject("collapseProps"),b=y.defaultExpandAll,w=y.disabled,O=y.expandIconPlacement,C=y.expandOnRowClick,x=t.inject("renderParentTNode"),P=v.value||g();b.value&&h(P);var j={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},S=j.beforeEnter,k=j.enter,N=j.afterEnter,_=j.beforeLeave,V=j.leave,D=j.afterLeave,E=t.ref(),F=t.computed((function(){return f.value||w.value})),T=t.computed((function(){return m.value instanceof Array?m.value.includes(P):m.value===P})),I=t.computed((function(){return[l.value,s({},i.value,F.value)]})),M=t.computed((function(){return r.expandIcon||e.expandIcon})),A=function(e){(C.value||e.currentTarget===E.value)&&!F.value&&h(P),e.stopPropagation()},B=function(e){e.stopPropagation()},L=function(){var e=void 0===M.value?x:o;return t.createVNode("div",{ref:E,class:"".concat(l.value,"__icon ").concat(l.value,"__icon--").concat(O.value," ").concat(T.value?"".concat(l.value,"__icon--active"):""),onClick:A},[e("expandIcon",t.createVNode(Kg,{overlayClassName:"".concat(l.value,"__icon--default")},null))])},R=function(){return p.value?T.value?t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]):null:t.withDirectives(t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]),[[t.vShow,T.value]])};return function(){var e,n,r,a;return t.createVNode("div",{class:I.value},[t.createVNode("div",{class:"".concat(l.value,"__wrapper")},[(a=["".concat(l.value,"__header"),s({},u.value,C.value&&!F.value)],t.createVNode("div",{class:a,onClick:A},["left"===O.value&&L(),o("header"),t.createVNode("div",{class:"".concat(l.value,"__header--blank")},null),(r=o("headerRightContent"),r?t.createVNode("div",{onClick:B},[r]):null),"right"===O.value&&L()])),t.createVNode(t.Transition,{name:c.value,onBeforeEnter:S,onEnter:k,onAfterEnter:N,onBeforeLeave:_,onLeave:V,onAfterLeave:D},(n=e=R(),"function"==typeof n||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?e:{default:function(){return[e]}}))])])}}}),qI=pi(YI),XI=pi(ZI),GI={alpha:{type:Number,default:1},content:{type:[String,Function]},default:{type:[String,Function]},height:{type:Number},isRepeat:{type:Boolean,default:!0},lineSpace:{type:Number,default:16},movable:Boolean,moveInterval:{type:Number,default:3e3},offset:{type:Array},removable:{type:Boolean,default:!0},rotate:{type:Number,default:-22},watermarkContent:{type:[Object,Array]},width:{type:Number},x:{type:Number},y:{type:Number},zIndex:{type:Number}};function JI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QI(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function tM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=l)return n;if(a-r=m.value?"":t2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o,a=s;s=t.createVNode(n,{style:r},"function"==typeof(o=s)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?s:{default:function(){return[a]}})}}return d(l,"strong"),d(o,"u"),d(a,"del"),d(r,"code"),d(!1!==u,"mark",u?{color:u}:{}),d(i,"kbd"),d(c,"i"),s},s=t.computed((function(){var t=e.theme,n=e.disabled,r=o.value,a=[r];return n?a.push("".concat(r,"--disabled")):t&&["primary","secondary","success","warning","error"].includes(t)&&a.push("".concat(r,"--").concat(t)),a})),d=t.computed((function(){var t,n=e.copyable;return l.value?a.value.copiedText:"object"===u(n)?null===(t=n.tooltipProps)||void 0===t?void 0:t.content:null})),v=t.computed((function(){return e.content||(null==r?void 0:r.default())})),f=function(){var n=e.copyable;if(n){var r=l.value?function(){return t.createVNode(Eu,null,null)}:function(){return t.createVNode(Nc,null,null)},o={theme:"default"},a=function(){};return"object"===u(n)&&(n.suffix&&!l.value&&(r=n.suffix),n.tooltipProps&&(o=n.tooltipProps),"function"==typeof n.onCopy&&(a=n.onCopy)),t.createVNode(Lh,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(ji,{icon:r,shape:"square",theme:"primary",variant:"text",onClick:function(e){return p(e,a)}},null)]}})}},p=function(e,t){e.preventDefault(),e.stopPropagation(),l.value=!0,setTimeout((function(){l.value=!1}),1500),uM("string"==typeof v.value?v.value:Array.isArray(v.value)?v.value.map((function(e){return e.children})).join(""):void 0),null==t||t()};return function(){var n=i("default","content");return e.ellipsis?t.createVNode(vM,t.mergeProps(e,{class:s.value}),{default:function(){return[c(e,n),e.copyable?f():null]}}):t.createVNode("span",{class:s.value},[c(e,n),e.copyable?f():null])}}});var pM=t.defineComponent({name:"TTypography",setup:function(){var e=ei();return function(){var n,r;return t.createVNode(fM,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),mM={content:{type:[String,Function]},default:{type:[String,Function]},ellipsis:{type:[Boolean,Object],default:!1},level:{type:String,default:"h1",validator:function(e){return!e||["h1","h2","h3","h4","h5","h6"].includes(e)}}};var hM=t.defineComponent({name:"TTypographyTitle",props:mM,setup:function(e){var n=Qa("typography"),r=ni();return function(){var o,a,l=e.level,u=r("default","content");return e.ellipsis?t.createVNode(vM,t.mergeProps(e,{class:n.value}),"function"==typeof(a=o=t.h.apply(void 0,[l].concat(i(u))))||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}}):t.createVNode(t.Fragment,null,[t.h.apply(void 0,[l,{class:n.value}].concat(i(u)))])}}});function gM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var yM=t.defineComponent({name:"TTypographyParagraph",components:{TTooltip:Lh},props:function(e){for(var t=1;t0&&e.maxLinedocument.documentElement.clientWidth?W_():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(DM+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n "),o.value&&!e.showInAttachedElement&&e.preventScrollThrough&&document.head.appendChild(a.value),window.addEventListener("keydown",V)})),t.onBeforeUnmount((function(){D(),window.removeEventListener("keydown",V)})),function(){if(!r.value){var o,a,l=d("body","default"),s=c("header"),f=(o=w({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),a=O({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:_.value},["right"===e.placement?o:null,a,"right"!==e.placement?o:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!y.value,to:y.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:C,class:x.value,style:{zIndex:e.zIndex},onKeydown:V,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:F},null),t.createVNode("div",{class:S.value,style:VM(VM({},j.value),g.value)},[s&&t.createVNode("div",{class:"".concat(v.value,"__header")},[s]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:E},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[l]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",f)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}});function FM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function TM(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{currentStepInfo:N.value},n=new Function("return "+t.h.toString())();return Object.assign({},n,e)},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body,n=Wl(),r=n.scrollTop,o=n.scrollLeft,a=e.getBoundingClientRect(),l=a.top,i=a.left,u=t.getBoundingClientRect(),c=u.top,s=u.left,d=zl(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:Hl(e)?{top:l,left:i}:{top:l+r,left:i+o}}(C.value),r=n.top,o=n.left,a=C.value.getBoundingClientRect(),l=a.width,i=a.height,u=D("highlightPadding");if(_.value)l+=2*u,i+=2*u,r-=u,o-=u;else{var c=Wl();r+=c.scrollTop,o+=c.scrollLeft}var s={top:"".concat(r,"px"),left:"".concat(o,"px")};if(F.value)if(t){var d=w.value.getBoundingClientRect(),v=d.width,f=d.height;Object.assign(s,{width:"".concat(v,"px"),height:"".concat(f,"px")})}else Object.assign(s,{width:"auto",height:"auto"});else Object.assign(s,{width:"".concat(l,"px"),height:"".concat(i,"px")});tl(e,s)},A=function(){t.nextTick((function(){var e;C.value=function(e){if(!e)return document.body;var t,n=null;if(Do(e))n=document.querySelector(e);else{if(!H(e))throw new Error("elm should be string or function");n=e()}if(n)return n;if("test"!==(null===(t=process)||void 0===t||null===(t=t.env)||void 0===t?void 0:t.NODE_ENV))throw new Error("There is no element with given.")}(N.value.element),C.value&&(LM(C.value),M(w.value),M(O.value,!0),RM(C.value),null===(e=j.value)||void 0===e||e.update())}))},B=function(){var e;null===(e=O.value)||void 0===e||e.parentNode.removeChild(O.value)},L=function(){var e,t;null===(e=P.value)||void 0===e||e.parentNode.removeChild(P.value),null===(t=x.value)||void 0===t||t.parentNode.removeChild(x.value)},R=function(){_.value?(L(),A()):(B(),t.nextTick((function(){C.value=P.value,LM(C.value),M(w.value),RM(C.value)}))),T.value=!0},z=function(t){var n,r=k.value;S.value=!1,y(-1,{e:t,total:r}),null===(n=e.onSkip)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},W=function(t){var n,r=k.value;y(g.value-1,{e:t,total:r}),null===(n=e.onPrevStepClick)||void 0===n||n.call(e,{e:t,prev:g.value-1,current:g.value,total:r})},K=function(t){var n,r=k.value;y(g.value+1,{e:t,total:r}),null===(n=e.onNextStepClick)||void 0===n||n.call(e,{e:t,next:g.value+1,current:g.value,total:r})},U=function(t){var n,r=k.value;S.value=!1,y(-1,{e:t,total:r}),null===(n=e.onFinish)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},Y=function(){g.value>=0&&g.value=0&&e-1}}},setup:function(e,n){var r=n.expose,o=Qa("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed((function(){return tA({zIndex:6e3},YM[a])})),c=function(e){l.value.splice(e,1)},s=function(e){if(e)return isNaN(Number(e))?e:"".concat(e,"px")},d=function(e){var t={marginBottom:UM};return e.offset&&(t.position="relative",t.left=s(e.offset[0]),t.top=s(e.offset[1])),e.zIndex&&(t["z-index"]=e.zIndex),t},v=function(e){e&&i.value.push(e)};return r({add:function(e){return l.value.push(e),l.value.length-1},remove:c,removeAll:function(){l.value=[]},list:l,notificationList:i}),function(){if(l.value.length)return t.createVNode("div",{class:"".concat(o.value,"__show"),style:u.value},[l.value.map((function(e,n){return t.createVNode(QM,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return tA(tA({},t),{},{onCloseBtnClick:function(n){return t.onCloseBtnClick&&t.onCloseBtnClick(n),c(e)},onDurationEnd:function(){return t.onDurationEnd&&t.onDurationEnd(),c(e)}})}(n,e)),null)}))])}}});function rA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oA(e){for(var t=1;t=1024&&r<1048576?"".concat((r/1024).toFixed(1)," KB"):r>=1048576?"".concat((r/1048576).toFixed(1)," MB"):"")]),t.createVNode("small",{class:"".concat(v.small),key:"time"},[c.value.file.fileOperationDateText,"\uff1a",o.uploadTime||"-"])];return t.createVNode("div",{class:"".concat(f,"__dragger-progress")},["image"===e.theme&&O(),t.createVNode("div",{class:"".concat(f,"__dragger-progress-info")},[d("fileListDisplay",{params:{files:e.displayFiles}})||s,t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[["progress","waiting"].includes(o.status)&&!l.value&&t.createVNode(ji,{theme:"primary",variant:"text",class:"".concat(f,"__dragger-progress-cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t,file:e.toUploadFiles[0]||e.files[0]})}},{default:function(){return[null===(n=c.value)||void 0===n?void 0:n.cancelUploadText]}}),!e.autoUpload&&"waiting"===o.status&&t.createVNode(ji,{theme:"primary",variant:"text",disabled:l.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)},class:"".concat(f,"__dragger-upload-btn")},{default:function(){return[c.value.triggerUploadText.normal]}})]),["fail","success"].includes(null==o?void 0:o.status)&&!l.value&&t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[t.createVNode(ji,{theme:"primary",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-progress-cancel"),onClick:e.triggerUpload},{default:function(){return[c.value.triggerUploadText.reupload]}}),t.createVNode(ji,{theme:"danger",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-delete-btn"),onClick:function(t){return e.onRemove({e:t,index:0,file:o})}},{default:function(){return[c.value.triggerUploadText.delete]}})])])])}()};return function(){var n;return t.createVNode("div",{ref:h,class:g.value,onDrop:p.handleDrop,onDragenter:p.handleDragenter,onDragover:p.handleDragover,onDragleave:p.handleDragleave},[(null===(n=e.trigger)||void 0===n?void 0:n.call(e,t.h,{files:a.value,dragActive:m.value}))||x()])}}});function xA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function PA(e){for(var t=1;t=uh.KB&&c=uh.MB&&c=uh.GB?"".concat((c/uh.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[I(n)]),l.value?null:s])}))])])},L=function(){var n=p("fileListDisplay",{params:{cancelUpload:e.cancelUpload,uploadFiles:e.uploadFiles,onRemove:e.onRemove,onPreview:e.onPreview,toUploadFiles:e.toUploadFiles,sizeOverLimitMessage:e.sizeOverLimitMessage,locale:e.locale,files:e.displayFiles,dragEvents:D.value}});return n||e.fileListDisplay?n:t.createVNode("ul",{class:"".concat(v.value,"__card clearfix")},[e.displayFiles.map((function(n,r){return function(n,r){var o,a=F(),d=a.iconMap,f=a.textMap,p=e.abridgeName&&n.name?sh.apply(void 0,[n.name].concat(i(e.abridgeName))):n.name;return t.createVNode("li",{class:"".concat(v.value,"__card-item"),key:n.name+r+n.percent+n.status||"0"},[t.createVNode("div",{class:["".concat(v.value,"__card-content"),s({},"".concat(c.value,"-is-bordered"),"waiting"!==n.status)]},["progress"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-progress")},[d[n.status],t.createVNode("p",null,[f[n.status],e.showUploadProgress&&" ".concat(n.percent,"%")])]),"fail"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-fail")},[d[n.status],t.createVNode("p",null,[(null===(o=n.response)||void 0===o?void 0:o.error)||f[n.status]])]),(["waiting","success"].includes(n.status)||!n.status&&n.url)&&t.createVNode(zN,{class:"".concat(v.value,"__card-image"),src:n.url||n.raw,error:"",loading:"",fit:"contain"},null),t.createVNode("div",{class:"".concat(v.value,"__card-mask")},[(n.url||n.raw)&&!["progress","fail"].includes(n.status)&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item")},[t.createVNode(h,{onClick:function(t){var o,a=t.e;_.value=r,N.value=u.value,null===(o=e.onPreview)||void 0===o||o.call(e,{file:n,index:r,e:a})}},null),t.createVNode("span",{class:"".concat(v.value,"__card-mask-item-divider")},null)]),!l.value&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item ").concat(v.value,"__delete"),onClick:function(t){return e.onRemove({e:t,index:r,file:n})}},[t.createVNode(g,null,null)])])]),e.showImageFileName&&t.createVNode("p",{class:["".concat(v.value,"__card-name"),"".concat(v.value,"__flow-status")]},[["success","waiting"].includes(n.status)&&d[n.status],p])])}(n,r)}))])};return function(){var n,o,i,c="".concat(v.value,"__flow-card-area"),s=l.value||!a.value,d=r.uploadButton||H(e.uploadButton),m=Boolean(l.value||a.value||!u.value.length),h=r.cancelUploadButton||H(e.cancelUploadButton);return t.createVNode("div",{class:"".concat(v.value,"__flow ").concat(v.value,"__flow-").concat(e.theme)},[t.createVNode("div",{class:"".concat(v.value,"__flow-op")},[null===(n=r.default)||void 0===n?void 0:n.call(r),e.placeholder&&t.createVNode("small",{class:"".concat(v.value,"__flow-placeholder ").concat(v.value,"__placeholder")},[e.placeholder])]),"image-flow"===e.theme&&t.createVNode("div",t.mergeProps({class:c},D.value),[u.value.length?L():T()]),"file-flow"===e.theme&&(u.value.length?B():t.createVNode("div",t.mergeProps({class:c},D.value),[T()])),!e.autoUpload&&(null!==e.uploadButton||null!==e.cancelUploadButton)&&t.createVNode("div",{class:"".concat(v.value,"__flow-bottom")},[null!==e.cancelUploadButton&&(d?p("cancelUploadButton",{params:{disabled:s,cancelUploadText:null===(o=f.value)||void 0===o?void 0:o.cancelUploadText,cancelUpload:e.cancelUpload}}):t.createVNode(ji,t.mergeProps({theme:"default",disabled:s,content:null===(i=f.value)||void 0===i?void 0:i.cancelUploadText,class:"".concat(v.value,"__cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t})}},E(e.cancelUploadButton)?e.cancelUploadButton:{}),null)),null!==e.uploadButton&&(h?p("uploadButton",{params:{disabled:m,uploading:a.value,uploadText:V.value,uploadFiles:e.uploadFiles}}):t.createVNode(ji,t.mergeProps({disabled:m,theme:"primary",loading:a.value,class:"".concat(v.value,"__continue"),content:V.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)}},E(e.uploadButton)?e.uploadButton:{}),null))]),t.createVNode(fV,t.mergeProps({images:N.value.map((function(e){return e.url||e.raw})),visible:!!N.value.length,onClose:function(){N.value=[]},index:_.value,onIndexChange:function(e){return _.value=e}},e.imageViewerProps),null)])}}});function _A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function VA(e){for(var t=1;tt*uh[n]}(e.size,o.size,o.unit);a&&(r=o)}t(r)})),a=[o,void 0];if(H(r)){var l=r(e),i=l instanceof Promise?l:new Promise((function(e){return e(l)}));a[1]=i}return new Promise((function(e){Promise.all(a).then((function(t){e(t)}))}))}function AA(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest,a=e.formatResponse,l=r;return H(a)&&(l=a(r,{file:n[0],currentFiles:n})),n.forEach((function(e){e.status="fail",e.response=l})),{response:l,event:t,files:n,XMLHttpRequest:o}}function BA(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise((function(o){if(!t&&!r)return Qm("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return Gm("Upload","No files need to be uploaded"),void o({});if(n.forEach((function(e){e.status="progress"})),r)r(e.multiple?n:n[0]).then((function(t){if(function(e){return e?e.status?["success","fail"].includes(e.status)?("success"!==e.status||e.response&&(e.response.url||e.response.files)||Gm("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(Qm("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(Qm("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(Qm("Upload","`requestMethodResponse` is required."),!1)}(t)){var r=t.response||{};H(e.formatResponse)&&(r=e.formatResponse(r,{file:n[0],currentFiles:n})),"fail"===t.status&&(r.error=t.error||r.error);var a=[];"success"===t.status&&r.files?a=r.files.map((function(e){return IA(IA(IA({},n.find((function(t){return e.name&&t.name===e.name||e.raw&&t.raw===e.raw}))),e),{},{status:t.status,response:r})})):(n.forEach((function(e){var n;e.status=t.status,e.response=r,e.url=r.url,e.percent="success"===t.status?100:0,e.uploadTime=(null===(n=r)||void 0===n?void 0:n.uploadTime)||ch()})),a=n);var l,i={response:r,file:a[0],files:a};if("success"===t.status)null===(l=e.onResponseSuccess)||void 0===l||l.call(e,i);else if("fail"===t.status){var u;null===(u=e.onResponseError)||void 0===u||u.call(e,i)}o({status:t.status,data:i})}else o({})}));else{var a,l=function(e){var t,n,r,o=e.method,a=void 0===o?"POST":o,l=e.action,c=e.withCredentials,s=void 0!==c&&c,d=e.headers,v=void 0===d?{}:d,f=e.data,p=void 0===f?{}:f,m=e.file,h=e.files,g=void 0===h?[]:h,y=e.name,b=void 0===y?"file":y,w=e.useMockProgress,O=void 0===w||w,C=e.mockProgressDuration,x=void 0===C?300:C,P=e.formatRequest,j=e.onError,S=e.onProgress,k=e.onSuccess,N=g||[],_=0,V=new XMLHttpRequest;if(s&&(V.withCredentials=!0),O&&"progress"===(null===(t=g[0])||void 0===t?void 0:t.status))var D=setTimeout((function(){n=setInterval((function(){_+10<100?(_=Math.max(_+10,_),g[0]&&_!==g[0].percent&&(g[0].percent=_,S({percent:_,file:m||N[0],files:N.map((function(e){return FA(FA({},e),{},{percent:_})})),type:"mock",XMLHttpRequest:V}))):clearInterval(n)}),x),clearTimeout(D)}),x);var E={};if(p){var F=H(p)?p(N):p;Object.assign(E,F)}N.forEach((function(e,t){var n=N.length>1?"".concat(b,"[").concat(t,"]"):b;E[n]=e.raw})),1===N.length?E[b]=N[0].raw:E[b]=N.map((function(e){return e.raw})),E.length=N.length,P&&(E=P(E));var T=new FormData;return Object.keys(E).forEach((function(e){T.append(e,E[e])})),V.open(a,l,!0),Object.keys(v).forEach((function(e){V.setRequestHeader(e,v[e])})),V.onerror=function(e){j({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){j({event:e,file:m,files:N,XMLHttpRequest:V})},V.upload&&(V.upload.onprogress=function(e){var t,n=0;if(e.total>0&&(n=Math.round(e.loaded/e.total*100)),(_=Math.max(n,_))!==n&&(null===(t=N[0])||void 0===t?void 0:t.percent)!==_){var r=N.map((function(e){return FA(FA({},e),{},{percent:_})}));S({event:e,percent:_,file:m||r[0],files:r,type:"real",XMLHttpRequest:V})}}),V.onload=function(e){var t={};if(t.XMLHttpRequest=V,V.status<200||V.status>=300)return j({event:e,file:m,files:N,response:t,XMLHttpRequest:V});var o=V.responseText||V.response;try{t=JSON.parse(o)}catch(e){t=o,Qm("Upload","response does not a valid json")}clearInterval(n),clearTimeout(r),N.forEach((function(e){var n;e.percent=100,e.status="success",e.uploadTime=(null===(n=t)||void 0===n?void 0:n.uploadTime)||ch()})),"object"===u(t)&&(t.XMLHttpRequest=V),k({event:e,file:m||N[0],files:i(N),XMLHttpRequest:V,response:t})},V.send(T),V.upload.requestParams=E,V.upload.requestHeaders=v,V}({action:e.action,files:e.toUploadFiles,useMockProgress:e.useMockProgress,mockProgressDuration:e.mockProgressDuration,onError:function(t){var n,r=AA(IA(IA({},t),{},{formatResponse:e.formatResponse}));null===(n=e.onResponseError)||void 0===n||n.call(e,r),o({status:"fail",data:r})},onProgress:e.onResponseProgress,onSuccess:function(t){var n=e.formatResponse,r=t.response;if(H(n)&&(r=n(t.response,{file:t.file,currentFiles:t.files})),r.error){var a,l=AA(IA(IA({},t),{},{response:r}));null===(a=e.onResponseError)||void 0===a||a.call(e,l),o({status:"fail",data:l})}else{var i;t.file.response=r,t.files[0].response=r;var u=function(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest;(null==n?void 0:n.length)<=0&&Qm("Upload","Empty File in Success Callback"),n.forEach((function(e){var t;e.percent=100,e.status="success",null===(t=e.response)||void 0===t||delete t.error}));var a=r;return n[0].url=a.url||n[0].url,{response:a,event:t,files:n,XMLHttpRequest:o}}(IA(IA({},t),{},{response:r}));null===(i=e.onResponseSuccess)||void 0===i||i.call(e,u),o({status:"success",data:u})}},formatRequest:e.formatRequest,data:e.data,name:e.name,headers:e.headers,withCredentials:e.withCredentials,method:e.method});null===(a=e.setXhrObject)||void 0===a||a.call(e,{files:e.toUploadFiles,xhrReq:l})}}))}function LA(e){var t=e.uploadAllFilesInOneRequest,n=e.toUploadFiles,r=e.uploadedFiles,o=e.isBatchUpload,a=n.filter((function(e){return!e.response||e.response&&!e.response.error}));return new Promise((function(n){if(!t&&e.multiple){var l=a.map((function(t){return BA(IA(IA({},e),{},{toUploadFiles:[t]}))}));Promise.all(l).then((function(t){var a=[],l=[];t.forEach((function(e){"success"===e.status?a.push(e.data.files[0]):"fail"===e.status&&l.push(e.data.files[0])}));var i=e.autoUpload?r.concat(a):r,u=o||!e.multiple?a:i;n({status:a.length?"success":"fail",data:{files:u},failedFiles:l,list:t})}))}else BA(e).then((function(t){"success"===t.status&&(t.data.files=o||!e.multiple?t.data.files:function(e,t){for(var n=e.filter((function(e){return e.url})),r=function(){var r=t[o],a=e.findIndex((function(e){return e.raw&&e.raw===r.raw||e.name&&e.name===r.name})),l=a>=0?IA(IA({},e[a]),r):r;n.push(l)},o=0,a=t.length;o2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return e.map((function(e){var o=e;return H(t)&&(o=t(e)),IA({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)}))}function zA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function HA(e){for(var t=1;tr&&(u=!0)}var s,d=RA(l,e.format,e.autoUpload?"progress":"waiting");if(e.beforeAllFilesUpload){var v,f=null===(v=e.beforeAllFilesUpload)||void 0===v?void 0:v.call(e,d);s=f instanceof Promise?f:new Promise((function(e){return e(f)}))}var p=d.map((function(t){return new Promise((function(n){MA(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then((function(e){var r=Ha(e,2),o=r[0],a=r[1];o?n({file:t,validateResult:{type:"FILE_OVER_SIZE_LIMIT",extra:o}}):!1===a&&n({file:t,validateResult:{type:"CUSTOM_BEFORE_UPLOAD"}}),n({file:t})}))}))}));Promise.all([s].concat(p)).then((function(e){var t=UT(e),n=t[0],r=t.slice(1);a(!1===n?{lengthOverLimit:u,hasSameNameFile:i,validateResult:{type:"BEFORE_ALL_FILES_UPLOAD"},files:d}:{lengthOverLimit:u,hasSameNameFile:i,fileValidateList:r,files:d})}))}else{var m=RA(t,e.format,e.autoUpload?"progress":"waiting");a({hasSameNameFile:i,file:null==m?void 0:m[0],files:m,validateResult:{type:"FILTER_FILE_SAME_NAME"}})}}))}({uploadValue:g.value,files:i(t),allowUploadDuplicateFile:e.allowUploadDuplicateFile,max:e.multiple?e.max:0,sizeLimit:e.sizeLimit,isBatchUpload:l.value,autoUpload:a.value,format:e.format,beforeUpload:e.beforeUpload,beforeAllFilesUpload:e.beforeAllFilesUpload}).then((function(t){var n;if("BEFORE_ALL_FILES_UPLOAD"!==(null===(n=t.validateResult)||void 0===n?void 0:n.type)){if(t.lengthOverLimit){var r,o={type:"FILES_OVER_LENGTH_LIMIT",files:t.files};if(null===(r=e.onValidate)||void 0===r||r.call(e,o),!t.files.length)return}if(t.hasSameNameFile){var i,u={type:"FILTER_FILE_SAME_NAME",files:t.files};null===(i=e.onValidate)||void 0===i||i.call(e,u)}if(t.fileValidateList instanceof Array){var c,s,d=function(e,t){var n=[],r=[],o=[];return e.forEach((function(e){var a,l;if("CUSTOM_BEFORE_UPLOAD"!==(null===(a=e.validateResult)||void 0===a?void 0:a.type))return"FILE_OVER_SIZE_LIMIT"===(null===(l=e.validateResult)||void 0===l?void 0:l.type)?(e.file.response||(e.file.response={}),e.file.response.error=e.file.response.error||t(e.validateResult.extra),void n.push(e)):void o.push(e.file);r.push(e.file)})),{sizeLimitErrors:n,beforeUploadErrorFiles:r,toFiles:o}}(t.fileValidateList,F),v=d.sizeLimitErrors,f=d.beforeUploadErrorFiles,p=d.toFiles,m=a.value?p:w.value.concat(p);if(w.value=m,null===(c=e.onWaitingUploadFilesChange)||void 0===c||c.call(e,{files:m,trigger:"validate"}),v[0])O.value=v[0].file.response.error,null===(s=e.onValidate)||void 0===s||s.call(e,{type:"FILE_OVER_SIZE_LIMIT",files:v.map((function(e){return e.file}))});else if(O.value="",f.length){var h,b={type:"CUSTOM_BEFORE_UPLOAD",files:f};null===(h=e.onValidate)||void 0===h||h.call(e,b)}a.value?I(m):function(t){var n=e.multiple&&!l.value?g.value.concat(t):t;n.length&&(y(n,{trigger:"add",index:g.value.length,file:t[0],files:t}),w.value=[])}(m)}}else{var C,x={type:"BEFORE_ALL_FILES_UPLOAD",files:t.files};null===(C=e.onValidate)||void 0===C||C.call(e,x)}})),n.value.value=null}};function I(t){var n=g.value.filter((function(e){return"success"!==e.status})),r=a.value?t||w.value:n;r&&r.length&&(k.value=!0,b.value=[],LA({action:e.action,headers:e.headers,method:e.method,name:e.name,withCredentials:e.withCredentials,uploadedFiles:g.value,toUploadFiles:r,multiple:e.multiple,isBatchUpload:l.value,autoUpload:e.autoUpload,uploadAllFilesInOneRequest:e.uploadAllFilesInOneRequest,useMockProgress:e.useMockProgress,data:e.data,mockProgressDuration:e.mockProgressDuration,requestMethod:e.requestMethod,formatRequest:e.formatRequest,formatResponse:e.formatResponse,onResponseProgress:D,onResponseSuccess:E,onResponseError:V,setXhrObject:function(e){var t;null!==(t=e.files[0])&&void 0!==t&&t.raw&&b.value.find((function(t){var n;return(null===(n=t.files[0])||void 0===n?void 0:n.raw)===e.files[0].raw}))||(b.value=b.value.concat(e))}}).then((function(t){var n,o,l=t.status,u=t.data,c=t.list,s=t.failedFiles;if(k.value=!1,"success"===l)y(i(u.files),{trigger:"add",file:u.files[0]}),b.value=[],null===(n=e.onSuccess)||void 0===n||n.call(e,{fileList:u.files,currentFiles:r,file:r[0],results:null==c?void 0:c.map((function(e){return e.data})),response:u.response||c.map((function(e){return e.data.response})),XMLHttpRequest:u.XMLHttpRequest});else if(null!=s&&s[0]){var d;null===(d=e.onFail)||void 0===d||d.call(e,{e:u.event,file:s[0],failedFiles:s,currentFiles:r,response:u.response,XMLHttpRequest:u.XMLHttpRequest})}a.value&&(w.value=s,null===(o=e.onWaitingUploadFilesChange)||void 0===o||o.call(e,{files:s,trigger:"uploaded"}))})))}function M(t){var n,r,o;O.value="",null===(n=(r=t.e).stopPropagation)||void 0===n||n.call(r);var a,l={e:t.e,trigger:"remove",index:t.index,file:t.file};if(e.isBatchUpload||!e.multiple)w.value=[],null===(a=e.onWaitingUploadFilesChange)||void 0===a||a.call(e,{files:[],trigger:"remove"}),y([],l);else if(e.autoUpload){var u;if(t.index=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function YE(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var $E=YE(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ZE=YE(/Edge/i),qE=YE(/firefox/i),XE=YE(/safari/i)&&!YE(/chrome/i)&&!YE(/android/i),GE=YE(/iP(ad|od|hone)/i),JE=YE(/chrome/i)&&YE(/android/i),QE={capture:!1,passive:!1};function eF(e,t,n){e.addEventListener(t,n,!$E&&QE)}function tF(e,t,n){e.removeEventListener(t,n,!$E&&QE)}function nF(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function rF(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function oF(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&nF(e,t):nF(e,t))||r&&e===n)return e;if(e===n)break}while(e=rF(e))}return null}var aF,lF=/\s+/g;function iF(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(lF," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(lF," ")}}function uF(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf("webkit")||(t="-webkit-"+t),r[t]=n+("string"==typeof n?"":"px")}}function cF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=uF(e,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function sF(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,a=r.length;if(n)for(;o=a:o<=a))return r;if(r===dF())break;r=yF(r,!1)}return!1}function pF(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=UE(n,_F);NF.pluginEvent.bind(CT)(e,t,zE({dragEl:EF,parentEl:FF,ghostEl:TF,rootEl:IF,nextEl:MF,lastDownEl:AF,cloneEl:BF,cloneHidden:LF,dragStarted:JF,putSortable:UF,activeSortable:CT.active,originalEvent:r,oldIndex:RF,oldDraggableIndex:HF,newIndex:zF,newDraggableIndex:WF,hideGhostForTarget:yT,unhideGhostForTarget:bT,cloneNowHidden:function(){LF=!0},cloneNowShown:function(){LF=!1},dispatchSortableEvent:function(e){DF({sortable:t,name:e,originalEvent:r})}},o))};function DF(e){!function(e){var t=e.sortable,n=e.rootEl,r=e.name,o=e.targetEl,a=e.cloneEl,l=e.toEl,i=e.fromEl,u=e.oldIndex,c=e.newIndex,s=e.oldDraggableIndex,d=e.newDraggableIndex,v=e.originalEvent,f=e.putSortable,p=e.extraEventProperties;if(t=t||n&&n[PF]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||$E||ZE?(m=document.createEvent("Event")).initEvent(r,!0,!0):m=new CustomEvent(r,{bubbles:!0,cancelable:!0}),m.to=l||n,m.from=i||n,m.item=o||n,m.clone=a,m.oldIndex=u,m.newIndex=c,m.oldDraggableIndex=s,m.newDraggableIndex=d,m.originalEvent=v,m.pullMode=f?f.lastPutMode:void 0;var y=zE(zE({},p),NF.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(zE({putSortable:UF,cloneEl:BF,targetEl:EF,rootEl:IF,oldIndex:RF,oldDraggableIndex:HF,newIndex:zF,newDraggableIndex:WF},e))}var EF,FF,TF,IF,MF,AF,BF,LF,RF,zF,HF,WF,KF,UF,YF,$F,ZF,qF,XF,GF,JF,QF,eT,tT,nT,rT=!1,oT=!1,aT=[],lT=!1,iT=!1,uT=[],cT=!1,sT=[],dT="undefined"!=typeof document,vT=GE,fT=ZE||$E?"cssFloat":"float",pT=dT&&!JE&&!GE&&"draggable"in document.createElement("div"),mT=function(){if(dT){if($E)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),hT=function(e,t){var n=uF(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=pF(e,0,t),a=pF(e,1,t),l=o&&uF(o),i=a&&uF(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+vF(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+vF(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&l.float&&"none"!==l.float){var s="left"===l.float?"left":"right";return!a||"both"!==i.clear&&i.clear!==s?"horizontal":"vertical"}return o&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||u>=r&&"none"===n[fT]||a&&"none"===n[fT]&&u+c>r)?"vertical":"horizontal"},gT=function(e){function t(e,n){return function(r,o,a,l){var i=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==e&&(n||i))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(r,o,a,l),n)(r,o,a,l);var u=(n?r:o).options.group.name;return!0===e||"string"==typeof e&&e===u||e.join&&e.indexOf(u)>-1}}var n={},r=e.group;r&&"object"==HE(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},yT=function(){!mT&&TF&&uF(TF,"display","none")},bT=function(){!mT&&TF&&uF(TF,"display","")};dT&&!JE&&document.addEventListener("click",(function(e){if(oT)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),oT=!1,!1}),!0);var wT=function(e){if(EF){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,aT.some((function(e){var t=e[PF].options.emptyInsertThreshold;if(t&&!mF(e)){var n=vF(e),r=o>=n.left-t&&o<=n.right+t,i=a>=n.top-t&&a<=n.bottom+t;return r&&i?l=e:void 0}})),l);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[PF]._onDragOver(n)}}var o,a,l},OT=function(e){EF&&EF.parentNode[PF]._isOutsideThisEl(e.target)};function CT(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=KE({},t),e[PF]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return hT(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==CT.supportPointer&&"PointerEvent"in window&&(!XE||GE),emptyInsertThreshold:5};for(var r in NF.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in gT(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&pT,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?eF(e,"pointerdown",this._onTapStart):(eF(e,"mousedown",this._onTapStart),eF(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(eF(e,"dragover",this),eF(e,"dragenter",this)),aT.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),KE(this,jF())}function xT(e,t,n,r,o,a,l,i){var u,c,s=e[PF],d=s.options.onMove;return!window.CustomEvent||$E||ZE?(u=document.createEvent("Event")).initEvent("move",!0,!0):u=new CustomEvent("move",{bubbles:!0,cancelable:!0}),u.to=t,u.from=e,u.dragged=n,u.draggedRect=r,u.related=o||t,u.relatedRect=a||vF(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function PT(e){e.draggable=!1}function jT(){cT=!1}function ST(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function kT(e){return setTimeout(e,0)}function NT(e){return clearTimeout(e)}CT.prototype={constructor:CT,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(QF=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,EF):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,a=e.type,l=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,i=(l||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||i,c=r.filter;if(function(e){sT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&sT.push(r)}}(n),!EF&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!XE||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=oF(i,r.draggable,n,!1))&&i.animated||AF===i)){if(RF=hF(i),HF=hF(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return DF({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),VF("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=oF(u,r.trim(),n,!1))return DF({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),VF("filter",t,{evt:e}),!0}))))return void(o&&e.preventDefault());r.handle&&!oF(u,r.handle,n,!1)||this._prepareDragStart(e,l,i)}}},_prepareDragStart:function(e,t,n){var r,o=this,a=o.el,l=o.options,i=a.ownerDocument;if(n&&!EF&&n.parentNode===a){var u=vF(n);if(IF=a,FF=(EF=n).parentNode,MF=EF.nextSibling,AF=n,KF=l.group,CT.dragged=EF,YF={target:EF,clientX:(t||e).clientX,clientY:(t||e).clientY},XF=YF.clientX-u.left,GF=YF.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,EF.style["will-change"]="all",r=function(){VF("delayEnded",o,{evt:e}),CT.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!qE&&o.nativeDraggable&&(EF.draggable=!0),o._triggerDragStart(e,t),DF({sortable:o,name:"choose",originalEvent:e}),iF(EF,l.chosenClass,!0))},l.ignore.split(",").forEach((function(e){sF(EF,e.trim(),PT)})),eF(i,"dragover",wT),eF(i,"mousemove",wT),eF(i,"touchmove",wT),l.supportPointer?(eF(i,"pointerup",o._onDrop),!this.nativeDraggable&&eF(i,"pointercancel",o._onDrop)):(eF(i,"mouseup",o._onDrop),eF(i,"touchend",o._onDrop),eF(i,"touchcancel",o._onDrop)),qE&&this.nativeDraggable&&(this.options.touchStartThreshold=4,EF.draggable=!0),VF("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(ZE||$E))r();else{if(CT.eventCanceled)return void this._onDrop();l.supportPointer?(eF(i,"pointerup",o._disableDelayedDrag),eF(i,"pointercancel",o._disableDelayedDrag)):(eF(i,"mouseup",o._disableDelayedDrag),eF(i,"touchend",o._disableDelayedDrag),eF(i,"touchcancel",o._disableDelayedDrag)),eF(i,"mousemove",o._delayedDragTouchMoveHandler),eF(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&eF(i,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,l.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){EF&&PT(EF),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;tF(e,"mouseup",this._disableDelayedDrag),tF(e,"touchend",this._disableDelayedDrag),tF(e,"touchcancel",this._disableDelayedDrag),tF(e,"pointerup",this._disableDelayedDrag),tF(e,"pointercancel",this._disableDelayedDrag),tF(e,"mousemove",this._delayedDragTouchMoveHandler),tF(e,"touchmove",this._delayedDragTouchMoveHandler),tF(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?eF(document,"pointermove",this._onTouchMove):eF(document,t?"touchmove":"mousemove",this._onTouchMove):(eF(EF,"dragend",this),eF(IF,"dragstart",this._onDragStart));try{document.selection?kT((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(rT=!1,IF&&EF){VF("dragStarted",this,{evt:t}),this.nativeDraggable&&eF(document,"dragover",OT);var n=this.options;!e&&iF(EF,n.dragClass,!1),iF(EF,n.ghostClass,!0),CT.active=this,e&&this._appendGhost(),DF({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if($F){this._lastX=$F.clientX,this._lastY=$F.clientY,yT();for(var e=document.elementFromPoint($F.clientX,$F.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint($F.clientX,$F.clientY))!==t;)t=e;if(EF.parentNode[PF]._isOutsideThisEl(e),t)do{if(t[PF]){if(t[PF]._onDragOver({clientX:$F.clientX,clientY:$F.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=rF(t));bT()}},_onTouchMove:function(e){if(YF){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=TF&&cF(TF,!0),l=TF&&a&&a.a,i=TF&&a&&a.d,u=vT&&nT&&gF(nT),c=(o.clientX-YF.clientX+r.x)/(l||1)+(u?u[0]-uT[0]:0)/(l||1),s=(o.clientY-YF.clientY+r.y)/(i||1)+(u?u[1]-uT[1]:0)/(i||1);if(!CT.active&&!rT){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))o.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+a||e.clientX>r.right&&e.clientY>r.top}(e,o,this)&&!m.animated){if(m===EF)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=vF(l)),!1!==xT(IF,a,EF,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(EF,m.nextSibling):a.appendChild(EF),FF=a,E(),D(!0)}else if(m&&function(e,t,n){var r=vF(pF(n.el,0,n.options,!0)),o=xF(n.el,n.options,TF),a=10;return t?e.clientXs+c*a/2:ud-tT)return-eT}else if(u>s+c*(1-o)/2&&ud-c*a/2))return u>s+c/2?1:-1;return 0}(e,l,n,o,O?1:i.swapThreshold,null==i.invertedSwapThreshold?i.swapThreshold:i.invertedSwapThreshold,iT,QF===l),0!==g){var j=hF(EF);do{j-=g,b=FF.children[j]}while(b&&("none"===uF(b,"display")||b===TF))}if(0===g||b===l)return D(!1);QF=l,eT=g;var S=l.nextElementSibling,k=!1,N=xT(IF,a,EF,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),cT=!0,setTimeout(jT,30),V(),k&&!S?a.appendChild(EF):l.parentNode.insertBefore(EF,k?S:l),x&&OF(x,0,P-x.scrollTop),FF=EF.parentNode,void 0===y||iT||(tT=Math.abs(y-vF(l)[C])),E(),D(!0)}if(a.contains(EF))return D(!1)}return!1}function _(i,u){VF(i,f,zE({evt:e,isOwner:s,axis:o?"vertical":"horizontal",revert:r,dragRect:t,targetRect:n,canSort:d,fromSortable:v,target:l,completed:D,onMove:function(n,r){return xT(IF,a,EF,t,n,vF(n),e,r)},changed:E},u))}function V(){_("dragOverAnimationCapture"),f.captureAnimationState(),f!==v&&v.captureAnimationState()}function D(t){return _("dragOverCompleted",{insertion:t}),t&&(s?c._hideClone():c._showClone(f),f!==v&&(iF(EF,UF?UF.options.ghostClass:c.options.ghostClass,!1),iF(EF,i.ghostClass,!0)),UF!==f&&f!==CT.active?UF=f:f===CT.active&&UF&&(UF=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll((function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===EF&&!EF.animated||l===a&&!l.animated)&&(QF=null),i.dragoverBubble||e.rootEl||l===document||(EF.parentNode[PF]._isOutsideThisEl(e.target),!t&&wT(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){zF=hF(EF),WF=hF(EF,i.draggable),DF({sortable:f,name:"change",toEl:a,newIndex:zF,newDraggableIndex:WF,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){tF(document,"mousemove",this._onTouchMove),tF(document,"touchmove",this._onTouchMove),tF(document,"pointermove",this._onTouchMove),tF(document,"dragover",wT),tF(document,"mousemove",wT),tF(document,"touchmove",wT)},_offUpEvents:function(){var e=this.el.ownerDocument;tF(e,"mouseup",this._onDrop),tF(e,"touchend",this._onDrop),tF(e,"pointerup",this._onDrop),tF(e,"pointercancel",this._onDrop),tF(e,"touchcancel",this._onDrop),tF(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;zF=hF(EF),WF=hF(EF,n.draggable),VF("drop",this,{evt:e}),FF=EF&&EF.parentNode,zF=hF(EF),WF=hF(EF,n.draggable),CT.eventCanceled||(rT=!1,iT=!1,lT=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),NT(this.cloneId),NT(this._dragStartId),this.nativeDraggable&&(tF(document,"drop",this),tF(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),XE&&uF(document.body,"user-select",""),uF(EF,"transform",""),e&&(JF&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),TF&&TF.parentNode&&TF.parentNode.removeChild(TF),(IF===FF||UF&&"clone"!==UF.lastPutMode)&&BF&&BF.parentNode&&BF.parentNode.removeChild(BF),EF&&(this.nativeDraggable&&tF(EF,"dragend",this),PT(EF),EF.style["will-change"]="",JF&&!rT&&iF(EF,UF?UF.options.ghostClass:this.options.ghostClass,!1),iF(EF,this.options.chosenClass,!1),DF({sortable:this,name:"unchoose",toEl:FF,newIndex:null,newDraggableIndex:null,originalEvent:e}),IF!==FF?(zF>=0&&(DF({rootEl:FF,name:"add",toEl:FF,fromEl:IF,originalEvent:e}),DF({sortable:this,name:"remove",toEl:FF,originalEvent:e}),DF({rootEl:FF,name:"sort",toEl:FF,fromEl:IF,originalEvent:e}),DF({sortable:this,name:"sort",toEl:FF,originalEvent:e})),UF&&UF.save()):zF!==RF&&zF>=0&&(DF({sortable:this,name:"update",toEl:FF,originalEvent:e}),DF({sortable:this,name:"sort",toEl:FF,originalEvent:e})),CT.active&&(null!=zF&&-1!==zF||(zF=RF,WF=HF),DF({sortable:this,name:"end",toEl:FF,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){VF("nulling",this),IF=EF=FF=TF=MF=BF=AF=LF=YF=$F=JF=zF=WF=RF=HF=QF=eT=UF=KF=CT.dragged=CT.ghost=CT.clone=CT.active=null,sT.forEach((function(e){e.checked=!0})),sT.length=ZF=qF=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":EF&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,o=n.length,a=this.options;r0?(r.splice(n+1,0,r[t]),r.splice(t,1)):(r.splice(n,0,r[t]),r.splice(t+1,1)),r}function KT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function UT(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&Qm("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=UT({animation:150,dataIdAttr:"data-colkey",direction:"vertical",ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,handle:".".concat(v.thCellInner),onEnd:function(t){var r;if(t.newIndex!==t.oldIndex){n&&(YT(t.item),$T(t.from,t.item,t.oldIndex));var o=t.oldIndex,a=t.newIndex,l=t.target,u=n?o:a,c=n?a:o,s=l.children[u],d=l.children[c],v=PE(m.value,s.dataset.colkey),f=PE(m.value,d.dataset.colkey);v&&v.colKey||Qm("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||Qm("Table","colKey is missing in ".concat(JSON.stringify(f))),u=jE(e.columns,v.colKey),c=jE(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:WT(i(e.columns),u,c),e:t,sort:"col"};p.currentData=p.newData,null===(r=e.onDragSort)||void 0===r||r.call(e,p)}}},e.dragSortOptions);t&&new CT(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ra(t,1)[0];C(n,!0)}else null==t||t.forEach((function(e){C(e,!1)}))}};return t.watch([h,m,l,r],(function(r){var o=Ra(r,4),a=o[0];o[1],o[2],function(r,o){var a=r;if(!r||!a.$el||!o.showElement)return;var l=setTimeout((function(){!function(r){var o;if(0!==(null==r||null===(o=r.children)||void 0===o?void 0:o.length)&&(b.value||y.value)){var a=null==r?void 0:r.querySelector("tbody");if(!a)return console.error("tbody does not exist."),null;var l=UT({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!_l(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){YT(r.item),$T(r.from,r.item,r.oldIndex);var a=r.oldIndex,l=r.newIndex;(H(e.firstFullRow)&&e.firstFullRow(t.h)||n.slots.firstFullRow||n.slots["first-full-row"])&&(a-=1,l-=1),c.value&&(a=O(a,c.value),l=O(l,c.value));var s={data:u.value,currentIndex:a,current:u.value[a],targetIndex:l,target:u.value[l],newData:WT(i(e.data),a,l),e:r,sort:"row"};s.currentData=s.newData,null===(o=e.onDragSort)||void 0===o||o.call(e,s)}}},e.dragSortOptions);a&&(y.value?new CT(a,UT({},l)):new CT(a,UT(UT({},l),{},{handle:".".concat(d.handle)})))}}(a.$el),x(a.$el);var r=setTimeout((function(){a.$refs.affixHeaderRef&&x(a.$refs.affixHeaderRef),clearTimeout(r)}));clearTimeout(l)}),60)}(a,o[3])})),{innerPagination:c,isRowDraggable:y,isRowHandlerDraggable:b,isColDraggable:w,setDragSortPrimaryTableRef:function(e){h.value=e},setDragSortColumns:function(e){m.value=e}}}function qT(e){return Ba(e)||a(e)||l(e)||La()}function XT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function GT(e){for(var t=1;t2?r-2:0),u=2;u1?f-1:0),m=1;m0&&void 0!==arguments[0]?arguments[0]:{errors:[],errorMap:{}}).errorMap;e&&Object.assign(a,e)})),o.value=a,null===(r=e.onValidate)||void 0===r||r.call(e,{result:a}),n({result:a})}),r)}))},validateTableCellData:s,validateRowData:function(t){return new Promise((function(n,r){c(t).then((function(t){var r,a=t.errors,l=t.errorMap;o.value=l;var i="parent";null===(r=e.onRowValidate)||void 0===r||r.call(e,{trigger:i,result:a}),n({trigger:i,result:a})}),r)}))},onRuleChange:function(t){if(e.editableRowKeys){var n=St(t.row,e.rowKey||"id"),o=r.get(n);if(o){var a=o.findIndex((function(e){return e.col.colKey===t.col.colKey}));-1===a?o.push(t):o[a]=t,r.set(n,o)}else r.set(n,[t])}},clearValidateData:function(){o.value={}},onUpdateEditedCell:function(e,t,n){i.value[e]||(i.value[e]=Mr(t)),Object.entries(n).forEach((function(t){var n=Ra(t,2),r=n[0],o=n[1];Va(i.value[e],r,o)}))},getEditRowData:function(t){var n,r=t.row,o=t.col,a=St(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=eI({},l);return Va(u,o.colKey,St(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=KD(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function nI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rI(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=rI({},r[i]);if(!((null===(l=m.children)||void 0===l?void 0:l.length)||(null===(c=O.value)||void 0===c?void 0:c.includes(m.colKey)))&&(e.columnController||e.displayColumns||e.defaultDisplayColumns)&&!o)return 1;m=M(m);var g,w=e.sort;m.sorter&&e.showSortColumnBgColor&&((w instanceof Array?w:[w]).find((function(e){return e&&e.sortBy===m.colKey&&void 0!==e.descending}))&&(m.className=m.className instanceof Array?m.className.concat(h.sortColumn):[m.className,h.sortColumn]));if(m.sorter||m.filter){var C=ND(n.slots,m,i),x=m.ellipsisTitle;m.title=function(e,t){var n,r=m.sorter?V(t):null,o=m.filter?W(t):null,a=null===(n=u.value)||void 0===n?void 0:n.tableContentRef;return ee([C,r,o],t.col,t.colIndex,x,a,{classPrefix:v,ellipsisOverlayClassName:"medium"!==b.value?y[b.value]:""})},m.ellipsisTitle=!1}if(null!==(s=m.edit)&&void 0!==s&&s.component){var P=m.cell;m.cell=function(r,o){var a=rI(rI({},o),{},{row:ve(o),oldCell:P,rowKey:e.rowKey||"id",tableBaseClass:p,cellEmptyContent:e.cellEmptyContent,onChange:we,onValidate:e.onRowValidate,onRuleChange:ce,onEditableChange:fe});if(e.editableRowKeys){var l,i=St(o.row,e.rowKey||"id");a.editable=ae.value[i]||!1;var u=[i,o.col.colKey].join("__"),c=null===(l=oe.value)||void 0===l?void 0:l[u];c&&(a.errors=c)}return e.editableCellState&&(a.readonly=!e.editableCellState(o)),t.createVNode(JT,t.mergeProps(a,{onUpdateEditedCell:de}),n.slots)}}null!==(d=m.children)&&void 0!==d&&d.length&&(m.children=Oe(m.children,o||(null===(g=O.value)||void 0===g?void 0:g.includes(m.colKey))));(!m.children||null!==(f=m.children)&&void 0!==f&&f.length)&&a.push(m)},i=0,c=r.length;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=St(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var vI=function(){return gg((function e(){mg(this,e),s(this,"treeDataMap",new Map),s(this,"expandAllRowIndex",void 0),this.treeDataMap=new Map}),[{key:"initialTreeStore",value:function(e,t,n){var r;null===(r=this.treeDataMap)||void 0===r||r.clear(),this.initialTreeDataMap(this.treeDataMap,e,t.find((function(e){return"row-select"===e.colKey})),n)}},{key:"getAllUniqueKeys",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r=0){var o=(r.expandChildrenLength||0)+1;if(t.splice(r.rowIndex,o),r.parent){var a=St(r.parent.row,n.childrenKey),l=a.findIndex((function(t){return St(t,n.rowKey)===e}));a.splice(l,1),fI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),gI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else Gm("EnhancedTable","Can not remove this node, which is not appeared.");return t}},{key:"removeChildren",value:function(e,t,n){var r=this.treeDataMap.get(e);if(r&&r.rowIndex>=0){var o=r.expandChildrenLength||0;o&&t.splice(r.rowIndex+1,o),r.parent&&fI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Va(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&gI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else Gm("EnhancedTable","Can not remove this node's children, which is not appeared.");return t}},{key:"appendTo",value:function(e,t,n,r){var o=this.treeDataMap.get(e);if(!this.validateDataExist(o,e))return n;for(var a=St(o.row,r.childrenKey),l=o.expanded||!(null!=a&&a.length),u=t instanceof Array?t:[t],c=[],s=-1,d=0,v=u.length;do){var p=e.slice(d,r),m=v.concat(f,p);e.splice(o,m.length),e.splice.apply(e,[o,0].concat(i(m))),gI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:o,maxRowIndex:s})}else{var h=e.slice(s,o).concat(f,v);e.splice(r,h.length),e.splice.apply(e,[r,0].concat(i(h))),gI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:r,maxRowIndex:d})}if(u.parent){for(var g=u.parent.row[n.childrenKey],y=0,b=-1,w=-1,O=0,C=g.length;O=2));O++);w2&&void 0!==arguments[2]?arguments[2]:null,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:"data",o=[];return e.forEach((function(e){var a=St(e,t.rowKey),l=n.treeDataMap.get(a);l.expanded&&("unique"===r?o.push(a):"data"===r?o.push(e):o.push(l))})),o}},{key:"initialTreeDataMap",value:function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=0,i=t.length;l0&&void 0!==arguments[0]?arguments[0]:"expand-all",t=(arguments.length>1?arguments[1]:void 0)||u.value;o.value=r.value.expandAll(t,a.value);var n=o.value.map((function(e){return dI(e,a.value.rowKey)}));m(n,{row:void 0,rowState:void 0,rowIndex:void 0,type:"expand",trigger:e}),h.value.type="expand-all"}function y(e,t){var n=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=new Map,a=new Map,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:[]),o=n.addedList,l=n.removedList;return r.value.expandTreeNode(o,e,a.value),r.value.foldTreeNode(l,e,a.value),i(e)}t.watch([p,u],(function(e,t){var n=Ra(e,1)[0],l=Ra(t,1)[0];if(r.value.treeDataMap.size&&u.value.length){if("user-reaction-change"===h.value.type){var c=h.value||{},s=c.row,d=c.rowIndex;o.value=i(r.value.toggleExpandData({row:s,rowIndex:d},i(o.value),a.value))}else"props-change"===h.value.type&&y(o.value,n,l);h.value.type="props-change"}}));return{tExpandedTreeNode:p,isDefaultExpandAllExecute:d,isDefaultExpandedTreeNodesExecute:v,expandAll:g,foldAll:function(){o.value=i(r.value.foldAll(o.value,a.value)),m([],{row:void 0,rowState:void 0,rowIndex:void 0,type:"fold",trigger:"fold-all"})},onExpandFoldIconClick:function(t,n){var o,l=t.row,u=t.rowIndex;h.value=bI({type:"user-reaction-change"},t);var c=dI(l,a.value.rowKey),s=r.value.treeDataMap.get(c),d=i(p.value);if(s.expanded){for(var v=r.value.getExpandedChildrenKeys([l],a.value),f=0,g=d.length;f0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;h.value=e?i(p.value.appendTo(e,t,h.value,b.value)):p.value.appendToRoot(t,h.value,b.value)},insertAfter:function(e,t){h.value=i(p.value.insertAfter(e,t,h.value,b.value))},insertBefore:function(e,t){h.value=i(p.value.insertBefore(e,t,h.value,b.value))},formatTreeColumn:function(r){if(!e.tree||r.colKey!==m.value.colKey)return r;var o=CI({},m.value);return o.cell=function(o,a){var l,i,d=XD(CI(CI({},a),{},{col:CI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(St(a.row,b.value.rowKey)),w=function(t){var n,r;if(void 0!==t){var o=void 0===(null===(n=e.tree)||void 0===n?void 0:n.indent)?24:null===(r=e.tree)||void 0===r?void 0:r.indent;return o?{paddingLeft:"".concat(t*o||1,"px")}:{}}}(null==h?void 0:h.level),O=s({},g.inlineCol,!!r.ellipsis),C=St(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(St(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=CI(CI({},a),{},{type:"fold"}),i=u(c.value.treeExpandAndFoldIcon,t.h,l)||t.createVNode(f,null,null),y("treeExpandAndFoldIcon",{defaultNode:i,params:l})):function(e){var n=CI(CI({},e),{},{type:"expand"}),r=u(c.value.treeExpandAndFoldIcon,t.h,n)||t.createVNode(v,null,null);return y("treeExpandAndFoldIcon",{defaultNode:r,params:n})}(a);return t.createVNode("div",{class:[g.col,O],style:w},[!(!C.length&&!0!==C)&&t.createVNode("span",{class:g.icon,onClick:function(e){k(a,"expand-fold-icon"),e.stopPropagation()}},[P]),d])}return t.createVNode("div",{style:w,class:[O,g.leafNode]},[t.createVNode("span",{class:g.icon},null),d])},!0===o.ellipsis&&(o.ellipsis=function(e,t){return XD(CI(CI({},t),{},{col:CI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=CI({},t);void 0!==t.row.VIRTUAL_SCROLL_INDEX&&(a.rowIndex=t.row.VIRTUAL_SCROLL_INDEX),h.value=i(p.value.toggleExpandData(a,h.value,b.value));var l=St(t.row,b.value.rowKey),u=null===(r=p.value)||void 0===r||null===(r=r.treeDataMap)||void 0===r?void 0:r.get(l);null===(o=e.onTreeExpandChange)||void 0===o||o.call(e,{row:t.row,rowIndex:t.rowIndex,rowState:u,trigger:n})},expandAll:P,foldAll:j,getTreeNode:function(){return p.value.getTreeNode(h.value,b.value)},resetData:_,getTreeExpandedRow:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data";return p.value.getTreeExpandedRow(h.value,b.value,e)},onExpandFoldIconClick:k}}function PI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(DI(DI({store:a.value,dataSource:l.value},s),{},{primaryTableRef:r,validateRowData:function(e){return r.value.validateRowData(e)},validateTableData:function(){return r.value.validateTableData()},clearValidateData:function(){r.value.clearValidateData()},refreshTable:function(){r.value.refreshTable()},scrollToElement:function(e){var t=e.index;if(!t&&0!==t){if(!e.key)return void Qm("Table","scrollToElement: one of `index` or `key` must exist.");var n=v.value.get(e.key);((t=w(n,e.key))<0||void 0===t)&&Qm("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(DI(DI({},e),{},{index:t}))}})),function(){var o,a=DI(DI({},t.getCurrentInstance().vnode.props),{},{rowKey:e.rowKey||"id",data:l.value,columns:g.value,indeterminateSelectedRowKeys:p.value,disableDataPage:Boolean(e.tree&&Object.keys(e.tree).length)||e.disableDataPage,onSelectChange:m,onDragSort:y,rowClassName:function(t){var n=St(t.row,e.rowKey||"id"),r=v.value.get(n);return r?["".concat(d.value,"-table-tr--level-").concat(r.level),e.rowClassName]:[e.rowClassName]}});return null!==(o=e.tree)&&void 0!==o&&o.expandTreeNodeOnClick&&(a.onRowClick=b),t.createVNode(aI,t.mergeProps(a,{ref:r}),n.slots)}}}),FI=fi(pE),TI=fi(aI),II=fi(EI),MI=fi(Mr(aI),"TTable"),AI={labelAlign:{type:String,default:"left",validator:function(e){return!e||["left","right","alternate","top","bottom"].includes(e)}},layout:{type:String,default:"vertical",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},mode:{type:String,default:"alternate",validator:function(e){return!e||["alternate","same"].includes(e)}},reverse:Boolean,theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}}},BI={vertical:["left","right"],horizontal:["top","bottom"]},LI=Symbol("timeLineProvide"),RI=t.computed((function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}})),zI={content:{type:[String,Function]},dot:{type:Function},dotColor:{type:String,default:"primary"},label:{type:[String,Function]},labelAlign:{type:String,validator:function(e){return!e||["left","right","top","bottom"].includes(e)}},loading:Boolean,onClick:Function};function HI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function WI(e){for(var t=1;t=0?t.splice(n,1):i.value?t=[e]:t.push(e),v(t)})),t.provide("collapseProps",t.toRefs(e)),t.provide("getUniqId",p),t.provide("renderParentTNode",o),function(){var e=o("default");return t.createVNode("div",{class:f.value},[e])}}}),GI={content:{type:[String,Function]},default:{type:[String,Function]},destroyOnCollapse:Boolean,disabled:{type:Boolean,default:void 0},expandIcon:{type:[Boolean,Function],default:void 0},header:{type:[String,Function]},headerRightContent:{type:[String,Function]},value:{type:[String,Number]}};var JI=t.defineComponent({name:"TCollapsePanel",props:GI,setup:function(e,n){var r=n.slots,o=Ql(),a=ti(),l=Ga("collapse-panel"),i=Ga("is-disabled"),u=Ga("is-clickable"),c=Ga("slide-down"),d=t.toRefs(e),v=d.value,f=d.disabled,p=d.destroyOnCollapse,m=t.inject("collapseValue"),h=t.inject("updateCollapseValue"),g=t.inject("getUniqId",(function(){}),!1),y=t.inject("collapseProps"),b=y.defaultExpandAll,w=y.disabled,O=y.expandIconPlacement,C=y.expandOnRowClick,x=t.inject("renderParentTNode"),P=v.value||g();b.value&&h(P);var j={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},S=j.beforeEnter,k=j.enter,N=j.afterEnter,_=j.beforeLeave,V=j.leave,D=j.afterLeave,E=t.ref(),F=t.computed((function(){return f.value||w.value})),T=t.computed((function(){return m.value instanceof Array?m.value.includes(P):m.value===P})),I=t.computed((function(){return[l.value,s({},i.value,F.value)]})),M=t.computed((function(){return r.expandIcon||e.expandIcon})),A=function(e){(C.value||e.currentTarget===E.value)&&!F.value&&h(P),e.stopPropagation()},B=function(e){e.stopPropagation()},L=function(){var e=void 0===M.value?x:o;return t.createVNode("div",{ref:E,class:"".concat(l.value,"__icon ").concat(l.value,"__icon--").concat(O.value," ").concat(T.value?"".concat(l.value,"__icon--active"):""),onClick:A},[e("expandIcon",t.createVNode(Kg,{overlayClassName:"".concat(l.value,"__icon--default")},null))])},R=function(){return p.value?T.value?t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]):null:t.withDirectives(t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]),[[t.vShow,T.value]])};return function(){var e,n,r,a;return t.createVNode("div",{class:I.value},[t.createVNode("div",{class:"".concat(l.value,"__wrapper")},[(a=["".concat(l.value,"__header"),s({},u.value,C.value&&!F.value)],t.createVNode("div",{class:a,onClick:A},["left"===O.value&&L(),o("header"),t.createVNode("div",{class:"".concat(l.value,"__header--blank")},null),(r=o("headerRightContent"),r?t.createVNode("div",{onClick:B},[r]):null),"right"===O.value&&L()])),t.createVNode(t.Transition,{name:c.value,onBeforeEnter:S,onEnter:k,onAfterEnter:N,onBeforeLeave:_,onLeave:V,onAfterLeave:D},(n=e=R(),"function"==typeof n||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?e:{default:function(){return[e]}}))])])}}}),QI=fi(XI),eM=fi(JI),tM={alpha:{type:Number,default:1},content:{type:[String,Function]},default:{type:[String,Function]},height:{type:Number},isRepeat:{type:Boolean,default:!0},lineSpace:{type:Number,default:16},movable:Boolean,moveInterval:{type:Number,default:3e3},offset:{type:Array},removable:{type:Boolean,default:!0},rotate:{type:Number,default:-22},watermarkContent:{type:[Object,Array]},width:{type:Number},x:{type:Number},y:{type:Number},zIndex:{type:Number}};function nM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rM(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function aM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=l)return n;if(a-r=m.value?"":t2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o,a=s;s=t.createVNode(n,{style:r},"function"==typeof(o=s)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?s:{default:function(){return[a]}})}}return d(l,"strong"),d(o,"u"),d(a,"del"),d(r,"code"),d(!1!==u,"mark",u?{color:u}:{}),d(i,"kbd"),d(c,"i"),s},s=t.computed((function(){var t=e.theme,n=e.disabled,r=o.value,a=[r];return n?a.push("".concat(r,"--disabled")):t&&["primary","secondary","success","warning","error"].includes(t)&&a.push("".concat(r,"--").concat(t)),a})),d=t.computed((function(){var t,n=e.copyable;return l.value?a.value.copiedText:"object"===u(n)?null===(t=n.tooltipProps)||void 0===t?void 0:t.content:null})),v=t.computed((function(){return e.content||(null==r?void 0:r.default())})),f=function(){var n=e.copyable;if(n){var r=l.value?function(){return t.createVNode(Du,null,null)}:function(){return t.createVNode(kc,null,null)},o={theme:"default"},a=function(){};return"object"===u(n)&&(n.suffix&&!l.value&&(r=n.suffix),n.tooltipProps&&(o=n.tooltipProps),"function"==typeof n.onCopy&&(a=n.onCopy)),t.createVNode(Lh,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(Pi,{icon:r,shape:"square",theme:"primary",variant:"text",onClick:function(e){return p(e,a)}},null)]}})}},p=function(e,t){e.preventDefault(),e.stopPropagation(),l.value=!0,setTimeout((function(){l.value=!1}),1500),vM("string"==typeof v.value?v.value:Array.isArray(v.value)?v.value.map((function(e){return e.children})).join(""):void 0),null==t||t()};return function(){var n=i("default","content");return e.ellipsis?t.createVNode(hM,t.mergeProps(e,{class:s.value}),{default:function(){return[c(e,n),e.copyable?f():null]}}):t.createVNode("span",{class:s.value},[c(e,n),e.copyable?f():null])}}});var yM=t.defineComponent({name:"TTypography",setup:function(){var e=Ql();return function(){var n,r;return t.createVNode(gM,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),bM={content:{type:[String,Function]},default:{type:[String,Function]},ellipsis:{type:[Boolean,Object],default:!1},level:{type:String,default:"h1",validator:function(e){return!e||["h1","h2","h3","h4","h5","h6"].includes(e)}}};var wM=t.defineComponent({name:"TTypographyTitle",props:bM,setup:function(e){var n=Ga("typography"),r=ti();return function(){var o,a,l=e.level,u=r("default","content");return e.ellipsis?t.createVNode(hM,t.mergeProps(e,{class:n.value}),"function"==typeof(a=o=t.h.apply(void 0,[l].concat(i(u))))||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}}):t.createVNode(t.Fragment,null,[t.h.apply(void 0,[l,{class:n.value}].concat(i(u)))])}}});function OM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var CM=t.defineComponent({name:"TTypographyParagraph",components:{TTooltip:Lh},props:function(e){for(var t=1;t0&&e.maxLinedocument.documentElement.clientWidth?$_():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(IM+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n ")}}(),a.value&&!document.head.contains(a.value)&&document.head.appendChild(a.value))};t.watch((function(){return e.visible}),(function(t){if(!Sl){var n,a;if(t)I(),null===(n=e.onBeforeOpen)||void 0===n||n.call(e);else F(),null===(a=e.onBeforeClose)||void 0===a||a.call(e);!function(t){if(t&&(b.value=!0),!e.destroyOnClose)return r.value&&t?(r.value=!1,void setTimeout((function(){return o.value=!0}))):void setTimeout((function(){return o.value=t}));t?(r.value=!1,setTimeout((function(){return o.value=!0}))):(o.value=!1,setTimeout((function(){return r.value=!0}),200))}(t)}}),{immediate:!0});var M=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,{e:t}),B({trigger:"close-btn",e:t})},A=function(t){var n,r;null===(n=e.onOverlayClick)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnOverlayClick)&&void 0!==r?r:i.value.closeOnOverlayClick)&&B({trigger:"overlay",e:t})},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onUpdated((function(){if(_.value&&"push"===e.mode){var t={left:{name:"margin-left",value:S.value},right:{name:"margin-right",value:"-".concat(S.value)},top:{name:"margin-top",value:S.value},bottom:{name:"margin-bottom",value:"-".concat(S.value)}}[e.placement];o.value?_.value.style.setProperty(t.name,t.value):_.value.style.removeProperty(t.name)}})),t.onMounted((function(){I(),window.addEventListener("keydown",E)})),t.onBeforeUnmount((function(){F(),window.removeEventListener("keydown",E)}));var L=t.computed((function(){return b.value?o.value||!r.value:!e.lazy}));return function(){if(L.value){var r,o,a=d("body","default"),l=c("header"),s=(r=C({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),o=x({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:D.value},["right"===e.placement?r:null,o,"right"!==e.placement?r:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!w.value,to:w.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:P,class:j.value,style:{zIndex:e.zIndex},onKeydown:E,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:A},null),t.createVNode("div",{class:N.value,style:TM(TM({},k.value),g.value)},[l&&t.createVNode("div",{class:"".concat(v.value,"__header")},[l]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:M},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[a]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",s)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}});function AM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function BM(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{currentStepInfo:N.value},n=new Function("return "+t.h.toString())();return Object.assign({},n,e)},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body,n=Hl(),r=n.scrollTop,o=n.scrollLeft,a=e.getBoundingClientRect(),l=a.top,i=a.left,u=t.getBoundingClientRect(),c=u.top,s=u.left,d=Rl(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:zl(e)?{top:l,left:i}:{top:l+r,left:i+o}}(C.value),r=n.top,o=n.left,a=C.value.getBoundingClientRect(),l=a.width,i=a.height,u=D("highlightPadding");if(_.value)l+=2*u,i+=2*u,r-=u,o-=u;else{var c=Hl();r+=c.scrollTop,o+=c.scrollLeft}var s={top:"".concat(r,"px"),left:"".concat(o,"px")};if(F.value)if(t){var d=w.value.getBoundingClientRect(),v=d.width,f=d.height;Object.assign(s,{width:"".concat(v,"px"),height:"".concat(f,"px")})}else Object.assign(s,{width:"auto",height:"auto"});else Object.assign(s,{width:"".concat(l,"px"),height:"".concat(i,"px")});Qa(e,s)},A=function(){t.nextTick((function(){var e;C.value=function(e){if(!e)return document.body;var t,n=null;if(Do(e))n=document.querySelector(e);else{if(!H(e))throw new Error("elm should be string or function");n=e()}if(n)return n;if("test"!==(null===(t=process)||void 0===t||null===(t=t.env)||void 0===t?void 0:t.NODE_ENV))throw new Error("There is no element with given.")}(N.value.element),C.value&&(WM(C.value),M(w.value),M(O.value,!0),KM(C.value),null===(e=j.value)||void 0===e||e.update())}))},B=function(){var e;null===(e=O.value)||void 0===e||e.parentNode.removeChild(O.value)},L=function(){var e,t;null===(e=P.value)||void 0===e||e.parentNode.removeChild(P.value),null===(t=x.value)||void 0===t||t.parentNode.removeChild(x.value)},R=function(){_.value?(L(),A()):(B(),t.nextTick((function(){C.value=P.value,WM(C.value),M(w.value),KM(C.value)}))),T.value=!0},z=function(t){var n,r=k.value;S.value=!1,y(-1,{e:t,total:r}),null===(n=e.onSkip)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},W=function(t){var n,r=k.value;y(g.value-1,{e:t,total:r}),null===(n=e.onPrevStepClick)||void 0===n||n.call(e,{e:t,prev:g.value-1,current:g.value,total:r})},K=function(t){var n,r=k.value;y(g.value+1,{e:t,total:r}),null===(n=e.onNextStepClick)||void 0===n||n.call(e,{e:t,next:g.value+1,current:g.value,total:r})},U=function(t){var n,r=k.value;S.value=!1,y(-1,{e:t,total:r}),null===(n=e.onFinish)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},Y=function(){g.value>=0&&g.value=0&&e-1}}},setup:function(e,n){var r=n.expose,o=Ga("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed((function(){return aA({zIndex:6e3},XM[a])})),c=function(e){l.value.splice(e,1)},s=function(e){if(e)return isNaN(Number(e))?e:"".concat(e,"px")},d=function(e){var t={marginBottom:qM};return e.offset&&(t.position="relative",t.left=s(e.offset[0]),t.top=s(e.offset[1])),e.zIndex&&(t["z-index"]=e.zIndex),t},v=function(e){e&&i.value.push(e)};return r({add:function(e){return l.value.push(e),l.value.length-1},remove:c,removeAll:function(){l.value=[]},list:l,notificationList:i}),function(){if(l.value.length)return t.createVNode("div",{class:"".concat(o.value,"__show"),style:u.value},[l.value.map((function(e,n){return t.createVNode(rA,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return aA(aA({},t),{},{onCloseBtnClick:function(n){return t.onCloseBtnClick&&t.onCloseBtnClick(n),c(e)},onDurationEnd:function(){return t.onDurationEnd&&t.onDurationEnd(),c(e)}})}(n,e)),null)}))])}}});function iA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uA(e){for(var t=1;t=1024&&r<1048576?"".concat((r/1024).toFixed(1)," KB"):r>=1048576?"".concat((r/1048576).toFixed(1)," MB"):"")]),t.createVNode("small",{class:"".concat(v.small),key:"time"},[c.value.file.fileOperationDateText,"\uff1a",o.uploadTime||"-"])];return t.createVNode("div",{class:"".concat(f,"__dragger-progress")},["image"===e.theme&&O(),t.createVNode("div",{class:"".concat(f,"__dragger-progress-info")},[d("fileListDisplay",{params:{files:e.displayFiles}})||s,t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[["progress","waiting"].includes(o.status)&&!l.value&&t.createVNode(Pi,{theme:"primary",variant:"text",class:"".concat(f,"__dragger-progress-cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t,file:e.toUploadFiles[0]||e.files[0]})}},{default:function(){return[null===(n=c.value)||void 0===n?void 0:n.cancelUploadText]}}),!e.autoUpload&&"waiting"===o.status&&t.createVNode(Pi,{theme:"primary",variant:"text",disabled:l.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)},class:"".concat(f,"__dragger-upload-btn")},{default:function(){return[c.value.triggerUploadText.normal]}})]),["fail","success"].includes(null==o?void 0:o.status)&&!l.value&&t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[t.createVNode(Pi,{theme:"primary",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-progress-cancel"),onClick:e.triggerUpload},{default:function(){return[c.value.triggerUploadText.reupload]}}),t.createVNode(Pi,{theme:"danger",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-delete-btn"),onClick:function(t){return e.onRemove({e:t,index:0,file:o})}},{default:function(){return[c.value.triggerUploadText.delete]}})])])])}()};return function(){var n;return t.createVNode("div",{ref:h,class:g.value,onDrop:p.handleDrop,onDragenter:p.handleDragenter,onDragover:p.handleDragover,onDragleave:p.handleDragleave},[(null===(n=e.trigger)||void 0===n?void 0:n.call(e,t.h,{files:a.value,dragActive:m.value}))||x()])}}});function kA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function NA(e){for(var t=1;t=uh.KB&&c=uh.MB&&c=uh.GB?"".concat((c/uh.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[I(n)]),l.value?null:s])}))])])},L=function(){var n=p("fileListDisplay",{params:{cancelUpload:e.cancelUpload,uploadFiles:e.uploadFiles,onRemove:e.onRemove,onPreview:e.onPreview,toUploadFiles:e.toUploadFiles,sizeOverLimitMessage:e.sizeOverLimitMessage,locale:e.locale,files:e.displayFiles,dragEvents:D.value}});return n||e.fileListDisplay?n:t.createVNode("ul",{class:"".concat(v.value,"__card clearfix")},[e.displayFiles.map((function(n,r){return function(n,r){var o,a=F(),d=a.iconMap,f=a.textMap,p=e.abridgeName&&n.name?sh.apply(void 0,[n.name].concat(i(e.abridgeName))):n.name;return t.createVNode("li",{class:"".concat(v.value,"__card-item"),key:n.name+r+n.percent+n.status||"0"},[t.createVNode("div",{class:["".concat(v.value,"__card-content"),s({},"".concat(c.value,"-is-bordered"),"waiting"!==n.status)]},["progress"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-progress")},[d[n.status],t.createVNode("p",null,[f[n.status],e.showUploadProgress&&" ".concat(n.percent,"%")])]),"fail"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-fail")},[d[n.status],t.createVNode("p",null,[(null===(o=n.response)||void 0===o?void 0:o.error)||f[n.status]])]),(["waiting","success"].includes(n.status)||!n.status&&n.url)&&t.createVNode(WN,{class:"".concat(v.value,"__card-image"),src:n.url||n.raw,error:"",loading:"",fit:"contain"},null),t.createVNode("div",{class:"".concat(v.value,"__card-mask")},[(n.url||n.raw)&&!["progress","fail"].includes(n.status)&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item")},[t.createVNode(h,{onClick:function(t){var o,a=t.e;_.value=r,N.value=u.value,null===(o=e.onPreview)||void 0===o||o.call(e,{file:n,index:r,e:a})}},null),t.createVNode("span",{class:"".concat(v.value,"__card-mask-item-divider")},null)]),!l.value&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item ").concat(v.value,"__delete"),onClick:function(t){return e.onRemove({e:t,index:r,file:n})}},[t.createVNode(g,null,null)])])]),e.showImageFileName&&t.createVNode("p",{class:["".concat(v.value,"__card-name"),"".concat(v.value,"__flow-status")]},[["success","waiting"].includes(n.status)&&d[n.status],p])])}(n,r)}))])};return function(){var n,o,i,c="".concat(v.value,"__flow-card-area"),s=l.value||!a.value,d=r.uploadButton||H(e.uploadButton),m=Boolean(l.value||a.value||!u.value.length),h=r.cancelUploadButton||H(e.cancelUploadButton);return t.createVNode("div",{class:"".concat(v.value,"__flow ").concat(v.value,"__flow-").concat(e.theme)},[t.createVNode("div",{class:"".concat(v.value,"__flow-op")},[null===(n=r.default)||void 0===n?void 0:n.call(r),e.placeholder&&t.createVNode("small",{class:"".concat(v.value,"__flow-placeholder ").concat(v.value,"__placeholder")},[e.placeholder])]),"image-flow"===e.theme&&t.createVNode("div",t.mergeProps({class:c},D.value),[u.value.length?L():T()]),"file-flow"===e.theme&&(u.value.length?B():t.createVNode("div",t.mergeProps({class:c},D.value),[T()])),!e.autoUpload&&(null!==e.uploadButton||null!==e.cancelUploadButton)&&t.createVNode("div",{class:"".concat(v.value,"__flow-bottom")},[null!==e.cancelUploadButton&&(d?p("cancelUploadButton",{params:{disabled:s,cancelUploadText:null===(o=f.value)||void 0===o?void 0:o.cancelUploadText,cancelUpload:e.cancelUpload}}):t.createVNode(Pi,t.mergeProps({theme:"default",disabled:s,content:null===(i=f.value)||void 0===i?void 0:i.cancelUploadText,class:"".concat(v.value,"__cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t})}},E(e.cancelUploadButton)?e.cancelUploadButton:{}),null)),null!==e.uploadButton&&(h?p("uploadButton",{params:{disabled:m,uploading:a.value,uploadText:V.value,uploadFiles:e.uploadFiles}}):t.createVNode(Pi,t.mergeProps({disabled:m,theme:"primary",loading:a.value,class:"".concat(v.value,"__continue"),content:V.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)}},E(e.uploadButton)?e.uploadButton:{}),null))]),t.createVNode(gV,t.mergeProps({images:N.value.map((function(e){return e.url||e.raw})),visible:!!N.value.length,onClose:function(){N.value=[]},index:_.value,onIndexChange:function(e){return _.value=e}},e.imageViewerProps),null)])}}});function FA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function TA(e){for(var t=1;tt*uh[n]}(e.size,o.size,o.unit);a&&(r=o)}t(r)})),a=[o,void 0];if(H(r)){var l=r(e),i=l instanceof Promise?l:new Promise((function(e){return e(l)}));a[1]=i}return new Promise((function(e){Promise.all(a).then((function(t){e(t)}))}))}function zA(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest,a=e.formatResponse,l=r;return H(a)&&(l=a(r,{file:n[0],currentFiles:n})),n.forEach((function(e){e.status="fail",e.response=l})),{response:l,event:t,files:n,XMLHttpRequest:o}}function HA(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise((function(o){if(!t&&!r)return Qm("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return Gm("Upload","No files need to be uploaded"),void o({});if(n.forEach((function(e){e.status="progress"})),r)r(e.multiple?n:n[0]).then((function(t){if(function(e){return e?e.status?["success","fail"].includes(e.status)?("success"!==e.status||e.response&&(e.response.url||e.response.files)||Gm("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(Qm("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(Qm("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(Qm("Upload","`requestMethodResponse` is required."),!1)}(t)){var r=t.response||{};H(e.formatResponse)&&(r=e.formatResponse(r,{file:n[0],currentFiles:n})),"fail"===t.status&&(r.error=t.error||r.error);var a=[];"success"===t.status&&r.files?a=r.files.map((function(e){return LA(LA(LA({},n.find((function(t){return e.name&&t.name===e.name||e.raw&&t.raw===e.raw}))),e),{},{status:t.status,response:r})})):(n.forEach((function(e){var n;e.status=t.status,e.response=r,e.url=r.url,e.percent="success"===t.status?100:0,e.uploadTime=(null===(n=r)||void 0===n?void 0:n.uploadTime)||ch()})),a=n);var l,i={response:r,file:a[0],files:a};if("success"===t.status)null===(l=e.onResponseSuccess)||void 0===l||l.call(e,i);else if("fail"===t.status){var u;null===(u=e.onResponseError)||void 0===u||u.call(e,i)}o({status:t.status,data:i})}else o({})}));else{var a,l=function(e){var t,n,r,o=e.method,a=void 0===o?"POST":o,l=e.action,c=e.withCredentials,s=void 0!==c&&c,d=e.headers,v=void 0===d?{}:d,f=e.data,p=void 0===f?{}:f,m=e.file,h=e.files,g=void 0===h?[]:h,y=e.name,b=void 0===y?"file":y,w=e.useMockProgress,O=void 0===w||w,C=e.mockProgressDuration,x=void 0===C?300:C,P=e.formatRequest,j=e.onError,S=e.onProgress,k=e.onSuccess,N=g||[],_=0,V=new XMLHttpRequest;if(s&&(V.withCredentials=!0),O&&"progress"===(null===(t=g[0])||void 0===t?void 0:t.status))var D=setTimeout((function(){n=setInterval((function(){_+10<100?(_=Math.max(_+10,_),g[0]&&_!==g[0].percent&&(g[0].percent=_,S({percent:_,file:m||N[0],files:N.map((function(e){return AA(AA({},e),{},{percent:_})})),type:"mock",XMLHttpRequest:V}))):clearInterval(n)}),x),clearTimeout(D)}),x);var E={};if(p){var F=H(p)?p(N):p;Object.assign(E,F)}N.forEach((function(e,t){var n=N.length>1?"".concat(b,"[").concat(t,"]"):b;E[n]=e.raw})),1===N.length?E[b]=N[0].raw:E[b]=N.map((function(e){return e.raw})),E.length=N.length,P&&(E=P(E));var T=new FormData;return Object.keys(E).forEach((function(e){T.append(e,E[e])})),V.open(a,l,!0),Object.keys(v).forEach((function(e){V.setRequestHeader(e,v[e])})),V.onerror=function(e){j({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){j({event:e,file:m,files:N,XMLHttpRequest:V})},V.upload&&(V.upload.onprogress=function(e){var t,n=0;if(e.total>0&&(n=Math.round(e.loaded/e.total*100)),(_=Math.max(n,_))!==n&&(null===(t=N[0])||void 0===t?void 0:t.percent)!==_){var r=N.map((function(e){return AA(AA({},e),{},{percent:_})}));S({event:e,percent:_,file:m||r[0],files:r,type:"real",XMLHttpRequest:V})}}),V.onload=function(e){var t={};if(t.XMLHttpRequest=V,V.status<200||V.status>=300)return j({event:e,file:m,files:N,response:t,XMLHttpRequest:V});var o=V.responseText||V.response;try{t=JSON.parse(o)}catch(e){t=o,Qm("Upload","response does not a valid json")}clearInterval(n),clearTimeout(r),N.forEach((function(e){var n;e.percent=100,e.status="success",e.uploadTime=(null===(n=t)||void 0===n?void 0:n.uploadTime)||ch()})),"object"===u(t)&&(t.XMLHttpRequest=V),k({event:e,file:m||N[0],files:i(N),XMLHttpRequest:V,response:t})},V.send(T),V.upload.requestParams=E,V.upload.requestHeaders=v,V}({action:e.action,files:e.toUploadFiles,useMockProgress:e.useMockProgress,mockProgressDuration:e.mockProgressDuration,onError:function(t){var n,r=zA(LA(LA({},t),{},{formatResponse:e.formatResponse}));null===(n=e.onResponseError)||void 0===n||n.call(e,r),o({status:"fail",data:r})},onProgress:e.onResponseProgress,onSuccess:function(t){var n=e.formatResponse,r=t.response;if(H(n)&&(r=n(t.response,{file:t.file,currentFiles:t.files})),r.error){var a,l=zA(LA(LA({},t),{},{response:r}));null===(a=e.onResponseError)||void 0===a||a.call(e,l),o({status:"fail",data:l})}else{var i;t.file.response=r,t.files[0].response=r;var u=function(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest;(null==n?void 0:n.length)<=0&&Qm("Upload","Empty File in Success Callback"),n.forEach((function(e){var t;e.percent=100,e.status="success",null===(t=e.response)||void 0===t||delete t.error}));var a=r;return n[0].url=a.url||n[0].url,{response:a,event:t,files:n,XMLHttpRequest:o}}(LA(LA({},t),{},{response:r}));null===(i=e.onResponseSuccess)||void 0===i||i.call(e,u),o({status:"success",data:u})}},formatRequest:e.formatRequest,data:e.data,name:e.name,headers:e.headers,withCredentials:e.withCredentials,method:e.method});null===(a=e.setXhrObject)||void 0===a||a.call(e,{files:e.toUploadFiles,xhrReq:l})}}))}function WA(e){var t=e.uploadAllFilesInOneRequest,n=e.toUploadFiles,r=e.uploadedFiles,o=e.isBatchUpload,a=n.filter((function(e){return!e.response||e.response&&!e.response.error}));return new Promise((function(n){if(!t&&e.multiple){var l=a.map((function(t){return HA(LA(LA({},e),{},{toUploadFiles:[t]}))}));Promise.all(l).then((function(t){var a=[],l=[];t.forEach((function(e){"success"===e.status?a.push(e.data.files[0]):"fail"===e.status&&l.push(e.data.files[0])}));var i=e.autoUpload?r.concat(a):r,u=o||!e.multiple?a:i;n({status:a.length?"success":"fail",data:{files:u},failedFiles:l,list:t})}))}else HA(e).then((function(t){"success"===t.status&&(t.data.files=o||!e.multiple?t.data.files:function(e,t){for(var n=e.filter((function(e){return e.url})),r=function(){var r=t[o],a=e.findIndex((function(e){return e.raw&&e.raw===r.raw||e.name&&e.name===r.name})),l=a>=0?LA(LA({},e[a]),r):r;n.push(l)},o=0,a=t.length;o2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return e.map((function(e){var o=e;return H(t)&&(o=t(e)),LA({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)}))}function UA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function YA(e){for(var t=1;tr&&(u=!0)}var s,d=KA(l,e.format,e.autoUpload?"progress":"waiting");if(e.beforeAllFilesUpload){var v,f=null===(v=e.beforeAllFilesUpload)||void 0===v?void 0:v.call(e,d);s=f instanceof Promise?f:new Promise((function(e){return e(f)}))}var p=d.map((function(t){return new Promise((function(n){RA(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then((function(e){var r=Ra(e,2),o=r[0],a=r[1];o?n({file:t,validateResult:{type:"FILE_OVER_SIZE_LIMIT",extra:o}}):!1===a&&n({file:t,validateResult:{type:"CUSTOM_BEFORE_UPLOAD"}}),n({file:t})}))}))}));Promise.all([s].concat(p)).then((function(e){var t=qT(e),n=t[0],r=t.slice(1);a(!1===n?{lengthOverLimit:u,hasSameNameFile:i,validateResult:{type:"BEFORE_ALL_FILES_UPLOAD"},files:d}:{lengthOverLimit:u,hasSameNameFile:i,fileValidateList:r,files:d})}))}else{var m=KA(t,e.format,e.autoUpload?"progress":"waiting");a({hasSameNameFile:i,file:null==m?void 0:m[0],files:m,validateResult:{type:"FILTER_FILE_SAME_NAME"}})}}))}({uploadValue:g.value,files:i(t),allowUploadDuplicateFile:e.allowUploadDuplicateFile,max:e.multiple?e.max:0,sizeLimit:e.sizeLimit,isBatchUpload:l.value,autoUpload:a.value,format:e.format,beforeUpload:e.beforeUpload,beforeAllFilesUpload:e.beforeAllFilesUpload}).then((function(t){var n;if("BEFORE_ALL_FILES_UPLOAD"!==(null===(n=t.validateResult)||void 0===n?void 0:n.type)){if(t.lengthOverLimit){var r,o={type:"FILES_OVER_LENGTH_LIMIT",files:t.files};if(null===(r=e.onValidate)||void 0===r||r.call(e,o),!t.files.length)return}if(t.hasSameNameFile){var i,u={type:"FILTER_FILE_SAME_NAME",files:t.files};null===(i=e.onValidate)||void 0===i||i.call(e,u)}if(t.fileValidateList instanceof Array){var c,s,d=function(e,t){var n=[],r=[],o=[];return e.forEach((function(e){var a,l;if("CUSTOM_BEFORE_UPLOAD"!==(null===(a=e.validateResult)||void 0===a?void 0:a.type))return"FILE_OVER_SIZE_LIMIT"===(null===(l=e.validateResult)||void 0===l?void 0:l.type)?(e.file.response||(e.file.response={}),e.file.response.error=e.file.response.error||t(e.validateResult.extra),void n.push(e)):void o.push(e.file);r.push(e.file)})),{sizeLimitErrors:n,beforeUploadErrorFiles:r,toFiles:o}}(t.fileValidateList,F),v=d.sizeLimitErrors,f=d.beforeUploadErrorFiles,p=d.toFiles,m=a.value?p:w.value.concat(p);if(w.value=m,null===(c=e.onWaitingUploadFilesChange)||void 0===c||c.call(e,{files:m,trigger:"validate"}),v[0])O.value=v[0].file.response.error,null===(s=e.onValidate)||void 0===s||s.call(e,{type:"FILE_OVER_SIZE_LIMIT",files:v.map((function(e){return e.file}))});else if(O.value="",f.length){var h,b={type:"CUSTOM_BEFORE_UPLOAD",files:f};null===(h=e.onValidate)||void 0===h||h.call(e,b)}a.value?I(m):function(t){var n=e.multiple&&!l.value?g.value.concat(t):t;n.length&&(y(n,{trigger:"add",index:g.value.length,file:t[0],files:t}),w.value=[])}(m)}}else{var C,x={type:"BEFORE_ALL_FILES_UPLOAD",files:t.files};null===(C=e.onValidate)||void 0===C||C.call(e,x)}})),n.value.value=null}};function I(t){var n=g.value.filter((function(e){return"success"!==e.status})),r=a.value?t||w.value:n;r&&r.length&&(k.value=!0,b.value=[],WA({action:e.action,headers:e.headers,method:e.method,name:e.name,withCredentials:e.withCredentials,uploadedFiles:g.value,toUploadFiles:r,multiple:e.multiple,isBatchUpload:l.value,autoUpload:e.autoUpload,uploadAllFilesInOneRequest:e.uploadAllFilesInOneRequest,useMockProgress:e.useMockProgress,data:e.data,mockProgressDuration:e.mockProgressDuration,requestMethod:e.requestMethod,formatRequest:e.formatRequest,formatResponse:e.formatResponse,onResponseProgress:D,onResponseSuccess:E,onResponseError:V,setXhrObject:function(e){var t;null!==(t=e.files[0])&&void 0!==t&&t.raw&&b.value.find((function(t){var n;return(null===(n=t.files[0])||void 0===n?void 0:n.raw)===e.files[0].raw}))||(b.value=b.value.concat(e))}}).then((function(t){var n,o,l=t.status,u=t.data,c=t.list,s=t.failedFiles;if(k.value=!1,"success"===l)y(i(u.files),{trigger:"add",file:u.files[0]}),b.value=[],null===(n=e.onSuccess)||void 0===n||n.call(e,{fileList:u.files,currentFiles:r,file:r[0],results:null==c?void 0:c.map((function(e){return e.data})),response:u.response||c.map((function(e){return e.data.response})),XMLHttpRequest:u.XMLHttpRequest});else if(null!=s&&s[0]){var d;null===(d=e.onFail)||void 0===d||d.call(e,{e:u.event,file:s[0],failedFiles:s,currentFiles:r,response:u.response,XMLHttpRequest:u.XMLHttpRequest})}a.value&&(w.value=s,null===(o=e.onWaitingUploadFilesChange)||void 0===o||o.call(e,{files:s,trigger:"uploaded"}))})))}function M(t){var n,r,o;O.value="",null===(n=(r=t.e).stopPropagation)||void 0===n||n.call(r);var a,l={e:t.e,trigger:"remove",index:t.index,file:t.file};if(e.isBatchUpload||!e.multiple)w.value=[],null===(a=e.onWaitingUploadFilesChange)||void 0===a||a.call(e,{files:[],trigger:"remove"}),y([],l);else if(e.autoUpload){var u;if(t.index arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\nvar upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n});\n\nexport default upperCase;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export type AnimationType = 'ripple' | 'expand' | 'fade';\n\nexport default {\n classPrefix: 't',\n animation: {\n include: ['ripple', 'expand', 'fade'],\n exclude: [],\n } as Record<'include' | 'exclude', Array>,\n attach: null,\n calendar: {\n firstDayOfWeek: 1,\n fillWithZero: true,\n controllerConfig: undefined,\n },\n icon: {},\n input: {\n autocomplete: '',\n },\n dialog: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n confirmBtnTheme: {\n default: 'primary',\n info: 'primary',\n warning: 'primary',\n danger: 'primary',\n success: 'primary',\n },\n },\n message: {},\n popconfirm: {\n confirmBtnTheme: {\n default: 'primary',\n warning: 'primary',\n danger: 'primary',\n },\n },\n table: {\n // 展开和收起图标(使用收起图标)\n expandIcon: undefined,\n // 排序图标(使用降序图标)\n sortIcon: undefined,\n // 过滤图标\n filterIcon: undefined,\n // 树形结构展开图标\n treeExpandAndFoldIcon: undefined,\n // 是否隐藏排序图标的文本提示\n hideSortTips: false,\n // 全局表格尺寸配置\n size: 'medium',\n },\n select: {\n // 清除按钮\n clearIcon: undefined,\n filterable: false,\n },\n drawer: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n size: 'small',\n },\n tree: {\n // 目录层级图标\n folderIcon: undefined,\n },\n datePicker: {\n firstDayOfWeek: 1,\n },\n steps: {\n checkIcon: undefined,\n errorIcon: undefined,\n },\n tag: {\n closeIcon: undefined,\n },\n form: {\n requiredMark: undefined,\n },\n empty: {\n titleText: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n },\n image: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n }\n },\n} as const;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)> = Symbol('configProvide');\n\nexport const mergeWith = (defaultGlobalConfig: GlobalConfigProvider, injectConfig: GlobalConfigProvider) =>\n _mergeWith(defaultGlobalConfig, injectConfig, (objValue, srcValue) => {\n if (isArray(objValue)) {\n return srcValue;\n }\n });\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction, isString } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\n// 这是为了解决在非component里调用useConfig hook时发出的警告\n// https://github.com/Tencent/tdesign-vue-next/issues/2025\nconst globalConfigCopy = ref();\n\nexport * from '../type';\n\n/**\n * component globalConfig\n * @param componentName\n * @returns {t, globalConfig}\n * useConfig('pagination')\n */\nexport function useConfig(\n componentName: T = undefined,\n componentLocale?: GlobalConfigProvider[T],\n) {\n const injectGlobalConfig = getCurrentInstance() ? inject(configProviderInjectKey, null) : globalConfigCopy;\n const mergedGlobalConfig = computed(() => injectGlobalConfig?.value || defaultGlobalConfig);\n const globalConfig = computed(() => Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale));\n\n const classPrefix = computed(() => {\n return mergedGlobalConfig.value.classPrefix;\n });\n\n // 处理正则表达式\n const t = function (pattern: T, ...args: any[]) {\n const [data] = args;\n if (isString(pattern)) {\n if (!data) return pattern;\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n const translated = pattern.replace(regular, (match, key) => {\n if (data) {\n return String(data[key]);\n }\n return '';\n });\n return translated;\n }\n if (isFunction(pattern)) {\n // 重要:组件的渲染必须存在参数 h,不能移除\n if (!args.length) return pattern(h);\n return pattern(...args);\n }\n return '';\n };\n\n return {\n t,\n global: globalConfig,\n globalConfig,\n classPrefix,\n };\n}\n\n/**\n * provide globalConfig\n * @param {TdConfigProviderProps} props\n * @returns {ComputedRef}\n */\nexport const provideConfig = (props: TdConfigProviderProps) => {\n const defaultData = cloneDeep(defaultGlobalConfig);\n const mergedGlobalConfig = computed(() =>\n Object.assign({}, mergeWith(defaultData as unknown as GlobalConfigProvider, props.globalConfig)),\n );\n\n provide(configProviderInjectKey, mergedGlobalConfig);\n\n if (!globalConfigCopy.value) {\n globalConfigCopy.value = mergedGlobalConfig.value;\n }\n\n return mergedGlobalConfig;\n};\n","import { computed } from 'vue';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nexport function usePrefixClass(componentName?: string) {\n const { classPrefix } = useConfig('classPrefix');\n return computed(() => {\n return componentName ? `${classPrefix.value}-${componentName}` : classPrefix.value;\n });\n}\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n SIZE: computed(() => ({\n small: `${classPrefix.value}-size-s`,\n medium: `${classPrefix.value}-size-m`,\n large: `${classPrefix.value}-size-l`,\n default: '',\n xs: `${classPrefix.value}-size-xs`,\n xl: `${classPrefix.value}-size-xl`,\n block: `${classPrefix.value}-size-full-width`,\n })),\n STATUS: computed(() => ({\n loading: `${classPrefix.value}-is-loading`,\n loadMore: `${classPrefix.value}-is-load-more`,\n disabled: `${classPrefix.value}-is-disabled`,\n focused: `${classPrefix.value}-is-focused`,\n success: `${classPrefix.value}-is-success`,\n error: `${classPrefix.value}-is-error`,\n warning: `${classPrefix.value}-is-warning`,\n selected: `${classPrefix.value}-is-selected`,\n active: `${classPrefix.value}-is-active`,\n checked: `${classPrefix.value}-is-checked`,\n current: `${classPrefix.value}-is-current`,\n hidden: `${classPrefix.value}-is-hidden`,\n visible: `${classPrefix.value}-is-visible`,\n expanded: `${classPrefix.value}-is-expanded`,\n indeterminate: `${classPrefix.value}-is-indeterminate`,\n })),\n };\n}\n\nexport { useConfig };\n","import { Styles } from '../common';\n\n/**\n * 用于为节点增加styles\n * @param el HTMLElement\n * @param style Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n const keys = Object.keys(styles);\n keys.forEach((key) => {\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n el.style[key] = styles[key];\n });\n // TODO: 这个怎么样\n // Object.assign(el.style, styles);\n}\n\nexport default setStyle;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import { isString, isNull, isUndefined, isNumber, isArray } from 'lodash-es';\n\nexport function omit(obj: Record, fields: string[]) {\n const shallowCopy = {\n ...obj,\n };\n for (let i = 0; i < fields.length; i++) {\n const key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport function getValidAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function removeEmptyAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function getTabElementByValue(tabs: [] = [], value: string): object {\n const [result] = tabs.filter((item) => {\n const { id } = item as any;\n return id === value;\n });\n return result || null;\n}\n\nexport function firstUpperCase(str: string): string {\n return str.toLowerCase().replace(/( |^)[a-z]/g, (char: string) => char.toUpperCase());\n}\n\nexport type Gradients = { [percent: string]: string };\nexport type FromTo = { from: string; to: string };\nexport type LinearGradient = { direction?: string } & (Gradients | FromTo);\nexport function getBackgroundColor(color: string | string[] | LinearGradient): string {\n if (isString(color)) {\n return color;\n }\n if (isArray(color)) {\n if (color[0] && color[0][0] === '#') {\n color.unshift('90deg');\n }\n return `linear-gradient( ${color.join(',')} )`;\n }\n const {\n from, to, direction = 'to right', ...rest\n } = color;\n let keys = Object.keys(rest);\n if (keys.length) {\n keys = keys.sort((a, b) => {\n const c = parseFloat(a.substr(0, a.length - 1)) - parseFloat(b.substr(0, b.length - 1));\n return c;\n });\n const tempArr = keys.map((key: any) => `${rest[key as keyof typeof rest]} ${key}`);\n return `linear-gradient(${direction}, ${tempArr.join(',')})`;\n }\n return `linear-gradient(${direction}, ${from}, ${to})`;\n}\n\n/**\n *\n * @returns 获取 ie 浏览器版本\n */\nexport function getIEVersion() {\n if (typeof navigator === 'undefined' || !navigator) return Number.MAX_SAFE_INTEGER;\n\n const { userAgent } = navigator;\n // 判断是否IE<11浏览器\n const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;\n // 判断是否IE11浏览器\n const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;\n if (isIE) {\n const reIE = new RegExp('MSIE (\\\\d+\\\\.\\\\d+);');\n const match = userAgent.match(reIE);\n if (!match) return -1;\n const fIEVersion = parseFloat(match[1]);\n return fIEVersion < 7 ? 6 : fIEVersion;\n }\n if (isIE11) {\n // IE11\n return 11;\n }\n // 不是ie浏览器\n return Number.MAX_SAFE_INTEGER;\n}\n\n/**\n * Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15\n * FireFox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0\n * Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36\n * Chrome 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.3\n * 搜狗 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.\n * 360 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.9 Safari/537.36 QIHU 360EE\n */\nexport function getFlexGapPolyFill() {\n if (typeof navigator === 'undefined' || !navigator) return false;\n const ua = navigator.userAgent;\n const chromeMatch = ua.match(/AppleWebKit.+Chrome\\/(.+) Safari\\/.+/i);\n if (Number(chromeMatch?.[1]?.split('.')[0]) < 100) return true;\n const safariMatch = ua.match(/AppleWebKit.+Version\\/(.+) Safari\\/.+/i);\n if (Number(safariMatch?.[1]?.split('.')[0]) < 12) return true;\n const ieVersion = getIEVersion();\n if (ieVersion <= 11) return true;\n const fireFoxMatch = ua.match(/Firefox\\/(.+)/i);\n if (Number(fireFoxMatch?.[1]?.split('.')[0]) < 100) return true;\n return false;\n}\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度,当传入maxCharacter时返回截取之后的字符串和长度。\n */\nexport function getCharacterLength(str: string): number;\nexport function getCharacterLength(str: string, maxCharacter?: number): { length: number; characters: string }\nexport function getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n/**\n * 返回 Unicode 字符长度\n * '👨'.length === 2\n * getUnicodeLength('👨') === 1\n * @param str\n * @returns {number}\n */\nexport function getUnicodeLength(str?: string): number {\n return [...(str ?? '')].length;\n}\n\n/**\n * 修正 Unicode 最大字符长度\n * '👨👨👨'.slice(0, 2) === '👨'\n * limitUnicodeMaxLength('👨👨👨', 2) === '👨👨'\n * @param str\n * @param maxLength\n * @param oldStr\n * @returns {string}\n */\nexport function limitUnicodeMaxLength(\n str?: string,\n maxLength?: number,\n oldStr?: string\n): string {\n // 旧字符满足字数要求则返回\n if ([...(oldStr ?? '')].slice().length === maxLength) return oldStr || '';\n return [...(str ?? '')].slice(0, maxLength).join('');\n}\n\n/**\n * 兼容样式中支持number/string类型的传值 得出最后的结果。\n * @param param number或string类型的可用于样式上的值\n * @returns 可使用的样式值。\n */\nexport function pxCompat(param: string | number) {\n return isNumber(param) ? `${param}px` : param;\n}\n\n/**\n * 计算dom元素盒模型尺寸\n * @param targetElement 需要计算盒模型尺寸的元素\n * @returns 计算出各维度尺寸。\n */\nconst DOM_STYLE_PROPS = [\n 'padding-top',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'border-width',\n 'box-sizing',\n 'line-height',\n 'letter-spacing',\n];\n\nexport function calculateNodeSize(targetElement: HTMLElement) {\n if (typeof window === 'undefined') {\n return {\n paddingSize: 0,\n borderSize: 0,\n boxSizing: 0,\n sizingStyle: '',\n };\n }\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing')\n || style.getPropertyValue('-moz-box-sizing')\n || style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize = (\n parseFloat(style.getPropertyValue('padding-bottom'))\n + parseFloat(style.getPropertyValue('padding-top'))\n );\n\n const borderSize = (\n parseFloat(style.getPropertyValue('border-bottom-width'))\n + parseFloat(style.getPropertyValue('border-top-width'))\n );\n\n const sizingStyle = DOM_STYLE_PROPS\n .map((name) => `${name}:${style.getPropertyValue(name)}`)\n .join(';');\n\n return {\n paddingSize, borderSize, boxSizing, sizingStyle,\n };\n}\n","import { defineComponent, onMounted, nextTick, ref } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport circleAdapter from '@tdesign/common-js/loading/circle-adapter';\n\nexport default defineComponent({\n name: 'TLoadingGradient',\n setup() {\n const classPrefix = usePrefixClass();\n const circleRef = ref();\n\n onMounted(() => {\n nextTick(() => {\n circleAdapter(circleRef.value);\n });\n });\n\n return () => {\n const name = `${classPrefix.value}-loading__gradient`;\n const classes = [name, `${classPrefix.value}-icon-loading`];\n\n return (\n \n \n
\n \n \n );\n };\n },\n});\n","import setStyle from '../utils/setStyle';\nimport { getIEVersion } from '../utils/helper';\n\nexport default function circleAdapter(circleElem: HTMLElement) {\n let basicStyle = {};\n\n if (!circleElem || typeof window === 'undefined') {\n return;\n }\n\n const { color, fontSize } = window?.getComputedStyle?.(circleElem);\n\n // to fix the browser compat of foreignObject in Safari,\n // https://bugs.webkit.org/show_bug.cgi?id=23113\n const ua = window?.navigator?.userAgent;\n const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iOS 下的微信和企业微信\n const isIosWechat = /(?=.*iPhone)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat) {\n basicStyle = {\n transformOrigin: '0px 0px',\n transform: `scale(${parseInt(fontSize, 10) / 12})`,\n };\n }\n // 添加:判断是否为IE浏览器\n if (color && getIEVersion() > 11) {\n const matched = color.match(/[\\d.]+/g);\n const endColor = matched ? `rgba(${matched[0]}, ${matched[1]}, ${matched[2]}, 0)` : '';\n setStyle(circleElem, {\n ...basicStyle,\n background: `conic-gradient(from 90deg at 50% 50%,${endColor} 0deg, ${color} 360deg)`,\n });\n } else {\n setStyle(circleElem, {\n ...basicStyle,\n background: '',\n });\n }\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n const change = end - start;\n const offset = (change * current) / duration;\n return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n const change = (end - start) / 2;\n let time = current / (duration / 2);\n if (time < 1) {\n return change * time * time * time + start;\n }\n time -= 2;\n // eslint-disable-next-line no-return-assign\n return change * (time * time * time + 2) + start;\n};\n","/**\n * Thanks to https://spothero.com/static/main/uniform/docs-js/module-DOMUtils.html\n */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-undef */\nimport { ComponentPublicInstance, VNode } from 'vue';\nimport raf from 'raf';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n if (!isServer && document.addEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event && handler) {\n element.addEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event && handler) {\n (element as any).attachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport const off = ((): any => {\n if (!isServer && document.removeEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event) {\n element.removeEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event) {\n (element as any).detachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport function once(\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) {\n const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n const callback = (evt: any) => {\n handlerFn(evt);\n off(element, event, callback, options);\n };\n\n on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || '').split(' ');\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n if (!el || !cls) return;\n const classes = cls.split(' ');\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n const attachNode = isFunction(node) ? node(triggerNode) : node;\n if (!attachNode) {\n return document.body;\n }\n if (isString(attachNode)) {\n return document.querySelector(attachNode);\n }\n if (attachNode instanceof HTMLElement) {\n return attachNode;\n }\n return document.body;\n};\n\n/**\n * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n if (isString(container)) {\n return document.querySelector(container) as HTMLElement;\n }\n if (isFunction(container)) {\n return container();\n }\n return container;\n};\n\n/**\n * 返回是否window对象\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n * 获取滚动距离\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n // node环境或者target为空\n if (isServer || !target) {\n return 0;\n }\n const method = isLeft ? 'scrollLeft' : 'scrollTop';\n let result = 0;\n if (isWindow(target)) {\n result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = (target as HTMLElement)[method];\n }\n return result;\n}\ninterface ScrollTopOptions {\n container?: ScrollTarget;\n duration?: number;\n easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise {\n const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n return new Promise((res) => {\n const fnc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n if (isWindow(container)) {\n (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n (container as Document).documentElement.scrollTop = nextScrollTop;\n } else {\n (container as HTMLElement).scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(fnc);\n } else {\n // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n // 此时应该在下一帧再执行res\n raf(res);\n }\n };\n raf(fnc);\n });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable | ArrayLike, child: any): boolean {\n if (parent && child) {\n let pNode = child;\n while (pNode) {\n if (parent === pNode) {\n return true;\n }\n const { parentNode } = pNode;\n pNode = parentNode;\n }\n }\n return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable | ArrayLike, cb: () => void): void => {\n on(document, 'click', (event: { target: Element }) => {\n if (isArray(els)) {\n const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n return isFlag && cb && cb();\n }\n if (containerDom(els, event.target)) {\n return false;\n }\n return cb && cb();\n });\n};\n\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\n ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n return scrollWidth > clientWidth;\n};\n\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n // 服务端不处理\n if (isServer) return;\n // selected不存在或selected父元素不为parentEle则不处理\n if (!selected || selected.offsetParent !== parentEle) {\n parentEle.scrollTop = 0;\n return;\n }\n const selectedTop = selected.offsetTop;\n const selectedBottom = selectedTop + selected.offsetHeight;\n const parentScrollTop = parentEle.scrollTop;\n const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n if (selectedTop < parentScrollTop) {\n // selected元素滚动过了,则将其向下滚动到可视范围顶部\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n // selected元素未滚动到,则将其向上滚动到可视范围底部\n parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\n/**\n * 检查元素是否在父元素视图\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n const rect = elm.getBoundingClientRect();\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n return (\n rect.top >= parentRect.top &&\n rect.left >= parentRect.left &&\n rect.bottom <= parentRect.bottom &&\n rect.right <= parentRect.right\n );\n }\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * 获取元素某个 css 对应的值\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n let propValue = '';\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n }\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n }\n\n return propValue;\n}\n\n/**\n * 判断元素是否处在 position fixed 中\n * @param element 元素\n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n const p = element.parentNode as HTMLElement;\n\n if (!p || p.nodeName === 'HTML') {\n return false;\n }\n\n if (getElmCssPropValue(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(p);\n}\n\n/**\n * 获取当前视图滑动的距离\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n const { body } = document;\n const docElm = document.documentElement;\n const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n return { scrollTop, scrollLeft };\n}\n\n/**\n * 获取当前视图的大小\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n if (window.innerWidth !== undefined) {\n return { width: window.innerWidth, height: window.innerHeight };\n }\n const doc = document.documentElement;\n return { width: doc.clientWidth, height: doc.clientHeight };\n}\n","import { isFunction, isObject } from 'lodash-es';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport const hasOwn = (val: T, key: string | symbol | number): key is keyof T => hasOwnProperty.call(val, key);\nexport const getPropertyValFromObj = (\n val: T,\n key: string | symbol | number,\n): T[keyof T] | undefined => (hasOwn(val, key) ? val[key] : undefined);\n\nconst objectToString: typeof Object.prototype.toString = Object.prototype.toString;\nconst toTypeString = (value: unknown): string => objectToString.call(value);\nexport const isPlainObject = (val: unknown): val is T => toTypeString(val) === '[object Object]';\nexport const isPromise = (val: unknown): val is Promise => (isObject(val) || isFunction(val))\n && isFunction((val as any).then)\n && isFunction((val as any).catch);\n","import { h, ComponentPublicInstance, VNode, isVNode, Fragment } from 'vue';\nimport { isEmpty } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { camelCase } from 'lodash-es';\nimport { kebabCase } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport interface JSXRenderContext {\n defaultNode?: VNode | string;\n params?: Record;\n slotFirst?: boolean;\n // 是否不打印 LOG\n silent?: boolean;\n}\n\nexport type OptionsType = VNode | JSXRenderContext | string;\n\nexport function getDefaultNode(options?: OptionsType) {\n let defaultNode;\n if (isObject(options) && 'defaultNode' in options) {\n defaultNode = options.defaultNode;\n } else if (isVNode(options) || isString(options)) {\n defaultNode = options;\n }\n\n return defaultNode;\n}\n\nexport function getChildren(content: VNode[]) {\n const childList: VNode[] = [];\n const innerGetChildren = (content: VNode[]) => {\n if (!isArray(content)) return;\n content.forEach((item: VNode) => {\n if (item.children && isArray(item.children)) {\n if (item.type !== Fragment) return;\n innerGetChildren(item.children as VNode[]);\n } else {\n childList.push(item);\n }\n });\n return childList;\n };\n\n return innerGetChildren(content);\n}\n\nexport function getParams(options?: OptionsType) {\n return isObject(options) && 'params' in options ? options.params : {};\n}\n\nexport function getSlotFirst(options?: OptionsType) {\n return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n\n// 同时支持驼峰命名和中划线命名的插槽,示例:value-display 和 valueDisplay\nexport function handleSlots(instance: ComponentPublicInstance, params: Record, name: string) {\n // 检查是否存在 驼峰命名 的插槽\n let node = instance.$slots[camelCase(name)]?.(params);\n if (node) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.$slots[kebabCase(name)]?.(params);\n if (node) return node;\n return null;\n}\n\n/**\n * 通过JSX的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * @param vm 组件实例\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX(this, 'closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX(this, 'closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX(this, 'closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const renderTNodeJSX = (instance: ComponentPublicInstance, name: string, options?: OptionsType) => {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n // 处理 props 类型的Node\n let propsNode;\n if (name in instance) {\n propsNode = instance[name];\n }\n\n // 是否静默日志\n // const isSilent = Boolean(isObject(options) && 'silent' in options && options.silent);\n // // 同名插槽和属性同时存在,则提醒用户只需要选择一种方式即可\n // if (instance.$slots[name] && propsNode && propsNode !== true && !isSilent) {\n // console.warn(`Both $slots.${name} and $props.${name} exist, $props.${name} is preferred`);\n // }\n\n // propsNode 为 false 不渲染\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true && defaultNode) {\n return handleSlots(instance, params, name) || defaultNode;\n }\n\n // 同名 props 和 slot 优先处理 props\n if (isFunction(propsNode)) return propsNode(h, params);\n const isPropsEmpty = [undefined, params, ''].includes(propsNode);\n // Props 为空,但插槽存在\n if (isPropsEmpty && (instance.$slots[camelCase(name)] || instance.$slots[kebabCase(name)])) {\n return handleSlots(instance, params, name);\n }\n return propsNode;\n};\n\n/**\n * 通过JSX的方式渲染 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于 属性值为 undefined 时会渲染默认节点\n * @param vm 组件实例\n * @param name 插槽和属性名称\n * @example renderTNodeJSX(this, 'closeBtn')\n * @example renderTNodeJSX(this, 'closeBtn', )。this.closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSX(this, 'closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const renderTNodeJSXDefault = (vm: ComponentPublicInstance, name: string, options?: OptionsType) => {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(vm, name, options) || defaultNode;\n};\n\n/**\n * 用于处理相同名称的 TNode 渲染\n * @param vm 组件实例\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent(this, 'default', 'content')\n * @example renderContent(this, 'default', 'content', '我是默认内容')\n * @example renderContent(this, 'default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const renderContent = (vm: ComponentPublicInstance, name1: string, name2: string, options?: OptionsType) => {\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(vm, name1, toParams);\n const node2 = renderTNodeJSX(vm, name2, toParams);\n\n const res = isEmpty(node1) ? node2 : node1;\n return isEmpty(res) ? defaultNode : res;\n};\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { camelCase } from 'lodash-es';\nimport { kebabCase } from 'lodash-es';\nimport { getDefaultNode, getParams, OptionsType, JSXRenderContext, getSlotFirst } from '../utils/render-tnode';\nimport { hasOwn } from '@tdesign/common-js/utils/general';\n\n// 兼容处理插槽名称,同时支持驼峰命名和中划线命名,示例:value-display 和 valueDisplay\nfunction handleSlots(instance: ComponentInternalInstance, name: string, params: Record) {\n // 2023-08 new Function 触发部分使用场景安全策略问题(Chrome插件/eletron等)\n // // 每个 slots 需要单独的 h 函数 否则直接assign会重复把不同 slots 的 params 都注入\n // const finalParams = new Function('return ' + h.toString())();\n // if (params) {\n // Object.assign(finalParams, params);\n // }\n\n // 检查是否存在 驼峰命名 的插槽(过滤注释节点)\n let node = instance.slots[camelCase(name)]?.(params);\n if (node && node.filter((t) => t.type.toString() !== 'Symbol(v-cmt)').length) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.slots[kebabCase(name)]?.(params);\n if (node && node.filter((t) => t.type.toString() !== 'Symbol(v-cmt)').length) return node;\n return null;\n}\n\n/**\n * 是否为空节点,需要过滤掉注释节点。注释节点也会被认为是空节点\n */\nfunction isEmptyNode(node: any) {\n if ([undefined, null, ''].includes(node)) return true;\n const innerNodes = node instanceof Array ? node : [node];\n const r = innerNodes.filter((node) => node?.type?.toString() !== 'Symbol(Comment)');\n return !r.length;\n}\n\n// TODO 可以把这里移动到 utils 中\n/**\n * 检查用户是否有主动传 prop\n * @param instance 组件实例\n * @param propName prop 名称\n * @returns boolean\n */\nfunction isPropExplicitlySet(instance: ComponentInternalInstance, propName: string) {\n const vProps = instance?.vnode.props || {};\n return hasOwn(vProps, camelCase(propName)) || hasOwn(vProps, kebabCase(propName));\n}\n\n/**\n/**\n * 通过 JSX 的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * 优先级:用户注入的 props 值 > slot > 默认 props 值\n * 如果 props 值为 true ,则使用插槽渲染。如果也没有插槽的情况下,则使用 defaultNode 渲染\n * @example const renderTNodeJSX = useTNodeJSX()\n * @return () => {}\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX('closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX('closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX('closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const useTNodeJSX = () => {\n const instance = getCurrentInstance();\n return function (name: string, options?: OptionsType) {\n // 渲染节点时所需的参数\n const renderParams = getParams(options);\n // 默认渲染节点\n // TODO 这里需要讨论,这里的默认节点规则是什么呢? pp test:unit image-viewer pp test:unit Collapse\n const defaultNode = getDefaultNode(options);\n // 是否显示设置 slot 优先\n const isSlotFirst = getSlotFirst(options);\n // 插槽\n const renderSlot = instance.slots[camelCase(name)] || instance.slots[kebabCase(name)];\n\n if (isSlotFirst && renderSlot) {\n // 1. 如果显示设置了 slot 优先,并且存在 slot,那么优先使用 slot\n return handleSlots(instance, name, renderParams);\n } else {\n // 2. 否者按照 用户主动传入的 props 值 > slot > 默认 props 值\n // 2.1 处理主动传入的 prop\n if (isPropExplicitlySet(instance, name)) {\n // 2.1.1 如果有传,那么优先使用 prop 的值\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n // 2.1.2 如果 prop 的值为 false 或者 null,那么直接不渲染\n if (propsNode === false || propsNode === null) return;\n // 2.1.3 如果 prop 的值为 true,那么使用 slot 渲染\n if (propsNode === true) {\n return handleSlots(instance, name, renderParams) || defaultNode;\n }\n // 2.1.4 如果 prop 的值为函数,那么执行函数\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n // 2.1.5 如果 prop 的值为 undefined、'',那么使用插槽渲染\n const isPropsEmpty = [undefined, ''].includes(propsNode as any);\n if (isPropsEmpty && renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.1.6 如果 prop 的值为其他值,那么直接返回\n return propsNode;\n }\n // 2.2 如果未主动传入 prop,那么渲染 slot,当然前提是存在 slot\n if (renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.3 如果未主动传入 prop,也没有 slot,那么就走 prop\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true) {\n return defaultNode;\n }\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n return propsNode;\n }\n };\n};\n\n/**\n * 在setup中,通过JSX的方式 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于属性值为 undefined 时会渲染默认节点\n * @example const renderTNodeJSXDefault = useTNodeDefault()\n * @return () => {}\n * @param name 插槽和属性名称\n * @example renderTNodeJSXDefault('closeBtn')\n * @example renderTNodeJSXDefault('closeBtn', ) closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSXDefault('closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const useTNodeDefault = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name: string, options?: VNode | JSXRenderContext) {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(name, options) || defaultNode;\n };\n};\n\n/**\n * 在setup中,用于处理相同名称的 TNode 渲染\n * @example const renderContent = useContent()\n * @return () => {}\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent('default', 'content')\n * @example renderContent('default', 'content', '我是默认内容')\n * @example renderContent('default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const useContent = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name1: string, name2: string, options?: VNode | JSXRenderContext) {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(name1, toParams);\n const node2 = renderTNodeJSX(name2, toParams);\n\n const res = isEmptyNode(node1) ? node2 : node1;\n return isEmptyNode(res) ? defaultNode : res;\n };\n};\n","import { getAttach } from '../utils/dom';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\nimport { AttachNode } from '../common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nconst useTeleport = (\n attach: (() => AttachNode) | Ref,\n triggerNode?: (() => any) | Ref,\n): Ref => {\n // 如果是函数, 则使用computed包裹 否则直接使用ref\n const to = isFunction(attach) ? computed(attach) : ref(attach);\n const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n const element = ref();\n\n const getElement = () => {\n element.value = getAttach(to.value, innerTriggerNode.value);\n };\n\n onMounted(() => getElement());\n\n watch([to, innerTriggerNode], () => getElement());\n\n return element;\n};\n\nexport default useTeleport;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdLoadingProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 挂载元素,默认挂载到组件本身所在的位置。仅全屏加载模式下有效。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒 */\n delay: {\n type: Number,\n default: 0,\n },\n /** 是否显示为全屏加载 */\n fullscreen: Boolean,\n /** 加载指示符,值为 true 显示默认指示符,值为 false 则不显示,也可以自定义指示符 */\n indicator: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 是否继承父元素颜色 */\n inheritColor: Boolean,\n /** 是否处于加载状态 */\n loading: {\n type: Boolean,\n default: true,\n },\n /** 防止滚动穿透,全屏加载模式有效 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 是否需要遮罩层,遮罩层对包裹元素才有效 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,示例:small/medium/large/12px/56px/0.3em */\n size: {\n type: String,\n default: 'medium',\n },\n /** 加载提示文案 */\n text: {\n type: [String, Function] as PropType,\n },\n /** 消息通知层级,样式默认为 3500 */\n zIndex: {\n type: Number,\n },\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs, CSSProperties, Teleport } from 'vue';\nimport GradientIcon from './icon/gradient';\nimport { addClass, removeClass } from '../utils/dom';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useTeleport from '../hooks/useTeleport';\nimport props from './props';\n\nconst useComponentClassName = () => {\n return {\n name: usePrefixClass('loading'),\n centerClass: usePrefixClass('loading--center'),\n fullscreenClass: usePrefixClass('loading__fullscreen'),\n lockClass: usePrefixClass('loading--lock'),\n overlayClass: usePrefixClass('loading__overlay'),\n relativeClass: usePrefixClass('loading__parent'),\n fullClass: usePrefixClass('loading--full'),\n inheritColorClass: usePrefixClass('loading--inherit-color'),\n };\n};\n\nexport default defineComponent({\n name: 'TLoading',\n inheritAttrs: false,\n props,\n setup(props, { slots, attrs }) {\n const delayShowLoading = ref(false);\n\n const { name, centerClass, fullscreenClass, lockClass, overlayClass, relativeClass, fullClass, inheritColorClass } =\n useComponentClassName();\n\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n\n const countDelay = () => {\n delayShowLoading.value = false;\n const timer = setTimeout(() => {\n delayShowLoading.value = true;\n clearTimeout(timer);\n }, props.delay);\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n // 延时计时是否完成。用于控制延时计时结束前不能显示加载态\n const delayCounted = computed(() => Boolean(!props.delay || (props.delay && delayShowLoading.value)));\n\n // loading style\n const styles = computed(() => {\n const styles: CSSProperties = {};\n if (props.zIndex !== undefined) {\n styles.zIndex = props.zIndex;\n }\n if (!['small', 'medium', 'large'].includes(props.size)) {\n styles['font-size'] = props.size;\n }\n return styles;\n });\n\n const hasContent = computed(() => Boolean(props.default || slots.default || props.content || slots.content));\n const lockFullscreen = computed(() => props.preventScrollThrough && props.fullscreen);\n const showText = computed(() => Boolean(props.text || slots.text));\n const showWrapLoading = computed(() => hasContent.value && props.loading && delayCounted.value);\n const showFullScreenLoading = computed(() => props.fullscreen && props.loading && delayCounted.value);\n const showAttachedLoading = computed(() => props.attach && props.loading && delayCounted.value);\n const classes = computed(() => {\n const baseClasses = [\n centerClass.value,\n getPropertyValFromObj(SIZE.value, props.size),\n { [inheritColorClass.value]: props.inheritColor },\n ];\n const fullScreenClasses = [name.value, fullscreenClass.value, centerClass.value, overlayClass.value];\n\n return {\n baseClasses,\n attachClasses: baseClasses.concat([name.value, fullClass.value, { [overlayClass.value]: props.showOverlay }]),\n withContentClasses: baseClasses.concat([\n name.value,\n fullClass.value,\n {\n [overlayClass.value]: props.showOverlay,\n },\n ]),\n fullScreenClasses,\n normalClasses: baseClasses.concat([name.value]),\n };\n });\n\n const { loading } = toRefs(props);\n\n watch([loading], ([isLoading]) => {\n if (isLoading) {\n countDelay();\n lockFullscreen.value && addClass(document.body, lockClass.value);\n } else {\n lockFullscreen.value && removeClass(document.body, lockClass.value);\n }\n });\n\n onMounted(() => {\n props.delay && countDelay();\n });\n\n return () => {\n const { fullScreenClasses, baseClasses, withContentClasses, attachClasses, normalClasses } = classes.value;\n\n const defaultIndicator = ;\n const indicator = loading.value && renderTNodeJSX('indicator', defaultIndicator);\n const text = showText.value &&
{renderTNodeJSX('text')}
;\n\n // full screen loading\n if (props.fullscreen) {\n if (!showFullScreenLoading.value || !props.loading) return null;\n return (\n \n
\n
\n {indicator}\n {text}\n
\n
\n
\n );\n }\n\n // Loading is wrapping a HTMLElement.\n if (hasContent.value) {\n return (\n
\n {renderContent('default', 'content')}\n {showWrapLoading.value && (\n
\n {indicator}\n {text}\n
\n )}\n
\n );\n }\n\n // transfer parent node\n if (props.attach) {\n if (!showAttachedLoading.value || !loading.value) return null;\n return (\n \n
\n {indicator}\n {text}\n
\n
\n );\n }\n\n // Normal Loading without overlay or content\n return loading.value ? (\n
\n {indicator}\n {text}\n
\n ) : null;\n };\n },\n});\n","import { App, Plugin, createApp, defineComponent, h, reactive } from 'vue';\nimport { merge } from 'lodash-es';\nimport LoadingComponent from './loading';\nimport { getAttach, removeClass, addClass } from '../utils/dom';\nimport { TdLoadingProps, LoadingInstance, LoadingMethod } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nlet fullScreenLoadingInstance: LoadingInstance = null;\n\nfunction mergeDefaultProps(props: TdLoadingProps): TdLoadingProps {\n const options: TdLoadingProps = merge(\n {\n fullscreen: false,\n attach: 'body',\n loading: true,\n preventScrollThrough: true,\n },\n props,\n );\n\n return options;\n}\n\nfunction createLoading(props: TdLoadingProps): LoadingInstance {\n const mergedProps = mergeDefaultProps(props);\n\n if (mergedProps.fullscreen && fullScreenLoadingInstance) {\n return fullScreenLoadingInstance;\n }\n\n const component = defineComponent({\n setup() {\n const loadingOptions = reactive(mergedProps);\n return {\n loadingOptions,\n };\n },\n render() {\n return h(LoadingComponent, {\n ...this.loadingOptions,\n });\n },\n });\n\n const attach = getAttach(mergedProps.fullscreen ? 'body' : mergedProps.attach);\n\n const app = createApp(component);\n const loading = app.mount(document.createElement('div'));\n const parentRelativeClass = usePrefixClass('loading__parent--relative').value;\n const lockClass = usePrefixClass('loading--lock');\n const lockFullscreen = mergedProps.preventScrollThrough && mergedProps.fullscreen;\n\n if (lockFullscreen) {\n addClass(document.body, lockClass.value);\n }\n\n if (attach) {\n addClass(attach, parentRelativeClass);\n } else {\n console.error('attach is not exist');\n }\n\n const loadingInstance: LoadingInstance = {\n hide: () => {\n loading.loading = false;\n removeClass(attach, parentRelativeClass);\n removeClass(document.body, lockClass.value);\n app.unmount();\n },\n };\n return loadingInstance;\n}\n\nfunction produceLoading(props: boolean | TdLoadingProps): LoadingInstance {\n // 全屏加载\n if (props === true) {\n fullScreenLoadingInstance = createLoading({\n fullscreen: true,\n loading: true,\n attach: 'body',\n preventScrollThrough: true,\n });\n return fullScreenLoadingInstance;\n }\n\n if (props === false) {\n // 销毁全屏实例\n fullScreenLoadingInstance?.hide();\n fullScreenLoadingInstance = null;\n return;\n }\n return createLoading(props);\n}\n\nexport type LoadingPluginType = Plugin & LoadingMethod;\n\nexport const LoadingPlugin: LoadingPluginType = produceLoading as LoadingPluginType;\n\nLoadingPlugin.install = (app: App) => {\n // eslint-disable-next-line no-param-reassign\n app.config.globalProperties.$loading = produceLoading;\n};\n\nexport default LoadingPlugin;\n","import type { Directive, DirectiveBinding } from 'vue';\nimport { mapKeys, isObject } from 'lodash-es';\nimport { isEqual } from 'lodash-es';\nimport { TdLoadingProps } from './type';\nimport produceLoading from './plugin';\n\nconst INSTANCE_KEY = Symbol('TdLoading');\n\nconst createInstance = (el: HTMLElement, binding: DirectiveBinding) => {\n const { fullscreen, inheritColor } = binding.modifiers;\n const options: TdLoadingProps = {\n attach: () => el,\n fullscreen: fullscreen ?? false,\n inheritColor: inheritColor ?? false,\n loading: binding.value,\n };\n\n if (isObject(binding.value)) {\n mapKeys(binding.value, (value, key: keyof typeof options) => {\n options[key] = value;\n });\n }\n\n // @ts-ignore\n // TODO: unique symbol' can't be used to index type 'HTMLElement'\n el[INSTANCE_KEY] = {\n options,\n instance: produceLoading(options),\n };\n};\n\nexport const vLoading: Directive = {\n mounted(el, binding) {\n if (binding.value) {\n createInstance(el, binding);\n }\n },\n updated(el, binding) {\n const instance = el[INSTANCE_KEY];\n const { value, oldValue } = binding;\n if (!isEqual(value, oldValue)) {\n const loading = value?.loading ?? value;\n if (loading) {\n createInstance(el, binding);\n } else {\n instance?.instance.hide();\n }\n }\n },\n unmounted(el) {\n el[INSTANCE_KEY]?.instance.hide();\n },\n};\n\nexport default vLoading;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import { App, Plugin, Component, Directive } from 'vue';\n\nfunction withInstall(\n comp: T,\n alias?: string,\n directive?: { name: string; comp: Directive },\n): T & Plugin {\n const componentPlugin = comp as T & Component & Plugin;\n\n componentPlugin.install = (app: App, name?: string) => {\n app.component(alias || name || componentPlugin.name, comp);\n directive && app.directive(directive.name, directive.comp);\n };\n\n return componentPlugin as T & Plugin;\n}\n\nexport default withInstall;\n","import { vLoading } from './directive';\nimport _Loading from './loading';\nimport withInstall from '../utils/withInstall';\nimport { TdLoadingProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\n\nexport type LoadingProps = TdLoadingProps;\n\nexport { default as LoadingPlugin } from './plugin';\nexport { default as LoadingDirective } from './directive';\n\nexport const Loading = withInstall(_Loading, _Loading.name, { name: 'loading', comp: vLoading });\nexport default Loading;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdButtonProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否为块级元素 */\n block: Boolean,\n /** 按钮内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 按钮内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 禁用状态。优先级:Button.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 原生的form属性,支持用于通过form属性对于id的form的表单事件 */\n form: {\n type: String,\n default: undefined,\n },\n /** 是否为幽灵按钮(镂空按钮) */\n ghost: Boolean,\n /** 跳转地址。href 存在时,按钮标签默认使用 `
` 渲染;如果指定了 `tag` 则使用指定的标签渲染 */\n href: {\n type: String,\n default: '',\n },\n /** 按钮内部图标,可完全自定义 */\n icon: {\n type: Function as PropType,\n },\n /** 是否显示为加载状态 */\n loading: Boolean,\n /** 透传加载组件(Loading)全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'rectangle' as TdButtonProps['shape'],\n validator(val: TdButtonProps['shape']): boolean {\n if (!val) return true;\n return ['rectangle', 'square', 'round', 'circle'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdButtonProps['size'],\n validator(val: TdButtonProps['size']): boolean {\n if (!val) return true;\n return ['extra-small', 'small', 'medium', 'large'].includes(val);\n },\n },\n /** 右侧内容,可用于定义右侧图标 */\n suffix: {\n type: Function as PropType,\n },\n /** 渲染按钮的 HTML 标签,默认使用标签 `
\n );\n };\n\n return () => {\n return props.theme === 'card' ? renderCardItem() : renderNormalItem();\n };\n },\n});\n","import { defineComponent, PropType, computed, VNode, nextTick, ref, watch, onMounted } from 'vue';\nimport tabProps from './props';\n\n// hooks\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useResizeObserver from '../hooks/useResizeObserver';\nimport { debounce } from 'lodash-es';\n\nexport default defineComponent({\n props: {\n navs: {\n type: Array as PropType,\n },\n placement: tabProps.placement,\n value: tabProps.value,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const barRef = ref();\n const navBarClass = computed(() => {\n return [`${COMPONENT_NAME.value}__bar`, `${classPrefix.value}-is-${props.placement}`];\n });\n const navBarStyle = ref(null);\n const getStyle = () => {\n const isVertical = ['left', 'right'].includes(props.placement.toLowerCase());\n const [sizePropName, offsetPropName] = isVertical ? ['height', 'top'] : ['width', 'left'];\n let offset = 0;\n let i = 0;\n for (; i < props.navs.length; i++) {\n if (props.navs[i].props.value === props.value) {\n break;\n }\n if (props.navs[i]?.el) {\n const sizeWithUnit = getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left'];\n const size = parseFloat(sizeWithUnit);\n offset += size;\n }\n }\n if (!props.navs[i]) return {};\n return {\n [offsetPropName]: `${offset}px`,\n [sizePropName]: props.navs[i].el\n ? getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left']\n : '0px',\n };\n };\n const update = () => (navBarStyle.value = getStyle());\n\n onMounted(() => {\n nextTick(() => {\n update();\n });\n });\n\n watch([() => props.navs, () => props.value, () => props.placement], () => {\n nextTick(() => {\n update();\n });\n });\n\n useResizeObserver(\n barRef,\n debounce(() => {\n update();\n // 数值大了动画不流畅,小了会频繁触发,所以在合适区间里选择一个值\n }, 35),\n );\n return () => {\n return
;\n };\n },\n});\n","import { onUnmounted } from 'vue';\n\nconst traversalTabNavs = (tabNavs: HTMLCollection, fn: { (itemNode: any): void; (tabNav: HTMLDivElement): void }) => {\n for (const itemNode of tabNavs) {\n if (itemNode.getAttribute('draggable')) {\n fn(itemNode);\n }\n }\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): any => {\n let resultTarget;\n traversalTabNavs(tabNavs, (itemNode) => {\n if (itemNode.contains(target)) {\n resultTarget = itemNode;\n }\n });\n return resultTarget;\n};\n\nexport default function useDragSort(props: any) {\n let navsWrap: HTMLDivElement = null;\n\n // 获取当前正在拖动的tabNav节点\n let dragged: HTMLDivElement;\n const enterTargets: HTMLDivElement[] = [];\n\n const dragstart = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // const { target } = event;\n // 保存拖动元素的引用(ref.)\n dragged = target;\n // 使其半透明\n target.style.opacity = '0.5';\n };\n const dragend = (event: DragEvent) => {\n // 重置透明度\n (event.target as HTMLDivElement).style.opacity = '';\n };\n /* 放置目标元素时触发事件 */\n const dragover = (event: DragEvent) => {\n // 阻止默认动作以启用drop\n event.preventDefault();\n };\n // 当可拖动的元素进入可放置的目标时\n const dragenter = (event: DragEvent) => {\n // 高亮目标节点\n const target = handleTarget(event.target, navsWrap.children);\n if (target && target !== dragged && target.draggable) {\n target.firstChild.style.outline = '1px dashed #0052d9';\n // 进入的节点全部记录下来\n if (!enterTargets.includes(target)) {\n enterTargets.push(target);\n }\n }\n };\n // 当拖动元素离开可放置目标节点\n const dragleave = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // 重置其边框\n // const { target } = event;\n for (const enterTarget of enterTargets) {\n // 目标不在需要放入的节点内,则重置边框\n if (!enterTarget.contains(target)) {\n // 记录过的节点全部重置边框\n (enterTarget.firstChild as HTMLDivElement).style.outline = 'none';\n }\n }\n };\n const drop = (event: DragEvent) => {\n // 阻止默认动作(如打开一些元素的链接)\n event.preventDefault();\n\n traversalTabNavs(navsWrap.children, (tabNav) => {\n tabNav.firstChild.style.outline = 'none';\n });\n // 将拖动的元素到所选择的放置目标节点中\n let target = handleTarget(event.target, navsWrap.children);\n if (target && target.parentNode !== dragged && target.draggable) {\n // 获取拖拽元素index\n const dragIndex = [].indexOf.call(navsWrap.children, dragged);\n // 获取放入元素index\n const targetIndex = [].indexOf.call(navsWrap.children, target);\n if (targetIndex > dragIndex) {\n target = navsWrap.children[targetIndex + 1];\n }\n\n // 当props.theme === \"normal\" 会多出一个指示条为第一个dom节点,所以需要减1\n const currentIndex = props.theme === 'card' ? dragIndex : dragIndex - 1;\n const endIndex = props.theme === 'card' ? targetIndex : targetIndex - 1;\n props.onDragSort?.({\n currentIndex,\n current: props.panels[currentIndex].value,\n targetIndex: endIndex,\n target: props.panels[endIndex].value,\n });\n }\n };\n function setNavsWrap(val: HTMLDivElement) {\n navsWrap = val;\n navsWrap.addEventListener('dragstart', dragstart, false);\n navsWrap.addEventListener('dragend', dragend, false);\n navsWrap.addEventListener('dragover', dragover, false);\n navsWrap.addEventListener('dragenter', dragenter, false);\n document.addEventListener('dragleave', dragleave, false);\n document.addEventListener('mousemove', dragleave, false);\n navsWrap.addEventListener('drop', drop, false);\n }\n\n onUnmounted(() => {\n if (navsWrap) {\n navsWrap.removeEventListener('dragstart', dragstart);\n navsWrap.removeEventListener('dragend', dragend);\n navsWrap.removeEventListener('dragover', dragover);\n navsWrap.removeEventListener('dragenter', dragenter);\n document.removeEventListener('dragleave', dragleave);\n document.removeEventListener('mousemove', dragleave);\n navsWrap.removeEventListener('drop', drop);\n }\n });\n return { setNavsWrap };\n}\n","import { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n AddIcon as TdAddIcon,\n} from 'tdesign-icons-vue-next';\nimport { TdTabsProps } from './type';\nimport tabProps from './props';\nimport { calcMaxOffset, calcValidOffset, calculateOffset, calcPrevOrNextOffset } from '@tdesign/common-js/tabs/base';\n\n// 子组件\nimport TTabPanel from './tab-panel';\nimport TTabNavItem from './tab-nav-item';\nimport TTabNavBar from './tab-nav-bar';\n\n// hooks\nimport { useResize } from '../hooks/useListener';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport useDragSort from '../hooks/useDragSort';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTabNav',\n resizeObserver: null,\n props: {\n theme: tabProps.theme,\n panels: {\n type: Array as { new (): Array> },\n default: (): Array> => [] as Array>,\n },\n action: Array,\n value: tabProps.value,\n placement: tabProps.placement,\n scrollPosition: tabProps.scrollPosition,\n size: tabProps.size,\n disabled: tabProps.disabled,\n addable: tabProps.addable,\n onChange: tabProps.onChange,\n onAdd: tabProps.onAdd,\n onRemove: tabProps.onRemove,\n dragSort: tabProps.dragSort,\n onDragSort: tabProps.onDragSort,\n },\n setup(props) {\n const componentName = usePrefixClass('tabs');\n const { ChevronLeftIcon, ChevronRightIcon, AddIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n AddIcon: TdAddIcon,\n });\n const classPrefix = usePrefixClass();\n\n const { SIZE } = useCommonClassName();\n\n const scrollLeft = ref(0);\n\n // refs\n const navsContainerRef = ref();\n const navsWrapRef = ref();\n const leftOperationsRef = ref();\n const rightOperationsRef = ref();\n const toRightBtnRef = ref();\n const activeTabRef = ref();\n const maxScrollLeft = ref(0);\n const showAction = computed(() => {\n return ['top', 'bottom'].includes(props?.placement?.toLowerCase());\n });\n\n const getRefs = () => ({\n navsContainer: navsContainerRef.value,\n navsWrap: navsWrapRef.value,\n leftOperations: leftOperationsRef.value,\n rightOperations: rightOperationsRef.value,\n toRightBtn: toRightBtnRef.value,\n activeTab: activeTabRef.value,\n });\n\n // left right位置 选项卡的位置是在左右侧垂直方向铺开的\n const isVerticalPlacement = computed(() => ['left', 'right'].includes(props.placement.toLowerCase()));\n\n // 展示操作按钮\n const canToLeft = computed(() => scrollLeft.value > 1);\n const canToRight = computed(() => scrollLeft.value < maxScrollLeft.value - 1);\n\n // style\n const wrapTransformStyle = computed(() => {\n if (isVerticalPlacement.value) return {};\n return {\n transform: `translate3d(${-scrollLeft.value}px, 0, 0)`,\n };\n });\n const navsContainerStyle = computed(() => {\n return props.addable ? { 'min-height': '48px' } : null;\n });\n\n // class\n const iconBaseClass = computed(() => {\n return {\n [`${componentName.value}__btn`]: true,\n [SIZE.value.medium]: props.size === 'medium',\n [SIZE.value.large]: props.size === 'large',\n };\n });\n const leftIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--left`]: true,\n ...iconBaseClass.value,\n };\n });\n const rightIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--right`]: true,\n ...iconBaseClass.value,\n };\n });\n const addIconClass = computed(() => {\n return {\n [`${componentName.value}__add-btn`]: true,\n ...iconBaseClass.value,\n };\n });\n const navContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-container`]: true,\n [`${componentName.value}__nav--card`]: props.theme === 'card',\n [`${classPrefix.value}-is-${props.placement}`]: true,\n [`${classPrefix.value}-is-addable`]: props.addable,\n };\n });\n const navScrollContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-scroll`]: true,\n [`${classPrefix.value}-is-scrollable`]: canToLeft.value || canToRight.value,\n };\n });\n\n const navsWrapClass = computed(() => {\n return [\n `${componentName.value}__nav-wrap`,\n `${classPrefix.value}-is-smooth`,\n { [`${classPrefix.value}-is-vertical`]: isVerticalPlacement.value },\n ];\n });\n\n const setOffset = (offset: number) => {\n scrollLeft.value = calcValidOffset(offset, maxScrollLeft.value);\n };\n\n const handleScroll = (action: 'prev' | 'next') => {\n setOffset(calcPrevOrNextOffset(getRefs(), scrollLeft.value, action));\n };\n\n const handleWheel = (event: WheelEvent) => {\n if (!canToLeft.value && !canToRight.value) return;\n\n event.preventDefault();\n const { deltaX, deltaY } = event;\n\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n setOffset(scrollLeft.value + deltaX);\n } else {\n setOffset(scrollLeft.value + deltaY);\n }\n };\n\n const handleActiveTabScroll = () => {\n setTimeout(() => {\n setOffset(calculateOffset(getRefs(), scrollLeft.value, props.scrollPosition));\n }, 0);\n };\n\n const getMaxScrollLeft = () => {\n nextTick(() => {\n maxScrollLeft.value = calcMaxOffset(getRefs());\n });\n };\n\n // watch\n watch([() => props.placement, () => props.panels], getMaxScrollLeft);\n watch([() => props.scrollPosition], handleActiveTabScroll);\n\n // life times\n useResize(debounce(getMaxScrollLeft), navsContainerRef.value);\n\n const handleAddTab = (e: MouseEvent) => {\n props.onAdd?.({ e });\n };\n\n const tabClick = (event: MouseEvent, nav: Partial>) => {\n const { value, disabled } = nav;\n if (disabled || props.value === value) {\n return false;\n }\n props.onChange(value);\n };\n const removeBtnClick = ({ e, value, index }: Parameters[0]) => {\n props.onRemove({ e, value, index });\n };\n const setActiveTab = (ref: any) => {\n if (!ref?.$el) return;\n if (ref?.value === props.value && activeTabRef.value !== ref.$el) {\n activeTabRef.value = ref.$el;\n handleActiveTabScroll();\n }\n };\n\n const { setNavsWrap } = useDragSort(props);\n\n onMounted(() => {\n setNavsWrap(navsWrapRef.value);\n getMaxScrollLeft();\n handleActiveTabScroll();\n });\n // renders\n const renderNavsContent = () => {\n return props.panels.map((panel, index) => {\n let label;\n if (panel?.children?.label) {\n label = panel.children.label();\n } else if (isFunction(panel.label)) {\n label = panel.label(h);\n } else {\n label = panel.label || `选项卡${index + 1}`;\n }\n let draggable = props.dragSort;\n if (draggable && panel.draggable === false) {\n draggable = panel.draggable;\n }\n return (\n tabClick(e, panel)}\n onRemove={removeBtnClick}\n />\n );\n });\n };\n const renderArrows = () => {\n return [\n \n \n {canToLeft.value ? (\n
handleScroll('prev')}>\n \n
\n ) : null}\n
\n ,\n \n \n {canToRight.value ? (\n
handleScroll('next')}>\n \n
\n ) : null}\n
\n {props.addable ? (\n
\n \n
\n ) : null}\n {showAction.value && props.action}\n ,\n ];\n };\n const renderNavs = () => {\n const navContent = renderNavsContent();\n return (\n
\n
\n
\n {props.theme !== 'card' && (\n \n )}\n {navContent}\n
\n
\n
\n );\n };\n\n return () => {\n return (\n
\n {renderArrows()}\n {renderNavs()}\n
\n );\n };\n },\n});\n","import { ComponentPublicInstance, defineComponent, provide, Ref, toRefs } from 'vue';\nimport TTabPanel from './tab-panel';\nimport TTabNav from './tab-nav';\nimport { TabValue, TdTabsProps } from './type';\nimport props from './props';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nexport interface InjectTabs {\n value: Ref;\n}\n\nexport default defineComponent({\n name: 'TTabs',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { value, modelValue } = toRefs(props);\n const [tabValue, setTabValue] = useVModel(value, modelValue, props.defaultValue || '', props.onChange);\n\n provide('tabs', { value: tabValue });\n\n // methods\n const onTabAdd = (context: { e: MouseEvent }) => {\n props.onAdd?.({ e: context.e });\n };\n const onTabChange = (value: TabValue) => {\n setTabValue(value);\n };\n const onTabRemove = ({ e, value, index }: Parameters[0]) => {\n props.onRemove?.({ value, index, e });\n };\n\n // render\n const getSlotPanels = () => {\n const content = renderTNodeJSX('default');\n if (!content) return [];\n\n const flatContent = (ct: any) => {\n return ct\n .map((item: ComponentPublicInstance) => {\n if (item.children && isArray(item.children)) return flatContent(item.children);\n return item;\n })\n .flat()\n .filter((item: ComponentPublicInstance) => {\n return item.type.name === 'TTabPanel';\n });\n };\n\n return flatContent(content);\n };\n const renderHeader = () => {\n const panels = (props.list?.length ? props.list : getSlotPanels()) || [];\n const actionContent = renderTNodeJSX('action');\n const panelsData = panels.map((item: ComponentPublicInstance) => {\n const selfItem = item;\n\n if (item.props) {\n Object.keys(item.props).forEach((key) => {\n selfItem[key] = item.props[key];\n });\n }\n\n return selfItem;\n });\n const tabNavProps = {\n theme: props.theme,\n value: tabValue.value,\n size: props.size,\n disabled: props.disabled,\n placement: props.placement,\n scrollPosition: props.scrollPosition,\n addable: props.addable,\n panels: panelsData,\n dragSort: props.dragSort,\n action: actionContent,\n };\n return (\n \n \n \n );\n };\n const renderContent = () => {\n const panels = getSlotPanels();\n if (props.list?.length) {\n return props.list.map((item) => );\n }\n if (panels && panels.length) {\n return
{panels}
;\n }\n };\n\n return () => {\n return (\n
\n {props.placement !== 'bottom' ? [renderHeader(), renderContent()] : [renderContent(), renderHeader()]}\n
\n );\n };\n },\n});\n","import _Tabs from './tabs';\nimport _TabPanel from './tab-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdTabsProps, TdTabPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TabsProps = TdTabsProps;\nexport type TabPanelProps = TdTabPanelProps;\n\nexport const Tabs = withInstall(_Tabs);\nexport const TabPanel = withInstall(_TabPanel);\nexport default Tabs;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSubmenuProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 菜单项图标 */\n icon: {\n type: Function as PropType,\n },\n /** 透传 Popup 组件全部特性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 二级菜单内容 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, PropType, computed, CSSProperties } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\n\n// 统一使用的翻转箭头组件\nexport default defineComponent({\n name: 'TFakeArrow',\n props: {\n // 是否active状态 active状态下箭头向上翻转\n isActive: {\n type: Boolean as PropType,\n },\n overlayClassName: {\n type: [String, Object, Array],\n },\n overlayStyle: {\n type: Object || (String as PropType),\n },\n },\n\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('fake-arrow');\n const classes = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--active`]: props.isActive,\n },\n props.overlayClassName,\n ]);\n\n return () => (\n \n \n \n );\n },\n});\n","import {\n defineComponent,\n computed,\n inject,\n ref,\n provide,\n onMounted,\n getCurrentInstance,\n watch,\n Slots,\n toRefs,\n reactive,\n nextTick,\n Transition,\n} from 'vue';\nimport props from './submenu-props';\nimport { TdMenuInterface, TdSubMenuInterface, TdMenuItem } from './types';\nimport FakeArrow from '../common-components/fake-arrow';\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\nimport useCollapseAnimation from '../hooks/useCollapseAnimation';\n\nexport default defineComponent({\n name: 'TSubmenu',\n props,\n setup(props: TdSubmenuProps, { attrs, slots }) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const instance = getCurrentInstance();\n const menu = inject('TdMenu');\n const { value } = toRefs(props);\n const { theme, activeValues, expandValues, isHead, open } = menu;\n const submenu = inject('TdSubmenu', {});\n const { setSubPopup, closeParentPopup } = submenu;\n const mode = computed(() => attrs.expandType || menu.mode.value);\n\n const menuItems = ref([]); // 因composition-api的缺陷,不用reactive, 详见:https://github.com/vuejs/composition-api/issues/637\n const isActive = computed(() => activeValues.value.indexOf(props.value) > -1);\n const popupVisible = ref(false);\n const isCursorInPopup = ref(false);\n const rippleColor = computed(() => (theme.value === 'light' ? '#E7E7E7' : '#383838'));\n const isOpen = computed(() => {\n if (mode.value === 'popup') {\n return popupVisible.value;\n }\n return expandValues ? expandValues.value?.includes(props.value) : false;\n });\n const isNested = ref(false); // 是否嵌套\n\n const popupWrapperRef = ref();\n const subPopupRef = ref();\n const submenuRef = ref();\n const transitionClass = usePrefixClass('slide-down');\n useRipple(submenuRef, rippleColor);\n\n const classes = computed(() => [\n `${classPrefix.value}-submenu`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const overlayInnerClassName = computed(() => [\n `${classPrefix.value}-menu__popup`,\n `${classPrefix.value}-is-${isHead ? 'horizontal' : 'vertical'}`,\n {\n [`${classPrefix.value}-is-opened`]: popupVisible.value,\n },\n props.popupProps?.overlayInnerClassName,\n ]);\n const overlayClassName = computed(() => [\n `${classPrefix.value}-menu--${theme.value}`,\n isHead && `${classPrefix.value}-is-head-menu`,\n { [`${classPrefix.value}-menu-is-nested`]: isNested.value },\n props.popupProps?.overlayClassName,\n ]);\n const submenuClass = computed(() => [\n `${classPrefix.value}-menu__item`,\n `${classPrefix.value}-menu__item-spacer`,\n `${classPrefix.value}-menu__item-spacer--${isHead && !isNested.value ? 'bottom' : 'right'}`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n [`${classPrefix.value}-is-active`]: isActive.value,\n },\n ]);\n const subClass = computed(() => [\n `${classPrefix.value}-menu__sub`,\n {\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const arrowClass = computed(() => [\n {\n [`${classPrefix.value}-fake-arrow--active`]: isOpen.value,\n },\n ]);\n\n provide(\n 'TdSubmenu',\n reactive({\n value,\n addMenuItem: (item: TdMenuItem) => {\n menuItems.value.push(item);\n if (submenu) {\n submenu.addMenuItem(item);\n }\n },\n setSubPopup: (ref: HTMLElement) => {\n subPopupRef.value = ref;\n },\n closeParentPopup: (e: MouseEvent) => {\n const related = e.relatedTarget as HTMLElement;\n if (loopInPopup(related)) return;\n handleMouseLeavePopup(e);\n },\n }),\n );\n\n const passSubPopupRefToParent = (val: HTMLElement) => {\n if (isFunction(setSubPopup)) {\n setSubPopup(val);\n }\n };\n\n // methods\n const handleMouseEnter = () => {\n if (props.disabled) return;\n setTimeout(() => {\n if (!popupVisible.value) {\n open(props.value);\n\n // popupVisible设置为TRUE之后打开popup,因此需要在nextTick中确保可以拿到ref值\n nextTick().then(() => {\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n }\n popupVisible.value = true;\n }, 0);\n };\n\n const targetInPopup = (el: HTMLElement) => el?.classList.contains(`${classPrefix.value}-menu__popup`);\n const loopInPopup = (el: HTMLElement): boolean => {\n if (!el) return false;\n return targetInPopup(el) || loopInPopup(el.parentElement);\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n setTimeout(() => {\n const inPopup = targetInPopup(e.relatedTarget as HTMLElement);\n\n if (isCursorInPopup.value || inPopup) return;\n popupVisible.value = false;\n }, 0);\n };\n\n const handleMouseLeavePopup = (e: any) => {\n const { toElement, relatedTarget } = e;\n let target = toElement || relatedTarget;\n\n if (target === subPopupRef.value) return;\n\n const isSubmenu = (el: Element) => el === submenuRef.value;\n while (target !== null && target !== document && !isSubmenu(target)) {\n target = target.parentNode;\n }\n\n isCursorInPopup.value = false;\n\n if (!isSubmenu(target)) {\n popupVisible.value = false;\n }\n\n closeParentPopup?.(e);\n };\n const handleEnterPopup = () => {\n isCursorInPopup.value = true;\n };\n\n const handleSubmenuItemClick = () => {\n if (props.disabled) return;\n open(props.value);\n };\n\n const renderPopup = (triggerElement: Slots[]) => {\n let placement: PopupPlacement = 'right-top';\n if (!isNested.value && isHead) {\n placement = 'bottom-left';\n }\n\n const popupWrapper = (\n \n
    {renderContent('default', 'content')}
\n \n );\n\n const slots = {\n content: () => popupWrapper,\n };\n\n const realPopup = (\n \n
\n {triggerElement}\n
\n \n );\n\n return realPopup;\n };\n\n const renderHeadSubmenu = () => {\n const icon = renderTNodeJSX('icon');\n const normalSubmenu = [\n
\n {icon}\n {renderTNodeJSX('title', { silent: true })}\n
,\n
    {renderContent('default', 'content')}
,\n ];\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n const renderSubmenu = () => {\n const hasContent = slots.content || slots.default;\n const icon = renderTNodeJSX('icon');\n const child = renderContent('default', 'content');\n let parent = instance.parent;\n let paddingLeft = 44;\n\n while (parent && parent.type.name !== 'TMenu') {\n if (parent.type.name === 'TSubmenu') {\n paddingLeft += 16;\n }\n parent = parent.parent;\n }\n\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const normalSubmenu = [\n
\n {icon}\n {renderTNodeJSX('title', { silent: true })}\n {hasContent && (\n \n )}\n
,\n \n
    \n {child}\n
\n ,\n ];\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n watch(popupVisible, (visible) => {\n menu.open(props.value, visible ? 'add' : 'remove');\n });\n\n watch(popupWrapperRef, () => {\n // 第一次触发nextTick会取空值,导致subPopupRef拿不到对应的DOM\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: slots.default });\n let node = instance.parent;\n\n while (node && !/^t(head)?menu/i.test(node?.type.name)) {\n if (/submenu/i.test(node?.type.name)) {\n isNested.value = true;\n break;\n }\n node = node?.parent;\n }\n });\n\n return () => {\n let child = null;\n let events = {};\n\n if (mode.value === 'popup') {\n events = {\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n };\n }\n if (Object.keys(slots).length > 0) {\n child = isHead ? renderHeadSubmenu() : renderSubmenu();\n }\n\n return (\n
  • \n {child}\n
  • \n );\n };\n },\n});\n","export default function useCollapseAnimation() {\n const beforeEnter = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n };\n const enter = (el: HTMLElement) => {\n el.dataset.oldOverflow = el.style.overflow;\n el.style.height = `${el.scrollHeight}px`;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n el.style.overflow = 'hidden';\n };\n const afterEnter = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n };\n const beforeLeave = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n\n el.style.height = `${el.scrollHeight}px`;\n el.style.overflow = 'hidden';\n };\n const leave = (el: HTMLElement) => {\n if (el.scrollHeight !== 0) {\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n }\n };\n const afterLeave = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n };\n\n return {\n beforeEnter,\n enter,\n afterEnter,\n beforeLeave,\n leave,\n afterLeave,\n };\n}\n","import {\n defineComponent,\n computed,\n provide,\n ref,\n reactive,\n watch,\n onMounted,\n watchEffect,\n toRefs,\n h,\n VNode,\n Component,\n getCurrentInstance,\n} from 'vue';\nimport { EllipsisIcon } from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport log from '@tdesign/common-js/log/log';\nimport props from './head-menu-props';\nimport { MenuValue } from './type';\nimport { TdMenuInterface, TdOpenType } from './types';\nimport { Tabs, TabPanel } from '../tabs';\nimport Submenu from './submenu';\nimport { VMenu } from './utils';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'THeadMenu',\n props,\n setup(props, ctx) {\n const classPrefix = usePrefixClass();\n const { proxy } = getCurrentInstance();\n watchEffect(() => {\n if (ctx.slots.options) {\n log.warnOnce('TMenu', '`options` slot is going to be deprecated, please use `operations` for slot instead.');\n }\n });\n const { value, modelValue, expanded } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [expandValues, setExpanded] = useDefaultValue(expanded, props.defaultExpanded, props.onExpand, 'expanded');\n const activeValues = ref([]);\n const theme = computed(() => props.theme);\n const menuClass = computed(() => [\n `${classPrefix.value}-menu`,\n `${classPrefix.value}-head-menu`,\n `${classPrefix.value}-menu--${props.theme}`,\n ]);\n const mode = ref(props.expandType);\n const submenu = reactive([]);\n const vMenu = new VMenu({ isMutex: true, expandValues: expandValues.value });\n\n provide('TdMenu', {\n mode,\n theme,\n vMenu,\n isHead: true,\n expandValues,\n activeValue,\n activeValues,\n select: (value: MenuValue) => {\n setActiveValue(value);\n },\n open: (value: MenuValue, type: TdOpenType) => {\n const expanded = [...expandValues.value];\n const index = expanded.indexOf(value);\n\n if (mode.value === 'popup') {\n if (type === 'add') {\n if (index === -1) {\n // 可能初始expanded里包含了该value\n expanded.push(value);\n }\n } else if (type === 'remove') {\n expanded.splice(index, 1);\n }\n } else if (mode.value === 'normal' && value !== undefined) {\n expanded.splice(0, 1);\n if (index === -1) {\n expanded.push(value);\n }\n }\n setExpanded(expanded);\n },\n });\n\n // methods\n const handleTabChange = (value: MenuValue) => {\n setActiveValue(value);\n handleClickSubMenuItem(value);\n };\n\n const handleSubmenuExpand = (value: MenuValue) => {\n const ans = vMenu.getChild(value);\n submenu.length = 0;\n submenu.push(...ans);\n };\n\n // watch\n watch(expandValues, (value) => {\n if (mode.value === 'normal') {\n handleSubmenuExpand(value[0]);\n }\n });\n const updateActiveValues = (value: MenuValue) => {\n activeValues.value = vMenu.select(value);\n };\n watch(activeValue, updateActiveValues);\n watch(\n () => props.expandType,\n (value) => {\n mode.value = value;\n },\n );\n\n onMounted(() => {\n activeValues.value = vMenu.select(activeValue.value);\n if (expandValues.value?.length > 0) {\n handleSubmenuExpand(expandValues.value[0]); // 顶部导航只能同时展开一个子菜单\n }\n });\n\n const handleClickSubMenuItem = (value: MenuValue) => {\n const activeMenuItem = submenu.find((v) => v.value === value);\n activeMenuItem.onClick?.({ value });\n const { to, href, replace } = activeMenuItem;\n if (href) {\n window.location.href = activeMenuItem.href;\n }\n const router = activeMenuItem.router || proxy.$router;\n if (to && router) {\n replace ? router.replace(to) : router.push(to);\n }\n };\n // setup返回的render函数中无法访问methods属性中的类容,移动此方法到setup中\n const renderNormalSubmenu = () => {\n if (submenu.length === 0) return null;\n return (\n
      \n {\n \n {submenu.map((item) => (\n \n ))}\n \n }\n
    \n );\n };\n\n const menuRef = ref();\n const innerRef = ref();\n const logoRef = ref();\n const operationRef = ref();\n\n const getComputedCss = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n getComputedStyle(el)[cssProperty] ?? '';\n\n const getComputedCssValue = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n Number.parseInt(String(getComputedCss(el, cssProperty)), 10);\n\n const calcMenuWidth = () => {\n const menuPaddingLeft = getComputedCssValue(menuRef.value, 'paddingLeft');\n const menuPaddingRight = getComputedCssValue(menuRef.value, 'paddingRight');\n let totalWidth = innerRef.value.clientWidth;\n if (logoRef.value) {\n const logoMarginLeft = getComputedCssValue(logoRef.value, 'marginLeft');\n const logoMarginRight = getComputedCssValue(logoRef.value, 'marginRight');\n totalWidth = totalWidth - logoRef.value.offsetWidth - logoMarginLeft - logoMarginRight;\n }\n\n if (operationRef.value) {\n const operationMarginLeft = getComputedCssValue(operationRef.value, 'marginLeft');\n const operationMarginRight = getComputedCssValue(operationRef.value, 'marginRight');\n totalWidth = totalWidth - operationRef.value.offsetWidth - operationMarginLeft - operationMarginRight;\n }\n\n return totalWidth - menuPaddingLeft - menuPaddingRight;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const formatContent = () => {\n let slot = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n if (menuRef.value && innerRef.value) {\n const validNodes = Array.from(menuRef.value.childNodes ?? []).filter(\n (item) => item.nodeName !== '#text' || item.nodeValue,\n ) as HTMLElement[];\n\n const menuWidth = calcMenuWidth();\n const menuItemMinWidth = 104;\n\n let remainWidth = menuWidth;\n let sliceIndex = validNodes.length;\n\n for (let index = 0; index < validNodes.length; index++) {\n const element = validNodes[index];\n remainWidth -= element.offsetWidth || 0;\n if (remainWidth < menuItemMinWidth) {\n sliceIndex = index;\n break;\n }\n }\n\n const defaultSlot = slot.slice(0, sliceIndex);\n const subMore = slot.slice(sliceIndex);\n\n if (subMore.length) {\n slot = defaultSlot.concat(\n }>\n {subMore}\n ,\n );\n }\n }\n return slot;\n };\n\n const initVMenu = (slots: VNode[], parentValue?: string) => {\n slots.forEach((node) => {\n const nodeValue = node.props?.value;\n if ((node.type as Component)?.name === 'TSubmenu' || (node.type as Component)?.name === 'TMenuItem') {\n vMenu.add({ value: nodeValue, parent: parentValue, vnode: (node.children as any).default, ...node.props });\n }\n if (isFunction((node.children as any)?.default)) {\n initVMenu((node.children as any).default(), nodeValue);\n return;\n }\n if (isArray(node.children)) {\n initVMenu(node.children as VNode[], nodeValue);\n }\n });\n };\n initVMenu(ctx.slots.default?.() || ctx.slots.content?.() || []);\n\n return () => {\n const logo = props.logo?.(h) || ctx.slots.logo?.();\n const operations = props.operations?.(h) || ctx.slots.operations?.() || ctx.slots.options?.();\n\n // TODO: 判断逻辑不够完善 影响封装组件的子菜单样式渲染 暂时先不执行 待调整实现方案\n // const content = formatContent();\n const content = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n return (\n
    \n
    \n {logo && (\n
    \n {logo}\n
    \n )}\n
      \n {content}\n
    \n {operations && (\n
    \n {operations}\n
    \n )}\n
    \n {mode.value === 'normal' && renderNormalSubmenu()}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuItemProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 跳转链接,菜单项渲染为a标签,当routerLink为true时将使用Router进行路由跳转 */\n href: {\n type: String,\n default: '',\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 路由跳转是否采用覆盖的方式(覆盖后将没有浏览器历史记录) */\n replace: Boolean,\n /** 路由对象。如果项目存在 Router,则默认使用 Router。 */\n router: {\n type: Object as PropType,\n },\n /**\n * 菜单项内容是否渲染为使用Router进行跳转的a标签,当且仅当 Router 存在时,该 API 有效\n */\n routerLink: Boolean,\n /** 链接或路由跳转方式 */\n target: {\n type: String as PropType,\n default: '_self' as TdMenuItemProps['target'],\n validator(val: TdMenuItemProps['target']): boolean {\n if (!val) return true;\n return ['_blank', '_self', '_parent', '_top'].includes(val);\n },\n },\n /** 路由跳转目标,当且仅当 Router 存在时,该 API 有效 */\n to: {\n type: [String, Object] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, inject, onMounted, ref, toRefs, getCurrentInstance } from 'vue';\nimport props from './menu-item-props';\nimport { TdMenuInterface, TdSubMenuInterface } from './types';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport Tooltip from '../tooltip';\nimport type { TdMenuItemProps } from './type';\n\nexport default defineComponent({\n name: 'TMenuItem',\n props,\n emits: ['click'],\n setup(props: TdMenuItemProps, ctx) {\n const { href, target, to, disabled, value, onClick, routerLink, replace } = toRefs(props);\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const menu = inject('TdMenu');\n const itemRef = ref();\n const instance = getCurrentInstance();\n\n useRipple(itemRef);\n const submenu = inject('TdSubmenu', null);\n const active = computed(() => menu.activeValue.value === props.value);\n const collapsed = computed(() => menu.collapsed?.value);\n const classes = computed(() => [\n `${classPrefix.value}-menu__item`,\n {\n [`${classPrefix.value}-is-active`]: active.value,\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-menu__item--plain`]: !ctx.slots.icon && !props.icon,\n [`${classPrefix.value}-submenu__item`]: !!submenu && !menu.isHead,\n },\n ]);\n const router = computed(() => props.router || instance?.proxy.$router);\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n if (disabled.value) return;\n menu.select(value.value);\n onClick.value?.({ e, value: value.value });\n if (to.value || (routerLink.value && href.value)) {\n const methods = replace.value ? 'replace' : 'push';\n router.value[methods](to.value || href.value).catch((err: Error) => {\n // vue-router 3.1.0+ push/replace cause NavigationDuplicated error\n // https://github.com/vuejs/vue-router/issues/2872\n // 当前path和目标path相同时,会抛出NavigationDuplicated的错误\n if (\n err.name !== 'NavigationDuplicated' &&\n !err.message.includes('Avoided redundant navigation to current location')\n ) {\n throw err;\n }\n });\n }\n submenu?.closeParentPopup?.(e);\n };\n\n // lifetimes\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: ctx.slots.default, ...props });\n });\n\n return () => {\n const liContent = (\n
  • \n {renderTNodeJSX('icon')}\n {routerLink.value ? (\n e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : href.value ? (\n disabled.value && e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : (\n {renderContent('default', 'content')}\n )}\n
  • \n );\n\n const node = instance?.parent;\n // 菜单收起,且只有本身为一级菜单才需要显示 tooltip\n if (collapsed.value && /tmenu/i.test(node?.type.name)) {\n return (\n renderContent('default', 'content')} placement=\"right\">\n {liContent}\n \n );\n }\n return liContent;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuGroupProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单组标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './menu-group-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TMenuGroup',\n props,\n setup() {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n return () => (\n
    \n
    {renderTNodeJSX('title', { silent: false })}
    \n {renderTNodeJSX('default')}\n
    \n );\n },\n});\n","import _Menu from './menu';\nimport _HeadMenu from './head-menu';\nimport _Submenu from './submenu';\nimport _MenuItem from './menu-item';\nimport _MenuGroup from './menu-group';\nimport withInstall from '../utils/withInstall';\nimport { TdMenuProps, TdHeadMenuProps, TdSubmenuProps, TdMenuItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type MenuProps = TdMenuProps;\nexport type HeadMenuProps = TdHeadMenuProps;\nexport type SubmenuProps = TdSubmenuProps;\nexport type MenuItemProps = TdMenuItemProps;\n\nexport const Menu = withInstall(_Menu);\nexport const HeadMenu = withInstall(_HeadMenu);\nexport const Submenu = withInstall(_Submenu);\nexport const MenuItem = withInstall(_MenuItem);\nexport const MenuGroup = withInstall(_MenuGroup);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n default: 'left' as TdInputProps['align'],\n validator(val: TdInputProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 超出 `maxlength` 或 `maxcharacter` 之后是否允许继续输入 */\n allowInputOverMax: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否开启自动填充功能,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) */\n autocomplete: {\n type: String,\n default: undefined,\n },\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 是否开启无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式。注意 `type=number` 时请勿使用,此功能建议更为使用 `InputNumber` 组件 */\n format: {\n type: Function as PropType,\n },\n /** t-input 同级类名,示例:'name1 name2 name3' 或 `['name1', 'name2']` 或 `[{ 'name1': true }]` */\n inputClass: {\n type: [String, Object, Array] as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的文本长度,一个中文等于一个计数长度。默认为空,不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 是否在输入框右侧显示字数统计 */\n showLimitNumber: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputProps['size'],\n validator(val: TdInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否开启拼写检查,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/spellcheck) */\n spellCheck: Boolean,\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputProps['status'],\n validator(val: TdInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框类型。`type=number` 仅支持最基础的数字输入功能,更多功能建议使用 `InputNumber` 组件 */\n type: {\n type: String as PropType,\n default: 'text' as TdInputProps['type'],\n validator(val: TdInputProps['type']): boolean {\n if (!val) return true;\n return ['text', 'number', 'url', 'tel', 'password', 'search', 'submit', 'hidden'].includes(val);\n },\n },\n /** 输入框的值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n /** 输入框的值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发。参数 `trigger=initial` 表示传入的数据不符合预期,组件自动处理后触发 change 告知父组件。如:初始值长度超过 `maxlength` 限制 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n /** 输入框中滚动鼠标时触发 */\n onWheel: Function as PropType,\n};\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\nimport { TdFormProps } from '../form/type';\n\nexport interface FormReadonlyProvider {\n readonly: Ref;\n}\n\nexport interface ReadonlyContext {\n beforeReadonly?: Ref;\n afterReadonly?: Ref;\n}\n\n/**\n * 用于实现组件全局只读状态的hook\n * 优先级:(beforeReadonly) > Component.readonly > ComponentGroup.readonly(afterReadonly) > Form.readonly\n * @returns\n */\nexport function useReadonly(context?: ReadonlyContext) {\n const currentInstance = getCurrentInstance();\n const componentReadonly = computed(() => currentInstance.props.readonly as boolean);\n\n const formReadonly = inject('formReadonly', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value;\n // Component\n if (isBoolean(componentReadonly?.value)) return componentReadonly.value;\n // ComponentGroup\n if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value;\n // Form\n if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value;\n\n return false;\n });\n}\n","import { computed, InjectionKey } from 'vue';\nimport { FormItemValidateResult } from '../form-item';\nimport {\n AllValidateResult,\n Data,\n FormItemValidateMessage,\n FormRule,\n TdFormItemProps,\n TdFormProps,\n ValidateResultType,\n ValidateTriggerType,\n} from '../type';\nimport { usePrefixClass, useTNodeJSX } from '../../hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n 'TInput',\n 'TInputNumber',\n 'TTextarea',\n 'TCascader',\n 'TSelect',\n 'TOption',\n 'TSwitch',\n 'TCheckbox',\n 'TCheckboxGroup',\n 'TRadio',\n 'TRadioGroup',\n 'TTreeSelect',\n 'TDatePicker',\n 'TTimePicker',\n 'TUpload',\n 'TTransfer',\n 'TSlider',\n];\n\nexport const useCLASSNAMES = () => {\n const classPrefix = usePrefixClass();\n\n return computed(() => {\n const form = `${classPrefix.value}-form`;\n const input = `${classPrefix.value}-input`;\n const is = `${classPrefix.value}-is`;\n\n return {\n form,\n label: `${form}__label`,\n labelTop: `${form}__label--top`,\n inline: `${form}-inline`,\n formItem: `${form}__item`,\n formItemWithHelp: `${form}__item-with-help`,\n formItemWithExtra: `${form}__item-with-extra`,\n controls: `${form}__controls`,\n controlsContent: `${form}__controls-content`,\n status: `${form}__status`,\n extra: `${input}__extra`,\n help: `${input}__help`,\n success: `${is}-success`,\n successBorder: `${form}--success-border`,\n error: `${is}-error`,\n warning: `${is}-warning`,\n };\n });\n};\n\nexport const enum ValidateStatus {\n TO_BE_VALIDATED = 'not',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type ErrorListType =\n | {\n result: false;\n message: string;\n type: 'error' | 'warning';\n }\n | ValidateResultType;\n\nexport type SuccessListType =\n | {\n result: true;\n message: string;\n type: 'success';\n }\n | ValidateResultType;\n\nexport interface AnalysisValidateResult {\n successList?: SuccessListType[];\n errorList?: ErrorListType[];\n rules: FormRule[];\n resultList: AllValidateResult[];\n allowSetValue: boolean;\n}\n\nexport interface FormItemContext {\n name: TdFormItemProps['name'];\n resetHandler: () => void;\n resetField: (resetType?: 'initial' | 'empty') => Promise;\n validate: (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ) => Promise>;\n validateOnly: (trigger: ValidateTriggerType) => Promise>;\n setValidateMessage: (validateMessage: FormItemValidateMessage[]) => void;\n}\n\nexport const FormInjectionKey: InjectionKey<{\n showErrorMessage: TdFormProps['showErrorMessage'];\n labelWidth: TdFormProps['labelWidth'];\n labelAlign: TdFormProps['labelAlign'];\n data: TdFormProps['data'];\n colon: TdFormProps['colon'];\n requiredMark: TdFormProps['requiredMark'];\n requiredMarkPosition: TdFormProps['requiredMarkPosition'];\n rules: TdFormProps['rules'];\n errorMessage: TdFormProps['errorMessage'];\n resetType: TdFormProps['resetType'];\n children: FormItemContext[];\n renderContent: ReturnType;\n}> = Symbol('FormProvide');\n\nexport const FormItemInjectionKey: InjectionKey<{\n handleBlur: () => Promise;\n}> = Symbol('FormItemProvide');\n","import { computed, ComputedRef, onMounted, watch } from 'vue';\nimport { TdInputProps } from './../type';\nimport log from '@tdesign/common-js/log/index';\nimport { getCharacterLength, getUnicodeLength, limitUnicodeMaxLength } from '@tdesign/common-js/utils/helper';\nimport { isNumber, isObject } from 'lodash-es';\n\nexport interface UseLengthLimitParams {\n value: string;\n maxlength: number;\n maxcharacter: number;\n allowInputOverMax: boolean;\n status: TdInputProps['status'];\n onValidate: TdInputProps['onValidate'];\n}\n\nexport function useLengthLimit(params: ComputedRef) {\n // 文本超出数量限制时,是否允许继续输入\n const getValueByLimitNumber = (inputValue: string) => {\n const { allowInputOverMax, maxlength, maxcharacter } = params.value;\n if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;\n if (maxlength) {\n // input value could be unicode 😊\n return limitUnicodeMaxLength(inputValue, maxlength);\n }\n if (maxcharacter) {\n const r = getCharacterLength(inputValue, maxcharacter);\n if (isObject(r)) {\n return r.characters;\n }\n }\n };\n\n const limitNumber = computed(() => {\n const { maxlength, maxcharacter, value } = params.value;\n if (isNumber(value)) return String(value);\n if (maxlength && maxcharacter) {\n log.warn('Input', 'Pick one of maxlength and maxcharacter please.');\n }\n if (maxlength) {\n const length = value?.length ? getUnicodeLength(value) : 0;\n return `${length}/${maxlength}`;\n }\n if (maxcharacter) {\n return `${getCharacterLength(value || '')}/${maxcharacter}`;\n }\n return '';\n });\n\n const innerStatus = computed(() => {\n if (limitNumber.value) {\n const [current, total] = limitNumber.value.split('/');\n return Number(current) > Number(total) ? 'error' : '';\n }\n return '';\n });\n\n const tStatus = computed(() => {\n const { status } = params.value;\n return status || innerStatus.value;\n });\n\n const onValidateChange = () => {\n params.value.onValidate?.({\n error: innerStatus.value ? 'exceed-maximum' : undefined,\n });\n };\n\n watch(innerStatus, onValidateChange);\n\n onMounted(() => {\n innerStatus.value && onValidateChange();\n });\n\n return {\n tStatus,\n limitNumber,\n getValueByLimitNumber,\n };\n}\n","import { ref, computed, watch, nextTick, toRefs, inject } from 'vue';\nimport { InputValue, TdInputProps } from './../type';\nimport { FormItemInjectionKey } from '../../form/consts';\nimport useVModel from '../../hooks/useVModel';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useLengthLimit } from './useLengthLimit';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport function getOutputValue(val: InputValue, type: TdInputProps['type']) {\n if (type === 'number') {\n return val || val === 0 ? Number(val) : undefined;\n }\n return val;\n}\n\nexport interface ExtendsTdInputProps extends TdInputProps {\n showInput: boolean;\n keepWrapperWidth: boolean;\n}\n\nexport function useInput(props: ExtendsTdInputProps, expose: (exposed: Record) => void) {\n const { value, modelValue } = toRefs(props);\n const inputValue = ref();\n const isComposition = ref(false);\n const compositionValue = ref();\n const clearIconRef = ref(null);\n const innerClickElement = ref();\n const disabled = useDisabled();\n const readonly = useReadonly();\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const isHover = ref(false);\n const focused = ref(false);\n const renderType = ref(props.type);\n const inputRef = ref(null);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { limitNumber, getValueByLimitNumber, tStatus } = useLengthLimit(limitParams);\n\n const showClear = computed(() => {\n return (\n ((innerValue.value && !disabled.value && props.clearable && !readonly.value) || props.showClearIconOnEmpty) &&\n isHover.value\n );\n });\n\n const focus = () => {\n focused.value = true;\n inputRef.value?.focus();\n };\n\n const blur = () => {\n focused.value = false;\n inputRef.value?.blur();\n };\n\n const emitFocus = (e: FocusEvent) => {\n if (isHover.value && focused.value) return;\n inputValue.value = innerValue.value;\n if (props.disabled) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const emitClear = ({ e }: { e: MouseEvent }) => {\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val, { e, trigger: 'clear' });\n props.onClear?.({ e });\n };\n\n const onClearIconMousedown = (e: MouseEvent) => {\n innerClickElement.value = e.target;\n };\n\n const emitPassword = () => {\n if (disabled.value) return;\n const toggleType = renderType.value === 'password' ? 'text' : 'password';\n renderType.value = toggleType;\n };\n\n const setInputElValue = (v: InputValue = '') => {\n const inputEl = inputRef.value as HTMLInputElement;\n if (!inputEl) return;\n const sV = String(v);\n if (!inputEl.value) {\n return;\n }\n if (inputEl.value !== sV) {\n inputEl.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent | CompositionEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n // over length: allow delete; not add\n if (props.type !== 'number' && typeof innerValue.value === 'string' && val.length > innerValue.value?.length) {\n val = getValueByLimitNumber(val);\n }\n setInnerValue(getOutputValue(val, props.type), { e, trigger: 'input' });\n // 受控\n nextTick(() => {\n // type = 'number'时, 解决小数点后面有 0 自动删除的问题\n if (props.type === 'number' && /\\.(\\d+)?0$/.test(val)) {\n setInputElValue(val);\n } else {\n setInputElValue(innerValue.value);\n }\n });\n };\n\n const handleInput = (e: InputEvent) => {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n const {\n currentTarget: { value: val },\n }: any = e;\n if (checkInputType || isComposition.value) {\n compositionValue.value = val;\n return;\n }\n inputValueChangeHandle(e);\n };\n\n const isClearIcon = () => {\n let tmp = innerClickElement.value;\n if (!tmp || !tmp.tagName || !clearIconRef.value?.$el || !['path', 'svg'].includes(tmp.tagName)) return false;\n while (tmp) {\n if (clearIconRef.value?.$el === tmp) {\n return true;\n }\n tmp = tmp.parentNode;\n }\n return false;\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const formatAndEmitBlur = (e: FocusEvent) => {\n if (!isClearIcon()) {\n if (props.format) {\n inputValue.value =\n typeof innerValue.value === 'number' || props.type === 'number'\n ? innerValue.value\n : props.format(innerValue.value);\n }\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n } else {\n focus();\n }\n };\n\n const onHandleCompositionend = (e: CompositionEvent) => {\n isComposition.value = false;\n compositionValue.value = '';\n inputValueChangeHandle(e);\n props.onCompositionend?.(String(innerValue.value), { e });\n };\n\n const onHandleCompositionstart = (e: CompositionEvent) => {\n isComposition.value = true;\n const {\n currentTarget: { value },\n }: any = e;\n compositionValue.value = value;\n props.onCompositionstart?.(String(innerValue.value), { e });\n };\n\n const onRootClick = (e: MouseEvent) => {\n inputRef.value?.focus();\n props.onClick?.({ e });\n };\n\n watch(\n () => props.autofocus,\n (value) => {\n if (value === true) {\n nextTick(() => {\n inputRef.value?.focus();\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n (val, oldVal) => {\n const isNumberType = props.type === 'number';\n // 初始化时,如果有 format 函数,需要对 value 进行格式化\n if (oldVal === undefined && props.format && typeof val !== 'number' && !isNumberType) {\n inputValue.value = props.format(val);\n } else {\n inputValue.value = val;\n }\n // limit props value\n const newVal = typeof val === 'number' ? val : getValueByLimitNumber(val);\n if (newVal !== val && !isNumberType) {\n setInnerValue(newVal, { trigger: 'initial' });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.type,\n (v) => {\n renderType.value = v;\n },\n { immediate: true },\n );\n\n expose({\n inputRef,\n focus,\n blur,\n });\n\n return {\n isHover,\n focused,\n renderType,\n showClear,\n inputRef,\n clearIconRef,\n inputValue,\n isComposition,\n compositionValue,\n limitNumber,\n tStatus,\n emitFocus,\n formatAndEmitBlur,\n onHandleCompositionend,\n onHandleCompositionstart,\n onRootClick,\n emitPassword,\n handleInput,\n emitClear,\n onClearIconMousedown,\n innerValue,\n };\n}\n","import { onMounted, Ref, ref, watch, nextTick, onBeforeUnmount, toRefs } from 'vue';\nimport useResizeObserver from '../../hooks/useResizeObserver';\nimport { InputValue, TdInputProps } from './../type';\n\nconst ANIMATION_TIME = 100;\n\nexport function useInputWidth(props: TdInputProps, inputRef: Ref, innerValue: Ref) {\n const { autoWidth, placeholder } = toRefs(props);\n const inputPreRef = ref(null);\n const observerTimer = ref(null);\n\n const updateInputWidth = () => {\n if (!inputPreRef.value || !inputRef.value) return;\n // 使用 getComputedStyle 规避 transform 带来的影响\n inputRef.value.style.width = getComputedStyle(inputPreRef.value).width;\n };\n\n useResizeObserver(inputPreRef, () => {\n if (autoWidth.value) {\n observerTimer.value = setTimeout(() => {\n updateInputWidth();\n clearTimeout(observerTimer.value);\n }, ANIMATION_TIME);\n }\n });\n\n onBeforeUnmount(() => {\n clearTimeout(observerTimer.value);\n });\n\n const addListeners = () => {\n watch(\n [innerValue, placeholder],\n () => {\n if (!autoWidth.value) return;\n nextTick(() => {\n updateInputWidth();\n });\n },\n { immediate: true },\n );\n };\n\n onMounted(() => {\n if (autoWidth.value) {\n addListeners();\n }\n });\n\n return {\n inputPreRef,\n };\n}\n","import { defineComponent, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n BrowseOffIcon as TdBrowseOffIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport props from './props';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useInput, useInputEventHandler, useInputWidth } from './hooks';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TInput',\n props: {\n ...props,\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传readonly同时是否展示input 默认保留 因为正常Input需要撑开宽度\n */\n showInput: {\n type: Boolean,\n default: true,\n },\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传autoWidth之后是否容器宽度也自适应 多选等组件需要用到自适应但也需要保留宽度\n */\n keepWrapperWidth: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { expose }) {\n const { globalConfig } = useConfig('input');\n const { BrowseIcon, BrowseOffIcon, CloseCircleFilledIcon } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n BrowseOffIcon: TdBrowseOffIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n const readonly = useReadonly();\n const disabled = useDisabled();\n\n const COMPONENT_NAME = usePrefixClass('input');\n const INPUT_WRAP_CLASS = usePrefixClass('input__wrap');\n const INPUT_TIPS_CLASS = usePrefixClass('input__tips');\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const {\n isHover,\n tStatus,\n inputRef,\n renderType,\n showClear,\n focused,\n inputValue,\n isComposition,\n compositionValue,\n innerValue,\n limitNumber,\n ...inputHandle\n } = useInput(props, expose);\n\n const { inputPreRef } = useInputWidth(props, inputRef, innerValue);\n\n const inputEventHandler = useInputEventHandler(props, isHover);\n\n const tPlaceholder = computed(() => props.placeholder ?? globalConfig.value.placeholder);\n const inputAttrs = computed(() => {\n const value = {\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: readonly.value,\n placeholder: tPlaceholder.value,\n name: props.name || undefined,\n type: renderType.value,\n autocomplete: props.autocomplete ?? (globalConfig.value.autocomplete || undefined),\n unselectable: readonly.value ? 'on' : 'off',\n spellcheck: props.spellCheck,\n // 不要传给 input 原生元素 maxlength,浏览器默认行为会按照 unicode 进行限制,与 maxLength API 违背\n // https://github.com/Tencent/tdesign-vue-next/issues/4413\n // 参见: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/maxlength,提到了字符串长度的计算方法,就是 str.length\n } as const;\n return getValidAttrs(value);\n });\n\n const wrapClasses = computed(() => [\n INPUT_WRAP_CLASS.value,\n {\n [`${COMPONENT_NAME.value}--auto-width`]: props.autoWidth && !props.keepWrapperWidth,\n },\n ]);\n\n const inputEvents = getValidAttrs({\n onFocus: inputHandle.emitFocus,\n onBlur: inputHandle.formatAndEmitBlur,\n onKeydown: inputEventHandler.handleKeydown,\n onKeyup: inputEventHandler.handleKeyUp,\n onKeypress: inputEventHandler.handleKeypress,\n onPaste: inputEventHandler.onHandlePaste,\n onCompositionend: inputHandle.onHandleCompositionend,\n onCompositionstart: inputHandle.onHandleCompositionstart,\n });\n\n return () => {\n const prefixIcon = renderTNodeJSX('prefixIcon');\n let suffixIcon = renderTNodeJSX('suffixIcon');\n let passwordIcon = renderTNodeJSX('passwordIcon');\n const label = renderTNodeJSX('label', { silent: true });\n const suffix = renderTNodeJSX('suffix');\n const limitNode =\n limitNumber.value && props.showLimitNumber ? (\n \n {limitNumber.value}\n \n ) : null;\n\n const labelContent = label ?
    {label}
    : null;\n const suffixContent =\n suffix || limitNode ? (\n
    \n {suffix}\n {limitNode}\n
    \n ) : null;\n\n if (props.type === 'password') {\n const passwordClass = [{ [`${COMPONENT_NAME.value}__suffix-clear`]: !disabled.value }];\n if (renderType.value === 'password') {\n suffixIcon = ;\n } else if (renderType.value === 'text') {\n suffixIcon = ;\n }\n }\n\n if (showClear.value) {\n // 如果类型为 password 则使用 passwordIcon 显示 clear\n if (props.type === 'password') {\n passwordIcon = (\n \n );\n } else {\n suffixIcon = (\n \n );\n }\n }\n\n const classes = [\n COMPONENT_NAME.value,\n props.inputClass,\n {\n [SIZE.value[props.size]]: props.size !== 'medium',\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: disabled.value ? false : focused.value,\n [`${classPrefix.value}-is-${tStatus.value}`]: tStatus.value && tStatus.value !== 'default',\n [`${classPrefix.value}-align-${props.align}`]: props.align !== 'left',\n [`${classPrefix.value}-is-readonly`]: readonly.value,\n [`${COMPONENT_NAME.value}--prefix`]: prefixIcon || labelContent,\n [`${COMPONENT_NAME.value}--suffix`]: suffixIcon || suffixContent,\n [`${COMPONENT_NAME.value}--borderless`]: props.borderless,\n [`${COMPONENT_NAME.value}--focused`]: focused.value,\n },\n ];\n\n const tips = renderTNodeJSX('tips');\n\n const tipsClasses = [\n INPUT_TIPS_CLASS.value,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${tStatus.value || 'default'}`,\n ];\n\n return (\n
    \n \n {prefixIcon ? (\n \n {prefixIcon}\n \n ) : null}\n {labelContent}\n {/* input element must exist, or other select components can not focus by keyboard operation */}\n inputHandle.handleInput(e as InputEvent)}\n />\n {props.autoWidth && (\n \n {isComposition.value ? compositionValue.value ?? '' : innerValue.value || tPlaceholder.value}\n \n )}\n {suffixContent}\n {passwordIcon ? (\n \n {passwordIcon}\n \n ) : null}\n {suffixIcon ? (\n \n {suffixIcon}\n \n ) : null}\n
    \n {tips &&
    {tips}
    }\n \n );\n };\n },\n});\n","import { Ref } from 'vue';\nimport { TdInputProps } from './../type';\nimport { getOutputValue } from './useInput';\n\nexport function useInputEventHandler(props: TdInputProps, isHover: Ref) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const { code } = e;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n if (/enter/i.test(code) || /enter/i.test(e.key)) {\n props.onEnter?.(tmpValue, { e });\n } else {\n props.onKeydown?.(tmpValue, { e });\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n props.onKeyup?.(tmpValue, { e });\n };\n\n const handleKeypress = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n props.onKeypress?.(tmpValue, { e });\n };\n\n const onHandlePaste = (e: ClipboardEvent) => {\n if (props.disabled) return;\n // @ts-ignore\n const clipData = e.clipboardData || window.clipboardData;\n props.onPaste?.({ e, pasteValue: clipData?.getData('text/plain') });\n };\n\n const mouseEvent = (v: boolean) => (isHover.value = v);\n\n const onHandleMousewheel = (e: WheelEvent) => props.onWheel?.({ e });\n\n const onInputMouseenter = (e: MouseEvent) => {\n mouseEvent(true);\n props.onMouseenter?.({ e });\n };\n\n const onInputMouseleave = (e: MouseEvent) => {\n mouseEvent(false);\n props.onMouseleave?.({ e });\n };\n\n return {\n isHover,\n handleKeydown,\n handleKeyUp,\n handleKeypress,\n onHandlePaste,\n onHandleMousewheel,\n onInputMouseenter,\n onInputMouseleave,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 多个输入框之间是否需要间隔 */\n separate: Boolean,\n};\n","import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport inputGroupProps from './input-group-props';\n\nexport default defineComponent({\n name: 'TInputGroup',\n props: inputGroupProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('input-group');\n const renderTNodeJSX = useTNodeJSX();\n const CLASS = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--separate`]: props.separate,\n },\n ]);\n return () =>
    {renderTNodeJSX('default')}
    ;\n },\n});\n","import _Input from './input';\nimport _InputGroup from './input-group';\nimport withInstall from '../utils/withInstall';\nimport { InputValue, TdInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputProps = TdInputProps;\nexport type InputBlurEventParams = Parameters;\nexport type InputFocusEventParams = Parameters;\nexport type StrInputProps = TdInputProps;\nexport type NumberInputProps = TdInputProps;\n\nexport const Input = withInstall(_Input);\nexport const InputGroup = withInstall(_InputGroup);\n\nexport default Input;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputNumberProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n validator(val: TdInputNumberProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 是否允许输入超过 `max` `min` 范围外的数字。为保障用户体验,仅在失去焦点时进行数字范围矫正。默认允许超出,数字超出范围时,输入框变红提醒 */\n allowInputOverLimit: {\n type: Boolean,\n default: true,\n },\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** [小数位数](https://en.wiktionary.org/wiki/decimal_place) */\n decimalPlaces: {\n type: [Number, Object] as PropType,\n default: undefined as TdInputNumberProps['decimalPlaces'],\n },\n /** 禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 格式化输入框展示值。第二个事件参数 `context.fixedNumber` 表示处理过小数位数 `decimalPlaces` 的数字 */\n format: {\n type: Function as PropType,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否作为大数使用。JS 支持的最大数字位数是 16 位,超过 16 位的数字需作为字符串大数处理。此时,数据类型必须保持为字符串,否则会丢失数据 */\n largeNumber: Boolean,\n /** 最大值。如果是大数,请传入字符串 */\n max: {\n type: [String, Number] as PropType,\n default: Infinity as TdInputNumberProps['max'],\n },\n /** 最小值。如果是大数,请传入字符串 */\n min: {\n type: [String, Number] as PropType,\n default: -Infinity as TdInputNumberProps['min'],\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputNumberProps['size'],\n validator(val: TdInputNumberProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputNumberProps['status'],\n validator(val: TdInputNumberProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 数值改变步数,可以是小数。如果是大数,请保证数据类型为字符串 */\n step: {\n type: [String, Number] as PropType,\n default: 1 as TdInputNumberProps['step'],\n },\n /** 后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 按钮布局 */\n theme: {\n type: String as PropType,\n default: 'row' as TdInputNumberProps['theme'],\n validator(val: TdInputNumberProps['theme']): boolean {\n if (!val) return true;\n return ['column', 'row', 'normal'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,`type` 表示触发本次变化的来源 */\n onChange: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获取焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 最大值或最小值校验结束后触发,`exceed-maximum` 表示超出最大值,`below-minimum` 表示小于最小值 */\n onValidate: Function as PropType,\n};\n","import { isString, isNumber, isObject } from 'lodash-es';\nimport log from '../log/log';\n\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean, places: number };\n\nexport function fillZero(length: number) {\n return new Array(length).fill(0).join('');\n}\n\n/**\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\n */\nexport function isInputNumber(num: number | string): boolean {\n if (!num) return true;\n if (isNumber(num)) return !Number.isNaN(num);\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\n if (!r) return false;\n // only allow one [.e] and two [-]\n let eCount = 0;\n let negativeCount = 0;\n let dotCount = 0;\n for (let i = 0, len = num.length; i < len; i++) {\n if (num[i] === '.') {\n dotCount += 1;\n if (dotCount > 1) return false;\n }\n if (/(e|E)+/.test(num[i])) {\n eCount += 1;\n if (eCount > 1) return false;\n }\n if (num[i] === '-') {\n negativeCount += 1;\n if (negativeCount > 2) return false;\n }\n }\n return true;\n}\n\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\nexport function removeInvalidZero(num: string, decimal = false) {\n if (num.indexOf('.') !== -1) {\n log.error('InputNumber', 'num is not a integer number.');\n return num;\n }\n if (!num || (num === '0' && decimal)) return '';\n if (num === '0') return num;\n return (decimal ? num.replace(/0+$/, '') : num.replace(/^0+/, '')) || '0';\n}\n\n/**\n * 大数加法,仅支持正整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\n const number1 = removeInvalidZero(num1, decimal);\n const number2 = removeInvalidZero(num2, decimal);\n const isFirstLarger = number1.length > number2.length;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,加第二个数,加进位\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\n if (count >= 10) {\n step[i - 1] = 1;\n }\n newNumber.unshift(String(count % 10));\n }\n // 999 + 1 = 1000,之类的进位\n if (step[-1]) {\n newNumber.unshift('1');\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n return newNumber.join('');\n}\n\n/**\n * 大数加法,支持小数和整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\n const [intNumber1 = '0', decimalNumber1 = '0'] = num1.split('.');\n const [intNumber2 = '0', decimalNumber2 = '0'] = num2.split('.');\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') return integerSum;\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\n // 小数点相加\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\n // 组合整数部分和小数部分\n const decimalLength = decimalNumberSum.length;\n // 如果小数相加进位\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\n return [\n removeInvalidZero(largeIntNumberAdd(integerSum, '1')),\n removeInvalidZero(decimalNumberSum.slice(1), true),\n ].filter((v: string) => v).join('.');\n }\n return [\n removeInvalidZero(integerSum),\n removeInvalidZero(decimalNumberSum, true)\n ].filter((v: string) => v).join('.');\n}\n\n/**\n * 比较两个大数的大小,仅正整数有效\n */\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n if (number1.length === number2.length) {\n for (let i = 0, len = number1.length; i < len; i++) {\n if (number1[i] > number2[i]) return 1;\n if (number1[i] < number2[i]) return -1;\n }\n return 0;\n }\n return number1.length > number2.length ? 1 : -1;\n}\n\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\n const number1 = num1 && num1 !== '0' ? num1.replace(/0+$/, '') : '0';\n const number2 = num2 && num2 !== '0' ? num2.replace(/0+$/, '') : '0';\n const maxLength = Math.max(number1.length, number2.length);\n for (let i = 0, len = maxLength; i < len; i++) {\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\n }\n return 0;\n}\n\n/**\n * 2e3 => 2000\n * 0.2e3 => 200\n */\nexport function formatENumber(num: string): string {\n const [num1, num2] = num.split('e');\n if (!num2) return num;\n const [integer, initDecimal = ''] = num.split('.');\n const zeroCount = Number(num2);\n const [decimal] = initDecimal.split('e');\n if (zeroCount > decimal.length) {\n const multipleZero = fillZero(zeroCount - decimal.length);\n return num1.replace(/(^0+|\\.)/g, '') + multipleZero;\n }\n const n1 = integer.replace(/^0+/, '') + decimal.slice(0, zeroCount);\n const d2 = decimal.slice(zeroCount);\n return d2 ? [n1, d2].join('.') : n1;\n}\n\n/**\n * 比较两个大数的大小\n */\nexport function compareLargeNumber(\n num1: string,\n num2: string,\n): 1 | -1 | 0 {\n const [integer1, decimal1] = formatENumber(num1).split('.');\n const [integer2, decimal2] = formatENumber(num2).split('.');\n const result = compareLargeIntegerNumber(integer1.replace('-', ''), integer2.replace('-', ''));\n const integer1IsNegative = integer1.includes('-');\n const integer2IsNegative = integer2.includes('-');\n if (integer1IsNegative && !integer2IsNegative) return -1;\n if (!integer1IsNegative && integer2IsNegative) return 1;\n if (integer1IsNegative && integer2IsNegative) {\n if (result === 0) return 0;\n return result > 0 ? -1 : 1;\n }\n if (result === 0) {\n return compareLargeDecimalNumber(decimal1, decimal2);\n }\n return result;\n}\n\n// 确认是否为无限大/小\nexport function isInfinity(num: number| string) {\n return [-Infinity, Infinity].includes(Number(num));\n}\n\n// 确认是否是大数\nexport function isSafeNumber(num: string | number) {\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * 比较两个数的大小\n */\nexport function compareNumber(\n num1: string | number,\n num2: string | number,\n largeNumber?: boolean,\n) {\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\n if (isSafeNumberCompare || isInfinityCompare) {\n // 比较两个非大数或涉及无穷的大小\n if (Number(num1) === Number(num2)) return 0;\n return Number(num1) > Number(num2) ? 1 : -1;\n }\n // 比较两个大数的大小\n return compareLargeNumber(String(num1), String(num2));\n}\n\n/**\n * 大数减法,仅支持整数\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largeIntegerNumberSubtract(\n num1: string, num2: string, p?: { decimal?: boolean, stayZero?: boolean }\n): string {\n if (num1 === num2) return '0';\n const { decimal, stayZero } = p || {};\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n // step 存储借位信息\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,减第二个数,减借位\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\n if (count < 0) {\n step[i - 1] = 1;\n count += 10;\n }\n newNumber.unshift(String(count));\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n let finalNumber = newNumber.join('');\n if (!stayZero) {\n finalNumber = finalNumber.replace(/^0+/, '');\n }\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\n}\n\n/**\n * 大数减法,支持整数和小数(无精度问题)\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\n if (num1 === num2) return '0';\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\n const maxNumber = isFirstLarger ? num1 : num2;\n const minNumber = isFirstLarger ? num2 : num1;\n // 整数部分和小数部分分开处理\n const [intNumber1, decimalNumber1 = '0'] = maxNumber.split('.');\n const [intNumber2, decimalNumber2 = '0'] = minNumber.split('.');\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') {\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\n }\n // 小数点相减\n let decimalNumber = '';\n let addOneNumber = decimalNumber1;\n // 第一个数字的小数位数比第二个少,需补足 0\n if (decimalNumber1.length < decimalNumber2.length) {\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\n }\n // 第一个小数位更小,是否需要借位\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\n } else {\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === '0') {\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\n } else {\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\n }\n integerNumber = largeIntegerNumberSubtract(integerNumber, '1');\n }\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join('.') : integerNumber;\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\n}\n\n/**\n * -0.6 - 0.8 => -(0.6 + 0.8)\n * -0.6 - (-0.8) => 0.8 - 0.6\n * 0.6 - (-0.8) => 0.6 + 0.8\n * 0.6 - 0.8 => 0.6 - 0.8\n */\nexport function largeNumberSubtract(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n const r = largePositiveNumberAdd(num1.slice(1), num2);\n return `-${r}`;\n }\n if (isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberAdd(num1, num2.slice(1));\n }\n return largePositiveNumberSubtract(num1, num2);\n}\n\n/**\n * -0.6 + 0.8 => 0.8 - 0.6\n * -0.6 + (-0.8) => -(0.6 + 0.8)\n * 0.6 + (-0.8) => 0.6 - 0.8\n * 0.6 + 0.8 => 0.6 + 0.8\n */\nexport function largeNumberAdd(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n return largePositiveNumberSubtract(num2, num1.slice(1));\n }\n if (isFirstNegative && isSecondNegative) {\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\n return `-${r}`;\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num1, num2.slice(1));\n }\n return largePositiveNumberAdd(num1, num2);\n}\n\n/**\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\n *\n * @param {number} num - 要格式化的数字。\n * @param {number} places - 小数点后的位数。\n * @param {boolean} rounding - 是否进行四舍五入。\n * @returns {string} 格式化后的数字字符串。\n */\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\n // 开启四舍五入 直接用 toFixed\n if (enableRound) {\n return num.toFixed(places);\n }\n\n const [integer, decimal] = num.toString().split('.');\n // 保留 0 位小数\n if (places === 0) {\n return integer;\n }\n // 补足小数位数\n if (decimal) {\n let decimalNumber = decimal.slice(0, places);\n if (decimal.length < places) {\n decimalNumber += fillZero(places - decimal.length);\n }\n return [integer, decimalNumber].join('.');\n }\n\n return [integer, fillZero(places)].join('.');\n}\n\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\n if (isObject(decimalPlaces)) {\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\n }\n return formatDecimal(num, decimalPlaces, true);\n}\n\n/**\n * 大数保留 N 位小数(没有精度问题)\n * @param {String} number 大数(只能使用字符串表示)\n * @param {Number} decimalPlaces 保留的小数位数\n * @param {Boolean} largeNumber 是否为大数\n */\nexport function largeNumberToFixed(\n number: string | number,\n decimalPlaces: InputNumberDecimalPlaces = 0,\n largeNumber: boolean = true,\n): string {\n if (Number.isNaN(Number(number))) return '';\n if (!largeNumber) {\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\n }\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\n const enableRound = isObject(decimalPlaces) ? (decimalPlaces.enableRound ?? true) : true;\n if (!isString(number)) return String(number);\n // eslint-disable-next-line prefer-const\n let [num1, num2] = number.split('.');\n // 如果不存在小数点,则补足位数\n if (!num2) {\n return (places > 0 && enableRound) ? [number, (fillZero(places))].join('.') : number;\n }\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\n if (places === 0) {\n return (enableRound && Number(num2[0]) >= 5) ? largePositiveNumberAdd(num1, '1') : num1;\n }\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\n let decimalNumber = num2.slice(0, places);\n if (num2.length < places) {\n decimalNumber += (fillZero(places - num2.length));\n } else if (enableRound) {\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\n const leadNineNum = decimalNumber.match(/^9+/);\n // 决定是否需要四舍五入\n const needAdded = Number(num2[places]) >= 5;\n\n // 四舍五入后的结果\n decimalNumber = needAdded\n ? largePositiveNumberAdd(decimalNumber, '1')\n : decimalNumber;\n\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\n if (\n leadZeroNum\n && needAdded\n && leadZeroNum + decimalNumber.length >= places\n ) {\n decimalNumber = `${fillZero(\n places - decimalNumber.length\n )}${decimalNumber}`;\n }\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\n if (leadNineNum && decimalNumber.length > places) {\n num1 = (Number(num1) + 1).toString();\n decimalNumber = fillZero(places);\n }\n }\n return [num1, decimalNumber].join('.');\n}\n","import { isUndefined, isString, isNumber } from 'lodash-es';\n/** 普通数相关方法 */\nimport {\n compareNumber,\n formatENumber,\n largeNumberToFixed,\n isInputNumber,\n largeNumberAdd,\n largeNumberSubtract,\n} from './large-number';\nimport log from '../log';\nimport type { InputNumberDecimalPlaces } from './large-number';\n\nexport * from './large-number';\n\nexport type NumberType = number | string;\n\n// 小于最大值,才允许继续添加\nexport function canAddNumber(\n num: NumberType,\n max: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, max, largeNumber) < 0;\n }\n return num < max;\n}\n\n// 大于最小值,才允许继续减少\nexport function canReduceNumber(\n num: NumberType,\n min: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, min, largeNumber) > 0;\n }\n return num > min;\n}\n\n/**\n * 将数字控制在 max 和 min 之间\n */\nexport function putInRangeNumber(\n val: NumberType,\n params: {\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n }\n) {\n if (val === '') return undefined;\n const { max, min, lastValue, largeNumber } = params;\n if (!isInputNumber(val)) return lastValue;\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\n if (compareNumber(max, val, largeNumber) < 0) return max;\n if (compareNumber(min, val, largeNumber) > 0) return min;\n return val;\n }\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\n}\n\n/**\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveAdd(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n // 整数不存在精度问题,直接返回\n if (!r1 && !r2) return num1 + num2;\n let newNumber1 = num1;\n let newNumber2 = num2;\n const diff = Math.abs(r1 - r2);\n const digit = 10 ** Math.max(r1, r2);\n if (diff > 0) {\n const cm = 10 ** diff;\n if (r1 > r2) {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', '')) * cm;\n } else {\n newNumber1 = Number(num1.toString().replace('.', '')) * cm;\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n } else {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n return (newNumber1 + newNumber2) / digit;\n}\n\n/**\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveSubtract(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n const digit = 10 ** Math.max(r1, r2);\n const n = r1 >= r2 ? r1 : r2;\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\n}\n\n/**\n * 支持正数、负数、小数等全部数字的加法\n * -0.766 + 1 => 1 - 0.766\n * -1 + (-0.766) => - (1 + 0.766)\n * 1 + (-0.766) => 1 - 0.766\n * 1 + 0.766 => 1 + 0.766\n */\nexport function add(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\n return positiveAdd(num1, num2);\n}\n\n/**\n * 支持正数、负数、小数等全部数字的减法\n * -0.766 - 1 => - (1 + 0.766)\n * -1 - (-0.766) => 0.766 - 1\n * 1 - (-0.766) => 1 + 0.766\n * 1 - 0.766 => 1 - 0.766\n */\nexport function subtract(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\n return positiveSubtract(num1, num2);\n}\n\nexport function getStepValue(p: {\n op: 'add' | 'reduce';\n step: NumberType;\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n}) {\n const { op, step, lastValue, max, min, largeNumber } = p;\n if (Number(step) <= 0) {\n log.error('InputNumber', 'step must be larger than 0.');\n return lastValue;\n }\n const tStep = isNumber(step) ? String(step) : step;\n let newVal;\n if (op === 'add') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberAdd(String(lastValue), String(tStep));\n } else {\n newVal = add(Number(lastValue || 0), Number(step));\n }\n } else if (op === 'reduce') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\n } else {\n newVal = subtract(Number(lastValue || 0), Number(step));\n }\n }\n if (isUndefined(lastValue)) {\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\n }\n return largeNumber ? newVal : Number(newVal);\n}\n\nexport type InputNumberErrorType =\n | 'exceed-maximum'\n | 'below-minimum'\n | undefined;\n\n/**\n * 最大值和最小值校验\n */\nexport function getMaxOrMinValidateResult(p: {\n largeNumber: boolean;\n value: NumberType;\n max: NumberType;\n min: NumberType;\n}): InputNumberErrorType {\n const { largeNumber, value, max, min } = p;\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\n if (largeNumber && isNumber(value)) {\n log.warn('InputNumber', 'largeNumber value must be a string.');\n }\n let error: InputNumberErrorType;\n if (compareNumber(value, max, largeNumber) > 0) {\n error = 'exceed-maximum';\n } else if (compareNumber(value, min, largeNumber) < 0) {\n error = 'below-minimum';\n } else {\n error = undefined;\n }\n return error;\n}\n\nexport const specialCode = ['-', '.', 'e', 'E', '+'];\n\n/**\n * 是否允许输入当前字符,输入字符校验\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\n * 2e3 表示 2 乘 10 的 3 次方\n */\nexport function canInputNumber(number: string | undefined | null, largeNumber?: boolean) {\n if (['', null, undefined].includes(number)) return true;\n // 数字最前方不允许出现连续的两个 0\n if (number.slice(0, 2) === '00') return false;\n // 不能出现空格\n if (number.match(/\\s/g)) return false;\n // 只能出现一个点(.)\n if (number.match(/\\./g)?.length > 1) return false;\n // 只能出现一个e(e)\n if (number.match(/e/g)?.length > 1) return false;\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\n const tmpNumber = number.slice(1);\n const tmpMatched = tmpNumber.match(/(\\+|-)/g);\n if (tmpMatched && (!/e(\\+|-)/i.test(tmpNumber) || tmpMatched.length > 1)) return false;\n // 允许输入数字字符\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\n if (/e/i.test(number) && (!/\\de/i.test(number) || /e\\./.test(number))) return false;\n return true;\n}\n\n/**\n * 是否允许设置组件新值,触发 onChange 事件\n */\nexport function canSetValue(number: string, lastNumber: number) {\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\n}\n\n/**\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\n * 2. 处理小数点 decimalPlaces\n * 3. 格式化大数字 formatENumber\n */\nexport function formatUnCompleteNumber(\n number: string,\n extra: {\n decimalPlaces?: InputNumberDecimalPlaces;\n largeNumber?: boolean;\n isToFixed?: boolean;\n } = {}\n): number | string {\n if (['', null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\n const { decimalPlaces, largeNumber, isToFixed } = extra;\n let newNumber = number.replace(/[.|+|\\-|e]$/, '');\n if (largeNumber) {\n newNumber = formatENumber(newNumber);\n }\n if (decimalPlaces !== undefined) {\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\n }\n if (largeNumber) return newNumber;\n return isToFixed ? newNumber : parseFloat(newNumber);\n}\n\n/**\n * 对千分位进行处理 111,111,222 -> 111111222\n */\nexport function formatThousandths(number: string) {\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, '');\n return number;\n}\n","import { computed, ref, toRefs, watch } from 'vue';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport useVModel from '../../hooks/useVModel';\nimport { InputNumberValue, TdInputNumberProps } from '../type';\nimport { useReadonly } from '../../hooks/useReadonly';\n\n// 计算逻辑,统一到 common 中,方便各框架复用(如超过 16 位的大数处理)\nimport {\n canAddNumber,\n canInputNumber,\n canReduceNumber,\n getMaxOrMinValidateResult,\n getStepValue,\n formatThousandths,\n canSetValue,\n formatUnCompleteNumber,\n largeNumberToFixed,\n} from '@tdesign/common-js/input-number/number';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, sizeClassNames, statusClassNames } = useCommonClassName();\n const { value, modelValue, max, min } = toRefs(props);\n // 统一处理受控、非受控、语法糖 v-model 等\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const inputRef = ref();\n const userInput = ref('');\n\n const tDisabled = useDisabled();\n\n const isReadonly = useReadonly();\n\n const isError = ref<'exceed-maximum' | 'below-minimum'>();\n\n const disabledReduce = computed(\n () => tDisabled.value || !canReduceNumber(tValue.value, props.min, props.largeNumber),\n );\n\n const disabledAdd = computed(() => tDisabled.value || !canAddNumber(tValue.value, props.max, props.largeNumber));\n\n const wrapClasses = computed(() => [\n `${classPrefix.value}-input-number`,\n sizeClassNames[props.size],\n {\n [statusClassNames.disabled]: tDisabled.value,\n [`${classPrefix.value}-is-controls-right`]: props.theme === 'column',\n [`${classPrefix.value}-input-number--${props.theme}`]: props.theme,\n [`${classPrefix.value}-input-number--auto-width`]: props.autoWidth,\n },\n ]);\n\n const reduceClasses = computed(() => [\n `${classPrefix.value}-input-number__decrease`,\n { [statusClassNames.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [statusClassNames.disabled]: disabledAdd.value },\n ]);\n\n const getUserInput = (value: InputNumberValue) => {\n if (!value && value !== 0) return '';\n let inputStr = value || value === 0 ? String(value) : '';\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n const num = formatUnCompleteNumber(inputStr, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n });\n inputStr = num || num === 0 ? String(num) : '';\n if (props.format) {\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\n }\n }\n return inputStr;\n };\n\n watch(\n tValue,\n (val) => {\n const { largeNumber, decimalPlaces } = props;\n const inputValue = [undefined, null].includes(val) ? '' : String(val);\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\n if (!largeNumber && !Number.isNaN(userInput.value)) {\n if (parseFloat(userInput.value) !== val) {\n userInput.value = getUserInput(inputValue);\n }\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\n if (\n decimalPlaces !== undefined &&\n ![undefined, null].includes(val) &&\n Number(fixedNumber) !== Number(tValue.value)\n ) {\n setTValue(fixedNumber, { type: 'props', e: undefined });\n }\n }\n if (largeNumber) {\n userInput.value = getUserInput(inputValue);\n\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== val) {\n let completeValue = inputValue;\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n // isToFixed为true 只可能是string\n completeValue = formatUnCompleteNumber(completeValue, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n }) as string;\n }\n setTValue(completeValue, { type: 'props', e: undefined });\n }\n }\n },\n { immediate: true },\n );\n\n watch(\n [tValue, max, min],\n () => {\n // @ts-ignore 没有输入完成,则无需校验\n if ([undefined, '', null].includes(tValue.value)) return;\n const { max, min, largeNumber } = props;\n const error = getMaxOrMinValidateResult({\n value: tValue.value,\n largeNumber,\n max,\n min,\n });\n isError.value = error;\n props.onValidate?.({ error });\n },\n { immediate: true },\n );\n\n const handleStepValue = (op: 'add' | 'reduce') => {\n const newValue = getStepValue({\n op,\n step: props.step,\n max: props.max,\n min: props.min,\n lastValue: tValue.value,\n largeNumber: props.largeNumber,\n });\n const { largeNumber, max, min } = props;\n const overLimit = getMaxOrMinValidateResult({\n value: newValue,\n largeNumber,\n max,\n min,\n });\n return {\n overLimit,\n newValue,\n };\n };\n\n const handleReduce = (e: KeyboardEvent | MouseEvent) => {\n if (disabledReduce.value || isReadonly.value) return;\n const r = handleStepValue('reduce');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'reduce', e });\n };\n\n const handleAdd = (e: KeyboardEvent | MouseEvent) => {\n if (disabledAdd.value || isReadonly.value) return;\n const r = handleStepValue('add');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'add', e });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (inputValue, { e }) => {\n // 千分位处理\n const val = formatThousandths(inputValue);\n if (!canInputNumber(val, props.largeNumber)) return;\n\n userInput.value = val;\n\n if (props.largeNumber) {\n setTValue(val, { type: 'input', e });\n return;\n }\n\n if (canSetValue(String(val), Number(tValue.value))) {\n const newVal = val === '' ? undefined : Number(val);\n setTValue(newVal, { type: 'input', e });\n }\n };\n\n const handleBlur = (value: string, ctx: { e: FocusEvent }) => {\n const { largeNumber, max, min, decimalPlaces } = props;\n if (!props.allowInputOverLimit && tValue.value !== undefined) {\n const r = getMaxOrMinValidateResult({ value: tValue.value, largeNumber, max, min });\n if (r === 'below-minimum') {\n setTValue(min, { type: 'blur', e: ctx.e });\n props.onBlur?.(min, ctx);\n return;\n }\n if (r === 'exceed-maximum') {\n setTValue(max, { type: 'blur', e: ctx.e });\n props.onBlur?.(max, ctx);\n return;\n }\n }\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces,\n largeNumber,\n });\n userInput.value = getUserInput(newValue);\n\n if (newValue !== tValue.value) {\n setTValue(newValue, { type: 'blur', e: ctx.e });\n }\n props.onBlur?.(newValue, ctx);\n };\n\n const handleFocus = (value: string, ctx: { e: FocusEvent }) => {\n userInput.value = tValue.value || tValue.value === 0 ? String(tValue.value) : '';\n props.onFocus?.(value, ctx);\n };\n\n const handleKeydown = (value: string, ctx: { e: KeyboardEvent }) => {\n if (tDisabled.value) return;\n const { e } = ctx;\n const keyEvent = {\n ArrowUp: handleAdd,\n ArrowDown: handleReduce,\n };\n const code = (e.code || e.key) as keyof typeof keyEvent;\n if (keyEvent[code] !== undefined) {\n keyEvent[code](e);\n }\n props.onKeydown?.(value, ctx);\n };\n\n const handleKeyup = (value: string, ctx: { e: KeyboardEvent }) => {\n props.onKeyup?.(value, ctx);\n };\n\n const handleKeypress = (value: string, ctx: { e: KeyboardEvent }) => {\n props.onKeypress?.(value, ctx);\n };\n\n const handleEnter = (value: string, ctx: { e: KeyboardEvent }) => {\n userInput.value = getUserInput(value);\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n });\n if (newValue !== value && String(newValue) !== value) {\n setTValue(newValue, { type: 'enter', e: ctx.e });\n }\n props.onEnter?.(newValue, ctx);\n };\n\n const focus = () => {\n if (tDisabled.value || isReadonly.value) return;\n (inputRef.value as any).focus();\n };\n\n const blur = () => {\n (inputRef.value as any).blur();\n };\n\n const listeners = {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeydown: handleKeydown,\n onKeyup: handleKeyup,\n onKeypress: handleKeypress,\n onEnter: handleEnter,\n onClick: focus,\n };\n\n return {\n classPrefix,\n wrapClasses,\n reduceClasses,\n addClasses,\n tDisabled,\n isError,\n listeners,\n userInput,\n tValue,\n inputRef,\n focus,\n blur,\n handleReduce,\n handleAdd,\n onInnerInputChange,\n isReadonly,\n };\n}\n","import { defineComponent, SetupContext } from 'vue';\nimport {\n AddIcon as TdAddIcon,\n RemoveIcon as TdRemoveIcon,\n ChevronDownIcon as TdChevronDownIcon,\n ChevronUpIcon as TdChevronUpIcon,\n} from 'tdesign-icons-vue-next';\nimport TButton from '../button';\nimport TInput from '../input';\nimport props from './props';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { TdInputNumberProps } from './type';\nimport useInputNumber from './hooks/useInputNumber';\n\nexport default defineComponent({\n name: 'TInputNumber',\n props,\n // 保持纯净(逻辑和节点渲染分开)\n setup(props: TdInputNumberProps, context: SetupContext) {\n const { AddIcon, RemoveIcon, ChevronDownIcon, ChevronUpIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n RemoveIcon: TdRemoveIcon,\n ChevronDownIcon: TdChevronDownIcon,\n ChevronUpIcon: TdChevronUpIcon,\n });\n const p = useInputNumber(props);\n const { inputRef } = p;\n context.expose({ ...p });\n\n return () => {\n const reduceIcon =\n props.theme === 'column' ? : ;\n const addIcon = props.theme === 'column' ? : ;\n const status = p.isError.value ? 'error' : props.status;\n\n return (\n
    \n {props.theme !== 'normal' && (\n reduceIcon}\n />\n )}\n \n {props.theme !== 'normal' && (\n addIcon}\n />\n )}\n
    \n );\n };\n },\n});\n","import _InputNumber from './input-number';\nimport withInstall from '../utils/withInstall';\nimport { TdInputNumberProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputNumberProps = TdInputNumberProps;\n\nexport const InputNumber = withInstall(_InputNumber);\nexport default InputNumber;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入 */\n allowInput: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 `collapsedItems` 自定义。`value` 表示所有标签值,`collapsedSelectedItems` 表示折叠标签值,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 定义字段别名,示例:`{ label: 'text', value: 'id', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否处于加载状态 */\n loading: Boolean,\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否为多选模式,默认为单选 */\n multiple: Boolean,\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: '',\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectInputProps['size'],\n validator(val: TdSelectInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectInputProps['status'],\n validator(val: TdSelectInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 多选场景下,自定义选中标签的内部内容。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 TagInput 组件全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 全部标签值。值为数组表示多个标签,值为非数组表示单个数值 */\n value: {\n type: [String, Number, Boolean, Object, Array, Date] as PropType,\n default: undefined as TdSelectInputProps['value'],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发,`context.inputValue` 表示输入框的值;`context.tagInputValue` 表示标签输入框的值 */\n onBlur: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onTagChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用标签输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 拖拽调整标签顺序 */\n dragSort: Boolean,\n /** 标签超出时的呈现方式,有两种:横向滚动显示 和 换行显示 */\n excessTagsDisplayType: {\n type: String as PropType,\n default: 'break-line' as TdTagInputProps['excessTagsDisplayType'],\n validator(val: TdTagInputProps['excessTagsDisplayType']): boolean {\n if (!val) return true;\n return ['scroll', 'break-line'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTagInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n default: '' as TdTagInputProps['defaultInputValue'],\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 最大允许输入的标签数量 */\n max: {\n type: Number,\n },\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏标签移除按钮和输入框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagInputProps['size'],\n validator(val: TdTagInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n validator(val: TdTagInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 自定义标签的内部内容,每一个标签的当前值。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 Tag 组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n /** 值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTagInputProps['defaultValue'] => [],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 【开发中】拖拽排序时触发 */\n onDragSort: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、回车键触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 移除单个标签时触发 */\n onRemove: Function as PropType,\n};\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签是否可关闭 */\n closable: Boolean,\n /** 自定义标签颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 组件子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 组件子元素,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签中的图标,可自定义图标呈现 */\n icon: {\n type: Function as PropType,\n default: undefined,\n },\n /** 标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80 */\n maxWidth: {\n type: [String, Number] as PropType,\n },\n /** 标签类型,有三种:方形、圆角方形、标记型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdTagProps['shape'],\n validator(val: TdTagProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round', 'mark'].includes(val);\n },\n },\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagProps['size'],\n validator(val: TdTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格,用于描述组件不同的应用场景 */\n theme: {\n type: String as PropType,\n default: 'default' as TdTagProps['theme'],\n validator(val: TdTagProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'primary', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 标签标题,在标签hover时展示,默认为标签内容 */\n title: {\n type: String,\n default: '',\n },\n /** 标签风格变体 */\n variant: {\n type: String as PropType,\n default: 'dark' as TdTagProps['variant'],\n validator(val: TdTagProps['variant']): boolean {\n if (!val) return true;\n return ['dark', 'light', 'outline', 'light-outline'].includes(val);\n },\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发 */\n onClose: Function as PropType,\n};\n","import { computed, defineComponent, getCurrentInstance, h, VNode } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { isString } from 'lodash-es';\nimport tinycolor from 'tinycolor2';\n\nimport props from './props';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n if (!props.maxWidth) {\n return undefined;\n }\n\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","export type PlainObject = { [key: string]: any };\n\nexport type OptionData = {\n label?: string;\n value?: string | number;\n} & PlainObject;\n\nexport type TreeOptionData = {\n children?: Array> | boolean;\n /** option label content */\n label?: any;\n /** option search text */\n text?: string;\n /** option value */\n value?: T;\n} & PlainObject;\n\nexport type SizeEnum = 'small' | 'medium' | 'large';\n\nexport type HorizontalAlignEnum = 'left' | 'center' | 'right';\n\nexport type VerticalAlignEnum = 'top' | 'middle' | 'bottom';\n\nexport type ClassName = { [className: string]: any } | ClassName[] | string;\n\nexport type CSSSelector = string;\n\nexport interface Styles {\n [css: string]: string | number;\n}\n\nexport enum EKeyboardDirection {\n left = 37,\n up = 38,\n right = 39,\n down = 40,\n}\n\nexport const ARROW_DOWN_REG = /^ArrowDown$/i;\nexport const ARROW_UP_REG = /^ArrowUp$/i;\nexport const ARROW_LEFT_REG = /^ArrowLeft$/i;\nexport const ARROW_RIGHT_REG = /^ArrowRight$/i;\nexport const ESCAPE_REG = /^Escape$/i;\nexport const SPACE_REG = /^Space$/i;\nexport const ENTER_REG = /^Enter$/i;\nexport const SHIFT_REG = /^(Shift|ShiftLeft|ShiftRight)$/i;\nexport const CLEAR_REG = /^KeyC$/i;\nexport const ALL_REG = /^(KeyA|KeyL)$/i;\nexport const CHECKED_CODE_REG = /^(Enter|Space)$/i;\n","import { defineComponent, computed, toRefs } from 'vue';\nimport props from './check-tag-props';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useContent } from '../hooks/tnode';\nimport Tag from './tag';\nimport { TdCheckTagProps, TdTagProps } from './type';\nimport { ENTER_REG, SPACE_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'TCheckTag',\n props,\n setup(props: TdCheckTagProps) {\n const componentName = usePrefixClass('tag');\n const { SIZE } = useCommonClassName();\n const renderContent = useContent();\n\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const tagClass = computed(() => {\n return [\n `${componentName.value}`,\n `${componentName.value}--check`,\n SIZE.value[props.size],\n {\n [`${componentName.value}--checked`]: innerChecked.value,\n [`${componentName.value}--disabled`]: props.disabled,\n },\n ];\n });\n\n const checkTagProps = computed(() => {\n const checkedProps: TdTagProps = { theme: 'primary', ...props.checkedProps };\n const uncheckedProps: TdTagProps = { ...props.uncheckedProps };\n return innerChecked.value ? checkedProps : uncheckedProps;\n });\n\n const handleClick = ({ e }: { e: MouseEvent }) => {\n if (!props.disabled) {\n props.onClick?.({ e });\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const keyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n const isCheckedCode = SPACE_REG.test(code) || ENTER_REG.test(code);\n if (isCheckedCode) {\n e.preventDefault();\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return () => {\n const tagContent = renderContent('default', 'content');\n return (\n \n {tagContent}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagGroupProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 是否支持选中多个标签 */\n multiple: Boolean,\n /** 标签选项列表 */\n options: {\n type: Array as PropType,\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 选中标签值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n /** 选中标签值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckTagGroupProps['defaultValue'] => [],\n },\n /** null */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, toRefs, h } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\nimport useVModel from '../hooks/useVModel';\nimport { CheckTagGroupOption, CheckTagGroupValue, TdCheckTagProps } from './type';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TCheckTagGroup',\n props,\n setup(props, context) {\n const { value, modelValue, options } = toRefs(props);\n const componentName = usePrefixClass('check-tag-group');\n const checkTagGroupClasses = computed(() => [componentName.value]);\n\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const onCheckTagChange: TdCheckTagProps['onChange'] = (checked, ctx) => {\n const value = ctx.value;\n if (checked) {\n if (props.multiple) {\n setInnerValue(innerValue.value.concat(value), { e: ctx.e, type: 'check', value });\n } else {\n setInnerValue([value], { e: ctx.e, type: 'check', value });\n }\n } else {\n let newValue: CheckTagGroupValue = [];\n if (props.multiple) {\n newValue = innerValue.value.filter((t) => t !== value);\n }\n setInnerValue(newValue, { e: ctx.e, type: 'uncheck', value });\n }\n };\n\n const getTagContent = (option: CheckTagGroupOption) => {\n if (context.slots.option) return context.slots.option(option);\n if (context.slots.label) return context.slots.label(option);\n if (option.label) {\n return isFunction(option.label) ? option.label(h) : option.label;\n }\n if (option.content && isFunction(option.content)) return option.content(h);\n if (option.default && isFunction(option.default)) return option.default(h);\n return option.value;\n };\n\n return () => {\n return (\n
    \n {(options.value || []).map((option) => (\n \n {getTagContent(option)}\n \n ))}\n
    \n );\n };\n },\n});\n","import _Tag from './tag';\nimport _CheckTag from './check-tag';\nimport _CheckTagGroup from './check-tag-group';\nimport withInstall from '../utils/withInstall';\nimport { TdTagProps, TdCheckTagProps, TdCheckTagGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagProps = TdTagProps;\nexport type CheckTagProps = TdCheckTagProps;\nexport type CheckTagGroupProps = TdCheckTagGroupProps;\n\nexport const Tag = withInstall(_Tag);\nexport const CheckTag = withInstall(_CheckTag);\nexport const CheckTagGroup = withInstall(_CheckTagGroup);\n\nexport default Tag;\n","import { defineComponent, computed, toRefs, ref, nextTick, reactive, watch } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport TInput, { InputProps, StrInputProps, TdInputProps } from '../input';\nimport { TdTagInputProps } from './type';\nimport props from './props';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\nimport useDefault from '../hooks/useDefaultValue';\nimport { isArray } from 'lodash-es';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('tag-input'),\n CLEAR_CLASS: usePrefixClass('tag-input__suffix-clear'),\n BREAK_LINE_CLASS: usePrefixClass('tag-input--break-line'),\n };\n};\n\nexport default defineComponent({\n name: 'TTagInput',\n props,\n setup(props: TdTagInputProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { NAME_CLASS, CLEAR_CLASS, BREAK_LINE_CLASS } = useComponentClassName();\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n const { inputValue, inputProps, borderless, size, tips, status, suffix, autoWidth, onPaste } = toRefs(props);\n const [tInputValue, setTInputValue] = useDefault(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport useVModel from '../../hooks/useVModel';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value?.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value instanceof Array ? tagValue.value.concat(String(valueStr)) : [valueStr];\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value || !tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value || !tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList?.map?.((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== (tagValue.value || []).length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport withInstall from '../utils/withInstall';\nimport { TdTagInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagInputProps = TdTagInputProps;\n\nexport const TagInput = withInstall(_TagInput);\n\nexport default TagInput;\n","import { SetupContext, computed, ref, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { TdSelectInputProps, SelectInputChangeContext, SelectInputKeys } from '../type';\nimport { SelectInputCommonProperties } from '../types';\nimport TagInput, { TagInputValue, TagInputProps } from '../../tag-input';\nimport Loading from '../../loading';\nimport useDefault from '../../hooks/useDefaultValue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\nimport { PopupInstanceFunctions } from '../../popup';\n\nexport interface RenderSelectMultipleParams {\n commonInputProps: SelectInputCommonProperties;\n onInnerClear: (context: { e: MouseEvent }) => void;\n popupVisible: boolean;\n allowInput: boolean;\n}\n\nconst DEFAULT_KEYS = {\n label: 'label',\n key: 'key',\n children: 'children',\n};\n\nexport function useMultiple(props: TdSelectInputProps, context: SetupContext, popupRef: Ref) {\n const { inputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const tagInputRef = ref();\n const isMultipleFocus = ref(props.autofocus);\n const [tInputValue, setTInputValue] = useDefault(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const iKeys = computed(() => ({ ...DEFAULT_KEYS, ...props.keys }));\n const tags = computed(() => {\n if (!(props.value instanceof Array)) {\n // TODO: replace isObject as isPlainObject\n return isObject(props.value) ? [(props.value as Record)[iKeys.value.label]] : [props.value];\n }\n return props.value.map((item) => (isObject(item) ? (item as Record)[iKeys.value.label] : item));\n });\n\n const tPlaceholder = computed(() => (!tags.value || !tags.value.length ? props.placeholder : ''));\n\n const onTagInputChange = (val: TagInputValue, context: SelectInputChangeContext) => {\n // 避免触发浮层的显示或隐藏\n if (context.trigger === 'tag-remove') {\n context.e?.stopPropagation();\n }\n props.onTagChange?.(val, context);\n };\n\n const onInputChange: TagInputProps['onInputChange'] = (val, ctx) => {\n if (ctx.trigger === 'enter' || ctx.trigger === 'blur') return;\n setTInputValue(val, { trigger: ctx.trigger, e: ctx.e });\n };\n\n /**\n * 筛选器统一特性:\n * 1. 筛选器按下回车时不清空输入框;\n * 2. SelectInput 的失焦不等于 TagInput。如点击下拉面板时,TagInput 失去焦点,但 SelectInput 依旧保持聚焦,允许继续选择。\n */\n const onBlur: TagInputProps['onBlur'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (overlayState?.hover) return;\n isMultipleFocus.value = false;\n props.onBlur?.(props.value, { ...ctx, tagInputValue: val });\n };\n\n const onFocus: TagInputProps['onFocus'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isMultipleFocus.value || overlayState?.hover) return;\n isMultipleFocus.value = true;\n const params = { ...ctx, tagInputValue: val };\n props.onFocus?.(props.value, params);\n };\n\n const onEnter: TagInputProps['onEnter'] = (val, ctx) => {\n const params = { ...ctx, tagInputValue: val };\n props.onEnter?.(props.value, params);\n };\n\n const renderSelectMultiple = (p: RenderSelectMultipleParams) => {\n const tagInputProps = {\n ...p.commonInputProps,\n tagProps: props.tagProps,\n label: props.label,\n autoWidth: props.autoWidth,\n readonly: isReadonly.value,\n placeholder: tPlaceholder.value,\n minCollapsedNum: props.minCollapsedNum,\n collapsedItems: props.collapsedItems,\n tag: props.tag,\n value: tags.value,\n valueDisplay: props.valueDisplay,\n inputValue: p.popupVisible && p.allowInput ? tInputValue.value : '',\n inputProps: {\n readonly: !props.allowInput || isReadonly.value,\n inputClass: {\n [`${classPrefix.value}-input--focused`]: p.popupVisible,\n },\n ...props.inputProps,\n },\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n ...props.tagInputProps,\n };\n\n const { tips: _tips, ...slots } = context.slots;\n return (\n \n );\n };\n\n return {\n tags,\n tPlaceholder,\n tagInputRef,\n isMultipleFocus,\n multipleInputValue: tInputValue,\n renderSelectMultiple,\n };\n}\n","import { ref, toRefs, computed, CSSProperties } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport type overlayInnerStyleProps = Pick<\n TdSelectInputProps,\n 'popupProps' | 'autoWidth' | 'readonly' | 'onPopupVisibleChange' | 'disabled' | 'allowInput' | 'popupVisible'\n>;\n\n// 单位:px\nconst MAX_POPUP_WIDTH = 1000;\n// 避免因滚动条出现文本省略,预留宽度 8\nconst RESERVE_WIDTH = 0;\n\nexport function useOverlayInnerStyle(props: overlayInnerStyleProps) {\n const { popupProps, autoWidth } = toRefs(props);\n const innerPopupVisible = ref(false);\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const matchWidthFunc = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n const SCROLLBAR_WIDTH = popupElement.scrollHeight > popupElement.offsetHeight ? RESERVE_WIDTH : 0;\n const width =\n popupElement.offsetWidth + SCROLLBAR_WIDTH >= triggerElement.offsetWidth\n ? popupElement.offsetWidth\n : triggerElement.offsetWidth;\n let otherOverlayInnerStyle: CSSProperties = {};\n if (\n popupProps.value &&\n typeof popupProps.value.overlayInnerStyle === 'object' &&\n !popupProps.value.overlayInnerStyle.width\n ) {\n otherOverlayInnerStyle = popupProps.value.overlayInnerStyle;\n }\n return {\n width: `${Math.min(width, MAX_POPUP_WIDTH)}px`,\n ...otherOverlayInnerStyle,\n };\n };\n\n const onInnerPopupVisibleChange = (visible: boolean, ctx: PopupVisibleChangeContext) => {\n if (disable.value || isReadonly.value) return;\n // 如果点击触发元素(输入框)且为可输入状态,则继续显示下拉框\n const newVisible = ctx.trigger === 'trigger-element-click' && props.allowInput ? true : visible;\n // 重复点击触发元素时,下拉框展示状态不变,不重复触发事件\n if (props.popupVisible !== newVisible) {\n innerPopupVisible.value = newVisible;\n props.onPopupVisibleChange?.(newVisible, ctx);\n }\n };\n\n const getAutoWidthPopupStyleWidth = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n return {\n width: `${Math.max(triggerElement.offsetWidth, popupElement.offsetWidth)}px`,\n ...popupProps.value?.overlayInnerStyle,\n };\n };\n\n const tOverlayInnerStyle = computed(() => {\n let result: TdPopupProps['overlayInnerStyle'] = {};\n const overlayInnerStyle = popupProps.value?.overlayInnerStyle || {};\n if (isFunction(overlayInnerStyle) || (isObject(overlayInnerStyle) && overlayInnerStyle.width)) {\n result = overlayInnerStyle;\n } else {\n if (autoWidth.value) {\n result = getAutoWidthPopupStyleWidth;\n } else {\n result = matchWidthFunc;\n }\n }\n return result;\n });\n\n return {\n tOverlayInnerStyle,\n innerPopupVisible,\n onInnerPopupVisibleChange,\n };\n}\n","import { SetupContext, ref, computed, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\nimport { PopupInstanceFunctions } from '../../popup';\nimport { TdSelectInputProps } from '../type';\nimport { SelectInputCommonProperties } from '../types';\n\n// single 和 multiple 共有特性\nconst COMMON_PROPERTIES = [\n 'status',\n 'clearable',\n 'disabled',\n 'label',\n 'placeholder',\n 'readonly',\n 'prefixIcon',\n 'suffix',\n 'suffixIcon',\n 'onPaste',\n 'onMouseenter',\n 'onMouseleave',\n 'size',\n 'autofocus',\n];\n\nconst DEFAULT_KEYS = {\n label: 'label',\n value: 'value',\n children: 'children',\n};\n\nexport interface SelectInputValueDisplayOptions {\n useInputDisplay: boolean;\n usePlaceholder: boolean;\n}\n\nfunction getInputValue(value: TdSelectInputProps['value'], keys: TdSelectInputProps['keys']) {\n const iKeys = { ...DEFAULT_KEYS, ...keys };\n // TODO: replace isObject as isPlainObject\n return isObject(value) ? (value as Record)[iKeys.label] : value;\n}\n\nexport function useSingle(\n props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions },\n context: SetupContext,\n popupRef: Ref,\n) {\n const { value, keys, inputValue: propsInputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const isSingleFocus = ref(props.autofocus);\n const inputRef = ref();\n const [inputValue, setInputValue] = useDefaultValue(\n propsInputValue,\n props.defaultInputValue ?? '',\n props.onInputChange,\n 'inputValue',\n );\n const renderTNode = useTNodeJSX();\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const commonInputProps = computed(() => ({\n ...pick(props, COMMON_PROPERTIES),\n disabled: disable.value,\n readonly: isReadonly.value,\n }));\n\n const onInnerClear = (context: { e: MouseEvent }) => {\n context?.e?.stopPropagation();\n props.onClear?.(context);\n setInputValue('', { trigger: 'clear' });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (value, context) => {\n if (props.allowInput) {\n setInputValue(value, { ...context, trigger: context.trigger || 'input' });\n }\n };\n\n const renderSelectSingle = (popupVisible: boolean) => {\n const singleValueDisplay = renderTNode('valueDisplay');\n const displayedValue = popupVisible && props.allowInput ? inputValue.value : getInputValue(value.value, keys.value);\n const prefixContent = renderPrefixContent(singleValueDisplay, popupVisible);\n const inputProps = {\n ...commonInputProps.value,\n value: renderInputDisplay(singleValueDisplay, displayedValue, popupVisible),\n label: prefixContent.length ? () => prefixContent : undefined,\n autoWidth: props.autoWidth,\n readonly: !props.allowInput || isReadonly.value,\n placeholder: renderPlaceholder(singleValueDisplay),\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n showClearIconOnEmpty: Boolean(\n props.clearable && (inputValue.value || displayedValue) && !disable.value && !isReadonly.value,\n ),\n ...props.inputProps,\n };\n\n // eslint-disable-next-line\n const { tips, ...slots } = context.slots;\n\n const inputClassProps = popupVisible\n ? [`${classPrefix.value}-input--focused`, `${classPrefix.value}-is-focused`, inputProps?.inputClass]\n : inputProps?.inputClass;\n\n const onEnter: StrInputProps['onEnter'] = (val, context) => {\n props.onEnter?.(value.value, { ...context, inputValue: val });\n };\n\n const onFocus: StrInputProps['onFocus'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isSingleFocus.value || overlayState?.hover) return;\n isSingleFocus.value = true;\n props.onFocus?.(value.value, { ...context, inputValue: val });\n };\n\n const onBlur: StrInputProps['onBlur'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n isSingleFocus.value = false;\n if (overlayState?.hover) return;\n props.onBlur?.(value.value, { ...context, inputValue: val });\n };\n\n return (\n \n );\n };\n\n const renderPrefixContent = (singleValueDisplay: any, popupVisible: boolean) => {\n // 需要隐藏valueDisplay的两个情况\n // 1 用户传入usePlaceholder希望使用自带占位符实现,则应在未选择值时隐藏valueDisplay,只展示占位符\n // 2 用户传入useInputDisplay希望使用自带输入回显实现,激活选择器浮层时只展示input值(待讨论是否修改为激活后真的输入字符再隐藏valueDisplay,此处实现效果与不使用valueDisplay只使用filterable时不同)\n const label = renderTNode('label');\n\n if (!label && !singleValueDisplay) {\n return [];\n }\n\n if (singleValueDisplay) {\n if (\n (props.valueDisplayOptions?.usePlaceholder && !value.value) ||\n (props.valueDisplayOptions?.useInputDisplay && popupVisible)\n ) {\n return [label];\n }\n }\n return [label, singleValueDisplay];\n };\n\n const renderInputDisplay = (singleValueDisplay: any, displayedValue: any, popupVisible: boolean) => {\n // 使用valueDisplay插槽时,如用户传入useInputDisplay使用自带输入回显实现,未传则认为用户自行实现。\n if (singleValueDisplay)\n if (\n !props.valueDisplayOptions?.useInputDisplay ||\n (props.valueDisplayOptions?.useInputDisplay && !popupVisible)\n ) {\n return undefined;\n }\n return displayedValue;\n };\n\n const renderPlaceholder = (singleValueDisplay: any) => {\n // 使用valueDisplay插槽时,如用户传入usePlaceholder使用自带占位符实现,未传则认为用户自行实现。\n // 如果当前存在value(对应直接使用组件和select组件调用时),不显示占位符。\n if (singleValueDisplay) {\n if (!props.valueDisplayOptions?.usePlaceholder || (props.valueDisplayOptions?.usePlaceholder && value.value)) {\n return '';\n }\n }\n return props.placeholder;\n };\n\n return {\n inputRef,\n isSingleFocus,\n commonInputProps,\n singleInputValue: inputValue,\n onInnerClear,\n renderSelectSingle,\n };\n}\n","import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, ref, SetupContext, toRefs, watch } from 'vue';\nimport Popup, { PopupInstanceFunctions, PopupProps, PopupVisibleChangeContext } from '../popup';\nimport props from './props';\nimport { TdSelectInputProps } from './type';\nimport { useMultiple, useSingle, useOverlayInnerStyle } from './hooks';\nimport type { SelectInputValueDisplayOptions } from './hooks';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('select-input'),\n BASE_CLASS_BORDERLESS: usePrefixClass('select-input--borderless'),\n BASE_CLASS_MULTIPLE: usePrefixClass('select-input--multiple'),\n BASE_CLASS_POPUP_VISIBLE: usePrefixClass('select-input--popup-visible'),\n BASE_CLASS_EMPTY: usePrefixClass('select-input--empty'),\n };\n};\n\nexport default defineComponent({\n name: 'TSelectInput',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n * 自定义值呈现的选项\n * useInputDisplay 表示在使用时仍然使用组件自带的输入回显实现,\n * usePlaceholder 表示在使用时仍然使用自带的占位符实现\n * */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n\n setup(props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, context: SetupContext) {\n const { NAME_CLASS, BASE_CLASS_BORDERLESS, BASE_CLASS_MULTIPLE, BASE_CLASS_POPUP_VISIBLE, BASE_CLASS_EMPTY } =\n useComponentClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const selectInputRef = ref();\n const popupRef = ref();\n const { multiple, value, popupVisible, borderless, popupProps, panel, allowInput, status } = toRefs(props);\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const { isSingleFocus, commonInputProps, onInnerClear, renderSelectSingle } = useSingle(props, context, popupRef);\n\n const { isMultipleFocus, tagInputRef, renderSelectMultiple } = useMultiple(props, context, popupRef);\n\n const isFocus = computed(() => (props.multiple ? isMultipleFocus.value : isSingleFocus.value));\n\n const classes = computed(() => [\n `${NAME_CLASS.value}`,\n {\n [BASE_CLASS_MULTIPLE.value]: multiple.value,\n [BASE_CLASS_BORDERLESS.value]: borderless.value,\n [BASE_CLASS_POPUP_VISIBLE.value]: popupVisible.value ?? innerPopupVisible.value,\n [BASE_CLASS_EMPTY.value]: value.value instanceof Array ? !value.value.length : !value.value,\n },\n ]);\n\n const addKeyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n if (/(ArrowDown|ArrowUp)/.test(code) && !popupVisible.value) {\n const ctx: PopupVisibleChangeContext = { ...context, trigger: 'trigger-element-focus' };\n props.onPopupVisibleChange?.(true, ctx);\n }\n };\n\n watch([isFocus], ([isFocus]) => {\n if (popupVisible.value) return;\n if (isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n } else {\n selectInputRef.value.removeEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onMounted(() => {\n if (!popupVisible.value && isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onBeforeUnmount(() => {\n selectInputRef.value?.removeEventListener('keydown', addKeyboardEventListener);\n });\n\n const onOverlayClick: PopupProps['onOverlayClick'] = (ctx) => {\n ctx.e?.stopPropagation();\n // do not set focus if target can be focused\n if ((ctx.e.target as HTMLElement).tabIndex >= 0) return;\n if (props.multiple) tagInputRef.value?.focus?.();\n };\n\n context.expose({\n popupRef,\n allowInput,\n });\n\n return () => {\n // 浮层显示的受控与非受控\n const visibleProps = { visible: popupVisible.value ?? innerPopupVisible.value };\n\n const mainContent = (\n \n {multiple.value\n ? renderSelectMultiple({\n commonInputProps: commonInputProps.value,\n onInnerClear: onInnerClear,\n popupVisible: visibleProps.visible,\n allowInput: allowInput.value,\n })\n : renderSelectSingle(visibleProps.visible)}\n \n );\n\n const tipsNode = renderTNodeJSX('tips');\n\n const tipsClasses = [\n `${classPrefix.value}-input__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${status.value}`,\n ];\n\n return (\n
    \n {mainContent}\n {tipsNode &&
    {tipsNode}
    }\n
    \n );\n };\n },\n});\n","import _SelectInput from './select-input';\nimport withInstall from '../utils/withInstall';\nimport { TdSelectInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectInputProps = TdSelectInputProps;\n\nexport const SelectInput = withInstall(_SelectInput);\n\nexport default SelectInput;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdOptionProps } from '../select/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前选项是否为全选,全选可以在顶部,也可以在底部。点击当前选项会选中禁用态除外的全部选项,即使是分组选择器也会选中全部选项 */\n checkAll: Boolean,\n /** 用于定义复杂的选项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 用于定义复杂的选项内容。同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用该选项 */\n disabled: Boolean,\n /** 选项名称 */\n label: {\n type: String,\n default: '',\n },\n /** 选项标题,在选项过长时hover选项展示 */\n title: {\n type: String,\n default: '',\n },\n /** 选项值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用 */\n checkAll: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 多选框内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用组件。如果父组件存在 CheckboxGroup,默认值由 CheckboxGroup.disabled 控制。优先级:Checkbox.disabled > CheckboxGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否为半选 */\n indeterminate: Boolean,\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否启用懒加载。数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 原生属性 */\n title: {\n type: String,\n default: '',\n },\n /** 多选框的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 值变化时触发 */\n onChange: Function as PropType,\n};\n","import { ComputedRef, InjectionKey } from 'vue';\nimport { TdCheckboxGroupProps, TdCheckboxProps } from '../type';\n\nexport interface CheckboxGroupInjectData {\n name?: string;\n isCheckAll: boolean;\n maxExceeded: boolean;\n disabled: boolean;\n readonly: boolean;\n indeterminate: boolean;\n checkedValues: TdCheckboxGroupProps['value'];\n handleCheckboxChange: (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => void;\n onCheckedChange: (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => void;\n}\n\nexport const CheckboxGroupInjectionKey: InjectionKey> =\n Symbol('CheckboxGroupProvide');\n","export default function observe(\n element: HTMLElement,\n root: HTMLElement,\n callback: Function,\n marginBottom: number,\n): IntersectionObserver {\n if (typeof window === 'undefined') return null;\n if (!window || !window.IntersectionObserver) {\n callback();\n return null;\n }\n let io: IntersectionObserver = null;\n try {\n io = new window.IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n callback();\n io.unobserve(element);\n }\n },\n {\n rootMargin: `0px 0px ${marginBottom}px 0px`,\n root,\n },\n );\n io.observe(element);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n callback();\n }\n return io;\n}\n","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport useVModel from '../hooks/useVModel';\nimport useRipple from '../hooks/useRipple';\nimport { useContent } from '../hooks/tnode';\nimport { useCommonClassName, usePrefixClass } from '../hooks/useConfig';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TCheckbox',\n props: {\n ...props,\n needRipple: Boolean,\n stopLabelTrigger: Boolean,\n index: Number,\n // 传递给 Checkbox 组件额外的数据\n data: Object,\n },\n setup(props) {\n const labelRef = ref();\n if (props.needRipple) {\n useRipple(labelRef);\n }\n const { STATUS } = useCommonClassName();\n\n const { checked, modelValue, lazyLoad } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const checkboxGroupData = inject(CheckboxGroupInjectionKey, undefined);\n\n /**\n * Warn: Do not use computed to set tName,\n * otherwise checkbox group will render all checkbox items on every checked or unchecked.\n */\n const tName = ref();\n watch(\n () => [props.name, checkboxGroupData?.value.name].join('_'),\n () => {\n const name = props.name || checkboxGroupData?.value.name;\n if (name) {\n tName.value = name;\n }\n },\n { immediate: true },\n );\n\n // checked\n const tChecked = ref(false);\n const getChecked = () => {\n const { value, checkAll } = props;\n if (checkAll) return checkboxGroupData?.value.isCheckAll;\n return checkboxGroupData?.value ? checkboxGroupData.value.checkedValues.includes(value) : innerChecked.value;\n };\n watch(\n () => [\n innerChecked.value,\n checkboxGroupData?.value.isCheckAll,\n checkboxGroupData?.value.checkedValues?.join(','),\n ],\n () => {\n tChecked.value = getChecked();\n },\n { immediate: true },\n );\n\n // Checkbox.disabled > CheckboxGroup.disabled > Form.disabled\n const beforeDisabled = computed(() => {\n if (!props.checkAll && !tChecked.value && checkboxGroupData?.value.maxExceeded) {\n return true;\n }\n return null;\n });\n const afterDisabled = computed(() => {\n return checkboxGroupData?.value.disabled;\n });\n const isDisabled = useDisabled({ beforeDisabled, afterDisabled });\n\n // Checkbox.readonly > CheckboxGroup.readonly > Form.readonly\n const afterReadonly = computed(() => {\n return checkboxGroupData?.value.readonly;\n });\n const isReadonly = useReadonly({ afterReadonly });\n\n const tIndeterminate = ref(false);\n watch(\n () => [props.checkAll, props.indeterminate, checkboxGroupData?.value.indeterminate],\n () => {\n tIndeterminate.value = props.checkAll ? checkboxGroupData?.value.indeterminate : props.indeterminate;\n },\n { immediate: true },\n );\n\n /** update labelClasses, do not use computed to get labelClasses */\n const COMPONENT_NAME = usePrefixClass('checkbox');\n const labelClasses = ref({});\n watch(\n [tChecked, isDisabled, tIndeterminate],\n () => {\n labelClasses.value = [\n `${COMPONENT_NAME.value}`,\n {\n [STATUS.value.checked]: tChecked.value,\n [STATUS.value.disabled]: isDisabled.value,\n [STATUS.value.indeterminate]: tIndeterminate.value,\n },\n ];\n },\n { immediate: true },\n );\n\n const handleChange = (e: Event) => {\n if (isReadonly.value) return;\n const checked = !tChecked.value;\n setInnerChecked(checked, { e });\n if (checkboxGroupData?.value.handleCheckboxChange) {\n checkboxGroupData.value.onCheckedChange({ checked, checkAll: props.checkAll, e, option: props });\n }\n };\n\n const renderContent = useContent();\n\n const handleLabelClick = (e: MouseEvent) => {\n // 在tree等组件中使用 阻止label触发checked 与expand冲突\n if (props.stopLabelTrigger) e.preventDefault();\n };\n\n const { showCheckbox } = useCheckboxLazyLoad(labelRef, lazyLoad);\n const { onCheckboxFocus, onCheckboxBlur } = useKeyboardEvent(handleChange);\n\n return () => {\n const titleAttr = isString(props.title) && props.title ? props.title : null;\n return (\n \n {!showCheckbox.value\n ? null\n : [\n ,\n ,\n \n {renderContent('default', 'label')}\n ,\n ]}\n \n );\n };\n },\n});\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useCheckboxLazyLoad(labelRef: Ref, lazyLoad: Ref) {\n const ioObserver = ref();\n const showCheckbox = ref(true);\n const handleLazyLoad = () => {\n if (!lazyLoad.value) return;\n showCheckbox.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showCheckbox.value = true;\n },\n 0,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n watch([lazyLoad, labelRef], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value.unobserve(labelRef.value);\n });\n\n return {\n showCheckbox,\n };\n}\n\nexport default useCheckboxLazyLoad;\n","import { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\nexport function useKeyboardEvent(handleChange: (e: Event) => void) {\n const keyboardEventListener = (e: KeyboardEvent) => {\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n const { disabled } = (e.currentTarget as HTMLElement).querySelector('input');\n !disabled && handleChange(e);\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return {\n onCheckboxFocus,\n onCheckboxBlur,\n };\n}\n\nexport default useKeyboardEvent;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxGroupProps } from '../checkbox/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件。优先级:Form.disabled < CheckboxGroup.disabled < Checkbox.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否启用懒加载。子组件 Checkbox 数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** 支持最多选中的数量 */\n max: {\n type: Number,\n default: undefined,\n },\n /** 统一设置内部复选框 HTML 属性 */\n name: {\n type: String,\n default: '',\n },\n /** 以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckboxGroupProps['defaultValue'] => [],\n },\n /** 值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项 */\n onChange: Function as PropType,\n};\n","import { defineComponent, provide, computed, watchEffect, ref, toRefs } from 'vue';\nimport { intersection } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { isUndefined } from 'lodash-es';\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useChildComponentSlots } from '../hooks/slot';\n\nexport default defineComponent({\n name: 'TCheckboxGroup',\n props,\n setup(props) {\n /** 样式 */\n const COMPONENT_NAME = usePrefixClass('checkbox-group');\n const renderTNodeJSX = useTNodeJSX();\n\n const { isArray } = Array;\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const optionList = ref>([]);\n\n const intersectionLen = computed(() => {\n if (!isArray(innerValue.value)) return 0;\n const values = optionList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n /**\n * 计算是否所有选项都被选中。\n * 此函数不接受参数,但依赖于外部的 `optionList` 和 `innerValue` 变量。\n *\n * @returns {boolean} 如果所有符合条件的选项都被选中,则返回 `true`;否则返回 `false`。\n */\n const isCheckAll = computed(() => {\n // 筛选出非禁用、非只读且不设置为“全选”的选项,并提取其值\n const optionItems = optionList.value\n .filter((item) => !item.disabled && !item.readonly && !item.checkAll)\n .map((t) => t.value);\n\n // 计算当前选中值与筛选后的选项值的交集\n const intersectionValues = intersection(optionItems, innerValue.value);\n\n // 判断交集的长度是否等于所有选项值的长度,以确定是否所有选项都被选中\n return intersectionValues.length === optionItems.length;\n });\n\n const indeterminate = computed(\n () => !isCheckAll.value && intersectionLen.value < optionList.value.length && intersectionLen.value !== 0,\n );\n\n const maxExceeded = computed(() => !isUndefined(props.max) && innerValue.value.length === props.max);\n\n watchEffect(() => {\n if (!props.options) return [];\n optionList.value = props.options.map((item) => {\n return isObject(item) ? item : { label: String(item), value: item };\n });\n });\n\n /**\n * 获取所有复选框的值。\n * 此函数遍历 `optionList` 中的项,忽略被标记为 `checkAll`、`disabled` 或 `readonly` 的项,\n * 并收集非这些状态的项的值到一个 Set 集合中。如果达到最大限制 `maxExceeded`,则停止遍历。\n *\n * @returns {CheckboxGroupValue} 返回一个数组,包含所有非 `checkAll`、`disabled`、`readonly` 状态复选框的值。\n */\n const getAllCheckboxValue = (): CheckboxGroupValue => {\n const val = new Set();\n\n // 遍历选项列表,忽略特定状态的项,并收集有效值\n for (let i = 0, len = optionList.value.length; i < len; i++) {\n const item = optionList.value[i];\n\n // 如果项被标记为检查所有、禁用或只读,则跳过当前循环迭代\n if (item.checkAll) continue;\n if (item.disabled) continue;\n if (item.readonly) continue;\n\n val.add(item.value); // 添加非排除状态项的值到集合中\n\n // 如果已达到最大限制,则终止循环\n if (maxExceeded.value) break;\n }\n\n return [...val]; // 从 Set 集合转换为数组并返回\n };\n\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const value: CheckboxGroupValue = checked ? getAllCheckboxValue() : [];\n setInnerValue(value, {\n e: context.e,\n type: checked ? 'check' : 'uncheck',\n current: undefined,\n option: undefined,\n });\n };\n\n const handleCheckboxChange = (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => {\n const currentValue = data.option.value;\n if (!isArray(innerValue.value)) {\n console.warn(`TDesign CheckboxGroup Warn: \\`value\\` must be an array, instead of ${typeof innerValue.value}`);\n return;\n }\n const val = [...innerValue.value];\n if (data.checked) {\n val.push(currentValue);\n } else {\n const i = val.indexOf(currentValue);\n val.splice(i, 1);\n }\n setInnerValue(val, {\n e: data.e,\n current: data.option.value,\n option: data.option,\n type: data.checked ? 'check' : 'uncheck',\n });\n };\n\n const onCheckedChange = (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => {\n const { checked, checkAll, e } = p;\n if (checkAll) {\n onCheckAllChange(checked, { e });\n } else {\n handleCheckboxChange(p);\n }\n };\n\n const getChildComponentSlots = useChildComponentSlots();\n\n const getOptionListBySlots = () => {\n const nodes = getChildComponentSlots('Checkbox');\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node.props as CheckboxOptionObj;\n if (!option) return;\n // @ts-ignore types only declare checkAll not declare check-all\n if (option['check-all'] === '' || option['check-all'] === true) {\n option.checkAll = true;\n }\n arr.push(option);\n });\n return arr;\n };\n\n provide(\n CheckboxGroupInjectionKey,\n computed(() => ({\n name: props.name,\n isCheckAll: isCheckAll.value,\n checkedValues: innerValue.value || [],\n maxExceeded: maxExceeded.value,\n disabled: props.disabled,\n readonly: props.readonly,\n indeterminate: indeterminate.value,\n handleCheckboxChange,\n onCheckedChange,\n })),\n );\n\n return () => {\n let children = null;\n if (props.options?.length) {\n children = optionList.value?.map((option, index) => (\n \n ));\n } else {\n const nodes = renderTNodeJSX('default');\n optionList.value = getOptionListBySlots();\n children = nodes;\n }\n return (\n
    \n {children}\n
    \n );\n };\n },\n});\n","import _Checkbox from './checkbox';\nimport _Group from './group';\nimport withInstall from '../utils/withInstall';\nimport { TdCheckboxProps, TdCheckboxGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CheckboxProps = TdCheckboxProps;\nexport type CheckboxGroupProps = TdCheckboxGroupProps;\n\nexport const Checkbox = withInstall(_Checkbox);\nexport const CheckboxGroup = withInstall(_Group);\n\nexport default Checkbox;\n","import { ComputedRef } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { TdSelectProps, TdOptionProps, SelectValue, SelectOption } from '../type';\n\nexport const getSingleContent = (\n value: TdSelectProps['value'],\n optionsMap: ComputedRef, TdOptionProps>>,\n): string => {\n const option = optionsMap.value.get(value);\n return option?.label || value?.toString();\n};\n\nexport const getMultipleContent = (\n value: SelectValue[],\n optionsMap: ComputedRef, TdOptionProps>>,\n) => {\n const res = [];\n for (const iterator of value) {\n const resLabel = getSingleContent(iterator, optionsMap);\n if (resLabel) {\n res.push(resLabel);\n }\n }\n return res;\n};\n\nexport const getNewMultipleValue = (innerValue: SelectValue[], optionValue: SelectValue) => {\n const value = cloneDeep(innerValue) as SelectValue[];\n const valueIndex = value.indexOf(optionValue);\n if (valueIndex < 0) {\n value.push(optionValue);\n } else {\n value.splice(valueIndex, 1);\n }\n return {\n value,\n isCheck: valueIndex < 0,\n };\n};\n","import { InjectionKey, ComputedRef } from 'vue';\nimport { TdSelectProps, TdOptionProps, SelectValue } from '../type';\n\nexport const selectInjectKey: InjectionKey<\n ComputedRef<{\n hoverIndex: number;\n selectValue: TdSelectProps['value'];\n size: TdSelectProps['size'];\n max: TdSelectProps['max'];\n reserveKeyword: TdSelectProps['reserveKeyword'];\n multiple: TdSelectProps['multiple'];\n handleValueChange: TdSelectProps['onChange'];\n handleCreate: TdSelectProps['onCreate'];\n handlerInputChange: TdSelectProps['onInputChange'];\n handlePopupVisibleChange: TdSelectProps['onPopupVisibleChange'];\n popupContentRef: ComputedRef;\n indeterminate: boolean;\n isCheckAll: boolean;\n onCheckAllChange: (checked: boolean) => void;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n displayOptions: TdSelectProps['options'];\n emitBlur: (e: MouseEvent | KeyboardEvent) => void;\n }>\n> = Symbol('selectProvide');\n","import { defineComponent, ref, computed, inject, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue';\n\nimport props from './option-props';\nimport Checkbox from '../checkbox/index';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport useRipple from '../hooks/useRipple';\nimport { useContent } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { getNewMultipleValue } from './utils';\nimport { selectInjectKey } from './consts';\nimport { SelectValue } from './type';\n\nexport default defineComponent({\n name: 'TOption',\n props: {\n ...props,\n createAble: Boolean,\n multiple: Boolean,\n index: Number,\n rowIndex: Number,\n trs: Map,\n scrollType: String,\n isVirtual: Boolean,\n bufferSize: Number,\n checkAll: Boolean,\n },\n emits: ['row-mounted'],\n\n setup(props, context) {\n const selectProvider = inject(selectInjectKey);\n const formDisabled = useDisabled();\n const { vnode } = getCurrentInstance();\n\n const isReachMax = computed(\n () =>\n selectProvider.value.max !== 0 &&\n selectProvider.value.max <= (selectProvider.value.selectValue as SelectValue[]).length,\n );\n const disabled = computed(\n () =>\n formDisabled.value ||\n (props.multiple && isReachMax.value && !isSelected.value && !selectProvider.value.isCheckAll),\n );\n\n const renderContent = useContent();\n\n const selectName = usePrefixClass('select');\n const { STATUS, SIZE } = useCommonClassName();\n const liRef = ref();\n\n const isHover = ref(false);\n\n const isSelected = computed(() => {\n if (selectProvider.value.isCheckAll && !props.disabled) return true;\n return !props.multiple\n ? selectProvider.value.selectValue === props.value\n : (selectProvider.value.selectValue as SelectValue[]).includes(props.value);\n });\n\n const isIndeterminate = computed(() => {\n if (!props.checkAll) return false;\n return selectProvider.value.indeterminate;\n });\n\n const classes = computed(() => [\n `${selectName.value}-option`,\n [SIZE.value[selectProvider.value.size]],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.selected]: isSelected.value,\n [`${selectName.value}-option__hover`]:\n (isHover.value || selectProvider.value.hoverIndex === props.index) && !disabled.value,\n },\n ]);\n\n const labelText = computed(() => props.label || props.value);\n\n const handleClick = (e: MouseEvent | KeyboardEvent) => {\n if (props.disabled || disabled.value) return;\n if (props.multiple) {\n handleCheckboxClick(!isSelected.value, { e });\n e.preventDefault();\n return;\n }\n\n if (props.createAble) {\n selectProvider.value.handleCreate?.(props.value);\n if (selectProvider.value.multiple) {\n selectProvider.value.handleValueChange(\n [...(selectProvider.value.selectValue as SelectValue[]), props.value],\n {\n selectedOptions: selectProvider.value.getSelectedOptions(),\n trigger: 'check',\n e,\n },\n );\n return;\n }\n }\n const selectedOptions = selectProvider.value.getSelectedOptions(props.value);\n selectProvider.value.handleValueChange(props.value, {\n option: selectedOptions?.[0],\n selectedOptions: selectedOptions,\n trigger: 'check',\n e,\n });\n selectProvider.value.handlePopupVisibleChange(false, { e });\n selectProvider.value.emitBlur(e);\n };\n\n const handleCheckboxClick = (val: boolean, context: { e: MouseEvent | KeyboardEvent }) => {\n if (props.checkAll) {\n selectProvider.value.onCheckAllChange(val);\n return;\n }\n const newValue = getNewMultipleValue(selectProvider.value.selectValue as SelectValue[], props.value);\n const selectedOptions = selectProvider.value.getSelectedOptions(newValue.value);\n\n const currentOption = selectProvider.value.getSelectedOptions(props.value)?.[0];\n selectProvider.value.handleValueChange(newValue.value, {\n option: currentOption,\n selectedOptions,\n trigger: val ? 'check' : 'uncheck',\n e: context.e,\n });\n };\n\n const renderTitle = () => {\n const vProps = vnode.props || {};\n // 如果设置了title 说明希望自己控制title的展示\n if (Reflect.has(vProps, 'title')) {\n return props.title;\n }\n if (typeof labelText.value === 'string') return labelText.value;\n\n return null;\n };\n\n // 处理虚拟滚动节点挂载\n onMounted(() => {\n const { trs, rowIndex, isVirtual } = props;\n if (isVirtual) {\n trs.set(rowIndex, liRef.value);\n context.emit('row-mounted');\n }\n });\n\n // 处理虚拟滚动节点移除\n onBeforeUnmount(() => {\n if (props.isVirtual) {\n const { trs, rowIndex } = props;\n trs.delete(rowIndex);\n }\n });\n\n useRipple(liRef);\n\n return () => {\n const optionChild = renderContent('default', 'content') || labelText.value;\n\n return (\n (isHover.value = true)}\n onMouseleave={() => (isHover.value = false)}\n onClick={handleClick}\n >\n {selectProvider && props.multiple ? (\n \n {optionChild}\n \n ) : (\n {optionChild}\n )}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 是否显示分隔线 */\n divider: {\n type: Boolean,\n default: true,\n },\n /** 分组别名 */\n label: {\n type: String,\n },\n};\n","import { defineComponent, inject, computed } from 'vue';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './option-group-props';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TOptionGroup',\n props,\n setup(props) {\n const selectProvider = inject(selectInjectKey);\n const COMPONENT_NAME = usePrefixClass('select-option-group');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const classes = computed(() => [\n COMPONENT_NAME.value,\n SIZE.value[selectProvider.value.size],\n {\n [`${COMPONENT_NAME.value}__divider`]: props.divider,\n },\n ]);\n\n return () => (\n
  • \n {(props.label ?? false) &&
    {props.label}
    }\n {renderTNodeJSX('default')}\n
  • \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可以清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedTags` 表示折叠的标签,泛型 `T` 继承 `SelectOption`,表示选项数据;`count` 表示折叠的数量, `onClose` 表示移除标签 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否允许用户创建新条目,需配合 filterable 使用 */\n creatable: Boolean,\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义搜索规则,用于对现有数据进行搜索,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索,默认搜索规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 数据化配置选项内容 */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否显示右侧箭头,默认显示 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectProps['size'],\n validator(val: TdSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectProps['status'],\n validator(val: TdSelectProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined,\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据。 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdSelectProps['valueType'],\n validator(val: TdSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 当选择新创建的条目时触发 */\n onCreate: Function as PropType,\n /** 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 */\n onEnter: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { Ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport useVirtualScroll from '../../hooks/useVirtualScroll';\nimport { TdSelectProps } from '../type';\nimport { Styles } from '../../common';\n\nexport const usePanelVirtualScroll = (props: {\n scroll: TdSelectProps['scroll'];\n popupContentRef: Ref;\n options: Ref;\n}) => {\n const isVirtual = computed(\n () => props.scroll?.type === 'virtual' && props.options.value?.length > (props.scroll?.threshold || 100),\n );\n\n const {\n trs = null,\n visibleData = null,\n handleScroll: handleVirtualScroll = null,\n scrollHeight = null,\n translateY = null,\n handleRowMounted = null,\n } = props.scroll?.type === 'virtual'\n ? useVirtualScroll({\n container: props.popupContentRef,\n data: props.options,\n fixedHeight: props.scroll?.isFixedRowHeight || false,\n lineHeight: props.scroll?.rowHeight || 28, // 默认每行高度28\n bufferSize: props.scroll?.bufferSize || 20,\n threshold: props.scroll?.threshold || 100,\n })\n : {};\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n if (!isVirtual.value) {\n return;\n }\n const target = e.target as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (Math.abs(lastScrollY - top) > 5) {\n handleVirtualScroll();\n lastScrollY = top;\n } else {\n lastScrollY = -1;\n }\n };\n\n // 监听popup滚动 处理虚拟滚动时的virtualData变化\n onMounted(() => {\n props.popupContentRef.value?.addEventListener('scroll', onInnerVirtualScroll);\n });\n\n // 卸载时取消监听\n onBeforeUnmount(() => {\n props.popupContentRef.value?.removeEventListener('scroll', onInnerVirtualScroll);\n });\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${scrollHeight.value}px)`,\n } as Styles),\n );\n\n const panelStyle = computed(\n () =>\n ({\n transform: `translate(0, ${translateY.value}px)`,\n '-ms-transform': `translate(0, ${translateY.value}px)`,\n '-moz-transform': `translate(0, ${translateY.value}px)`,\n '-webkit-transform': `translate(0, ${translateY.value}px)`,\n } as Styles),\n );\n\n return {\n trs,\n scrollHeight,\n translateY,\n visibleData,\n handleRowMounted,\n isVirtual,\n cursorStyle,\n panelStyle,\n };\n};\n","/* eslint-disable */\n/**\n * 当前虚拟滚动存在的问题\n * 1. 反复拖动滚动条,底部会出现奇怪的高度\n * 2. 表格高度发生变化时,底部也会出现奇怪的高度\n * 3. 无法直接定位滚动到某个元素,进而无法实现 Select 组件直接滚动到选中项\n */\nimport { ref, toRefs, reactive, onMounted, computed, watch, nextTick } from 'vue';\n\n// 虚拟滚动Hooks的完整实现,只所以封装成hooks,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nconst useVirtualScroll = ({\n data,\n container,\n fixedHeight = false,\n lineHeight = 30,\n bufferSize = 20,\n threshold = 100,\n}: {\n data: any;\n container: any;\n fixedHeight: boolean;\n lineHeight: number;\n bufferSize: number;\n threshold: number;\n}) => {\n const state = reactive({\n visibleData: [],\n cachedHeight: [],\n cachedScrollY: [],\n });\n const isVirtual = computed(() => data.value.length > threshold);\n const updateId = ref(0);\n const trs = new Map(); // 当前展示的行元素和数据\n\n let visibleCount = 0; // 可见的节点数量\n let beforeScrollTop = 0; // 上一次的滚动条位置\n let index = 0; // 偏移行数\n let offset = 0; // 少于一行行高的偏移量\n let start = 0; // 第一条显示的行\n let last = 0; // 最后一条显示的行\n // let revising = false; // 是否正在修正滚动条\n\n const reset = () => {\n data.value.forEach((item: any, i: number) => {\n item.$index = i;\n if (fixedHeight) {\n state.cachedScrollY[i] = i * lineHeight;\n }\n });\n if (!fixedHeight) {\n state.cachedScrollY[data.value.length - 1] = undefined; // 初始化cachedScrollY数组的长度\n }\n };\n reset();\n\n // 计算虚拟滚动列表总高度,需要动态修正\n const scrollHeight = computed(() => {\n const { cachedHeight } = state;\n const { length } = cachedHeight;\n if (length) {\n const maxScrollY = cachedHeight.reduce((sum, v) => sum + v || lineHeight, 0); // 当前总高度\n if (cachedHeight.length === data.value.length) {\n return maxScrollY;\n }\n const average = maxScrollY / cachedHeight.length; // 平均高度\n return maxScrollY + (data.value.length - cachedHeight.length) * average; // 预估总高度\n }\n return isVirtual.value ? data.value.length * lineHeight : 0;\n });\n const translateY = computed(() => {\n const { visibleData } = state;\n const firstRow = visibleData[0];\n if (firstRow) {\n // 修复只有一个元素时存在偏移的问题\n return visibleData.length === 1 ? 0 : state.cachedScrollY[firstRow.$index];\n }\n return 0;\n });\n\n // 更新可视区域的节点数据\n const updateVisibleData = () => {\n last = Math.min(start + visibleCount + bufferSize * 2, data.value.length);\n state.visibleData = data.value.slice(start, last);\n };\n // 计算每行对应的scrollTop值\n const calculateScrollY = () => {\n const anchorDom = trs.get(index); // 获取锚点元素\n if (!anchorDom) {\n return; // 快速调整高度时,新的元素可能来不及加载,暂时跳过更新\n }\n const anchorDomHeight = anchorDom?.getBoundingClientRect()?.height; // 获取锚点元素的高\n state.cachedScrollY[index] = container.value.scrollTop - offset; // 锚点元素scrollY= 容器滚动高度 - 锚点元素的offset\n state.cachedHeight[index] = anchorDomHeight;\n\n for (let i = index + 1; i <= state.visibleData[state.visibleData.length - 1]?.$index; i++) {\n // 计算锚点后面的元素scrollY\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i - 1] + state.cachedHeight[i - 1]; // 当前元素的y 是前一个元素的y+前一个元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY); // 兼容vue2的composition api\n }\n\n for (let i = index - 1; i >= state.visibleData[0]?.$index; i--) {\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i + 1] - state.cachedHeight[i]; // 当前元素的y是下一个元素y - 当前元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY);\n }\n if (state.cachedScrollY[0] > 0) {\n // 修正滚动过快时,滚动到顶部时,滚动条多余的问题\n // revising = true;\n const distance = state.cachedScrollY[0]; // 第一个元素scrollY即为多出的量\n const length = Math.min(last, data.value.length);\n for (let i = 0; i < length; i++) {\n // state.cachedScrollY[i] -= distance;\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i] - distance);\n }\n\n const scrollTop = state.cachedScrollY[index - 1] ? state.cachedScrollY[index - 1] + offset : offset;\n container.value.scrollTop = scrollTop;\n beforeScrollTop = scrollTop;\n // revising = false;\n }\n // 修正拖动过快时,滚动到顶端时,滚动条不足的偏差\n if (state.cachedScrollY[start] < 0) {\n // revising = true;\n const s = state.cachedHeight.slice(0, Math.max(0, index)).reduce((sum, v) => sum + v, 0) + offset;\n container.value.scrollTop = s;\n beforeScrollTop = s;\n if (s === 0) {\n index = 0;\n offset = 0;\n }\n // revising = false;\n }\n nextTick(() => {\n // setTimeout是为了保证快速拖动到底部时,以下逻辑能够正常执行\n const { scrollTop, scrollHeight, clientHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动到底部时,修正底部有空余的问题\n // revising = true;\n for (let i = last - 1; i >= start; i--) {\n if (i === last - 1) {\n // state.cachedScrollY[i] = scrollHeight.value - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, scrollHeight.value - state.cachedHeight[i]);\n } else {\n // state.cachedScrollY[i] = state.cachedScrollY[i + 1] - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i + 1] - state.cachedHeight[i]);\n }\n }\n // revising = false;\n }\n });\n };\n\n // 滚动时动态计算和渲染\n const handleScroll = () => {\n if (!isVirtual.value) return;\n // if (revising) {\n // return false; // 修正滚动条时,暂停滚动逻辑\n // }\n const { scrollTop } = container.value;\n let distance = scrollTop - beforeScrollTop; // 滚动差值\n beforeScrollTop = scrollTop;\n distance += offset;\n let lastIndex = index;\n // !disatance 可能为横向滚动,不做任何计算\n if (!distance) return;\n if (distance >= 0) {\n // 向下滚动\n while (lastIndex < data.value.length && distance > (state.cachedHeight[lastIndex] || lineHeight)) {\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance -= state.cachedHeight[lastIndex];\n lastIndex++;\n }\n if (lastIndex >= data.value.length) {\n index = data.value.length - 1;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n const { clientHeight, scrollHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动条到底了\n index = data.value.length - visibleCount + 1;\n // calculateScrollY();\n }\n if (start <= index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.min(data.value.length - visibleCount, index - bufferSize);\n if (start < 0) {\n start = 0;\n }\n }\n } else {\n // 向上滚动\n while (distance < 0) {\n lastIndex--;\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance += state.cachedHeight[lastIndex];\n }\n if (lastIndex < 0) {\n index = 0;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n calculateScrollY();\n if (start > index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.max(0, index - bufferSize);\n }\n }\n updateVisibleData();\n };\n\n !fixedHeight && watch(updateId, calculateScrollY, { flush: 'post' });\n const handleRowMounted = () => {\n if (!isVirtual.value) return;\n updateId.value++;\n };\n watch(data, () => {\n reset();\n state.visibleData = [];\n state.cachedScrollY = [];\n state.cachedHeight = [];\n beforeScrollTop = 0;\n index = 0;\n offset = 0;\n start = 0;\n // revising = false;\n trs.clear();\n if (data.value.length <= threshold) {\n state.visibleData = data.value;\n } else {\n updateVisibleData();\n }\n\n container.value && (container.value.scrollTop = 0);\n });\n let mounted = false;\n const refreshContainer = () => {\n if (mounted) {\n visibleCount = Math.ceil(container.value.offsetHeight / lineHeight);\n updateVisibleData();\n }\n };\n onMounted(() => {\n if (!window || !window.IntersectionObserver) {\n return;\n }\n const ob = new window.IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting || entry.intersectionRatio) {\n mounted = true;\n isVirtual.value && refreshContainer();\n ob.unobserve(container.value);\n }\n });\n container.value && ob.observe(container.value);\n });\n return {\n trs,\n scrollHeight,\n ...toRefs(state),\n translateY,\n handleScroll,\n handleRowMounted,\n refreshContainer,\n fixedHeight,\n calculateScrollY,\n };\n};\nexport default useVirtualScroll;\n","import { computed, defineComponent, inject, Slots, ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { Styles } from '../common';\n\nimport { SelectOption, SelectOptionGroup, TdOptionProps } from './type';\nimport Option from './option';\nimport OptionGroup from './option-group';\nimport TdSelectProps from './props';\n\nimport { useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { usePanelVirtualScroll } from './hooks/usePanelVirtualScroll';\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSelectPanel',\n props: {\n inputValue: TdSelectProps.inputValue,\n panelTopContent: TdSelectProps.panelTopContent,\n panelBottomContent: TdSelectProps.panelBottomContent,\n empty: TdSelectProps.empty,\n creatable: TdSelectProps.creatable,\n loading: TdSelectProps.loading,\n loadingText: TdSelectProps.loadingText,\n multiple: TdSelectProps.multiple,\n filterable: TdSelectProps.filterable,\n filter: TdSelectProps.filter,\n scroll: TdSelectProps.scroll,\n size: TdSelectProps.size,\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('select');\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('select');\n const tSelect = inject(selectInjectKey);\n const innerRef = ref(null);\n\n const popupContentRef = computed(() => tSelect.value.popupContentRef.value);\n const showCreateOption = computed(() => props.creatable && props.filterable && props.inputValue);\n const displayOptions = computed(() => tSelect.value.displayOptions);\n\n const { trs, visibleData, handleRowMounted, isVirtual, panelStyle, cursorStyle } = usePanelVirtualScroll({\n scroll: props.scroll,\n popupContentRef,\n options: displayOptions,\n });\n\n const isEmpty = computed(() => !displayOptions.value.length);\n\n const renderCreateOption = () => (\n
      \n \n
    \n );\n\n // 递归render options\n const renderOptionsContent = (options: SelectOption[]) => {\n return (\n
      \n {options.map((item: SelectOptionGroup & TdOptionProps & { slots: Slots } & { $index: number }, index) => {\n if (item.children) {\n return (\n \n {renderOptionsContent(item.children)}\n \n );\n }\n return (\n \n );\n })}\n
    \n );\n };\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[tSelect.value.size];\n });\n\n expose({\n innerRef,\n visibleData, // 虚拟滚动的展示数据\n isVirtual,\n displayOptions, // 非虚拟滚动的展示数据\n });\n\n const renderPanel = (options: SelectOption[], extraStyle?: Styles) => (\n \n {/* create option */}\n {showCreateOption.value && renderCreateOption()}\n {/* loading状态 */}\n {props.loading &&\n renderDefaultTNode('loadingText', {\n defaultNode:
    {t(globalConfig.value.loadingText)}
    ,\n })}\n {/* 空状态 */}\n {!props.loading && isEmpty.value && !showCreateOption.value && (\n
    {renderTNodeJSX('empty') || t(globalConfig.value.empty)}
    \n )}\n {!isEmpty.value && renderOptionsContent(options)}\n \n );\n return {\n renderPanel,\n panelStyle,\n cursorStyle,\n isVirtual,\n displayOptions,\n visibleData,\n renderTNodeJSX,\n };\n },\n render() {\n return this.isVirtual ? (\n <>\n {this.renderTNodeJSX('panelTopContent')}\n
    \n
    \n {this.renderPanel(this.visibleData, this.panelStyle)}\n
    \n {this.renderTNodeJSX('panelBottomContent')}\n \n ) : (\n <>\n {this.renderTNodeJSX('panelTopContent')}\n {this.renderPanel(this.displayOptions)}\n {this.renderTNodeJSX('panelBottomContent')}\n \n );\n },\n});\n","import { computed, Slots, Ref, ref } from 'vue';\nimport { isArray, omit } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\n\nimport { useChildComponentSlots } from '../../hooks/slot';\nimport { TdSelectProps, TdOptionProps, SelectOptionGroup, SelectValue, SelectOption } from '../type';\nimport { KeysType } from '../../common';\n\ntype UniOption = (TdOptionProps | SelectOptionGroup) & {\n index?: number;\n slots?: Slots;\n};\n\nexport const useSelectOptions = (props: TdSelectProps, keys: Ref, inputValue: Ref) => {\n const getChildComponentSlots = useChildComponentSlots();\n const optionsCache = ref([]);\n\n const options = computed(() => {\n let dynamicIndex = 0;\n // 统一处理 keys,处理通用数据\n const innerOptions: UniOption[] =\n props.options?.map((option) => {\n const getFormatOption = (option: TdOptionProps) => {\n const { value, label, disabled } = keys.value;\n const restOption = omit(option, [value, label, disabled]) as Partial;\n const res = {\n ...restOption,\n index: dynamicIndex,\n label: get(option, label),\n value: get(option, value),\n disabled: get(option, disabled) || false,\n };\n dynamicIndex++;\n return res;\n };\n if ((option as SelectOptionGroup).children) {\n return {\n ...option,\n children: (option as SelectOptionGroup).children.map((child) => getFormatOption(child)),\n };\n }\n return getFormatOption(option);\n }) || [];\n\n // 处理 slots\n const optionsSlots = getChildComponentSlots('Option');\n const groupSlots = getChildComponentSlots('OptionGroup');\n\n if (isArray(groupSlots)) {\n for (const group of groupSlots) {\n const groupOption = {\n group: group.props?.label,\n ...group.props,\n children: [] as TdOptionProps[],\n };\n const res = getChildComponentSlots('Option', group.children as Slots);\n if (!isArray(res)) continue;\n for (const child of res) {\n groupOption.children.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n\n innerOptions.push(groupOption);\n }\n }\n if (isArray(optionsSlots)) {\n for (const child of optionsSlots) {\n innerOptions.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n }\n return innerOptions;\n });\n\n const optionsList = computed(() => {\n const res: TdOptionProps[] = [];\n const getOptionsList = (options: TdOptionProps[]) => {\n for (const option of options) {\n if ((option as SelectOptionGroup).children) {\n getOptionsList((option as SelectOptionGroup).children);\n } else {\n res.push(option);\n }\n }\n };\n getOptionsList(options.value);\n return res;\n });\n\n const optionsMap = computed(() => {\n const res = new Map();\n // map以最新的为主 避免存在重复value更新的场景 https://github.com/Tencent/tdesign-vue-next/issues/2646\n optionsCache.value.concat(optionsList.value).forEach((option: TdOptionProps) => {\n res.set(option.value, option);\n });\n return res;\n });\n\n const filterMethods = (option: SelectOption) => {\n if (isFunction(props.filter)) {\n return props.filter(`${inputValue.value}`, option);\n }\n return option.label?.toLowerCase?.().indexOf(`${inputValue.value}`.toLowerCase()) > -1;\n };\n\n const displayOptions = computed(() => {\n if (props.onSearch && props.filterable) return options.value; // 远程搜索时,不执行内部的过滤,不干预用户的自行处理,如输入首字母搜索中文的场景等\n\n if (!inputValue.value || !(props.filterable || isFunction(props.filter))) return options.value;\n\n let checkAllOption: SelectOption;\n\n let res: SelectOption[] = [];\n\n options.value.forEach((option) => {\n if ((option as SelectOptionGroup).children) {\n res.push({\n ...option,\n children: (option as SelectOptionGroup).children.filter(filterMethods),\n });\n }\n\n if ((option as TdOptionProps)?.checkAll === true) checkAllOption = option;\n\n if (filterMethods(option)) {\n res.push(option);\n }\n });\n\n if (!isFunction(props.filter)) {\n // 使用默认 filter,增加表现,调整全等项到首尾,避免全等项位于最后\n // inputValue: ab\n // options abcde, abcd, abc, ab\n const exactMatch = res.filter((item) => item.label === inputValue.value);\n const fuzzyMatch = res.filter((item) => item.label !== inputValue.value);\n res = exactMatch.concat(fuzzyMatch);\n }\n\n return res.length && checkAllOption ? [checkAllOption, ...res] : res;\n });\n\n return {\n options,\n optionsMap,\n optionsList,\n optionsCache,\n displayOptions,\n filterMethods,\n };\n};\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { pick as picker } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { debounce } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { intersection } from 'lodash-es';\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './select-panel';\nimport props from './props';\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { getSingleContent, getMultipleContent } from './utils';\nimport { selectInjectKey } from './consts';\nimport { useSelectOptions, useKeyboardControl } from './hooks';\nimport type { PopupProps, PopupVisibleChangeContext } from '../popup';\nimport type { SelectInputChangeContext, SelectInputValueChangeContext } from '../select-input';\nimport type { TdSelectProps, SelectValue } from './type';\nimport { SelectInputValueDisplayOptions } from '../select-input/hooks/useSingle';\nimport { TagInputTriggerSource } from '../tag-input';\n\nexport default defineComponent({\n name: 'TSelect',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n setup(props: TdSelectProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, { slots }) {\n const classPrefix = usePrefixClass();\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('select');\n const { globalConfig, t } = useConfig('select');\n const { popupVisible, inputValue, modelValue, value } = toRefs(props);\n const [innerInputValue, setInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const [orgValue, setOrgValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const selectPanelRef = ref(null);\n const selectInputRef = ref(null);\n const keys = computed(() => ({\n label: props.keys?.label || 'label',\n value: props.keys?.value || 'value',\n disabled: props.keys?.disabled || 'disabled',\n }));\n const { optionsMap, optionsList, optionsCache, displayOptions, filterMethods } = useSelectOptions(\n props,\n keys,\n innerInputValue,\n );\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (props.valueType === 'object') {\n return !props.multiple\n ? // @ts-ignore\n // TODO optimize SelectValue\n orgValue.value[keys.value.value]\n : // @ts-ignore\n // TODO optimize SelectValue\n (orgValue.value as SelectValue[]).map((option) => option[keys.value.value]);\n }\n return orgValue.value;\n });\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (props.valueType === 'object') {\n const { value, label } = keys.value;\n const getOption = (val: SelectValue) => {\n if (val === undefined) {\n return undefined;\n }\n const option = optionsMap.value.get(val);\n return {\n [value]: get(option, value),\n [label]: get(option, label),\n };\n };\n newVal = props.multiple ? (newVal as SelectValue[]).map((val) => getOption(val)) : getOption(newVal);\n }\n if (newVal === orgValue.value) return;\n\n // 多选场景下 在选中值时,且不保留reserveKeyword 的情况下 ,需要清空输入(筛选)值\n if (props.multiple && !props.reserveKeyword && context.trigger == 'check') setInputValue('');\n\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\n });\n if (props.multiple && context.trigger === 'uncheck' && context.option) {\n props.onRemove?.({\n value: get(context.option, keys.value.value),\n data: context.option,\n e: context.e,\n });\n }\n };\n\n const [innerPopupVisible, setInnerPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n (visible: boolean, context: PopupVisibleChangeContext) => {\n props.onPopupVisibleChange?.(visible, context);\n },\n 'popupVisible',\n );\n\n const placeholderText = computed(\n () =>\n ((!props.multiple && innerPopupVisible.value && getSingleContent(innerValue.value, optionsMap)) ||\n props.placeholder) ??\n t(globalConfig.value.placeholder),\n );\n\n // selectInput 展示值\n const displayText = computed(() =>\n props.multiple\n ? getMultipleContent(innerValue.value as SelectValue[], optionsMap)\n : getSingleContent(innerValue.value, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n const val =\n props.multiple && isArray(innerValue.value)\n ? (innerValue.value as SelectValue[]).map((value) => ({\n value,\n label: optionsMap.value.get(value)?.label,\n }))\n : innerValue.value;\n\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (!props.multiple) Object.assign(params, { label: displayText.value });\n\n if (props.minCollapsedNum && props.multiple) {\n return {\n ...params,\n displayValue: val?.slice?.(0, props.minCollapsedNum),\n };\n }\n return params;\n });\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || globalConfig.value.filterable || isFunction(props.filter));\n });\n\n const isRemoteSearch = computed(() => {\n return Boolean((props.filterable || globalConfig.value.filterable) && isFunction(props.onSearch));\n });\n\n // 移除tag\n const removeTag = (index: number, context?: SelectInputChangeContext) => {\n const { e, trigger = 'tag-remove' } =\n (context as SelectInputChangeContext & {\n trigger: Exclude;\n }) || {};\n\n e && e.stopPropagation();\n\n const selectValue = cloneDeep(innerValue.value) as SelectValue[];\n const value = selectValue[index];\n\n selectValue.splice(index, 1);\n\n if (trigger !== 'clear') {\n setInnerValue(selectValue, { selectedOptions: getSelectedOptions(selectValue), trigger, e });\n }\n\n props.onRemove?.({\n value: value as string | number,\n data: optionsMap.value.get(value),\n e,\n });\n };\n\n const handleCreate = () => {\n if (!innerInputValue.value) return;\n props.onCreate?.(innerInputValue.value);\n // only clean input value when reopen popup\n if (!innerPopupVisible.value) setInputValue('');\n };\n\n const popupContentRef = computed(() => selectInputRef.value?.popupRef.getOverlay() as HTMLElement);\n\n /**\n * 可选选项的列表\n * 排除已禁用和全选的选项,考虑过滤情况\n */\n const optionalList = computed(() =>\n optionsList.value.filter((item) => {\n return (\n !item.disabled &&\n // @ts-ignore types only declare checkAll not declare check-all\n !(item['check-all'] || item['check-all'] === '') &&\n !item.checkAll &&\n filterMethods(item)\n );\n }),\n );\n\n const getSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n return optionsList.value.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n /*\n * 全选逻辑:\n * 根据 checked 的值计算最终选中的值:\n * - 如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的 disabled 选项。\n * - 如果 checked 为 false,则只保留已选中的 disabled 选项。\n * - 过滤条件下,如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的选项。\n * - 过滤条件下,如果 checked 为 false,则只保留已选中的 disabled 选项。\n */\n const onCheckAllChange = (checked: boolean) => {\n if (!props.multiple) return;\n const { value } = keys.value;\n // disabled状态的选项,不参与全选的计算,始终保留\n const lockedValues = innerValue.value.filter((value: string | number | boolean) => {\n return optionsList.value.find((item) => item.value === value && item.disabled);\n });\n\n const activeValues = optionalList.value.map((option) => option.value);\n const formattedOrgValue =\n props.valueType === 'object'\n ? (orgValue.value as Array).map((v) => get(v, value))\n : orgValue.value;\n\n const values = checked\n ? [...new Set([...(formattedOrgValue as Array), ...activeValues, ...lockedValues])]\n : [...lockedValues];\n setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });\n };\n\n // 全选\n const isCheckAll = computed(() => {\n if (intersectionLen.value === 0) return false;\n return intersectionLen.value === optionalList.value.length;\n });\n\n const { hoverIndex, virtualFilteredOptions, handleKeyDown, filteredOptions } = useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n isCheckAll,\n innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\n });\n\n // 已选的长度\n const intersectionLen = computed(() => {\n const values = optionalList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n // 半选\n const indeterminate = computed(() => !isCheckAll.value && intersectionLen.value !== 0);\n\n const SelectProvider = computed(() => ({\n max: props.max,\n multiple: props.multiple,\n hoverIndex: hoverIndex.value,\n selectValue: innerValue.value,\n reserveKeyword: props.reserveKeyword,\n handleValueChange: setInnerValue,\n handlerInputChange: setInputValue,\n handlePopupVisibleChange: setInnerPopupVisible,\n handleCreate,\n size: props.size,\n popupContentRef,\n indeterminate: indeterminate.value,\n isCheckAll: isCheckAll.value,\n onCheckAllChange,\n getSelectedOptions,\n displayOptions: displayOptions.value,\n emitBlur: handleOptionEmitBlur,\n }));\n\n provide(selectInjectKey, SelectProvider);\n\n const checkValueInvalid = () => {\n // 参数类型检测与修复\n if (!props.multiple && isArray(orgValue.value)) {\n setOrgValue(undefined, { selectedOptions: [], trigger: 'default' });\n }\n if (props.multiple && !isArray(orgValue.value)) {\n setOrgValue([], { selectedOptions: [], trigger: 'default' });\n }\n };\n\n const handleSearch = debounce((value: string, { e }: { e: KeyboardEvent }) => {\n props.onSearch?.(`${value}`, { e });\n }, 300);\n\n const handlerInputChange = (value: string, context: SelectInputValueChangeContext) => {\n if (value) {\n !innerPopupVisible.value && setInnerPopupVisible(true, { e: context.e as KeyboardEvent });\n }\n setInputValue(value);\n handleSearch(`${value}`, { e: context.e as KeyboardEvent });\n nextTick(() => {\n virtualFilteredOptions.value = selectPanelRef.value?.visibleData;\n filteredOptions.value = selectPanelRef.value?.displayOptions;\n });\n };\n\n const handleOptionEmitBlur = (e: MouseEvent | KeyboardEvent) => {\n props.onBlur?.({ e, value: innerValue.value });\n };\n\n const handlerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerPopupVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInputValue('');\n };\n\n const handlerPopupScrollToBottom: PopupProps['onScrollToBottom'] = async (context) => {\n const { popupProps } = props;\n if (props.loading) {\n return;\n }\n // @ts-ignore types 中只有 onScrollToBottom,但 Vue 会自动转换 on-scroll-to-bottom 并支持,故此处都进行调用\n popupProps?.['on-scroll-to-bottom']?.(context);\n popupProps?.onScrollToBottom?.(context);\n };\n\n const addCache = (val: SelectValue) => {\n if (props.multiple) {\n const newCache = [];\n for (const item of (val as SelectValue[]) || []) {\n const option = optionsMap.value.get(item);\n if (option) {\n newCache.push(option);\n }\n }\n optionsCache.value = Array.from(new Set([...newCache, ...optionsCache.value]));\n } else {\n const option = optionsMap.value.get(val);\n if (option) {\n optionsCache.value = Array.from(new Set([option, ...optionsCache.value]));\n }\n }\n };\n\n watch(\n orgValue,\n (val) => {\n checkValueInvalid();\n nextTick(() => {\n addCache(val);\n });\n },\n {\n immediate: true,\n },\n );\n watch(\n () => props.multiple,\n () => {\n checkValueInvalid();\n },\n );\n\n // 列表展开时定位置选中项\n const updateScrollTop = (content: HTMLDivElement) => {\n if (!selectPanelRef.value) {\n return;\n }\n const firstSelectedNode: HTMLDivElement = (selectPanelRef.value?.innerRef as HTMLDivElement)?.querySelector(\n `.${classPrefix.value}-is-selected`,\n );\n // 此处需要等待渲染后进行计算\n nextTick(() => {\n if (firstSelectedNode && content) {\n const { paddingBottom } = getComputedStyle(firstSelectedNode);\n const { marginBottom } = getComputedStyle(content);\n const elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);\n // 小于0时不需要特殊处理,会被设为0\n const updateValue =\n firstSelectedNode.offsetTop -\n content.offsetTop -\n (content.clientHeight - firstSelectedNode.clientHeight) +\n elementBottomHeight;\n // eslint-disable-next-line no-param-reassign\n content.scrollTop = updateValue;\n }\n });\n };\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n
    \n {\n removeTag(ctx.index, ctx);\n }}\n tagProps={{ ...(props.tagProps as TdSelectProps['tagProps']) }}\n popupProps={{\n overlayClassName: [`${COMPONENT_NAME.value}__dropdown`, overlayClassName],\n ...restPopupProps,\n onScrollToBottom: handlerPopupScrollToBottom,\n }}\n label={props.label}\n prefixIcon={props.prefixIcon}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return (\n props.showArrow && (\n \n )\n );\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n })\n }\n onPopupVisibleChange={handlerPopupVisibleChange}\n onInputChange={handlerInputChange}\n onClear={({ e }) => {\n setInnerValue(props.multiple ? [] : undefined, {\n option: null,\n selectedOptions: getSelectedOptions(props.multiple ? [] : undefined),\n trigger: 'clear',\n e,\n });\n props.onClear?.({ e });\n }}\n onEnter={(inputValue, { e }) => {\n // onEnter和handleKeyDown的Enter事件同时触发,需要通过setTimeout设置先后\n setTimeout(() => {\n props.onEnter?.({ inputValue: `${innerInputValue.value}`, e, value: innerValue.value });\n handleCreate();\n }, 0);\n }}\n onBlur={(inputValue, { e }) => {\n props.onBlur?.({ e, value: innerValue.value });\n }}\n onFocus={(inputValue, { e }) => {\n props.onFocus?.({ e, value: innerValue.value });\n }}\n {...(props.selectInputProps as TdSelectProps['selectInputProps'])}\n v-slots={{\n label: slots.label,\n prefixIcon: slots.prefixIcon,\n suffix: slots.suffix,\n panel: () => (\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n />\n
    \n );\n };\n },\n});\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '../../hooks/useVModel';\nimport type { PopupVisibleChangeContext } from '../../popup';\n\nexport type useKeyboardControlType = {\n displayOptions: ComputedRef;\n optionsList: ComputedRef;\n innerPopupVisible: Ref;\n setInnerPopupVisible: ChangeHandler;\n selectPanelRef: Ref<{ isVirtual: boolean; innerRef: HTMLDivElement }>;\n isFilterable: ComputedRef;\n isRemoteSearch: ComputedRef;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n setInnerValue: Function;\n onCheckAllChange: Function;\n isCheckAll: ComputedRef;\n innerValue: Ref;\n popupContentRef: ComputedRef;\n multiple: boolean;\n max: number;\n};\n\n// 统一处理键盘控制的hooks\nexport function useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n innerValue,\n popupContentRef,\n multiple,\n max,\n isCheckAll,\n}: useKeyboardControlType) {\n const hoverIndex = ref(-1);\n const filteredOptions = ref([]); // 处理普通场景选项过滤键盘选中的问题\n const virtualFilteredOptions = ref([]); // 处理虚拟滚动下选项过滤通过键盘选择的问题\n const classPrefix = usePrefixClass();\n const handleKeyDown = (e: KeyboardEvent) => {\n const optionsListLength = displayOptions.value.length;\n let newIndex = hoverIndex.value;\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n if (hoverIndex.value === -1) {\n newIndex = 0;\n } else if (hoverIndex.value === 0 || hoverIndex.value > displayOptions.value.length - 1) {\n newIndex = optionsListLength - 1;\n } else {\n newIndex--;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex--;\n }\n hoverIndex.value = newIndex;\n break;\n case 'ArrowDown':\n e.preventDefault();\n\n if (hoverIndex.value === -1 || hoverIndex.value >= optionsListLength - 1) {\n newIndex = 0;\n } else {\n newIndex++;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex++;\n }\n hoverIndex.value = newIndex;\n break;\n case 'Enter':\n if (hoverIndex.value === -1) break;\n\n let finalOptions =\n selectPanelRef.value.isVirtual && isFilterable.value && virtualFilteredOptions.value.length\n ? virtualFilteredOptions.value\n : isRemoteSearch.value\n ? optionsList.value\n : filteredOptions.value;\n\n if (!finalOptions.length) finalOptions = optionsList.value;\n if (!innerPopupVisible.value) {\n setInnerPopupVisible(true, { e });\n break;\n }\n\n if (!multiple) {\n const selectedOptions = getSelectedOptions(finalOptions[hoverIndex.value].value);\n setInnerValue(finalOptions[hoverIndex.value].value, {\n option: selectedOptions?.[0],\n selectedOptions: getSelectedOptions(finalOptions[hoverIndex.value].value),\n trigger: 'check',\n e,\n });\n setInnerPopupVisible(false, { e });\n } else {\n if (hoverIndex.value === -1) return;\n\n if (finalOptions[hoverIndex.value].checkAll) {\n onCheckAllChange(!isCheckAll.value);\n return;\n }\n\n const optionValue = finalOptions[hoverIndex.value]?.value;\n\n if (!optionValue) return;\n const newValue = getNewMultipleValue(innerValue.value, optionValue);\n\n if (max > 0 && newValue.value.length > max) return; // 如果已选达到最大值 则不处理\n const selectedOptions = getSelectedOptions(newValue.value);\n setInnerValue(newValue.value, {\n option: selectedOptions.find((v) => v.value == optionValue),\n selectedOptions,\n trigger: newValue.isCheck ? 'check' : 'uncheck',\n e,\n });\n filteredOptions.value = [];\n }\n break;\n case 'Escape':\n setInnerPopupVisible(false, { e });\n break;\n }\n };\n\n watch(innerPopupVisible, (value) => {\n if (value) {\n // 展开重新恢复初始值\n hoverIndex.value = -1;\n virtualFilteredOptions.value = [];\n filteredOptions.value = [];\n }\n });\n\n // 处理键盘操作滚动 超出视图时继续自动滚动到键盘所在元素\n watch(hoverIndex, (index) => {\n const optionHeight = selectPanelRef.value?.innerRef?.querySelector(\n `.${classPrefix.value}-select-option`,\n )?.clientHeight;\n\n const scrollHeight = optionHeight * index;\n\n popupContentRef.value.scrollTo({\n top: scrollHeight,\n behavior: 'smooth',\n });\n });\n\n return {\n hoverIndex,\n handleKeyDown,\n virtualFilteredOptions,\n filteredOptions,\n };\n}\n","import _Select from './select';\nimport _Option from './option';\nimport _OptionGroup from './option-group';\nimport withInstall from '../utils/withInstall';\nimport { TdSelectProps, TdOptionProps, TdOptionGroupProps, SelectOption } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectProps = TdSelectProps;\nexport type OptionProps = TdOptionProps;\nexport type OptionGroupProps = TdOptionGroupProps;\n\nexport const Select = withInstall(_Select);\nexport const Option = withInstall(_Option);\nexport const OptionGroup = withInstall(_OptionGroup);\n\nexport default Select;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputAdornmentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 后缀装饰 */\n append: {\n type: [String, Function] as PropType,\n },\n /** 前缀装饰 */\n prepend: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, h, VNodeChild } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TInputAdornment',\n inheritAttrs: false,\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('input-adornment');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAddon = (h: any, type: string, addon: string | Function | VNodeChild | undefined): VNodeChild => {\n let addonNode: VNodeChild;\n const isContentNode = isString(addon) || isNumber(addon);\n if (!slots[type] && isString(addon) && !addon) return null;\n if (slots[type]) {\n if (slots[type](null).length === 1 && typeof slots[type](null)[0].children === 'string') {\n addonNode = {slots[type](null)};\n } else {\n addonNode = slots[type](null);\n }\n } else if (isFunction(addon)) {\n addonNode = addon(h);\n } else {\n addonNode = isContentNode ? (\n {addon}\n ) : (\n (addon as VNodeChild)\n );\n }\n return addonNode ? {addonNode} : addonNode;\n };\n return () => {\n const prepend = renderAddon(h, 'prepend', props.prepend);\n const append = renderAddon(h, 'append', props.append);\n const defaultSlot: VNodeChild[] = renderTNodeJSX('default') || [null];\n const className = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--prepend`]: prepend,\n [`${COMPONENT_NAME.value}--append`]: append,\n },\n ];\n\n if (!prepend && !append) {\n return defaultSlot[0];\n }\n\n return (\n
    \n {prepend}\n {defaultSlot[0]}\n {append}\n
    \n );\n };\n },\n});\n","import _InputAdornment from './input-adornment';\nimport withInstall from '../utils/withInstall';\nimport { TdInputAdornmentProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type InputAdornmentProps = TdInputAdornmentProps;\nexport const InputAdornment = withInstall(_InputAdornment);\n\nexport default InputAdornment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前页 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前页,非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 1,\n },\n /** 是否禁用分页组件 */\n disabled: Boolean,\n /** 折叠时最多显示页码按钮数 */\n foldedMaxPageBtn: {\n type: Number,\n default: 5,\n },\n /** 最多显示页码按钮数 */\n maxPageBtn: {\n type: Number,\n default: 10,\n },\n /** 页码数量超出时,前后省略模式, `mid`表示中间省略, `both-ends` 表示两端省略 */\n pageEllipsisMode: {\n type: String as PropType,\n default: 'mid' as TdPaginationProps['pageEllipsisMode'],\n validator(val: TdPaginationProps['pageEllipsisMode']): boolean {\n if (!val) return true;\n return ['mid', 'both-ends'].includes(val);\n },\n },\n /** 每一页的数据量 */\n pageSize: {\n type: Number,\n default: undefined,\n },\n /** 每一页的数据量,非受控属性 */\n defaultPageSize: {\n type: Number,\n default: 10,\n },\n /** 分页大小控制器,值为 [] 则不显示 */\n pageSizeOptions: {\n type: Array as PropType,\n default: (): TdPaginationProps['pageSizeOptions'] => [5, 10, 20, 50],\n },\n /** 透传全部属性到 Select 组件,也可使用 `selectProps.popupProps` 透传全部 Popup 组件 */\n selectProps: {\n type: Object as PropType,\n },\n /** 是否显示跳转首页尾页页码控制器 */\n showFirstAndLastPageBtn: Boolean,\n /** 是否显示跳转页码控制器 */\n showJumper: Boolean,\n /** 是否显示页码控制器 */\n showPageNumber: {\n type: Boolean,\n default: true,\n },\n /** 是否显示分页数量控制器 */\n showPageSize: {\n type: Boolean,\n default: true,\n },\n /** 是否显示跳转前后页页码控制器 */\n showPreviousAndNextBtn: {\n type: Boolean,\n default: true,\n },\n /** 分页组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationProps['size'],\n validator(val: TdPaginationProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium'].includes(val);\n },\n },\n /** 分页组件风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdPaginationProps['theme'],\n validator(val: TdPaginationProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'simple'].includes(val);\n },\n },\n /** 数据总条数 */\n total: {\n type: Number,\n default: 0,\n },\n /** 用于自定义总条数呈现内容。默认显示总条数,值为 false 则不显示 */\n totalContent: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 当前页或分页大小发生变化时触发 */\n onChange: Function as PropType,\n /** 当前页发生变化时触发 */\n onCurrentChange: Function as PropType,\n /** 分页大小发生变化时触发 */\n onPageSizeChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, watch, toRefs, getCurrentInstance } from 'vue';\nimport { isNaN } from 'lodash-es';\nimport {\n PageFirstIcon as TdPageFirstIcon,\n PageLastIcon as TdPageLastIcon,\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronLeftDoubleIcon as TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon as TdChevronRightDoubleIcon,\n EllipsisIcon as TdEllipsisIcon,\n} from 'tdesign-icons-vue-next';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isObject } from 'lodash-es';\n\nimport type { PageInfo, TdPaginationProps } from '../pagination/type';\n\nconst min = 1;\n\ntype PageChangeType = 'prevPage' | 'nextPage' | 'prevMorePage' | 'nextMorePage';\n\nexport default defineComponent({\n name: 'TPagination',\n props,\n\n setup(props: TdPaginationProps) {\n const { emit } = getCurrentInstance();\n\n const { modelValue, pageSize, current } = toRefs(props);\n const renderTNodeJSX = useTNodeJSX();\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onCurrentChange,\n 'current',\n );\n\n const [innerPageSize, setInnerPageSize] = useDefaultValue(\n pageSize,\n props.defaultPageSize,\n props.onPageSizeChange,\n 'pageSize',\n );\n\n const { t, globalConfig } = useConfig('pagination');\n const COMPONENT_NAME = usePrefixClass('pagination');\n const {\n PageFirstIcon,\n PageLastIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronLeftDoubleIcon,\n ChevronRightDoubleIcon,\n EllipsisIcon,\n } = useGlobalIcon({\n PageFirstIcon: TdPageFirstIcon,\n PageLastIcon: TdPageLastIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftDoubleIcon: TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon: TdChevronRightDoubleIcon,\n EllipsisIcon: TdEllipsisIcon,\n });\n\n const { pageCount, ...CLASS_MAP } = usePaginationClasses(props, innerCurrent, innerPageSize, COMPONENT_NAME);\n\n const { prevMore, isPrevMoreShow, curPageLeftCount, nextMore, isNextMoreShow, curPageRightCount } = useMoreAction(\n props,\n pageCount,\n innerCurrent,\n );\n\n const jumpIndex = ref(innerCurrent.value);\n\n const isFolded = computed(() => pageCount.value > props.maxPageBtn);\n\n const sizeOptions = computed>(() => {\n const pageSizeOptions = props.pageSizeOptions as TdPaginationProps['pageSizeOptions'];\n const options = pageSizeOptions.map((option) =>\n isObject(option)\n ? option\n : {\n label: t(globalConfig.value.itemsPerPage, { size: option }),\n value: Number(option),\n },\n );\n return options.sort((a, b) => a.value - b.value);\n });\n\n const isMidEllipsis = computed(() => {\n return props.pageEllipsisMode === 'mid';\n });\n\n const pages = computed(() => {\n const array = [];\n let start;\n let end;\n\n if (isFolded.value) {\n if (isPrevMoreShow.value && isNextMoreShow.value) {\n start = innerCurrent.value - curPageLeftCount.value;\n end = innerCurrent.value + curPageRightCount.value;\n } else {\n const foldedStart = isMidEllipsis.value ? 2 : 1;\n const foldedEnd = isMidEllipsis.value ? pageCount.value - 1 : pageCount.value;\n if (isPrevMoreShow.value) {\n // 保证前面还有一页展示\n start = Math.min(innerCurrent.value - 1, pageCount.value - props.foldedMaxPageBtn + 1);\n } else {\n start = foldedStart;\n }\n\n if (isNextMoreShow.value) {\n // 保证后面还有一页展示\n end = Math.max(innerCurrent.value + 1, props.foldedMaxPageBtn);\n } else {\n end = foldedEnd;\n }\n }\n } else {\n start = 1;\n end = pageCount.value;\n }\n\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n });\n\n // 如果页面总数发生变化并当前页数大于总页数则重置为1\n watch(\n () => pageCount.value,\n () => {\n if (innerCurrent.value > pageCount.value) innerCurrent.value = 1;\n },\n );\n watch(\n () => innerCurrent.value,\n (val) => (jumpIndex.value = val),\n );\n\n const toPage: (pageIndex: number, pageInfo?: PageInfo) => void = (pageIndex, pageInfo) => {\n if (props.disabled) {\n return;\n }\n let current = pageIndex;\n if (pageIndex < min) {\n current = min;\n } else if (pageIndex > pageCount.value) {\n current = pageCount.value;\n }\n if (innerCurrent.value !== current) {\n const prev = innerCurrent.value;\n pageInfo = pageInfo || {\n current,\n previous: prev,\n pageSize: innerPageSize.value,\n };\n if (pageInfo) {\n setInnerCurrent(current, pageInfo);\n props.onChange?.(pageInfo);\n } else {\n // 非主动更改时应仅更新modelValue不触发onCurrentChange事件\n emit('update:modelValue', current);\n }\n }\n };\n\n const handlePageChange = (type: PageChangeType) => {\n const pageChangeMap = {\n prevPage: () => toPage(innerCurrent.value - 1),\n nextPage: () => toPage(innerCurrent.value + 1),\n prevMorePage: () => toPage(Math.max(2, innerCurrent.value - props.foldedMaxPageBtn)),\n nextMorePage: () => toPage(Math.min(innerCurrent.value + props.foldedMaxPageBtn, pageCount.value - 1)),\n };\n pageChangeMap[type]();\n };\n\n const onSelectorChange: (e: string) => void = (e) => {\n if (props.disabled) {\n return;\n }\n const pageSize: number = parseInt(e, 10);\n let pageCount = 1;\n if (pageSize > 0) {\n pageCount = Math.max(Math.ceil(props.total / pageSize), 1);\n }\n\n let isIndexChange = false;\n\n if (innerCurrent.value > pageCount) {\n isIndexChange = true;\n }\n\n /**\n * 分页大小变化事件\n * @param {Number} pageSize 分页大小\n * @param {Number} index 当前页\n */\n const pageInfo = {\n current: isIndexChange ? pageCount : innerCurrent.value,\n previous: innerCurrent.value,\n pageSize,\n };\n setInnerPageSize(pageSize, pageInfo);\n if (isIndexChange) {\n toPage(pageCount, pageInfo);\n } else {\n props.onChange?.(pageInfo);\n }\n };\n\n const onJumperChange = (val: number) => {\n const currentIndex = Math.trunc(+val);\n if (isNaN(currentIndex)) return;\n jumpIndex.value = currentIndex;\n toPage(currentIndex);\n };\n\n return () => {\n const { total, pageSizeOptions, size, disabled, showPageSize } = props;\n if (pageCount.value < 1) return null;\n\n const Jumper = (\n
    \n {t(globalConfig.value.jumpTo)}\n \n \n \n
    \n );\n\n return (\n
    \n {/* 数据统计区 */}\n {renderTNodeJSX(\n 'totalContent',\n
    {t(globalConfig.value.total, { total })}
    ,\n )}\n {/* 分页器 */}\n {showPageSize && pageSizeOptions.length > 0 && (\n \n )}\n {/* 首页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(1)}>\n \n
    \n ) : null}\n {/* 向前按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('prevPage')}>\n \n
    \n ) : null}\n {/* 常规版 */}\n {props.showPageNumber && props.theme === 'default' ? (\n
      \n {isFolded.value && isMidEllipsis.value && (\n
    • toPage(min)}>\n {min}\n
    • \n )}\n {isFolded.value && isPrevMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('prevMorePage')}\n onMouseover={() => (prevMore.value = true)}\n onMouseout={() => (prevMore.value = false)}\n >\n {prevMore.value ? : }\n \n ) : null}\n {pages.value.map((i) => (\n
    • toPage(i)}>\n {i}\n
    • \n ))}\n {isFolded.value && isNextMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('nextMorePage')}\n onMouseover={() => (nextMore.value = true)}\n onMouseout={() => (nextMore.value = false)}\n >\n {nextMore.value ? : }\n \n ) : null}\n {isFolded.value && isMidEllipsis.value ? (\n
    • toPage(pageCount.value)}>\n {pageCount.value}\n
    • \n ) : null}\n
    \n ) : null}\n {/* 极简版 */}\n {props.theme === 'simple' && Jumper}\n {/* 向后按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('nextPage')}>\n \n
    \n ) : null}\n {/* 尾页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(pageCount.value)}>\n \n
    \n ) : null}\n {/* 快速跳转 */}\n {props.theme === 'default' && props.showJumper && Jumper}\n
    \n );\n };\n },\n});\n","import { computed, Ref } from 'vue';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { useCommonClassName } from '../../hooks/useConfig';\nimport { TdPaginationProps } from '../type';\n\nexport function usePaginationClasses(\n props: TdPaginationProps,\n innerCurrent: Ref,\n innerPageSize: Ref,\n name: Ref,\n) {\n const { SIZE, STATUS } = useCommonClassName();\n\n const pageCount = computed(() => {\n const c: number = Math.ceil(props.total / innerPageSize.value);\n return c > 0 ? c : 1;\n });\n\n const paginationClass = computed(() => [\n `${name.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: props.disabled,\n [`${name.value}-ie`]: getIEVersion() < 11,\n },\n props.theme === 'simple' ? `${name.value}--simple` : ``,\n ]);\n\n const totalClass = computed(() => [`${name.value}__total`]);\n\n const sizerClass = computed(() => [`${name.value}__select`]);\n\n const preBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-prev`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === 1,\n },\n ]);\n\n const nextBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-next`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === pageCount.value,\n },\n ]);\n\n const btnWrapClass = computed(() => [`${name.value}__pager`]);\n\n const btnMoreClass = computed(() => [\n `${name.value}__number`,\n `${name.value}__number--more`,\n {\n [STATUS.value.disabled]: props.disabled,\n },\n ]);\n\n const jumperClass = computed(() => [`${name.value}__jump`]);\n\n const jumperInputClass = computed(() => [`${name.value}__input`]);\n\n const simpleClass = computed(() => [`${name.value}__select`]);\n\n const getButtonClass = (index: number) => [\n `${name.value}__number`,\n {\n [STATUS.value.disabled]: props.disabled,\n [STATUS.value.current]: innerCurrent.value === index,\n },\n ];\n\n return {\n pageCount,\n paginationClass,\n totalClass,\n sizerClass,\n preBtnClass,\n nextBtnClass,\n btnWrapClass,\n btnMoreClass,\n jumperClass,\n jumperInputClass,\n simpleClass,\n getButtonClass,\n };\n}\n","import { computed, ref, Ref } from 'vue';\nimport { TdPaginationProps } from '../type';\n\nexport function useMoreAction(props: TdPaginationProps, pageCount: Ref, innerCurrent: Ref) {\n const prevMore = ref(false);\n\n const nextMore = ref(false);\n\n const curPageLeftCount = computed(() => Math.ceil((props.foldedMaxPageBtn - 1) / 2));\n\n const curPageRightCount = computed(() => Math.floor((props.foldedMaxPageBtn - 1) / 2));\n\n const isPrevMoreShow = computed(() => 2 + curPageLeftCount.value < innerCurrent.value);\n\n const isNextMoreShow = computed(() => pageCount.value - 1 - curPageRightCount.value > innerCurrent.value);\n\n return {\n prevMore,\n nextMore,\n curPageLeftCount,\n curPageRightCount,\n isPrevMoreShow,\n isNextMoreShow,\n };\n}\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationMiniProps } from '../pagination/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 按钮禁用配置 */\n disabled: {\n type: [Boolean, Object] as PropType,\n },\n /** 按钮方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdPaginationMiniProps['layout'],\n validator(val: TdPaginationMiniProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 是否展示当前按钮 */\n showCurrent: {\n type: Boolean,\n default: true,\n },\n /** 按钮尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationMiniProps['size'],\n validator(val: TdPaginationMiniProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 提示文案配置,值为 `true` 显示默认文案;值为 `false` 不显示提示文案;值类型为对象则单独配置文案内容 */\n tips: {\n type: Object as PropType,\n },\n /** 按钮形式 */\n variant: {\n type: String as PropType,\n default: 'text' as TdPaginationMiniProps['variant'],\n validator(val: TdPaginationMiniProps['variant']): boolean {\n if (!val) return true;\n return ['text', 'outline'].includes(val);\n },\n },\n /** 按钮点击事件回调 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport { isObject } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n RoundIcon as TdRoundIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronUpIcon as TdChevronUpIcon,\n ChevronDownIcon as TdChevronDownIcon,\n} from 'tdesign-icons-vue-next';\n\nimport props from './pagination-mini-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport TButton from '../button';\n\nexport default defineComponent({\n name: 'TPaginationMini',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('pagination-mini');\n const { ChevronLeftIcon, RoundIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n RoundIcon: TdRoundIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronUpIcon: TdChevronUpIcon,\n ChevronDownIcon: TdChevronDownIcon,\n });\n\n const titleConfig = computed<{\n prev?: string;\n current?: string;\n next?: string;\n }>(() => {\n if (isObject(props.tips)) return props.tips;\n if (props.tips === true) return { prev: '上一页', current: '当前', next: '下一页' };\n return {};\n });\n\n const disabledConfig = computed<{\n prev?: boolean;\n current?: boolean;\n next?: boolean;\n }>(() => {\n if (isObject(props.disabled)) return props.disabled;\n if (props.disabled === true) return { prev: true, current: true, next: true };\n return { prev: false, current: false, next: false };\n });\n\n return () => {\n const jumperClass = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--outline`]: props.variant === 'outline',\n },\n ];\n\n return (\n
    \n props.onChange?.({ e, trigger: 'prev' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__prev`}\n disabled={disabledConfig.value.prev}\n />\n\n {props.showCurrent && (\n props.onChange?.({ e, trigger: 'current' })}\n icon={() => }\n class={`${COMPONENT_NAME.value}__current`}\n disabled={disabledConfig.value.current}\n />\n )}\n\n props.onChange?.({ e, trigger: 'next' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__next`}\n disabled={disabledConfig.value.next}\n />\n
    \n );\n };\n },\n});\n","import _Pagination from './pagination';\nimport _PaginationMini from './pagination-mini';\nimport withInstall from '../utils/withInstall';\nimport { TdPaginationProps, TdPaginationMiniProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type PaginationProps = TdPaginationProps;\nexport type PaginationMiniProps = TdPaginationMiniProps;\n\nexport const Pagination = withInstall(_Pagination);\nexport const PaginationMini = withInstall(_PaginationMini);\n\nexport default Pagination;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepsProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成 */\n current: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成,非受控属性 */\n defaultCurrent: {\n type: [String, Number] as PropType,\n },\n /** 步骤条方向,有两种:横向和纵向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdStepsProps['layout'],\n validator(val: TdStepsProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 步骤条数据列表(作用和 StepItem 效果一样) */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 步骤条分割符 */\n separator: {\n type: String as PropType,\n default: 'line' as TdStepsProps['separator'],\n validator(val: TdStepsProps['separator']): boolean {\n if (!val) return true;\n return ['line', 'dashed', 'arrow'].includes(val);\n },\n },\n /** 步骤条顺序 */\n sequence: {\n type: String as PropType,\n default: 'positive' as TdStepsProps['sequence'],\n validator(val: TdStepsProps['sequence']): boolean {\n if (!val) return true;\n return ['positive', 'reverse'].includes(val);\n },\n },\n /** 步骤条风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdStepsProps['theme'],\n validator(val: TdStepsProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'dot'].includes(val);\n },\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepItemProps } from '../steps/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 步骤描述 */\n content: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['content'],\n },\n /** 步骤描述,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 显示在步骤描述下方的额外内容,比如:操作项 */\n extra: {\n type: [String, Function] as PropType,\n },\n /** 图标,默认显示内置图标,也可以自定义图标,值为 false 则不显示图标。优先级大于 `status` 定义的图标 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdStepItemProps['icon'],\n },\n /** 当前步骤的状态:默认状态(未开始)、进行中状态、完成状态、错误状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdStepItemProps['status'],\n validator(val: TdStepItemProps['status']): boolean {\n if (!val) return true;\n return ['default', 'process', 'finish', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['title'],\n },\n /** 当前步骤标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { computed, defineComponent, h, inject } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { CheckIcon as TdCheckIcon, CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\n\nimport props from './step-item-props';\nimport { SlotReturnValue } from '../common';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX, useContent } from '../hooks';\n\nexport default defineComponent({\n name: 'TStepItem',\n props: { ...props, index: Number },\n setup(props) {\n const stepsState = inject('StepsState', undefined);\n const stepsProps = inject('StepsProps', undefined);\n\n const { globalConfig } = useConfig('steps');\n const { CheckIcon, CloseIcon } = useGlobalIcon({ CheckIcon: TdCheckIcon, CloseIcon: TdCloseIcon });\n const canClick = computed(() => {\n return props.status !== 'process' && !stepsProps?.readonly;\n });\n\n // when props.value is undefined\n const onStepClick = (e: MouseEvent) => {\n if (!canClick.value) return;\n const val = props.value === undefined ? props.index : props.value;\n stepsState.setCurrent(val, stepsState.current, { e });\n };\n\n // class\n const COMPONENT_NAME = usePrefixClass('steps-item');\n const statusClass = computed(() => ({ [`${COMPONENT_NAME.value}--${props.status}`]: props.status }));\n const baseClass = computed(() => [COMPONENT_NAME.value, statusClass.value]);\n const iconClass = computed(() => [`${COMPONENT_NAME.value}__icon`, statusClass.value]);\n\n // render\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const renderIcon = () => {\n let defaultIcon;\n if (stepsProps.theme === 'default') {\n let icon: SlotReturnValue = '';\n switch (props.status) {\n case 'finish':\n if (isFunction(globalConfig.value.checkIcon)) {\n icon = globalConfig.value.checkIcon(h);\n } else {\n icon = ;\n }\n break;\n case 'error':\n if (isFunction(globalConfig.value.errorIcon)) {\n icon = globalConfig.value.errorIcon(h);\n } else {\n icon = ;\n }\n break;\n default:\n icon = String(props.index + 1);\n break;\n }\n defaultIcon = {icon};\n }\n return renderTNodeJSX('icon', defaultIcon);\n };\n\n return () => (\n
    \n \n
    {renderIcon()}
    \n
    \n
    {renderTNodeJSX('title')}
    \n
    {renderContent('default', 'content')}
    \n
    {renderTNodeJSX('extra')}
    \n
    \n
    \n \n );\n },\n});\n","import { computed, defineComponent, provide, reactive, ref, toRefs, VNode } from 'vue';\nimport { isObject } from 'lodash-es';\nimport props from './props';\nimport stepItemProps from './step-item-props';\nimport { TdStepItemProps } from './type';\nimport StepItem from './step-item';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useChildComponentSlots } from '../hooks';\n\nexport default defineComponent({\n name: 'TSteps',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('steps');\n\n const { current, modelValue } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n provide(\n 'StepsState',\n reactive({\n current: innerCurrent,\n setCurrent: setInnerCurrent,\n }),\n );\n\n provide('StepsProps', props);\n\n const indexMap = ref>({});\n\n const handleStatus = (itemProps: TdStepItemProps, index: number) => {\n if (itemProps.status && itemProps.status !== 'default') return itemProps.status;\n if (innerCurrent.value === 'FINISH') return 'finish';\n // value 不存在时,使用 index 进行区分每一个步骤\n if (itemProps.value === undefined && index < Number(innerCurrent.value)) return 'finish';\n // value 存在,找匹配位置\n if (itemProps.value !== undefined) {\n const matchIndex = Number(indexMap.value[innerCurrent.value]);\n if (matchIndex === undefined) {\n console.warn('TDesign Steps Warn: The current `value` is not exist.');\n return 'default';\n }\n if (props.sequence === 'positive' && index < matchIndex) return 'finish';\n if (props.sequence === 'reverse' && index > matchIndex) return 'finish';\n }\n const key = itemProps.value === undefined ? index : itemProps.value;\n if (key === innerCurrent.value) return 'process';\n return 'default';\n };\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getOptionListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node?.props || {};\n const children = node?.children;\n if (!option && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stepItemProps && !option[key]) {\n option[key] = (children as Record)[key];\n }\n }\n }\n props.sequence === 'reverse' ? arr.unshift(option as TdStepItemProps) : arr.push(option as TdStepItemProps);\n });\n return arr;\n };\n const getOptions = () => {\n let options: Array;\n if (props.options?.length) {\n options = props.sequence === 'reverse' ? props.options.slice().reverse() : props.options;\n } else {\n const nodes: VNode[] = getChildComponentByName('StepItem') as VNode[];\n options = getOptionListBySlots(nodes);\n }\n\n (options || []).forEach((item, index) => {\n if (item.value !== undefined) indexMap.value[item.value] = index;\n });\n return options;\n };\n\n const renderContent = () => {\n const options = getOptions();\n\n return options.map((item, index) => {\n const stepIndex = props.sequence === 'reverse' ? options.length - index - 1 : index;\n index = item.value !== undefined ? index : stepIndex;\n\n return ;\n });\n };\n\n /** class calculate */\n const handleTheme = () => {\n let { theme } = props;\n const options = getOptions();\n options.forEach((item) => {\n if (item?.icon !== undefined) {\n // icon > theme\n theme = 'default';\n }\n });\n return theme;\n };\n const baseClass = computed(() => {\n return [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.layout}`,\n `${COMPONENT_NAME.value}--${handleTheme()}-anchor`,\n `${COMPONENT_NAME.value}--${props.sequence}`,\n `${COMPONENT_NAME.value}--${props.separator}-separator`,\n ];\n });\n /** class calculate END */\n\n return () =>
    {renderContent()}
    ;\n },\n});\n","import _Steps from './steps';\nimport _StepItem from './step-item';\nimport withInstall from '../utils/withInstall';\nimport { TdStepsProps, TdStepItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StepsProps = TdStepsProps;\nexport type StepItemProps = TdStepItemProps;\n\nexport const Steps = withInstall(_Steps);\nexport const StepItem = withInstall(_StepItem);\nexport default Steps;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyToolProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 列表 */\n list: {\n type: Array as PropType,\n default: (): TdStickyToolProps['list'] => [],\n },\n /** 相对于 placement 的偏移量,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 固定位置 */\n placement: {\n type: String as PropType,\n default: 'right-bottom' as TdStickyToolProps['placement'],\n validator(val: TdStickyToolProps['placement']): boolean {\n if (!val) return true;\n return ['right-top', 'right-center', 'right-bottom', 'left-top', 'left-center', 'left-bottom'].includes(val);\n },\n },\n /** 透传 Popup 组件全部特性,优先级低于 StickyItem.popupProps */\n popupProps: {\n type: Object as PropType,\n },\n /** 侧边栏菜单形状,有 2 种:方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'square' as TdStickyToolProps['shape'],\n validator(val: TdStickyToolProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round'].includes(val);\n },\n },\n /** 侧边栏菜单类型,有 2 种:常规型和紧凑型 */\n type: {\n type: String as PropType,\n default: 'normal' as TdStickyToolProps['type'],\n validator(val: TdStickyToolProps['type']): boolean {\n if (!val) return true;\n return ['normal', 'compact'].includes(val);\n },\n },\n /** 宽度 */\n width: {\n type: [String, Number] as PropType,\n },\n /** 点击某一项时触发 */\n onClick: Function as PropType,\n /** 悬浮到某一项时触发 */\n onHover: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyItemProps } from '../sticky-tool/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 名称 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 浮层内容 */\n popup: {\n type: [String, Function] as PropType,\n },\n /** 透传浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 触发浮层显示的方式 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdStickyItemProps['trigger'],\n validator(val: TdStickyItemProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport baseProps from './sticky-item-props';\nimport TdStickyToolProps from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\nimport { useTNodeJSX } from '../hooks';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'TStickyItem',\n props: {\n ...baseProps,\n type: TdStickyToolProps.type,\n shape: TdStickyToolProps.shape,\n placement: TdStickyToolProps.placement,\n basePopupProps: Object as PropType,\n baseWidth: TdStickyToolProps.width,\n onClick: TdStickyToolProps.onClick,\n onHover: TdStickyToolProps.onHover,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-item');\n const baseClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.type}`,\n `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const labelClass = computed(() => {\n return [`${COMPONENT_NAME.value}__label`];\n });\n const popupPlacement = computed(() => {\n return props.placement.indexOf('right') !== -1 ? 'left' : 'right';\n });\n const styles = computed(() => {\n const styles: Styles = {};\n if (props.baseWidth) {\n const selfWidth = props.type === 'normal' ? '56px' : '40px';\n styles.margin = `calc((${props.baseWidth} - ${selfWidth})/2)`;\n }\n return styles;\n });\n const handleClickItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onHover({ e, item });\n };\n const renderTNodeJSX = useTNodeJSX();\n const popupProps = Object.assign({ hideEmptyPopup: true }, props.basePopupProps, props.popupProps);\n return () => (\n renderTNodeJSX('popup')}\n {...popupProps}\n >\n
    \n {renderTNodeJSX('icon')}\n {props.type === 'normal' ?
    {renderTNodeJSX('label')}
    : null}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, VNode } from 'vue';\nimport props from './props';\nimport { isObject } from 'lodash-es';\nimport StickyItem from './sticky-item';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useChildComponentSlots } from '../hooks';\n\nimport stickyItemProps from './sticky-item-props';\n\nimport type { TdStickyItemProps } from './type';\nimport type { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TStickyTool',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-tool');\n const classes = computed(() => {\n return [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.shape}`];\n });\n const styles = computed(() => {\n const styles = getOffset();\n if (props.width) styles.width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return styles;\n });\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getList = () => {\n let list: Array;\n if (props.list?.length) {\n list = props.list;\n } else {\n const nodes: VNode[] = getChildComponentByName('StickyItem') as VNode[];\n list = getListBySlots(nodes);\n }\n return list;\n };\n const getListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const list = node?.props || {};\n const children = node?.children;\n if (!list && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stickyItemProps && !list[key]) {\n list[key] = (children as Record)[key];\n }\n }\n }\n arr.push(list as TdStickyItemProps);\n });\n return arr;\n };\n const getOffset = (): Styles => {\n // 默认偏移位置\n const position: Array = props.offset ? [80, 24] : ['80px', '24px'];\n props.offset?.forEach((item, index) => {\n position[index] = isNaN(Number(item))\n ? `calc( ${position[index]}px + ${item})`\n : `${(position[index] as number) + (item as number)}px`;\n });\n const offsetStyle: Styles = {};\n props.placement.split('-').forEach((item, index) => {\n if (item !== 'center') {\n offsetStyle[item] = position[index];\n } else {\n offsetStyle.top = '50%';\n offsetStyle.transform = 'translate(0, -50%)';\n }\n });\n return offsetStyle;\n };\n const handleClick = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onClick?.(context);\n };\n const handleHover = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onHover?.(context);\n };\n const renderContent = () => {\n const list = getList();\n const content = list.map((item, index) => {\n const { type, shape, placement, popupProps } = props;\n const itemProps = {\n ...item,\n type,\n shape,\n placement,\n basePopupProps: popupProps,\n baseWidth: styles.value.width,\n onClick: handleClick,\n onHover: handleHover,\n };\n return ;\n });\n return content;\n };\n return () => (\n
    \n {renderContent()}\n
    \n );\n },\n});\n","import _StickyTool from './sticky-tool';\nimport _StickyItem from './sticky-item';\nimport withInstall from '../utils/withInstall';\nimport { TdStickyToolProps, TdStickyItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type StickyToolProps = TdStickyToolProps;\nexport type StickyItemProps = TdStickyItemProps;\n\nexport const StickyItem = withInstall(_StickyItem);\n\nexport const StickyTool = withInstall(_StickyTool);\n\nexport default StickyTool;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdBackTopProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 监听滚动的容器。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n container: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['container'],\n },\n /** 回到顶部内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部内容,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部的耗时单位:毫秒 */\n duration: {\n type: Number,\n default: 200,\n },\n /** 回到顶部相对右下角的位置偏移,示例:[10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n default: (): TdBackTopProps['offset'] => ['24px', '80px'],\n },\n /** 回到顶部的形状 */\n shape: {\n type: String as PropType,\n default: 'square' as TdBackTopProps['shape'],\n validator(val: TdBackTopProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'square'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBackTopProps['size'],\n validator(val: TdBackTopProps['size']): boolean {\n if (!val) return true;\n return ['medium', 'small'].includes(val);\n },\n },\n /** 指定回到该对象。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n target: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['target'],\n },\n /** 组件主题风格,浅色、主色、深色 */\n theme: {\n type: String as PropType,\n default: 'light' as TdBackTopProps['theme'],\n validator(val: TdBackTopProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'primary', 'dark'].includes(val);\n },\n },\n /** 滚动高度达到此参数值才出现 */\n visibleHeight: {\n type: [String, Number] as PropType,\n default: '200px' as TdBackTopProps['visibleHeight'],\n },\n /** 点击回到顶部时触发 */\n onClick: Function as PropType,\n};\n","import { computed, defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { BacktopIcon as TdBackTopIcon } from 'tdesign-icons-vue-next';\n\nimport { scrollTo } from '../utils/dom';\nimport { useChildSlots, usePrefixClass, useContent, useConfig } from '../hooks';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport props from './props';\n\nimport type { TdBackTopProps } from './type';\n\nexport default defineComponent({\n name: 'TBackTop',\n props,\n setup(props: TdBackTopProps) {\n const visible = ref(false);\n const containerRef = ref(null);\n const componentName = usePrefixClass('back-top');\n const { classPrefix } = useConfig('alert');\n\n const { BacktopIcon } = useGlobalIcon({\n BacktopIcon: TdBackTopIcon,\n });\n const renderContent = useContent();\n const getContainer = (container: TdBackTopProps['container']) => {\n if (typeof container === 'string' && typeof document !== undefined) {\n if (container === 'body') {\n return document;\n }\n return document.querySelector(container);\n }\n if (typeof container === 'function') {\n return container();\n }\n return null;\n };\n onMounted(() => {\n containerRef.value = getContainer(props.container) as HTMLElement;\n let visibleHeight: number;\n if (typeof props.visibleHeight === 'string') {\n visibleHeight = Number(props.visibleHeight.replace('px', ''));\n } else {\n visibleHeight = props.visibleHeight;\n }\n if (visibleHeight === 0) {\n visible.value = true;\n return;\n }\n let scrollDOM: HTMLElement;\n if (containerRef.value.scrollTop === undefined) {\n scrollDOM = document.documentElement;\n } else {\n scrollDOM = containerRef.value;\n }\n containerRef.value.onscroll = () => {\n const scrollTop = scrollDOM?.scrollTop;\n if (scrollTop >= visibleHeight) {\n visible.value = true;\n }\n if (scrollTop < visibleHeight && visible.value) {\n visible.value = false;\n }\n };\n });\n\n onBeforeUnmount(() => {\n containerRef.value.onscroll = null;\n });\n\n return () => {\n const { theme, shape, size, target, duration, offset, container } = props;\n const getChild = useChildSlots();\n let children = getChild();\n if (children.length < 1) children = null;\n const cls = computed(() => {\n return {\n [componentName.value]: true,\n [`${componentName.value}--theme-${theme}`]: true,\n [`${componentName.value}--${shape}`]: true,\n [`${componentName.value}--show`]: visible.value,\n [`${classPrefix.value}-size-s`]: size === 'small',\n [`${classPrefix.value}-size-m`]: size === 'medium',\n };\n });\n const defaultContent = (\n <>\n \n TOP\n \n );\n const getBackTo = () => {\n if (target === container) return 0;\n if (target === 'body') return 0;\n if (!target) return 0;\n const targetNode = getContainer(target);\n if (!targetNode) return 0;\n const y = (targetNode as HTMLElement).getBoundingClientRect().y;\n return y;\n };\n const handleClick = (e: MouseEvent) => {\n const y = getBackTo();\n scrollTo(y, { container: containerRef.value, duration });\n props.onClick?.({ e });\n };\n const positionStyle = computed(() => {\n return {\n insetInlineEnd: offset[0],\n insetBlockEnd: offset[1],\n };\n });\n return (\n \n );\n };\n },\n});\n","import withInstall from '../utils/withInstall';\nimport _BackTop from './back-top';\nimport { TdBackTopProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type BackTopProps = TdBackTopProps;\n\nexport const BackTop = withInstall(_BackTop);\n\nexport default BackTop;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAutoCompleteProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动获取焦点 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 触发显示联想词下拉框的元素,同 `triggerElement` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉联想词列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤规则,用于对现有数据进行搜索过滤,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否根据输入内容过滤联想词。默认过滤规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则。部分场景下输入关键词和下拉联想词完全不同,此时可以设置为 `false` */\n filterable: {\n type: Boolean,\n default: true,\n },\n /** 是否高亮联想词中和输入值的相同部分 */\n highlightKeyword: {\n type: Boolean,\n default: true,\n },\n /** 透传 Input 组件全部特性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 下拉联想词列表。示例一:`['联想词一', '联想词二']`。示例二:`{ label: () =>
    联想词元素
    , text: '用于搜索的纯联想词' }` */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 输入框为空时的占位提示。组件本身默认值为 `undefined`,但全局配置存在默认值,不同语言全局默认值不同 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdAutoCompleteProps['size'],\n validator(val: TdAutoCompleteProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdAutoCompleteProps['status'],\n validator(val: TdAutoCompleteProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 透传 Textarea 组件全部特性 */\n textareaProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 触发显示联想词下拉框的元素,默认为 Input 组件,可以使用 `trigger` 自定义为 Textarea 组件或其他组件 */\n triggerElement: {\n type: [String, Function] as PropType,\n },\n /** 输入框的值,即当前指定的联想词 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 输入框的值,即当前指定的联想词,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 选中联想词时触发 */\n onSelect: Function as PropType,\n};\n","import { computed, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { isString } from 'lodash-es';\nimport { escapeRegExp } from 'lodash-es';\n\nexport interface HighlightOptionProps {\n content: string;\n keyword: string;\n}\n\nexport default defineComponent({\n name: 'HighlightOption',\n props: {\n /** 联想词 */\n content: String as PropType,\n /** 搜索词 */\n keyword: String as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const words = computed<{ list: string[]; keyword?: string }>(() => {\n const { content, keyword } = props;\n if (!content) return { list: [] };\n if (!isString(content) || !keyword) return { list: [content] };\n const regExp = new RegExp(escapeRegExp(keyword), 'i');\n const splitKeyword = content.match(regExp)?.[0];\n return {\n list: content.split(splitKeyword),\n keyword: splitKeyword,\n };\n });\n\n return () => {\n const { list, keyword } = words.value;\n return (\n
    \n {list.map((item, index) => {\n if (!index) return item;\n return [\n \n {keyword}\n ,\n item,\n ];\n })}\n
    \n );\n };\n },\n});\n","import { ref, computed, defineComponent, PropType, h, watch, onBeforeUnmount } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { CommonClassNameType } from '../hooks/useCommonClassName';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from './type';\nimport log from '@tdesign/common-js/log/index';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { on, off } from '../utils/dom';\nimport { isString } from 'lodash-es';\nimport { escapeRegExp } from 'lodash-es';\nimport { ARROW_UP_REG, ARROW_DOWN_REG, ENTER_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'AutoCompleteOptionList',\n\n props: {\n sizeClassNames: Object as PropType,\n value: String,\n size: String as PropType,\n options: Array as PropType,\n popupVisible: Boolean,\n highlightKeyword: Boolean,\n filterable: Boolean,\n filter: Function as PropType,\n empty: [String, Function] as PropType,\n },\n\n emits: ['select'],\n\n setup(props, { emit, slots, expose }) {\n const active = ref('');\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('autoComplete');\n\n const classes = computed(() => `${classPrefix.value}-select__list`);\n const optionClasses = computed(() => [\n `${classPrefix.value}-select-option`,\n {\n [props.sizeClassNames[props.size]]: props.size,\n },\n ]);\n\n // 整理数据格式\n const tOptions = computed(() => {\n let options = (props.options || []).map((item) => {\n let option: AutoCompleteOptionObj = {};\n if (isString(item)) {\n option = { text: item, label: item };\n } else {\n if (item.text && !isString(item.text)) {\n log.warn('AutoComplete', '`text` must be a string.');\n }\n if (!item.text) {\n if (isString(item.label)) {\n option = { ...item, text: item.label };\n } else {\n log.warn('AutoComplete', 'one of `label` and `text` must be a existed string.');\n }\n } else {\n option = item;\n }\n }\n return option;\n });\n // 自定义过滤规则\n if (props.filter) {\n options = options.filter((option) => props.filter(props.value, option));\n } else if (props.filterable) {\n // 默认过滤规则\n const regExp = new RegExp(escapeRegExp(props.value), 'i');\n options = options.filter((item) => regExp.test(item.text));\n }\n return options;\n });\n\n const onOptionClick = (e: MouseEvent) => {\n let liNode = e.target as HTMLElement;\n while (liNode && liNode.tagName !== 'LI') {\n liNode = liNode.parentNode as HTMLElement;\n }\n const keyword = liNode.getAttribute('title');\n active.value = keyword;\n emit('select', keyword, { e });\n };\n\n // 键盘事件,上下选择\n const onKeyInnerPress = (e: KeyboardEvent) => {\n if (ARROW_UP_REG.test(e.code) || ARROW_UP_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index - 1 < 0 ? tOptions.value.length - 1 : index - 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ARROW_DOWN_REG.test(e.code) || ARROW_DOWN_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index + 1 >= tOptions.value.length ? 0 : index + 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ENTER_REG.test(e.code) || ENTER_REG.test(e.key)) {\n if (active.value) {\n emit('select', active.value, { e });\n }\n }\n };\n\n const addKeyboardListener = () => {\n on(document, 'keydown', onKeyInnerPress);\n };\n\n const removeKeyboardListener = () => {\n off(document, 'keydown', onKeyInnerPress);\n };\n\n expose({\n addKeyboardListener,\n removeKeyboardListener,\n });\n\n watch(\n () => props.popupVisible,\n () => {\n if (props.popupVisible) {\n addKeyboardListener();\n } else {\n removeKeyboardListener();\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.value,\n () => {\n if (!props.value) {\n active.value = '';\n }\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n removeKeyboardListener();\n });\n\n return () => {\n if (!tOptions.value.length) {\n return (\n
    \n {props.empty || globalConfig.value.empty}\n
    \n );\n }\n\n return (\n
      \n {tOptions.value.map((item) => {\n const cls = [...optionClasses.value];\n if (item.text === active.value) {\n cls.push(`${classPrefix.value}-select-option--hover`);\n }\n let labelNode: any = item.label;\n if (isFunction(item.label)) {\n labelNode = item.label(h);\n } else if (slots.option) {\n labelNode = slots.option?.({ option: item });\n }\n const content = labelNode || item.text;\n return (\n
    • \n {isString(content) && props.highlightKeyword ? (\n \n ) : (\n content\n )}\n
    • \n );\n })}\n
    \n );\n };\n },\n});\n","import { computed, ref, defineComponent, toRefs, nextTick } from 'vue';\nimport props from './props';\nimport { TdAutoCompleteProps } from './type';\nimport TInput, { InputProps, StrInputProps } from '../input';\nimport Popup, { PopupProps } from '../popup';\nimport useCommonClassName from '../hooks/useCommonClassName';\nimport AutoCompleteOptionList from './option-list';\nimport useVModel from '../hooks/useVModel';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\nimport { useContent, useTNodeJSX } from '../hooks';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TAutoComplete',\n props,\n setup(props: TdAutoCompleteProps, { slots }) {\n const { value, modelValue } = toRefs(props);\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { classPrefix, sizeClassNames } = useCommonClassName();\n const { globalConfig: global } = useConfig('input');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const popupVisible = ref();\n const optionListRef = ref();\n\n const getOverlayStyle = (trigger: HTMLElement, popupElement: HTMLElement) => {\n const triggerWidth = trigger.getBoundingClientRect().width || trigger.offsetWidth || trigger.clientWidth;\n const popupWidth =\n popupElement.getBoundingClientRect().width || popupElement.offsetWidth || popupElement.clientWidth;\n return {\n width: triggerWidth >= popupWidth ? `${triggerWidth}px` : 'auto',\n ...props.popupProps?.overlayInnerStyle,\n };\n };\n\n const classes = computed(() => [`${classPrefix.value}-auto-complete`]);\n const popupClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown`];\n if (props.popupProps?.overlayClassName) {\n classes = classes.concat(props.popupProps.overlayClassName);\n }\n return classes;\n });\n const popupInnerClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown-inner`];\n if (props.popupProps?.overlayInnerClassName) {\n classes = classes.concat(props.popupProps.overlayInnerClassName);\n }\n return classes;\n });\n\n const onInputChange: StrInputProps['onChange'] = (value, context) => {\n setTValue(value, context);\n };\n\n const innerInputProps = computed(() => {\n const tProps: InputProps = {\n value: tValue.value,\n size: props.size,\n ...props.inputProps,\n };\n return tProps;\n });\n\n const onInnerFocus: StrInputProps['onFocus'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = true;\n props.onFocus?.({ ...context, value });\n nextTick(() => {\n optionListRef.value?.addKeyboardListener();\n });\n };\n\n const onInnerBlur: StrInputProps['onBlur'] = (value, context) => {\n props.onBlur?.({ ...context, value });\n };\n\n const onInnerCompositionend: InputProps['onCompositionend'] = (value, context) => {\n props.onCompositionend?.({ ...context, value });\n };\n\n const onInnerCompositionstart: InputProps['onCompositionstart'] = (value, context) => {\n props.onCompositionstart?.({ ...context, value });\n };\n\n const onInnerEnter: StrInputProps['onEnter'] = (value, context) => {\n props.onEnter?.({ ...context, value });\n };\n\n const onInnerSelect: TdAutoCompleteProps['onSelect'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = false;\n setTValue(value, context);\n props.onSelect?.(value, context);\n };\n\n const onPopupVisibleChange: PopupProps['onVisibleChange'] = (visible, { trigger }) => {\n if (isReadonly.value || isDisabled.value) return;\n if (trigger !== 'trigger-element-click') {\n popupVisible.value = visible;\n }\n };\n\n return () => {\n // 触发元素\n const triggerNode = renderContent('default', 'triggerElement') || (\n \n );\n // 联想词列表\n const listContent = Array.isArray(props.options) && (\n \n );\n\n const topContent = renderTNodeJSX('panelTopContent');\n const bottomContent = renderTNodeJSX('panelBottomContent');\n const panelContent =\n topContent || listContent || bottomContent ? (\n
    \n {topContent}\n {listContent}\n {bottomContent}\n
    \n ) : null;\n const popupProps = {\n ...props.popupProps,\n overlayInnerStyle: getOverlayStyle,\n overlayInnerClassName: popupInnerClasses.value,\n overlayClassName: popupClasses.value,\n };\n return (\n
    \n panelContent : null}\n {...popupProps}\n >\n {triggerNode}\n \n
    \n );\n };\n },\n});\n","import _AutoComplete from './auto-complete';\nimport _HighlightOption from './highlight-option';\nimport withInstall from '../utils/withInstall';\nimport { AutoCompleteOption, TdAutoCompleteProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type AutoCompleteProps = TdAutoCompleteProps;\n\nexport const AutoComplete = withInstall(_AutoComplete);\nexport const HighlightOption = withInstall(_HighlightOption);\n\nexport default AutoComplete;\n","import { CascaderContextType, TreeNode, TreeNodeValue } from '../types';\n\n/**\n * icon Class\n * @param prefix\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getFakeArrowIconClass(\n prefix: string,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { disabled } = cascaderContext;\n return [\n `${prefix}-cascader__icon`,\n {\n [STATUS.disabled]: disabled,\n },\n ];\n}\n\n/**\n * 通用状态\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getNodeStatusClass(\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, value, max } = cascaderContext;\n const expandedActive =\n (!checkStrictly && node.expanded && (multiple ? !node.isLeaf() : true)) || (checkStrictly && node.expanded);\n\n const isLeaf = node.isLeaf();\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n let isSelected = node.checked || (multiple && !checkStrictly && node.expanded && !isLeaf);\n // 处理单选非叶子节点的选中逻辑\n if (!multiple && !checkStrictly && !isLeaf) {\n isSelected = node.expanded;\n }\n\n return [\n {\n [STATUS.selected]: !isDisabled && isSelected,\n [STATUS.expanded]: !isDisabled && expandedActive,\n [STATUS.disabled]: isDisabled,\n },\n ];\n}\n\n/**\n * 子节点状态\n * @param prefix\n * @param node\n * @param SIZE\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemClass(\n prefix: string,\n node: TreeNode,\n SIZE: Record,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { size } = cascaderContext;\n return [\n `${prefix}-cascader__item`,\n ...getNodeStatusClass(node, STATUS, cascaderContext),\n SIZE[size],\n {\n [`${prefix}-cascader__item--with-icon`]: !!node.children,\n [`${prefix}-cascader__item--leaf`]: node.isLeaf(),\n },\n ];\n}\n\n/**\n * 子节点icon状态\n * @param prefix\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemIconClass(\n prefix: string,\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n return [`${prefix}-cascader__item-icon`, `${prefix}-icon`, ...getNodeStatusClass(node, STATUS, cascaderContext)];\n}\n","import { isNumber } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isEmpty } from 'lodash-es';\nimport { TreeNode, CascaderContextType, TdCascaderProps, CascaderValue, TreeNodeValue, TreeOptionData } from '../types';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n if (multiple || (value !== 0 && !value)) return '';\n\n if (isArray(value)) return '';\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!(node && node.length)) {\n return value as string;\n }\n const path = node && node[0].getPath();\n if (path && path.length) {\n return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path.at(-1).label;\n }\n return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n if (!multiple) return [];\n if (multiple && !isArray(value)) return [];\n\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!node) return [];\n\n return (value as TreeNodeValue[])\n .map((item: TreeNodeValue) => {\n const node = treeStore.getNodes(item);\n return showAllLevels ? getFullPathLabel(node[0]) : node[0]?.label;\n })\n .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n const panels: TreeNode[][] = [];\n treeNodes.forEach((node: TreeNode) => {\n if (panels[node.level]) {\n panels[node.level].push(node);\n } else {\n panels[node.level] = [node];\n }\n });\n return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n return node\n ?.getPath()\n .map((node: TreeNode) => node.label)\n .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n let treeValue: TreeNodeValue[] = [];\n if (isArray(value)) {\n if (value.length > 0 && isObject(value[0])) {\n treeValue = (value as TreeOptionData[]).map((val) => val.value);\n } else if (value.length) {\n treeValue = value as TreeNodeValue[];\n }\n } else if (!isEmptyValues(value)) {\n if (isObject(value)) {\n treeValue = [(value as TreeOptionData).value];\n } else {\n treeValue = [value];\n }\n }\n return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n if (valueType === 'single') {\n return value;\n }\n const val = value as Array;\n if (multiple) {\n return val.map((item: TreeNodeValue[]) => item.at(-1));\n }\n return val.at(-1);\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑,排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n if (isNumber(value) && !isNaN(value)) return false;\n return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n const { multiple, showAllLevels, valueType } = cascaderContext;\n return (multiple && !isArray(value)) || (!multiple && isArray(value) && valueType === 'single' && !showAllLevels);\n}\n","import { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\n\nimport type { TreeNode, CascaderContextType, TdCascaderProps, TreeNodeValue, TreeNodeModel } from '../types';\nimport { getFullPathLabel, getTreeValue, isEmptyValues } from './helper';\n\n/**\n * 点击item的副作用\n * @param propsTrigger\n * @param trigger\n * @param node\n * @param cascaderContext\n */\nexport function expendClickEffect(\n propsTrigger: TdCascaderProps['trigger'],\n trigger: TdCascaderProps['trigger'],\n node: TreeNode,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, treeStore, setVisible, setValue, setTreeNodes, setExpend, value, max, valueType } =\n cascaderContext;\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n if (isDisabled) return;\n // 点击展开节点,设置展开状态\n if (propsTrigger === trigger) {\n const expanded = node.setExpanded(true);\n treeStore.refreshNodes();\n treeStore.replaceExpanded(expanded);\n const nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n setTreeNodes(nodes);\n\n // 多选条件下手动维护expend\n if (multiple) {\n setExpend(expanded);\n }\n }\n\n if (!multiple && (node.isLeaf() || checkStrictly) && trigger === 'click') {\n treeStore.resetChecked();\n const checked = node.setChecked(!node.checked);\n const [value] = checked;\n\n // 非受控状态下更新状态\n setValue(valueType === 'single' ? value : node.getPath().map((item) => item.value), 'check', node.getModel());\n\n // 当 trigger 为 hover 时 ,点击节点一定是关闭 panel 的操作\n if (!checkStrictly || propsTrigger === 'hover') {\n setVisible(false, {});\n }\n }\n}\n\n/**\n * 多选状态下选中状态数据变化的副作用\n * @param node\n * @param cascaderContext\n * @returns\n */\nexport function valueChangeEffect(node: TreeNode, cascaderContext: CascaderContextType) {\n const { disabled, max, inputVal, multiple, setVisible, setValue, treeNodes, treeStore, valueType } = cascaderContext;\n\n if (!node || disabled || node.disabled) {\n return;\n }\n const checked = node.setChecked(!node.isChecked());\n\n if (isNumber(max) && max < 0) {\n console.warn('TDesign Warn:', 'max should > 0');\n }\n\n if (checked.length > max && isNumber(max) && max > 0) {\n return;\n }\n\n if (checked.length === 0) {\n const expanded = treeStore.getExpanded();\n setTimeout(() => {\n treeStore.replaceExpanded(expanded);\n treeStore.refreshNodes();\n }, 0);\n }\n\n if (!multiple) {\n setVisible(false, {});\n }\n\n const isSelectAll = treeNodes.every((item) => checked.indexOf(item.value) > -1);\n\n if (inputVal && isSelectAll) {\n setVisible(false, {});\n }\n\n // 处理不同数据类型\n const resValue =\n valueType === 'single'\n ? checked\n : checked.map((val) =>\n treeStore\n .getNode(val)\n .getPath()\n .map((item) => item.value),\n );\n\n setValue(resValue, node.checked ? 'uncheck' : 'check', node.getModel());\n}\n\n/**\n * closeIcon点击副作用\n * @param cascaderContext\n */\nexport function closeIconClickEffect(cascaderContext: CascaderContextType) {\n const { setVisible, multiple, setValue } = cascaderContext;\n\n setVisible(false, {});\n\n setValue(multiple ? [] : '', 'clear');\n}\n\n/**\n * tag 关闭按钮点击副作用\n * @param cascaderContext\n */\nexport function handleRemoveTagEffect(\n cascaderContext: CascaderContextType,\n index: number,\n onRemove: TdCascaderProps['onRemove'],\n) {\n const { disabled, setValue, value, valueType, treeStore } = cascaderContext;\n if (disabled) return;\n\n // index equal to undefined means to click clear button\n if (index !== undefined) {\n const newValue = cloneDeep(value) as [];\n const res = newValue.splice(index, 1);\n const node = treeStore.getNodes(res[0])[0];\n\n const checked = node.setChecked(!node.isChecked());\n // 处理不同数据类型\n const resValue =\n valueType === 'single'\n ? checked\n : checked.map((val) =>\n treeStore\n .getNode(val)\n .getPath()\n .map((item) => item.value),\n );\n setValue(resValue, 'uncheck', node.getModel());\n if (isFunction(onRemove)) {\n onRemove({ value: checked, node: node as any });\n }\n } else {\n if (isFunction(onRemove)) {\n onRemove({ value, node: undefined });\n }\n }\n}\n\n/**\n * input和treeStore变化的副作用\n * @param inputVal\n * @param treeStore\n * @param setTreeNodes\n * @returns\n */\nexport const treeNodesEffect = (\n inputVal: CascaderContextType['inputVal'],\n treeStore: CascaderContextType['treeStore'],\n setTreeNodes: CascaderContextType['setTreeNodes'],\n filter: CascaderContextType['filter'],\n) => {\n if (!treeStore) return;\n let nodes = [];\n if (inputVal) {\n const filterMethods = (node: TreeNode) => {\n if (!node.isLeaf()) return;\n if (isFunction(filter)) {\n return filter(`${inputVal}`, node as TreeNodeModel & TreeNode);\n }\n const fullPathLabel = getFullPathLabel(node, '');\n return fullPathLabel.indexOf(`${inputVal}`) > -1;\n };\n\n nodes = treeStore.nodes.filter(filterMethods);\n } else {\n nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n }\n setTreeNodes(nodes);\n};\n\n/**\n * 初始化展开阶段与展开状态副作用\n * @param treeStore\n * @param treeValue\n * @param expend\n */\nexport const treeStoreExpendEffect = (\n treeStore: CascaderContextType['treeStore'],\n value: CascaderContextType['value'],\n expend: TreeNodeValue[],\n) => {\n const treeValue = getTreeValue(value);\n\n if (!treeStore) return;\n // init expanded, 无expend状态时设置\n if (isArray(treeValue) && expend.length === 0) {\n const expandedMap = new Map();\n const [val] = treeValue;\n if (!isEmptyValues(val)) {\n expandedMap.set(val, true);\n const node = treeStore.getNode(val);\n if (!node) {\n treeStore.refreshNodes();\n return;\n }\n node.getParents().forEach((tn: TreeNode) => {\n expandedMap.set(tn.value, true);\n });\n const expandedArr = Array.from(expandedMap.keys());\n treeStore.replaceExpanded(expandedArr);\n }\n }\n // 本地维护 expend,更加可控,不需要依赖于 tree 的状态\n if (treeStore.getExpanded() && expend.length) {\n treeStore.replaceExpanded(expend);\n }\n treeStore.refreshNodes();\n};\n","import { defineComponent, PropType, computed, ref } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { getFullPathLabel, getCascaderItemClass, getCascaderItemIconClass } from '../utils';\n\nimport Checkbox from '../../checkbox/index';\nimport TLoading from '../../loading';\n\nimport { CascaderContextType, TreeNodeValue, TreeNode, TdCascaderProps } from '../types';\nimport { usePrefixClass, useCommonClassName } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport useRipple from '../../hooks/useRipple';\n\nconst props = {\n node: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n optionChild: {\n type: [Object, Array] as PropType,\n },\n cascaderContext: {\n type: Object as PropType,\n },\n onChange: Function as PropType<() => void>,\n onClick: Function as PropType<() => void>,\n onMouseenter: Function as PropType<() => void>,\n};\n\nexport default defineComponent({\n name: 'TCascaderItem',\n props,\n setup(props) {\n const liRef = ref();\n useRipple(liRef);\n\n const COMPONENT_NAME = usePrefixClass('cascader__item');\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon } = useGlobalIcon({ ChevronRightIcon: TdChevronRightIcon });\n const { STATUS, SIZE } = useCommonClassName();\n\n const itemClass = computed(() => {\n return getCascaderItemClass(classPrefix.value, props.node, SIZE.value, STATUS.value, props.cascaderContext);\n });\n\n const iconClass = computed(() => {\n return getCascaderItemIconClass(classPrefix.value, props.node, STATUS.value, props.cascaderContext);\n });\n\n function RenderLabelInner(node: TreeNode, cascaderContext: CascaderContextType) {\n const { inputVal } = cascaderContext;\n const labelText = inputVal ? getFullPathLabel(node) : node.label;\n if (inputVal) {\n const texts = labelText.split(inputVal as string);\n const doms = [];\n for (let index = 0; index < texts.length; index++) {\n doms.push({texts[index]});\n if (index === texts.length - 1) break;\n doms.push(\n \n {inputVal}\n ,\n );\n }\n return doms;\n }\n return labelText;\n }\n\n const renderTitle = (node: TreeNode) => {\n if (typeof node.label === 'string') return node.label;\n\n return null;\n };\n\n function RenderLabelContent(node: TreeNode, cascaderContext: CascaderContextType) {\n const label = RenderLabelInner(node, cascaderContext);\n\n const labelCont = (\n \n {label}\n \n );\n\n return labelCont;\n }\n\n function RenderCheckBox(node: TreeNode, cascaderContext: CascaderContextType) {\n const { checkProps, value, max, inputVal } = cascaderContext;\n const label = RenderLabelInner(node, cascaderContext);\n return (\n = max && max !== 0)}\n // node.value maybe string or number\n name={String(node.value)}\n stopLabelTrigger={!!node.children}\n title={inputVal ? getFullPathLabel(node) : renderTitle(node)}\n onChange={() => {\n props.onChange();\n }}\n {...checkProps}\n >\n {label}\n \n );\n }\n\n return () => {\n const { cascaderContext, node, optionChild } = props;\n const isOptionChildAndMultiple = optionChild && cascaderContext.multiple;\n return (\n (isOptionChildAndMultiple ? props.onChange() : props.onClick())}\n onMouseenter={props.onMouseenter}\n >\n {optionChild ||\n (cascaderContext.multiple\n ? RenderCheckBox(node, cascaderContext)\n : RenderLabelContent(node, cascaderContext))}\n {node.children &&\n (node.loading ? (\n \n ) : (\n \n ))}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCascaderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 是否支持清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 无匹配选项时的内容,默认全局配置为 '暂无数据' */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 用来定义 value / label / children / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 延迟加载 children 为 true 的子节点,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 加载子树数据的方法(仅当节点 children 为 true 时生效) */\n load: {\n type: Function as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 自定义单个级联选项 */\n option: {\n type: Function as PropType,\n },\n /** 可选项数据源 */\n options: {\n type: Array as PropType,\n default: (): TdCascaderProps['options'] => [],\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 参考 popup 组件 API */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 选中值使用完整路径,输入框在单选时也显示完整路径 */\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCascaderProps['size'],\n validator(val: TdCascaderProps['size']): boolean {\n if (!val) return true;\n return ['large', 'medium', 'small'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdCascaderProps['status'],\n validator(val: TdCascaderProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 展开下一层级的方式 */\n trigger: {\n type: String as PropType,\n default: 'click' as TdCascaderProps['trigger'],\n validator(val: TdCascaderProps['trigger']): boolean {\n if (!val) return true;\n return ['click', 'hover'].includes(val);\n },\n },\n /** 选中项的值 */\n value: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n modelValue: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n /** 选中项的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array] as PropType,\n default: (): TdCascaderProps['defaultValue'] => [] as TdCascaderProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdCascaderProps['valueMode'],\n validator(val: TdCascaderProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 用于控制选中值的类型。single 表示输入输出值为 叶子结点值, full 表示输入输出值为全路径 */\n valueType: {\n type: String as PropType,\n default: 'single' as TdCascaderProps['valueType'],\n validator(val: TdCascaderProps['valueType']): boolean {\n if (!val) return true;\n return ['single', 'full'].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发。TreeNodeModel 从树组件中导出。`context.node` 表示触发事件的节点,`context.source` 表示触发事件的来源 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n};\n","import { defineComponent, PropType, computed, h } from 'vue';\n\nimport Item from './Item';\nimport { TreeNode, CascaderContextType } from '../types';\nimport CascaderProps from '../props';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useTNodeDefault } from '../../hooks/tnode';\nimport { getDefaultNode } from '../../utils/render-tnode';\nimport { getPanels, expendClickEffect, valueChangeEffect } from '../utils';\n\nexport default defineComponent({\n name: 'TCascaderSubPanel',\n props: {\n option: CascaderProps.option,\n empty: CascaderProps.empty,\n trigger: CascaderProps.trigger,\n onChange: CascaderProps.onChange,\n loading: CascaderProps.loading,\n loadingText: CascaderProps.loadingText,\n cascaderContext: {\n type: Object as PropType,\n },\n },\n\n setup(props) {\n const renderTNodeJSXDefault = useTNodeDefault();\n const COMPONENT_NAME = usePrefixClass('cascader');\n const { globalConfig } = useConfig('cascader');\n\n const panels = computed(() => getPanels(props.cascaderContext.treeNodes));\n\n const handleExpand = (node: TreeNode, trigger: 'hover' | 'click') => {\n const { trigger: propsTrigger, cascaderContext } = props;\n expendClickEffect(propsTrigger, trigger, node, cascaderContext);\n };\n\n const renderItem = (node: TreeNode, index: number) => {\n const optionChild = node.data.content\n ? getDefaultNode(node.data.content(h))\n : renderTNodeJSXDefault('option', {\n params: { item: node.data, index },\n });\n return (\n {\n handleExpand(node, 'click');\n }}\n onMouseenter={() => {\n handleExpand(node, 'hover');\n }}\n onChange={() => {\n valueChangeEffect(node, props.cascaderContext);\n }}\n />\n );\n };\n\n const renderList = (treeNodes: TreeNode[], isFilter = false, segment = true, index = 1) => (\n \n {treeNodes.map((node: TreeNode) => renderItem(node, index))}\n \n );\n\n const renderPanels = () => {\n const { inputVal, treeNodes } = props.cascaderContext;\n return inputVal\n ? renderList(treeNodes, true)\n : panels.value.map((treeNodes, index: number) =>\n renderList(treeNodes, false, index !== panels.value.length - 1, index),\n );\n };\n\n return () => {\n let content;\n if (props.loading) {\n content = renderTNodeJSXDefault(\n 'loadingText',\n
    {globalConfig.value.loadingText}
    ,\n );\n } else {\n content = panels.value.length\n ? renderPanels()\n : renderTNodeJSXDefault(\n 'empty',\n
    {globalConfig.value.empty}
    ,\n );\n }\n return (\n \n {content}\n \n );\n };\n },\n});\n","import { isUndefined, isBoolean, omit, get } from 'lodash-es';\nimport { TreeNode } from './tree-node';\nimport { OptionData } from '../common';\nimport {\n TreeNodeValue,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeItem,\n} from './types';\nimport log from '../log/log';\n\nexport const nodeKey = '__tdesign_tree-node__';\n\nexport class TreeNodeModel {\n private [nodeKey]: TreeNode;\n\n constructor(node: TreeNode) {\n this[nodeKey] = node;\n }\n\n public get value() {\n const node = this[nodeKey];\n return node.value;\n }\n\n public get label() {\n const node = this[nodeKey];\n return node.label;\n }\n\n public get data() {\n const node = this[nodeKey];\n return node.data;\n }\n\n public get actived() {\n const node = this[nodeKey];\n return node.actived;\n }\n\n public get expanded() {\n const node = this[nodeKey];\n return node.expanded;\n }\n\n public get checked() {\n const node = this[nodeKey];\n return node.checked;\n }\n\n public get indeterminate() {\n const node = this[nodeKey];\n return node.indeterminate;\n }\n\n public get loading() {\n const node = this[nodeKey];\n return node.loading;\n }\n\n public get disabled() {\n const node = this[nodeKey];\n return node.isDisabled();\n }\n\n /**\n * 获取节点所处层级\n * @return number 节点层级序号\n */\n public getLevel() {\n const node = this[nodeKey];\n return node.getLevel();\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex() {\n const node = this[nodeKey];\n return node.getIndex();\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst() {\n const node = this[nodeKey];\n return node.isFirst();\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast() {\n const node = this[nodeKey];\n return node.isLast();\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf() {\n const node = this[nodeKey];\n return node.isLeaf();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertBefore(newData);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertAfter(newData);\n }\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public appendData(data: TypeTreeNodeData | TypeTreeNodeData[]) {\n const node = this[nodeKey];\n return node.append(data);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNodeModel[] 路径节点数组\n */\n public getPath(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getPath();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的父节点\n * @return TreeNodeModel 父节点\n */\n public getParent(): TypeTreeNodeModel {\n const node = this[nodeKey];\n return node.parent?.getModel();\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNodeModel[] 父级节点数组\n */\n public getParents(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getParents();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNodeModel 根节点\n */\n public getRoot(): TypeTreeNodeModel {\n const node = this[nodeKey];\n const root = node.getRoot();\n return root?.getModel();\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNodeModel[] 兄弟节点数组\n */\n public getSiblings(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getSiblings();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n const node = this[nodeKey];\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = node;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = node.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 移除节点\n * - 提供 value 参数,移除本节点子节点中的节点\n * - 不提供 value 参数,移除自己\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TreeNodeValue) {\n const node = this[nodeKey];\n if (!value) {\n node.remove();\n return;\n }\n\n const { tree } = node;\n const targetNode = tree.getNode(value);\n if (!targetNode) {\n log.warnOnce('Tree', `\\`${value}\\` is not exist`);\n return;\n }\n\n const parents = targetNode.getParents();\n const parentValues = parents.map((pnode) => (pnode.value));\n if (parentValues.indexOf(node.value) < 0) {\n log.warnOnce('Tree', `\\`${value}\\` is not a childNode of current node`);\n return;\n }\n targetNode.remove();\n }\n\n /**\n * 设置本节点携带的元数据\n * @param {object} data 节点数据\n * @return void\n */\n public setData(data: OptionData) {\n const node = this[nodeKey];\n // syncAttrs 列举的属性,key 名称可被 tree.config.keys 定义\n // 因此同步状态时需要读取被定义的 key 名称\n // 详细细节可见 https://github.com/Tencent/tdesign-common/issues/655\n const syncAttrs = [\n 'value',\n 'label',\n 'disabled',\n ];\n const cleanData = omit(data, ['children', ...syncAttrs]) as Partial;\n const { keys } = node.tree.config;\n syncAttrs.forEach((attr: string) => {\n const dataAttrValue = get(data, keys?.[attr as keyof typeof keys] || attr);\n if (!isUndefined(dataAttrValue)) cleanData[attr as keyof typeof keys] = dataAttrValue;\n });\n Object.assign(node.data, cleanData);\n Object.assign(node, cleanData);\n node.update();\n }\n}\n\n// 封装对外暴露的对象\nexport function createNodeModel(node: TreeNode): TypeTreeNodeModel {\n const model = new TreeNodeModel(node);\n return model as TypeTreeNodeModel;\n}\n","import { isNull, isFunction, isNumber, uniqueId, isBoolean, isNil, get } from 'lodash-es';\nimport { TreeStore } from './tree-store';\nimport {\n TreeNodeValue,\n TreeNodeState,\n TypeIdMap,\n TypeTreeItem,\n TypeSettingOptions,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeStoreOptions,\n TypeFnOperation,\n} from './types';\nimport {\n createNodeModel,\n} from './tree-node-model';\nimport log from '../log';\n\nconst { hasOwnProperty } = Object.prototype;\n\n// 这里的属性为 data 中属性可以同步到 treeNode 实例属性的白名单\n// 仅 label 属性和在列表中的属性可以通过 set 方法配置到 treeNode 实例上\nexport const settableStatus: Record = {\n expandMutex: null,\n activable: null,\n checkable: null,\n draggable: null,\n loading: false,\n};\n\nexport const settableProps = Object.keys(settableStatus);\n\nexport const syncableProps = [...settableProps, 'actived', 'expanded', 'checked'];\n\nexport const privateKey = '__tdesign_id__';\n\n// vm 开头为视图属性,不可以外部设置\n// 用于触发视图更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 节点数据模型\n * @class TreeNode\n * @param {TreeStore} tree TreeStore 实例\n * @param {object} [data] 节点数据\n * @param {TreeNode} parent 指定的当前 TreeStore 实例中的父节点\n */\nexport class TreeNode {\n // 节点隶属的树实例\n public tree: TreeStore;\n\n // 节点私有 id,不接受外部传入,确保唯一性\n public [privateKey]: string;\n\n // 节点 id ,唯一标志\n public value: string;\n\n // 节点文本\n public label: string;\n\n // 节点数据\n public data: TypeTreeNodeData;\n\n // 父节点\n public parent: TreeNode;\n\n // 子节点列表\n public children: TreeNode[] | boolean;\n\n // 暴露的 treeNodeModel,这个对象的属性和 api 提供给用户使用\n public model: TypeTreeNodeModel;\n\n // 是否为叶节点\n public vmIsLeaf: boolean;\n\n // 是否为子节点中的第一个\n public vmIsFirst: boolean;\n\n // 是否为子节点中的最后\n public vmIsLast: boolean;\n\n // 节点是否是经过过滤剩下的\n public vmIsRest: boolean;\n\n // 节点是否展示为锁定状态\n public vmIsLocked: boolean;\n\n // 节点在视图上实际的展开状态\n public expanded: boolean;\n\n // 展开时是否收起同级节点,对子节点生效\n public expandMutex: null | boolean;\n\n // 节点在视图上实际的激活状态\n public actived: boolean;\n\n // 是否可激活\n public activable: null | boolean;\n\n // 是否可选中\n public checkable: null | boolean;\n\n // 是否可选中的视图呈现\n public vmCheckable: boolean;\n\n // 节点在视图上实际的选中态\n public checked: boolean;\n\n // 节点实际是否为半选状态\n public indeterminate: boolean;\n\n // 节点是否已禁用\n public disabled: null | boolean;\n\n // 节点是否可拖动\n public draggable: null | boolean;\n\n // 节点是否可视\n public visible: boolean;\n\n // 节点在树中的层级\n public level: number;\n\n // 节点是否正在加载数据\n public loading: boolean;\n\n public constructor(\n tree: TreeStore,\n data?: TypeTreeNodeData,\n parent?: TreeNode,\n ) {\n this.data = data;\n this.tree = tree;\n\n const config = tree.config || {};\n const prefix = config.prefix || 't';\n const keys = config.keys || {};\n const propChildren = keys.children || 'children';\n const propLabel = keys.label || 'label';\n const propValue = keys.value || 'value';\n const propDisabled = keys.disabled || 'disabled';\n\n // 节点自身初始化数据\n this.model = null;\n this.children = null;\n this.level = 0;\n\n // vm 开头为视图属性,不可以外部设置\n this.vmCheckable = false;\n this.vmIsLeaf = false;\n this.vmIsFirst = false;\n this.vmIsLast = false;\n this.vmIsRest = false;\n this.vmIsLocked = false;\n\n // 初始化节点基本状态\n this.visible = false;\n this.actived = false;\n this.checked = false;\n this.indeterminate = false;\n this.loading = false;\n this.expanded = config.expandAll;\n\n // 下面几个属性,节点初始化的时候,可以设置与 treeStore.config 不同的值\n // 初始化默认值为 null, 则在方法判断时,默认以 treeStore.config 为准\n // 传递或者设置属性为 boolean 类型的值,则以节点属性值为准\n // 这种处理方式主要是解决 treeStore.setConfig 方法配置全局属性导致的状态切换与保留的问题\n this.activable = null;\n this.checkable = null;\n this.expandMutex = null;\n this.draggable = null;\n\n // 为节点设置唯一 id\n // tree 数据替换时,value 相同有可能导致节点状态渲染冲突\n // 用这个 唯一 id 来解决,用于类似 vue 组件的唯一 key 指定场景\n this[privateKey] = uniqueId(prefix);\n\n // 设置 value\n // 没有 value 的时候,value 默认使用自动生成的 唯一 id\n this.value = isNil(get(data, propValue))\n ? this[privateKey]\n : get(data, propValue);\n const { nodeMap, privateMap } = tree;\n if (nodeMap.get(this.value)) {\n log.warn('Tree', `Dulplicate value: ${this.value}`);\n }\n nodeMap.set(this.value, this);\n privateMap.set(this[privateKey], this);\n\n // 设置标签\n this.label = get(data, propLabel) || '';\n // 设置是否禁用\n this.disabled = get(data, propDisabled) || false;\n\n // 设置子节点\n const children = data[propChildren];\n // 子节点为 true 的状态逻辑需要放到状态计算之前\n // 初始化加载逻辑需要依据这个来进行\n if (children === true) {\n this.children = children;\n }\n\n // 设置父节点\n if (parent && parent instanceof TreeNode) {\n this.parent = parent;\n } else {\n this.parent = null;\n }\n\n // 同步数据属性到节点属性\n // 仅 syncableStatus 列举的属性被同步到 treeNode 实例属性\n syncableProps.forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n // @ts-ignore\n // TODO: 待移除\n this[prop] = data[prop];\n }\n });\n\n // 初始化节点激活状态\n this.initActived();\n // 展开状态影响了子节点的显示状态,所以要在子节点插入之前初始化展开状态\n this.initExpanded();\n\n // 这里的子节点加载逻辑不能放到状态初始化之前\n // 因为子节点状态计算依赖父节点初始化状态\n if (Array.isArray(children)) {\n this.append(children);\n } else if (children === true && !config.lazy) {\n this.loadChildren();\n }\n\n // 节点的选中状态同时依赖于子节点状态与父节点状态\n // 因此在子节点插入之后再更新选中状态\n this.initChecked();\n this.updateChecked();\n\n // 标记节点更新\n this.update();\n // 创建节点需要回流操作\n tree.reflow(this);\n }\n\n /* ------ 状态初始化 ------ */\n\n /**\n * 初始化选中态\n * @return void\n */\n private initChecked(): void {\n const { tree, value, parent } = this;\n const { checkedMap } = tree;\n const { checkStrictly } = tree.config;\n if (this.checked) {\n checkedMap.set(value, true);\n }\n // 这里不可以使用 parent.isChecked 方法\n // 因为当前节点创建时尚未插入父节点的 children 数组,可能父节点选中态仅受到之前子节点状态的影响\n // 这会导致父节点状态计算错误,进而引发子节点变更了选中状态\n if (!checkStrictly && parent?.checked) {\n checkedMap.set(value, true);\n }\n }\n\n /**\n * 初始化节点展开状态\n * @return void\n */\n private initExpanded(): void {\n const { tree } = this;\n let { expanded } = this;\n const { config } = tree;\n if (isNumber(config.expandLevel) && this.getLevel() < config.expandLevel) {\n tree.expandedMap.set(this.value, true);\n expanded = true;\n }\n if (this.children === true && config.lazy) {\n expanded = false;\n }\n if (expanded) {\n tree.expandedMap.set(this.value, true);\n } else {\n tree.expandedMap.delete(this.value);\n }\n this.expanded = expanded;\n }\n\n /**\n * 初始化节点激活状态\n * @return void\n */\n private initActived(): void {\n const { tree, actived } = this;\n if (actived && this.isActivable()) {\n tree.activedMap.set(this.value, true);\n }\n }\n\n /* ------ 节点操作 ------ */\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public append(data: TypeTreeNodeData | TypeTreeNodeData[]): void {\n const list = [];\n if (!Array.isArray(data)) {\n list.push(data);\n } else {\n list.push(...data);\n }\n if (list.length <= 0) {\n return;\n }\n if (!Array.isArray(this.children)) {\n this.children = [];\n }\n const { children, tree } = this;\n list.forEach((item) => {\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(this.tree, this);\n } else {\n node = new TreeNode(this.tree, item, this);\n children.push(node);\n }\n });\n tree.reflow(this);\n this.updateRelated();\n }\n\n /**\n * 将当前节点追加到某个父节点的子节点列表中\n * @param {TreeStore} tree 目标树\n * @param {TreeNode} [parent] 目标父节点\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n public appendTo(tree: TreeStore, parent?: TreeNode, index?: number): void {\n const parentNode = parent;\n let targetIndex = -1;\n if (isNumber(index)) {\n targetIndex = index;\n }\n\n const targetParents = parentNode?.getParents() || [];\n const includeCurrent = targetParents.some((pnode) => pnode === this);\n if (includeCurrent) {\n throw new Error('无法将父节点插入到子节点');\n }\n\n if (parentNode === this) {\n throw new Error('无法将节点插入到本节点');\n }\n\n if (Array.isArray(parentNode?.children)) {\n const targetPosNode = parentNode?.children[targetIndex];\n if (targetPosNode && targetPosNode === this) {\n // 无需将节点插入到原位置\n return;\n }\n }\n\n // 先要取得 siblings\n // 因为要应对节点在同一个 siblings 中变换位置的情况\n let siblings = null;\n if (parentNode instanceof TreeNode) {\n if (!Array.isArray(parentNode?.children)) {\n parentNode.children = [];\n }\n siblings = parent.children;\n } else {\n siblings = tree.children;\n }\n\n // 上面的逻辑其实已经覆盖了所有业务情况\n // 这里的逻辑报错仅用于极限兜底,防止 treeStore 被误使用\n if (!Array.isArray(siblings)) {\n throw new Error('无法插入到目标位置,可插入的节点列表不存在');\n }\n\n const prevLength = siblings.length;\n const prevIndex = this.getIndex();\n\n this.remove();\n\n if (isNumber(index)) {\n let targetIndex = index;\n if (parentNode === this.parent) {\n // 前置节点被拔出后再插入到同一个 siblings 时,会引起目标 index 的变化\n // 因此要相应的变更插入位置\n // 后置节点被拔出时,目标 index 是不变的\n const curLength = siblings.length;\n if (curLength < prevLength && prevIndex <= targetIndex) {\n targetIndex -= 1;\n }\n }\n siblings.splice(targetIndex, 0, this);\n } else {\n siblings.push(this);\n }\n\n this.parent = parentNode;\n\n // 插入节点应当继承展开状态\n // 但不要继承选中状态和高亮状态\n const nodes = this.walk();\n nodes.forEach((item) => {\n const node = item;\n node.tree = tree;\n tree.nodeMap.set(node.value, node);\n tree.privateMap.set(node[privateKey], node);\n if (node.expanded) {\n tree.expandedMap.set(node.value, true);\n }\n });\n\n const updateNodes = parentNode?.walk() || tree.children.map((item) => item.walk()).flat();\n updateNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n\n tree.reflow();\n }\n\n /**\n * 插入一个节点或者数据到到同级节点的目标位置\n * @param {TreeNode | object} item 要插入的节点或者数据\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n private insert(item: TypeTreeItem, index?: number): void {\n const { tree, parent } = this;\n const siblings = this.getSiblings();\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(tree, parent, index);\n } else if (item) {\n node = new TreeNode(tree, item, parent);\n if (isNumber(index)) {\n siblings.splice(index, 0, node);\n }\n siblings.forEach((sibling) => {\n sibling.update();\n });\n }\n tree.reflow();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index + 1);\n }\n\n /**\n * 从当前树中移除本节点\n * @return void\n */\n public remove(): void {\n const { tree } = this;\n\n const nodes = this.walk();\n const siblings = this.getSiblings();\n const index = this.getIndex();\n // 从父节点的子节点列表中移除自己\n // 但不要将自己的父节点移除,避免渲染与判断失败\n if (Array.isArray(siblings)) {\n siblings.splice(index, 1);\n }\n // 清理与树的关系,但不清理自身状态\n nodes.forEach((node) => {\n node.clean();\n });\n // 同级节点的连线状态会受到影响\n siblings.forEach((node) => {\n node.update();\n });\n // 父节点选中态会受到影响\n this.updateParents();\n tree.reflow();\n }\n\n /**\n * 清除本节点与当前树的关系\n * @return void\n */\n private clean(): void {\n const { tree, value } = this;\n tree.activedMap.delete(value);\n tree.checkedMap.delete(value);\n tree.expandedMap.delete(value);\n tree.nodeMap.delete(value);\n tree.filterMap.delete(value);\n tree.privateMap.delete(this[privateKey]);\n }\n\n /**\n * 异步加载子节点\n * @return Promise\n */\n private async loadChildren(): Promise {\n const config: TypeTreeStoreOptions = get(this, 'tree.config') || {};\n if (this.children === true && !this.loading) {\n if (isFunction(config.load)) {\n this.loading = true;\n this.update();\n let list = [];\n list = await config.load(this);\n this.tree.emit('load', {\n node: this,\n data: list,\n });\n this.loading = false;\n if (Array.isArray(list) && list.length > 0) {\n this.append(list);\n } else {\n this.children = false;\n }\n this.update();\n }\n }\n }\n\n /**\n * 设置节点状态\n * - 为节点设置独立于配置的 disabled 状态: set({ disabled: true })\n * - 清除独立于配置的 disabled 状态: set({ disabled: null })\n * @param {object} item 节点状态对象\n * @return void\n */\n public set(item: TreeNodeState): void {\n const { tree } = this;\n const keys = Object.keys(item);\n keys.forEach((key) => {\n // key, disabled 字段可被 tree.config.keys 定义\n if (hasOwnProperty.call(settableStatus, key) || key === 'label') {\n // @ts-ignore\n // TODO: 待移除\n this[key] = item[key];\n }\n if (key === 'disabled') {\n this.setDisabled(item[key]);\n }\n });\n tree.updated(this);\n }\n\n /* ------ 节点获取 ------- */\n\n /**\n * 获取本节点的父节点\n * @return TreeNode 父节点\n */\n public getParent(): TreeNode {\n return this.parent;\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNode[] 父级节点数组\n */\n public getParents(): TreeNode[] {\n const parents = [];\n let node = this.parent;\n while (node) {\n parents.push(node);\n node = node.parent;\n }\n return parents;\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNode[] 兄弟节点数组\n */\n public getSiblings(): TreeNode[] {\n const { parent, tree } = this;\n let list: TreeNode[] = [];\n if (parent) {\n if (Array.isArray(parent.children)) {\n list = parent.children;\n }\n } else if (tree) {\n list = tree.children;\n }\n return list;\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = this;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = this.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNode 根节点\n */\n public getRoot(): TreeNode {\n const parents = this.getParents();\n return parents[parents.length - 1] || null;\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex(): number {\n const list = this.getSiblings();\n return list.indexOf(this);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNode[] 路径节点数组\n */\n public getPath(): TreeNode[] {\n const nodes = this.getParents();\n nodes.unshift(this);\n return nodes.reverse();\n }\n\n /**\n * 获取节点所在层级\n * @return number 层级序号\n */\n public getLevel(): number {\n const parents = this.getParents();\n return parents.length;\n }\n\n /* ------ 节点状态判断 ------ */\n\n /**\n * 判断节点是否被过滤\n * @return boolean 是否被过滤方法命中\n */\n public isRest(): boolean {\n const { config, filterMap, hasFilter } = this.tree;\n\n let rest = false;\n if (hasFilter) {\n // 仅在存在过滤条件时,过滤命中才有效\n const nodeModel = this.getModel();\n rest = config.filter(nodeModel);\n }\n\n if (rest) {\n filterMap.set(this.value, true);\n } else if (filterMap.get(this.value)) {\n filterMap.delete(this.value);\n }\n\n return rest;\n }\n\n /**\n * 判断节点是否可见\n * @return boolean 是否可见\n */\n public isVisible(): boolean {\n const { nodeMap, hasFilter, config } = this.tree;\n const { allowFoldNodeOnFilter } = config;\n\n let visible = true;\n\n if (!nodeMap.get(this.value)) {\n // 节点不在当前树上,所以不可见\n return false;\n }\n\n if (hasFilter && !allowFoldNodeOnFilter) {\n // 如果存在过滤条件\n // 锁定状态和过滤命中状态,直接呈现\n visible = this.vmIsLocked || this.vmIsRest;\n return visible;\n }\n\n // 标志所有父节点展开导致的可见状态\n let expandVisible = true;\n const parents = this.getParents();\n if (parents.length > 0) {\n expandVisible = parents.every((node: TreeNode) => node.expanded);\n }\n\n if (hasFilter) {\n visible = expandVisible && (this.vmIsRest || this.vmIsLocked);\n } else {\n visible = expandVisible;\n }\n return visible;\n }\n\n /**\n * 判断节点为逻辑禁用状态,不包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabledState(): boolean {\n const { tree, parent } = this;\n const { config } = tree;\n const { disabled, disableCheck, checkStrictly } = config;\n let state = disabled || false;\n if (this.disabled) {\n // 整个树被禁用,则节点为禁用状态\n state = true;\n }\n if (!checkStrictly && parent?.isDisabledState()) {\n // 如果 checkStrictly 为 false\n // 父节点被禁用,则子节点也为禁用状态\n state = true;\n }\n if (typeof disableCheck === 'boolean') {\n if (disableCheck) {\n state = true;\n }\n } else if (typeof disableCheck === 'function') {\n // disableCheck 视为禁用节点的过滤函数\n if (disableCheck(this.getModel())) {\n state = true;\n }\n }\n return state;\n }\n\n /**\n * 判断节点是否呈现为禁用态,包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabled(): boolean {\n const { tree } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && this.vmIsLocked && !this.vmIsRest) {\n // 当前树存在过滤条件,允许节点过滤后被折叠,当前节点为锁定节点,并且不是筛选后剩下的节点\n // 则该节点应当呈现禁用状态\n return true;\n }\n return this.isDisabledState();\n }\n\n /**\n * 判断节点是否能拖拽\n * @return boolean 是否能拖拽\n */\n public isDraggable(): boolean {\n let state = !!get(this, 'tree.config.draggable');\n if (typeof this.draggable === 'boolean') {\n state = this.draggable;\n }\n return state;\n }\n\n /**\n * 判断子节点是否互斥展开\n * @return boolean 子节点是否互斥展开\n */\n public isExpandMutex(): boolean {\n let state = !!get(this, 'tree.config.expandMutex');\n if (typeof this.expandMutex === 'boolean') {\n state = this.expandMutex;\n }\n return state;\n }\n\n /**\n * 节点是否可被激活\n * @return boolean 是否可被激活\n */\n public isActivable() {\n let state = !!get(this, 'tree.config.activable');\n if (typeof this.activable === 'boolean') {\n state = this.activable;\n }\n return state;\n }\n\n /**\n * 节点是否可选\n * @return boolean 是否可选\n */\n public isCheckable() {\n let state = !!get(this, 'tree.config.checkable');\n if (typeof this.checkable === 'boolean') {\n state = this.checkable;\n }\n return state;\n }\n\n /**\n * 节点是否被激活\n * @param {Map} [map] 预设激活节点 map, 用于计算节点在预期环境中的激活状态\n * @return boolean 是否被激活\n */\n public isActived(map?: Map): boolean {\n const { tree, value } = this;\n const activedMap = map || tree.activedMap;\n return !!(tree.nodeMap.get(value) && activedMap.get(value));\n }\n\n /**\n * 节点是否已展开\n * @param {Map} [map] 预设展开节点 map, 用于计算节点在预期环境中的展开状态\n * @return boolean 是否已展开\n */\n public isExpanded(map?: Map): boolean {\n const { tree, value, vmIsLocked } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && vmIsLocked) return true;\n const expandedMap = map || tree.expandedMap;\n return !!(tree.nodeMap.get(value) && expandedMap.get(value));\n }\n\n /**\n * 节点是否被选中\n * @param {Map} [map] 预设选中节点 map, 用于计算节点在预期环境中的选中态\n * @return boolean 是否被选中\n */\n public isChecked(map?: TypeIdMap): boolean {\n const { children, tree, value } = this;\n const { checkStrictly, valueMode } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n const checkedMap = map || tree.checkedMap;\n // 严格模式,则已经可以判定选中状态\n if (checkStrictly) {\n return !!checkedMap.get(value);\n }\n let checked = false;\n // 在 checkedMap 中,则根据 valueMode 的值进行判断\n if (checkedMap.get(value)\n && (\n // 如果 valueMode 为 all、parentFirst,则视为选中\n valueMode !== 'onlyLeaf'\n // 如果 valueMode 为 onlyLeaf 并且当前节点是叶子节点,则视为选中\n || this.isLeaf()\n )\n ) {\n return true;\n }\n // 如果 valueMode 为 onlyLeaf 并且当前节点是父节点,则进一步判断\n if (Array.isArray(children) && children.length > 0) {\n // 子节点全部选中,则当前节点选中\n checked = children.every((node) => {\n const childIsChecked = node.isChecked(checkedMap);\n return childIsChecked;\n });\n } else {\n // 从父节点状态推断子节点状态\n // 这里再调用 isChecked 会导致死循环\n const parents = this.getParents();\n checked = parents.some((node) => checkedMap.get(node.value));\n }\n return checked;\n }\n\n /**\n * 是否为半选状态\n * @return boolean 是否为半选状态\n */\n public isIndeterminate(): boolean {\n const { children, tree, value } = this;\n const { checkStrictly } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n // 严格模式没有半选状态\n if (checkStrictly) return false;\n // 叶节点不存在半选状态\n if (!Array.isArray(children)) return false;\n\n let childChecked: null | boolean = null;\n const indeterminate = children.some((node: TreeNode) => {\n if (node.isIndeterminate()) {\n // 子节点有任意一个半选,则其为半选状态\n return true;\n }\n if (isNull(childChecked)) {\n childChecked = node.isChecked();\n }\n if (childChecked !== node.isChecked()) {\n // 子节点选中状态不一致,则其为半选状态\n return true;\n }\n return false;\n });\n\n return indeterminate;\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst(): boolean {\n const siblings = this.getSiblings();\n return siblings[0] === this;\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast(): boolean {\n const siblings = this.getSiblings();\n return siblings[siblings.length - 1] === this;\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf(): boolean {\n let isLeaf = false;\n if (Array.isArray(this.children)) {\n isLeaf = this.children.length <= 0;\n } else {\n isLeaf = !this.children;\n }\n return isLeaf;\n }\n\n /* ------ 节点状态切换 ------ */\n\n /**\n * 锁定节点,解锁节点\n * - 搜索过滤节点时,路径节点需要固定呈现,视其为锁定态\n * @param {boolean} lockState 锁定状态\n * @return void\n */\n public lock(lockState: boolean): void {\n this.vmIsLocked = lockState;\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n }\n\n /**\n * 节点展开关闭后需要调用的状态检查函数\n * @return void\n */\n public afterExpanded(): void {\n this.update();\n // 节点展开时检查延迟加载的数据\n if (this.expanded && this.children === true) {\n this.loadChildren();\n }\n this.updateChildren();\n }\n\n /**\n * 切换节点展开状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树展开的节点值数组\n */\n public toggleExpanded(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setExpanded(!this.isExpanded(), opts);\n }\n\n /**\n * 设置节点展开状态\n * @param {boolean} expanded 节点展开状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树展开的节点值数组\n */\n public setExpanded(\n expanded: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const { config } = tree;\n const options = {\n directly: false,\n ...opts,\n };\n\n let map = tree.expandedMap;\n if (!options.directly) {\n map = new Map(tree.expandedMap);\n }\n\n // 手风琴效果,先折叠同级节点\n if (expanded) {\n // 列举需要展开的节点\n const shouldExpandNodes = [];\n // 自己一定在展开列表中\n shouldExpandNodes.push(this);\n if (config.expandParent) {\n // expandParent 为 true,则父节点都要展开\n this.getParents().forEach((node) => {\n shouldExpandNodes.push(node);\n });\n }\n shouldExpandNodes.forEach((node) => {\n let isExpandMutex = false;\n // 对于每一个节点,都需要判断是否启用手风琴效果\n if (node.parent) {\n isExpandMutex = node.parent.isExpandMutex();\n } else {\n isExpandMutex = tree?.config?.expandMutex;\n }\n if (isExpandMutex) {\n // 折叠列表中,先移除同级节点\n const siblings = node.getSiblings();\n siblings.forEach((snode) => {\n map.delete(snode.value);\n // 同级节点相关状态更新\n snode.update();\n snode.updateChildren();\n });\n }\n // 最后设置自己的折叠状态\n map.set(node.value, true);\n node.update();\n node.updateChildren();\n });\n } else {\n map.delete(this.value);\n }\n\n if (options.directly) {\n this.afterExpanded();\n }\n\n return tree.getExpanded(map);\n }\n\n /**\n * 切换节点激活状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树激活的节点值数组\n */\n public toggleActived(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setActived(!this.isActived(), opts);\n }\n\n /**\n * 设置节点激活状态\n * @param {boolean} actived 节点激活状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树激活的节点值数组\n */\n public setActived(\n actived: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n const config = tree.config || {};\n let map = tree.activedMap;\n if (!options.directly) {\n map = new Map(tree.activedMap);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换激活状态\n return tree.getActived(map);\n }\n if (this.isActivable()) {\n if (actived) {\n const prevKeys = Array.from(map.keys());\n if (!config.activeMultiple) {\n map.clear();\n }\n prevKeys.forEach((value) => {\n const node = tree.getNode(value);\n node?.update();\n });\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n }\n this.update();\n return tree.getActived(map);\n }\n\n /**\n * 是否存在未选中的未禁用子节点\n * @return boolean 未选中的未禁用子节点存在与否\n */\n public hasEnableUnCheckedChild(): boolean {\n const { children } = this;\n if (!Array.isArray(children) || children.length <= 0) {\n // 没有子节点\n return false;\n }\n let state = false;\n children.some((child) => {\n // 不理会禁用节点\n if (child.isDisabledState()) return false;\n // 不理会选中节点\n if (child.isChecked()) return false;\n if (child.isIndeterminate()) {\n // 为半选节点则进行递归检查\n if (child.hasEnableUnCheckedChild()) {\n state = true;\n return true;\n }\n // 都尽可能选中了,则检查之后的节点\n return false;\n }\n // 子节点为未选中状态,且非半选状态\n // 则直接返回 true\n state = true;\n return true;\n });\n return state;\n }\n\n /**\n * 切换节点选中状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树选中的节点值数组\n */\n public toggleChecked(opts?: TypeSettingOptions): TreeNodeValue[] {\n if (this.isIndeterminate()) {\n // 当前节点为半选情况下需要判断子节点是否尽可能全部选中\n // 存在可操作的未选中的子节点,则应当尽可能选中子节点\n // 不存在可操作的未选中的子节点,则应取消选中子节点\n const expectState = this.hasEnableUnCheckedChild();\n return this.setChecked(expectState, opts);\n }\n return this.setChecked(!this.isChecked(), opts);\n }\n\n /**\n * 设置节点选中状态\n * - 节点 UI 操作时调用这个方法\n * - 节点设置自身状态时调用这个方法\n * @param {boolean} checked 节点选中状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.isAction=true] 是否为 UI 动作\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树选中的节点值数组\n */\n public setChecked(\n checked: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const config = tree.config || {};\n const options: TypeSettingOptions = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n let map = tree.checkedMap;\n if (!options.directly) {\n map = new Map(tree.checkedMap);\n }\n if (!this.isCheckable()) {\n // 当前节点非可选节点,则不可设置选中态\n return tree.getChecked(map);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换选中态\n return tree.getChecked(map);\n }\n\n if (checked === this.isChecked()) {\n const shouldSet = this.isIndeterminate() && !this.hasEnableUnCheckedChild();\n if (!shouldSet) {\n // 值没有变更, 则选中态无变化\n return tree.getChecked(map);\n }\n }\n\n if (checked) {\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n\n if (config.checkStrictly) {\n // 严格模式下,选中态不扩散,仅操作节点自身\n if (options.directly) {\n // 严格模式值更新节点自身\n this.updateChecked();\n }\n } else {\n // 先向下游扩散选中态\n this.spreadChildrenChecked(checked, map, options);\n // 再计算上游选中态\n this.spreadParentChecked(checked, map, options);\n // 状态更新务必放到扩散动作之后\n // 过早的状态更新会导致后续计算出错\n if (options.directly) {\n const relatedNodes = tree.getRelatedNodes([this.value], {\n reverse: true,\n });\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n return tree.getChecked(map);\n }\n\n // 选中态向上游扩散\n private spreadParentChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n }\n\n const { parent } = this;\n if (!parent) return;\n parent.spreadParentChecked(checked, map, options);\n }\n\n // 选中态向下游扩散\n private spreadChildrenChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n // 对于 UI 动作操作,节点禁用,中断扩散\n if (options.isAction && this.isDisabledState()) return;\n\n const { children } = this;\n if (!Array.isArray(children)) return;\n if (children.length <= 0) return;\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n children.forEach((node) => {\n // 对于 UI 动作,向下扩散时,禁用状态会阻止状态切换\n if (options.isAction && node.isDisabledState()) return;\n if (checked) {\n map.set(node.value, true);\n } else {\n map.delete(node.value);\n }\n node.spreadChildrenChecked(checked, map, options);\n });\n }\n\n /**\n * 设置节点禁用状态\n * @return void\n */\n public setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.update();\n this.updateChildren();\n }\n\n /* ------ 节点状态更新 ------ */\n\n /**\n * 更新节点当前状态,将节点放到延时更新检查队列\n * @return void\n */\n public update(): void {\n this.level = this.getLevel();\n this.vmIsFirst = this.isFirst();\n this.vmIsLast = this.isLast();\n this.vmIsLeaf = this.isLeaf();\n this.vmCheckable = this.isCheckable();\n this.vmIsRest = this.isRest();\n this.actived = this.isActived();\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n this.tree.updated(this);\n }\n\n /**\n * 更新节点选中态\n * @return void\n */\n public updateChecked(): void {\n const { tree, value } = this;\n const { checkedMap } = tree;\n this.checked = this.isChecked();\n this.indeterminate = this.isIndeterminate();\n if (this.checked) {\n checkedMap.set(value, true);\n }\n tree.updated(this);\n }\n\n /**\n * 更新所有子节点状态\n * - 不包含自己\n * @return void\n */\n public updateChildren(): void {\n this.spreadChildren((node) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有父级节点状态\n * - 不包含自己\n * @return void\n */\n public updateParents(): void {\n this.spreadParents((node: TreeNode) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新上下游相关节点状态\n * - 包含自己\n * @return void\n */\n public updateRelated(): void {\n const { tree } = this;\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /* ------ 节点遍历 ------ */\n\n /**\n * 获取包含自己在内所有的子节点\n * - 包含自己\n * @return TreeNode[] 遍历结果节点数组\n */\n public walk(): TreeNode[] {\n const list: TreeNode[] = [];\n this.spreadChildren((node: TreeNode) => {\n list.push(node);\n });\n return list;\n }\n\n /**\n * 向下遍历操作\n * - 包含自己\n * @return void\n */\n private spreadChildren(fn: TypeFnOperation) {\n fn(this);\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n children.forEach((node) => {\n node?.spreadChildren(fn);\n });\n }\n }\n\n /**\n * 向上遍历操作\n * - 包含自己\n * @return void\n */\n private spreadParents(fn: TypeFnOperation) {\n fn(this);\n const { parent } = this;\n if (!parent) return;\n parent?.spreadParents(fn);\n }\n\n /**\n * 获取节点封装对象\n * - TreeNode 对象 => TypeTreeNodeModel 对象\n * - TypeTreeNodeModel 用于封装 treeNode 对外暴露的 api\n * - 用户仅可操作经过封装的对象,减少了对外暴露的 api,利于代码重构\n * @return TypeTreeNodeModel 节点封装对象\n */\n public getModel(): TypeTreeNodeModel {\n let { model } = this;\n if (!model) {\n model = createNodeModel(this);\n this.model = model;\n }\n return model;\n }\n}\n\nexport default TreeNode;\n","import { isArray, isFunction, isNumber, isString, difference, camelCase, isPlainObject } from 'lodash-es';\nimport mitt from 'mitt';\n\nimport { TreeNode, privateKey } from './tree-node';\nimport {\n TreeNodeValue,\n TypeIdMap,\n TypeTargetNode,\n TypeTreeNodeData,\n TypeTreeItem,\n TypeTreeStoreOptions,\n TypeTreeFilter,\n TypeTreeFilterOptions,\n TypeRelatedNodesOptions,\n TypeTreeEventState,\n TypeUpdatedMap,\n} from './types';\n\nfunction nextTick(fn: () => void): Promise {\n const pm = Promise.resolve();\n pm.then(fn);\n return pm;\n}\n\n// 构建一个树的数据模型\n// 基本设计思想:写入时更新,减少读取消耗,以减少未来实现虚拟滚动所需的计算量\n// 任何一次数据写入,会触发相应节点的状态更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 数据模型\n * @class TreeStore\n * @param {object} options tree 组件选项\n * @param {string} [options.prefix=\"t\"] tree 组件内部属性前缀\n * @param {object} options.keys 取值映射对象,部分属性按照其 key/value 来取 treeNode 属性值\n * @param {string} [options.keys.label=\"label\"] 从 data 种取 label 值时读取的属性名称\n * @param {string} [options.keys.value=\"value\"] 从 data 种取 value 值时读取的属性名称\n * @param {string} [options.keys.children=\"children\"] 从 data 种取 children 值时读取的属性名称\n * @param {boolean} [options.expandAll=false] 初始化节点时,是否自动展开\n * @param {number} [options.expandLevel=0] 初始化节点时,自动展开的级别\n * @param {boolean} [options.expandMutex=false] 展开时,是否使用手风琴模式\n * @param {boolean} [options.expandParent=false] 展开节点时,是否自动展开父节点\n * @param {boolean} [options.activable=false] 是否可以激活节点\n * @param {boolean} [options.activeMultiple=false] 激活节点是否使用多选模式\n * @param {boolean} [options.checkable=false] 节点是否可选中\n * @param {boolean} [options.checkStrictly=false] 节点选中是否使用严格模式\n * @param {boolean} [options.disabled=false] 节点是否禁用\n * @param {boolean|function} [options.disableCheck=false] 节点被禁用的条件\n * @param {boolean} [options.draggable=false] 节点是否可拖动\n * @param {function} [options.load=null] 节点延迟加载函数\n * @param {boolean} [options.lazy=false] 节点是否使用延迟加载模式\n * @param {string} [options.valueMode=\"onlyLeaf\"] 节点选中取值模式\n * @param {function} [options.filter=null] 节点过滤函数\n * @param {function} [options.onLoad=null] 节点延迟加载完成时的回调函数\n * @param {function} [options.onReflow=null] 节点触发回流后的回调\n * @param {function} [options.onUpdate=null] 节点触发更新后的后调\n * @param {boolean} [options.allowFoldNodeOnFilter=false] 过滤时,是否允许折叠节点\n */\nexport class TreeStore {\n // 根节点集合\n public children: TreeNode[];\n\n // 所有节点集合\n public nodes: TreeNode[];\n\n // 所有节点映射\n public nodeMap: Map;\n\n // 节点 私有 ID 映射\n public privateMap: Map;\n\n // 配置选项\n public config: TypeTreeStoreOptions;\n\n // 活动节点集合\n public activedMap: TypeIdMap;\n\n // 数据被更新的节点集合\n public updatedMap: TypeUpdatedMap;\n\n // 选中节点集合\n public checkedMap: TypeIdMap;\n\n // 展开节点的集合\n public expandedMap: TypeIdMap;\n\n // 符合过滤条件的节点的集合\n public filterMap: TypeIdMap;\n\n // 存在过滤器标志\n public hasFilter: boolean;\n\n // 事件派发器\n public emitter: ReturnType;\n\n // 数据更新计时器\n private updateTick: Promise;\n\n // 识别是否需要重排\n private shouldReflow: boolean;\n\n // 树节点过滤器\n private prevFilter: TypeTreeFilter;\n\n public constructor(options: TypeTreeStoreOptions) {\n const config: TypeTreeStoreOptions = {\n prefix: 't',\n keys: {},\n expandAll: false,\n expandLevel: 0,\n expandMutex: false,\n expandParent: false,\n activable: false,\n activeMultiple: false,\n checkable: false,\n checkStrictly: false,\n disabled: false,\n disableCheck: false,\n draggable: false,\n load: null,\n lazy: false,\n valueMode: 'onlyLeaf',\n filter: null,\n // 每次搜索条件变更,重置展开状态,路径节点展开,显示命中节点\n // allowFoldNodeOnFilter 为 true 时,搜索条件不变的情况下,允许折叠路径节点\n // 默认状态,allowFoldNodeOnFilter 为 false 时,路径节点无法折叠\n allowFoldNodeOnFilter: false,\n onLoad: null,\n onReflow: null,\n onUpdate: null,\n ...options,\n };\n this.config = config;\n this.nodes = [];\n this.children = [];\n this.nodeMap = new Map();\n this.privateMap = new Map();\n this.activedMap = new Map();\n this.expandedMap = new Map();\n this.checkedMap = new Map();\n this.updatedMap = new Map();\n this.filterMap = new Map();\n this.prevFilter = null;\n // 这个计时器确保频繁的 update 事件被归纳为1次完整数据更新后的触发\n this.updateTick = null;\n // 在子节点增删改查时,将此属性设置为 true,来触发视图更新\n this.shouldReflow = false;\n // 这个标志会被大量用到\n this.hasFilter = isFunction(config.filter);\n this.emitter = mitt();\n }\n\n /**\n * 配置选项\n * @param {object} options tree 组件选项\n * @return void\n */\n public setConfig(options: TypeTreeStoreOptions) {\n const { config } = this;\n let hasChanged = false;\n (Object.keys(options) as (keyof TypeTreeStoreOptions)[]).forEach((key) => {\n const val = options[key];\n if (val !== config[key]) {\n hasChanged = true;\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n config[key] = val;\n }\n });\n this.hasFilter = isFunction(config.filter);\n if (hasChanged) {\n // 在 td-tree 的 render 方法中调用 setConfig\n // 这样减少了 watch 属性\n // 仅在属性变更后刷新状态\n // 这样可以避免触发渲染死循环\n this.refreshState();\n }\n }\n\n /**\n * 获取根节点列表\n * @return TreeNode[] 根节点对象数组\n */\n public getChildren(): TreeNode[] {\n return this.children;\n }\n\n /**\n * 获取指定节点对象\n * @param {string|number|TreeNode} item 获取节点对象的条件,可以是节点 value,也可以是节点本身\n * @return TreeNode 节点对象,如果判断树中没有符合条件的节点,返回 null\n */\n public getNode(item: TypeTargetNode): TreeNode {\n let node = null;\n if (isString(item) || isNumber(item)) {\n node = this.nodeMap.get(item);\n } else if (item instanceof TreeNode) {\n node = this.nodeMap.get(item.value);\n }\n if (!node) node = null;\n return node;\n }\n\n /**\n * 获取节点在总节点列表中的位置\n * @param {TreeNode} node 节点对象\n * @return number 节点在总节点列表中的位置序号\n */\n public getIndex(node: TreeNode): number {\n return this.nodes.indexOf(node);\n }\n\n /**\n * 获取指定节点的父节点\n * @param {string} value 节点值\n * @return TreeNode 节点对象\n */\n public getParent(value: TypeTargetNode): TreeNode {\n let parent = null;\n const node = this.getNode(value);\n if (node) {\n parent = node.getParent();\n }\n return parent;\n }\n\n /**\n * 获取指定节点的所有父节点\n * @param {string} value 节点值\n * @return TreeNode[] 父节点数组\n */\n public getParents(value: TypeTargetNode): TreeNode[] {\n const node = this.getNode(value);\n let parents: TreeNode[] = [];\n if (node) {\n parents = node.getParents();\n }\n return parents;\n }\n\n /**\n * 获取指定节点在其所在 children 中的位置\n * @param {string} value 节点值\n * @return number 节点在 children 中的位置序号\n */\n public getNodeIndex(value: TypeTargetNode): number {\n const node = this.getNode(value);\n let index = -1;\n if (node) {\n index = node.getIndex();\n }\n return index;\n }\n\n /**\n * 获取所有符合条件的节点,按回流排序后的顺序给出\n * 以这些字段作为示例:\n * - value: 节点值(ID)\n * - TreeNode: 节点实例\n * - level: 节点层级\n * - filter: 节点过滤函数\n * 支持下列使用方式\n * - getNodes() 获取所有节点\n * - getNodes(value) 获取节点值对应的目标节点下,包含自己在内的所有子节点\n * - getNodes(TreeNode) 获取目标节点下,包含自己在内的所有子节点\n * - getNodes(value, { level: 2 }) 获取目标节点下,层级在 2 以内的子节点\n * - getNodes(value, { filter: node => (!node.checked) }) 获取目标节点下,未选中的节点\n * - getNodes(value, { props: { actived: true } }) 获取目标节点下,已激活的节点\n * @param {string | TreeNode} [item] 节点值,节点对象\n * @param {object} [options] 节点过滤条件,可传递节点属性,过滤出属性一致的节点\n * @param {number} [options.level=Infinity] 节点层级\n * @param {function} [options.filter=null] 节点过滤条件函数\n * @param {object} [options.props] 节点属性对象,作为过滤条件\n * @return TreeNode[] 符合条件的节点数组\n */\n public getNodes(\n item?: TypeTargetNode,\n options?: TypeTreeFilterOptions,\n ): TreeNode[] {\n let nodes: TreeNode[] = [];\n let val: TreeNodeValue = '';\n if (isString(item) || isNumber(item)) {\n val = item;\n } else if (item instanceof TreeNode) {\n val = item.value;\n }\n if (!val && val !== 0) {\n nodes = this.nodes.slice(0);\n } else {\n const node = this.getNode(val);\n if (node) {\n nodes = node.walk();\n }\n }\n\n if (options) {\n const conf: TypeTreeFilterOptions = {\n filter: null,\n level: Infinity,\n ...options,\n };\n if (isNumber(conf.level) && conf.level !== Infinity) {\n nodes = nodes.filter((node) => node.level <= conf.level);\n }\n if (isFunction(conf.filter)) {\n nodes = nodes.filter((node) => {\n const nodeModel = node.getModel();\n return conf.filter(nodeModel);\n });\n }\n if (isPlainObject(conf.props)) {\n nodes = nodes.filter((node) => {\n const result = Object.keys(conf.props).every((key) => {\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n const propEqual = node[key] === conf.props[key];\n return propEqual;\n });\n return result;\n });\n }\n }\n return nodes;\n }\n\n /**\n * 添加新节点数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public append(list: TypeTreeNodeData[]): void {\n list.forEach((item) => {\n const node = new TreeNode(this, item);\n this.children.push(node);\n });\n this.reflow();\n }\n\n /**\n * 清空当前树的数据,重新加载数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public reload(list: TypeTreeNodeData[]): void {\n this.removeAll();\n this.append(list);\n }\n\n /**\n * 解析节点数据,适配多种节点类型\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} item 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return spec 解析完成的数据结构\n * - {TreeNode} spec.node 目标树节点\n * - {object} spec.data 节点构造数据\n */\n private parseNodeData(\n para: TreeNodeValue | TreeNode | TypeTreeNodeData,\n item: TypeTreeNodeData | TreeNode,\n ) {\n let value: TreeNodeValue = '';\n let node = null;\n let data = null;\n\n if (isString(para) || isNumber(para)) {\n value = para;\n node = this.getNode(value);\n data = item;\n } else if (para instanceof TreeNode) {\n if (item) {\n node = para;\n data = item;\n } else {\n data = para;\n }\n } else {\n data = para;\n }\n const spec = {\n node,\n data,\n };\n return spec;\n }\n\n /**\n * 向指定节点追加节点或者数据\n * 以这些字段作为示例: item: 节点数据, TreeNode: 节点实例, value: 节点值(ID)\n * 支持下列使用方式\n * - appendNodes(item) 直接传递节点构造数据,新增节点\n * - appendNodes(TreeNode) 传递别的树的树节点,新增节点\n * - appendNodes(value, item) 以节点值查找指定节点,并新增节点构造数据\n * - appendNodes(value, TreeNode) 以节点值查找指定节点,并新增树节点\n * - appendNodes(TreeNode, item) 向指定节点新增节点构造数据\n * - appendNodes(TreeNode, TreeNode) 向指定节点新增树节点\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} [item] 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return void\n */\n public appendNodes(\n para: TypeTargetNode | TypeTreeNodeData,\n item?: TypeTreeNodeData | TreeNode,\n ): void {\n const spec = this.parseNodeData(para, item);\n if (spec.data) {\n if (!spec.node) {\n // 在根节点插入\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this);\n } else if (Array.isArray(spec.data)) {\n this.append(spec.data);\n } else {\n this.append([spec.data]);\n }\n } else {\n // 插入到目标节点之下\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this, spec.node);\n } else if (isArray(spec.data)) {\n spec.node.append(spec.data);\n } else {\n spec.node.append([spec.data]);\n }\n spec.node.updateRelated();\n }\n }\n }\n\n /**\n * 在目标节点之前插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertBefore(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertBefore(item);\n }\n }\n\n /**\n * 在目标节点之后插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertAfter(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertAfter(item);\n }\n }\n\n /**\n * 更新树结构\n * - 清空 nodes 数组,然后遍历所有根节点重新插入 node\n * - 这个操作将会为树结构数据提供一个一纬数组索引\n * @return void\n */\n public refreshNodes(): void {\n const { children, nodes } = this;\n nodes.length = 0;\n children.forEach((node) => {\n const list = node.walk();\n Array.prototype.push.apply(nodes, list);\n });\n }\n\n /**\n * 标记节点重排\n * - 应该仅在树节点增删改查时调用\n * - 节点重排会在延时后触发 refreshNodes 方法的调用\n * @param {TreeNode} [node] 触发重排的树节点\n * @return void\n */\n public reflow(node?: TreeNode): void {\n this.shouldReflow = true;\n this.updated(node);\n }\n\n /**\n * 触发更新事件\n * - 节点属性变更时调用\n * - 统一延时后,处理需要在其他节点状态更新后再处理的逻辑,减少这类逻辑的重复调用开销\n * - 统一延时后,派发事件,通知树已更新完毕,以及回流完毕,触发 vue 视图渲染操作\n * @param {TreeNode} [node] 触发更新的树节点\n * @return void\n */\n public updated(node?: TreeNode): void {\n const { updatedMap } = this;\n if (node) {\n // 传入节点,则为指定节点的更新\n updatedMap.set(node[privateKey], 'changed');\n } else {\n // reflow 流程不传入节点,需要更新所有节点\n this.getNodes().forEach((itemNode) => {\n updatedMap.set(itemNode[privateKey], 'changed');\n });\n }\n\n if (this.updateTick) return;\n this.updateTick = nextTick(() => {\n this.updateTick = null;\n\n // 检查节点是否需要回流,重排数组\n if (this.shouldReflow) {\n this.refreshNodes();\n this.emit('reflow');\n }\n\n // 检查节点是否有被过滤,锁定路径节点\n // 在此之前要遍历节点生成一个经过排序的节点数组\n // 以便于优化锁定检查算法\n this.lockFilterPathNodes();\n\n // stateId 用于单个节点状态监控\n const stateId = `t${new Date().getTime()}`;\n const updatedList = Array.from(updatedMap.keys());\n const updatedNodes = updatedList.map((nodePrivateKey) => {\n updatedMap.set(nodePrivateKey, stateId);\n return this.privateMap.get(nodePrivateKey);\n });\n\n // 统计需要更新状态的节点,派发更新事件\n this.emit('update', {\n nodes: updatedNodes,\n map: updatedMap,\n });\n\n // 每次回流检查完毕,还原检查状态\n this.shouldReflow = false;\n updatedMap.clear();\n });\n }\n\n /**\n * 获取激活节点集合\n * @param {Map} [map] 预设激活节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 激活节点值数组\n */\n public getActived(map?: TypeIdMap): TreeNodeValue[] {\n const activedMap = map || this.activedMap;\n return Array.from(activedMap.keys());\n }\n\n /**\n * 获取指定范围的激活节点\n * - 范围是目标节点在内所有子节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点本身\n * @return TreeNode[] 激活节点数组\n */\n public getActivedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isActived());\n return nodes;\n }\n\n /**\n * 替换激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceActived(list: TreeNodeValue[]): void {\n this.resetActived();\n this.setActived(list);\n }\n\n /**\n * 设置激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setActived(actived: TreeNodeValue[]): void {\n const { activeMultiple } = this.config;\n const list = actived.slice(0);\n if (!activeMultiple) {\n list.length = 1;\n }\n list.forEach((val) => {\n this.activedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.update();\n }\n });\n }\n\n /**\n * 清空所有节点的激活状态\n * @return void\n */\n public resetActived(): void {\n const actived = this.getActived();\n this.activedMap.clear();\n const relatedNodes = this.getRelatedNodes(actived);\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取展开节点集合\n * @param {Map} [map] 预设展开节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return void\n */\n public getExpanded(map?: TypeIdMap): TreeNodeValue[] {\n const expandedMap = map || this.expandedMap;\n return Array.from(expandedMap.keys());\n }\n\n /**\n * 替换展开节点\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceExpanded(list: TreeNodeValue[]): void {\n const expanded = this.getExpanded();\n const added = difference(list, expanded);\n const removed = difference(expanded, list);\n this.setExpandedDirectly(removed, false);\n this.updateExpanded(removed);\n this.setExpanded(added);\n }\n\n /**\n * 批量设置展开节点\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setExpanded(list: TreeNodeValue[]): void {\n this.setExpandedDirectly(list);\n this.updateExpanded(list);\n }\n\n /**\n * 直接设置节点展开状态\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @param {boolean} [expanded=true] 展开状态\n * @return void\n */\n public setExpandedDirectly(list: TreeNodeValue[], expanded = true): void {\n list.forEach((val) => {\n if (expanded) {\n this.expandedMap.set(val, true);\n } else {\n this.expandedMap.delete(val);\n }\n const node = this.getNode(val);\n if (node) {\n node.afterExpanded();\n }\n });\n }\n\n /**\n * 清除所有节点的展开状态\n * @return void\n */\n public resetExpanded(): void {\n const expanded = this.getExpanded();\n this.expandedMap.clear();\n this.updateExpanded(expanded);\n }\n\n /**\n * 更新展开节点相关节点的状态\n * - 节点展开状态变更后,上下游节点可能存在状态变更,统一纳入待更新队列\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public updateExpanded(list: TreeNodeValue[]): void {\n const relatedNodes = this.getRelatedNodes(list, {\n withParents: false,\n });\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取选中态节点值数组\n * @param {Map} [map] 预设选中节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 选中态节点 value 数组\n */\n public getChecked(map?: TypeIdMap): TreeNodeValue[] {\n const { nodeMap, config } = this;\n const { valueMode, checkStrictly } = config;\n const list: TreeNodeValue[] = [];\n const checkedMap = map || this.checkedMap;\n nodeMap.forEach((node) => {\n // 判断未选中,直接忽略\n if (!node.isChecked(checkedMap)) return;\n if (valueMode === 'parentFirst' && !checkStrictly) {\n // valueMode 为 parentFirst\n // 仅取值父节点\n if (!node.parent || !node.parent.isChecked(checkedMap)) {\n list.push(node.value);\n }\n } else if (valueMode === 'onlyLeaf' && !checkStrictly) {\n // valueMode 为 onlyLeaf\n // 仅取值叶子节点\n if (node.isLeaf()) {\n list.push(node.value);\n }\n } else {\n // valueMode 为 all\n // 取值所有选中节点\n list.push(node.value);\n }\n });\n return list;\n }\n\n /**\n * 获取指定节点下的选中节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点\n * @return TreeNode[] 选中节点数组\n */\n public getCheckedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isChecked());\n return nodes;\n }\n\n /**\n * 替换选中态列表\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceChecked(list: TreeNodeValue[]): void {\n this.resetChecked();\n this.setChecked(list);\n }\n\n /**\n * 批量设置选中态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setChecked(list: TreeNodeValue[]): void {\n const { checkStrictly, checkable } = this.config;\n if (!checkable) return;\n list.forEach((val: TreeNodeValue) => {\n const node = this.getNode(val);\n if (!node) return;\n if (checkStrictly) {\n this.checkedMap.set(val, true);\n node.updateChecked();\n } else {\n const childrenNodes = node.walk();\n childrenNodes.forEach((childNode) => {\n this.checkedMap.set(childNode.value, true);\n });\n }\n });\n if (!checkStrictly) {\n const checkedValues = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checkedValues);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n /**\n * 清除所有节点选中态\n * @return void\n */\n public resetChecked(): void {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n this.checkedMap.clear();\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有树节点状态,但不更新选中态\n * 用于不影响选中态时候的更新,减少递归循环造成的时间消耗\n * @return void\n */\n public refreshState(): void {\n const { nodeMap } = this;\n // 树在初始化未回流时,nodes 数组为空\n // 所以遍历 nodeMap 确保初始化阶段 refreshState 方法也可以触发全部节点的更新\n nodeMap.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 更新全部节点状态\n * @return void\n */\n public updateAll(): void {\n const { nodeMap } = this;\n nodeMap.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 移除指定节点\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TypeTargetNode): void {\n const node = this.getNode(value);\n if (node) {\n node.remove();\n }\n }\n\n /**\n * 移除所有节点\n * @return void\n */\n public removeAll(): void {\n this.expandedMap.clear();\n this.checkedMap.clear();\n this.activedMap.clear();\n this.filterMap.clear();\n this.nodeMap.clear();\n this.privateMap.clear();\n this.updatedMap.clear();\n this.nodes = [];\n this.children = [];\n this.reflow();\n }\n\n /**\n * 获取节点状态变化可能影响的关联节点\n * - 用于实现最小遍历集合\n * @param {string[]} list 目标节点值数组\n * @param {object} [options] 操作选项\n * @oaran {boolean} [options.reverse=false] 倒序排列遍历节点\n * @param {boolean} [options.withParents=true] 包含所有父节点\n * @return TreeNode[] 关联节点数组\n */\n public getRelatedNodes(\n list: TreeNodeValue[],\n options?: TypeRelatedNodesOptions,\n ): TreeNode[] {\n const conf = {\n // 默认倒序排列,从底层节点开始遍历\n reverse: false,\n // 默认遍历父节点\n withParents: true,\n ...options,\n };\n const map = new Map();\n list.forEach((value) => {\n if (map.get(value)) return;\n const node = this.getNode(value);\n if (node) {\n const parents = node.getParents().reverse();\n const children = node.walk();\n let related = [];\n if (conf.withParents) {\n related = parents.concat(children);\n } else {\n related = children;\n }\n // 用 map 实现节点去重\n related.forEach((relatedNode) => {\n map.set(relatedNode.value, relatedNode);\n });\n }\n });\n let relatedNodes = Array.from(map.values());\n if (conf.reverse) {\n relatedNodes = relatedNodes.reverse();\n }\n return relatedNodes;\n }\n\n /**\n * 触发绑定的事件\n * - store.emitter 可以绑定事件回调,用于多个组件共同监听事件\n * @param {string} name 事件名称\n * @param {Event} [state] 事件对象\n * @param {TreeNode} [state.node] 事件关联节点\n * @param {TreeNode[]} [state.nodes] 事件关联节点数组\n * @param {Map} [state.map] 事件关联节点映射\n * @param {object[]} [state.data] 事件关联节点数据\n * @return void\n */\n public emit(name: string, state?: TypeTreeEventState): void {\n const { config, emitter } = this;\n const methodName = camelCase(`on-${name}`);\n const method = config[methodName as keyof TypeTreeStoreOptions];\n if (isFunction(method)) {\n // @ts-ignore\n // TODO: 待移除\n method(state);\n }\n emitter.emit(name, state);\n }\n\n /**\n * 锁定过滤节点的路径节点\n * - 使得路径节点自动展开\n * @return void\n */\n private lockFilterPathNodes(): void {\n const { config } = this;\n const allNodes = this.getNodes();\n\n if (this.prevFilter) {\n // 过滤条件清空时,也需要清理锁定节点\n // 所在判断过滤条件是否存在之前,就要调用这里的清理逻辑\n // 不想在每次渲染时都做这个清空判断\n // 所以判断一下之前是否有进行过滤\n allNodes.forEach((node: TreeNode) => {\n // 先清空所有锁定状态\n if (node.vmIsLocked) {\n // lock 方法内部有状态计算\n // 所以要减少 lock 方法调用次数\n node.lock(false);\n }\n });\n }\n\n const currentFilter = config.filter;\n // 当前没有过滤器\n // 则无需处理锁定节点\n if (!currentFilter || !isFunction(currentFilter)) return;\n this.prevFilter = config.filter;\n\n // 全部节点要经过排序,才能使用这个遍历\n // 比起每个过滤节点调用 getParents 方法检查父节点状态\n // 复杂度 O(N*log(N)) => O(N)\n allNodes.reverse().forEach((node: TreeNode) => {\n // 数组颠倒后,等于是从每个节点的子节点开始判断\n // 想象为从展开树的最底部向上遍历\n const parent = node.getParent();\n if (!parent) return;\n if (node.vmIsRest || node.vmIsLocked) {\n // 当前节点被过滤条件命中\n // 或者当前节点被锁定\n // 则需要判定父节点状态\n if (!parent.vmIsLocked) {\n // 父节点已被锁定,则忽略动作\n // lock 方法有内置状态判断\n parent.lock(true);\n }\n }\n });\n }\n}\n\nexport default TreeStore;\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import { Ref, reactive, computed, toRefs, watch, nextTick } from 'vue';\nimport { isEqual } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport useVModel from '../../hooks/useVModel';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport {\n getTreeValue,\n getCascaderValue,\n isEmptyValues,\n isValueInvalid,\n treeNodesEffect,\n treeStoreExpendEffect,\n} from '../utils';\n\nimport {\n TreeNode,\n TreeNodeValue,\n TdCascaderProps,\n TreeNodeModel,\n CascaderChangeSource,\n CascaderValue,\n TreeOptionData,\n} from '../types';\n\n// 全局状态\nexport const useContext = (\n props: TdCascaderProps,\n setInnerValue: TdCascaderProps['onChange'],\n innerPopupVisible: Ref,\n setPopupVisible: TdCascaderProps['onPopupVisibleChange'],\n) => {\n const statusContext = reactive({\n treeStore: null,\n inputVal: null,\n scopeVal: undefined,\n treeNodes: [],\n expend: [],\n });\n\n return {\n statusContext,\n cascaderContext: computed(() => {\n const {\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n modelValue,\n } = props;\n return {\n value: statusContext.scopeVal,\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n visible: innerPopupVisible.value,\n ...statusContext,\n setTreeNodes: (nodes: TreeNode[]) => {\n statusContext.treeNodes = nodes;\n },\n setValue: (val: CascaderValue, source: CascaderChangeSource, node?: TreeNodeModel) => {\n if (isEqual(val, modelValue)) return;\n setInnerValue(val, { source, node });\n },\n setVisible: setPopupVisible,\n setInputVal: (val: string) => {\n statusContext.inputVal = val;\n },\n setExpend: (val: TreeNodeValue[]) => {\n statusContext.expend = val;\n },\n };\n }),\n };\n};\n\n// 内聚组件核心的副作用与状态处理\nexport const useCascaderContext = (props: TdCascaderProps) => {\n const disabled = useDisabled();\n const { value, modelValue, popupVisible } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerPopupVisible, setPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const { cascaderContext, statusContext } = useContext(props, setInnerValue, innerPopupVisible, setPopupVisible);\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || isFunction(props.filter));\n });\n\n // 更新treeNodes\n const updatedTreeNodes = () => {\n const { inputVal, treeStore, setTreeNodes } = cascaderContext.value;\n treeNodesEffect(inputVal, treeStore, setTreeNodes, props.filter);\n };\n\n // 更新节点展开状态\n const updateExpend = () => {\n const { value, treeStore } = cascaderContext.value;\n const { expend } = statusContext;\n treeStoreExpendEffect(treeStore, value, expend);\n treeStore.replaceChecked(getTreeValue(value));\n };\n\n watch(\n () => props.options,\n () => {\n const { options, keys = {}, checkStrictly, lazy, load, valueMode } = props;\n const { treeStore } = statusContext;\n\n if (!options.length && !treeStore) return;\n\n if (!treeStore) {\n const store = new TreeStore({\n keys: {\n ...keys,\n children: isString(keys.children) ? keys.children : 'children',\n },\n checkable: true,\n expandMutex: true,\n expandParent: true,\n lazy,\n load,\n valueMode,\n checkStrictly,\n onLoad: () => {\n nextTick(() => {\n store.refreshNodes();\n updatedTreeNodes();\n });\n },\n });\n store.append(options);\n statusContext.treeStore = store;\n } else {\n treeStore.reload(options);\n treeStore.refreshNodes();\n }\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true, deep: true },\n );\n\n // tree插件配置变化\n watch(\n () => {\n const { checkStrictly, lazy, load, valueMode } = props;\n return JSON.stringify({\n valueMode,\n checkStrictly,\n lazy,\n load,\n });\n },\n () => {\n const { treeStore } = statusContext;\n if (!treeStore) return;\n const { checkStrictly, lazy, load, valueMode } = props;\n const treeProps = {\n checkStrictly,\n disabled,\n load,\n lazy,\n valueMode,\n };\n treeStore.setConfig(treeProps);\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n () => {\n // 初始化判断 value 逻辑\n const { setValue, multiple, valueType } = cascaderContext.value;\n\n if (isValueInvalid(innerValue.value, cascaderContext.value)) {\n setValue(multiple ? [] : '', 'invalid-value');\n } else {\n statusContext.scopeVal = multiple ? [] : '';\n }\n\n if (!isEmptyValues(innerValue)) {\n statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n }\n\n if (!statusContext.treeStore) return;\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true },\n );\n\n watch(\n () => innerPopupVisible.value && isFilterable.value,\n (visible) => {\n const { setInputVal } = cascaderContext.value;\n if (visible) {\n setInputVal('');\n }\n },\n );\n\n watch(\n () => statusContext.inputVal,\n () => {\n updatedTreeNodes();\n },\n );\n\n const getCascaderItems = (arrValue: CascaderValue[]) => {\n const options: TreeOptionData[] = [];\n arrValue.forEach((value) => {\n const nodes = statusContext.treeStore?.getNodes(value);\n nodes && nodes[0] && options.push(nodes[0].data);\n });\n return options;\n };\n\n return {\n cascaderContext,\n isFilterable,\n innerValue,\n getCascaderItems,\n };\n};\n","import { defineComponent, computed } from 'vue';\nimport { omit } from 'lodash-es';\nimport Panel from './components/Panel';\nimport SelectInput from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport props from './props';\n\nimport { CascaderValue, TdSelectInputProps, TdCascaderProps } from './types';\nimport {\n closeIconClickEffect,\n handleRemoveTagEffect,\n getFakeArrowIconClass,\n getPanels,\n getSingleContent,\n getMultipleContent,\n} from './utils';\n\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useCascaderContext } from './hooks';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TCascader',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('cascader');\n const classPrefix = usePrefixClass();\n const { STATUS } = useCommonClassName();\n const overlayClassName = usePrefixClass('cascader__popup');\n const { globalConfig } = useConfig('cascader');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n\n // 拿到全局状态的上下文\n const { cascaderContext, innerValue, isFilterable, getCascaderItems } = useCascaderContext(props);\n\n const displayValue = computed(() =>\n props.multiple ? getMultipleContent(cascaderContext.value) : getSingleContent(cascaderContext.value),\n );\n\n const panels = computed(() => getPanels(cascaderContext.value.treeNodes));\n\n const inputPlaceholder = computed(\n () =>\n (cascaderContext.value.visible && !props.multiple && getSingleContent(cascaderContext.value)) ||\n (props.placeholder ?? globalConfig.value.placeholder),\n );\n\n const renderSuffixIcon = () => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n const { visible, disabled } = cascaderContext.value;\n return (\n \n );\n };\n\n const valueDisplayParams = computed(() => {\n const arrayValue = innerValue.value instanceof Array ? innerValue.value : [innerValue.value];\n const displayValue =\n props.multiple && props.minCollapsedNum ? arrayValue.slice(0, props.minCollapsedNum) : innerValue.value;\n const options = getCascaderItems(arrayValue);\n return {\n value: innerValue.value,\n selectedOptions: options,\n onClose: (index: number) => {\n handleRemoveTagEffect(cascaderContext.value, index, props.onRemove);\n },\n displayValue,\n };\n });\n\n const renderValueDisplay = () => {\n return renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n });\n };\n\n const renderLabel = () => {\n const label = renderTNodeJSX('label');\n if (props.multiple) return label;\n if (!label) return null;\n return
    {label}
    ;\n };\n\n const cascaderClassNames = computed(() => [\n COMPONENT_NAME.value,\n props.multiple ? `${COMPONENT_NAME.value}--multiple` : `${COMPONENT_NAME.value}--single`,\n ]);\n\n return () => {\n const { setVisible, visible, inputVal, setInputVal } = cascaderContext.value;\n\n return (\n renderSuffixIcon()}\n popupProps={{\n ...(props.popupProps as TdCascaderProps['popupProps']),\n overlayInnerStyle: panels.value.length && !props.loading ? { width: 'auto' } : '',\n overlayClassName: [\n overlayClassName.value,\n (props.popupProps as TdCascaderProps['popupProps'])?.overlayClassName,\n ],\n }}\n inputProps={{ size: props.size, ...(props.inputProps as TdCascaderProps['inputProps']) }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdCascaderProps['tagInputProps']),\n }}\n tagProps={{ ...(props.tagProps as TdCascaderProps['tagProps']) }}\n onInputChange={(value, ctx) => {\n if (!isFilterable.value) return;\n setInputVal(`${value}`);\n (props?.selectInputProps as TdSelectInputProps)?.onInputChange?.(value, ctx);\n }}\n onTagChange={(val: CascaderValue, ctx) => {\n // 按 enter 键不处理\n if (ctx.trigger === 'enter') return;\n handleRemoveTagEffect(cascaderContext.value, ctx.index, props.onRemove);\n // @ts-ignore TODO: fix bug\n (props?.selectInputProps as TdSelectInputProps)?.onTagChange?.(val, ctx);\n }}\n onPopupVisibleChange={(val: boolean, context) => {\n if (isDisabled.value) return;\n setVisible(val, context);\n (props?.selectInputProps as TdSelectInputProps)?.onPopupVisibleChange?.(val, context);\n }}\n onBlur={(val, context) => {\n props.onBlur?.({\n value: cascaderContext.value.value,\n inputValue: context.inputValue || '',\n e: context.e as FocusEvent,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onBlur?.(val, context);\n }}\n onFocus={(val, context) => {\n props.onFocus?.({\n value: cascaderContext.value.value,\n e: context.e,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onFocus?.(val, context);\n }}\n onClear={(context: { e: MouseEvent }) => {\n closeIconClickEffect(cascaderContext.value);\n (props?.selectInputProps as TdSelectInputProps)?.onClear?.(context);\n }}\n v-slots={{\n label: slots.label,\n suffix: slots.suffix,\n prefixIcon: slots.prefixIcon,\n panel: () => (\n <>\n {renderTNodeJSX('panelTopContent')}\n \n {renderTNodeJSX('panelBottomContent')}\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n {...omit(props.selectInputProps as TdSelectInputProps, [\n 'onTagChange',\n 'onInputChange',\n 'onPopupVisibleChange',\n 'onBlur',\n 'onFocus',\n 'onClear',\n ])}\n />\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport Panel from './components/Panel';\nimport props from './props';\n\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascaderPanel',\n props,\n setup(props, { slots }) {\n const { cascaderContext } = useCascaderContext(props);\n\n return () => (\n \n );\n },\n});\n","import _Cascader from './cascader';\nimport _CascaderPanel from './cascader-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdCascaderProps } from './type';\nimport { TreeOptionData } from '../common';\n\nimport './style';\n\nexport * from './type';\n\nexport type CascaderProps = TdCascaderProps;\nexport type CascaderPanelProps = TdCascaderProps;\n\nexport const Cascader = withInstall(_Cascader);\nexport const CascaderPanel = withInstall(_CascaderPanel);\n\nexport default Cascader;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","import { isString } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\n\nexport const TIME_FORMAT = 'HH:mm:ss';\n\n// extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm'\nexport function extractTimeFormat(dateFormat: string = '') {\n return dateFormat\n .replace(/\\W?Y{2,4}|\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '')\n .trim();\n}\n\n// 统一解析日期格式字符串成 Dayjs 对象\nexport function parseToDayjs(\n value: string | Date | number,\n format: string,\n timeOfDay?: string,\n dayjsLocale?: string,\n) {\n if (value === '' || value === null) return dayjs();\n\n let dateText = value;\n // format week\n if (/[w|W]/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const weekStr = dateText.split(/[-/.\\s]/)[1];\n const weekFormatStr = format.split(/[-/.\\s]/)[1];\n\n let firstWeek = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').startOf('year');\n // 第一周ISO定义: 本年度第一个星期四所在的星期\n // 如果第一年第一天在星期四后, 直接跳到下一周, 下一周必定是第一周\n // 否则本周即为第一周\n if (firstWeek.day() > 4 || firstWeek.day() === 0) firstWeek = firstWeek.add(1, 'week');\n\n // 一年有52或者53周, 引入IsoWeeksInYear辅助查询\n const weekCounts = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').isoWeeksInYear();\n for (let i = 0; i <= weekCounts; i += 1) {\n let nextWeek = firstWeek.add(i, 'week');\n // 重置为周的第一天\n if (timeOfDay === 'start') nextWeek = nextWeek.subtract(5, 'day');\n if (nextWeek.format(weekFormatStr) === weekStr) {\n return nextWeek;\n }\n }\n }\n\n // format quarter\n if (/Q/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const quarterStr = dateText.split(/[-/.\\s]/)[1];\n const quarterFormatStr = format.split(/[-/.\\s]/)[1];\n const firstQuarter = dayjs(yearStr, 'YYYY').startOf('year');\n for (let i = 0; i < 4; i += 1) {\n const nextQuarter = firstQuarter.add(i, 'quarter');\n if (nextQuarter.format(quarterFormatStr) === quarterStr) {\n return nextQuarter;\n }\n }\n }\n\n // 兼容数据格式不标准场景 YYYY-MM-D\n const result = dayjs(dateText, format).isValid()\n ? dayjs(dateText, format)\n : dayjs(dateText);\n\n // 兼容数据异常情况\n if (!result.isValid()) {\n log.error('DatePicker', `Check whether the format、value format is valid.\\n value: '${value}', format: '${format}'`);\n return dayjs();\n }\n\n return result;\n}\n\n// 格式化 range\nfunction formatRange({\n newDate,\n format,\n dayjsLocale,\n targetFormat,\n autoSwap,\n}: {\n newDate: any;\n format: string;\n dayjsLocale?: string;\n targetFormat?: string;\n autoSwap?: boolean;\n}) {\n if (!newDate || !Array.isArray(newDate)) return [];\n\n let dayjsDateList = newDate.map((d) => d && parseToDayjs(d, format).locale(dayjsLocale));\n\n // 保证后面的时间大于前面的时间\n if (\n autoSwap\n && dayjsDateList[0]\n && dayjsDateList[1]\n && dayjsDateList[0].toDate().getTime() > dayjsDateList[1].toDate().getTime()\n ) {\n // 数据兼容规则\n dayjsDateList = [dayjsDateList[1], dayjsDateList[0]];\n }\n\n // 格式化失败提示\n if (dayjsDateList.some((r) => r && !r.isValid())) {\n log.error(\n 'DatePicker',\n `Check whether the value、format、valueType format is valid.\\nformat: '${format}' value: '${newDate}' valueType: '${targetFormat}'`\n );\n return [];\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayjsDateList.map((da) => da && da.toDate().getTime());\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayjsDateList.map((da) => da && da.toDate());\n\n return dayjsDateList.map((da) => da && da.format(targetFormat || format));\n}\n\n// 格式化单选\nfunction formatSingle({\n newDate,\n format,\n targetFormat,\n dayjsLocale,\n}: {\n newDate: any;\n format: string;\n targetFormat?: string;\n dayjsLocale?: string;\n}) {\n if (!newDate) return '';\n\n const dayJsDate = parseToDayjs(newDate, format).locale(dayjsLocale);\n\n // 格式化失败提示\n if (!dayJsDate.isValid()) {\n log.error(\n 'DatePicker',\n `Check whether the format、value format is valid.\\nformat: '${format}' value: '${newDate}'`\n );\n return '';\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayJsDate.toDate().getTime();\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayJsDate.toDate();\n\n return dayJsDate.format(targetFormat || format);\n}\n\n// 检测日期是否合法\nexport function isValidDate(value: DateValue | DateValue[], format: string) {\n if (Array.isArray(value)) {\n return value.every((v) => {\n if (v === '') return true;\n return dayjs(v, format).isValid() || dayjs(v).isValid();\n });\n }\n\n if (value === '') return true;\n return dayjs(value, format).isValid() || dayjs(value).isValid();\n}\n\n// 日期格式化\nexport function formatDate(\n newDate: DateValue | DateValue[],\n {\n format,\n targetFormat,\n dayjsLocale = 'zh-cn',\n autoSwap,\n }: { format: string; dayjsLocale?: string, targetFormat?: string; autoSwap?: boolean }\n) {\n let result;\n\n if (Array.isArray(newDate)) {\n result = formatRange({ newDate, format, dayjsLocale, targetFormat, autoSwap });\n } else {\n result = formatSingle({ newDate, format, dayjsLocale, targetFormat });\n }\n\n return result;\n}\n\n// 对齐格式化时间\nexport function calcFormatTime(time: string, timeFormat: string) {\n if (time && timeFormat) {\n const timeArr = time.split(':');\n const timeFormatArr = timeFormat.split(':');\n return timeArr.slice(0, timeFormatArr.length).join(':');\n }\n return time;\n}\n\n// TODO 细化 value 类型\n// 格式化时间\nexport function formatTime(value: any, format: string, timeFormat: string, defaultTime: string | string[]) {\n // 无论参数是不是数组,统一转成数组处理\n let result = Array.isArray(value) ? value : [value];\n // eslint-disable-next-line no-param-reassign\n defaultTime = Array.isArray(defaultTime) ? defaultTime : [defaultTime, defaultTime];\n result = result.map((v, i) => {\n // string格式需要用format去解析,其他诸如Date、time-stamp格式则直接dayjs\n if (v) return dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n return calcFormatTime(defaultTime[i], timeFormat);\n });\n result = result.length ? result : defaultTime.map((t) => calcFormatTime(t, timeFormat));\n // value是数组就输出数组,不是数组就输出第一个即可\n return Array.isArray(value) ? result : result?.[0];\n}\n\n// 根据不同 mode 给出格式化默认值\nexport function getDefaultFormat({\n mode = 'date',\n format,\n valueType,\n enableTimePicker,\n}: {\n mode?: string;\n format?: string;\n valueType?: string;\n enableTimePicker?: boolean;\n}) {\n if (mode === 'year') {\n return {\n format: format || 'YYYY',\n valueType: valueType || format || 'YYYY',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'month') {\n return {\n format: format || 'YYYY-MM',\n valueType: valueType || format || 'YYYY-MM',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'quarter') {\n return {\n format: format || 'YYYY-[Q]Q',\n valueType: valueType || format || 'YYYY-[Q]Q',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'week') {\n return {\n format: format || 'gggg-wo',\n valueType: valueType || format || 'gggg-wo',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'date') {\n return {\n format: format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n valueType: valueType || format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n timeFormat: extractTimeFormat(format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`) || TIME_FORMAT,\n };\n }\n log.error('DatePicker', `Invalid mode: ${mode}`);\n return {};\n}\n\n// 初始化面板年份月份\nexport function initYearMonthTime({\n value,\n mode = 'date',\n format,\n timeFormat = 'HH:mm:ss',\n enableTimePicker,\n}: {\n value: Array;\n mode: string;\n format: string;\n timeFormat?: string;\n enableTimePicker?: boolean;\n}) {\n const defaultYearMonthTime = {\n year: [dayjs().year(), dayjs().year()],\n month: [dayjs().month(), dayjs().month()],\n time: [dayjs().format(timeFormat), dayjs().format(timeFormat)],\n };\n if (mode === 'year') {\n defaultYearMonthTime.year[1] += 10;\n } else if (mode === 'month' || mode === 'quarter') {\n defaultYearMonthTime.year[1] += 1;\n } else if ((mode === 'date' || mode === 'week') && !enableTimePicker) {\n // 切换至下一年\n if (defaultYearMonthTime.month[0] === 11) {\n defaultYearMonthTime.year[1] += 1;\n defaultYearMonthTime.month[1] = 0;\n } else {\n defaultYearMonthTime.month[1] += 1;\n }\n }\n\n if (!value || !Array.isArray(value) || !value.length) {\n return defaultYearMonthTime;\n }\n\n return {\n year: value.map((v) => parseToDayjs(v, format).year()),\n month: value.map((v) => parseToDayjs(v, format).month()),\n time: value.map((v) => parseToDayjs(v, format).format(timeFormat)),\n };\n}\n","import { toRefs, watchEffect, ref, computed } from 'vue';\nimport {\n formatDate,\n formatTime,\n isValidDate,\n getDefaultFormat,\n parseToDayjs,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\nimport useVModel from '../../hooks/useVModel';\nimport { TdDatePickerProps, DateMultipleValue, DateValue } from '../type';\n\nexport function useSingleValue(props: TdDatePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n const time = ref(\n formatTime(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ),\n );\n const month = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).month(),\n );\n const year = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).year(),\n );\n const cacheValue = ref(\n formatDate(props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value, {\n format: formatRef.value.format,\n }),\n ); // 缓存选中值,panel 点击时更改\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = '';\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n });\n\n return {\n year,\n month,\n value,\n time,\n cacheValue,\n onChange,\n };\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import { isFunction, chunk } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n if (!str) return str;\n return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n year: number;\n month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n const d1 = date1.getTime();\n const d2 = date2.getTime();\n\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型,默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n const func = {\n isSameYear,\n isSameQuarter,\n isSameMonth,\n isSameWeek,\n isSameDate,\n } as Record boolean>;\n return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n let tempDate = date;\n if (!(date instanceof Date)) {\n tempDate = getToday();\n }\n return {\n year: tempDate.getFullYear(),\n month: tempDate.getMonth(),\n date: tempDate.getDate(),\n hours: tempDate.getHours(),\n minutes: tempDate.getMinutes(),\n seconds: tempDate.getSeconds(),\n milliseconds: tempDate.getMilliseconds(),\n meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n date: Date,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds?: number\n): Date {\n return dayjs(date)\n .hour(hours)\n .minute(minutes)\n .second(seconds)\n .millisecond(milliseconds)\n .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n firstDayOfWeek: number;\n disableDate: DisableDate;\n minDate: Date;\n maxDate: Date;\n showWeekOfYear?: Boolean;\n dayjsLocale?: string;\n monthLocal?: string[];\n quarterLocal?: string[];\n cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n { year, month }: { year: number; month: number },\n {\n firstDayOfWeek,\n showWeekOfYear = false,\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const prependDay = getFirstDayOfMonth({ year, month });\n const appendDay = getLastDayOfMonth({ year, month });\n const maxDays = getDaysInMonth({ year, month });\n const daysArr = [];\n let i = 1;\n const today = getToday();\n for (i; i <= maxDays; i++) {\n const currentDay = new Date(year, month, i);\n daysArr.push({\n text: i,\n active: false,\n value: currentDay,\n disabled: (isFunction(disableDate) && disableDate(currentDay))\n || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n now: isSame(today, currentDay),\n firstDayOfMonth: i === 1,\n lastDayOfMonth: i === maxDays,\n type: 'current-month',\n dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n });\n }\n\n if (prependDay.getDay() !== firstDayOfWeek) {\n prependDay.setDate(0); // 上一月\n while (true) {\n daysArr.unshift({\n text: prependDay.getDate().toString(),\n active: false,\n value: new Date(prependDay),\n disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'prev-month',\n dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n });\n prependDay.setDate(prependDay.getDate() - 1);\n if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n }\n }\n\n const LEN = 42; // 显示6周\n while (daysArr.length < LEN) {\n appendDay.setDate(appendDay.getDate() + 1);\n daysArr.push({\n text: appendDay.getDate(),\n active: false,\n value: new Date(appendDay),\n disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'next-month',\n dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n });\n }\n\n const dataList = chunk(daysArr, 7);\n // 显示周数\n if (showWeekOfYear) {\n dataList.forEach((d) => {\n d.unshift({\n ...d[0],\n active: false,\n value: d[0].value,\n text: dayjs(d[0].value).locale(dayjsLocale).week(),\n dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n });\n });\n }\n\n return dataList;\n}\n\nexport function getQuarters(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n quarterLocal,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const quarterArr = [];\n const today = getToday();\n\n for (let i = 1; i <= 4; i++) {\n const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n quarterArr.push({\n value: date,\n now: isSame(date, today, 'quarter'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: quarterLocal[i - 1],\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const startYear = parseInt((year / 10).toString(), 10) * 10;\n const endYear = startYear + 9;\n\n const yearArr = [];\n\n const today = getToday();\n\n for (let i = startYear; i <= endYear; i++) {\n const date = new Date(i, 0);\n\n yearArr.push({\n value: date,\n now: isSame(date, today, 'year'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: `${date.getFullYear()}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n const {\n disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n } = params;\n const MonthArr = [];\n const today = getToday();\n\n for (let i = 0; i <= 11; i++) {\n const date = new Date(year, i);\n\n MonthArr.push({\n value: date,\n now: isSame(date, today, 'month'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n additional: boolean;\n active: boolean;\n highlight: boolean;\n hoverHighlight: boolean;\n startOfRange: boolean;\n endOfRange: boolean;\n hoverStartOfRange: boolean;\n hoverEndOfRange: boolean;\n value: Date;\n}\n\ninterface FlagActiveOptions {\n start: Date;\n end: Date;\n hoverStart: Date;\n hoverEnd: Date;\n type: any;\n isRange: boolean;\n value: DateValue | DateValue[];\n multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n const {\n start,\n end,\n hoverStart,\n hoverEnd,\n type = 'date',\n isRange = false,\n value,\n multiple = false,\n } = args;\n\n // 周选择器不更改 cell 样式\n if (type === 'week') return data;\n\n if (!isRange) {\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n\n if (multiple) {\n _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n } else {\n _item.active = start && isSame(item.value, start, type) && !_item.additional;\n }\n\n return _item;\n }));\n }\n\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n const date = item.value;\n\n const isStart = start && isSame(start, date, type);\n const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n const isEnd = end && isSame(end, date, type);\n const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n _item.active = (isStart || isEnd) && !_item.additional;\n\n if (start && end) {\n _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n _item.startOfRange = isStart;\n _item.endOfRange = isEnd;\n }\n\n if (hoverStart && hoverEnd) {\n _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n _item.hoverStartOfRange = isHoverStart;\n _item.hoverEndOfRange = isHoverEnd;\n }\n return _item;\n }));\n}\n\n/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n return {\n hours: +hours,\n minutes: +minutes,\n seconds: +seconds,\n milliseconds: +milliseconds,\n meridiem: matchedMeridiem[0],\n };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n value,\n disableDate,\n mode,\n format,\n}: {\n value: Date;\n mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n format: string;\n disableDate: any;\n}): boolean {\n if (!disableDate) return true;\n\n const availableMode = mode === 'quarter' ? 'date' : mode;\n\n let isEnabled = true;\n // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n if (isFunction(disableDate)) {\n return !disableDate(value);\n }\n\n // 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n if (Array.isArray(disableDate)) {\n const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n // eslint-disable-next-line\n const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n return !isIncludes;\n }\n\n // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用(包括A和B)。\n // eslint-disable-next-line\n const { from, to, before, after } = disableDate;\n\n if (from && to) {\n const compareMin = dayjs(from).startOf('day');\n const compareMax = dayjs(to).endOf('day');\n return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n }\n\n // 最小时间与最大时间的边界,防止正负时区出现禁用时间不一致的情况\n const min = before ? new Date(dayjs(before).startOf('day').format()) : null;\n const max = after ? new Date(dayjs(after).endOf('day').format()) : null;\n\n // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n if (max && min) {\n const compareMin = dayjs(new Date(min));\n const compareMax = dayjs(new Date(max));\n\n isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n } else if (min) {\n const compareMin = dayjs(new Date(min));\n isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n } else if (max) {\n const compareMax = dayjs(new Date(max));\n isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n }\n return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参,部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n return valueType === 'time-stamp'\n ? new Date(value)\n : dayjs(value, valueType).toDate();\n}\n","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。`{ from: 'A', to: 'B' }` 表示在 A 到 B 之间的日期会被禁用。`{ before: 'A', after: 'B' }` 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDatePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 仅用于格式化日期显示的格式,不影响日期值。注意和 `valueType` 的区别,`valueType`会直接决定日期值 `value` 的格式。全局配置默认为:'YYYY-MM-DD',[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: undefined,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDatePickerProps['mode'],\n validator(val: TdDatePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 支持多选日期,但不支持在range-picker中,或与enableTimePicker、allowInput 一起使用 */\n multiple: Boolean,\n /** 决定在日期时间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为`true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdDatePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 用于自定义组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:`{ '元旦': '2021-01-01', '昨天': dayjs().subtract(1, 'day').format('YYYY-MM-DD'), '特定日期': () => ['2021-02-01'] }` */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDatePickerProps['presetsPlacement'],\n validator(val: TdDatePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 是否只读,优先级大于 allowInput */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDatePickerProps['size'],\n validator(val: TdDatePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDatePickerProps['status'],\n validator(val: TdDatePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 用于自定义组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n modelValue: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array, Date] as PropType,\n default: '' as TdDatePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式。`ValueTypeEnum` 即将废弃,请更为使用 `DatePickerValueType` */\n valueType: {\n type: String as PropType,\n default: '' as TdDatePickerProps['valueType'],\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","import { defineComponent, PropType, ref, computed, watch } from 'vue';\nimport { PaginationMini, JumperTrigger } from '../../../pagination';\nimport TSelect from '../../../select';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerHeader',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n year: Number,\n month: Number,\n onMonthChange: Function,\n onYearChange: Function,\n onJumperClick: Function as PropType<(context: { e: MouseEvent; trigger: JumperTrigger }) => {}>,\n },\n setup(props) {\n const { classPrefix } = useConfig('classPrefix');\n const COMPONENT_NAME = usePrefixClass('date-picker__header');\n const { globalConfig } = useConfig('datePicker');\n\n const yearOptions = ref(initOptions(props.year));\n const showMonthPicker = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 年份选择展示区间\n const nearestYear = computed(\n () =>\n yearOptions.value.find((option) => option.value - props.year <= 9 && option.value - props.year >= 0)?.value ||\n props.year,\n );\n\n const monthOptions = computed(() =>\n globalConfig.value.months.map((item: string, index: number) => ({ label: item, value: index })),\n );\n\n function initOptions(year: number) {\n const options = [];\n if (props.mode === 'year') {\n const extraYear = year % 10;\n const minYear = year - extraYear - 100;\n const maxYear = year - extraYear + 100;\n\n for (let i = minYear; i <= maxYear; i += 10) {\n options.push({ label: `${i} - ${i + 9}`, value: i + 9 });\n }\n } else {\n options.push({ label: `${year}`, value: year });\n\n for (let i = 1; i <= 10; i++) {\n options.push({ label: `${year + i}`, value: year + i });\n options.unshift({ label: `${year - i}`, value: year - i });\n }\n }\n\n return options;\n }\n\n function loadMoreYear(year: number, type?: 'add' | 'reduce') {\n const options = [];\n if (props.mode === 'year') {\n const extraYear = year % 10;\n if (type === 'add') {\n for (let i = year - extraYear + 10; i <= year - extraYear + 50; i += 10) {\n options.push({ label: `${i} - ${i + 9}`, value: i });\n }\n } else {\n for (let i = year - extraYear - 1; i > year - extraYear - 50; i -= 10) {\n options.unshift({ label: `${i - 9} - ${i}`, value: i });\n }\n }\n } else if (type === 'add') {\n for (let i = year + 1; i <= year + 10; i++) {\n options.push({ label: `${i}`, value: i });\n }\n } else {\n for (let i = year - 1; i > year - 10; i--) {\n options.unshift({ label: `${i}`, value: i });\n }\n }\n\n return options;\n }\n\n // hover title\n const labelMap = computed(() => {\n return {\n year: {\n prev: globalConfig.value.preDecade,\n current: globalConfig.value.now,\n next: globalConfig.value.nextDecade,\n },\n month: {\n prev: globalConfig.value.preYear,\n current: globalConfig.value.now,\n next: globalConfig.value.nextYear,\n },\n date: {\n prev: globalConfig.value.preMonth,\n current: globalConfig.value.now,\n next: globalConfig.value.nextMonth,\n },\n quarter: {\n prev: globalConfig.value.preYear,\n current: globalConfig.value.now,\n next: globalConfig.value.nextYear,\n },\n week: {\n prev: globalConfig.value.preMonth,\n current: globalConfig.value.now,\n next: globalConfig.value.nextMonth,\n },\n };\n });\n\n // 滚动顶部底部自动加载\n function handleScroll({ e }: any) {\n if (e.target.scrollTop === 0) {\n handlePanelTopClick(e);\n } else if (e.target.scrollTop === e.target.scrollHeight - e.target.clientHeight) {\n handlePanelBottomClick(e);\n }\n }\n\n function handlePanelTopClick(e: MouseEvent) {\n e?.stopPropagation?.();\n\n const firstYear = yearOptions.value[0].value;\n const options = loadMoreYear(firstYear, 'reduce');\n yearOptions.value = [...options, ...yearOptions.value];\n }\n\n function handlePanelBottomClick(e: MouseEvent) {\n e?.stopPropagation?.();\n\n const lastYear = yearOptions.value.slice(-1)[0].value;\n const options = loadMoreYear(lastYear, 'add');\n yearOptions.value = [...yearOptions.value, ...options];\n }\n\n watch(\n () => props.mode,\n () => {\n yearOptions.value = initOptions(props.year);\n },\n );\n\n return () => (\n
    \n
    \n {showMonthPicker.value && (\n props.onMonthChange?.(val)}\n popupProps={{\n attach: (triggerElement: HTMLElement) => triggerElement.parentNode,\n overlayClassName: `${COMPONENT_NAME.value}-controller-month-popup`,\n }}\n />\n )}\n props.onYearChange?.(val)}\n popupProps={{\n onScroll: handleScroll,\n attach: (triggerElement: HTMLElement) => triggerElement.parentNode,\n overlayClassName: `${COMPONENT_NAME.value}-controller-year-popup`,\n }}\n panelTopContent={() => (\n
    \n ...\n
    \n )}\n panelBottomContent={() => (\n
    \n ...\n
    \n )}\n />\n
    \n\n \n
    \n );\n },\n});\n","import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../../../hooks/useConfig';\nimport { extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { Dayjs } from 'dayjs';\n\nexport default defineComponent({\n name: 'TDatePickerCell',\n props: {\n time: String,\n text: [String, Number],\n value: Date,\n active: Boolean,\n highlight: Boolean,\n disabled: Boolean,\n startOfRange: Boolean,\n endOfRange: Boolean,\n hoverHighlight: Boolean,\n hoverStartOfRange: Boolean,\n hoverEndOfRange: Boolean,\n additional: Boolean,\n now: Boolean,\n firstDayOfMonth: Boolean,\n lastDayOfMonth: Boolean,\n onClick: Function,\n onMouseEnter: Function,\n dayjsObj: Dayjs,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__cell');\n\n const cellClass = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--now`]: props.now,\n [`${COMPONENT_NAME.value}--active`]: props.active,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [`${COMPONENT_NAME.value}--highlight`]: props.highlight,\n [`${COMPONENT_NAME.value}--hover-highlight`]: props.hoverHighlight,\n [`${COMPONENT_NAME.value}--active-start`]: props.startOfRange,\n [`${COMPONENT_NAME.value}--active-end`]: props.endOfRange,\n [`${COMPONENT_NAME.value}--hover-start`]: props.hoverStartOfRange,\n [`${COMPONENT_NAME.value}--hover-end`]: props.hoverEndOfRange,\n [`${COMPONENT_NAME.value}--additional`]: props.additional,\n [`${COMPONENT_NAME.value}--first-day-of-month`]: props.firstDayOfMonth,\n [`${COMPONENT_NAME.value}--last-day-of-month`]: props.lastDayOfMonth,\n },\n ]);\n\n function handleClick(e: MouseEvent) {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onClick?.(props.value, { e });\n }\n\n function handleMouseEnter() {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onMouseEnter?.(props.value);\n }\n\n return () => (\n \n
    {props.text}
    \n \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\n\nimport TDatePickerCell from './Cell';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport { parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { isArray } from 'lodash-es';\n\nimport type { TdDatePickerProps, DateMultipleValue } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n value: [String, Number, Array, Date],\n format: String,\n firstDayOfWeek: Number,\n multiple: Boolean,\n data: Array,\n time: String,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__table');\n const { globalConfig } = useConfig('datePicker');\n const { dayjsLocale } = globalConfig.value;\n\n const weekArr = computed(() => {\n const weekArr = [];\n let wi = props.firstDayOfWeek - 1;\n const len = globalConfig.value.weekdays.length;\n while (weekArr.length < len) {\n weekArr.push(globalConfig.value.weekdays[wi]);\n wi = (wi + len + 1) % len;\n }\n\n if (props.mode === 'week') weekArr.unshift(globalConfig.value.weekAbbreviation);\n\n return weekArr;\n });\n\n const showThead = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 高亮周区间\n const weekRowClass = (value: any, targetValue: Date) => {\n if (props.mode !== 'week' || !value) return {};\n\n if (isArray(value)) {\n if (!value.length) return {};\n const [startObj, endObj] = value.map((v) => v && parseToDayjs(v, props.format));\n const startYear = startObj && startObj.year();\n const startWeek = startObj?.locale?.(dayjsLocale)?.week?.();\n const endYear = endObj && endObj.year();\n const endWeek = endObj?.locale?.(dayjsLocale)?.week?.();\n\n const targetObj = parseToDayjs(targetValue, props.format);\n const targetYear = targetObj.year();\n const targetWeek = targetObj.week();\n const isActive =\n (targetYear === startYear && targetWeek === startWeek) || (targetYear === endYear && targetWeek === endWeek);\n const isRange =\n targetYear >= startYear && targetYear <= endYear && targetWeek > startWeek && targetWeek < endWeek;\n return {\n // 同年同周\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isActive,\n [`${COMPONENT_NAME.value}-${props.mode}-row--range`]: isRange,\n };\n }\n\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n parseToDayjs(value, props.format).locale(dayjsLocale).week() ===\n parseToDayjs(targetValue, props.format).locale(dayjsLocale).week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { range } from 'lodash-es';\nimport { padStart } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { panelColProps } from './props';\nimport { EPickerCols, TWELVE_HOUR_FORMAT, AM, PM, MERIDIEM_LIST } from '@tdesign/common-js/time-picker/const';\nimport { closestLookup, getPickerCols } from '@tdesign/common-js/time-picker/utils';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../../hooks/useConfig';\n\ndayjs.extend(customParseFormat);\n\nconst timeArr = [EPickerCols.hour, EPickerCols.minute, EPickerCols.second, EPickerCols.milliSecond];\n\nconst panelOffset = {\n top: 15,\n bottom: 21,\n};\n\nexport default defineComponent({\n name: 'TTimePickerPanelCol',\n props: {\n ...panelColProps(),\n position: String,\n triggerScroll: Boolean,\n onChange: Function,\n resetTriggerScroll: Function,\n isShowPanel: Boolean,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { STATUS } = useCommonClassName();\n\n const { steps, value, format, position, triggerScroll } = toRefs(props);\n\n const cols = ref>([]);\n const bodyRef = ref();\n const maskRef = ref(null);\n // 每个滚动列的ref 顺序不定 所以只要有5列标识即可\n const colsRef = reactive>({\n 0: null,\n 1: null,\n 2: null,\n 3: null,\n 4: null,\n 5: null,\n });\n\n const dayjsValue = computed(() => {\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n\n if (value.value) return dayjs(value.value, format.value);\n\n if (isStepsSet) return dayjs().hour(0).minute(0).second(0);\n\n return dayjs();\n });\n\n // 面板打开时 触发滚动 初始化面板\n watch(\n () => dayjsValue.value,\n () => {\n if (dayjsValue.value && value.value) updateTimeScrollPos(true);\n },\n );\n\n // 时间通过外部触发时 同样触发滚动\n watch(\n () => triggerScroll.value,\n () => {\n if (triggerScroll.value) {\n updateTimeScrollPos(true);\n }\n },\n );\n\n onMounted(() => {\n cols.value = getPickerCols(format.value);\n });\n\n // 获取每个时间的高度\n const getItemHeight = () => {\n const maskDom = maskRef.value?.querySelector('div');\n if (!maskDom) {\n return {\n offsetHeight: 0,\n margin: 0,\n };\n }\n return {\n offsetHeight: parseFloat(getComputedStyle(maskDom).height),\n margin: parseFloat(getComputedStyle(maskDom).marginTop),\n };\n };\n\n const timeItemCanUsed = (col: EPickerCols, el: string | number) => {\n const colIdx = timeArr.indexOf(col);\n if (colIdx !== -1) {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(el);\n return !props.disableTime?.(...params, { partial: position.value || 'start' })?.[col]?.includes(Number(el));\n }\n return true;\n };\n\n // 获取需要渲染的column\n const getColList = (col: EPickerCols) => {\n let count = 0;\n\n if (timeArr.includes(col)) {\n // hour、minute and second columns\n const colIdx = timeArr.indexOf(col);\n const colStep = steps.value[colIdx] || 1;\n\n if (col === EPickerCols.hour)\n count = TWELVE_HOUR_FORMAT.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) count = 999; // 毫秒最大为999\n else count = 59;\n\n const colList = range(0, count + 1, Number(colStep)).map((v) => padStart(String(v), 2, '0')) || [];\n return props.hideDisabledTime && !!props.disableTime\n ? colList.filter((t) => {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(t);\n return !props\n .disableTime?.(...params, { partial: position.value || 'start' })\n ?.[col]?.includes(Number(t));\n })\n : colList;\n }\n // meridiem column\n return MERIDIEM_LIST;\n };\n\n const getScrollDistance = (col: EPickerCols, time: number | string) => {\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value))\n // eslint-disable-next-line no-param-reassign\n (time as number) %= 12; // 一定是数字,直接cast\n\n const itemIdx = getColList(col).indexOf(padStart(String(time), 2, '0'));\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n const distance = Math.abs(Math.max(0, itemIdx) * timeItemTotalHeight);\n return distance;\n };\n\n const handleScroll = (col: EPickerCols, idx: number, e: MouseEvent) => {\n let val: number | string;\n let formattedVal: string;\n if (!props.isShowPanel) return;\n\n const scrollTop = (colsRef[idx]?.scrollTop || 0) + panelOffset.top;\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n let colStep = Math.abs(Math.round(scrollTop / timeItemTotalHeight + 0.5));\n\n const meridiem = MERIDIEM_LIST[Math.min(colStep - 1, 1)].toLowerCase(); // 处理PM、AM与am、pm\n\n if (Number.isNaN(colStep)) colStep = 1;\n if (timeArr.includes(col)) {\n // hour、minute、 second and milliSecond\n let max = 59;\n if (col === EPickerCols.hour) max = /[h]{1}/.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) max = 999; // 毫秒最大为999\n\n const colIdx = timeArr.indexOf(col);\n const availableArr = range(0, max + 1, Number(steps.value[colIdx]) || 1);\n val = closestLookup(\n availableArr,\n Number(getColList(col)[Math.min(colStep - 1, max + 1, availableArr.length - 1)]),\n Number(steps.value[colIdx]) || 1,\n );\n if (Number.isNaN(val)) val = availableArr[availableArr.length - 1];\n if (col === EPickerCols.hour && cols.value.includes(EPickerCols.meridiem) && dayjsValue.value.hour() >= 12) {\n // 如果是十二小时制需要再判断\n val = Number(val) + 12;\n }\n }\n // meridiem columns\n else val = meridiem;\n\n const distance = getScrollDistance(col, val);\n if (!dayjs(dayjsValue.value).isValid() || (value.value && !dayjs(value.value, format.value, true).isValid()))\n return;\n\n if (timeArr.includes(col)) {\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n if (timeItemCanUsed(col, val)) formattedVal = dayjsValue.value[col]?.(val).format(format.value);\n else formattedVal = dayjsValue.value.format(format.value);\n } else {\n const currentHour = dayjsValue.value.hour();\n if (meridiem === AM && currentHour >= 12) {\n formattedVal = dayjsValue.value.hour(currentHour - 12).format(format.value);\n } else if (meridiem === PM && currentHour < 12) {\n formattedVal = dayjsValue.value.hour(currentHour + 12).format(format.value);\n } else {\n formattedVal = dayjsValue.value.format(format.value);\n }\n }\n if (formattedVal !== value.value) props.onChange?.(formattedVal, e);\n\n if (distance !== scrollTop) {\n const scrollCtrl = colsRef[cols.value.indexOf(col)];\n\n if (!scrollCtrl || scrollCtrl.scrollTop === distance) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior: 'smooth',\n });\n }\n };\n\n const scrollToTime = (\n col: EPickerCols,\n time: number | string,\n idx: number,\n behavior: 'auto' | 'smooth' = 'auto',\n ) => {\n const distance = getScrollDistance(col, time);\n const scrollCtrl = colsRef[idx];\n if (!scrollCtrl || scrollCtrl.scrollTop === distance || !timeItemCanUsed(col, time)) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior,\n });\n };\n\n const handleTimeItemClick = (col: EPickerCols, el: string | number, idx: number, e: MouseEvent) => {\n if (!timeItemCanUsed(col, el)) return;\n if (timeArr.includes(col)) {\n if (\n col === EPickerCols.hour &&\n dayjsValue.value.format('a') === PM &&\n cols.value.includes(EPickerCols.meridiem)\n ) {\n // eslint-disable-next-line no-param-reassign\n el = Number(el) + 12;\n }\n scrollToTime(col, el, idx, 'smooth');\n } else {\n const currentHour = dayjsValue.value.hour();\n if (el === AM && currentHour >= 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour - 12).format(format.value), e);\n } else if (el === PM && currentHour < 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour + 12).format(format.value), e);\n }\n }\n };\n\n // update each columns scroll distance\n const updateTimeScrollPos = (isAutoScroll = false) => {\n const behavior = value.value && !isAutoScroll ? 'smooth' : 'auto';\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n nextTick(() => {\n cols.value.forEach((col: EPickerCols, idx: number) => {\n if (!isStepsSet || (isStepsSet && value.value)) {\n // 如果没有设置大于1的steps或设置了大于1的step 正常处理滚动\n scrollToTime(\n col,\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n timeArr.includes(col) ? dayjsValue.value[col]?.() : dayjsValue.value.format('a'),\n idx,\n behavior,\n );\n } else {\n // 否则初始化到每列第一个选项\n scrollToTime(col, getColList(col)?.[0], idx, behavior);\n }\n });\n });\n\n props.resetTriggerScroll();\n };\n\n const isCurrent = (col: EPickerCols, colItem: string | number) => {\n let colVal: number;\n if (col === EPickerCols.meridiem) {\n const currentMeridiem = dayjsValue.value.format('a');\n return currentMeridiem === colItem;\n }\n colVal = dayjsValue.value[col]?.();\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value)) {\n colVal %= 12;\n }\n return colVal === Number(colItem);\n };\n\n return () => (\n
    \n
    \n {/* 渲染遮罩层 */}\n {cols.value.map?.((col, idx) => (\n
    \n ))}\n
    \n {/* 渲染实际滚动列 */}\n {cols.value.map?.((col, idx) => (\n (colsRef[idx] = el as HTMLElement)}\n class={`${COMPONENT_NAME.value}-body-scroll`}\n onScroll={debounce((e) => handleScroll(col, idx, e), 50)}\n >\n {getColList(col).map((el) => (\n handleTimeItemClick(col, el, idx, e)}\n >\n {/* eslint-disable-next-line no-nested-ternary */}\n {timeArr.includes(col)\n ? TWELVE_HOUR_FORMAT.test(format.value) && col === EPickerCols.hour && el === '00'\n ? '12'\n : el\n : globalConfig.value[el === AM ? 'anteMeridiem' : 'postMeridiem']}\n \n ))}\n \n ))}\n
    \n );\n },\n});\n","import { defineComponent, toRefs, computed, ref, onMounted, nextTick, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isUndefined } from 'lodash-es';\n\nimport { DEFAULT_STEPS, DEFAULT_FORMAT } from '@tdesign/common-js/time-picker/const';\nimport { panelProps } from './props';\nimport SinglePanel from './single-panel';\nimport TButton from '../../button/button';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { TimePickerValue, TimeRangeValue } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePickerPanel',\n props: {\n ...panelProps(),\n isFooterDisplay: Boolean,\n handleConfirmClick: Function,\n onChange: Function,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { steps, isFooterDisplay, isShowPanel } = toRefs(props);\n const triggerScroll = ref(false);\n const panelRef = ref();\n const showNowTimeBtn = computed(() => !!steps.value.filter((step) => Number(step) > 1).length);\n\n const defaultValue = computed(() => {\n const isStepsSet = showNowTimeBtn.value;\n const formattedValue = dayjs(props.value, props.format);\n if (props.value && formattedValue.isValid()) {\n return formattedValue.format(props.format);\n }\n\n if (isStepsSet) {\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n }\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n });\n\n const panelColUpdate = () => {\n nextTick(() => {\n triggerScroll.value = true;\n });\n };\n\n const resetTriggerScroll = () => {\n triggerScroll.value = false;\n };\n const handlePresetClick = (\n presetValue: TimePickerValue | (() => TimePickerValue) | TimeRangeValue | (() => TimeRangeValue),\n ) => {\n const presetVal = typeof presetValue === 'function' ? presetValue() : presetValue;\n if (typeof props.activeIndex === 'number') {\n if (Array.isArray(presetVal)) {\n props.onChange?.(presetVal[props.activeIndex]);\n } else {\n log.error('TimePicker', `preset: ${props.presets} 预设值必须是数组!`);\n }\n } else {\n props.onChange?.(presetVal);\n }\n };\n\n const renderFooter = () => {\n if (!isUndefined(props.presets))\n return Object.keys(props.presets || []).map((key: string) => (\n handlePresetClick(props.presets[key])}\n >\n {key}\n \n ));\n return !showNowTimeBtn.value ? (\n props.onChange?.(dayjs().format(props.format))}\n >\n {globalConfig.value.now}\n \n ) : null;\n };\n\n // 渲染后执行update 使面板滚动至当前时间位置\n onMounted(() => {\n panelColUpdate();\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n panelColUpdate();\n },\n );\n\n return () => (\n
    \n
    \n \n
    \n {isFooterDisplay.value ? (\n \n ) : null}\n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '../../../hooks/useConfig';\nimport type { TdDatePickerProps } from '../../type';\n\nimport TDateHeader from '../base/Header';\nimport TDateTable from '../base/Table';\nimport TTimePickerPanel from '../../../time-picker/panel/time-picker-panel';\nimport { getDefaultFormat } from '@tdesign/common-js/date-picker/format';\n\nexport default defineComponent({\n name: 'TPanelContent',\n props: {\n mode: String as PropType,\n format: String as PropType,\n enableTimePicker: Boolean as PropType,\n timePickerProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n year: Number,\n month: Number,\n tableData: Array,\n time: String,\n multiple: Boolean,\n firstDayOfWeek: Number,\n partial: String,\n popupVisible: Boolean,\n onYearChange: Function,\n onMonthChange: Function,\n onJumperClick: Function,\n onCellMouseEnter: Function,\n onCellClick: Function,\n onCellMouseLeave: Function,\n onTimePickerChange: Function,\n value: [String, Number, Array, Date],\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n\n const { timeFormat } = getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n });\n\n const defaultTimeValue = '00:00:00';\n\n return () => (\n
    \n
    \n props.onMonthChange?.(val, { partial: props.partial })}\n onYearChange={(val: number) => props.onYearChange?.(val, { partial: props.partial })}\n onJumperClick={({ trigger }: { trigger: string }) =>\n props.onJumperClick?.({ trigger, partial: props.partial })\n }\n />\n\n \n props.onCellClick?.(date, { e, partial: props.partial })\n }\n onCellMouseEnter={(date: Date) => props.onCellMouseEnter?.(date, { partial: props.partial })}\n onCellMouseLeave={props.onCellMouseLeave}\n />\n
    \n\n {props.enableTimePicker && (\n
    \n
    {props.time || defaultTimeValue}
    \n \n
    \n )}\n
    \n );\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TButton from '../../../button';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n enableTimePicker: Boolean,\n presetsPlacement: String,\n presets: Object,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n selectedValue: [String, Number, Array, Date] as PropType,\n onPresetClick: Function,\n onConfirmClick: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__footer');\n const presetsClass = usePrefixClass('date-picker__presets');\n const { t, globalConfig } = useConfig('datePicker');\n\n const footerClass = computed(() => [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.presetsPlacement}`]);\n\n return () => (\n
    \n {\n
    \n {props.presets &&\n Object.keys(props.presets).map((key: string) => (\n \n props.onPresetClick?.(props.presets[key], { e, preset: { [key]: props.presets[key] } })\n }\n >\n {key}\n \n ))}\n
    \n }\n {props.enableTimePicker && props.needConfirm && (\n props.onConfirmClick?.({ e })}\n >\n {t(globalConfig.value.confirm)}\n \n )}\n
    \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\nimport TDateFooter from '../base/Footer';\n\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TExtraContent',\n props: {\n presets: Object as PropType,\n enableTimePicker: Boolean as PropType,\n presetsPlacement: String as PropType,\n needConfirm: { type: Boolean, default: true },\n onPresetClick: Function,\n onConfirmClick: Function,\n selectedValue: [String, Number, Array, Date] as PropType,\n },\n setup(props) {\n // 默认为 true\n const showPanelFooter = computed(() => (props.enableTimePicker && props.needConfirm) || props.presets);\n\n return () =>\n showPanelFooter.value ? (\n \n ) : null;\n },\n});\n","import { isObject } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../type';\nimport { isEnabledDate } from '@tdesign/common-js/date-picker/utils';\n\nexport interface disableDateProps {\n disableDate?: TdDatePickerProps['disableDate'] | TdDateRangePickerProps['disableDate'];\n format?: TdDatePickerProps['format'];\n mode?: TdDatePickerProps['mode'];\n start?: Date;\n end?: Date;\n}\n\nexport function useDisableDate(props: disableDateProps) {\n const { disableDate, format, mode, start, end } = props;\n\n return {\n disableDate: (value: Date) => !isEnabledDate({ disableDate, format, mode, value }),\n minDate:\n isObject(disableDate) && 'before' in disableDate\n ? new Date(dayjs(disableDate.before).startOf('day').format())\n : start,\n maxDate:\n isObject(disableDate) && 'after' in disableDate ? new Date(dayjs(disableDate.after).endOf('day').format()) : end,\n };\n}\n","import { ref, toRefs, watchEffect, computed } from 'vue';\nimport useVModel from '../../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n initYearMonthTime,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n // warning invalid value\n if (!isArray(value.value)) {\n console.error(`typeof value: ${value.value} must be Array!`);\n } else if (!isValidDate(value.value, formatRef.value.format)) {\n console.error(\n `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n );\n }\n\n const isFirstValueSelected = ref(false); // 记录面板点击次数,两次后才自动关闭\n const time = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n timeFormat: formatRef.value.timeFormat,\n }).time,\n );\n const month = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n }).month,\n );\n const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = [];\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n time.value = formatTime(\n value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n });\n\n return {\n year,\n month,\n value,\n time,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { ref, computed, watch } from 'vue';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\nimport { omit } from 'lodash-es';\n\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nimport { TdDateRangePickerProps, DateValue, DateRangePickerPartial } from '../type';\nimport { isValidDate, formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useRangeValue } from './useRangeValue';\n\nexport const PARTIAL_MAP: Record<'first' | 'second', DateRangePickerPartial> = { first: 'start', second: 'end' };\n\nexport function useRange(props: TdDateRangePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n const { globalConfig } = useConfig('datePicker');\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isMountedRef = ref(false);\n const inputRef = ref();\n\n const { value, onChange, time, month, year, cacheValue, isFirstValueSelected } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n const activeIndex = ref<0 | 1>(0); // 确定当前选中的输入框序号\n const inputValue = ref(formatDate(props.value, { format: formatRef.value.format })); // 未真正选中前可能不断变更输入框的内容\n const isReadOnly = useReadonly();\n\n // input 设置\n const rangeInputProps = computed(() => ({\n ...props.rangeInputProps,\n size: props.size,\n ref: inputRef,\n borderless: props.borderless,\n clearable: props.clearable && !isReadOnly.value,\n prefixIcon: () => renderTNodeJSX('prefixIcon'),\n readonly: isReadOnly.value || !props.allowInput,\n separator: props.separator || globalConfig.value.rangeSeparator,\n placeholder:\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode],\n activeIndex: popupVisible.value ? activeIndex.value : undefined,\n suffixIcon: () => {\n return renderTNodeJSX('suffixIcon') || ;\n },\n class: {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n onClick: ({ position }: any) => {\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n onClear: ({ e }: { e: MouseEvent }) => {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: [], trigger: 'clear' });\n },\n onBlur: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onBlur?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n },\n onFocus: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onFocus?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n inputValue.value = newVal;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(newVal, formatRef.value.format)) return;\n cacheValue.value = newVal;\n const newYear: Array = [];\n const newMonth: Array = [];\n const newTime: Array = [];\n newVal.forEach((v) => {\n newYear.push(parseToDayjs(v, formatRef.value.format).year());\n newMonth.push(parseToDayjs(v, formatRef.value.format).month());\n newTime.push(parseToDayjs(v, formatRef.value.format).format(formatRef.value.timeFormat));\n });\n year.value = newYear;\n month.value = newMonth;\n time.value = newTime;\n },\n onEnter: (newVal: string[]) => {\n if (!isValidDate(newVal, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(newVal, formatRef.value.format)) {\n onChange?.(\n formatDate(newVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: newVal.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = [];\n }\n },\n }));\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value.focus({ position: indexMap[activeIndex.value] });\n popupVisible.value = true;\n return;\n }\n\n popupVisible.value = visible;\n },\n }));\n\n // 输入框响应 value 变化\n watch(\n value,\n (value) => {\n if (!value) {\n inputValue.value = [];\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n },\n {\n immediate: true,\n },\n );\n\n // activeIndex 变化自动 focus 对应输入框\n watch(\n activeIndex,\n (index) => {\n if (!isMountedRef.value) {\n isMountedRef.value = true;\n return;\n }\n if (!popupVisible.value) return;\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value?.focus?.({ position: indexMap[index] });\n },\n {\n immediate: true,\n },\n );\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n isHoverCell,\n activeIndex,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { useConfig } from '../../hooks/useConfig';\n\nimport { getWeeks, getYears, getMonths, getQuarters, flagActive } from '@tdesign/common-js/date-picker/utils';\n\nexport function useTableData(props: any) {\n // 国际化文本初始化\n const { globalConfig } = useConfig('datePicker');\n\n const options = {\n minDate: props.minDate,\n maxDate: props.maxDate,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek,\n monthLocal: globalConfig.value.months as string[],\n quarterLocal: globalConfig.value.quarters as string[],\n showWeekOfYear: props.mode === 'week',\n dayjsLocale: globalConfig.value.dayjsLocale,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n };\n\n let data: Array = [];\n if (props.mode === 'date') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'week') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'quarter') {\n data = getQuarters(props.year, options);\n } else if (props.mode === 'month') {\n data = getMonths(props.year, options);\n } else if (props.mode === 'year') {\n data = getYears(props.year, options);\n }\n return flagActive(data, {\n start: props.start,\n end: props.end,\n hoverStart: props.hoverStart,\n hoverEnd: props.hoverEnd,\n type: props.mode,\n isRange: props.isRange,\n value: props.value,\n multiple: props.multiple,\n });\n}\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from '../../type';\n\nexport default defineComponent({\n name: 'TSinglePanel',\n props: {\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: [String, Number, Array, Date] as PropType,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n enableTimePicker: Boolean,\n firstDayOfWeek: Number,\n year: Number,\n month: Number,\n time: String,\n popupVisible: Boolean,\n multiple: Boolean,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n onPanelClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n }),\n );\n const tableData = computed(() =>\n useTableData({\n year: props.year,\n month: props.month,\n mode: props.mode,\n start: props.value\n ? parseToDayjs(\n props.multiple ? (props.value as DateMultipleValue)[0] : (props.value as DateValue),\n format.value,\n ).toDate()\n : undefined,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n multiple: props.multiple,\n value: props.value,\n ...disableDateOptions.value,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n value: props.value,\n mode: props.mode,\n year: props.year,\n month: props.month,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n tableData: tableData.value,\n popupVisible: props.popupVisible,\n multiple: props.multiple,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n time: props.time,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n const extraProps = computed(() => ({\n presets: props.presets,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n onPresetClick: props.onPresetClick,\n onConfirmClick: props.onConfirmClick,\n selectedValue: props.value,\n needConfirm: props.needConfirm,\n }));\n\n return () => (\n props.onPanelClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? : null}\n \n {['bottom', 'right'].includes(props.presetsPlacement) ? : null}\n
    \n );\n },\n});\n","import { defineComponent, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction, isDate } from 'lodash-es';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useSingle } from './hooks/useSingle';\nimport { parseToDayjs, getDefaultFormat, formatTime, formatDate } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj, covertToDate, isSame } from '@tdesign/common-js/date-picker/utils';\nimport props from './props';\nimport TSelectInput from '../select-input';\nimport TSinglePanel from './components/panel/SinglePanel';\nimport { useReadonly } from '../hooks/useReadonly';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from './type';\nimport type { TagInputRemoveContext } from '../tag-input';\n\nexport default defineComponent({\n name: 'TDatePicker',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n\n const {\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n isHoverCell,\n cacheValue,\n value,\n year,\n month,\n time,\n inputRef,\n onChange,\n } = useSingle(props);\n\n const disabled = useDisabled();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('datePicker');\n const isReadOnly = useReadonly();\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n const valueDisplayParams = computed(() => {\n return {\n value: value.value,\n displayValue: inputValue.value,\n };\n });\n\n watch(popupVisible, (visible) => {\n // 多选不考虑输入情况\n if (props.multiple) return;\n // 如果不需要确认,直接保存当前值\n if (!props.needConfirm && props.enableTimePicker && !visible) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n }\n\n // 格式化 input 值\n const dateValue =\n // Date 属性、季度和周不再 parse,避免 dayjs 处理成 Invalid\n value.value && !isDate(value.value) && !['week', 'quarter'].includes(props.mode)\n ? covertToDate(value.value as string, formatRef.value?.valueType)\n : value.value;\n\n cacheValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n inputValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n\n // 面板展开重置数据\n if (visible) {\n year.value = parseToDayjs(value.value as DateValue, formatRef.value.valueType).year();\n month.value = parseToDayjs(value.value as DateValue, formatRef.value.format).month();\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n } else {\n isHoverCell.value = false;\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n if (props.multiple) return;\n\n isHoverCell.value = true;\n inputValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n if (props.multiple) return;\n\n isHoverCell.value = false;\n inputValue.value = formatDate(cacheValue.value, {\n format: formatRef.value.format,\n });\n }\n\n // 日期点击\n function onCellClick(date: Date) {\n isHoverCell.value = false;\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n } else {\n if (props.multiple) {\n const newDate = processDate(date);\n onChange(newDate, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n return;\n }\n\n onChange?.(\n formatDate(date, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n },\n );\n popupVisible.value = false;\n }\n\n props.onPick?.(date);\n }\n\n function processDate(date: Date) {\n let isSameDate: boolean;\n const currentValue = (value.value || []) as DateMultipleValue;\n const { dayjsLocale } = globalConfig.value;\n\n let currentDate: DateMultipleValue;\n if (props.mode !== 'week')\n isSameDate = currentValue.some((val) =>\n isSame(parseToDayjs(val, formatRef.value.format).toDate(), date, props.mode, dayjsLocale),\n );\n else {\n isSameDate = currentValue.some((val) => val === dayjs(date).locale(dayjsLocale).format(formatRef.value.format));\n }\n\n if (!isSameDate) {\n currentDate = currentValue.concat(\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n } else {\n currentDate = currentValue.filter(\n (val) =>\n formatDate(val, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }) !==\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n }\n return currentDate;\n }\n\n function onTagRemoveClick(ctx: TagInputRemoveContext) {\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { TdDatePickerProps, DateValue } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n parseToDayjs,\n} from '@tdesign/common-js/date-picker/format';\nimport { useSingleValue } from './useSingleValue';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport function useSingle(props: TdDatePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n const disabled = useDisabled();\n\n const inputRef = ref();\n const isReadOnly = useReadonly();\n\n const { value, onChange, time, month, year, cacheValue } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n // 未真正选中前可能不断变更输入框的内容\n const inputValue = ref(\n props.multiple\n ? formatDate(value.value, { format: formatRef.value.format }) || []\n : formatDate(value.value, { format: formatRef.value.format }),\n );\n\n // input 设置\n const inputProps = computed(() => {\n const defaultInputProps = {\n ...props.inputProps,\n size: props.size,\n ref: inputRef,\n readonly: isReadOnly.value || !props.allowInput,\n class: [\n {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n ],\n onClear: (context: { e: InputEvent }) => {\n context?.e?.stopPropagation();\n popupVisible.value = false;\n onChange?.('', { dayjsValue: dayjs(), trigger: 'clear' });\n },\n };\n return props.multiple\n ? defaultInputProps\n : {\n ...defaultInputProps,\n onBlur: (val: string, context: { e: FocusEvent }) => {\n props.onBlur?.({ value: val, e: context.e });\n },\n onFocus: (_: string, { e }: { e: FocusEvent }) => {\n props.onFocus?.({ value: value.value, e });\n },\n onChange: (val: string) => {\n // 输入事件\n inputValue.value = val;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(val, formatRef.value.format)) return;\n cacheValue.value = val;\n const newMonth = parseToDayjs(val, formatRef.value.format).month();\n const newYear = parseToDayjs(val, formatRef.value.format).year();\n const newTime = formatTime(val, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n !Number.isNaN(newYear) && (year.value = newYear);\n !Number.isNaN(newMonth) && (month.value = newMonth);\n !Number.isNaN(newTime) && (time.value = newTime);\n },\n onEnter: (val: string) => {\n if (!val) {\n onChange('', { dayjsValue: dayjs(), trigger: 'enter' });\n popupVisible.value = false;\n return;\n }\n\n if (!isValidDate(val, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(val, formatRef.value.format)) {\n onChange?.(\n formatDate(val, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(val, formatRef.value.format),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = '';\n }\n },\n };\n });\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n disabled: disabled.value,\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (disabled.value) return;\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n popupVisible.value = true;\n return;\n }\n popupVisible.value = visible;\n },\n }));\n\n watch(value, (value) => {\n if (!value) {\n inputValue.value = '';\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.format,\n });\n });\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n inputRef,\n cacheValue,\n isHoverCell,\n onChange,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { useSingleValue } from './hooks/useSingleValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport type {\n DateValue,\n TdDatePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport datePickerPanelProps from './date-picker-panel-props';\nimport datePickerProps from './props';\n\nimport TSinglePanel from './components/panel/SinglePanel';\n\nexport default defineComponent({\n name: 'TDatePickerPanel',\n props: {\n value: datePickerProps.value,\n defaultValue: datePickerProps.defaultValue,\n modelValue: datePickerProps.modelValue,\n disabled: datePickerProps.disabled,\n disableDate: datePickerProps.disableDate,\n enableTimePicker: datePickerProps.enableTimePicker,\n firstDayOfWeek: datePickerProps.firstDayOfWeek,\n format: datePickerProps.format,\n mode: datePickerProps.mode,\n presets: datePickerProps.presets,\n presetsPlacement: datePickerProps.presetsPlacement,\n timePickerProps: datePickerProps.timePickerProps,\n ...datePickerPanelProps,\n },\n\n setup(props: TdDatePickerPanelProps) {\n const { cacheValue, value, year, month, time, onChange } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({ date, e });\n\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, { format: formatRef.value.format });\n } else {\n onChange?.(formatDate(date, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: 'prev' | 'next' | 'current' }) {\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n if (year.value !== nextYear) {\n props.onYearChange?.({\n year: nextYear,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value !== nextMonth) {\n props.onMonthChange?.({\n month: nextMonth,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timepicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(cacheValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(cacheValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n cacheValue.value = formatDate(nextDate, { format: formatRef.value.format });\n\n props.onTimeChange?.({\n time: val,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n onChange?.(\n formatDate(cacheValue.value, {\n format: formatRef.value.format,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(cacheValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n props.onConfirm?.({ date: dayjs(cacheValue.value as string).toDate(), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n const presetVal = isFunction(preset) ? preset() : preset;\n onChange?.(formatDate(presetVal, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n });\n props.onPresetClick?.(context);\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n\n props.onYearChange?.({\n year: year.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n\n props.onMonthChange?.({\n month: month.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value as string,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 默认的日期选择交互是根据点击前后日期的顺序来决定并且会加以限制。比如:用户先点击开始时间输入框,选择了一个日期例如2020-05-15,紧接着交互会自动将焦点跳到结束日期输入框,等待用户选择结束时间。此时用户只能选择大于2020-05-15的日期(之前的日期会被灰态禁止点击,限制用户的点击)。当该值传递`true`时,则取消该限制 */\n cancelRangeSelectLimit: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。{ from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。{ before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDateRangePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: '',\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDateRangePickerProps['mode'],\n validator(val: TdDateRangePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 决定在日期时间区间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为 `true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 在开始日期选中之前,面板是否显示预选状态,即是否高亮预选日期 */\n panelPreselection: {\n type: Boolean,\n default: true,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:{ '特定日期范围': ['2021-01-01', '2022-01-01'], '本月': [dayjs().startOf('month'), dayjs().endOf('month')] } */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDateRangePickerProps['presetsPlacement'],\n validator(val: TdDateRangePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 日期分隔符,支持全局配置,默认为 '-' */\n separator: {\n type: String,\n default: '',\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDateRangePickerProps['size'],\n validator(val: TdDateRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDateRangePickerProps['status'],\n validator(val: TdDateRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultValue'] => [],\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式 */\n valueType: {\n type: String as PropType,\n validator(val: TdDateRangePickerProps['valueType']): boolean {\n if (!val) return true;\n return [\n 'time-stamp',\n 'Date',\n 'YYYY',\n 'YYYY-MM',\n 'YYYY-MM-DD',\n 'YYYY-MM-DD HH',\n 'YYYY-MM-DD HH:mm',\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DD HH:mm:ss:SSS',\n ].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框数据发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 选中日期时触发,可能是开始日期,也可能是结束日期,第二个参数可以区分是开始日期或是结束日期 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 输入框高亮状态序号 */\n activeIndex: {\n type: Number,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用范围输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式 */\n format: {\n type: [Array, Function] as PropType,\n },\n /** 透传 Input 输入框组件全部属性,数组第一项表示第一个输入框属性,第二项表示第二个输入框属性。示例:`[{ label: 'A', name: 'A-name' }, { label: 'B', name: 'B-name' }]` */\n inputProps: {\n type: [Object, Array] as PropType,\n },\n /** 左侧内容 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,示例:'请输入' 或者 ['开始日期', '结束日期'] */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 范围分隔符 */\n separator: {\n type: [String, Function] as PropType,\n default: '-' as TdRangeInputProps['separator'],\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRangeInputProps['size'],\n validator(val: TdRangeInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputProps['status'],\n validator(val: TdRangeInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 范围输入框的值 */\n value: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n /** 范围输入框的值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdRangeInputProps['defaultValue'] => [],\n },\n /** 范围输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 范围输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 范围输入框点击时触发 */\n onClick: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, computed, Fragment } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\n\nimport Input from '../input';\nimport props from './props';\nimport { RangeInputValue, RangeInputPosition } from './type';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isArray } from 'lodash-es';\n\nfunction calcArrayValue(value: unknown | Array) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nexport default defineComponent({\n name: 'TRangeInput',\n inheritAttrs: false,\n props,\n setup(props, { expose, attrs }) {\n const { value, modelValue } = toRefs(props);\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('range-input');\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const focused = ref(false);\n const isHover = ref(false);\n const format = computed(() => calcArrayValue(props.format));\n const inputProps = computed(() => calcArrayValue(props.inputProps));\n const placeholder = computed(() => calcArrayValue(props.placeholder));\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const inputValue = computed(() => String((innerValue.value?.[0] || innerValue.value?.[1]) ?? ''));\n\n const isShowClearIcon = computed(\n () =>\n ((props.clearable && inputValue.value?.length && !isDisabled.value) || props.showClearIconOnEmpty) &&\n isHover.value,\n );\n\n const inputRefs = {\n firstInputRef: ref(),\n secondInputRef: ref(),\n };\n\n function handleClear(context: { e: MouseEvent }) {\n props.onClear?.(context);\n setInnerValue(['', ''], { ...context, trigger: 'clear', position: 'all' });\n }\n\n function handleEnter(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n props.onEnter?.(rangeValue, context);\n }\n\n function handleFocus(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = true;\n props.onFocus?.(rangeValue, context);\n }\n\n function handleBlur(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = false;\n props.onBlur?.(rangeValue, context);\n }\n\n function handleMouseEnter(e: MouseEvent) {\n isHover.value = true;\n props?.onMouseenter?.({ e });\n }\n\n function handleMouseLeave(e: MouseEvent) {\n isHover.value = false;\n props?.onMouseleave?.({ e });\n }\n\n expose({\n firstInputElement: inputRefs.firstInputRef.value,\n secondInputElement: inputRefs.secondInputRef.value,\n focus: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.focus();\n },\n blur: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.blur();\n },\n select: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.select();\n },\n });\n\n return () => {\n const labelContent = renderTNodeJSX('label');\n const prefixIconContent = renderTNodeJSX('prefixIcon');\n const suffixContent = renderTNodeJSX('suffix');\n const suffixIconContent = renderTNodeJSX('suffixIcon');\n const tips = renderTNodeJSX('tips');\n const separator = renderTNodeJSX('separator');\n\n const RangeInputContent = (\n \n
    \n {prefixIconContent &&
    {prefixIconContent}
    }\n {labelContent ?
    {labelContent}
    : null}\n props.onClick?.({ e, position: 'first' })}\n onClear={() => setInnerValue([], { position: 'first', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([val, innerValue.value?.[1]], { e, position: 'first', trigger: 'input' })\n }\n {...inputProps.value[0]}\n />\n\n
    {separator}
    \n\n props.onClick?.({ e, position: 'second' })}\n onClear={() => setInnerValue([], { position: 'second', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([innerValue.value?.[0], val], { e, position: 'second', trigger: 'input' })\n }\n {...inputProps.value[1]}\n />\n {suffixContent ?
    {suffixContent}
    : null}\n {(suffixIconContent || isShowClearIcon.value) && (\n \n {isShowClearIcon.value ? (\n \n ) : (\n suffixIconContent\n )}\n \n )}\n
    \n \n );\n\n const tipsClasses = [\n `${COMPONENT_NAME.value}__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${props.status}`,\n ];\n return (\n \n {RangeInputContent}\n {tips &&
    {tips}
    }\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputPopupProps } from '../range-input/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否禁用范围输入框,值为数组表示可分别控制某一个输入框是否禁用 */\n disabled: Boolean,\n /** 输入框的值 */\n inputValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputPopupProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: Array as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 透传 RangeInput 组件全部属性 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputPopupProps['status'],\n validator(val: TdRangeInputPopupProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport Popup from '../popup';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport RangeInput from './range-input';\nimport props from './range-input-popup-props';\nimport { useOverlayInnerStyle } from '../select-input/hooks/useOverlayInnerStyle';\nimport { TdRangeInputPopupProps } from './type';\n\nexport default defineComponent({\n name: 'TRangeInputPopup',\n props,\n setup(props: TdRangeInputPopupProps) {\n const COMPONENT_NAME = usePrefixClass('range-input-popup');\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const popupClasses = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--visible`]: props.popupVisible || innerPopupVisible.value,\n },\n ]);\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import _RangeInput from './range-input';\nimport _RangeInputPopup from './range-input-popup';\nimport withInstall from '../utils/withInstall';\nimport { TdRangeInputProps, TdRangeInputPopupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type RangeInputProps = TdRangeInputProps;\nexport type RangeInputPopupProps = TdRangeInputPopupProps;\n\nexport const RangeInput = withInstall(_RangeInput);\nexport const RangeInputPopup = withInstall(_RangeInputPopup);\n\nexport default RangeInput;\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { TdDateRangePickerProps } from '../../type';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nexport default defineComponent({\n name: 'TRangePanel',\n props: {\n hoverValue: Array as PropType>,\n activeIndex: Number,\n isFirstValueSelected: Boolean,\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: Array as PropType>,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n popupVisible: Boolean,\n enableTimePicker: Boolean,\n panelPreselection: Boolean,\n firstDayOfWeek: Number,\n year: Array as PropType>,\n month: Array as PropType>,\n time: Array as PropType>,\n cancelRangeSelectLimit: Boolean,\n onClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n // 是否隐藏预选状态,只有 value 有值的时候需要隐藏\n const hidePreselection = !props.panelPreselection && props.value.length === 2;\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n start:\n props.isFirstValueSelected && props.activeIndex === 1\n ? new Date(parseToDayjs(props.value[0], format.value, 'start').toDate().setHours(0, 0, 0))\n : undefined,\n end:\n props.isFirstValueSelected && props.activeIndex === 0\n ? new Date(parseToDayjs(props.value[1], format.value).toDate().setHours(23, 59, 59))\n : undefined,\n }),\n );\n\n const startTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[0],\n month: props.month[0],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const endTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[1],\n month: props.month[1],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n\n popupVisible: props.popupVisible,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n return () => (\n props.onClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? (\n \n ) : null}\n
    \n {!props.enableTimePicker ? (\n [\n ,\n ,\n ]\n ) : (\n \n )}\n
    \n {['bottom', 'right'].includes(props.presetsPlacement) ? (\n \n ) : null}\n \n );\n },\n});\n","// 用于头部日期切换修正\nexport function dateCorrection(\n partialIndex: number,\n preYear: Array,\n preMonth: Array,\n onlyYearSelect: boolean,\n) {\n let nextYear = preYear;\n const nextMonth = preMonth;\n if (partialIndex === 0) {\n if (nextYear[1] <= nextYear[0]) {\n if (onlyYearSelect) nextYear[1] = nextYear[0] + 1;\n else {\n // eslint-disable-next-line prefer-destructuring\n nextYear[1] = nextYear[0];\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n nextYear = [nextYear[0], nextYear[1] + 1];\n }\n }\n }\n }\n }\n\n // 保证左侧时间不大于右侧\n if (partialIndex === 1) {\n if (nextYear[0] >= nextYear[1]) {\n // 年/季度/月份场景下,头部只有年选择器,直接 - 1\n if (onlyYearSelect) nextYear[0] = nextYear[1] - 1;\n else {\n // eslint-disable-next-line prefer-destructuring\n nextYear[0] = nextYear[1];\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] = nextMonth[1] - 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n nextYear = [nextYear[0] - 1, nextYear[1]];\n }\n }\n }\n }\n }\n return { nextYear, nextMonth };\n}\n","import { defineComponent, computed, ref, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport props from './date-range-picker-props';\nimport { DateValue, DateRangePickerPartial } from './type';\n\nimport { RangeInputPopup as TRangeInputPopup } from '../range-input';\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRange } from './hooks/useRange';\nimport {\n parseToDayjs,\n formatTime,\n formatDate,\n isValidDate,\n getDefaultFormat,\n initYearMonthTime,\n} from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TDateRangePicker',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n\n const {\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n value,\n year,\n month,\n time,\n cacheValue,\n activeIndex,\n isHoverCell,\n isFirstValueSelected,\n onChange,\n } = useRange(props);\n\n const disabled = useDisabled();\n const isReadOnly = useReadonly();\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n valueType: props.valueType,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n\n watch(popupVisible, (visible) => {\n // 面板展开重置数据\n if (visible) {\n isSelected.value = false;\n cacheValue.value = formatDate(value.value || [], {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n }) as string[];\n time.value = formatTime(\n value.value || [dayjs().format(formatRef.value.timeFormat), dayjs().format(formatRef.value.timeFormat)],\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n\n // 空数据重置为当前年月\n if (!value.value.length) {\n const { year: defaultYear, month: defaultMonth } = initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n });\n year.value = defaultYear;\n month.value = defaultMonth;\n } else if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if ((props.mode === 'month' || props.mode === 'quarter') && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n } else {\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).year());\n if (year.value.length === 1) year.value = [year.value[0], year.value[0]];\n\n month.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n if (month.value.length === 1) month.value = [month.value[0], Math.min(month.value[0] + 1, 11)];\n }\n } else {\n activeIndex.value = 0;\n isHoverCell.value = false;\n isFirstValueSelected.value = false;\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n inputValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n inputValue.value = cacheValue.value;\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent; partial: DateRangePickerPartial }) {\n props.onPick?.(date, { e, partial: activeIndex.value ? 'end' : 'start' });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 确保两端都是有效值\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else {\n popupVisible.value = false;\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger, partial }: { trigger: string; partial: DateRangePickerPartial }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n const nextInputValue = [...(inputValue.value as DateValue[])];\n const changedInputValue = nextInputValue[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n inputValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n props?.onConfirm?.({\n date: nextValue.map((v) => dayjs(v).toDate()),\n e,\n partial: activeIndex.value ? 'end' : 'start',\n });\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else if (nextValue.length === 2) {\n popupVisible.value = false;\n }\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n popupVisible.value = false;\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n let nextMonth = [...month.value];\n\n nextYear[partialIndex] = nextVal;\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? inputValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n isFirstValueSelected: isFirstValueSelected.value,\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n panelPreselection: props.panelPreselection,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => (\n
    \n }\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerPanelProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, onMounted } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport dateRangePickerPanelProps from './date-range-picker-panel-props';\nimport dateRangePickerProps from './date-range-picker-props';\nimport {\n DateValue,\n DateRangePickerPartial,\n TdDateRangePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRangeValue } from './hooks/useRangeValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePickerPanel',\n props: {\n value: dateRangePickerProps.value,\n defaultValue: dateRangePickerProps.defaultValue,\n modelValue: dateRangePickerProps.modelValue,\n disabled: dateRangePickerProps.disabled,\n disableDate: dateRangePickerProps.disableDate,\n enableTimePicker: dateRangePickerProps.enableTimePicker,\n firstDayOfWeek: dateRangePickerProps.firstDayOfWeek,\n format: dateRangePickerProps.format,\n mode: dateRangePickerProps.mode,\n presets: dateRangePickerProps.presets,\n presetsPlacement: dateRangePickerProps.presetsPlacement,\n timePickerProps: dateRangePickerProps.timePickerProps,\n panelPreselection: dateRangePickerProps.panelPreselection,\n ...dateRangePickerPanelProps,\n },\n\n setup(props: TdDateRangePickerPanelProps) {\n const { value, year, month, time, cacheValue, isFirstValueSelected, onChange } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n const isHoverCell = ref(false);\n const hoverValue = ref([]);\n const activeIndex = computed(() => (isFirstValueSelected.value ? 1 : 0));\n\n onMounted(() => {\n if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if (['month', 'quarter'].includes(props.mode) && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(hoverValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n hoverValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n hoverValue.value = cacheValue.value as string[];\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({\n e,\n partial: activeIndex.value ? 'end' : 'start',\n date: value.value.map((v) => dayjs(v).toDate()),\n });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(cacheValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n }\n\n // 头部快速切换\n function onJumperClick({\n trigger,\n partial,\n }: {\n trigger: 'prev' | 'next' | 'current';\n partial: DateRangePickerPartial;\n }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n if (year.value.some((y) => !nextYear.includes(y))) {\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value.some((m) => !nextMonth.includes(m))) {\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n const nextInputValue = [...(cacheValue.value as DateValue[])];\n // @ts-ignore\n const changedInputValue = cacheValue.value[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n\n props.onTimeChange?.({\n time: val,\n date: value.value.map((v) => parseToDayjs(v, formatRef.value.format).toDate()),\n partial: activeIndex.value ? 'end' : 'start',\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(cacheValue.value as string[])];\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n year.value = nextValue.map((v) => dayjs(v, formatRef.value.format).year());\n month.value = nextValue.map((v) => dayjs(v, formatRef.value.format).month());\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n\n props.onConfirm?.({ date: value.value.map((v) => dayjs(v).toDate()), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = nextVal;\n let nextMonth = [...month.value];\n // 年/季度/月份场景下,头部只有年选择器\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? hoverValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n panelPreselection: props.panelPreselection,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","import _DatePicker from './DatePicker';\nimport _DatePickerPanel from './DatePickerPanel';\nimport _DateRangePicker from './DateRangePicker';\nimport _DateRangePickerPanel from './DateRangePickerPanel';\nimport withInstall from '../utils/withInstall';\nimport { TdDatePickerProps, TdDateRangePickerProps, TdDatePickerPanelProps, TdDateRangePickerPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DatePickerProps = TdDatePickerProps;\n\nexport interface DatePickerPanelProps extends TdDatePickerPanelProps, Pick {}\n\nexport type DateRangePickerProps = TdDateRangePickerProps;\nexport interface DateRangePickerPanelProps\n extends TdDateRangePickerPanelProps,\n Pick {}\n\nexport const DatePicker = withInstall(_DatePicker);\nexport const DatePickerPanel = withInstall(_DatePickerPanel);\nexport const DateRangePicker = withInstall(_DateRangePicker);\nexport const DateRangePickerPanel = withInstall(_DateRangePickerPanel);\n\nexport default DatePicker;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.max(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n if (options.strictMode && input.length !== options.format.length) return false;\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (!dateWord || !formatWord || dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isBoolean } from 'lodash-es';\nimport { isObject } from 'lodash-es';\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\nimport { isEmpty } from 'lodash-es';\nimport isURL from 'validator/lib/isURL';\nimport { isNumber } from 'lodash-es';\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\nimport {\n CustomValidator,\n FormRule,\n ValueType,\n AllValidateResult,\n ValidateResultType,\n CustomValidateResolveType,\n} from '../type';\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空; 0 和 false 被认为是正常数据,部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n const type: string = Object.prototype.toString.call(val);\n const typeMap: Record = {\n Date: '[object Date]',\n };\n if (type === typeMap.Date) {\n return false;\n }\n return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n date: isDate,\n url: isURL,\n email: isEmail,\n required: (val: ValueType): boolean => !isValueEmpty(val),\n whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n boolean: (val: ValueType): boolean => isBoolean(val),\n max: (val: ValueType, num: number): boolean => (isNumber(val) ? val <= num : getCharacterLength(val) <= num),\n min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= num),\n len: (val: ValueType, num: number): boolean => getCharacterLength(String(val)) === num,\n number: (val: ValueType): boolean => isNumber(val),\n enum: (val: ValueType, strs: Array): boolean => strs.includes(val),\n idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n pattern: (val: ValueType, regexp: RegExp): boolean => regexp.test(val),\n // 自定义校验规则,可能是异步校验\n validator: (val: ValueType, validate: CustomValidator): ReturnType => validate(val),\n};\n\nexport type ValidateFuncType = typeof VALIDATE_MAP[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise {\n let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n const keys = Object.keys(rule) as (keyof FormRule)[];\n let vOptions: undefined | FormRule[keyof FormRule];\n let vValidateFun: ValidateFuncType;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // 非必填选项,值为空,非自定义规则:无需校验,直接返回 true\n if (!rule.required && isValueEmpty(value) && !rule.validator) {\n return validateResult;\n }\n\n const validateRule: ValidateFuncType = VALIDATE_MAP[key as keyof typeof VALIDATE_MAP];\n // 找到一个校验规则,则无需再找,因为参数只允许对一个规则进行校验\n if (validateRule && (rule[key] || rule[key] === 0)) {\n // rule 值为 true 则表示没有校验参数,只是对值进行默认规则校验\n vOptions = rule[key] === true ? undefined : rule[key];\n vValidateFun = validateRule;\n break;\n }\n }\n if (vValidateFun) {\n // @ts-ignore\n validateResult = await vValidateFun(value, vOptions);\n // 如果校验不通过,则返回校验不通过的规则\n if (isBoolean(validateResult)) {\n return { ...rule, result: validateResult };\n }\n // 校验结果为 CustomValidateObj,只有自定义校验规则会存在这种情况\n if (isObject(validateResult)) {\n return validateResult;\n }\n }\n return validateResult;\n}\n\n// 单个数据进行全规则校验,校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array): Promise {\n const all = rules.map((rule) => validateOneRule(value, rule));\n const r = await Promise.all(all);\n return r;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation\n max_allowed_length will be ignored if this is set as false\nmax_allowed_length - if set isURL will not allow URLs longer than max_allowed_length\n default is 2084 that IE maximum URL length\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true,\n max_allowed_length: 2084\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length > options.max_allowed_length) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return (0, _checkHost.default)(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormItemProps } from '../form/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** label 原生属性 */\n for: {\n type: String,\n default: '',\n },\n /** 表单项说明内容 */\n help: {\n type: [String, Function] as PropType,\n },\n /** 字段标签名称 */\n label: {\n type: [String, Function] as PropType,\n default: '' as TdFormItemProps['label'],\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐。默认使用 Form 的对齐方式,优先级高于 Form.labelAlign */\n labelAlign: {\n type: String as PropType,\n validator(val: TdFormItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置标签宽度,优先级高于 Form.labelWidth */\n labelWidth: {\n type: [String, Number] as PropType,\n },\n /** 表单字段名称 */\n name: {\n type: String,\n default: '',\n },\n /** 是否显示必填符号(*),优先级高于 Form.requiredMark */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单字段校验规则 */\n rules: {\n type: Array as PropType,\n },\n /** 校验不通过时,是否显示错误提示信息,优先级高于 `Form.showErrorMessage` */\n showErrorMessage: {\n type: Boolean,\n default: undefined,\n },\n /** 校验状态,可在需要完全自主控制校验状态时使用 */\n status: {\n type: String as PropType,\n default: '' as TdFormItemProps['status'],\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标。优先级高级 Form 的 statusIcon */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormItemProps['statusIcon'],\n },\n /** 是否显示校验成功的边框,默认不显示 */\n successBorder: Boolean,\n /** 自定义提示内容,样式跟随 `status` 变动,可在需要完全自主控制校验规则时使用 */\n tips: {\n type: [String, Function] as PropType,\n },\n};\n","import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n VNode,\n watch,\n} from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n GlobalIconType,\n} from 'tdesign-icons-vue-next';\nimport { isArray } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get as lodashGet } from 'lodash-es';\nimport { set as lodashSet } from 'lodash-es';\nimport { isNil } from 'lodash-es';\n\nimport { validate } from './utils/form-model';\nimport {\n AllValidateResult,\n Data,\n FormErrorMessage,\n FormItemValidateMessage,\n FormRule,\n ValidateTriggerType,\n ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n AnalysisValidateResult,\n ErrorListType,\n FormInjectionKey,\n FormItemContext,\n FormItemInjectionKey,\n SuccessListType,\n useCLASSNAMES,\n ValidateStatus,\n} from './consts';\n\nimport { useConfig, usePrefixClass, useTNodeJSX } from '../hooks';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]\\.)/g, '_');\n}\n\nexport default defineComponent({\n name: 'TFormItem',\n props,\n setup(props, { slots }) {\n const renderContent = useTNodeJSX();\n const CLASS_NAMES = useCLASSNAMES();\n const { globalConfig } = useConfig('form');\n const { CheckCircleFilledIcon, CloseCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const form = inject(FormInjectionKey, undefined);\n\n const classPrefix = usePrefixClass();\n const formItemClassPrefix = usePrefixClass('form-item');\n\n const needRequiredMark = computed(() => {\n const requiredMark = props.requiredMark ?? form?.requiredMark ?? globalConfig.value.requiredMark;\n const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n return requiredMark ?? isRequired;\n });\n\n const requiredMarkPosition = computed(() => {\n return form?.requiredMarkPosition ?? 'left';\n });\n\n const hasLabel = computed(() => slots.label || props.label);\n const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n const FROM_LABEL = usePrefixClass('form__label');\n const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n\n const labelClasses = computed(() => [\n CLASS_NAMES.value.label,\n {\n [`${FROM_LABEL.value}--required`]: needRequiredMark.value,\n [`${FROM_LABEL.value}--required-right`]: needRequiredMark.value && requiredMarkPosition.value === 'right',\n [`${FROM_LABEL.value}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n [`${FROM_LABEL.value}--left`]: labelAlign.value === 'left' && labelWidth.value,\n [`${FROM_LABEL.value}--right`]: labelAlign.value === 'right' && labelWidth.value,\n },\n ]);\n\n const statusClass = computed(\n () =>\n `${classPrefix.value}-is-${props.status || 'default'} ${\n props.status === 'success' ? CLASS_NAMES.value.successBorder : ''\n }`,\n );\n\n const renderLabel = () => {\n if (Number(labelWidth.value) === 0) return;\n\n let labelStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n labelStyle = { width: `${labelWidth.value}px` };\n } else {\n labelStyle = { width: labelWidth.value };\n }\n }\n\n return (\n
    \n \n {hasColon.value && globalConfig.value.colonText}\n
    \n );\n };\n\n /** Suffix Icon */\n const getDefaultIcon = (): VNode => {\n const resultIcon = (Icon: GlobalIconType) => (\n \n \n \n );\n const list = errorList.value;\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return resultIcon(CheckCircleFilledIcon);\n }\n if (list?.[0]) {\n const type = list[0].type || 'error';\n const icon =\n {\n error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n }[type] || CheckCircleFilledIcon;\n return resultIcon(icon);\n }\n return null;\n };\n const renderSuffixIcon = () => {\n const { statusIcon } = props;\n if (statusIcon === false) return;\n\n let resultIcon = renderContent('statusIcon', { defaultNode: getDefaultIcon() });\n if (resultIcon) return {resultIcon};\n if (resultIcon === false) return;\n\n resultIcon = form?.renderContent('statusIcon', { defaultNode: getDefaultIcon(), params: props });\n if (resultIcon) return resultIcon;\n };\n /** Suffix Icon END */\n\n /** Content Style */\n const errorClasses = computed(() => {\n if (!showErrorMessage.value) return '';\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return props.successBorder\n ? [CLASS_NAMES.value.success, CLASS_NAMES.value.successBorder].join(' ')\n : CLASS_NAMES.value.success;\n }\n if (!errorList.value.length) return;\n const type = errorList.value[0].type || 'error';\n if (props.status) return statusClass.value;\n return type === 'error' ? CLASS_NAMES.value.error : CLASS_NAMES.value.warning;\n });\n const contentClasses = computed(() => [CLASS_NAMES.value.controls, errorClasses.value]);\n const contentStyle = computed(() => {\n let contentStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n contentStyle = { marginLeft: `${labelWidth.value}px` };\n } else {\n contentStyle = { marginLeft: labelWidth.value };\n }\n }\n\n return contentStyle;\n });\n /** Content Style END */\n\n const errorList = ref([]);\n const successList = ref([]);\n const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n const resetValidating = ref(false);\n const needResetField = ref(false);\n\n const resetHandler = () => {\n needResetField.value = false;\n errorList.value = [];\n successList.value = [];\n verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n };\n const getEmptyValue = (): ValueType => {\n const type = Object.prototype.toString.call(lodashGet(form?.data, props.name));\n let emptyValue: ValueType;\n if (type === '[object String]') {\n emptyValue = '';\n }\n if (type === '[object Array]') {\n emptyValue = [];\n }\n if (type === '[object Object]') {\n emptyValue = {};\n }\n return emptyValue;\n };\n const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType) => {\n if (!props.name) return;\n\n if (resetType === 'empty') lodashSet(form?.data, props.name, getEmptyValue());\n else if (resetType === 'initial') lodashSet(form?.data, props.name, initialValue.value);\n\n await nextTick();\n if (resetValidating.value) {\n needResetField.value = true;\n } else {\n resetHandler();\n }\n };\n\n const errorMessages = computed(() => form?.errorMessage ?? globalConfig.value.errorMessage);\n const innerRules = computed(() => {\n if (props.rules?.length) return props.rules;\n if (!props.name) return [];\n const index = `${props.name}`.lastIndexOf('.') || -1;\n const pRuleName = `${props.name}`.slice(index + 1);\n return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n });\n\n const analysisValidateResult = async (trigger: ValidateTriggerType): Promise => {\n const result: AnalysisValidateResult = {\n successList: [],\n errorList: [],\n rules: [],\n resultList: [],\n allowSetValue: false,\n };\n result.rules =\n trigger === 'all'\n ? innerRules.value\n : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n if (innerRules.value.length && !result.rules?.length) {\n return result;\n }\n result.allowSetValue = true;\n result.resultList = await validate(value.value, result.rules);\n result.errorList = result.resultList\n .filter((item) => item.result !== true)\n .map((item: ErrorListType) => {\n Object.keys(item).forEach((key) => {\n // @ts-ignore\n if (!item.message && errorMessages.value[key]) {\n const name = isString(props.label) ? props.label : props.name;\n // @ts-ignore\n item.message = template(errorMessages.value[key], {\n name,\n // @ts-ignore\n validate: item[key],\n });\n }\n });\n return item;\n });\n // 仅有自定义校验方法才会存在 successList\n result.successList = result.resultList.filter(\n (item) => item.result === true && item.message && item.type === 'success',\n ) as SuccessListType[];\n\n return result;\n };\n const validateHandler = async (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ): Promise> => {\n resetValidating.value = true;\n // undefined | boolean\n freeShowErrorMessage.value = showErrorMessage;\n const {\n successList: innerSuccessList,\n errorList: innerErrorList,\n rules,\n resultList,\n allowSetValue,\n } = await analysisValidateResult(trigger);\n\n if (allowSetValue) {\n successList.value = innerSuccessList;\n errorList.value = innerErrorList;\n }\n // 根据校验结果设置校验状态\n if (rules.length) {\n verifyStatus.value = innerErrorList.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n }\n // 重置处理\n if (needResetField.value) {\n resetHandler();\n }\n resetValidating.value = false;\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n const validateOnly = async (trigger: ValidateTriggerType): Promise> => {\n const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n\n const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n if (!validateMessage && !isArray(validateMessage)) return;\n if (validateMessage.length === 0) {\n errorList.value = [];\n verifyStatus.value = ValidateStatus.SUCCESS;\n }\n errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n verifyStatus.value = ValidateStatus.FAIL;\n };\n\n const value = computed(() => form?.data && lodashGet(form?.data, props.name));\n const initialValue = ref(undefined);\n const { name } = toRefs(props);\n const context: FormItemContext = reactive({\n name,\n resetHandler,\n resetField,\n validate: validateHandler,\n validateOnly,\n setValidateMessage,\n });\n\n onMounted(() => {\n initialValue.value = cloneDeep(value.value);\n form?.children.push(context);\n });\n\n onBeforeUnmount(() => {\n if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n });\n\n watch(\n value,\n async () => {\n await validateHandler('change');\n },\n { deep: true },\n );\n\n watch(\n () => [props.name, JSON.stringify(props.rules)].join(','),\n () => {\n validateHandler('change');\n },\n );\n\n const freeShowErrorMessage = ref(undefined);\n const showErrorMessage = computed(() => {\n if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n return form?.showErrorMessage;\n });\n\n const classes = computed(() => [\n CLASS_NAMES.value.formItem,\n getFormItemClassName(formItemClassPrefix.value, props.name),\n {\n [CLASS_NAMES.value.formItemWithHelp]: helpNode.value,\n [CLASS_NAMES.value.formItemWithExtra]: extraNode.value,\n },\n ]);\n const helpNode = computed(() => {\n const help = renderContent('help');\n if (help) return
    {help}
    ;\n return null;\n });\n const extraNode = computed(() => {\n const getExtraNode = (content: string) => (\n
    \n {content}\n
    \n );\n const list = errorList.value;\n if (showErrorMessage.value && list?.[0]?.message) {\n return getExtraNode(list[0].message);\n }\n if (successList.value.length) {\n return getExtraNode(successList.value[0].message);\n }\n return null;\n });\n\n const tipsNode = computed(() => {\n const tmpTips = renderContent('tips');\n if (!tmpTips) return null;\n const tmpClasses = [`${formItemClassPrefix.value}-tips`, `${classPrefix.value}-tips`, statusClass.value];\n return
    {tmpTips}
    ;\n });\n\n const handleBlur = async () => {\n await validateHandler('blur');\n };\n provide(FormItemInjectionKey, {\n handleBlur,\n });\n\n return () => (\n
    \n {renderLabel()}\n
    \n
    \n {renderContent('default')}\n {renderSuffixIcon()}\n
    \n {helpNode.value}\n {tipsNode.value}\n {extraNode.value}\n
    \n
    \n );\n },\n});\n","/**\n * 用正则实现模板字符串功能\n * @param str 模板字符串\n * @param vars 取值的对象\n * @returns 替换后的字符串\n */\nexport function template>(str: string, vars: T): string {\n return str.replace(/\\${(.*?)}/g, (_, prop: string) => vars[prop.trim()] || '');\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否在表单标签字段右侧显示冒号 */\n colon: Boolean,\n /** 表单数据 */\n data: {\n type: Object as PropType,\n default: () => ({}),\n },\n /** 是否禁用整个表单 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 表单错误信息配置,示例:`{ idcard: '请输入正确的身份证号码', max: '字符长度不能超过 ${max}' }` */\n errorMessage: {\n type: Object as PropType,\n },\n /** 允许表单统一控制禁用状态的自定义组件名称列表。默认会有组件库的全部输入类组件:TInput、TInputNumber、TCascader、TSelect、TOption、TSwitch、TCheckbox、TCheckboxGroup、TRadio、TRadioGroup、TTreeSelect、TDatePicker、TTimePicker、TUpload、TTransfer、TSlider。对于自定义组件,组件内部需要包含可以控制表单禁用状态的变量 `formDisabled`。示例:`['CustomUpload', 'CustomInput']` */\n formControlledComponents: {\n type: Array as PropType,\n },\n /** 表单原生的id属性,支持用于配合非表单内的按钮通过form属性来触发表单事件 */\n id: {\n type: String,\n default: undefined,\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐 */\n labelAlign: {\n type: String as PropType,\n default: 'right' as TdFormProps['labelAlign'],\n validator(val: TdFormProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置label标签宽度,默认为100px */\n labelWidth: {\n type: [String, Number] as PropType,\n default: '100px' as TdFormProps['labelWidth'],\n },\n /** 表单布局,有两种方式:纵向布局 和 行内布局 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdFormProps['layout'],\n validator(val: TdFormProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'inline'].includes(val);\n },\n },\n /** 是否阻止表单提交默认事件(表单提交默认事件会刷新页面),设置为 `true` 可以避免刷新 */\n preventSubmitDefault: {\n type: Boolean,\n default: true,\n },\n /** 是否整个表单只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示必填符号(*),默认显示 */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单必填符号(*)显示位置 */\n requiredMarkPosition: {\n type: String as PropType,\n default: 'left' as TdFormProps['requiredMarkPosition'],\n validator(val: TdFormProps['requiredMarkPosition']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 重置表单的方式,值为 empty 表示重置表单为空,值为 initial 表示重置表单数据为初始值 */\n resetType: {\n type: String as PropType,\n default: 'empty' as TdFormProps['resetType'],\n validator(val: TdFormProps['resetType']): boolean {\n if (!val) return true;\n return ['empty', 'initial'].includes(val);\n },\n },\n /** 表单字段校验规则 */\n rules: {\n type: Object as PropType,\n },\n /** 表单校验不通过时,是否自动滚动到第一个校验不通过的字段,平滑滚动或是瞬间直达。值为空则表示不滚动 */\n scrollToFirstError: {\n type: String as PropType,\n validator(val: TdFormProps['scrollToFirstError']): boolean {\n if (!val) return true;\n return ['', 'smooth', 'auto'].includes(val);\n },\n },\n /** 校验不通过时,是否显示错误提示信息,统一控制全部表单项。如果希望控制单个表单项,请给 FormItem 设置该属性 */\n showErrorMessage: {\n type: Boolean,\n default: true,\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标 */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormProps['statusIcon'],\n },\n /** 【讨论中】当校验结果只有告警信息时,是否触发 `submit` 提交事件 */\n submitWithWarningMessage: Boolean,\n /** 表单重置时触发 */\n onReset: Function as PropType,\n /** 表单提交时触发。其中 `context.validateResult` 表示校验结果,`context.firstError` 表示校验不通过的第一个规则提醒。`context.validateResult` 值为 `true` 表示校验通过;如果校验不通过,`context.validateResult` 值为校验结果列表。
    【注意】⚠️ 默认情况,输入框按下 Enter 键会自动触发提交事件,如果希望禁用这个默认行为,可以给输入框添加 enter 事件,并在事件中设置 `e.preventDefault()` */\n onSubmit: Function as PropType,\n /** 校验结束后触发,result 值为 true 表示校验通过;如果校验不通过,result 值为校验结果列表 */\n onValidate: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { requestSubmit } from '../utils/dom';\nimport { FormItemValidateResult, getFormItemClassName } from './form-item';\nimport {\n Data,\n FormResetParams,\n FormValidateMessage,\n FormValidateParams,\n FormValidateResult,\n TdFormProps,\n ValidateResultList,\n} from './type';\nimport props from './props';\nimport { FormInjectionKey, FormItemContext, useCLASSNAMES } from './consts';\nimport { FormResetEvent, FormSubmitEvent } from '../common';\n\nimport { FormDisabledProvider, FormReadonlyProvider } from './hooks';\nimport { usePrefixClass, useTNodeJSX } from '../hooks';\n\ntype Result = FormValidateResult;\n\nexport default defineComponent({\n name: 'TForm',\n props,\n setup(props, { expose }) {\n const renderContent = useTNodeJSX();\n const { disabled, readonly } = toRefs(props);\n provide('formDisabled', {\n disabled,\n });\n provide('formReadonly', {\n readonly,\n });\n\n const formRef = ref(null);\n const children = ref([]);\n\n const {\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n } = toRefs(props);\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n children,\n renderContent,\n }),\n );\n\n const COMPONENT_NAME = usePrefixClass('form');\n const CLASS_NAMES = useCLASSNAMES();\n const formClass = computed(() => [\n CLASS_NAMES.value.form,\n { [`${COMPONENT_NAME.value}-inline`]: props.layout === 'inline' },\n ]);\n\n const FORM_ITEM_CLASS_PREFIX = usePrefixClass('form-item');\n\n const getFirstError = (result: Result) => {\n if (isBoolean(result)) return '';\n const [firstKey] = Object.keys(result);\n if (props.scrollToFirstError) {\n const tmpClassName = getFormItemClassName(FORM_ITEM_CLASS_PREFIX.value, firstKey);\n scrollTo(tmpClassName);\n }\n const resArr = result[firstKey] as ValidateResultList;\n if (!isArray(resArr)) return '';\n return resArr.filter((item) => !item.result)[0].message;\n };\n // 校验不通过时,滚动到第一个错误表单\n const scrollTo = (selector: string) => {\n const [dom] = formRef.value.getElementsByClassName(selector);\n const behavior = props.scrollToFirstError;\n if (behavior) {\n dom && dom.scrollIntoView({ behavior });\n }\n };\n\n const needValidate = (name: string | number, fields: string[] | undefined) => {\n if (!fields || !isArray(fields)) return true;\n return fields.indexOf(`${name}`) !== -1;\n };\n const formatValidateResult = (validateResultList: FormItemValidateResult[]) => {\n const result: Record = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n Object.keys(result).forEach((key) => {\n if (result[key] === true) {\n delete result[key];\n }\n });\n return isEmpty(result) ? true : result;\n };\n const validate = async (param?: FormValidateParams): Promise => {\n const { fields, trigger = 'all', showErrorMessage } = param || {};\n const list = children.value\n .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n .map((child) => child.validate(trigger, showErrorMessage));\n const arr = await Promise.all(list);\n const result = formatValidateResult(arr);\n const firstError = getFirstError(result);\n props.onValidate?.({\n validateResult: result,\n firstError,\n });\n return result;\n };\n const validateOnly = async (params?: Omit) => {\n const { fields, trigger = 'all' } = params || {};\n const list = children.value\n .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n .map((child) => child.validateOnly(trigger));\n const arr = await Promise.all(list);\n return formatValidateResult(arr);\n };\n const submitParams = ref>();\n const onSubmit = (e?: FormSubmitEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n validate(submitParams.value).then((r) => {\n props.onSubmit?.({ validateResult: r, firstError: getFirstError(r), e });\n });\n submitParams.value = undefined;\n };\n const submit = async (params?: Pick) => {\n submitParams.value = params;\n requestSubmit(formRef.value);\n };\n\n const resetParams = ref>();\n const onReset = (e?: FormResetEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n children.value\n .filter(\n (child) =>\n isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n )\n .forEach((child) => child.resetField(resetParams.value?.type));\n resetParams.value = undefined;\n props.onReset?.({ e });\n };\n const reset = (params?: FormResetParams) => {\n (resetParams.value as any) = params;\n formRef.value.reset();\n };\n\n const clearValidate = (fields?: Array) => {\n children.value.forEach((child) => {\n if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n child.resetHandler();\n }\n });\n };\n const setValidateMessage = (validateMessage: FormValidateMessage) => {\n const keys = Object.keys(validateMessage);\n if (!keys.length) return;\n const list = children.value\n .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n .map((child) => child.setValidateMessage(validateMessage[child.name as keyof FormData]));\n Promise.all(list);\n };\n\n expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n return () => (\n
    onSubmit(e)} onReset={(e) => onReset(e)}>\n {renderContent('default')}\n
    \n );\n },\n});\n","import _Form from './form';\nimport _FormItem from './form-item';\nimport withInstall from '../utils/withInstall';\nimport { TdFormProps, TdFormItemProps, Data } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type FormProps = TdFormProps;\nexport type FormItemProps = TdFormItemProps;\n\nexport const Form = withInstall(_Form);\nexport const FormItem = withInstall(_FormItem);\nexport default Form;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 单选按钮内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为禁用态。如果存在父组件 RadioGroup,默认值由 RadioGroup.disabled 控制。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 单选按钮的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioProps['value'],\n },\n /** 选中状态变化时触发 */\n onChange: Function as PropType,\n /** 点击时触发,一般用于外层阻止冒泡场景 */\n onClick: Function as PropType,\n};\n","import { InjectionKey } from 'vue';\nimport { RadioValue } from '../type';\n\nexport const RadioGroupInjectionKey: InjectionKey<{\n name: string;\n disabled: boolean;\n readonly: boolean;\n value: RadioValue;\n allowUncheck: boolean;\n setValue: (value: RadioValue, context: { e: Event; name?: string }) => void;\n}> = Symbol('RadioGroupProvide');\n\nexport const RadioButtonInjectionKey: InjectionKey<{}> = Symbol('RadioButtonProvide');\n","import { defineComponent, inject, toRefs, computed, ref } from 'vue';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { omit } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useVModel from '../hooks/useVModel';\nimport { useContent } from '../hooks/tnode';\nimport { isString } from 'lodash-es';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TRadio',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const inputRef = ref();\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const radioChecked = computed(() => (radioGroup ? props.value === radioGroup.value : innerChecked.value));\n\n const radioGroup = inject(RadioGroupInjectionKey, undefined);\n\n const allowUncheck = computed(() => Boolean(props.allowUncheck || radioGroup?.allowUncheck));\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n const onLabelClick = (e: MouseEvent) => {\n if (isDisabled.value || isReadonly.value) return;\n props.onClick?.({ e });\n\n if (radioChecked.value && !allowUncheck.value) return;\n\n if (radioGroup) {\n const value = radioChecked.value && allowUncheck.value ? undefined : props.value;\n radioGroup.setValue(value, { e, name: radioGroup.name });\n } else {\n const value = allowUncheck.value ? !radioChecked.value : true;\n setInnerChecked(value, { e });\n }\n };\n\n const inputEvents = computed(() =>\n getValidAttrs({\n focus: attrs.onFocus,\n blur: attrs.onBlur,\n keydown: attrs.onKeydown,\n keyup: attrs.onKeyup,\n keypresss: attrs.onKeypresss,\n }),\n );\n const wrapperAttrs = computed(() => {\n const events = [...Object.keys(inputEvents.value), 'input', 'change'].map(\n (str) => `on${str[0].toUpperCase()}${str.slice(1)}`,\n );\n return omit(attrs, events);\n });\n /** Event END */\n\n // extend radioGroup disabled props\n const groupDisabled = computed(() => radioGroup?.disabled);\n const groupReadonly = computed(() => radioGroup?.readonly);\n const isDisabled = useDisabled({ afterDisabled: groupDisabled });\n const isReadonly = useReadonly({ afterReadonly: groupReadonly });\n\n // attribute\n const inputProps = computed(() => ({\n name: radioGroup ? radioGroup.name : props.name,\n checked: radioChecked.value,\n disabled: isDisabled.value,\n readonly: isReadonly.value,\n value: props.value,\n }));\n\n /** Style */\n const { STATUS } = useCommonClassName();\n const radioButton = inject(RadioButtonInjectionKey, undefined);\n const radioBtnName = usePrefixClass('radio-button');\n const COMPONENT_NAME = usePrefixClass('radio');\n const prefixCls = computed(() => (radioButton ? radioBtnName.value : COMPONENT_NAME.value));\n const inputClass = computed(() => [\n `${prefixCls.value}`,\n {\n [STATUS.value.checked]: inputProps.value.checked,\n [STATUS.value.disabled]: inputProps.value.disabled,\n },\n ]);\n /** Style END */\n\n const renderContent = useContent();\n\n return () => (\n \n \n \n {renderContent('default', 'label')}\n \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioGroupProps } from '../radio/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否禁用全部子单选框。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸【讨论中】 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRadioGroupProps['size'],\n validator(val: TdRadioGroupProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'radio' as TdRadioGroupProps['theme'],\n validator(val: TdRadioGroupProps['theme']): boolean {\n if (!val) return true;\n return ['radio', 'button'].includes(val);\n },\n },\n /** 选中的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n /** 选中的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 单选组件按钮形式 */\n variant: {\n type: String as PropType,\n default: 'outline' as TdRadioGroupProps['variant'],\n validator(val: TdRadioGroupProps['variant']): boolean {\n if (!val) return true;\n return ['outline', 'primary-filled', 'default-filled'].includes(val);\n },\n },\n /** 选中值发生变化时触发, `context.name` 指 RadioGroup 的 name 属性 */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive } from 'vue';\nimport props from './props';\nimport Radio from './radio';\nimport { omit } from 'lodash-es';\nimport { RadioButtonInjectionKey } from './consts';\n\nimport { useContent } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TRadioButton',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n provide(RadioButtonInjectionKey, reactive({}));\n\n const radioProps = computed(() => {\n const res = {\n ...props,\n ...omit(\n attrs,\n Object.keys(attrs).filter((key) => key.startsWith('on')),\n ),\n };\n\n return res;\n });\n\n const renderContent = useContent();\n\n return () => {renderContent('default', 'label')};\n },\n});\n","import type { ComponentPublicInstance, Ref } from 'vue';\nimport { unref, watch, getCurrentScope, onScopeDispose } from 'vue';\n\nexport const defaultWindow = typeof window !== 'undefined' ? window : undefined;\nexport interface ConfigurableWindow {\n window?: Window;\n}\n// eslint-disable-next-line no-undef\nexport interface MutationObserverOptions extends MutationObserverInit, ConfigurableWindow {}\nexport type MaybeRef = T | Ref;\nexport type VueInstance = ComponentPublicInstance;\nexport type MaybeElementRef = MaybeRef;\nexport type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;\nexport type UnRefElementReturn = T extends VueInstance\n ? Exclude\n : T | undefined;\n\nexport type Fn = () => void;\n\nexport function unrefElement(elRef: MaybeElementRef): UnRefElementReturn {\n const plain = unref(elRef);\n return (plain as VueInstance)?.$el ?? plain;\n}\nexport function tryOnScopeDispose(fn: Fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nexport function useMutationObserver(\n target: MaybeElementRef,\n // eslint-disable-next-line no-undef\n callback: MutationCallback,\n options: MutationObserverOptions = {},\n) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer: MutationObserver | undefined;\n const isSupported = window && 'MutationObserver' in window;\n\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = undefined;\n }\n };\n\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n\n if (isSupported && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true },\n );\n\n const stop = () => {\n cleanup();\n stopWatch();\n };\n\n tryOnScopeDispose(stop);\n\n return {\n isSupported,\n stop,\n };\n}\n\nexport type UseMutationObserverReturn = ReturnType;\n","import {\n VNode,\n defineComponent,\n h,\n provide,\n reactive,\n ref,\n computed,\n onMounted,\n watch,\n nextTick,\n toRefs,\n onUnmounted,\n} from 'vue';\nimport { isString } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { isNil } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport { RadioOptionObj, RadioOption } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { useKeyboard } from './hooks';\nimport { isFunction } from 'lodash-es';\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\nimport useResizeObserver from '../hooks/useResizeObserver';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n // 键盘操作\n useKeyboard(radioGroupRef, setInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: setInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '../../utils/dom';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport withInstall from '../utils/withInstall';\nimport { TdRadioProps, TdRadioGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type RadioProps = TdRadioProps;\nexport type RadioGroupProps = TdRadioGroupProps;\n\nexport const Radio = withInstall(_Radio);\nexport const RadioGroup = withInstall(_Group);\nexport const RadioButton = withInstall(_RadioButton);\n\nexport default Radio;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSliderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于控制数字输入框组件,值为 false 表示不显示数字输入框;值为 true 表示呈现默认数字输入框;值类型为 Object 表示透传属性到数字输入框组件 */\n inputNumberProps: {\n type: [Boolean, Object] as PropType,\n default: false as TdSliderProps['inputNumberProps'],\n },\n /** 滑块当前值文本。
    值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
    值为 `${value}%` 则表示组件会根据占位符渲染文案;
    值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdSliderProps['label'],\n },\n /** 滑块布局方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdSliderProps['layout'],\n validator(val: TdSliderProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'horizontal'].includes(val);\n },\n },\n /** 刻度标记,示例:[0, 10, 40, 200] 或者 `{ 10: (val) => val + '%', 50: (h) => }` */\n marks: {\n type: [Object, Array] as PropType,\n },\n /** 滑块范围最大值 */\n max: {\n type: Number,\n default: 100,\n },\n /** 滑块范围最小值 */\n min: {\n type: Number,\n default: 0,\n },\n /** 双游标滑块 */\n range: Boolean,\n /** 控制步长刻度值显示 */\n showStep: Boolean,\n /** 步长 */\n step: {\n type: Number,\n default: 1,\n },\n /** 透传提示组件属性 */\n tooltipProps: {\n type: Object as PropType,\n },\n /** 滑块值 */\n value: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n modelValue: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n /** 滑块值,非受控属性 */\n defaultValue: {\n type: [Number, Array] as PropType,\n default: 0 as TdSliderProps['defaultValue'],\n },\n /** 滑块值变化时触发 */\n onChange: Function as PropType,\n /** 松开拖动`mouseup` 或点击滑块条时触发,适合不希望在拖动滑块过程频繁触发回调的场景实用 */\n onChangeEnd: Function as PropType,\n};\n","import { isString } from 'lodash-es';\nimport { TNode } from '../../common';\n/**\n * 计算刻度区间值停止坐标\n * @param position 刻度坐标值 ;\n * @param isVertical 是否垂直方向\n * @returns {string} style内联样式值\n */\nexport const getStopStyle = (position: number, isVertical: boolean) => {\n return isVertical ? { top: `calc(${100 - position}% - 1px)` } : { left: `${position}%` };\n};\n\n/**\n * 格式化返回slider初始值\n * @param val slider传入的value\n * @param type 第一个滑块or第二个滑块值\n * @returns {number}\n */\nexport const formatSliderValue = (val: number | number[], type: 'first' | 'second') => {\n if (type === 'first') {\n if (val instanceof Array) {\n return val[0];\n }\n return val;\n }\n if (val instanceof Array) {\n return val[1];\n }\n return 0;\n};\n\n/**\n * 格式化label参数\n * @param label slider传入的label属性\n * @param val slider传入的value\n */\nexport const formatLabel = (label: TNode | string, val: number) => {\n if (Boolean(label) === false) {\n return String(val);\n }\n if (isString(label)) {\n let text = String(val);\n try {\n const rule = /\\${value}%/g;\n const enableToReplace = rule.test(label);\n if (enableToReplace) {\n text = label.replace(rule, String(val));\n } else {\n text = label;\n throw new Error();\n }\n } catch (e) {\n console.warn(`fail to parse label prop, please pass string such as '\\${value}%'`);\n }\n return text;\n }\n return label;\n};\n","import { TooltipProps } from '../../tooltip';\nimport { ref, computed, ComputedRef, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport { formatLabel } from '../utils';\nimport { useTNodeJSX } from '../../hooks';\n\nconst initialProps: TooltipProps & { overlayClassName: string } = {\n visible: false,\n trigger: 'hover',\n showArrow: true,\n overlayInnerStyle: undefined,\n overlayClassName: undefined,\n attach: 'body',\n theme: 'default',\n};\n\nexport interface TooltipConfig {\n tooltipProps: boolean | TooltipProps;\n vertical: boolean;\n value: number;\n label: TdSliderProps['label'];\n position: string;\n range: boolean;\n}\n\n/**\n * 聚合管理滑块tooltip内容hook\n * @param tooltipProps tooltip属性配置\n * @param vertical 是否垂直展示\n * @returns\n */\nexport const useSliderTooltip = (tooltipConfig: Ref) => {\n const tooltipRef = ref();\n const showTooltip = computed({\n get() {\n return !tooltipConfig.value.tooltipProps === false;\n },\n set(val) {\n return val;\n },\n });\n const normalizeProps = ref({ ...initialProps });\n /** 开关显示tooltip */\n const toggleTooltip = (toState: boolean) => {\n if (!showTooltip.value) return;\n normalizeProps.value.visible = toState;\n };\n\n const renderTNodeJSX = useTNodeJSX();\n\n /** 合并最终tooltip属性,以外部同名属性覆盖初始化属性 */\n const validProps = computed(() => {\n const { vertical, tooltipProps, label, value, position, range } = tooltipConfig.value;\n const placement = vertical ? 'right' : 'top';\n\n let content = (() => {\n if (label === true) {\n return String(value);\n }\n if (typeof label === 'string') {\n return formatLabel(label, value);\n }\n return renderTNodeJSX('label', {\n params: range\n ? {\n value,\n position,\n }\n : { value },\n });\n })();\n\n if (tooltipProps instanceof Object) {\n if (!tooltipProps?.placement) {\n normalizeProps.value.placement = placement;\n }\n if (tooltipProps.content) {\n content = tooltipProps.content;\n }\n // @ts-ignore\n return { ...normalizeProps.value, ...tooltipProps, content };\n }\n return { ...normalizeProps.value, placement, content };\n });\n\n return {\n tooltipRef,\n tooltipProps: validProps as ComputedRef,\n toggleTooltip,\n showTooltip,\n };\n};\n","import { InjectionKey } from 'vue';\n\ntype SliderPropsInjectKey = InjectionKey<{\n max: number;\n min: number;\n step: number;\n dragging: boolean;\n toggleDragging: (val: boolean) => void;\n precision: number;\n disabled: boolean;\n resetSize: () => void;\n sliderSize: number;\n}>;\nexport const sliderPropsInjectKey: SliderPropsInjectKey = Symbol('sliderProps');\n","import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n inject,\n nextTick,\n reactive,\n ref,\n watchEffect,\n} from 'vue';\nimport TTooltip from '../tooltip/index';\nimport { TdSliderProps } from './type';\n\nimport { isFunction } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useSliderTooltip } from './hooks/useSliderTooltip';\nimport { sliderPropsInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSliderButton',\n props: {\n value: {\n type: [Number],\n default: 0,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n tooltipProps: {\n type: [Boolean, Object],\n default: true,\n },\n label: {\n type: [String, Boolean, Function] as PropType,\n },\n range: {\n type: Boolean,\n default: false,\n },\n position: {\n type: String,\n },\n },\n emits: ['input', 'mouseup'],\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('slider__button');\n const tooltipConfig = computed(() => props);\n const { tooltipRef, tooltipProps, toggleTooltip, showTooltip } = useSliderTooltip(tooltipConfig);\n const parentProps = inject(sliderPropsInjectKey);\n const buttonRef = ref();\n const dragged = ref(false);\n\n /** --------------------- slide button 相关状态start ------------------- */\n const slideButtonProps = reactive({\n dragging: false,\n isClick: false,\n startX: 0,\n startY: 0,\n startPos: 0,\n newPos: null,\n });\n\n const rangeDiff = computed(() => {\n return Number(parentProps.max) - Number(parentProps.min);\n });\n\n const currentPos = computed(() => {\n return `${((props.value - parentProps.min) / rangeDiff.value) * 100}%`;\n });\n\n const step = computed(() => {\n return parentProps.step;\n });\n\n const wrapperStyle = computed(() => {\n return props.vertical ? { bottom: currentPos.value } : { left: currentPos.value };\n });\n\n watchEffect(() => {\n parentProps.toggleDragging(slideButtonProps.dragging);\n });\n /** --------------------- slide button 相关状态end ------------------- */\n\n /** --------------------- slide button 相关事件start ------------------- */\n /** 设置当前位置 */\n const setPosition = (pos: number) => {\n let newPos = pos;\n if (newPos === null || Number.isNaN(newPos)) {\n return;\n }\n\n if (newPos > 100) {\n newPos = 100;\n } else if (newPos < 0) {\n newPos = 0;\n }\n const perStepLen = (100 * step.value) / rangeDiff.value;\n const steps = Math.round(newPos / perStepLen);\n let value = steps * perStepLen * rangeDiff.value * 0.01;\n value += parentProps.min;\n value = Number(parseFloat(`${value}`).toFixed(parentProps.precision));\n ctx.emit('input', value);\n nextTick(() => {\n tooltipRef.value && tooltipRef.value.updatePopper?.();\n });\n };\n\n const handleMouseEnter = () => {\n (buttonRef.value as ComponentPublicInstance).focus();\n toggleTooltip(true);\n };\n const handleMouseLeave = () => {\n if (!slideButtonProps.dragging) {\n toggleTooltip(false);\n }\n };\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n slideButtonProps.dragging = true;\n slideButtonProps.isClick = true;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchstart') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n slideButtonProps.startY = clientY;\n } else {\n slideButtonProps.startX = clientX;\n }\n slideButtonProps.startPos = parseFloat(currentPos.value);\n slideButtonProps.newPos = slideButtonProps.startPos;\n };\n\n const onDragging = (e: MouseEvent | TouchEvent) => {\n const event = e;\n if (!slideButtonProps.dragging) {\n return;\n }\n dragged.value = true;\n slideButtonProps.isClick = false;\n if (parentProps?.resetSize && isFunction(parentProps?.resetSize)) {\n parentProps.resetSize();\n }\n let diff = 0;\n const parentSliderSize = parentProps.sliderSize;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchmove') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n diff = slideButtonProps.startY - clientY;\n } else {\n diff = clientX - slideButtonProps.startX;\n }\n diff = (diff / parentSliderSize) * 100;\n slideButtonProps.newPos = slideButtonProps.startPos + diff;\n setPosition(slideButtonProps.newPos);\n };\n\n const onDragEnd = () => {\n if (slideButtonProps.dragging) {\n setTimeout(() => {\n slideButtonProps.dragging = false;\n toggleTooltip(false);\n if (!slideButtonProps.isClick) {\n setPosition(slideButtonProps.newPos);\n }\n dragged.value && ctx.emit('mouseup');\n dragged.value = false;\n }, 0);\n window.removeEventListener('mousemove', onDragging);\n window.removeEventListener('touchmove', onDragging);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchend', onDragEnd);\n window.removeEventListener('contextmenu', onDragEnd);\n }\n };\n\n function onButtonDown(event: MouseEvent | TouchEvent) {\n if (parentProps.disabled) {\n return;\n }\n event.preventDefault();\n onDragStart(event);\n window.addEventListener('mousemove', onDragging);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragging);\n window.addEventListener('touchend', onDragEnd);\n window.addEventListener('contextmenu', onDragEnd);\n }\n\n const onKeyDown = (state: 'sub' | 'add') => {\n if (parentProps.disabled) {\n return;\n }\n let stepLength = (step.value / rangeDiff.value) * 100;\n if (state === 'sub') {\n stepLength = -stepLength;\n }\n slideButtonProps.newPos = parseFloat(currentPos.value) + stepLength;\n setPosition(slideButtonProps.newPos);\n };\n\n const onNativeKeyDown = (e: KeyboardEvent) => {\n const { code } = e;\n e.preventDefault();\n if (code === 'ArrowDown' || code === 'ArrowLeft') {\n onKeyDown('sub');\n }\n if (code === 'ArrowUp' || code === 'ArrowRight') {\n onKeyDown('add');\n }\n };\n /** --------------------- slide button 相关事件end ------------------- */\n\n /** 暴露设置按钮坐标方法供父组件调用 */\n ctx.expose({\n setPosition,\n });\n\n return () => (\n \n {/* hide tooltip with `hideEmptyPopup`, empty content won't show */}\n \n
    \n \n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { TdSliderProps } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TSliderMark',\n props: {\n mark: {\n type: [Object, Array, String, Number] as PropType,\n },\n point: {\n type: Number,\n },\n onClickMarkPoint: {\n type: Function,\n default: () => {},\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('slider__mark');\n const changeValue = (e: MouseEvent) => {\n e.stopPropagation();\n props?.onClickMarkPoint?.(props.point);\n };\n\n return () => (\n
    \n {props.mark}\n
    \n );\n },\n});\n","import { computed, Ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\nimport { isBoolean } from 'lodash-es';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","/**\n * Thanks to https://github.com/ElemeFE/element/blob/dev/packages/input/src/calcTextareaHeight.js\n */\n\nimport { CSSProperties } from 'vue';\n\ntype RowsType = number | null;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow-y:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nconst SIZING_PROPS = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\n\nfunction calculateNodeStyling(targetElement: HTMLTextAreaElement) {\n if (typeof window === 'undefined' || !targetElement) return;\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing =\n style.getPropertyValue('box-sizing') ||\n style.getPropertyValue('-moz-box-sizing') ||\n style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize =\n parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n\n const borderSize =\n parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n\n const sizingStyle = SIZING_PROPS.map((name) => `${name}:${style.getPropertyValue(name)}`).join(';');\n\n return {\n sizingStyle,\n paddingSize,\n borderSize,\n boxSizing,\n };\n}\n\nexport function calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: RowsType = 1,\n maxRows: RowsType = null,\n) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const { paddingSize, borderSize, boxSizing, sizingStyle } = calculateNodeStyling(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CSSProperties = {};\n\n if (boxSizing === 'border-box') {\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n if (minRows !== null) {\n let minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (maxRows !== null) {\n let maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n }\n result.height = `${height}px`;\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n hiddenTextarea = null;\n return result;\n}\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\n\ninterface SliderButtonType {\n setPosition: (param: number) => {};\n}\nexport default defineComponent({\n name: 'TSlider',\n model: {\n prop: 'value',\n event: 'change',\n },\n props,\n setup(props) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('slider');\n const { STATUS } = useCommonClassName();\n const { value, modelValue } = toRefs(props) as any;\n const [sliderValue, setSliderValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const sliderContainerRef = ref();\n const sliderRef = ref();\n const firstButtonRef = ref();\n const secondButtonRef = ref();\n\n const firstValue = ref(formatSliderValue(sliderValue.value, 'first'));\n const secondValue = ref(formatSliderValue(sliderValue.value, 'second'));\n const dragging = ref(false);\n const sliderSize = ref(1);\n\n const vertical = computed(() => {\n return props.layout === 'vertical';\n });\n\n /** ----------------- 样式计算 start ------------- */\n const containerClass = computed(() => [`${COMPONENT_NAME.value}__container`, { 'is-vertical': vertical.value }]);\n const sliderClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n {\n 'is-vertical': vertical.value,\n [`${COMPONENT_NAME.value}--with-input`]: props.inputNumberProps,\n [`${COMPONENT_NAME.value}--vertical`]: vertical.value,\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n const sliderRailClass = computed(() => [\n `${COMPONENT_NAME.value}__rail`,\n { 'show-input': props.inputNumberProps, disabled: disabled.value },\n ]);\n const runwayStyle = computed(() => {\n return vertical.value ? { height: '100%' } : {};\n });\n const barStyle = computed(() => {\n const barStart = props.range ? `${(100 * (minValue.value - props.min)) / rangeDiff.value}%` : '0%';\n const currentDiff = props.range ? maxValue.value - minValue.value : firstValue.value - props.min;\n const barSize = `${(100 * currentDiff) / rangeDiff.value}%`;\n return vertical.value\n ? {\n height: barSize,\n bottom: barStart,\n }\n : {\n width: barSize,\n left: barStart,\n };\n });\n /** ----------------- 样式计算 end ------------- */\n\n // 差值范围\n const rangeDiff = computed(() => {\n return props.max - props.min;\n });\n const minValue = computed(() => {\n return Math.min(firstValue.value, secondValue.value);\n });\n const maxValue = computed(() => {\n return Math.max(firstValue.value, secondValue.value);\n });\n const steps = computed(() => {\n if (!props.showStep || props.min > props.max) return [];\n if (props.step === 0) {\n console.warn('[Element Warn][Slider]step should not be 0.');\n return [];\n }\n const stepCount = rangeDiff.value / props.step;\n const stepWidth = (100 * props.step) / rangeDiff.value;\n const result = [];\n for (let i = 1; i < stepCount; i++) {\n result.push(i * stepWidth);\n }\n if (props.range) {\n const r = result.filter(\n (step) =>\n step < (100 * (minValue.value - props.min)) / rangeDiff.value ||\n props.step > (100 * (maxValue.value - props.max)) / rangeDiff.value,\n );\n return r;\n }\n return result.filter((step) => step > (100 * (firstValue.value - props.min)) / rangeDiff.value);\n });\n const precision = computed(() => {\n const precisions = [props.min, props.max, props.step].map((item) => {\n const decimalArr = `${item}`.split('.');\n return decimalArr[1] ? decimalArr[1].length : 0;\n });\n return Math.max.apply(null, precisions);\n });\n // 防止值越级\n const setValues = (value: SliderValue): SliderValue => {\n const [min, max] = [props.min, props.max];\n if (min > max) {\n console.warn('[Slider] max should be greater than min.');\n return;\n }\n // 双向滑块\n if (props.range && isArray(value)) {\n let [maxLimit, minLimit] = [Math.min(...value), Math.max(...value)];\n if (maxLimit > max) {\n maxLimit = firstValue.value;\n }\n if (maxLimit < min) {\n maxLimit = min;\n }\n if (minLimit < min) {\n minLimit = secondValue.value;\n }\n if (minLimit > max) {\n minLimit = max;\n }\n [firstValue.value, secondValue.value] = [maxLimit, minLimit];\n return [maxLimit, minLimit];\n }\n let preValue = value as number;\n if (preValue < min) {\n preValue = min;\n }\n if (preValue > max) {\n preValue = max;\n }\n return preValue;\n };\n // 只要触发修改就要有这个方法抛出change事件\n const emitChange = (value: SliderValue) => {\n let changeValue = value;\n if (changeValue === undefined) {\n if (props.range) {\n changeValue = [firstValue.value, secondValue.value];\n } else {\n changeValue = firstValue.value;\n }\n }\n const fixValue: SliderValue = setValues(changeValue);\n setSliderValue(fixValue);\n };\n\n const resetSize = () => {\n if (sliderRef.value) {\n sliderSize.value = sliderRef.value[`client${vertical.value ? 'Height' : 'Width'}`];\n }\n };\n\n // 是否以完成挂载(部分组合组件如inputNumber依赖于首次init后的状态值进行渲染)\n const isAlreadyMount = ref(false);\n // 初始化传入的value\n const init = () => {\n let valuetext: string | number;\n if (props.range) {\n if (isArray(sliderValue.value)) {\n firstValue.value = Math.max(props.min || 0, sliderValue.value[0]);\n secondValue.value = Math.min(props.max || 100, sliderValue.value[1]);\n } else {\n firstValue.value = props.min || 0;\n secondValue.value = props.max || 100;\n }\n valuetext = `${firstValue.value}-${secondValue.value}`;\n } else {\n if (!isNumber(sliderValue.value)) {\n firstValue.value = props.min;\n } else {\n firstValue.value = Math.min(props.max, Math.max(props.min, sliderValue.value as number));\n }\n valuetext = String(firstValue.value);\n }\n if (sliderContainerRef.value) {\n sliderContainerRef.value.setAttribute('aria-valuetext', valuetext);\n }\n resetSize();\n window.addEventListener('resize', resetSize);\n };\n // 相应button的位置\n const setPosition = (percent: number): void => {\n let targetValue = (percent * rangeDiff.value) / 100;\n targetValue = props.min + targetValue;\n if (!props.range && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n return;\n }\n let button;\n if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) {\n button = firstValue.value < secondValue.value ? 'button1' : 'button2';\n } else {\n button = firstValue.value > secondValue.value ? 'button1' : 'button2';\n }\n if (button === 'button1' && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n }\n if (button === 'button2' && secondButtonRef.value) {\n secondButtonRef.value.setPosition(percent);\n }\n };\n\n const getFixValue = () => {\n const changeValue = props.range ? [firstValue.value, secondValue.value] : firstValue.value;\n return setValues(changeValue);\n };\n\n // 全局点击\n const onSliderClick = (event: MouseEvent): void => {\n if (disabled.value || dragging.value) {\n return;\n }\n if (!sliderRef.value) return;\n resetSize();\n let value = 0;\n if (vertical.value) {\n const sliderOffsetBottom = sliderRef.value.getBoundingClientRect().bottom;\n value = ((sliderOffsetBottom - event.clientY) / sliderSize.value) * 100;\n setPosition(value);\n } else {\n const sliderOffsetLeft = sliderRef.value.getBoundingClientRect().left;\n value = ((event.clientX - sliderOffsetLeft) / sliderSize.value) * 100;\n setPosition(value);\n }\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n // mark 点击触发修改事件\n const changeValue = (point: number) => {\n if (disabled.value || dragging.value) {\n return;\n }\n resetSize();\n const value = Number((point / rangeDiff.value) * 100);\n setPosition(value);\n emitChange(point);\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n /** 副作用监听 */\n watch(\n () => sliderValue.value,\n (newVal) => {\n if (dragging.value === true) return;\n if (isArray(newVal) && props.range) {\n [firstValue.value, secondValue.value] = newVal;\n } else {\n firstValue.value = newVal as number;\n }\n },\n );\n\n watch([firstValue, secondValue, dragging], (newStates, prevStates) => {\n if (newStates[0] !== prevStates[0]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n } else {\n emitChange(firstValue.value);\n }\n }\n if (newStates[1] !== prevStates[1]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n }\n }\n if (newStates[2] !== prevStates[2] && newStates[2] === false) {\n init();\n }\n });\n\n /** 挂载&卸载 */\n onMounted(() => {\n init();\n isAlreadyMount.value = true;\n });\n onBeforeUnmount(() => {\n window.removeEventListener('resize', resetSize);\n });\n\n /** -------------------------- 渲染相关逻辑 start -------------------------- */\n const markConfig = computed(() => ({\n max: props.max,\n min: props.min,\n marks: props.marks,\n vertical: vertical.value,\n prefixName: COMPONENT_NAME.value,\n }));\n const renderMask = useSliderMark(markConfig);\n\n const inputConfig = computed(() => ({\n max: props.max,\n min: props.min,\n inputNumberProps: props.inputNumberProps,\n step: props.step,\n prefixName: COMPONENT_NAME.value,\n vertical: vertical.value,\n disabled: disabled.value,\n }));\n const renderInputNumber = useSliderInput(inputConfig);\n\n const renderInputButton = (): VNode => {\n const firstInputVal = setValues(firstValue.value) as number;\n const firstInputOnChange = (v: number) => {\n firstValue.value = setValues(v) as number;\n };\n const secondInputVal = setValues(secondValue.value) as number;\n const secondInputOnChange = (v: number) => {\n secondValue.value = setValues(v) as number;\n };\n return (\n \n {renderInputNumber(firstInputVal, firstInputOnChange)}\n {props.range &&
    }\n {props.range && renderInputNumber(secondInputVal, secondInputOnChange)}\n
    \n );\n };\n /** -------------------------- 渲染相关逻辑 end -------------------------- */\n\n /** 父子共用状态&方法 */\n const toggleDragging = (toState: boolean) => {\n dragging.value = toState;\n };\n\n const { min, max, step } = toRefs(props);\n provide(\n sliderPropsInjectKey,\n reactive({\n min,\n max,\n step,\n dragging,\n toggleDragging,\n precision,\n disabled,\n resetSize,\n sliderSize,\n }),\n );\n\n return () => (\n
    \n \n
    \n
    \n {\n firstValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n {props.range && (\n {\n secondValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n )}\n {props.showStep && (\n
    \n {steps.value.map((item: any, key) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n
    \n );\n })}\n
    \n )}\n {renderMask(changeValue)}\n
    \n
    \n {isAlreadyMount.value && props.inputNumberProps && renderInputButton()}\n
    \n );\n },\n});\n","import { computed, VNode, Ref } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { SliderMarks } from '../type';\nimport { TNode } from '../../common';\nimport log from '@tdesign/common-js/log/log';\nimport { getStopStyle } from '../utils';\nimport TSliderMark from '../slider-mark';\nimport { isArray } from 'lodash-es';\n\ninterface MarkItem {\n point: number;\n position: number;\n mark: string | number | TNode<{ value: number }>;\n}\n\ninterface useSliderMarkProps {\n max: number;\n min: number;\n marks: number[] | SliderMarks;\n vertical: boolean;\n prefixName: string;\n}\n\n/**\n * 聚合管理刻度值渲染逻辑\n */\nexport const useSliderMark = (config: Ref) => {\n const name = config.value.prefixName;\n const markList = computed(() => {\n const markProps = config.value;\n if (!markProps.marks) {\n return [];\n }\n const legalMarks: Array = [];\n if (isArray(markProps.marks)) {\n const marksList = cloneDeep(markProps.marks).sort((a, b) => a - b);\n const maxLimit = Math.max(...marksList, markProps.max);\n const minLimit = Math.min(...marksList, markProps.min);\n if (minLimit < markProps.min) {\n log.errorOnce('TSlider', 'marks min value should >= props min');\n }\n if (maxLimit > markProps.max) {\n log.errorOnce('TSlider', 'marks max value should <= props max');\n }\n marksList.forEach((item) => {\n legalMarks.push({\n point: item,\n position: ((item - minLimit) / (maxLimit - minLimit)) * 100,\n mark: item,\n });\n });\n } else {\n Object.keys(markProps.marks)\n .map(parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= markProps.max && point >= markProps.min)\n .forEach((point) => {\n const item: MarkItem = {\n point,\n position: ((point - markProps.min) * 100) / (markProps.max - markProps.min),\n mark: markProps.marks[point],\n };\n legalMarks.push(item);\n });\n }\n return legalMarks;\n });\n\n const renderMask = (onChangeFn?: (point: number) => void): VNode => {\n if (!markList.value.length) return null;\n\n return (\n
    \n
    \n {markList.value.map((item, index) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n \n );\n })}\n
    \n
    \n {markList.value.map((item, key) => (\n \n ))}\n
    \n
    \n );\n };\n\n return renderMask;\n};\n","import _Slider from './slider';\nimport _SliderButton from './slider-button';\nimport withInstall from '../utils/withInstall';\nimport { TdSliderProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type SliderProps = TdSliderProps;\nexport const Slider = withInstall(_Slider);\nexport const SliderButton = withInstall(_SliderButton);\nexport default Slider;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSwitchProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** Switch 切换状态前的回调方法,常用于需要发起异步请求的场景,回调返回值支持布尔和 Promise 类型,返回`false`或 Promise reject不继续执行change,否则则继续执行。 */\n beforeChange: {\n type: Function as PropType,\n },\n /** 用于自定义开关的值,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]、['open', 'close'] */\n customValue: {\n type: Array as PropType,\n },\n /** 是否禁用组件。优先级:Switch.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 开关内容,[开启时内容,关闭时内容]。示例:['开', '关'] 或 (value) => value ? '开' : '关' */\n label: {\n type: [Array, Function] as PropType,\n default: (): TdSwitchProps['label'] => [] as TdSwitchProps['label'],\n },\n /** 是否处于加载中状态 */\n loading: Boolean,\n /** 开关尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSwitchProps['size'],\n validator(val: TdSwitchProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 开关值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n /** 开关值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 数据发生变化时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, h, VNodeChild, computed, watch, toRefs } from 'vue';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport useVModel from '../hooks/useVModel';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TSwitch',\n props,\n setup(props, { slots }) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('switch');\n const { STATUS, SIZE } = useCommonClassName();\n // values\n const { value, modelValue } = toRefs(props);\n const [innerValue, setSwitchVal] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const activeValue = computed(() => {\n if (props.customValue && props.customValue.length > 0) {\n return props.customValue[0];\n }\n return true;\n });\n const inactiveValue = computed(() => {\n if (props.customValue && props.customValue.length > 1) {\n return props.customValue[1];\n }\n return false;\n });\n\n // methods\n function handleToggle(e: MouseEvent) {\n const checked = innerValue.value === activeValue.value ? inactiveValue.value : activeValue.value;\n // emits\n setSwitchVal(checked, { e });\n }\n\n function toggle(e: MouseEvent) {\n if (disabled.value || props.loading) {\n return;\n }\n if (!props.beforeChange) {\n handleToggle(e);\n return;\n }\n Promise.resolve(props.beforeChange())\n .then((v) => {\n if (v) {\n handleToggle(e);\n }\n })\n .catch((e) => {\n throw new Error(`Switch: some error occurred: ${e}`);\n });\n }\n\n // classes\n const classes = computed(() => [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n [STATUS.value.checked]: innerValue.value === activeValue.value || props.modelValue === activeValue.value,\n },\n ]);\n const nodeClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__handle`,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n },\n ];\n });\n const contentClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n\n watch(\n innerValue,\n (val) => {\n if (props.customValue && props.customValue.length && !props.customValue.includes(val)) {\n throw new Error(`value is not in ${JSON.stringify(props.customValue)}`);\n }\n },\n {\n immediate: true,\n },\n );\n\n const content = computed(() => {\n if (isFunction(props.label)) {\n return props.label(h, { value: innerValue.value });\n }\n if (isString(props.label)) {\n return props.label;\n }\n if (isArray(props.label) && props.label.length) {\n const label = innerValue.value === activeValue.value ? props.label[0] : props.label[1];\n if (!label) return;\n if (isString(label)) {\n return label;\n }\n if (isFunction(label)) {\n return label(h);\n }\n }\n if (slots.label) {\n return slots.label({ value: innerValue.value });\n }\n return null;\n });\n return () => {\n let switchContent: VNodeChild;\n let loadingContent: TNodeReturnValue;\n if (props.loading) {\n loadingContent = ;\n } else if (content.value) {\n switchContent = content.value;\n }\n\n return (\n
    \n {loadingContent}\n
    {switchContent}
    \n
    \n );\n };\n },\n});\n","import _Switch from './switch';\nimport withInstall from '../utils/withInstall';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { calcTextareaHeight } from './utils';\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\n !isComposing.value && setInnerValue(val, { e });\n nextTick(() => setInputValue(val));\n adjustTextareaHeight();\n };\n\n const handleInput = (e: InputEvent) => {\n inputValueChangeHandle(e);\n };\n\n const onCompositionstart = () => {\n isComposing.value = true;\n };\n\n const onCompositionend = (e: InputEvent | CompositionEvent) => {\n isComposing.value = false;\n inputValueChangeHandle(e as InputEvent);\n };\n\n const eventDeal = (name: T, e: KeyboardEvent) => {\n if (disabled.value) return;\n const eventName = `on${name[0].toUpperCase()}${name.slice(1)}` as `on${Capitalize}`;\n props[eventName]?.(innerValue.value, { e });\n };\n\n const emitKeyDown = (e: KeyboardEvent) => {\n eventDeal('keydown', e);\n };\n const emitKeyUp = (e: KeyboardEvent) => {\n eventDeal('keyup', e);\n };\n const emitKeypress = (e: KeyboardEvent) => {\n eventDeal('keypress', e);\n };\n\n const emitFocus = (e: FocusEvent) => {\n adjustTextareaHeight();\n if (disabled.value) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const emitBlur = (e: FocusEvent) => {\n if (!e.target) return;\n adjustTextareaHeight();\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n };\n\n // computed\n const textareaClasses = computed(() => {\n return [\n name.value,\n {\n [`${prefix.value}-is-disabled`]: disabled.value,\n [`${prefix.value}-is-readonly`]: isReadonly.value,\n },\n ];\n });\n const inputAttrs = computed>(() => {\n return getValidAttrs({\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: isReadonly.value,\n placeholder: props.placeholder,\n maxlength: (!props.allowInputOverMax && props.maxlength) || undefined,\n name: props.name || undefined,\n });\n });\n const characterNumber = computed(() => {\n const characterInfo = getCharacterLength(String(innerValue.value || ''));\n if (typeof characterInfo === 'object') {\n // @ts-ignore\n // TODO: 这里的写法本身就有问题,因为 getCharacterLength(String(innerValue.value || '')) 一定会返回 number,所以这个分支肯定是进不了的,除非 getCharacterLength 写得有问题\n return characterInfo.length;\n }\n return characterInfo;\n });\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { tStatus } = useLengthLimit(limitParams);\n\n // watch\n watch(\n () => innerValue.value,\n () => adjustTextareaHeight(),\n );\n\n watch(refTextareaElem, (el) => {\n if (!el) return;\n adjustTextareaHeight();\n if (props.autofocus) {\n el.focus();\n }\n });\n\n watch(textareaStyle, (val) => {\n const { style } = attrs as { style: StyleValue };\n if (isObject(style)) {\n setStyle(refTextareaElem.value, merge(style, val) as Record);\n } else {\n setStyle(refTextareaElem.value, val);\n }\n });\n\n watch(innerValue, () => {\n nextTick(() => adjustTextareaHeight());\n });\n\n watch(() => props.autosize, adjustTextareaHeight, { deep: true });\n\n expose({\n focus,\n blur,\n });\n\n onMounted(() => {\n adjustTextareaHeight();\n });\n\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n const inputEvents = getValidAttrs({\n onFocus: emitFocus,\n onBlur: emitBlur,\n onKeydown: emitKeyDown,\n onKeyup: emitKeyUp,\n onKeypress: emitKeypress,\n });\n const { STATUS } = useCommonClassName();\n const classes = computed(() => [\n `${name.value}__inner`,\n {\n [`${prefix.value}-is-${tStatus.value}`]: tStatus.value,\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: focused.value,\n [`${prefix.value}-resize-none`]: typeof props.autosize === 'object',\n },\n 'narrow-scrollbar',\n ]);\n\n const tips = renderTNodeJSX('tips');\n\n const textTips = tips && (\n
    {tips}
    \n );\n\n const limitText =\n (props.maxcharacter && (\n {`${characterNumber.value}/${props.maxcharacter}`}\n )) ||\n (!props.maxcharacter && props.maxlength && (\n {`${innerValue.value ? String(innerValue.value)?.length : 0}/${\n props.maxlength\n }`}\n ));\n\n return (\n
    \n \n {textTips || limitText ? (\n \n {textTips}\n {limitText}\n
    \n ) : null}\n
    \n );\n };\n },\n});\n","import _Textarea from './textarea';\nimport withInstall from '../utils/withInstall';\nimport { TdTextareaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TextareaProps = TdTextareaProps;\n\nexport const Textarea = withInstall(_Textarea);\nexport default Textarea;\n","import { ComponentPublicInstance } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { isUndefined } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { TransferListOptionBase, TransferItemOption, TdTransferProps, TransferValue, DataOption } from '../types';\n\nexport { emitEvent } from '../../utils/event';\n\nexport const TRANSFER_NAME = 'TTransfer';\n\nexport const SOURCE = 'source';\nexport const TARGET = 'target';\n\ninterface TreeNode {\n children?: Array;\n}\n\nfunction findTopNode(vm: ComponentPublicInstance): ComponentPublicInstance {\n // 找到t-transfer这层父节点\n if (vm.$options.name === 't-transfer') {\n return vm;\n }\n if (vm.$parent) {\n return findTopNode(vm.$parent);\n }\n return vm;\n}\n\nfunction getTransferListOption(prop: T | Array): TransferListOptionBase {\n if (isArray(prop)) {\n return {\n source: prop[0],\n target: prop[1],\n };\n }\n return {\n source: prop,\n target: prop,\n };\n}\n\nfunction getDataValues(\n data: Array,\n filterValues: Array,\n {\n isTreeMode = false,\n include = true, // true=保留filterValues,false=删除filterValues中元素\n remainValue = [] as Array,\n } = {},\n): Array {\n // 用于处理 tree 组件这种数据结构是树形的\n if (isTreeMode) {\n let result: Array = [];\n if (data) {\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n const isInclude = filterValues.includes(item.value) && !item.disabled;\n if (!include && isInclude) {\n continue; // 排除模式下子元素一律排除\n }\n\n // 只找叶子节点\n if (item.children && item.children.length > 0) {\n const childResult = getDataValues(item.children, filterValues, {\n isTreeMode,\n include,\n });\n result = result.concat(childResult);\n } else if ((include && isInclude) || (!include && !isInclude)) {\n result.push(item.value);\n }\n }\n }\n return result;\n }\n return data\n .filter((item) => {\n if (!item) return false;\n const isInclude = filterValues.includes(item.value);\n return (\n ((include && isInclude) || (!include && !isInclude)) && (!item.disabled || remainValue.includes(item.value))\n );\n })\n .map((item) => item.value);\n}\n\nfunction getTransferData(\n data: Array,\n keys: TdTransferProps['keys'],\n isTreeMode = false,\n): Array {\n const list: Array = data.map((transferDataItem, index): TransferItemOption => {\n const labelKey = keys?.label || 'label';\n const valueKey = keys?.value || 'value';\n const disabledKey = keys?.disabled || 'disabled';\n if (isUndefined(transferDataItem[labelKey])) {\n throw new Error(`${labelKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n if (isUndefined(transferDataItem[valueKey])) {\n throw new Error(`${valueKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n const result: TransferItemOption = {\n label: transferDataItem[labelKey] as string,\n value: transferDataItem[valueKey],\n key: `key__value_${transferDataItem[valueKey]}_index_${index}`,\n disabled: transferDataItem[disabledKey] ?? false,\n data: transferDataItem,\n };\n if (isTreeMode && transferDataItem.children) {\n result.children = getTransferData(transferDataItem.children, keys, true);\n }\n return result;\n });\n return list;\n}\n\nfunction isAllNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n return false;\n}\n\nfunction isTreeNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (!data) return !needMatch;\n\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n\n if (data.children?.length) {\n return data.children.some((item) => isTreeNodeValid(item, filterValues, needMatch));\n }\n return !needMatch;\n}\n\n// 复制树并过滤节点\nfunction cloneTreeWithFilter(\n sourceTree: TransferItemOption[],\n targetTree: TransferItemOption[],\n filterValues: Array,\n needMatch: boolean,\n) {\n sourceTree.forEach((item) => {\n let newNode: TransferItemOption;\n if (isAllNodeValid(item, filterValues, needMatch)) {\n // 如果当前节点直接命中,则复制所有子节点\n newNode = cloneDeep(item);\n targetTree.push(newNode);\n } else if (isTreeNodeValid(item, filterValues, needMatch)) {\n // 如果有合法子节点,就复制这个节点\n newNode = {\n ...item,\n };\n delete newNode.children;\n targetTree.push(newNode);\n if (item.children) {\n newNode.children = [];\n cloneTreeWithFilter(item.children, newNode.children, filterValues, needMatch);\n if (newNode.children.length === 0) {\n delete newNode.children;\n }\n }\n }\n });\n}\n\n// 过滤列表,如果是树的话需要保持树的结构\nfunction filterTransferData(\n data: Array,\n filterValues: Array,\n needMatch = true,\n isTreeMode = false,\n) {\n if (!isTreeMode) {\n if (needMatch) {\n // 正向过滤。要保持filterValues顺序\n return filterValues.map((value) => data.find((item) => item.value === value)).filter((item) => !!item);\n }\n // 反向过滤\n return data.filter((item) => {\n const isMatch = filterValues.includes(item.value);\n return !isMatch;\n });\n }\n\n const result: Array = [];\n cloneTreeWithFilter(data, result, filterValues, needMatch);\n return result;\n}\n\n// 获取树节点的叶子数量\nfunction getLefCount(nodes: Array): number {\n let total = 0;\n nodes.forEach((child) => {\n if (child.children && child.children.length > 0) {\n total += getLefCount(child.children);\n } else {\n total += 1;\n }\n });\n return total;\n}\n\nexport {\n findTopNode,\n getTransferListOption,\n getDataValues,\n getTransferData,\n cloneTreeWithFilter,\n filterTransferData,\n getLefCount,\n};\n","import { defineComponent, PropType } from 'vue';\nimport { SearchIcon as TdSearchIcon } from 'tdesign-icons-vue-next';\n\nimport { SearchOption } from '../types';\nimport TInput from '../../input';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\n\nexport default defineComponent({\n name: 'TTransferSearch',\n props: {\n value: {\n type: String,\n default: '',\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n onChange: Function,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const { SearchIcon } = useGlobalIcon({ SearchIcon: TdSearchIcon });\n const handleChange = (value: string, changeCtx: any) => {\n const { e, trigger } = changeCtx;\n props.onChange?.({\n value,\n e,\n trigger,\n });\n };\n const inputProps = typeof props.search === 'object' ? props.search : { clearable: true };\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n EmptyType,\n SearchEvent,\n SearchOption,\n TransferValue,\n TdTransferProps,\n TransferListType,\n TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useTNodeDefault } from '../../hooks/tnode';\n\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { isString } from 'lodash-es';\nimport { filter } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n checkboxProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n dataSource: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n listType: {\n type: String as PropType,\n default: 'target',\n },\n title: {\n type: [String, Function],\n },\n checkedValue: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n transferItem: Function as PropType,\n empty: {\n type: [Function, String] as PropType,\n },\n pagination: [Boolean, Object],\n footer: [Function, String],\n checkAll: Boolean,\n isTreeMode: {\n type: Boolean as PropType,\n default: false,\n },\n onCheckedChange: Function as PropType<(event: Array) => void>,\n onPageChange: Function,\n onScroll: Function,\n onSearch: Function,\n onDataChange: Function as PropType<(data: Array, movedValue: Array) => void>,\n draggable: Boolean,\n currentValue: {\n type: Array as PropType>,\n },\n};\n\nexport default defineComponent({\n name: 'TTransferList',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const { currentValue } = toRefs(props);\n const { t, globalConfig } = useConfig('transfer');\n // 搜索框输入内容\n const filterValue = ref('');\n // 用于兼容处理 Pagination 的非受控属性(非受控属性仅有 change 事件变化,无 props 变化,因此只需监听事件)\n const defaultCurrent = ref(1);\n // 用于兼容处理 Pagination 的非受控属性\n const defaultPageSize = ref(0);\n\n const currentPage = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n });\n const pageSize = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n });\n\n const filteredData = computed(() => {\n const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n if (!isTreeData) {\n return props.dataSource.filter((item: TransferItemOption) => {\n const label = item && item.label.toString();\n return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n });\n } else {\n return filteredTreeData(props.dataSource, filterValue.value);\n }\n });\n\n const pageTotal = computed(() => {\n return (filteredData.value && filteredData.value.length) || 0;\n });\n\n const curPageData = computed(() => {\n let pageData = filteredData.value;\n if (!props.pagination) return pageData;\n if (pageSize.value === 0) return pageData;\n const startIndex = (currentPage.value - 1) * pageSize.value;\n const endIndex = currentPage.value * pageSize.value;\n pageData = pageData.slice(startIndex, endIndex);\n return pageData;\n });\n const paginationProps = computed(() => {\n const defaultPaginationProps: TdPaginationProps = {\n totalContent: false,\n pageSizeOptions: [],\n };\n return typeof props.pagination === 'object'\n ? {\n ...defaultPaginationProps,\n ...props.pagination,\n size: 'small',\n theme: 'simple',\n current: currentPage.value,\n total: pageTotal.value,\n pageSize: pageSize.value,\n }\n : {};\n });\n const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n currentValue,\n curPageData,\n props.onDataChange,\n );\n const isAllChecked = computed(() => {\n const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n return (\n props.checkedValue.length > 0 &&\n (props.isTreeMode\n ? allValue.every((item) => props.checkedValue.includes(item))\n : (props.search ? filteredData.value : props.dataSource).every(\n (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n ))\n );\n });\n const indeterminate = computed(() => {\n return !isAllChecked.value && props.checkedValue.length > 0;\n });\n\n const totalCount = computed(() => {\n return getLefCount(props.dataSource);\n });\n\n watch(totalCount, (val) => {\n if (val <= (currentPage.value - 1) * pageSize.value) {\n const lastPage = Math.ceil(val / pageSize.value);\n defaultCurrent.value = lastPage;\n }\n });\n\n const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n const res = filter(cloneDeep(list), (node) => {\n if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n return true;\n }\n if (node.children && node.children.length > 0) {\n node.children = filteredTreeData(node.children, keyword);\n if (node.children.length > 0) {\n return true;\n }\n }\n return false;\n });\n return res;\n };\n\n const handlePaginationChange = (pageInfo: PageInfo) => {\n props.onPageChange?.(pageInfo);\n defaultCurrent.value = pageInfo.current;\n defaultPageSize.value = pageInfo.pageSize;\n };\n const handleCheckedChange = (val: Array) => {\n props.onCheckedChange?.(val);\n };\n const handleCheckedAllChange = (checked: boolean) => {\n if (checked) {\n const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n isTreeMode: props.isTreeMode,\n include: false,\n });\n handleCheckedChange(allValue);\n } else {\n handleCheckedChange([]);\n }\n };\n const handleScroll = (e: Event) => {\n props.onScroll?.(e);\n };\n const handleSearch = (e: any) => {\n const event: SearchEvent = {\n query: e.value,\n type: props.listType as TransferListType,\n e: e.e,\n trigger: e.trigger,\n };\n filterValue.value = e.value;\n props.onSearch?.(event);\n };\n const renderTNodeJSX = useTNodeDefault();\n const renderTitle = () => {\n const defaultNode = props.title && isString(props.title) ? : null;\n const titleNode = renderTNodeJSX('title', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n return {titleNode};\n };\n const renderContent = () => {\n const isDraggable = props.draggable && props.listType === TARGET;\n let defaultNode: JSX.Element = null;\n if (!isDraggable) {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n ))}\n \n );\n } else {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n
    \n ))}\n \n );\n }\n\n return (\n
    \n {renderTNodeJSX('tree', {\n defaultNode,\n params: {\n data: curPageData.value,\n value: props.checkedValue,\n onChange: handleCheckedChange,\n },\n })}\n
    \n );\n };\n const renderEmpty = () => {\n const empty = props.empty || t(globalConfig.value.empty);\n const defaultNode: VNode = isString(empty) ? {empty} : null;\n return (\n
    \n {renderTNodeJSX('empty', {\n defaultNode,\n params: {\n type: props.listType,\n },\n })}\n
    \n );\n };\n const renderFooter = () => {\n const defaultNode = isString(props.footer) ? (\n
    {props.footer}
    \n ) : null;\n return renderTNodeJSX('footer', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n };\n\n return () => (\n
    \n
    \n
    \n {props.checkAll && (\n \n )}\n \n {t(globalConfig.value.title, {\n checked: props.checkedValue.length,\n total: totalCount.value,\n })}\n \n
    \n {renderTitle()}\n
    \n \n {props.search && (\n \n )}\n {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n
    \n {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n
    \n \n
    \n )}\n {renderFooter()}\n \n );\n },\n});\n","import { ref, ComputedRef, Ref } from 'vue';\nimport type { TransferValue } from '../type';\nimport type { TransferItemOption } from '../types';\nexport default function useDragSort(\n currentValue: Ref>,\n curPageData: ComputedRef,\n handleDataChange: (data: Array, movedValue: Array) => void,\n) {\n const draggingIndex = ref(null);\n const dragoverIndex = ref(null);\n const dragoverPos = ref(null);\n\n const onDragStart = (e: DragEvent) => {\n const index = Number((e.target as HTMLElement).dataset.index);\n draggingIndex.value = index;\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (e.currentTarget) {\n const currentElement = e.currentTarget as HTMLElement;\n const index = Number(currentElement.dataset.index);\n const elemHeight = currentElement.offsetHeight;\n const dragY = e.clientY - currentElement.getBoundingClientRect().top;\n const insertAreaPercent = 0.3;\n const insertAreaHeight = elemHeight * insertAreaPercent;\n\n dragoverIndex.value = index;\n\n if (dragoverIndex.value === draggingIndex.value) {\n dragoverPos.value = '';\n return;\n }\n if (dragY < insertAreaHeight) {\n dragoverPos.value = 'top';\n } else if (dragY > elemHeight - insertAreaHeight) {\n dragoverPos.value = 'bottom';\n } else {\n dragoverPos.value = 'center';\n }\n }\n };\n\n const onDragLeave = () => {\n dragoverPos.value = '';\n dragoverIndex.value = null;\n };\n\n const onDragEnd = () => {\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n const currentDraggingIndex = draggingIndex.value;\n const currentDragoverIndex = dragoverIndex.value;\n\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n if (currentDraggingIndex === currentDragoverIndex) {\n return;\n }\n\n const newData = [...currentValue.value];\n\n const sourceItem = curPageData.value[currentDraggingIndex].value;\n const targetItem = curPageData.value[currentDragoverIndex].value;\n const sourceIndex = newData.indexOf(sourceItem);\n let targetIndex = newData.indexOf(targetItem);\n\n newData.splice(sourceIndex, 1);\n\n if (dragoverPos.value === 'bottom') {\n targetIndex += 1;\n }\n newData.splice(targetIndex, 0, sourceItem);\n handleDataChange?.(newData, [sourceItem, targetItem]);\n };\n\n return {\n onDragStart,\n onDragEnd,\n onDrop,\n onDragOver,\n onDragLeave,\n };\n}\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTransferProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于控制复选框属性 */\n checkboxProps: {\n type: Object as PropType,\n },\n /** 数据列表选中项 */\n checked: {\n type: Array as PropType,\n default: undefined as TdTransferProps['checked'],\n },\n /** 数据列表选中项,非受控属性 */\n defaultChecked: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultChecked'] => [],\n },\n /** 全量数据 */\n data: {\n type: Array as PropType,\n default: (): TdTransferProps['data'] => [],\n },\n /** 穿梭框可操作方向 */\n direction: {\n type: String as PropType,\n default: 'both' as TdTransferProps['direction'],\n validator(val: TdTransferProps['direction']): boolean {\n if (!val) return true;\n return ['left', 'right', 'both'].includes(val);\n },\n },\n /** 禁用全部操作:搜索、选中、移动、分页等。[源列表, 目标列表],示例:[true, false] 或者 true */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined,\n },\n /** 列表为空时呈现的内容。值类型为数组,则表示分别控制源列表和目标列表数据为空的呈现内容 */\n empty: {\n type: [String, Array, Function] as PropType,\n default: '' as TdTransferProps['empty'],\n },\n /** 穿梭框底部内容 */\n footer: {\n type: [Array, Function] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `data` 中对应的字段别名,示例:`{ label: 'text', value: 'id' }`,表示选项文本取 `text` 字段,选项值取 `id` 字段 */\n keys: {\n type: Object as PropType,\n },\n /** 方向操作按钮。默认显示组件内置操作图标。自定义操作图标示例:['向左', '向右'] 或者 `[() => , () => ]` 或者 `(h, direction) => direction === 'left' ? '《' : '》'` */\n operation: {\n type: [Array, Function] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。值类型为数组,表示可分别控制源列表和目标列表分页组件 */\n pagination: {\n type: [Object, Array] as PropType,\n },\n /** 搜索框配置,值为 false 表示不显示搜索框;值为 true 表示显示默认搜索框;值类型为对象,用于透传 Props 到 Input 组件;值类型为数组,则分别表示控制两侧搜索框 */\n search: {\n type: [Boolean, Object, Array] as PropType,\n default: false,\n },\n /** 是否显示全选,值类型为数组则表示分别控制源列表和目标列表 */\n showCheckAll: {\n type: [Boolean, Array] as PropType,\n default: true as TdTransferProps['showCheckAll'],\n },\n /** 是否允许通过拖拽对目标列表进行排序 */\n targetDraggable: Boolean,\n /** 目标数据列表排列顺序 */\n targetSort: {\n type: String as PropType,\n default: 'original' as TdTransferProps['targetSort'],\n validator(val: TdTransferProps['targetSort']): boolean {\n if (!val) return true;\n return ['original', 'push', 'unshift'].includes(val);\n },\n },\n /** 穿梭框标题,示例:['源列表', '目标列表'] 或者 `[() => 'A', () => 'B']` 或者 `({ type }) => type === 'source' ? '源' : '目标'` */\n title: {\n type: [Array, Function] as PropType,\n default: (): TdTransferProps['title'] => [] as TdTransferProps['title'],\n },\n /** 自定义渲染节点 */\n transferItem: {\n type: Function as PropType,\n },\n /** 目标数据列表数据 */\n value: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n /** 目标数据列表数据,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultValue'] => [],\n },\n /** 数据列表发生变化时触发,`type` 值为 `source`,表示源列表移动到目标列表,值为 `target` 表示目标列表移动到源列表,movedValue 则表示被移动的选项 */\n onChange: Function as PropType,\n /** 源数据列表或目标数据列表的选中项发生变化时触发,`context.type` 可以区分触发来源是目标列表,还是源列表 */\n onCheckedChange: Function as PropType,\n /** 分页发生变化时触发 */\n onPageChange: Function as PropType,\n /** 列表滚动时触发,bottomDistance 表示元素滚动到底部的距离 */\n onScroll: Function as PropType,\n /** 搜索时触发,options.query 表示用户输入的内容 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, createElementVNode, PropType, h } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { TNode } from '../../common';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport props from '../props';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTransferOperations',\n props: {\n // 控制左按钮的禁用与否\n leftDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n // 控制右按钮的禁用与否\n rightDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n operation: props.operation,\n },\n emits: ['moveToRight', 'moveToLeft'],\n setup(props, { slots, emit }) {\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon, ChevronLeftIcon } = useGlobalIcon({\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n });\n const moveToRight = () => {\n emit('moveToRight');\n };\n const moveToLeft = () => {\n emit('moveToLeft');\n };\n const getIconRight = () => {\n return ;\n };\n const getIconLeft = () => {\n return ;\n };\n const getIcon = (direction: 'left' | 'right') => {\n if (isFunction(props.operation)) {\n return null;\n }\n if (direction === 'right' && props.operation && isFunction(props.operation[0])) {\n return null;\n }\n if (direction === 'left' && props.operation && isFunction(props.operation[1])) {\n return null;\n }\n\n if (slots.operation) {\n return null;\n }\n\n return direction === 'left' ? getIconLeft : getIconRight;\n };\n // right:去右边,left:去左边\n const renderButton = (h: typeof createElementVNode, direction: 'left' | 'right') => {\n if (isFunction(slots.operation)) {\n return slots.operation({\n direction,\n });\n }\n if (isFunction(props.operation)) {\n const renderContent = props.operation;\n return renderContent(h as any, { direction });\n }\n let renderContent: string | TNode;\n if (isArray(props.operation)) {\n const [left, right] = props.operation;\n renderContent = direction === 'right' ? right : left;\n } else {\n renderContent = '';\n }\n return renderContent;\n };\n\n return () => (\n
    \n \n {slots.operation || (isArray(props.operation) && props.operation[1]) ? renderButton(h, 'right') : null}\n \n \n {slots.operation || (isArray(props.operation) && props.operation[0]) ? renderButton(h, 'left') : null}\n \n
    \n );\n },\n});\n","import { defineComponent, computed, toRefs } from 'vue';\nimport { pick } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\n\nimport TransferList from './components/transfer-list';\nimport TransferOperations from './components/transfer-operations';\nimport { TransferListType, CheckedOptions, TransferValue, EmptyType, TargetParams, SearchEvent } from './types';\n\nimport {\n getTransferListOption,\n getDataValues,\n getTransferData,\n filterTransferData,\n TRANSFER_NAME,\n SOURCE,\n TARGET,\n} from './utils';\nimport { PageInfo, TdPaginationProps } from '../pagination/type';\nimport props from './props';\nimport { TNode } from '../common';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: TRANSFER_NAME,\n props,\n\n setup(props, { slots }) {\n const disabled = useDisabled();\n const classPrefix = usePrefixClass();\n const { value, modelValue, checked } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n // @ts-ignore TODO\n const [innerChecked] = useDefaultValue(checked, props.defaultChecked, props.onCheckedChange, 'checked');\n const valueList = computed(() => innerValue.value);\n\n const isTreeMode = computed(() => {\n const treeSlot = slots.tree;\n return isFunction(treeSlot);\n });\n\n const leftButtonDisabled = computed(() => props.direction === 'right');\n const rightButtonDisabled = computed(() => props.direction === 'left');\n // props 传入的 data 格式化后的数据\n const transferData = computed(() => {\n return getTransferData(props.data, props.keys, isTreeMode.value);\n });\n const sourceList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], false, isTreeMode.value);\n });\n const targetList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], true, isTreeMode.value);\n });\n // 被选中的value\n const checkedValue = computed(() => {\n return {\n [SOURCE]: getDataValues(sourceList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n [TARGET]: getDataValues(targetList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n };\n });\n const hasFooter = computed(() => {\n return !!slots.footer || !!props.footer;\n });\n const showPagination = computed(() => {\n // 翻页在自定义列表无效\n return !!props.pagination && !slots.content;\n });\n const showSearch = computed(() => {\n // 翻页在自定义列表无效\n return !!props.search;\n });\n const footerOption = computed(() => {\n const footer = props.footer || '';\n return getTransferListOption(footer);\n });\n const emptyOption = computed(() => {\n return getTransferListOption(props.empty);\n });\n const searchOption = computed(() => {\n return getTransferListOption(props.search);\n });\n const checkAllOption = computed(() => {\n return getTransferListOption(props.showCheckAll);\n });\n const disabledOption = computed(() => {\n return getTransferListOption(disabled.value);\n });\n const titleOption = computed(() => {\n return getTransferListOption>(props.title);\n });\n const paginationOption = computed(() => {\n return getTransferListOption(props.pagination);\n });\n\n const handleCheckedChange = (val: Array, listType: TransferListType) => {\n const sourceChecked = listType === SOURCE ? val : checkedValue.value[SOURCE];\n const targetChecked = listType === TARGET ? val : checkedValue.value[TARGET];\n const checked = [...sourceChecked, ...targetChecked];\n const event: CheckedOptions = {\n checked,\n sourceChecked,\n targetChecked,\n type: listType,\n };\n // TODO onCheckedChange 参数有点不合理\n innerChecked.value = checked;\n props.onCheckedChange?.(event);\n };\n\n const transferTo = (toDirection: TransferListType) => {\n const oldTargetValue: Array = JSON.parse(JSON.stringify(valueList.value));\n let newTargetValue: Array;\n const selfCheckedValue = toDirection === TARGET ? checkedValue.value[SOURCE] : checkedValue.value[TARGET];\n // target->source\n if (toDirection === SOURCE) {\n newTargetValue = oldTargetValue.filter((v) => !selfCheckedValue.includes(v));\n } else if (props.targetSort === 'original') {\n // 按照原始顺序\n const remainValue = transferData.value.reduce((acc, data) => {\n if (oldTargetValue.includes(data.value) && data.disabled) {\n return acc.concat(data.value);\n }\n return acc;\n }, []);\n newTargetValue = getDataValues(transferData.value, oldTargetValue.concat(selfCheckedValue), {\n isTreeMode: isTreeMode.value,\n remainValue,\n });\n } else if (props.targetSort === 'unshift') {\n newTargetValue = selfCheckedValue.concat(oldTargetValue);\n } else {\n newTargetValue = oldTargetValue.concat(selfCheckedValue);\n }\n\n // 清空checked。与toDirection相反\n handleCheckedChange([], toDirection === SOURCE ? TARGET : SOURCE);\n\n const params: TargetParams = {\n type: toDirection,\n movedValue: selfCheckedValue,\n };\n setInnerValue(newTargetValue, params);\n };\n\n // 点击移到右边按钮触发的函数\n const transferToRight = () => {\n transferTo(TARGET);\n };\n // 点击移到左边按钮触发的函数\n const transferToLeft = () => {\n transferTo(SOURCE);\n };\n\n const handleScroll = (e: Event, listType: TransferListType) => {\n const target = e.target as HTMLElement;\n const bottomDistance = target.scrollHeight - target.scrollTop - target.clientHeight;\n const event: { e: Event; bottomDistance: number; type: TransferListType } = {\n e,\n bottomDistance,\n type: listType,\n };\n props.onScroll?.(event);\n };\n const handleSearch = (e: SearchEvent) => {\n props.onSearch?.(e);\n };\n const handlePageChange = (pageInfo: PageInfo, listType: TransferListType) => {\n props.onPageChange?.(pageInfo, { type: listType });\n };\n\n const handleDataChange = (data: Array, movedValue: Array) => {\n setInnerValue(data, {\n type: TARGET,\n movedValue,\n });\n };\n const renderTransferList = (listType: TransferListType) => {\n const scopedSlots = pick(slots, ['title', 'empty', 'footer', 'operation', 'transferItem', 'default', 'tree']);\n return (\n handleCheckedChange($event, listType)}\n onScroll={($event: any) => handleScroll($event, listType)}\n onSearch={handleSearch}\n onPageChange={($event: any) => handlePageChange($event, listType)}\n isTreeMode={isTreeMode.value}\n onDataChange={handleDataChange}\n currentValue={valueList.value}\n draggable={props.targetDraggable && listType === TARGET}\n >\n {scopedSlots}\n \n );\n };\n\n return () => (\n \n {renderTransferList(SOURCE)}\n \n {renderTransferList(TARGET)}\n \n );\n },\n});\n","import _Transfer from './transfer';\nimport withInstall from '../utils/withInstall';\nimport { TdTransferProps } from './type';\n\nimport './style';\n\nexport type TransferProps = TdTransferProps;\n\nexport const Transfer = withInstall(_Transfer);\n\nexport default Transfer;\n","import { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport TimePickerPanel from './panel/time-picker-panel';\nimport TSelectInput, { SelectInputBlurContext } from '../select-input';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { TdTimePickerProps } from './type';\nimport { useReadonly } from '../hooks/useReadonly';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = () => {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimeRangePicker',\n props: { ...props, rangeInputProps: Object, popupProps: Object },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('time-range-picker');\n const { globalConfig } = useConfig('timePicker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const disabled = useDisabled();\n const currentPanelIdx = ref(undefined);\n const currentValue = ref>(TIME_PICKER_EMPTY);\n const isShowPanel = ref(false);\n const isReadOnly = useReadonly();\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n const { value, modelValue, allowInput, format } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange as any);\n\n const handleShowPopup = (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n isShowPanel.value = true;\n return;\n }\n isShowPanel.value = visible;\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = TIME_PICKER_EMPTY;\n setInnerValue(null);\n };\n\n const handleClick = ({ position }: { position: 'first' | 'second' }) => {\n currentPanelIdx.value = position === 'first' ? 0 : 1;\n };\n\n const handleTimeChange = (newValue: string | string[], e: MouseEvent) => {\n if (isArray(newValue)) {\n currentValue.value = newValue;\n } else if (currentPanelIdx.value === 0) {\n currentValue.value = [newValue, currentValue.value[1] ?? newValue];\n } else {\n currentValue.value = [currentValue.value[0] ?? newValue, newValue];\n }\n handleOnPick(newValue, e);\n };\n\n const handleInputBlur = (value: TimeRangeValue, { e }: { e: FocusEvent }) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value[currentPanelIdx.value], format.value);\n if (isValidTime) {\n const formattedVal = formatInputValue(currentValue.value[currentPanelIdx.value], format.value);\n currentPanelIdx.value === 0\n ? (currentValue.value = [formattedVal, currentValue.value[1] ?? formattedVal])\n : (currentValue.value = [currentValue.value[0] ?? formattedVal, formattedVal]);\n }\n }\n props.onBlur?.({ value, e });\n };\n\n const handleInputChange = (\n inputVal: TimeRangeValue,\n { e, position }: { e: InputEvent; position: RangeInputPosition },\n ) => {\n currentValue.value = inputVal;\n props.onInput?.({ value: innerValue.value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const handleClickConfirm = () => {\n const isValidTime = !currentValue.value.find((v) => !validateInputValue(v, format.value));\n if (isValidTime) setInnerValue(currentValue.value);\n if (props.autoSwap) autoSwapTime();\n isShowPanel.value = false;\n };\n\n const handleFocus = (value: TimeRangeValue, { e, position }: { e: FocusEvent; position: RangeInputPosition }) => {\n props.onFocus?.({ value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const autoSwapTime = () => {\n const [startTime, endTime] = currentValue.value;\n const startDayjs = dayjs(startTime, props.format);\n const endDayjs = dayjs(endTime, props.format);\n\n if (startDayjs.isAfter(endDayjs, 'second')) {\n setInnerValue([currentValue.value[1], currentValue.value[0]]);\n } else {\n setInnerValue([currentValue.value[0], currentValue.value[1]]);\n }\n };\n\n const handleOnPick = (pickValue: string | string[], e: MouseEvent) => {\n let pickedRangeValue = [];\n let context;\n if (isArray(pickValue)) {\n pickedRangeValue = pickValue;\n context = { e };\n } else if (currentPanelIdx.value === 0) {\n pickedRangeValue = [pickValue, currentValue.value[1] ?? pickValue];\n context = { e, position: 'start' as TimeRangePickerPartial };\n } else {\n pickedRangeValue = [currentValue.value[0] ?? pickValue, pickValue];\n context = { e, position: 'end' as TimeRangePickerPartial };\n }\n props.onPick?.(pickedRangeValue, context);\n };\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? TIME_PICKER_EMPTY : TIME_PICKER_EMPTY;\n if (!isShowPanel.value) currentPanelIdx.value = undefined;\n },\n );\n\n return () => (\n
    \n ,\n onClear: handleClear,\n onClick: handleClick,\n onFocus: handleFocus,\n onBlur: handleInputBlur,\n readonly: isReadOnly.value || !allowInput.value,\n activeIndex: currentPanelIdx.value,\n ...props.rangeInputProps,\n }}\n label={props.label}\n status={props.status}\n tips={props.tips}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","import _TimePicker from './time-picker';\nimport _TimeRangePicker from './time-range-picker';\nimport _TimePickerPanel from './panel/time-picker-panel';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from './type';\n\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './type';\nexport type TimePickerProps = TdTimePickerProps;\nexport type TimeRangePickerProps = TdTimeRangePickerProps;\nexport type TimePickerPanelProps = TdTimePickerProps;\n\nexport const TimePicker = withInstall(_TimePicker);\nexport const TimeRangePicker = withInstall(_TimeRangePicker);\nexport const TimePickerPanel = withInstall(_TimePickerPanel);\n\nexport default TimePicker;\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\nimport { TScroll } from '../common';\nimport useResizeObserver from './useResizeObserver';\nimport { max } from 'lodash-es';\nimport { min } from 'lodash-es';\nimport { sum } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nexport type UseVirtualScrollParams = Ref<{\n /** 列数据 */\n data: { [key: string]: any }[];\n scroll: TScroll & {\n /** 固定行(冻结行),示例:[M, N],表示冻结头 M 行和尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows?: Array;\n };\n preventResizeRefresh?: boolean;\n}>;\n\nexport interface ScrollToElementParams {\n /** 跳转元素下标 */\n index: number;\n /** 跳转元素距离顶部的距离 */\n top?: number;\n /** 单个元素高度非固定场景下,即 isFixedRowHeight = false。延迟设置元素位置,一般用于依赖不同高度异步渲染等场景,单位:毫秒 */\n time?: number;\n behavior?: 'auto' | 'smooth';\n}\n\nconst useVirtualScroll = (container: Ref, params: UseVirtualScrollParams) => {\n /** 注意测试:数据长度为空;数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n const visibleData = ref([]);\n // 用于显示表格列\n const translateY = ref((params.value.data?.length || 0) * (params.value.scroll?.rowHeight || 50));\n // 滚动高度,用于显示滚动条\n const scrollHeight = ref(0);\n // 已经通过节点渲染计算出来的各自行高\n // 不要使用响应式,数据量大时会产生卡顿\n let trHeightList: number[] = [];\n const containerHeight = ref(0);\n const containerWidth = ref(0);\n const startAndEndIndex = ref<[number, number]>([0, 15]);\n\n // 设置初始值\n const tScroll = computed(() => {\n const { scroll } = params.value;\n if (!scroll) return {};\n return {\n bufferSize: scroll.bufferSize || 10,\n isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n rowHeight: scroll.rowHeight || 47,\n threshold: scroll.threshold || 100,\n type: scroll.type,\n fixedRows: scroll.fixedRows ?? [0, 0],\n };\n });\n\n // 当前场景是否满足开启虚拟滚动的条件\n const isVirtualScroll = computed(() => {\n const { data } = params.value;\n return tScroll.value.type === 'virtual' && tScroll.value.threshold < data.length;\n });\n\n // 一次循环遍历中计算可视范围的相关信息,减少大数据量时的遍历开销\n function getVisibleRangeConfig() {\n const scrollTop = container.value?.scrollTop ?? 0;\n const fixedStart = tScroll.value.fixedRows[0];\n\n // 记录前置 buffer 的高度\n const prevBufferHeightList: number[] = [];\n // 没有被渲染的行的高度,用于设定容器的 translateY\n let hiddenHeight = 0;\n\n let visibleStart = -1;\n let visibleEnd = -1;\n\n let totalHeight = 0;\n\n for (let i = 0, len = params.value.data.length; i < len; i++) {\n const rowHeight = trHeightList[i] ?? tScroll.value.rowHeight;\n totalHeight = totalHeight + rowHeight;\n // 获取第一个可视范围内的元素\n if (totalHeight > scrollTop && visibleStart === -1) {\n visibleStart = i;\n if (visibleStart - tScroll.value.bufferSize > 0) {\n hiddenHeight = totalHeight - rowHeight - sum(prevBufferHeightList);\n }\n }\n if (visibleStart === -1) {\n prevBufferHeightList.push(rowHeight);\n if (prevBufferHeightList.length > tScroll.value.bufferSize) {\n prevBufferHeightList.shift();\n }\n }\n // 获取最后一个可视范围内的元素\n if (\n visibleEnd === -1 &&\n (totalHeight > containerHeight.value + scrollTop || i === params.value.data.length - 1)\n ) {\n visibleEnd = i;\n }\n\n if (visibleStart !== -1 && visibleEnd !== -1) {\n // 不再统计高度\n break;\n }\n }\n\n // 前后偏移 buffer\n const startIndex = max([visibleStart - tScroll.value.bufferSize, 0]);\n const endIndex = min([visibleEnd + tScroll.value.bufferSize, params.value.data.length]);\n\n // 以 sticky 定位渲染的固定行,会占据高度,影响整体高度\n const stickyHeight = sum(trHeightList.slice(0, Math.min(startIndex, fixedStart)));\n\n return {\n startIndex,\n endIndex,\n translateY: hiddenHeight - stickyHeight,\n };\n }\n\n const updateVisibleData = throttle(() => {\n // 计算前后的buffer偏移后的渲染数据\n const { startIndex, endIndex, translateY: translateYValue } = getVisibleRangeConfig();\n\n // 需要考虑固定行的情况\n const fixedRows = tScroll.value.fixedRows;\n const [fixedStart, fixedEnd] = fixedRows;\n let fixedStartData = fixedStart ? params.value.data.slice(0, fixedStart) : [];\n if (fixedStart && startIndex < fixedStart) {\n fixedStartData = fixedStartData.slice(0, startIndex);\n }\n let fixedEndData = fixedEnd ? params.value.data.slice(params.value.data.length - fixedEnd) : [];\n const bottomStartIndex = endIndex - params.value.data.length + 1 + (fixedEnd ?? 0);\n if (fixedEnd && bottomStartIndex > 0) {\n fixedEndData = fixedEndData.slice(bottomStartIndex);\n }\n\n if (startAndEndIndex.value.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n translateY.value = translateYValue;\n visibleData.value = fixedStartData.concat(params.value.data.slice(startIndex, endIndex), fixedEndData);\n startAndEndIndex.value = [startIndex, endIndex];\n }\n }, 100);\n\n // 固定高度场景,不需要通过行渲染获取高度(仅非固定高度场景需要)\n const handleRowMounted = (rowData: any) => {\n if (!isVirtualScroll.value || !rowData || tScroll.value.isFixedRowHeight || !container.value) return;\n const trHeight = rowData.ref.value?.getBoundingClientRect().height || tScroll.value.rowHeight;\n const rowIndex = rowData.data.VIRTUAL_SCROLL_INDEX;\n\n if (trHeightList[rowIndex] !== trHeight) {\n const diff = trHeight - trHeightList[rowIndex];\n trHeightList[rowIndex] = trHeight;\n // 采用 diff 的方式更新,不再遍历数组\n scrollHeight.value = scrollHeight.value + diff;\n }\n };\n\n const handleScroll = () => {\n if (!isVirtualScroll.value) return;\n updateVisibleData();\n };\n\n const refreshVirtualScroll = ([{ contentRect }]: [ResizeObserverEntry]) => {\n // 如果宽度发生变化,重置滚动位置\n if (params.value.preventResizeRefresh) return;\n const maxScrollbarWidth = 16;\n if (Math.abs(contentRect.width - containerWidth.value) > maxScrollbarWidth && !!container.value) {\n container.value.scrollTop = 0;\n translateY.value = 0;\n }\n containerWidth.value = contentRect.width;\n // 高度更新后,由 height 独立的 watch 触发可视区域的更新\n containerHeight.value = contentRect.height;\n };\n\n const addIndexToData = (data: any[]) => {\n data.forEach((item, index) => {\n // eslint-disable-next-line\n item['VIRTUAL_SCROLL_INDEX'] = index;\n });\n };\n\n const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n const scrollTop = sum(trHeightList.slice(0, index + 1)) - top;\n\n container.value.scrollTo({\n top: scrollTop,\n behavior: behavior || 'auto',\n });\n };\n\n /**\n * 滚动到指定元素(对外暴露的方法,谨慎修改)\n */\n const scrollToElement = (p: ScrollToElementParams) => {\n updateScrollTop(p);\n // 不同行高的表格需要异步计算\n if (!tScroll.value.isFixedRowHeight) {\n const duration = p.time ?? 60;\n const timer = setTimeout(() => {\n updateScrollTop(p);\n clearTimeout(timer);\n }, duration);\n }\n };\n\n // 如果初始化时 isVirtualScroll 为 false,undefined 的 ref 会导致无法监听元素高度变化\n useResizeObserver(\n computed(() => (isVirtualScroll.value ? container.value : undefined)),\n refreshVirtualScroll,\n );\n\n // 固定高度场景,可直接通过数据长度计算出最大滚动高度\n watch(\n () => [[...params.value.data], tScroll.value, isVirtualScroll.value, container.value],\n () => {\n if (!isVirtualScroll.value || !container.value) return;\n const { data } = params.value;\n addIndexToData(data);\n\n // 有可能初始化时,resize 监听没触发,尝试设置初始化容器高度\n containerHeight.value = container.value.getBoundingClientRect().height;\n\n if (trHeightList.length !== params.value.data.length) {\n // 暂时对于 table 和 tree 场景,信任之前缓存的行高\n // 后续优化可能提供一个参数,进行监听从而清除记录的行高会更好\n const initHeightList: number[] = Array.from(trHeightList);\n // 数据长度如果发生变化,裁剪高度记录的数组,避免算出异常的总高度\n initHeightList.length = params.value.data.length;\n initHeightList.fill(tScroll.value.rowHeight || 47);\n trHeightList = initHeightList;\n }\n\n scrollHeight.value = sum(trHeightList);\n\n // 清除记录的滚动顺序\n startAndEndIndex.value = [0, 0];\n updateVisibleData();\n },\n { immediate: true },\n );\n\n // 当容器高度变化后,重新计算可视区域数据\n watch(\n () => containerHeight.value,\n () => {\n updateVisibleData();\n },\n );\n\n return {\n visibleData,\n translateY,\n scrollHeight,\n isVirtualScroll,\n handleScroll,\n handleRowMounted,\n scrollToElement,\n };\n};\n\nexport type VirtualScrollConfig = ReturnType;\n\nexport default useVirtualScroll;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","// 在这个文件,解决 vue2/vue3 tree 组件依赖的差异问题\n// 除此文件之外的其他组件文件,可从 vue2 项目直接复制到 vue3 项目进行维护\nimport * as Vue from 'vue';\nimport { Ref, SetupContext, ToRefs, VNode, PropType, ComponentPublicInstance, UnwrapNestedRefs } from 'vue';\nimport { CheckboxProps } from '../checkbox';\nimport { ClassName, TScroll, Styles, TNode, TreeOptionData, TNodeReturnValue } from '../common';\nimport { TypeTreeEventState as TreeEventState } from '@tdesign/common-js/tree/types';\nimport { TdTreeProps, TreeInstanceFunctions } from './type';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport tdWithInstall from '../utils/withInstall';\nimport tdUseVModel from '../hooks/useVModel';\nimport tdUseDefaultValue from '../hooks/useDefaultValue';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\n\nexport { ref, reactive, computed, watch, onMounted, toRefs, defineComponent, TransitionGroup } from 'vue';\nexport { CaretRightSmallIcon as TdCaretRightSmallIcon } from 'tdesign-icons-vue-next';\nexport { Checkbox as TCheckBox } from '../checkbox';\nexport { Loading as TLoading } from '../loading';\nexport { useConfig, usePrefixClass } from '../hooks/useConfig';\nexport { useGlobalIcon } from '../hooks/useGlobalIcon';\nexport { default as useLazyLoad } from '../hooks/useLazyLoad';\nexport { default as useVirtualScroll } from '../hooks/useVirtualScrollNew';\nexport { TreeNode, privateKey } from '@tdesign/common-js/tree/tree-node';\nexport type TypeVModel = ReturnType;\n\nexport type TypeRef = Ref;\nexport type TypeSetupContext = SetupContext;\nexport type TypeCreateElement = typeof Vue.h;\nexport type TypeVNode = VNode;\nexport type TypePropType = PropType;\nexport type TypeCheckboxProps = CheckboxProps;\nexport type TypeClassName = ClassName;\nexport type TypeScroll = TScroll;\nexport type TypeStyles = Styles;\nexport type TypeTNode = TNode;\nexport type TypeTNodeReturnValue = TNodeReturnValue;\nexport type TypeTreeOptionData = TreeOptionData;\nexport type TypeTreeEventState = TreeEventState;\nexport type TypeVirtualScrollConfig = VirtualScrollConfig;\nexport type TypeToRefs = ToRefs;\nexport type TypeUnwrapNestedRefs = UnwrapNestedRefs;\nexport interface TypeTreeInstance extends ComponentPublicInstance, TreeInstanceFunctions {}\n\nexport type TreeProps = TdTreeProps & {\n treeStore?: TreeStore;\n};\n\nexport interface TypeOnDrag {\n default?: unknown;\n}\n\nconst onDrag: TypeOnDrag = {\n default: undefined,\n};\n\nexport const isVueNext = true;\n\nexport const TreeItemDefinition = {\n name: 'TTreeNode',\n inject: {\n onDrag,\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useRipple(el: unknown) {}\n\nexport function withInstall(construct: T) {\n return tdWithInstall(construct);\n}\n\nexport interface UseVModelParams {\n value: Ref;\n eventName?: string;\n propName?: string;\n}\n\nexport function getCreateElement(h?: TypeCreateElement) {\n if (h) {\n // do nothing, just for adapt\n }\n return Vue.h;\n}\n\nexport function getScopedSlots(instance: ComponentPublicInstance) {\n return instance.$slots;\n}\n\nexport function useVModel(\n props: TreeProps & Record,\n refsProps: ToRefs & Record,\n propName = 'value',\n defaultPropName = 'defaultValue',\n eventPropName = 'onChange',\n eventName = 'change',\n) {\n if (eventName) {\n // do nothing,just for adapt\n }\n const { modelValue } = refsProps;\n let vm;\n if (propName === 'value') {\n vm = tdUseVModel(refsProps[propName], modelValue, props[defaultPropName], props[eventPropName], propName);\n } else {\n vm = tdUseDefaultValue(refsProps[propName], props[defaultPropName], props[eventPropName], propName);\n }\n return vm;\n}\n","import { throttle } from 'lodash-es';\nimport { reactive } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\n\nexport interface TypeDragStates {\n isDragOver: boolean;\n isDragging: boolean;\n dropPosition: number;\n}\n\nexport enum DragPosition {\n Before = -1,\n Inside = 0,\n After = 1,\n}\n\ntype TypeDrag = 'dragStart' | 'dragOver' | 'dragLeave' | 'dragEnd' | 'drop';\n\nexport default function useDraggable(state: TypeTreeItemState) {\n const { treeItemRef } = state;\n const dragStates = reactive({\n isDragOver: false,\n isDragging: false,\n dropPosition: DragPosition.Inside,\n });\n\n const updateDropPosition = (dragEvent: DragEvent) => {\n const rootNode = treeItemRef.value;\n if (!rootNode) return;\n\n const rect = rootNode?.getBoundingClientRect?.();\n const offsetY = window.scrollY + rect.top;\n const { pageY } = dragEvent;\n const gapHeight = rect.height / 4;\n const diff = pageY - offsetY;\n\n if (diff < gapHeight) {\n dragStates.dropPosition = DragPosition.Before;\n } else if (diff < rect.height - gapHeight) {\n dragStates.dropPosition = DragPosition.Inside;\n } else {\n dragStates.dropPosition = DragPosition.After;\n }\n };\n\n const setDragStatus = (status: TypeDrag, dragEvent: DragEvent) => {\n const { node, treeScope } = state;\n const { drag } = treeScope;\n if (!drag) return;\n\n switch (status) {\n case 'dragStart':\n dragStates.isDragging = true;\n dragStates.dropPosition = DragPosition.Inside;\n drag.handleDragStart?.({ node, dragEvent });\n break;\n case 'dragEnd':\n dragStates.isDragging = false;\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragEnd?.({ node, dragEvent });\n break;\n case 'dragOver':\n dragStates.isDragOver = true;\n throttleUpdateDropPosition(dragEvent);\n drag.handleDragOver?.({ node, dragEvent });\n break;\n case 'dragLeave':\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragLeave?.({ node, dragEvent });\n break;\n case 'drop':\n drag.handleDrop?.({ node, dropPosition: dragStates.dropPosition, dragEvent });\n dragStates.isDragOver = false;\n throttleUpdateDropPosition.cancel();\n break;\n default:\n break;\n }\n };\n\n const handleDragStart = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragStart', evt);\n\n try {\n // ie throw error firefox-need-it\n evt.dataTransfer?.setData('text/plain', '');\n } catch (e) {\n // empty\n }\n };\n\n const handleDragEnd = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragEnd', evt);\n };\n\n const handleDragOver = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('dragOver', evt);\n };\n\n const handleDragLeave = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragLeave', evt);\n };\n\n const handleDrop = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('drop', evt);\n };\n\n const throttleUpdateDropPosition = throttle((dragEvent: DragEvent) => {\n updateDropPosition(dragEvent);\n });\n\n return {\n dragStates,\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n}\n","import { camelCase } from 'lodash-es';\nimport { TypeVNode, TypeSetupContext, isVueNext } from './adapt';\nimport {\n TreeProps,\n TypeTreeStore,\n TypeTreeNode,\n TypeMark,\n TypeLineModel,\n TypeTNodeProp,\n TypeGetTNodeOption,\n TypeTargetNode,\n} from './tree-types';\n\nexport function emitEvent(\n props: TreeProps & Record,\n context: TypeSetupContext,\n evtName: string,\n ...args: T\n) {\n const apiName = camelCase(`on-${evtName}`);\n evtName.replace(/^on/, '').toLowerCase();\n if (typeof props[apiName] === 'function') {\n props[apiName](...args);\n }\n if (!isVueNext) {\n // vue3 调用 props.onClick 时就已经派发了事件了\n context.emit(evtName, ...args);\n }\n}\n\nexport function getParentsToRoot(element?: HTMLElement, root?: HTMLElement): HTMLElement[] {\n const list = [];\n let el: HTMLElement = element;\n while (el && el.parentNode) {\n list.push(el);\n if (el === root) {\n break;\n }\n el = el.parentNode as HTMLElement;\n }\n return list;\n}\n\nexport function getParentMarks(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark[] {\n const list = getParentsToRoot(element, root);\n return list\n .map((el) => {\n const mark: TypeMark = {\n name,\n value: el?.getAttribute(name) || '',\n el,\n };\n return mark;\n })\n .filter((mark) => mark.value);\n}\n\nexport function getMark(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark {\n const list = getParentMarks(name, element, root);\n const info = list.pop() || null;\n return info;\n}\n\nexport function pathMatchClass(name: string, element?: HTMLElement, root?: HTMLElement): boolean {\n const list = getParentsToRoot(element, root);\n const rs = list.some((el) => el.classList.contains(name));\n return rs;\n}\n\nexport function getTNode(prop: TypeTNodeProp, options: TypeGetTNodeOption): string | TypeVNode {\n let tnode = null;\n let item = null;\n const conf = {\n ...options,\n };\n if (typeof prop === 'function') {\n item = prop(conf.createElement, conf.node?.getModel());\n } else if (typeof prop === 'string') {\n item = prop;\n }\n if (typeof item === 'string') {\n tnode = item;\n } else if (item) {\n tnode = item as TypeVNode;\n }\n return tnode;\n}\n\n// 获取一个节点层级位置的连线模型\nexport function getLineModel(nodes: TypeTreeNode[], node: TypeTreeNode, index: number): TypeLineModel {\n // 标记 [上,右,下,左] 是否有连线\n const lineModel: TypeLineModel = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n\n let nodeChildren = [];\n if (Array.isArray(node.children)) {\n nodeChildren = node.children;\n }\n const childNode = nodes[index - 1] || null;\n const nodeItemIndex = childNode ? childNode.getIndex() : 0;\n\n if (index === 0) {\n lineModel.left = !!node.parent;\n lineModel.bottom = node.children && node.expanded;\n lineModel.right = node.parent && !node.children;\n } else if (index === 1) {\n lineModel.top = true;\n lineModel.right = true;\n lineModel.bottom = nodeItemIndex < nodeChildren.length - 1;\n } else if (nodeItemIndex < nodeChildren.length - 1) {\n lineModel.top = true;\n lineModel.bottom = true;\n }\n\n return lineModel;\n}\n\nexport function isTreeNodeValue(item: unknown): boolean {\n return typeof item === 'string' || typeof item === 'number';\n}\n\nexport function getNode(store: TypeTreeStore, item: TypeTargetNode): TypeTreeNode {\n let node = null;\n let val = null;\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item && isTreeNodeValue(item.value)) {\n val = item.value;\n }\n node = store.getNode(val);\n return node;\n}\n","import { usePrefixClass } from '../adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../tree-types';\nimport { getNode, pathMatchClass } from '../util';\n\n// tree 组件节点状态设置\nexport default function useTreeAction(state: TypeTreeState) {\n const treeState = state;\n const { store } = treeState;\n const componentName = usePrefixClass('tree').value;\n\n const [tValue, setTValue] = state.vmValue;\n const [tActived, setTActived] = state.vmActived;\n const [tExpanded, setTExpanded] = state.vmExpanded;\n\n const setExpanded = (item: TypeTargetNode, isExpanded: boolean): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeExpandEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n const target = mouseEvent.target as HTMLElement;\n const currentTarget = mouseEvent.currentTarget as HTMLElement;\n if (pathMatchClass(`${componentName}__icon`, target, currentTarget)) {\n evtCtx.trigger = 'icon-click';\n }\n }\n const expanded = node.setExpanded(isExpanded, {\n directly: true,\n });\n setTExpanded(expanded, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceExpanded((tExpanded.value || []) as TreeNodeValue[]);\n }\n return expanded;\n };\n\n const toggleExpanded = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n\n if (!node.children) return;\n\n return setExpanded(node, !node.isExpanded());\n };\n\n const setActived = (item: TypeTargetNode, isActived: boolean) => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeActiveEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const actived = node.setActived(isActived, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTActived(actived, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceActived((tActived.value || []) as TreeNodeValue[]);\n }\n return actived;\n };\n\n const toggleActived = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n return setActived(node, !node.isActived());\n };\n\n const setChecked = (item: TypeTargetNode, isChecked: boolean, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = ctx?.e as MouseEvent;\n const evtCtx: TypeChangeEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const checked = node.setChecked(isChecked, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTValue(checked, evtCtx);\n // 这是针对受控执行的操作,如果 props.value 未变更,则执行还原操作\n if (evtCtx.trigger !== 'setItem') {\n store.replaceChecked((tValue.value || []) as TreeNodeValue[]);\n }\n return checked;\n };\n\n const toggleChecked = (item: TypeTargetNode, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n if (node.isIndeterminate()) {\n const expectState = node.hasEnableUnCheckedChild();\n return setChecked(node, expectState, ctx);\n }\n return setChecked(node, !node.isChecked(), ctx);\n };\n\n return {\n setExpanded,\n toggleExpanded,\n setActived,\n toggleActived,\n setChecked,\n toggleChecked,\n };\n}\n","import { TypeCheckboxProps, usePrefixClass } from '../adapt';\nimport { TypeEventState, TypeTreeItemState } from '../tree-types';\n// 这里封装 tree-item 的一般事件\n// 拖动事件,虚拟滚动事件不要安排到这里\nexport default function useItemEvents(state: TypeTreeItemState) {\n const { context } = state;\n const classPrefix = usePrefixClass().value;\n\n const handleChange: TypeCheckboxProps['onChange'] = (_, ctx) => {\n const { node } = state;\n const event = new Event('change');\n const evtContext: TypeEventState = {\n event,\n node,\n };\n context.emit('change', evtContext, ctx);\n };\n\n let clicked = false;\n\n const handleClick = (evt: MouseEvent) => {\n const { node, treeScope } = state;\n const { treeProps = {} } = treeScope;\n const { expandOnClickNode } = treeProps;\n const srcTarget = evt.target as HTMLElement;\n const isBranchTrigger =\n node.children &&\n expandOnClickNode &&\n (srcTarget.className === `${classPrefix}-checkbox__input` || srcTarget.tagName.toLowerCase() === 'input');\n\n // checkbox 上也有 emit click 事件\n // 用这个逻辑避免重复的 click 事件被触发\n if (clicked || isBranchTrigger) return;\n clicked = true;\n // 为保持事件响应敏捷,立即还原 clicked 状态\n setTimeout(() => {\n clicked = false;\n });\n\n // 处理expandOnClickNode时与checkbox的选中的逻辑冲突\n if (expandOnClickNode && node.children && srcTarget.className?.indexOf?.(`${classPrefix}-tree__label`) !== -1)\n evt.preventDefault();\n\n const evtContext: TypeEventState = {\n mouseEvent: evt,\n event: evt,\n node,\n path: node.getPath(),\n };\n context.emit('click', evtContext);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { usePrefixClass, useGlobalIcon, TypeCreateElement, TLoading, TdCaretRightSmallIcon } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点图标\nexport default function useRenderIcon(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const getFolderIcon = (h: TypeCreateElement) => {\n const { CaretRightSmallIcon } = useGlobalIcon({\n CaretRightSmallIcon: TdCaretRightSmallIcon,\n });\n return ;\n };\n\n const handleMousedown = (evt: MouseEvent) => {\n // 在点击展开按钮 mousedown阶段 阻止冒泡 应用于处理如展开阻止下拉框失焦等场景\n evt.preventDefault();\n };\n\n const renderIcon = (h: TypeCreateElement) => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { icon } = treeProps;\n let isDefaultIcon = false;\n\n let iconNode = null;\n if (icon === true) {\n if (scopedSlots?.icon) {\n iconNode = scopedSlots.icon({\n node: node?.getModel(),\n });\n } else if (!node.vmIsLeaf) {\n isDefaultIcon = true;\n iconNode = getFolderIcon(h);\n if (node.loading && node.expanded) {\n iconNode = ;\n }\n } else {\n iconNode = '';\n }\n } else if (icon) {\n iconNode = getTNode(icon, {\n createElement: h,\n node,\n });\n }\n\n const wrapIconNode = (\n \n {iconNode}\n \n );\n return wrapIconNode;\n };\n\n return {\n renderIcon,\n };\n}\n","import { isBoolean } from 'lodash-es';\nimport { usePrefixClass, TypeCreateElement, computed, TCheckBox, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\nimport useItemEvents from './useItemEvents';\n\n// 渲染节点文本与内容\nexport default function useRenderLabel(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleChange } = useItemEvents(state);\n\n const renderLabel = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots, treeProps = {} } = treeScope;\n const { label, expandOnClickNode } = treeProps;\n const checkProps = treeProps?.checkProps || {};\n\n let labelNode = null;\n if (label === true) {\n if (scopedSlots?.label) {\n labelNode = scopedSlots.label({\n node: node?.getModel(),\n });\n } else {\n labelNode = node.label || '';\n }\n } else {\n labelNode = getTNode(label, {\n createElement: h,\n node,\n });\n }\n\n const labelClasses = [\n `${componentName}__label`,\n {\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n },\n ];\n\n const shouldStopLabelTrigger = computed(() => {\n const isNormalBranchNode = Array.isArray(node.children) && node.children?.length > 0;\n // 延迟加载子节点场景\n const isLazyLoadChildBranchNode = isBoolean(node.children) && node.children;\n const isBranchNode = isNormalBranchNode || isLazyLoadChildBranchNode;\n return expandOnClickNode && isBranchNode;\n });\n\n if (node.vmCheckable) {\n let checkboxDisabled = false;\n if (node.vmIsLocked && !node.vmIsRest) {\n checkboxDisabled = true;\n }\n if (node.isDisabled()) {\n checkboxDisabled = true;\n }\n const itemCheckProps = {\n ...checkProps,\n disabled: checkboxDisabled,\n };\n\n labelNode = (\n \n {labelNode}\n \n );\n } else {\n const inner = {labelNode};\n // 使用key是为了避免元素复用,从而顺利移除ripple指令\n labelNode = node.isActivable() ? (\n \n {inner}\n \n ) : (\n \n {inner}\n \n );\n }\n\n return labelNode;\n };\n\n return {\n renderLabel,\n };\n}\n","import { onMounted, reactive, TypeCreateElement, usePrefixClass, useLazyLoad, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport useItemEvents from './useItemEvents';\nimport useRenderIcon from './useRenderIcon';\nimport useRenderLabel from './useRenderLabel';\nimport useRenderLine from './useRenderLine';\nimport useRenderOperations from './useRenderOperations';\nimport useDraggable from './useDraggable';\nimport { onUpdated } from 'vue';\n\nexport default function useTreeItem(state: TypeTreeItemState) {\n const { treeScope, treeItemRef } = state;\n const { virtualConfig, treeContentRef, scrollProps } = treeScope;\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleClick } = useItemEvents(state);\n const { renderIcon } = useRenderIcon(state);\n const { renderLabel } = useRenderLabel(state);\n const { renderLine } = useRenderLine(state);\n const { renderOperations } = useRenderOperations(state);\n const { dragStates, handleDragStart, handleDragEnd, handleDragOver, handleDragLeave, handleDrop } =\n useDraggable(state);\n\n const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n treeContentRef,\n treeItemRef,\n reactive({ ...scrollProps?.value }),\n );\n\n function tryNotifyVirtualScrollRowUpdate() {\n const { node } = state;\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n // mounted 了,但是有可能样式没有计算完毕,此时获取的 row height 会有坑,延迟一点点再触发虚拟滚动的 mounted 回调,确保获取到正确的渲染高度\n const timer = setTimeout(() => {\n virtualConfig.handleRowMounted({\n ref: treeItemRef,\n data: node,\n });\n clearTimeout(timer);\n }, 100);\n }\n }\n\n onMounted(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 有可能因为 row-key 带来组件复用,这时候通过 update 进行更新\n onUpdated(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 节点隐藏用 class 切换,不要写在 js 中\n const getItemStyles = (): string => {\n const { node } = state;\n const { level } = node;\n // 原本想在这里计算 --hscale\n // 实际操作中发现 scrollHeight 在动画执行到一半的时候取得了错误的值\n // 导致 hscale 值获取错误\n // 暂无合适的方案,先搁置 hscale 自动计算策略\n const levelStyle = `--level: ${level};`;\n const strStyle = `${levelStyle}`;\n return strStyle;\n };\n\n const getItemClassList = () => {\n const { node } = state;\n const { isDragOver, isDragging, dropPosition } = dragStates;\n const list = [];\n list.push(`${componentName}__item`);\n list.push({\n [`${componentName}__item--open`]: node.expanded,\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n [`${classPrefix}-is-disabled`]: node.isDisabled(),\n });\n list.push({\n [`${componentName}__item--draggable`]: node.isDraggable(),\n });\n if (node.visible) {\n list.push(`${componentName}__item--visible`);\n } else {\n list.push(`${componentName}__item--hidden`);\n }\n if (node.vmIsLocked) {\n list.push(`${componentName}__item--locked`);\n }\n if (node.vmIsRest) {\n list.push(`${componentName}__item--matched`);\n }\n // 拖拽过程样式相关classList\n list.push({\n [`${componentName}__item--dragging`]: isDragging,\n [`${componentName}__item--tip-top`]: isDragOver && dropPosition < 0,\n [`${componentName}__item--tip-bottom`]: isDragOver && dropPosition > 0,\n [`${componentName}__item--tip-highlight`]: !isDragging && isDragOver && dropPosition === 0,\n });\n return list;\n };\n\n const renderItem = (h: TypeCreateElement) => {\n const itemNodes: TypeVNode[] = [];\n // 第一步是渲染图标\n const iconNode = renderIcon(h);\n // 渲染连线排在渲染图标之后,是为了确认图标是否存在\n const lineNode = renderLine(h);\n if (lineNode) {\n itemNodes.push(lineNode);\n }\n if (iconNode) {\n itemNodes.push(iconNode);\n }\n const labelNode = renderLabel(h);\n if (labelNode) {\n itemNodes.push(labelNode);\n }\n const opNode = renderOperations(h);\n if (opNode) {\n itemNodes.push(opNode);\n }\n return itemNodes;\n };\n\n const renderItemNode = (h: TypeCreateElement) => {\n const { node, props } = state;\n if (!node) return null;\n\n const { level, value } = node;\n const styles = getItemStyles();\n const classList = getItemClassList();\n\n // 这里的代码用于 vue2 组件触发节点更新\n // 即使是新增的属性,调用 node.setData 也会触发节点更新\n const treeState = state;\n treeState.stateId = props.stateId;\n\n const itemNode = (\n handleClick(evt)}\n draggable={node.isDraggable()}\n onDragstart={(evt: DragEvent) => handleDragStart(evt)}\n onDragend={(evt: DragEvent) => handleDragEnd(evt)}\n onDragover={(evt: DragEvent) => handleDragOver(evt)}\n onDragleave={(evt: DragEvent) => handleDragLeave(evt)}\n onDrop={(evt: DragEvent) => handleDrop(evt)}\n >\n {hasLazyLoadHolder.value ? [
    ] : renderItem(h)}\n
    \n );\n return itemNode;\n };\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n renderItemNode,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TreeNode, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点连线\nexport default function useRenderLine(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderLine = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { line } = treeProps;\n const iconVisible = !!treeProps.icon;\n\n let lineNode = null;\n if (line === true) {\n if (scopedSlots?.line) {\n lineNode = scopedSlots.line({\n node: node?.getModel(),\n });\n } else if (node.parent && node.tree) {\n const { vmIsLeaf, vmIsFirst, level } = node;\n\n const lineClasses = [];\n\n // 每个节点绘制抵达上一层级的折线\n lineClasses.push(`${componentName}__line`);\n\n // 叶子节点,折线宽度延长,因为没有 icon 呈现\n // 任意节点,icon 不呈现时也是要延长折线宽度\n if (vmIsLeaf || !iconVisible) {\n lineClasses.push(`${componentName}__line--leaf`);\n }\n\n // 分支首节点,到上一节点的折线高度要缩短,让位给 icon 呈现\n // 如果 icon 隐藏了,则不必缩短折线高度\n if (vmIsFirst && iconVisible) {\n lineClasses.push(`${componentName}__line--first`);\n }\n\n // 如果节点的父节点,不是最后的节点\n // 则需要绘制节点延长线\n const shadowStyles: string[] = [];\n const parents = node.getParents();\n parents.pop();\n parents.forEach((pnode: TreeNode, index: number) => {\n if (!pnode.vmIsLast) {\n shadowStyles.push(`calc(-${index + 1} * var(--space)) 0 var(--color)`);\n }\n });\n\n const styles = {\n '--level': level ? String(level) : undefined,\n 'box-shadow': shadowStyles.join(','),\n };\n\n lineNode = ;\n }\n } else {\n lineNode = getTNode(line, {\n createElement: h,\n node,\n });\n }\n return lineNode as TypeVNode;\n };\n\n return {\n renderLine,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点操作区域\nexport default function useRenderOperations(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderOperations = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { operations } = treeProps;\n\n let opNode = null;\n if (scopedSlots?.operations) {\n opNode = scopedSlots.operations({\n node: node?.getModel(),\n });\n } else {\n opNode = getTNode(operations, {\n createElement: h,\n node,\n });\n }\n if (opNode) {\n opNode = (\n // TODO: 这里最好修改一下,改成 data-ignore 之类的\n // @ts-ignore\n \n {opNode}\n \n );\n }\n return opNode as TypeVNode;\n };\n\n return {\n renderOperations,\n };\n}\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '../utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport default function useLazyLoad(\n containerRef: Ref,\n childRef: Ref,\n params: UseLazyLoadParams,\n) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import {\n TypePropType,\n defineComponent,\n TypeCreateElement,\n ref,\n TreeItemDefinition,\n useRipple,\n getCreateElement,\n} from './adapt';\nimport { TypeTreeItemProps } from './tree-types';\nimport useItemState from './hooks/useItemState';\nimport useTreeItem from './hooks/useTreeItem';\n\nexport const treeItemProps = {\n stateId: {\n type: String as TypePropType,\n },\n itemKey: {\n type: String as TypePropType,\n },\n rowIndex: {\n type: Number as TypePropType,\n },\n treeScope: {\n type: Object as TypePropType,\n },\n};\n\nexport default defineComponent({\n props: treeItemProps,\n ...TreeItemDefinition,\n setup(props: TypeTreeItemProps, context) {\n const { state } = useItemState(props, context);\n const { treeItemRef } = state;\n const label = ref();\n useRipple(label);\n const { renderItemNode } = useTreeItem(state);\n\n return {\n treeItemRef,\n renderItemNode,\n };\n },\n render(h: TypeCreateElement) {\n const createElement = getCreateElement(h);\n // 这个类型判断看起来多此一举\n // 然而单元测试时没有它却会报错:\n // This expression is not callable. Type '{}' has no call signatures.\n if (typeof this.renderItemNode === 'function') {\n return this.renderItemNode(createElement);\n }\n return null;\n },\n});\n","import { ref, toRefs, TypeSetupContext } from '../adapt';\nimport { TypeTreeItemProps, TypeTreeItemState } from '../tree-types';\n\n// 提供公共对象\nexport default function useItemState(props: TypeTreeItemProps, context: TypeSetupContext) {\n const refProps = toRefs(props);\n const treeItemRef = ref(null);\n const { treeScope } = props;\n const { store } = treeScope;\n const node = store.privateMap.get(props.itemKey);\n\n const state: TypeTreeItemState = {\n stateId: props.stateId,\n props,\n context,\n treeScope,\n refProps,\n node,\n treeItemRef,\n };\n\n return {\n state,\n };\n}\n","import { ref, watch, TypeCreateElement, privateKey, TypeVNode } from '../adapt';\nimport { TypeTreeRow, TypeTreeNode, TypeTreeState } from '../tree-types';\nimport TreeItem from '../tree-item';\nimport useTreeEvents from './useTreeEvents';\n\n// tree 节点列表渲染\nexport default function useTreeNodes(state: TypeTreeState) {\n const { store, scope, allNodes, nodes, virtualConfig } = state;\n const { handleClick, handleChange } = useTreeEvents(state);\n const nodesEmpty = ref(false);\n // 用于存储已呈现节点的缓存\n const cacheMap = new Map();\n\n const refresh = () => {\n allNodes.value = store.getNodes();\n };\n\n const refreshVisibleNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) return;\n // 非虚拟滚动,渲染可视节点\n const list: TypeTreeNode[] = [];\n // 非虚拟滚动,缓存曾经展示过的节点\n let hasVisibleNode = false;\n allNodes.value.forEach((node: TypeTreeNode) => {\n if (node.visible) {\n // 曾经展示过的节点加入缓存,避免再次创建\n hasVisibleNode = true;\n cacheMap.set(node.value, node.value);\n }\n if (cacheMap.has(node.value)) {\n // 创建的节点是缓存的节点\n list.push(node);\n }\n });\n cacheMap.forEach((value) => {\n // 在缓存中清理结构变化后不存在的节点\n if (!store.getNode(value)) {\n cacheMap.delete(value);\n }\n });\n // 渲染为平铺列表\n nodes.value = list;\n nodesEmpty.value = !hasVisibleNode;\n };\n\n const refreshVirtualNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (!isVirtual) return;\n // 虚拟滚动只渲染可见节点\n const list = virtualConfig.visibleData.value;\n nodes.value = list;\n nodesEmpty.value = list.length <= 0;\n };\n\n // 创建单个 tree 节点\n const renderItem = (h: TypeCreateElement, node: TypeTreeRow, index: number, stateId: string) => {\n const rowIndex = node.VIRTUAL_SCROLL_INDEX || index;\n const nodeUniqueId = node[privateKey];\n // vue3 中,不使用动画时,传递 node, 或者单纯传递 itemKey 无法触发 treeItem 的 render 方法\n // 考虑到有必要对所有节点状态更新,所以添加 stateId 属性,专门用于触发 treeItem 的 render 方法\n // 使用动画时,transition group 触发了所有节点的 render 方法,回头可以研究看下更合适的方案\n // 未来也可以根据节点数据的具体更新状态,来决定节点更新与否\n // 考虑到 value 值有冲突可能,所以使用 privateKey 来作为节点标记\n const treeItem = (\n \n );\n return treeItem;\n };\n\n const renderTreeNodes = (h: TypeCreateElement) => {\n const stateId = `render-${new Date().getTime()}`;\n const treeNodeViews: TypeVNode[] = nodes.value.map((node: TypeTreeNode, index) =>\n renderItem(h, node, index, stateId),\n );\n return treeNodeViews;\n };\n\n watch(allNodes, refreshVisibleNodes);\n watch(virtualConfig.visibleData, refreshVirtualNodes);\n\n refresh();\n refreshVisibleNodes();\n refreshVirtualNodes();\n store.emitter.on('update', refresh);\n\n return {\n nodesEmpty,\n renderTreeNodes,\n };\n}\n","import { TreeProps, TypeTreeState, TypeEventState } from '../tree-types';\nimport { getMark, emitEvent } from '../util';\nimport useTreeAction from './useTreeAction';\n\n// tree 组件一般事件处理\nexport default function useTreeEvents(state: TypeTreeState) {\n const treeState = state;\n const { props, context } = treeState;\n const { toggleExpanded, toggleActived, toggleChecked } = useTreeAction(state);\n\n const handleClick = (evtState: TypeEventState) => {\n const { mouseEvent, event, node } = evtState;\n if (!node || !mouseEvent) return;\n\n // 用于向内部方法传递事件对象\n treeState.mouseEvent = mouseEvent;\n\n let shouldExpand = props.expandOnClickNode;\n let shouldActive = !props.disabled && !node.disabled && node.isActivable();\n\n // 给节点添加属性 trigger=\"expand,active\", ignore=\"expand,active\"\n // 来确认或者屏蔽动作\n ['trigger', 'ignore'].forEach((markName) => {\n const mark = getMark(markName, event.target as HTMLElement, event.currentTarget as HTMLElement);\n const markValue = mark?.value || '';\n if (markValue.indexOf('expand') >= 0) {\n // 路径节点包含了 trigger=\"expand\" ignore=\"expand\"\n if (markName === 'trigger') {\n shouldExpand = true;\n } else if (markName === 'ignore') {\n shouldExpand = false;\n }\n }\n if (markValue.indexOf('active') >= 0) {\n // 路径节点包含了 trigger=\"active\" ignore=\"active\"\n if (markName === 'ignore') {\n shouldActive = false;\n }\n }\n });\n\n if (shouldExpand) {\n toggleExpanded(node);\n }\n\n if (shouldActive) {\n toggleActived(node);\n }\n\n const evtCtx = {\n node: node.getModel(),\n e: mouseEvent,\n };\n emitEvent>(props, context, 'click', evtCtx);\n\n treeState.mouseEvent = null;\n };\n\n const handleChange = (evtState: TypeEventState, ctx: { e: Event }) => {\n const { disabled } = props;\n const { node } = evtState;\n if (!node || disabled || node.disabled || !node.isCheckable()) {\n return;\n }\n toggleChecked(node, ctx);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { computed, onMounted, TypeRef, useVirtualScroll, TypeScroll, TreeNode } from '../adapt';\nimport { get } from 'lodash-es';\nimport { TypeTreeState, TypeTimer } from '../tree-types';\nimport log from '@tdesign/common-js/log/index';\n\nimport type { ComponentScrollToElementParams } from '../../common';\n\n// tree 虚拟滚动整合\nexport default function useTreeScroll(state: TypeTreeState) {\n const treeState = state;\n const { props, context, allNodes, nodes, scope, treeContentRef, isScrolling } = treeState;\n\n const scrollProps: TypeRef = computed(() => ({\n // 默认一行高度为 34px\n rowHeight: 34,\n ...props.scroll,\n }));\n scope.scrollProps = scrollProps;\n\n // 虚拟滚动\n const virtualScrollParams = computed(() => {\n const list = allNodes.value.filter((node: TreeNode) => node.visible);\n return {\n data: list,\n scroll: scrollProps.value,\n preventResizeRefresh: true,\n };\n });\n\n const virtualConfig = useVirtualScroll(treeContentRef, virtualScrollParams);\n scope.virtualConfig = virtualConfig;\n treeState.virtualConfig = virtualConfig;\n\n onMounted(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n virtualConfig.handleScroll();\n }\n });\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScroll?.({ e });\n // Vue3 ignore next line\n context.emit('scroll', { e });\n };\n\n // 设置滚动结束状态\n let scrollStopTimer: TypeTimer = null;\n const setScrolling = () => {\n isScrolling.value = true;\n if (scrollStopTimer) {\n clearTimeout(scrollStopTimer);\n scrollStopTimer = null;\n }\n scrollStopTimer = setTimeout(() => {\n scrollStopTimer = null;\n isScrolling.value = false;\n }, 100);\n };\n\n let lastScrollY = 0;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n setScrolling();\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n if (isVirtual) {\n virtualConfig.handleScroll();\n nodes.value = virtualConfig.visibleData.value;\n }\n } else {\n lastScrollY = 0;\n }\n lastScrollY = top;\n emitScrollEvent(e);\n };\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n let index = params.index;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Tree', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = allNodes.value?.findIndex((item) =>\n [get(item.data, 'key'), get(item.data, props.keys?.['value'] || 'value')].includes(params.key),\n );\n if (index < 0) {\n log.error('Tree', `${params.key} does not exist in data, check \\`key\\` or \\`data\\` please.`);\n return;\n }\n }\n virtualConfig.scrollToElement({ ...params, index: index - 1 });\n };\n return {\n // 虚拟滚动相关\n treeContentRef,\n onInnerVirtualScroll,\n virtualConfig,\n scrollToElement: handleScrollTo,\n };\n}\n","import { computed, TypeStyles, usePrefixClass } from '../adapt';\nimport { TypeTreeState } from '../tree-types';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useTreeStyles(state: TypeTreeState) {\n const { props } = state;\n const componentName = usePrefixClass('tree').value;\n const classPrefix = usePrefixClass().value;\n const { virtualConfig, isScrolling, refProps } = state;\n\n const { height, maxHeight } = refProps;\n\n const treeClasses = computed(() => {\n const list: Array = [componentName];\n const { disabled, hover, transition, checkable, draggable, expandOnClickNode, scroll } = props;\n if (disabled) {\n list.push(`${classPrefix}-is-disabled`);\n }\n if (hover) {\n list.push(`${componentName}--hoverable`);\n }\n if (checkable) {\n list.push(`${componentName}--checkable`);\n }\n if (draggable) {\n list.push(`${componentName}--draggable`);\n }\n if (transition) {\n list.push(`${componentName}--transition`);\n }\n if (expandOnClickNode) {\n list.push(`${componentName}--block-node`);\n }\n\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n list.push(`${componentName}__vscroll`);\n if (isScrolling.value) {\n list.push(`${componentName}--scrolling`);\n }\n } else if (scroll && scroll.type === 'lazy') {\n list.push(`${componentName}__lazyload`);\n }\n\n return list;\n });\n\n const treeContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n overflowY: formatCSSUnit(height.value) || formatCSSUnit(maxHeight.value) ? 'auto' : undefined,\n }));\n\n const scrollStyles = computed(() => {\n // isVirtual 改为函数内取值,可接收属性的变动\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const transform = `translateY(${translateY}px)`;\n const posStyle = {\n transform,\n '-ms-transform': transform,\n '-moz-transform': transform,\n '-webkit-transform': transform,\n };\n return posStyle;\n });\n\n const cursorStyles = computed(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const translate = `translate(0, ${translateY}px)`;\n return {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n };\n });\n\n return {\n treeClasses,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 节点是否可高亮 */\n activable: Boolean,\n /** 是否允许多个节点同时高亮 */\n activeMultiple: Boolean,\n /** 高亮的节点值 */\n actived: {\n type: Array as PropType,\n default: undefined as TdTreeProps['actived'],\n },\n /** 高亮的节点值,非受控属性 */\n defaultActived: {\n type: Array as PropType,\n },\n /** 判断节点是否可以执行 drop 操作,泛型 `T` 表示树节点 TS 类型 */\n allowDrop: {\n type: Function as PropType,\n },\n /** 是否允许在过滤时节点折叠节点 */\n allowFoldNodeOnFilter: Boolean,\n /** 透传属性到 checkbox 组件。参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 隐藏节点复选框 */\n checkable: Boolean,\n /** 树数据,泛型 `T` 表示树节点 TS 类型 */\n data: {\n type: Array as PropType,\n default: (): TdTreeProps['data'] => [],\n },\n /** 禁用复选框,可支持禁用不同的行 */\n disableCheck: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['disableCheck'],\n },\n /** 是否禁用树操作 */\n disabled: Boolean,\n /** 节点是否可拖拽 */\n draggable: Boolean,\n /** 数据为空时展示的文本 */\n empty: {\n type: [String, Function] as PropType,\n default: '' as TdTreeProps['empty'],\n },\n /** 是否展开全部节点 */\n expandAll: Boolean,\n /** 默认展开的级别,第一层为 0 */\n expandLevel: {\n type: Number,\n default: 0,\n },\n /** 同级别展开互斥,手风琴效果 */\n expandMutex: Boolean,\n /** 是否支持点击节点也能展开收起 */\n expandOnClickNode: Boolean,\n /** 展开子节点时是否自动展开父节点 */\n expandParent: Boolean,\n /** 展开的节点值 */\n expanded: {\n type: Array as PropType,\n default: undefined as TdTreeProps['expanded'],\n },\n /** 展开的节点值,非受控属性 */\n defaultExpanded: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultExpanded'] => [],\n },\n /** 节点过滤方法,只呈现返回值为 true 的节点,泛型 `T` 表示树节点 TS 类型 */\n filter: {\n type: Function as PropType,\n },\n /** 树的高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px。如果不是绝对固定树的高度,建议使用 `maxHeight` */\n height: {\n type: [String, Number] as PropType,\n },\n /** 节点是否有悬浮状态 */\n hover: Boolean,\n /** 节点图标,可自定义 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdTreeProps['icon'],\n },\n /** 用来定义 `value / label / disabled / children` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }`。其中,disabled 待开发。 */\n keys: {\n type: Object as PropType,\n },\n /** 自定义节点内容,值为 `false` 不显示,值为 `true` 显示默认 label,值为字符串直接输出该字符串。泛型 `T` 表示树节点 TS 类型。
    如果期望只有点击复选框才选中,而点击节点不选中,可以使用 `label` 自定义节点,然后加上点击事件 `e.preventDefault()`,通过调整自定义节点的宽度和高度决定禁止点击选中的范围 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdTreeProps['label'],\n },\n /** 延迟加载 children 为 true 的节点的子节点数据,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 连接线。值为 false 不显示连接线;值为 true 显示默认连接线;值类型为 Function 表示自定义连接线 */\n line: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['line'],\n },\n /** 加载子数据的方法,在展开节点时调用(仅当节点 children 为 true 时生效),泛型 `T` 表示树节点 TS 类型 */\n load: {\n type: Function as PropType,\n },\n /** 树的最大高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px */\n maxHeight: {\n type: [String, Number] as PropType,\n },\n /** 自定义节点操作项,泛型 `T` 表示树节点 TS 类型 */\n operations: {\n type: Function as PropType,\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 节点展开折叠时是否使用过渡动画 */\n transition: {\n type: Boolean,\n default: true,\n },\n /** 选中值,组件为可选状态时有效 */\n value: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n /** 选中值,组件为可选状态时有效,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultValue'] => [],\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdTreeProps['valueMode'],\n validator(val: TdTreeProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 节点激活时触发,泛型 `T` 表示树节点 TS 类型 */\n onActive: Function as PropType,\n /** 节点选中状态变化时触发,context.node 表示当前变化的选项,泛型 `T` 表示树节点 TS 类型 */\n onChange: Function as PropType,\n /** 节点点击时触发,泛型 `T` 表示树节点 TS 类型 */\n onClick: Function as PropType,\n /** 节点结束拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragEnd: Function as PropType,\n /** 节点拖拽时离开目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragLeave: Function as PropType,\n /** 节点拖拽到目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragOver: Function as PropType,\n /** 节点开始拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragStart: Function as PropType,\n /** 节点在目标元素上释放时触发,泛型 `T` 表示树节点 TS 类型 */\n onDrop: Function as PropType,\n /** 节点展开或收起时触发,泛型 `T` 表示树节点 TS 类型 */\n onExpand: Function as PropType,\n /** 异步加载后触发,泛型 `T` 表示树节点 TS 类型 */\n onLoad: Function as PropType,\n /** 滚动事件 */\n onScroll: Function as PropType,\n};\n","import { isFunction } from 'lodash-es';\nimport { upperFirst } from 'lodash-es';\nimport { renderTNodeJSX } from '../utils/render-tnode';\nimport {\n defineComponent,\n getCreateElement,\n getScopedSlots,\n TransitionGroup,\n TreeNode,\n TypeCreateElement,\n TypeStyles,\n TypeTNodeReturnValue,\n TypeTreeOptionData,\n useConfig,\n usePrefixClass,\n} from './adapt';\nimport useDragHandle from './hooks/useDragHandle';\nimport useTreeAction from './hooks/useTreeAction';\nimport useTreeNodes from './hooks/useTreeNodes';\nimport useTreeScroll from './hooks/useTreeScroll';\nimport useTreeState from './hooks/useTreeState';\nimport useTreeStore from './hooks/useTreeStore';\nimport useTreeStyles from './hooks/useTreeStyles';\nimport props from './props';\nimport { TreeNodeState, TreeNodeValue, TypeTreeNodeModel } from './tree-types';\nimport { getNode } from './util';\n\n// 2022.11.02 tabliang 备注\n// 之前尝试实现了嵌套布局,原本预期嵌套布局能够提升大数据量下,全部渲染节点时的性能表现\n// 实测性能提升有限,不如使用虚拟滚动的收益高,反而导致了组件的维护困难与混乱\n// 自 2022 年初首次提出嵌套布局要求,大半年以来,对嵌套布局的需求也不是很高\n// 因此废弃嵌套布局方案,之后重点解决虚拟滚动能力\n\nexport default defineComponent({\n name: 'TTree',\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n ...props,\n },\n\n setup(props, context) {\n const { t, global } = useConfig('tree');\n const classPrefix = usePrefixClass();\n const componentName = usePrefixClass('tree');\n\n // 用于 hooks 传递数据\n const { state } = useTreeState(props, context);\n const { treeContentRef, isScrolling } = state;\n const { store, updateStoreConfig, rebuild } = useTreeStore(state);\n\n useDragHandle(state);\n const { setActived, setExpanded, setChecked } = useTreeAction(state);\n const { onInnerVirtualScroll, virtualConfig, scrollToElement } = useTreeScroll(state);\n const { renderTreeNodes, nodesEmpty } = useTreeNodes(state);\n const { treeClasses, treeContentStyles, scrollStyles, cursorStyles } = useTreeStyles(state);\n\n // 不想暴露给用户的属性与方法,统一挂载到 setup 返回的对象上\n // 实例上无法直接访问这些方法与属性\n return {\n t,\n global,\n classPrefix,\n componentName,\n state,\n store,\n treeClasses,\n treeContentRef,\n\n rebuild,\n updateStoreConfig,\n setActived,\n setExpanded,\n setChecked,\n renderTreeNodes,\n nodesEmpty,\n\n isScrolling,\n onInnerVirtualScroll,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n virtualConfig,\n scrollToElement: scrollToElement, // deprecated\n scrollTo: scrollToElement,\n };\n },\n\n watch: {\n // 实测发现,composition api 中的 refsProps watch ,回调时间迟于 $nextTick 回调\n // 因此改为在这里绑定 data 属性监听,实测这里的 watch 回调,早于 $nextTick 回调发生\n data(list) {\n this.rebuild(list);\n },\n },\n // 在 methods 提供公共方法\n // 实例上可以直接访问\n methods: {\n // 刷新树节点状态\n refresh(): void {\n this.store.refreshState();\n },\n // 设置目标节点状态\n setItem(value: TreeNodeValue, options: TreeNodeState): void {\n const node: TreeNode = this.store.getNode(value);\n const spec = options;\n const keys = Object.keys(spec);\n if (node && spec) {\n ['expanded', 'actived', 'checked'].forEach((name) => {\n if (keys.includes(name)) {\n const val = spec[name as keyof typeof spec];\n delete spec[name as keyof typeof spec];\n const methodName = `set${upperFirst(name)}`;\n const setupMethod = this[methodName];\n if (isFunction(setupMethod)) {\n setupMethod.call(this, node, val);\n }\n }\n });\n node.set(spec);\n }\n },\n // 获取目标节点\n getItem(value: TreeNodeValue): TypeTreeNodeModel {\n const node: TreeNode = this.store.getNode(value);\n return node?.getModel();\n },\n // 无 value 参数: 获取 tree 所有节点,一维结构\n // 传递 value 参数: 获取节点值对应的目标节点下,包含自己在内的所有子节点\n getItems(value?: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getNodes(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 将节点数据插入到目标节点\n // 无目标节点,则插入为根节点\n appendTo(para?: TreeNodeValue, item?: TypeTreeOptionData | TypeTreeOptionData[]) {\n const { store } = this;\n let list = [];\n if (Array.isArray(item)) {\n list = item;\n } else {\n list = [item];\n }\n list.forEach((item) => {\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.appendNodes(para, node);\n } else {\n store.appendNodes(para, item);\n }\n });\n },\n // 在指定节点之前插入单个节点数据\n insertBefore(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertBefore(value, node);\n } else {\n store.insertBefore(value, item);\n }\n },\n // 在指定节点之后插入单个节点数据\n insertAfter(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertAfter(value, node);\n } else {\n store.insertAfter(value, item);\n }\n },\n // 移除目标节点\n remove(value?: TreeNodeValue) {\n return this.store.remove(value);\n },\n // 获取节点在当前层级的 index\n getIndex(value: TreeNodeValue): number {\n return this.store.getNodeIndex(value);\n },\n // 获取父节点\n getParent(value: TreeNodeValue): TypeTreeNodeModel {\n const node = this.store.getParent(value);\n return node?.getModel();\n },\n // 获取父节点列表\n getParents(value: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getParents(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 获取路径节点列表\n getPath(value: TreeNodeValue): TypeTreeNodeModel[] {\n const node = this.store.getNode(value);\n let pathNodes: TypeTreeNodeModel[] = [];\n if (node) {\n pathNodes = node.getPath().map((node: TreeNode) => node.getModel());\n }\n return pathNodes;\n },\n // 提供树结构原始数据\n getTreeData(value?: TreeNodeValue): TypeTreeOptionData[] {\n let list: TreeNode[] = [];\n if (value) {\n const node = this.store.getNode(value);\n if (!node) return [];\n list = this.store.getNodes(value);\n } else {\n list = this.store.getNodes();\n }\n // 一维结构树节点转树结构数据\n const nodeMap: Record = {};\n const treeNodes: TypeTreeOptionData[] = [];\n list.forEach((item: TreeNode) => {\n const { value } = item;\n const itemData = {\n ...item.data,\n value,\n };\n if (itemData.children !== true) {\n delete itemData.children;\n }\n nodeMap[value] = itemData;\n const parent = item.getParent();\n if (!parent) {\n // 是根节点\n treeNodes.push(itemData);\n } else {\n const parentData = nodeMap[parent.value];\n if (!parentData) {\n // 为目标节点范围内的根节点\n treeNodes.push(itemData);\n } else {\n if (!Array.isArray(parentData.children)) {\n parentData.children = [];\n }\n parentData.children.push(itemData);\n }\n }\n });\n return treeNodes;\n },\n },\n render(h: TypeCreateElement) {\n const {\n state,\n treeClasses,\n updateStoreConfig,\n renderTreeNodes,\n nodesEmpty,\n isScrolling,\n virtualConfig,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n } = this;\n\n const createElement = getCreateElement(h);\n\n const { scope, allNodes, refProps } = state;\n // 更新 scopedSlots\n scope.scopedSlots = getScopedSlots(this);\n\n updateStoreConfig();\n\n const treeNodeViews = renderTreeNodes(createElement);\n const cname = this.componentName;\n const isVirtual = virtualConfig.isVirtualScroll.value;\n\n // 空数据判定\n let emptyNode: TypeTNodeReturnValue = null;\n if (nodesEmpty) {\n const useLocale = !this.empty && !this.$slots.empty;\n const emptyContent = useLocale ? this.t(this.global.empty) : renderTNodeJSX(this, 'empty');\n emptyNode =
    {emptyContent}
    ;\n } else if (treeNodeViews.length <= 0) {\n // 数据切换时,有闪现的缓存节点呈现\n // 用这个替换内容置空\n emptyNode =
    ;\n }\n\n // 构造列表\n const { $props } = this;\n const { transition } = $props;\n\n let treeNodeList = null;\n if (!transition || (isVirtual && isScrolling)) {\n // vue3 不使用 transition group 会导致展开收起动作异常\n treeNodeList = (\n
    \n {treeNodeViews}\n
    \n );\n } else {\n // 启用动画时,需要确保滚动中动画样式失效\n treeNodeList = (\n \n {treeNodeViews}\n \n );\n }\n\n const topValue =\n (allNodes.value?.filter((node) => node.visible).length ?? 0) * (refProps.scroll.value?.rowHeight ?? 34);\n const placeholderStyles: TypeStyles = {\n width: '1px',\n height: '1px',\n opacity: 0,\n pointerEvents: 'none',\n position: 'absolute',\n left: 0,\n top: `${topValue}px`,\n };\n\n const placeholderEl =
    ;\n\n const treeNode = (\n
    \n {isVirtual &&
    }\n {emptyNode || treeNodeList}\n {isVirtual && placeholderEl}\n
    \n );\n\n return treeNode;\n },\n});\n","import { ref, TypeRef, TreeNode, useVModel, toRefs, TypeSetupContext } from '../adapt';\nimport { TreeProps, TypeTreeStore, TypeTreeState } from '../tree-types';\n\n// 提供公共对象\nexport default function useTreeState(props: TreeProps, context: TypeSetupContext) {\n const treeContentRef = ref();\n const nodes: TypeRef = ref([]);\n const allNodes: TypeRef = ref([]);\n const isScrolling: TypeRef = ref(false);\n\n const refProps = toRefs(props);\n const vmValue = useVModel(props, refProps, 'value', 'defaultValue', 'onChange', 'change');\n const vmActived = useVModel(props, refProps, 'actived', 'defaultActived', 'onActive', 'active');\n const vmExpanded = useVModel(props, refProps, 'expanded', 'defaultExpanded', 'onExpand', 'expand');\n\n function setStore(store: TypeTreeStore) {\n state.store = store;\n state.scope.store = store;\n allNodes.value = store.getNodes();\n }\n\n const state: TypeTreeState = {\n props,\n context,\n // tree 数据对象\n store: null,\n // 内容根节点\n treeContentRef,\n // 渲染节点\n nodes,\n // 所有节点\n allNodes,\n // 是否正在滚动\n isScrolling,\n // 缓存点击事件\n mouseEvent: null,\n // 虚拟滚动对象\n virtualConfig: null,\n // 缓存与节点共享的关联对象\n scope: {\n store: null,\n treeContentRef,\n treeProps: props,\n scopedSlots: {},\n virtualConfig: null,\n },\n setStore,\n refProps,\n vmValue,\n vmActived,\n vmExpanded,\n };\n\n return {\n state,\n };\n}\n","import { pick } from 'lodash-es';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\nimport { watch, TypeRef } from '../adapt';\nimport {\n TreeProps,\n TypeValueMode,\n TreeNodeValue,\n TypeEventState,\n TypeTreeNodeModel,\n TypeTreeNode,\n TypeTNodeValue,\n TypeTreeState,\n} from '../tree-types';\n\nexport default function useTreeStore(state: TypeTreeState) {\n const { props, context, refProps } = state;\n const { valueMode, filter, keys } = props;\n\n const store: TreeStore = new TreeStore({\n valueMode: valueMode as TypeValueMode,\n filter,\n });\n\n // tValue 就是 refProps.value\n const tValue = state.vmValue[0] as TypeRef;\n // tActived 就是 refProps.actived\n const tActived = state.vmActived[0] as TypeRef;\n // tExpanded 就是 refProps.expanded\n const tExpanded = state.vmExpanded[0] as TypeRef;\n\n // 同步 Store 选项\n const updateStoreConfig = () => {\n // 统一更新选项,然后在 store 统一识别属性更新\n // 注意: keys 属性比较特殊,不应该在实例化之后再次变更\n const storeProps = pick(props, [\n 'expandAll',\n 'expandLevel',\n 'expandMutex',\n 'expandParent',\n 'activable',\n 'activeMultiple',\n 'disabled',\n 'disableCheck',\n 'checkable',\n 'draggable',\n 'checkStrictly',\n 'load',\n 'lazy',\n 'valueMode',\n 'filter',\n 'allowFoldNodeOnFilter',\n ]);\n store.setConfig(storeProps);\n };\n\n const updateExpanded = () => {\n const { expandParent } = props;\n if (!Array.isArray(tExpanded.value)) return;\n // 初始化展开状态\n // 校验是否自动展开父节点\n const expandedMap = new Map();\n tExpanded.value.forEach((val) => {\n expandedMap.set(val, true);\n if (expandParent) {\n const node = store.getNode(val);\n if (node) {\n node\n .getModel()\n .getParents()\n .forEach((tn: TypeTreeNodeModel) => {\n expandedMap.set(tn.value, true);\n });\n }\n }\n });\n const expandedArr = Array.from(expandedMap.keys());\n store.setExpanded(expandedArr);\n };\n\n let filterChanged = false;\n let prevExpanded: null | TypeTNodeValue[] = null;\n\n // store 的 update 方法触发后,可以拿到搜索命中节点的路径节点\n // 所以在 update 之后检查,如果之前 filter 有变更,则检查路径节点是否需要展开\n // 如果 filter 属性被清空,则重置为开启搜索之前的结果\n const expandFilterPath = () => {\n if (!props.allowFoldNodeOnFilter) return;\n if (!filterChanged) return;\n // 确保 filter 属性未变更时,不会重复检查展开状态\n filterChanged = false;\n\n if (props.filter) {\n if (!prevExpanded) {\n // 缓存之前的展开状态\n prevExpanded = store.getExpanded();\n }\n\n // 展开搜索命中节点的路径节点\n const pathValues: TypeTNodeValue[] = [];\n const allNodes: TypeTreeNode[] = store.getNodes();\n allNodes.forEach((node: TypeTreeNode) => {\n if (node.vmIsLocked) {\n pathValues.push(node.value);\n }\n });\n store.setExpanded(pathValues);\n } else if (prevExpanded) {\n // filter 属性置空,该还原之前的展开状态了\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n };\n\n // 这个方法监听 filter 属性,仅在 allowFoldNodeOnFilter 属性为 true 时生效\n // 仅在 filter 属性发生变更时开启检查开关,避免其他操作也触发展开状态的重置\n const checkFilterExpand = (newFilter: null | Function, previousFilter: null | Function) => {\n if (!props.allowFoldNodeOnFilter) return;\n filterChanged = newFilter !== previousFilter;\n };\n\n const handleLoad = (info: TypeEventState) => {\n const { node } = info;\n const evtCtx = {\n node: node.getModel(),\n };\n if (Array.isArray(tValue.value) && tValue.value.length > 0) {\n store.replaceChecked(tValue.value);\n }\n if (Array.isArray(tExpanded.value) && tExpanded.value.length > 0) {\n store.replaceExpanded(tExpanded.value);\n }\n if (Array.isArray(tActived.value) && tActived.value.length > 0) {\n store.replaceActived(tActived.value);\n }\n if (props?.onLoad) {\n props?.onLoad(evtCtx);\n }\n context.emit('load', evtCtx);\n };\n\n const rebuild = (list: TreeProps['data']) => {\n store.reload(list || []);\n store.refreshNodes();\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n // 更新展开状态\n updateExpanded();\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n // 刷新节点状态\n store.refreshState();\n };\n\n function initStore() {\n // keys 属性比较特殊,不应该在实例化之后再次变更\n store.setConfig({\n keys,\n });\n updateStoreConfig();\n store.append(props.data || []);\n\n // 刷新节点,必须在配置选中之前执行\n // 这样选中态联动判断才能找到父节点\n store.refreshNodes();\n\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n\n // 更新节点展开状态\n updateExpanded();\n\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n\n store.emitter.on('load', handleLoad);\n store.emitter.on('update', expandFilterPath);\n }\n\n // 初始化 store\n initStore();\n // 设置初始化状态\n state.setStore(store);\n // 配置属性监听\n watch(\n () => [...(tValue.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceChecked(nVal);\n },\n );\n watch(\n () => [...(tExpanded.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceExpanded(nVal);\n },\n );\n watch(\n () => [...(tActived.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceActived(nVal);\n },\n );\n\n watch(refProps.filter, (nVal, previousVal) => {\n checkFilterExpand(nVal, previousVal);\n });\n watch(refProps.keys, (keys) => {\n store.setConfig({\n keys,\n });\n });\n\n watch(refProps.expandAll, (nVal) => {\n if (nVal) {\n const valueList = store\n .getNodes()\n .filter((node) => Array.isArray(node.children) && node.children.length)\n .map((node) => node.value);\n store.setExpanded(valueList);\n } else {\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n });\n\n return {\n store,\n rebuild,\n checkFilterExpand,\n updateStoreConfig,\n updateExpanded,\n expandFilterPath,\n };\n}\n","import { TreeNode } from '../adapt';\nimport { TreeProps, TypeDragEventState, TypeTreeState, TypeDragHandle } from '../tree-types';\nimport { DragPosition } from './useDraggable';\nimport { emitEvent } from '../util';\n\nexport default function useDragHandle(state: TypeTreeState) {\n const { props, context, scope, store } = state;\n let dragNode: TreeNode = null;\n\n const handleDragStart = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-start', ctx);\n };\n\n const handleDragEnd = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-end', ctx);\n };\n\n const handleDragOver = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-over', ctx);\n };\n\n const handleDragLeave = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-leave', ctx);\n };\n\n const handleDrop = (state: TypeDragEventState) => {\n const { dragEvent, node, dropPosition } = state;\n if (node.value === dragNode.value || node.getParents().some((_node) => _node.value === dragNode.value)) return;\n\n const ctx = {\n dropNode: node.getModel(),\n dragNode: dragNode.getModel(),\n dropPosition,\n e: dragEvent,\n };\n\n if (props.allowDrop?.(ctx) === false) return;\n\n const nodes = store.getNodes() as TreeNode[];\n nodes.some((_node) => {\n if (_node.value === node.value) {\n if (dropPosition === DragPosition.Inside) {\n dragNode.appendTo(store, _node);\n } else if (dropPosition === DragPosition.Before) {\n node.insertBefore(dragNode);\n } else {\n node.insertAfter(dragNode);\n }\n return true;\n }\n return false;\n });\n\n emitEvent>(props, context, 'drop', ctx);\n };\n\n const drag: TypeDragHandle = {\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n\n scope.drag = drag;\n\n return {\n drag,\n };\n}\n","import _TdTree from './tree';\nimport { withInstall } from './adapt';\n\nimport './style';\n\nexport const Tree = withInstall(_TdTree);\n\nexport * from './tree-types';\nexport default Tree;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。\n `value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 数据 */\n data: {\n type: Array as PropType,\n default: (): TdTreeSelectProps['data'] => [],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传给 输入框 Input 组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined,\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 `value / label / children / disabled` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 是否正在加载数据 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTreeSelectProps['size'],\n validator(val: TdTreeSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 【开发中】透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 透传 Tree 组件的全部属性 */\n treeProps: {\n type: Object as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Object, Array] as PropType,\n },\n /** 自定义选中项呈现方式 */\n valueDisplay: {\n type: Function as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdTreeSelectProps['valueType'],\n validator(val: TdTreeSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 节点选中状态变化时触发,`context.node` 表示当前变化的选项,`context. trigger` 表示触发变化的来源 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs } from 'vue';\nimport { isArray } from 'lodash-es';\nimport { isEmpty } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isNil } from 'lodash-es';\nimport { findParentValues } from '@tdesign/common-js/tree-select/utils';\n\nimport Tree, { TreeProps, TreeNodeModel, TreeNodeValue } from '../tree';\nimport SelectInput, { TdSelectInputProps } from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { PopupVisibleChangeContext } from '../popup';\n\nimport { INodeOptions } from './interface';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions)?.value)\n : [(treeSelectValue.value as INodeOptions)?.value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件和取消选中状态改变\n if (props.multiple || !context.node.actived) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

    \n {renderTree()}\n {renderTNodeJSX('panelBottomContent')}\n
    \n ),\n collapsedItems: slots.collapsedItems,\n }}\n onInputChange={inputChange}\n onTagChange={tagChange}\n onPopupVisibleChange={handlePopupVisibleChange}\n {...(props.selectInputProps as TdTreeSelectProps['selectInputProps'])}\n />\n );\n },\n});\n","import { TreeOptionData } from '../common';\n\ntype TargetValue = string | number | object;\n\n/**\n * 递归查找指定节点的所有父节点的 value\n * @param options 树形数据\n * @param targetValue 目标节点的 value\n * @param realChildren 子节点的 key (别名)\n * @param realValue 节点的 value 的 key (别名)\n */\nexport function findParentValues(\n options: TreeOptionData[],\n targetValue: TargetValue,\n realValue: string,\n realChildren: string,\n): (TargetValue)[] {\n let currentTargetValue = targetValue;\n if (currentTargetValue != null && typeof currentTargetValue === 'object') {\n currentTargetValue = (currentTargetValue as { [key: string]: string | number })?.[realValue];\n }\n if (currentTargetValue == null) return [];\n\n function findPath(nodes: TreeOptionData[], parentPath: (TargetValue)[]): (TargetValue)[] | null {\n let result: (TargetValue)[] | null = null;\n nodes.some((node) => {\n const newPath = [...parentPath, node[realValue]];\n if (node[realValue] === currentTargetValue) {\n result = parentPath;\n return true;\n }\n if (Array.isArray(node[realChildren]) && node[realChildren].length) {\n result = findPath(node[realChildren], newPath);\n if (result !== null) {\n return true;\n }\n }\n return false;\n });\n return result;\n }\n\n return findPath(options, []) || [];\n}\n","import _TreeSelect from './tree-select';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './interface';\nexport const TreeSelect = withInstall(_TreeSelect);\nexport default TreeSelect;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdColorPickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 关闭按钮,值为 `true` 显示默认关闭按钮;值为 `false` 或 `undefined` 则不显示关闭按钮;值类型为函数,则表示自定义关闭按钮 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdColorPickerProps['closeBtn'],\n },\n /** 颜色模式选择。同时支持单色和渐变两种模式,可仅使用单色或者渐变其中一种模式,也可以同时使用。`monochrome` 表示单色,`linear-gradient` 表示渐变色 */\n colorModes: {\n type: Array as PropType,\n default: (): TdColorPickerProps['colorModes'] => ['monochrome', 'linear-gradient'],\n },\n /** 是否禁用组件 */\n disabled: Boolean,\n /** 是否开启透明通道 */\n enableAlpha: Boolean,\n /** 是否允许开启通过点击渐变轴增加渐变梯度,默认开启,关闭时只会存在起始和结束两个颜色 */\n enableMultipleGradient: {\n type: Boolean,\n default: true,\n },\n /** 格式化色值。`enableAlpha` 为真时,`RGBA/HSLA/HSVA` 等值有效 */\n format: {\n type: String as PropType,\n default: 'RGB' as TdColorPickerProps['format'],\n validator(val: TdColorPickerProps['format']): boolean {\n if (!val) return true;\n return ['RGB', 'RGBA', 'HSL', 'HSLA', 'HSB', 'HSV', 'HSVA', 'HEX', 'CMYK', 'CSS'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 【开发中】是否允许选中多个颜色 */\n multiple: Boolean,\n /** 透传 Popup 组件全部属性,如 `placement` `overlayStyle` `overlayClassName` `trigger`等 */\n popupProps: {\n type: Object as PropType,\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 null 则完全不显示“最近使用颜色” */\n recentColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['recentColors'],\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 null 则完全不显示“最近使用颜色”,非受控属性 */\n defaultRecentColors: {\n type: Array as PropType,\n default: (): TdColorPickerProps['defaultRecentColors'] => [],\n },\n /** 透传 SelectInputProps 筛选器输入框组件全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否展示颜色选择条右侧的颜色预览区域 */\n showPrimaryColorPreview: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdColorPickerProps['size'],\n validator(val: TdColorPickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 系统预设的颜色样例,值为 `null` 或 `[]` 则不显示系统色,值为 `undefined` 会显示组件内置的系统默认色 */\n swatchColors: {\n type: Array as PropType,\n },\n /** 色值 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 色值,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 选中的色值发生变化时触发,第一个参数 `value` 表示新色值,`context.color` 表示当前调色板控制器的色值,`context.trigger` 表示触发颜色变化的来源 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 调色板控制器的值变化时触发,`context.color` 指调色板控制器的值 */\n onPaletteBarChange: Function as PropType,\n /** 最近使用颜色发生变化时触发 */\n onRecentColorsChange: Function as PropType,\n};\n","/** 常量 */\n\n// 最近使用颜色最大个数\nexport const TD_COLOR_USED_COLORS_MAX_SIZE = 100; // 每行10个\n\n// 颜色模式options配置\nexport const COLOR_MODES = {\n monochrome: 'singleColor',\n 'linear-gradient': 'gradientColor',\n};\n\n// 默认颜色\nexport const DEFAULT_COLOR = '#001F97';\n\n// 默认渐变色\nexport const DEFAULT_LINEAR_GRADIENT = 'linear-gradient(90deg, rgba(241,29,0,1) 0%, rgba(73,106,220,1) 100%);';\n\n// 默认系统色彩\nexport const DEFAULT_SYSTEM_SWATCH_COLORS = [\n '#ECF2FE',\n '#D4E3FC',\n '#BBD3FB',\n '#96BBF8',\n '#699EF5',\n '#4787F0',\n '#266FE8',\n '#0052D9',\n '#0034B5',\n '#001F97',\n '#FDECEE',\n '#F9D7D9',\n '#F8B9BE',\n '#F78D94',\n '#F36D78',\n '#E34D59',\n '#C9353F',\n '#B11F26',\n '#951114',\n '#680506',\n '#FEF3E6',\n '#F9E0C7',\n '#F7C797',\n '#F2995F',\n '#ED7B2F',\n '#D35A21',\n '#BA431B',\n '#9E3610',\n '#842B0B',\n '#5A1907',\n '#E8F8F2',\n '#BCEBDC',\n '#85DBBE',\n '#48C79C',\n '#00A870',\n '#078D5C',\n '#067945',\n '#056334',\n '#044F2A',\n '#033017',\n];\n\n// 非透明色格式化类型\nexport const FORMATS = ['HEX', 'RGB', 'HSL', 'HSV', 'CMYK', 'CSS'];\n\n// saturation-panel default rect\nexport const SATURATION_PANEL_DEFAULT_WIDTH = 230;\nexport const SATURATION_PANEL_DEFAULT_HEIGHT = 168;\nexport const SLIDER_DEFAULT_WIDTH = 186;\nexport const GRADIENT_SLIDER_DEFAULT_WIDTH = 176;\n","import { computed } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\n\nconst BASE_COMPONENT_NAME = 'color-picker';\n\n/**\n * 基础样式\n * @param className\n * @returns\n */\nexport const useBaseClassName = (className?: string) => {\n const baseClassName = usePrefixClass(BASE_COMPONENT_NAME);\n return computed(() => (className ? `${baseClassName.value}-${className}` : baseClassName.value));\n};\n","import { defineComponent, PropType, ref, watch } from 'vue';\n\nimport props from '../../props';\nimport { COLOR_MODES } from '@tdesign/common-js/color-picker/constants';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../../../radio';\nimport { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\nimport { useConfig } from '../../../hooks';\n\nexport default defineComponent({\n name: 'PanelHeader',\n props: {\n ...props,\n mode: {\n type: String as PropType,\n default: 'color',\n },\n togglePopup: {\n type: Function,\n },\n onModeChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const { globalConfig } = useConfig('colorPicker');\n const baseClassName = useBaseClassName();\n const modeValue = ref(props.mode);\n const handleModeChange = (v: string) => props.onModeChange(v);\n watch(\n () => props.mode,\n (v) => (modeValue.value = v),\n );\n return () => {\n if (props.colorModes?.length === 1) {\n return null;\n }\n return (\n
    \n
    \n \n {Object.keys(COLOR_MODES).map((key) => (\n \n {Reflect.get(globalConfig.value, COLOR_MODES[key as keyof typeof COLOR_MODES])}\n \n ))}\n \n
    \n
    \n );\n };\n },\n});\n","import { isString, isNull } from 'lodash-es';\n/* eslint-disable no-param-reassign */\n/**\n * 用于反解析渐变字符串为对象\n * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex\n */\nimport tinyColor from 'tinycolor2';\n\n/**\n * Utility combine multiple regular expressions.\n *\n * @param {RegExp[]|string[]} regexpList List of regular expressions or strings.\n * @param {string} flags Normal RegExp flags.\n */\nconst combineRegExp = (regexpList: (string | RegExp)[], flags: string): RegExp => {\n let source = '';\n for (let i = 0; i < regexpList.length; i++) {\n if (isString(regexpList[i])) {\n source += regexpList[i];\n } else {\n source += (regexpList[i] as RegExp).source;\n }\n }\n return new RegExp(source, flags);\n};\n\ninterface RegExpLib {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\ninterface ColorStop {\n color: string;\n position?: string;\n}\n\ninterface ParseGradientResult {\n original: string;\n colorStopList?: ColorStop[];\n line?: string;\n angle?: string;\n sideCorner?: string;\n}\n\n/**\n * Generate the required regular expressions once.\n *\n * Regular Expressions are easier to manage this way and can be well described.\n *\n * @result {object} Object containing regular expressions.\n */\nconst generateRegExp = (): RegExpLib => {\n // Note any variables with \"Capture\" in name include capturing bracket set(s).\n const searchFlags = 'gi'; // ignore case for angles, \"rgb\" etc\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/; // Angle +ive, -ive and angle types\n // optional 2nd part\n const rSideCornerCapture = /to\\s+((?:(?:left|right|top|bottom)(?:\\s+(?:top|bottom|left|right))?))/;\n const rComma = /\\s*,\\s*/; // Allow space around comma.\n const rColorHex = /#(?:[a-f0-9]{6}|[a-f0-9]{3})/; // 3 or 6 character form\n const rDigits3 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*\\)/;\n const // \"(1, 2, 3)\"\n rDigits4 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*,\\s*\\d*\\.?\\d+\\)/;\n const // \"(1, 2, 3, 4)\"\n rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const // \".9\", \"-5px\", \"100%\".\n rKeyword = /[_a-z-][_a-z0-9-]*/;\n const // \"red\", \"transparent\".\n rColor = combineRegExp(\n ['(?:', rColorHex, '|', '(?:rgb|hsl)', rDigits3, '|', '(?:rgba|hsla)', rDigits4, '|', rKeyword, ')'],\n '',\n );\n const rColorStop = combineRegExp([rColor, '(?:\\\\s+', rValue, '(?:\\\\s+', rValue, ')?)?'], '');\n const // Single Color Stop, optional %, optional length.\n rColorStopList = combineRegExp(['(?:', rColorStop, rComma, ')*', rColorStop], '');\n const // List of color stops min 1.\n rLineCapture = combineRegExp(['(?:(', rAngle, ')|', rSideCornerCapture, ')'], '');\n const // Angle or SideCorner\n rGradientSearch = combineRegExp(['(?:(', rLineCapture, ')', rComma, ')?(', rColorStopList, ')'], searchFlags);\n const // Capture 1:\"line\", 2:\"angle\" (optional), 3:\"side corner\" (optional) and 4:\"stop list\".\n rColorStopSearch = combineRegExp(\n ['\\\\s*(', rColor, ')', '(?:\\\\s+', '(', rValue, '))?', '(?:', rComma, '\\\\s*)?'],\n searchFlags,\n ); // Capture 1:\"color\" and 2:\"position\" (optional).\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch,\n };\n};\n\n/**\n * Actually parse the input gradient parameters string into an object for reusability.\n *\n *\n * @note Really this only supports the standard syntax not historical versions, see MDN for details\n * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient\n *\n * @param regExpLib\n * @param {string} input\n * @returns {object|undefined}\n */\nconst parseGradient = (regExpLib: RegExpLib, input: string) => {\n let result: ParseGradientResult;\n let matchColorStop: any;\n let stopResult: ColorStop;\n\n // reset search position, because we reuse regex.\n regExpLib.gradientSearch.lastIndex = 0;\n\n const matchGradient = regExpLib.gradientSearch.exec(input);\n if (!isNull(matchGradient)) {\n result = {\n original: matchGradient[0],\n colorStopList: [],\n };\n\n // Line (Angle or Side-Corner).\n if (matchGradient[1]) {\n // eslint-disable-next-line prefer-destructuring\n result.line = matchGradient[1];\n }\n // Angle or undefined if side-corner.\n if (matchGradient[2]) {\n // eslint-disable-next-line prefer-destructuring\n result.angle = matchGradient[2];\n }\n // Side-corner or undefined if angle.\n if (matchGradient[3]) {\n // eslint-disable-next-line prefer-destructuring\n result.sideCorner = matchGradient[3];\n }\n\n // reset search position, because we reuse regex.\n regExpLib.colorStopSearch.lastIndex = 0;\n\n // Loop though all the color-stops.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n while (!isNull(matchColorStop)) {\n stopResult = {\n color: matchColorStop[1],\n };\n\n // Position (optional).\n if (matchColorStop[2]) {\n // eslint-disable-next-line prefer-destructuring\n stopResult.position = matchColorStop[2];\n }\n result.colorStopList.push(stopResult);\n\n // Continue searching from previous position.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n }\n }\n\n // Can be undefined if match not found.\n return result;\n};\n\nexport interface GradientColorPoint {\n id?: string;\n color?: string;\n left?: number;\n}\n\nexport interface GradientColors {\n points: GradientColorPoint[];\n degree: number;\n}\n\nconst REGEXP_LIB = generateRegExp();\nconst REG_GRADIENT = /.*gradient\\s*\\(((?:\\([^)]*\\)|[^)(]*)*)\\)/gim;\n\n/**\n * 验证是否是渐变字符串\n * @param input\n * @returns\n */\nexport const isGradientColor = (input: string): null | RegExpExecArray => {\n REG_GRADIENT.lastIndex = 0;\n return REG_GRADIENT.exec(input);\n};\n\n// 边界字符串和角度关系\nconst sideCornerDegreeMap = {\n top: 0,\n right: 90,\n bottom: 180,\n left: 270,\n 'top left': 225,\n 'left top': 225,\n 'top right': 135,\n 'right top': 135,\n 'bottom left': 315,\n 'left bottom': 315,\n 'bottom right': 45,\n 'right bottom': 45,\n};\n\n/**\n * 解析渐变字符串为 GradientColors 对象\n * @param input\n * @returns\n */\nexport const parseGradientString = (input: string): GradientColors | boolean => {\n const match = isGradientColor(input);\n if (!match) {\n return false;\n }\n const gradientColors: GradientColors = {\n points: [],\n degree: 0,\n };\n\n const result: ParseGradientResult = parseGradient(REGEXP_LIB, match[1]);\n if (result.original.trim() !== match[1].trim()) {\n return false;\n }\n const points: GradientColorPoint[] = result.colorStopList.map(({ color, position }) => {\n const point = Object.create(null);\n point.color = tinyColor(color).toRgbString();\n point.left = parseFloat(position);\n return point;\n });\n gradientColors.points = points;\n let degree = parseInt(result.angle, 10);\n if (Number.isNaN(degree)) {\n degree = sideCornerDegreeMap[result.sideCorner as keyof typeof sideCornerDegreeMap] || 90;\n }\n gradientColors.degree = degree;\n\n return gradientColors;\n};\n\nexport default parseGradientString;\n","/**\n * rgb 转 cmyk\n * @param red\n * @param green\n * @param blue\n * @returns\n */\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\n let computedC = 0;\n let computedM = 0;\n let computedY = 0;\n let computedK = 0;\n\n const r = parseInt(`${red}`.replace(/\\s/g, ''), 10);\n const g = parseInt(`${green}`.replace(/\\s/g, ''), 10);\n const b = parseInt(`${blue}`.replace(/\\s/g, ''), 10);\n\n if (r === 0 && g === 0 && b === 0) {\n computedK = 1;\n return [0, 0, 0, 1];\n }\n\n computedC = 1 - r / 255;\n computedM = 1 - g / 255;\n computedY = 1 - b / 255;\n\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\n computedC = (computedC - minCMY) / (1 - minCMY);\n computedM = (computedM - minCMY) / (1 - minCMY);\n computedY = (computedY - minCMY) / (1 - minCMY);\n computedK = minCMY;\n\n return [computedC, computedM, computedY, computedK];\n};\n\n/**\n * cmyk 转 rgb\n * @param cyan\n * @param magenta\n * @param yellow\n * @param black\n * @returns\n */\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\n let c = cyan / 100;\n let m = magenta / 100;\n let y = yellow / 100;\n const k = black / 100;\n\n c = c * (1 - k) + k;\n m = m * (1 - k) + k;\n y = y * (1 - k) + k;\n\n let r = 1 - c;\n let g = 1 - m;\n let b = 1 - y;\n\n r = Math.round(255 * r);\n g = Math.round(255 * g);\n b = Math.round(255 * b);\n return {\n r,\n g,\n b,\n };\n};\n\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\n\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\n\n/**\n * 输入色转rgb\n * @param input\n * @returns\n */\nexport const cmykInputToColor = (input: string) => {\n if (/cmyk/i.test(input)) {\n const str = input.replace(/\\s/g, '');\n const match = str.match(REG_CMYK_STRING);\n const c = toNumber(match[1]);\n const m = toNumber(match[2]);\n const y = toNumber(match[3]);\n const k = toNumber(match[4]);\n const { r, g, b } = cmyk2rgb(c, m, y, k);\n return `rgb(${r}, ${g}, ${b})`;\n }\n return input;\n};\n","import tinyColor from 'tinycolor2';\nimport { cmykInputToColor, rgb2cmyk } from './cmyk';\nimport {\n parseGradientString, GradientColors, GradientColorPoint, isGradientColor\n} from './gradient';\n\nexport interface ColorObject {\n alpha: number;\n css: string;\n hex: string;\n hex8: string;\n hsl: string;\n hsla: string;\n hsv: string;\n hsva: string;\n rgb: string;\n rgba: string;\n saturation: number;\n value: number;\n isGradient: boolean;\n linearGradient?: string;\n}\n\ninterface ColorStates {\n s: number;\n v: number;\n h: number;\n a: number;\n}\n\ninterface GradientStates {\n colors: GradientColorPoint[];\n degree: number;\n selectedId: string;\n css?: string;\n}\n\nconst mathRound = Math.round;\nconst hsv2rgba = (states: ColorStates): tinyColor.ColorFormats.RGBA => tinyColor(states).toRgb();\nconst hsv2hsva = (states: ColorStates): tinyColor.ColorFormats.HSVA => tinyColor(states).toHsv();\nconst hsv2hsla = (states: ColorStates): tinyColor.ColorFormats.HSLA => tinyColor(states).toHsl();\n\n/**\n * 将渐变对象转换成字符串\n * @param object\n * @returns\n */\nexport const gradientColors2string = (object: GradientColors): string => {\n const { points, degree } = object;\n const colorsStop = points\n .sort((pA, pB) => pA.left - pB.left)\n .map((p) => `${p.color} ${Math.round(p.left * 100) / 100}%`);\n\n return `linear-gradient(${degree}deg,${colorsStop.join(',')})`;\n};\n\n/**\n * 去除颜色的透明度\n * @param color\n * @returns\n */\nexport const getColorWithoutAlpha = (color: string) => tinyColor(color).setAlpha(1).toHexString();\n\n// 生成一个随机ID\nexport const genId = () => (1 + Math.random() * 4294967295).toString(16);\n\n/**\n * 生成一个渐变颜色\n * @param left\n * @param color\n * @returns\n */\nexport const genGradientPoint = (left: number, color: string): GradientColorPoint => ({\n id: genId(),\n left,\n color,\n});\n\nexport class Color {\n states: ColorStates = {\n s: 100,\n v: 100,\n h: 100,\n a: 1,\n };\n\n originColor: string;\n\n isGradient: boolean;\n\n gradientStates: GradientStates = {\n colors: [],\n degree: 0,\n selectedId: null,\n css: '',\n };\n\n constructor(input: string) {\n this.update(input);\n }\n\n update(input: string) {\n if (input === this.originColor) {\n return;\n }\n const gradientColors = parseGradientString(input);\n if (this.isGradient && !gradientColors) {\n // 处理gradient模式下切换不同格式时的交互问题,输入的不是渐变字符串才使用当前处理\n const colorHsv = tinyColor(input).toHsv();\n this.states = colorHsv;\n this.updateCurrentGradientColor();\n return;\n }\n this.originColor = input;\n this.isGradient = false;\n let colorInput = input;\n if (gradientColors) {\n this.isGradient = true;\n const object = gradientColors as GradientColors;\n const points = object.points.map((c) => genGradientPoint(c.left, c.color));\n this.gradientStates = {\n colors: points,\n degree: object.degree,\n selectedId: points[0]?.id || null,\n };\n this.gradientStates.css = this.linearGradient;\n colorInput = this.gradientSelectedPoint?.color;\n }\n\n this.updateStates(colorInput);\n }\n\n get saturation() {\n return this.states.s;\n }\n\n set saturation(value) {\n this.states.s = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get value() {\n return this.states.v;\n }\n\n set value(value) {\n this.states.v = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get hue() {\n return this.states.h;\n }\n\n set hue(value) {\n this.states.h = Math.max(0, Math.min(360, value));\n this.updateCurrentGradientColor();\n }\n\n get alpha() {\n return this.states.a;\n }\n\n set alpha(value) {\n this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));\n this.updateCurrentGradientColor();\n }\n\n get rgb() {\n const { r, g, b } = hsv2rgba(this.states);\n return `rgb(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)})`;\n }\n\n get rgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return `rgba(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)}, ${a})`;\n }\n\n get hsv() {\n const { h, s, v } = this.getHsva();\n return `hsv(${h}, ${s}%, ${v}%)`;\n }\n\n get hsva() {\n const {\n h, s, v, a\n } = this.getHsva();\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n }\n\n get hsl() {\n const { h, s, l } = this.getHsla();\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n\n get hsla() {\n const {\n h, s, l, a\n } = this.getHsla();\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n }\n\n get hex() {\n return tinyColor(this.states).toHexString();\n }\n\n get hex8() {\n return tinyColor(this.states).toHex8String();\n }\n\n get cmyk() {\n const {\n c, m, y, k\n } = this.getCmyk();\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n get css() {\n if (this.isGradient) {\n return this.linearGradient;\n }\n return this.rgba;\n }\n\n get linearGradient() {\n const { gradientColors, gradientDegree } = this;\n return gradientColors2string({\n points: gradientColors,\n degree: gradientDegree,\n });\n }\n\n get gradientColors() {\n return this.gradientStates.colors;\n }\n\n set gradientColors(colors: GradientColorPoint[]) {\n this.gradientStates.colors = colors;\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedId() {\n return this.gradientStates.selectedId;\n }\n\n set gradientSelectedId(id: string) {\n if (id === this.gradientSelectedId) {\n return;\n }\n this.gradientStates.selectedId = id;\n this.updateStates(this.gradientSelectedPoint?.color);\n }\n\n get gradientDegree() {\n return this.gradientStates.degree;\n }\n\n set gradientDegree(degree: number) {\n this.gradientStates.degree = Math.max(0, Math.min(360, degree));\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedPoint() {\n const { gradientColors, gradientSelectedId } = this;\n return gradientColors.find((color) => color.id === gradientSelectedId);\n }\n\n getFormatsColorMap() {\n return {\n HEX: this.hex,\n CMYK: this.cmyk,\n RGB: this.rgb,\n RGBA: this.rgba,\n HSL: this.hsl,\n HSLA: this.hsla,\n HSV: this.hsv,\n HSVA: this.hsva,\n CSS: this.css,\n HEX8: this.hex8,\n };\n }\n\n updateCurrentGradientColor() {\n const { isGradient, gradientColors, gradientSelectedId } = this;\n const { length } = gradientColors;\n const current = this.gradientSelectedPoint;\n if (!isGradient || length === 0 || !current) {\n return false;\n }\n const index = gradientColors.findIndex((color) => color.id === gradientSelectedId);\n const newColor = {\n ...current,\n color: this.rgba,\n };\n gradientColors.splice(index, 1, newColor);\n this.gradientColors = gradientColors.slice();\n return this;\n }\n\n updateStates(input: string) {\n const color = tinyColor(cmykInputToColor(input));\n const hsva = color.toHsv();\n this.states = hsva;\n }\n\n getRgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return {\n r: mathRound(r),\n g: mathRound(g),\n b: mathRound(b),\n a,\n };\n }\n\n getCmyk() {\n const { r, g, b } = this.getRgba();\n const [c, m, y, k] = rgb2cmyk(r, g, b);\n return {\n c: mathRound(c * 100),\n m: mathRound(m * 100),\n y: mathRound(y * 100),\n k: mathRound(k * 100),\n };\n }\n\n getHsva(): tinyColor.ColorFormats.HSVA {\n let {\n h, s, v, a\n } = hsv2hsva(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n v = mathRound(v * 100);\n a *= 1;\n return {\n h,\n s,\n v,\n a,\n };\n }\n\n getHsla(): tinyColor.ColorFormats.HSLA {\n let {\n h, s, l, a\n } = hsv2hsla(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n l = mathRound(l * 100);\n a *= 1;\n return {\n h,\n s,\n l,\n a,\n };\n }\n\n /**\n * 判断输入色是否与当前色相同\n * @param color\n * @returns\n */\n equals(color: string): boolean {\n return tinyColor.equals(this.rgba, color);\n }\n\n /**\n * 校验输入色是否是一个有效颜色\n * @param color\n * @returns\n */\n static isValid(color: string): boolean {\n if (parseGradientString(color)) {\n return true;\n }\n return tinyColor(color).isValid();\n }\n\n static hsva2color(h: number, s: number, v: number, a: number) {\n return tinyColor({\n h, s, v, a\n }).toHsvString();\n }\n\n static hsla2color(h: number, s: number, l: number, a: number) {\n return tinyColor({\n h, s, l, a\n }).toHslString();\n }\n\n static rgba2color(r: number, g: number, b: number, a: number) {\n return tinyColor({\n r, g, b, a\n }).toHsvString();\n }\n\n static hex2color(hex: string, a: number) {\n const color = tinyColor(hex);\n color.setAlpha(a);\n return color.toHexString();\n }\n\n /**\n * 对象转颜色字符串\n * @param object\n * @param format\n * @returns\n */\n static object2color(object: any, format: string) {\n if (format === 'CMYK') {\n const {\n c, m, y, k\n } = object;\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n const color = tinyColor(object, {\n format,\n });\n return color.toRgbString();\n }\n\n /**\n * 是否是渐变色\n * @param input\n * @returns\n */\n static isGradientColor = (input: string) => !!isGradientColor(input);\n\n /**\n * 比较两个颜色是否相同\n * @param color1\n * @param color2\n * @returns\n */\n static compare = (color1: string, color2: string): boolean => {\n const isGradientColor1 = Color.isGradientColor(color1);\n const isGradientColor2 = Color.isGradientColor(color2);\n if (isGradientColor1 && isGradientColor2) {\n const gradientColor1 = gradientColors2string(parseGradientString(color1) as GradientColors);\n const gradientColor2 = gradientColors2string(parseGradientString(color2) as GradientColors);\n return gradientColor1 === gradientColor2;\n }\n if (!isGradientColor1 && !isGradientColor2) {\n return tinyColor.equals(color1, color2);\n }\n return false;\n };\n}\n\nconst COLOR_OBJECT_OUTPUT_KEYS = [\n 'alpha',\n 'css',\n 'hex',\n 'hex8',\n 'hsl',\n 'hsla',\n 'hsv',\n 'hsva',\n 'rgb',\n 'rgba',\n 'saturation',\n 'value',\n 'isGradient',\n];\n\n/**\n * 获取对外输出的color对象\n * @param color\n * @returns\n */\nexport const getColorObject = (color: Color): ColorObject | null => {\n if (!color) {\n return null;\n }\n const colorObject = Object.create(null);\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => {\n colorObject[key] = (color as { [key: string]: any })[key];\n });\n if (color.isGradient) {\n colorObject.linearGradient = color.linearGradient;\n }\n return colorObject;\n};\n\nexport default Color;\n","/* eslint-disable no-use-before-define */\nexport interface Coordinate {\n x: number;\n y: number;\n}\n\nexport type DraggableEvent = MouseEvent;\n\ninterface DraggableCallback {\n (coordinate: Coordinate, event?: DraggableEvent): void;\n}\n\nexport interface DraggableProps {\n start?: DraggableCallback;\n drag?: DraggableCallback;\n end?: DraggableCallback;\n}\n\ninterface DraggableHandles {\n start: (this: Draggable, event: DraggableEvent) => {};\n drag: (this: Draggable, event: DraggableEvent) => {};\n end: (this: Draggable, event: DraggableEvent) => {};\n}\n\n// 配置项\nconst defaultsOptions: DraggableProps = {\n start: (coordinate: Coordinate, event: DraggableEvent) => {},\n drag: (coordinate: Coordinate, event: DraggableEvent) => {},\n end: (coordinate: Coordinate, event: DraggableEvent) => {},\n};\n\nexport class Draggable {\n private dragging = false;\n\n private $el: HTMLElement;\n\n private props: DraggableProps;\n\n private handles: DraggableHandles;\n\n constructor(el: HTMLElement, options?: DraggableProps) {\n this.$el = el;\n this.props = { ...defaultsOptions, ...options };\n this.handles = {\n start: this.#dragStart.bind(this),\n drag: this.#drag.bind(this),\n end: this.#dragEnd.bind(this),\n };\n this.$el.addEventListener('mousedown', this.handles.start, false);\n }\n\n #dragStart(event: DraggableEvent) {\n if (this.dragging) {\n return;\n }\n // event.preventDefault();\n window.addEventListener('mousemove', this.handles.drag, false);\n window.addEventListener('mouseup', this.handles.end, false);\n window.addEventListener('contextmenu', this.handles.end, false);\n this.dragging = true;\n this.props.start(this.#getCoordinate(event), event);\n }\n\n #drag(event: DraggableEvent) {\n if (!this.dragging) {\n return;\n }\n this.props.drag(this.#getCoordinate(event), event);\n }\n\n #dragEnd(event: DraggableEvent) {\n setTimeout(() => {\n this.dragging = false;\n this.props.end(this.#getCoordinate(event), event);\n }, 0);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n\n #getCoordinate(event: DraggableEvent) {\n const rect = this.$el.getBoundingClientRect();\n const mouseEvent = event;\n const left = mouseEvent.clientX - rect.left;\n const top = mouseEvent.clientY - rect.top;\n return {\n y: Math.min(Math.max(0, top), rect.height),\n x: Math.min(Math.max(0, left), rect.width),\n };\n }\n\n destroy() {\n this.$el.removeEventListener('mousedown', this.handles.start, false);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n}\n\nexport default Draggable;\n","import { PropType } from 'vue';\nimport { Color } from '../../utils';\n\nexport default {\n /** 是否禁用组件 */\n disabled: Boolean,\n /** Color Instance */\n color: {\n type: Object as PropType,\n },\n onChange: {\n type: Function,\n default: () => () => {},\n },\n};\n","import { defineComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { GRADIENT_SLIDER_DEFAULT_WIDTH } from '@tdesign/common-js/color-picker/constants';\nimport { genGradientPoint, gradientColors2string, GradientColorPoint } from '../../utils';\nimport { InputNumber as TInputNumber } from '../../../input-number';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '../../../hooks/useConfig';\nimport baseProps from './base-props';\n\nconst DELETE_KEYS: string[] = ['delete', 'backspace'];\n\nexport default defineComponent({\n name: 'LinearGradient',\n inheritAttrs: false,\n props: {\n ...baseProps,\n enableMultipleGradient: {\n type: Boolean,\n default: true,\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const statusClassNames = STATUS.value;\n const refSlider = ref(null);\n const sliderRect = reactive({\n left: 0,\n width: GRADIENT_SLIDER_DEFAULT_WIDTH,\n });\n const isDragging = ref(false);\n const isMoved = ref(false);\n const degree = ref(props.color.gradientDegree);\n const selectedId = ref(props.color.gradientSelectedId);\n const colors = ref(cloneDeep(props.color.gradientColors));\n\n watch(\n () => props.color.gradientDegree,\n (value) => (degree.value = value),\n );\n watch(\n () => props.color.gradientSelectedId,\n (value) => (selectedId.value = value),\n );\n watch(\n () => props.color.gradientColors,\n (value) => {\n colors.value = cloneDeep(value);\n },\n {\n deep: true,\n },\n );\n\n const handleChange = (key: 'degree' | 'selectedId' | 'colors', payload: any, addUsedColor?: boolean) => {\n if (props.disabled) {\n return;\n }\n props.onChange({\n key,\n payload,\n addUsedColor,\n });\n };\n\n const handleDegreeChange = (value: number) => {\n if (props.disabled || value === props.color.gradientDegree) {\n return;\n }\n degree.value = value;\n handleChange('degree', value, true);\n };\n\n const handleSelectedIdChange = (value: string) => {\n if (props.disabled) {\n return;\n }\n selectedId.value = value;\n handleChange('selectedId', value);\n };\n\n const handleColorsChange = (value: GradientColorPoint[], isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n colors.value = value;\n handleChange('colors', value, isEnded);\n };\n\n /**\n * 设置bar的位置\n * @param left\n * @returns\n */\n const updateActiveThumbLeft = (left: number) => {\n const index = colors.value.findIndex((c) => c.id === selectedId.value);\n if (index === -1) {\n return;\n }\n const point = colors.value[index];\n left = Math.max(0, Math.min(sliderRect.width, left));\n const percentLeft = (left / sliderRect.width) * 100;\n colors.value.splice(index, 1, {\n color: point.color,\n left: percentLeft,\n id: point.id,\n });\n handleColorsChange(colors.value);\n };\n\n // 移动开始\n const handleStart = (id: string) => {\n const rect = refSlider.value.getBoundingClientRect();\n sliderRect.left = rect.left;\n sliderRect.width = rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH;\n if (isDragging.value || props.disabled) {\n return;\n }\n isMoved.value = false;\n isDragging.value = true;\n handleSelectedIdChange(id);\n // 让slider获取焦点,以便键盘事件生效。\n refSlider.value.focus();\n window.addEventListener('mousemove', handleMove, false);\n window.addEventListener('mouseup', handleEnd, false);\n window.addEventListener('contextmenu', handleEnd, false);\n };\n\n // 移动中\n const handleMove = (e: MouseEvent) => {\n if (!isDragging.value || props.disabled) {\n return;\n }\n const left = e.clientX - sliderRect.left;\n isMoved.value = true;\n updateActiveThumbLeft(left);\n };\n\n // 移动结束\n const handleEnd = () => {\n if (!isDragging.value) {\n return;\n }\n setTimeout(() => {\n isDragging.value = false;\n }, 0);\n if (isMoved.value) {\n handleColorsChange(colors.value, true);\n isMoved.value = false;\n }\n window.removeEventListener('mousemove', handleMove, false);\n window.removeEventListener('mouseup', handleEnd, false);\n window.removeEventListener('contextmenu', handleEnd, false);\n };\n\n const handleKeyup = (e: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n const points = colors.value;\n let pos = points.findIndex((c) => c.id === selectedId.value);\n const { length } = points;\n // 必须保证有两个点\n if (DELETE_KEYS.includes(e.key.toLocaleLowerCase()) && length > 2 && pos >= 0 && pos <= length - 1) {\n points.splice(pos, 1);\n if (!points[pos]) {\n // eslint-disable-next-line no-nested-ternary\n pos = points[pos + 1] ? pos + 1 : points[pos - 1] ? pos - 1 : 0;\n }\n const current = points[pos];\n handleColorsChange(points, true);\n handleSelectedIdChange(current?.id);\n }\n };\n\n const handleThumbBarClick = (e: MouseEvent) => {\n if (props.disabled || !props.enableMultipleGradient) {\n return;\n }\n let left = e.clientX - sliderRect.left;\n left = Math.max(0, Math.min(sliderRect.width, left));\n const percentLeft = (left / sliderRect.width) * 100;\n const newPoint = genGradientPoint(percentLeft, props.color.rgba);\n colors.value.push(newPoint);\n handleColorsChange(colors.value, true);\n handleSelectedIdChange(newPoint.id);\n };\n\n onMounted(() => {\n const rect = refSlider.value.getBoundingClientRect();\n sliderRect.left = rect.left;\n sliderRect.width = rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH;\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener('mousemove', handleMove, false);\n window.removeEventListener('mouseup', handleEnd, false);\n window.removeEventListener('contextmenu', handleEnd, false);\n });\n\n return () => {\n const { linearGradient, gradientColors } = props.color;\n const thumbBackground = gradientColors2string({\n points: gradientColors,\n degree: 90,\n });\n return (\n
    \n
    \n \n \n {colors.value.map((t) => {\n const left = `${Math.round(t.left * 100) / 100}%`;\n return (\n e.stopPropagation()}\n onMousedown={() => handleStart(t.id)}\n >\n \n \n );\n })}\n \n
    \n
    \n
    \n `${value}°`}\n v-model={degree.value}\n onBlur={handleDegreeChange}\n onEnter={handleDegreeChange}\n disabled={props.disabled}\n />\n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent, nextTick, onBeforeUnmount, onMounted, reactive, ref } from 'vue';\nimport {\n SATURATION_PANEL_DEFAULT_HEIGHT,\n SATURATION_PANEL_DEFAULT_WIDTH,\n} from '@tdesign/common-js/color-picker/constants';\nimport { Draggable, Coordinate } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'SaturationPanel',\n props: baseProps,\n setup(props) {\n const baseClassName = useBaseClassName();\n const refPanel = ref(null);\n const refThumb = ref(null);\n const dragInstance = ref(null);\n const panelRect = reactive({\n width: SATURATION_PANEL_DEFAULT_WIDTH,\n height: SATURATION_PANEL_DEFAULT_HEIGHT,\n });\n\n const styles = computed(() => {\n const { saturation, value } = props.color;\n const { width, height } = panelRect;\n const top = Math.round((1 - value) * height);\n const left = Math.round(saturation * width);\n return {\n color: props.color.rgb,\n left: `${left}px`,\n top: `${top}px`,\n };\n });\n\n const getSaturationAndValueByCoordinate = (coordinate: Coordinate) => {\n const { width, height } = panelRect;\n const { x, y } = coordinate;\n const saturation = Math.round((x / width) * 100);\n const value = Math.round((1 - y / height) * 100);\n return {\n saturation,\n value,\n };\n };\n\n const handleDrag = (coordinate: Coordinate, isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n const { saturation, value } = getSaturationAndValueByCoordinate(coordinate);\n props.onChange({\n saturation: saturation / 100,\n value: value / 100,\n addUsedColor: isEnded,\n });\n };\n\n const handleDragEnd = (coordinate: Coordinate) => {\n if (props.disabled) {\n return;\n }\n nextTick(() => {\n handleDrag(coordinate, true);\n });\n };\n\n const panelBackground = computed(() => {\n return `hsl(${props.color.hue}, 100%, 50%)`;\n });\n\n onMounted(() => {\n panelRect.width = refPanel.value.offsetWidth || SATURATION_PANEL_DEFAULT_WIDTH;\n panelRect.height = refPanel.value.offsetHeight || SATURATION_PANEL_DEFAULT_HEIGHT;\n dragInstance.value = new Draggable(refPanel.value, {\n start() {\n panelRect.width = refPanel.value.offsetWidth;\n panelRect.height = refPanel.value.offsetHeight;\n },\n drag: (coordinate: Coordinate) => {\n handleDrag(coordinate);\n },\n end: handleDragEnd,\n });\n });\n\n onBeforeUnmount(() => {\n dragInstance.value.destroy();\n });\n\n return () => {\n return (\n \n \n \n );\n };\n },\n});\n","import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, reactive, ref } from 'vue';\nimport { SLIDER_DEFAULT_WIDTH } from '@tdesign/common-js/color-picker/constants';\nimport { Draggable, Coordinate } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'ColorSlider',\n props: {\n ...baseProps,\n className: {\n type: String,\n default: '',\n },\n value: {\n type: Number,\n default: 0,\n },\n maxValue: {\n type: Number,\n default: 360,\n },\n railStyle: {\n type: Object as PropType,\n },\n type: {\n type: String as PropType<'hue' | 'alpha'>,\n default: 'hue',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const refPanel = ref(null);\n const refThumb = ref(null);\n const dragInstance = ref(null);\n const panelRect = reactive({\n width: SLIDER_DEFAULT_WIDTH,\n });\n const styles = computed(() => {\n const { width } = panelRect;\n if (!width) {\n return;\n }\n const left = Math.round((props.value / props.maxValue) * 100);\n return {\n left: `${left}%`,\n color: props.color.rgb,\n };\n });\n\n const handleDrag = (coordinate: Coordinate, isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n const { width } = panelRect;\n const { x } = coordinate;\n const value = Math.round((x / width) * props.maxValue * 100) / 100;\n props.onChange(value, isEnded);\n };\n\n const handleDragEnd = (coordinate: Coordinate) => {\n if (props.disabled) {\n return;\n }\n handleDrag(coordinate, true);\n };\n\n onMounted(() => {\n panelRect.width = refPanel.value.offsetWidth || SLIDER_DEFAULT_WIDTH;\n dragInstance.value = new Draggable(refPanel.value, {\n start: () => {\n // pop模式下由于是隐藏显示,这个宽度让其每次点击的时候重新计算\n panelRect.width = refPanel.value.offsetWidth;\n },\n drag: (coordinate: Coordinate) => {\n handleDrag(coordinate);\n },\n end: handleDragEnd,\n });\n });\n\n onBeforeUnmount(() => {\n dragInstance.value.destroy();\n });\n\n return () => {\n const paddingStyle = {\n background: `linear-gradient(90deg, rgba(0,0,0,.0) 0%, rgba(0,0,0,.0) 93%, ${props.color.rgb} 93%, ${props.color.rgb} 100%)`,\n };\n return (\n \n {props.type === 'alpha' &&
    }\n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport ColorSlider from './slider';\nimport { useBaseClassName } from '../../hooks';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'HueSlider',\n\n inheritAttrs: false,\n props: baseProps,\n setup(props) {\n const baseClassName = useBaseClassName();\n\n return () => {\n return (\n \n );\n };\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport ColorSlider from './slider';\nimport { Color } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\n\nexport default defineComponent({\n name: 'AlphaSlider',\n inheritAttrs: false,\n props: {\n color: {\n type: Object as PropType,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n onChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const handleChange = (v: number, isDragEnd?: boolean) => {\n props.onChange(v / 100, isDragEnd);\n };\n const railStyle = computed(() => {\n return {\n background: `linear-gradient(to right, rgba(0, 0, 0, 0), ${props.color.rgb})`,\n };\n });\n\n return () => {\n return (\n \n );\n };\n },\n});\n","import { TdColorPickerProps } from '../../type';\n\nexport interface FormatInput {\n key: string;\n type: 'input';\n flex?: number;\n}\n\nexport interface FormatInputNumber {\n key: string;\n min: number;\n max: number;\n type: 'inputNumber';\n flex?: number;\n format?: Function;\n}\n\nexport type FormatInputsConfig = {\n [propName in TdColorPickerProps['format']]?: Array;\n};\n\nexport const FORMAT_INPUT_CONFIG: FormatInputsConfig = {\n RGB: [\n {\n key: 'r',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'g',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'b',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n HSV: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'v',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n HSL: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'l',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n CMYK: [\n {\n key: 'c',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'm',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'y',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'k',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n CSS: [\n {\n key: 'css',\n type: 'input',\n flex: 3,\n },\n ],\n HEX: [\n {\n key: 'hex',\n type: 'input',\n flex: 3,\n },\n ],\n};\n\nexport default FORMAT_INPUT_CONFIG;\n","import { computed, defineComponent, PropType, reactive, watch } from 'vue';\nimport { throttle } from 'lodash-es';\nimport props from '../../props';\nimport { Color } from '../../utils';\nimport TInput from '../../../input';\nimport TInputNumber from '../../../input-number';\nimport { FORMAT_INPUT_CONFIG } from './config';\n\nexport default defineComponent({\n name: 'FormatInputs',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const inputConfigs = computed(() => {\n const configs = [...FORMAT_INPUT_CONFIG[props.format]];\n if (props.enableAlpha) {\n configs.push({\n type: 'inputNumber',\n key: 'a',\n min: 0,\n max: 100,\n format: (value: number) => `${value}%`,\n flex: 1.15,\n });\n }\n return configs;\n });\n\n const modelValue = reactive({});\n const lastModelValue = reactive({});\n\n /**\n * 获取不同格式的输入输出值\n * @param type 'encode' | 'decode'\n * @returns\n */\n const getFormatColorMap = (type: 'encode' | 'decode') => {\n const { color } = props;\n if (type === 'encode') {\n return {\n HSV: color.getHsva(),\n HSL: color.getHsla(),\n RGB: color.getRgba(),\n CMYK: color.getCmyk(),\n CSS: {\n css: color.css,\n },\n HEX: {\n hex: color.hex,\n },\n };\n }\n // decode\n return {\n HSV: Color.object2color(modelValue, 'HSV'),\n HSL: Color.object2color(modelValue, 'HSL'),\n RGB: Color.object2color(modelValue, 'RGB'),\n CMYK: Color.object2color(modelValue, 'CMYK'),\n CSS: modelValue.css,\n HEX: modelValue.hex,\n };\n };\n\n // 更新modelValue\n const updateModelValue = () => {\n const { format, color } = props;\n // @ts-ignore\n // TODO: 从类型上看,values 可能为空,那么下面就会报错,需要同步类型处理 1.getFormatColorMap 2. format 前置过滤\n const values = getFormatColorMap('encode')[format];\n values.a = Math.round(color.alpha * 100);\n Object.keys(values).forEach((key) => {\n modelValue[key] = values[key];\n lastModelValue[key] = values[key];\n });\n };\n\n updateModelValue();\n\n const throttleUpdate = throttle(updateModelValue, 100);\n\n watch(() => {\n const { saturation, hue, value, alpha, css } = props.color;\n return [saturation, hue, value, alpha, css, props.format];\n }, throttleUpdate);\n\n const handleChange = (key: string, v: number | string) => {\n if (v === lastModelValue[key]) {\n return;\n }\n // @ts-ignore\n // TODO: 如上\n const value = getFormatColorMap('decode')[props.format];\n props.onInputChange(value, modelValue.a / 100, key, v);\n };\n\n return () => {\n const inputProps = {\n ...((props.inputProps as any) || {}),\n };\n return (\n
    \n {inputConfigs.value.map((config) => {\n return (\n \n {config.type === 'input' ? (\n handleChange(config.key, v)}\n onEnter={(v: string) => handleChange(config.key, v)}\n />\n ) : (\n handleChange(config.key, v)}\n onEnter={(v: number) => handleChange(config.key, v)}\n />\n )}\n
    \n );\n })}\n \n );\n };\n },\n});\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport { upperCase } from 'lodash-es';\nimport { TdColorPickerProps } from '../../type';\nimport props from '../../props';\nimport { FORMATS } from '@tdesign/common-js/color-picker/constants';\nimport { Color } from '../../utils';\nimport { Select as TSelect, Option as TOption } from '../../../select';\nimport FormatInputs from './inputs';\nimport { useBaseClassName } from '../../hooks';\nimport type { TdSelectInputProps } from '../../../select-input/type';\n\nexport default defineComponent({\n name: 'FormatPanel',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onModeChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const formatModel = ref(props.format);\n watch(\n () => [props.format],\n () => (formatModel.value = props.format),\n );\n\n /**\n * 格式化类型改变触发\n * @param v\n */\n const handleModeChange = (v: TdColorPickerProps['format']) => {\n formatModel.value = v;\n props.onModeChange(v);\n };\n\n return () => {\n const newProps = {\n ...props,\n format: formatModel.value,\n };\n const selectInputProps = {\n ...((props.selectInputProps as Object) || {}),\n };\n return (\n
    \n
    \n \n {FORMATS.map((item) => (\n \n ))}\n \n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent, PropType, ref } from 'vue';\nimport { DeleteIcon as TdDeleteIcon, AddIcon as TdAddIcon } from 'tdesign-icons-vue-next';\n\nimport { Color } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '../../../hooks/useConfig';\nimport { useGlobalIcon } from '../../../hooks/useGlobalIcon';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'SwatchesPanel',\n props: {\n ...baseProps,\n colors: {\n type: Array as PropType,\n default: () => [] as PropType,\n },\n title: {\n type: String,\n default: '系统色彩',\n },\n editable: {\n type: Boolean,\n default: false,\n },\n onSetColor: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n handleAddColor: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { DeleteIcon, AddIcon } = useGlobalIcon({ DeleteIcon: TdDeleteIcon, AddIcon: TdAddIcon });\n const { STATUS } = useCommonClassName();\n const statusClassNames = STATUS.value;\n const visiblePopConfirm = ref(false);\n const setVisiblePopConfirm = (visible: boolean) => {\n visiblePopConfirm.value = visible;\n };\n\n const handleClick = (color: string) => props.onSetColor(color);\n\n const isEqualCurrentColor = (color: string) => {\n return Color.compare(color, props.color.css);\n };\n\n const selectedColorIndex = computed(() => {\n return props.colors.findIndex((color) => isEqualCurrentColor(color));\n });\n\n /**\n * 移除颜色\n */\n const handleRemoveColor = () => {\n const { colors } = props;\n const selectedIndex = selectedColorIndex.value;\n if (selectedIndex === -1) return;\n colors.splice(selectedIndex, 1);\n props.onChange(colors);\n setVisiblePopConfirm(false);\n };\n\n return () => {\n const swatchesClass = `${baseClassName.value}__swatches`;\n\n const renderActions = () => {\n if (!props.editable) {\n return null;\n }\n\n return (\n
    \n props.handleAddColor()}>\n \n \n {props.colors.length > 0 ? (\n handleRemoveColor()}>\n \n \n ) : null}\n
    \n );\n };\n\n return (\n
    \n

    \n {props.title}\n {renderActions()}\n

    \n
      \n {props.colors.map((color) => {\n return (\n {\n if (props.disabled) {\n return;\n }\n handleClick(color);\n }}\n >\n
      \n \n
      \n \n );\n })}\n
    \n
    \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport { useCommonClassName, useConfig } from '../../../hooks/useConfig';\nimport props from '../../props';\nimport {\n DEFAULT_COLOR,\n DEFAULT_LINEAR_GRADIENT,\n TD_COLOR_USED_COLORS_MAX_SIZE,\n DEFAULT_SYSTEM_SWATCH_COLORS,\n} from '@tdesign/common-js/color-picker/constants';\nimport PanelHeader from './header';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport HueSlider from './hue';\nimport AlphaSlider from './alpha';\nimport FormatPanel from '../format';\nimport SwatchesPanel from './swatches';\nimport { Color, getColorObject, GradientColorPoint } from '../../utils';\nimport { TdColorPickerProps, ColorPickerChangeTrigger } from '../../type';\nimport { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\nimport useVModel from '../../../hooks/useVModel';\nimport useDefaultValue from '../../../hooks/useDefaultValue';\nimport { cloneDeep } from 'lodash-es';\n\nexport default defineComponent({\n name: 'ColorPanel',\n props: {\n ...props,\n togglePopup: {\n type: Function,\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const { t, globalConfig } = useConfig('colorPicker');\n const statusClassNames = STATUS.value;\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n\n const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n const mode = ref(\n props.colorModes?.length !== 1 && innerValue.value?.includes('linear-gradient')\n ? 'linear-gradient'\n : props.colorModes?.length === 1\n ? props.colorModes[0]\n : 'monochrome',\n );\n const isGradient = computed(() => mode.value === 'linear-gradient');\n\n const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n const updateColor = () => color.value.update(innerValue.value || defaultEmptyColor.value);\n\n const formatModel = ref(color.value.isGradient ? 'CSS' : 'RGB');\n\n const [recentlyUsedColors, setRecentlyUsedColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const formatValue = () => {\n // 渐变模式下直接输出css样式\n if (mode.value === 'linear-gradient') {\n return color.value.linearGradient;\n }\n const colorMap = color.value.getFormatsColorMap();\n return Object.keys(colorMap).includes(props.format)\n ? colorMap[props.format as keyof typeof colorMap]\n : color.value.css;\n };\n\n /**\n * 添加最近使用颜色\n * @returns void\n */\n const addRecentlyUsedColor = () => {\n if (recentlyUsedColors.value === null || recentlyUsedColors.value === false) {\n return;\n }\n const colors = cloneDeep(recentlyUsedColors.value as string[]) || [];\n const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n const index = colors.indexOf(currentColor);\n if (index > -1) {\n colors.splice(index, 1);\n }\n colors.unshift(currentColor);\n if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n }\n handleRecentlyUsedColorsChange(colors);\n };\n\n /**\n * 最近使用颜色变更时触发\n * @param colors\n */\n const handleRecentlyUsedColorsChange = (colors: string[]) => {\n setRecentlyUsedColors(colors);\n };\n\n /**\n * onChange\n * @param trigger\n */\n const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n setInnerValue(formatValue(), {\n color: getColorObject(color.value),\n trigger: trigger || 'palette-saturation-brightness',\n });\n };\n\n watch(() => [props.defaultValue, props.enableAlpha], updateColor);\n\n watch(\n () => innerValue.value,\n (newColor) => {\n if (newColor !== formatValue()) {\n updateColor();\n mode.value = color.value.isGradient ? 'linear-gradient' : 'monochrome';\n }\n },\n );\n\n /**\n * mode change\n * @param value\n * @returns\n */\n const handleModeChange = (value: TdColorModes) => {\n mode.value = value;\n if (value === 'linear-gradient') {\n color.value.update(\n color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n );\n } else {\n color.value.update(color.value.rgba);\n }\n\n emitColorChange();\n };\n\n /**\n * 格式变化\n * @param format\n * @returns\n */\n const handleFormatModeChange = (format: TdColorPickerProps['format']) => (formatModel.value = format);\n\n /**\n * 饱和度亮度变化\n * @param param0\n */\n const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color.value;\n let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n if (value !== val && saturation !== sat) {\n color.value.saturation = saturation;\n color.value.value = value;\n changeTrigger = 'palette-saturation-brightness';\n } else if (saturation !== sat) {\n color.value.saturation = saturation;\n changeTrigger = 'palette-saturation';\n } else if (value !== val) {\n color.value.value = value;\n changeTrigger = 'palette-brightness';\n } else {\n return;\n }\n\n color.value.update(color.value.rgba);\n emitColorChange(changeTrigger);\n };\n\n /**\n * 色相变化\n * @param hue\n */\n const handleHueChange = (hue: number) => {\n color.value.hue = hue;\n emitColorChange('palette-hue-bar');\n props.onPaletteBarChange?.({\n color: getColorObject(color.value),\n });\n };\n\n /**\n * 透明度变化\n * @param alpha\n */\n const handleAlphaChange = (alpha: number) => {\n color.value.alpha = alpha;\n emitColorChange('palette-alpha-bar');\n };\n\n /**\n * 输入框触发改变\n * @param input\n * @param alpha\n */\n const handleInputChange = (input: string, alpha?: number) => {\n color.value.update(input);\n color.value.alpha = alpha;\n emitColorChange('input');\n };\n\n /**\n * 渐变改变\n * @param param0\n */\n const handleGradientChange = ({\n key,\n payload,\n }: {\n key: 'degree' | 'selectedId' | 'colors';\n payload: number | string | GradientColorPoint[];\n }) => {\n let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n switch (key) {\n case 'degree':\n color.value.gradientDegree = payload as number;\n trigger = 'input';\n break;\n case 'selectedId':\n color.value.gradientSelectedId = payload as string;\n break;\n case 'colors':\n color.value.gradientColors = payload as GradientColorPoint[];\n break;\n }\n emitColorChange(trigger);\n };\n\n /**\n * 色块点击\n * @param type\n * @param value\n */\n const handleSetColor = (type: 'system' | 'used', value: string) => {\n const isGradientValue = Color.isGradientColor(value);\n if (isGradientValue) {\n if (props.colorModes.includes('linear-gradient')) {\n mode.value = 'linear-gradient';\n color.value.update(value);\n color.value.updateCurrentGradientColor();\n } else {\n console.warn('该模式不支持渐变色');\n }\n } else if (mode.value === 'linear-gradient') {\n color.value.updateStates(value);\n color.value.updateCurrentGradientColor();\n } else {\n color.value.update(value);\n }\n emitColorChange();\n };\n\n return () => {\n const baseProps = {\n color: color.value,\n disabled: props.disabled,\n };\n const showUsedColors = recentlyUsedColors.value !== null && recentlyUsedColors.value !== false;\n\n let systemColors = props.swatchColors;\n if (systemColors === undefined) {\n systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n }\n const showSystemColors = systemColors?.length > 0;\n\n const renderSwatches = () => {\n if (!showSystemColors && !showUsedColors) {\n return null;\n }\n return (\n <>\n
    \n {showUsedColors ? (\n handleSetColor('used', color)}\n onChange={handleRecentlyUsedColorsChange}\n />\n ) : null}\n {showSystemColors ? (\n handleSetColor('system', color)}\n />\n ) : null}\n
    \n \n );\n };\n\n return (\n
    \n \n
    \n {isGradient.value ? (\n \n ) : null}\n\n \n\n
    \n
    \n \n {props.enableAlpha ? : null}\n
    \n\n {props.showPrimaryColorPreview ? (\n
    \n \n
    \n ) : null}\n
    \n\n \n {renderSwatches()}\n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './props';\nimport ColorPanel from './components/panel';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { pickBy } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TColorPickerPanel',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const newProps = computed(() => pickBy({ ...props, ...attrs }, (v) => v !== undefined));\n const prefix = usePrefixClass();\n return () => (\n \n );\n },\n});\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport TInput from '../../../input';\nimport { Color } from '../../utils';\nimport { TdColorPickerProps } from '../../type';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '../../../hooks/useConfig';\n\nexport default defineComponent({\n name: 'DefaultTrigger',\n inheritAttrs: false,\n props: {\n color: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n borderless: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n inputProps: {\n type: Object as PropType,\n default: () => {\n return {\n autoWidth: true,\n };\n },\n },\n onTriggerChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onTriggerClear: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n size: {\n type: String as PropType,\n default: 'medium',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const value = ref(props.color);\n const { SIZE: sizeClassNames } = useCommonClassName();\n watch(\n () => [props.color],\n () => (value.value = props.color),\n );\n\n const handleChange = (input: string) => {\n if (input === props.color) {\n return;\n }\n if (input && !Color.isValid(input)) {\n value.value = props.color;\n } else {\n value.value = input;\n }\n props.onTriggerChange(value.value);\n };\n\n const handleClear = (context: { e: MouseEvent }) => props.onTriggerClear?.(context);\n\n return () => {\n const inputSlots = {\n label: () => {\n return (\n
    \n \n
    \n );\n },\n };\n return (\n \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs } from 'vue';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport props from './props';\nimport { Popup as TPopup } from '../popup';\nimport ColorPanel from './components/panel';\nimport DefaultTrigger from './components/trigger';\nimport { TdColorContext } from './types';\nimport { useBaseClassName } from './hooks';\n\nexport default defineComponent({\n name: 'TColorPicker',\n props,\n setup(props) {\n const baseClassName = useBaseClassName();\n const renderTNodeJSXDefault = useTNodeDefault();\n const visible = ref(false);\n const setVisible = (value: boolean) => (visible.value = value);\n\n const { value: inputValue, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n\n const refTrigger = ref();\n\n const handleClear = (context: { e: MouseEvent }) => props.onClear?.(context);\n\n const renderPopupContent = () => {\n if (props.disabled) {\n return null;\n }\n const newProps = { ...props };\n delete newProps.onChange;\n return (\n setInnerValue(value, context)}\n />\n );\n };\n\n return () => {\n const popProps = {\n placement: 'bottom-left',\n ...((props.popupProps as any) || {}),\n trigger: 'click',\n attach: 'body',\n overlayClassName: [baseClassName.value],\n visible: visible.value,\n overlayInnerStyle: {\n padding: 0,\n },\n onVisibleChange: (\n visible: boolean,\n context: {\n trigger: string;\n },\n ) => {\n if (context.trigger === 'document') {\n setVisible(false);\n }\n },\n };\n return (\n \n
    setVisible(!visible.value)} ref={refTrigger}>\n {renderTNodeJSXDefault(\n 'default',\n ,\n )}\n
    \n
    \n );\n };\n },\n});\n","import _ColorPickerPanel from './color-picker-panel';\nimport _ColorPicker from './color-picker';\nimport withInstall from '../utils/withInstall';\nimport { TdColorPickerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ColorPickerProps = TdColorPickerProps;\nexport type ColorPickerPanelProps = TdColorPickerProps;\n\nexport const ColorPickerPanel = withInstall(_ColorPickerPanel);\nexport const ColorPicker = withInstall(_ColorPicker);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 头像替换文本,仅当图片加载失败时有效 */\n alt: {\n type: String,\n default: '',\n },\n /** 子元素内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 加载失败时隐藏图片 */\n hideOnLoadFailed: Boolean,\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 图片地址 */\n image: {\n type: String,\n default: '',\n },\n /** 透传至 Image 组件 */\n imageProps: {\n type: Object as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdAvatarProps['shape'],\n validator(val: TdAvatarProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round'].includes(val);\n },\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级高于 AvatarGroup.size 。Avatar 单独存在时,默认值为 medium。如果父组件存在 AvatarGroup,默认值便由 AvatarGroup.size 决定 */\n size: {\n type: String,\n default: '',\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdImageProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片描述 */\n alt: {\n type: String,\n default: '',\n },\n /** 自定义图片加载失败状态下的显示内容 */\n error: {\n type: [String, Function] as PropType,\n },\n /** 图片加载失败时,显示当前链接设置的图片地址。如果要使用组件图标或完全自定义加载失败时显示的内容,请更为使用 `error` */\n fallback: {\n type: String,\n default: '',\n },\n /** 图片填充模式 */\n fit: {\n type: String as PropType,\n default: 'fill' as TdImageProps['fit'],\n validator(val: TdImageProps['fit']): boolean {\n if (!val) return true;\n return ['contain', 'cover', 'fill', 'none', 'scale-down'].includes(val);\n },\n },\n /** 是否展示为图集样式 */\n gallery: Boolean,\n /** 是否开启图片懒加载 */\n lazy: Boolean,\n /** 自定义加载中状态的图片内容,如:“加载中” */\n loading: {\n type: [String, Function] as PropType,\n },\n /** 图片上方的浮层内容 */\n overlayContent: {\n type: [String, Function] as PropType,\n },\n /** 浮层 `overlayContent` 出现的时机 */\n overlayTrigger: {\n type: String as PropType,\n default: 'always' as TdImageProps['overlayTrigger'],\n validator(val: TdImageProps['overlayTrigger']): boolean {\n if (!val) return true;\n return ['always', 'hover'].includes(val);\n },\n },\n /** 占位元素,展示层级低于 `loading` `error` 和图片本身,值类型为字符串时表示占位图片地址 */\n placeholder: {\n type: [String, Function] as PropType,\n },\n /** 等同于原生的 object-position 属性,可选值为 top right bottom left 或 string,可以自定义任何单位,px 或者 百分比 */\n position: {\n type: String,\n default: 'center',\n },\n /** `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n referrerpolicy: {\n type: String as PropType,\n default: 'strict-origin-when-cross-origin' as TdImageProps['referrerpolicy'],\n validator(val: TdImageProps['referrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片圆角类型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdImageProps['shape'],\n validator(val: TdImageProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round', 'square'].includes(val);\n },\n },\n /** 用于显示图片的链接或原始图片文件对象 */\n src: {\n type: [String, Object] as PropType,\n },\n /** 图片链接集合,用于支持特殊格式的图片,如 `.avif` 和 `.webp`。会优先加载 `srcset` 中的图片格式,浏览器不支持的情况下,加载 `src` 设置的图片地址 */\n srcset: {\n type: Object as PropType,\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n /** 图片加载完成时触发 */\n onLoad: Function as PropType,\n};\n","import { defineComponent, ref, onMounted, computed, onUnmounted, watch, toRefs } from 'vue';\nimport { omit } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeDefault, useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport Space from '../space';\nimport { useImagePreviewUrl } from '../hooks/useImagePreviewUrl';\n\nexport default defineComponent({\n name: 'TImage',\n props,\n setup(props) {\n const divRef = ref(null);\n const imgRef = ref(null);\n let io: IntersectionObserver = null;\n\n const { src } = toRefs(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n onMounted(() => {\n //在nuxt3中img的onload事件会失效\n if (imgRef.value?.complete && !props.lazy) {\n triggerHandleLoad();\n }\n\n if (!props.lazy || !divRef.value) return;\n\n const ioObserver = observe(divRef.value, null, handleLoadImage, 0);\n io = ioObserver;\n });\n onUnmounted(() => {\n divRef.value && io && io.unobserve(divRef.value);\n });\n\n const { classPrefix, globalConfig } = useConfig('image');\n\n // replace image url\n const imageStrSrc = ref(src.value);\n\n watch(\n [src, globalConfig],\n ([src, globalConfig]) => {\n const { replaceImageSrc } = globalConfig || {};\n const tmpUrl = isFunction(replaceImageSrc) ? replaceImageSrc(props) : src;\n if (tmpUrl === imageStrSrc.value && imageStrSrc.value) return;\n imageStrSrc.value = tmpUrl;\n },\n { immediate: true },\n );\n\n const { previewUrl } = useImagePreviewUrl(imageStrSrc);\n\n watch([previewUrl], () => {\n hasError.value = false;\n isLoaded.value = false;\n });\n\n const shouldLoad = ref(!props.lazy);\n const handleLoadImage = () => {\n shouldLoad.value = true;\n };\n\n const isLoaded = ref(false);\n const handleLoad = (e: Event) => {\n isLoaded.value = true;\n props.onLoad?.({ e });\n };\n const triggerHandleLoad = () => {\n const loadEvent = new Event('load');\n Object.defineProperty(loadEvent, 'target', {\n value: imgRef.value,\n enumerable: true,\n });\n handleLoad(loadEvent);\n };\n const hasError = ref(false);\n const handleError = (e: Event) => {\n hasError.value = true;\n props.onError?.({ e });\n if (props.fallback) {\n imageStrSrc.value = props.fallback;\n hasError.value = false;\n }\n };\n\n const hasMouseEvent = computed(() => {\n return props.overlayTrigger === 'hover';\n });\n\n const imageClasses = computed(() => [\n `${classPrefix.value}-image`,\n `${classPrefix.value}-image--fit-${props.fit}`,\n `${classPrefix.value}-image--position-${props.position}`,\n ]);\n\n const shouldShowOverlay = ref(!hasMouseEvent.value);\n const handleToggleOverlay = () => {\n if (hasMouseEvent.value) {\n shouldShowOverlay.value = !shouldShowOverlay.value;\n }\n };\n\n const renderPlaceholder = () => {\n const placeholder = renderTNodeJSX('placeholder');\n if (!placeholder) return null;\n return
    {placeholder}
    ;\n };\n\n const renderGalleryShadow = () => {\n if (!props.gallery) return null;\n return \n );\n };\n\n function renderImageSrcset() {\n return (\n \n {Object.entries(props.srcset).map(([type, url]) => (\n \n ))}\n {renderImage()}\n \n );\n }\n\n function renderImage() {\n // string | File\n const url = isString(imageStrSrc.value) ? imageStrSrc.value : previewUrl.value;\n return (\n \n );\n }\n\n const renderTNodDefault = useTNodeDefault();\n\n return () => {\n return (\n \n {renderPlaceholder()}\n {renderGalleryShadow()}\n\n {(hasError.value || !shouldLoad.value) &&
    }\n {!(hasError.value || !shouldLoad.value) &&\n (props.srcset && Object.keys(props.srcset).length ? renderImageSrcset() : renderImage())}\n {!(hasError.value || !shouldLoad.value) && !isLoaded.value && (\n
    \n {renderTNodeJSX('loading') || (\n \n \n {isString(props.loading) ? props.loading : globalConfig.value.loadingText}\n \n )}\n
    \n )}\n\n {hasError.value && (\n
    \n {renderTNodDefault('error', {\n defaultNode: (\n \n \n {isString(props.error) ? props.error : globalConfig.value.errorText}\n \n ),\n })}\n
    \n )}\n\n {renderOverlay()}\n
    \n );\n };\n },\n});\n","import _Image from './image';\nimport withInstall from '../utils/withInstall';\nimport { TdImageProps } from './type';\n\nimport './style';\n\nexport type ImageProps = TdImageProps;\nexport * from './type';\n\nexport const Image = withInstall(_Image);\nexport default Image;\n","import { computed, defineComponent, inject, nextTick, onMounted, onUpdated, ref, watch } from 'vue';\nimport props from './props';\nimport { TdAvatarProps } from './type';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport Image, { ImageProps } from '../image';\n\nexport default defineComponent({\n name: 'TAvatar',\n props,\n setup(props: TdAvatarProps) {\n const COMPONENT_NAME = usePrefixClass('avatar');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { SIZE } = useCommonClassName();\n const avatarGroup = inject('avatarGroup', undefined);\n const avatar = ref(null);\n const avatarChild = ref(null);\n const isImgExist = ref(true);\n // 内容区在左右两边的间距保持为4\n const gap = ref(4);\n const scale = ref('');\n\n const sizeValue = computed(() => props.size || avatarGroup?.size);\n const isCustomSize = computed(() => sizeValue.value && !SIZE.value[sizeValue.value]);\n\n const customAvatarSize = computed(() => {\n return isCustomSize.value\n ? {\n width: sizeValue.value,\n height: sizeValue.value,\n 'font-size': `${Number.parseInt(sizeValue.value, 10) / 2}px`,\n }\n : {};\n });\n const customImageSize = computed(() => {\n return isCustomSize.value\n ? {\n height: sizeValue.value,\n width: sizeValue.value,\n }\n : {};\n });\n const customCharacterSize = computed(() => {\n return {\n transform: scale.value,\n };\n });\n\n const handleImgLoadError: ImageProps['onError'] = ({ e }) => {\n const { hideOnLoadFailed } = props;\n isImgExist.value = !hideOnLoadFailed;\n props.onError?.({ e });\n };\n // 设置字符头像大小自适应\n const setScaleParams = () => {\n const $avatar = avatar.value as HTMLElement;\n const $avatarChild = avatarChild.value as HTMLElement;\n const avatarWidth = $avatar?.offsetWidth;\n const avatarChildWidth = $avatarChild?.offsetWidth;\n if (gap.value * 2 < avatarWidth) {\n scale.value =\n avatarChildWidth > avatarWidth - gap.value * 2\n ? `scale(${(avatarWidth - gap.value * 2) / avatarChildWidth})`\n : 'scale(1)';\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n watch(\n () => props.image,\n (val) => {\n if (val) {\n // 重置 flag,避免切换后无法渲染\n isImgExist.value = true;\n }\n },\n );\n\n return () => {\n let content = renderContent('default', 'content');\n const icon = renderTNodeJSX('icon');\n const isIconOnly = icon && !content;\n const { shape, image, alt } = props;\n const avatarClass = [\n `${COMPONENT_NAME.value}`,\n SIZE.value[sizeValue.value],\n {\n [`${COMPONENT_NAME.value}--circle`]: shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: shape === 'round',\n [`${COMPONENT_NAME.value}__icon`]: !!isIconOnly,\n },\n ];\n content = (\n \n {content}\n \n );\n if (icon) {\n content = [icon, !isIconOnly ? content : ''];\n }\n\n if (image && isImgExist.value) {\n content = (\n \n );\n }\n return (\n
    \n {content}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarGroupProps } from '../avatar/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上 */\n cascading: {\n type: String as PropType,\n default: 'right-up' as TdAvatarGroupProps['cascading'],\n validator(val: TdAvatarGroupProps['cascading']): boolean {\n if (!val) return true;\n return ['left-up', 'right-up'].includes(val);\n },\n },\n /** 头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多` */\n collapseAvatar: {\n type: [String, Function] as PropType,\n },\n /** 能够同时显示的最多头像数量 */\n max: {\n type: Number,\n },\n /** 头像右上角提示信息 */\n popupProps: {\n type: Object as PropType,\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size */\n size: {\n type: String,\n default: '',\n },\n};\n","import { defineComponent, provide, VNode } from 'vue';\nimport props from './avatar-group-props';\nimport Avatar from './avatar';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { getChildren } from '../utils/render-tnode';\n\nexport default defineComponent({\n name: 'TAvatarGroup',\n props,\n setup(props) {\n provide('avatarGroup', props);\n const renderTNodeJSX = useTNodeJSX();\n\n const AVATAR_NAME = usePrefixClass('avatar');\n const COMPONENT_NAME = usePrefixClass('avatar-group');\n\n const renderEllipsisAvatar = (children: Array): Array => {\n if (children?.length > props.max) {\n const content = getEllipsisContent(children);\n const outAvatar = children.slice(0, props.max);\n outAvatar.push(\n \n {content}\n ,\n );\n return outAvatar;\n }\n return children;\n };\n\n // collapseAvatar\n const getEllipsisContent = (children: Array) => {\n return renderTNodeJSX('collapseAvatar') || `+${children.length - props.max}`;\n };\n\n return () => {\n const children = renderTNodeJSX('default');\n const { cascading, max } = props;\n const groupClass = [\n `${COMPONENT_NAME.value}`,\n {\n [`${AVATAR_NAME.value}--offset-right`]: cascading === 'right-up',\n [`${AVATAR_NAME.value}--offset-left`]: cascading === 'left-up',\n },\n ];\n const content = max && max >= 0 ? [renderEllipsisAvatar(getChildren(children))] : [children];\n\n return
    {content}
    ;\n };\n },\n});\n","import _Avatar from './avatar';\nimport _AvatarGroup from './group';\nimport withInstall from '../utils/withInstall';\nimport { TdAvatarProps, TdAvatarGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type AvatarProps = TdAvatarProps;\nexport type AvatarGroupProps = TdAvatarGroupProps;\n\nexport const Avatar = withInstall(_Avatar);\nexport const AvatarGroup = withInstall(_AvatarGroup);\n\nexport default Avatar;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdBadgeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 徽标内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+ */\n count: {\n type: [String, Number, Function] as PropType,\n default: 0,\n },\n /** 徽标内容,默认插槽,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为红点 */\n dot: Boolean,\n /** 封顶的数字值 */\n maxCount: {\n type: Number,\n default: 99,\n },\n /** 设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdBadgeProps['shape'],\n validator(val: TdBadgeProps['shape']): boolean {\n return ['circle', 'round'].includes(val);\n },\n },\n /** 当数值为 0 时,是否展示徽标 */\n showZero: Boolean,\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBadgeProps['size'],\n validator(val: TdBadgeProps['size']): boolean {\n return ['small', 'medium'].includes(val);\n },\n },\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TBadge',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n /** 内容计算相关逻辑 start */\n const displayCount = computed(() => {\n let count = renderTNodeJSX('count');\n\n if (Number.isNaN(Number(count))) {\n return count;\n }\n count = Number(props.count);\n return count > props.maxCount ? `${props.maxCount}+` : count;\n });\n\n const getOffset = () => {\n if (!props.offset) return {};\n let [xOffset, yOffset]: Array = props.offset;\n xOffset = Number.isNaN(Number(xOffset)) ? xOffset : `${xOffset}px`;\n yOffset = Number.isNaN(Number(yOffset)) ? yOffset : `${yOffset}px`;\n return { xOffset, yOffset };\n };\n /** 内容计算相关逻辑 end */\n\n /** 样式计算相关逻辑 start */\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('badge');\n const isHidden = computed(() => {\n return !props.showZero && (displayCount.value === 0 || displayCount.value === '0');\n });\n\n const badgeClassNames = computed(() => {\n return [\n {\n [`${COMPONENT_NAME.value}--dot`]: !!props.dot,\n [`${COMPONENT_NAME.value}--circle`]: !props.dot && props.shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: !props.dot && props.shape === 'round',\n [`${classPrefix.value}-size-s`]: props.size === 'small',\n },\n ];\n });\n\n const inlineStyle = computed(() => {\n const { xOffset, yOffset } = getOffset();\n return {\n background: props.color,\n right: xOffset,\n top: yOffset,\n };\n });\n /** 样式计算相关逻辑 end */\n\n return () => (\n
    \n {renderContent('default', 'content')}\n {isHidden.value ? null : (\n \n {props.dot ? null : displayCount.value}\n \n )}\n
    \n );\n },\n});\n","import _Badge from './badge';\nimport withInstall from '../utils/withInstall';\nimport { TdBadgeProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type BadgeProps = TdBadgeProps;\n\nexport const Badge = withInstall(_Badge);\nexport default Badge;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCalendarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 单元格插槽 */\n cell: {\n type: [String, Function] as PropType,\n },\n /** 单元格插槽,在原来的内容之后追加 */\n cellAppend: {\n type: [String, Function] as PropType,\n },\n /** 右上角控制器配置。支持全局配置。值为 false 则表示不显示控制器,值为 true 则显示控制器默认配置,值类型为 CalendarController 则显示为自定义控制器配置 */\n controllerConfig: {\n type: [Boolean, Object] as PropType,\n default: undefined as TdCalendarProps['controllerConfig'],\n },\n /** 小于 10 的日期,是否使用 '0' 填充。支持全局配置。默认表现为 `01` `02`,值为 false 表现为 `1` `2` `9` */\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n /** 第一天从星期几开始,仅在日历展示维度为月份时(mode = month)有效。默认为 1 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdCalendarProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,决定事件参数 formattedFilterDate 的输出值。[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'YYYY-MM-DD',\n },\n /** 头部插槽(左上角处,默认不显示任何内容) */\n head: {\n type: [String, Function] as PropType,\n },\n /** 默认是否显示周末 */\n isShowWeekendDefault: {\n type: Boolean,\n default: true,\n },\n /** 日历展示维度 */\n mode: {\n type: String as PropType,\n default: 'month' as TdCalendarProps['mode'],\n validator(val: TdCalendarProps['mode']): boolean {\n if (!val) return true;\n return ['month', 'year'].includes(val);\n },\n },\n /** 控制当前面板展示月份,优先级高于 `controllerConfig.month` */\n month: {\n type: [String, Number] as PropType,\n },\n /** 是否高亮多个日期单元格 */\n multiple: Boolean,\n /** 是否禁用单元格右键默认系统菜单 */\n preventCellContextmenu: Boolean,\n /** 用于设置日历的年月份显示范围,[范围开始,范围结束] */\n range: {\n type: Array as PropType,\n },\n /** 日历风格 */\n theme: {\n type: String as PropType,\n default: 'full' as TdCalendarProps['theme'],\n validator(val: TdCalendarProps['theme']): boolean {\n if (!val) return true;\n return ['full', 'card'].includes(val);\n },\n },\n /** 当前高亮的日期 */\n value: {\n type: [String, Array, Date] as PropType,\n },\n /** 用于自定义日历星期呈现方式。CalendarWeek.day 表示当前是星期几。示例一:['周一', '周二', '周三', '周四', '周五', '星期六', '星期天']。示例二:`({ day }) => '周' + day` */\n week: {\n type: [Array, Function] as PropType,\n },\n /** 控制当前面板展示年份,优先级高于 `controllerConfig.year` */\n year: {\n type: [String, Number] as PropType,\n },\n /** 日历单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 日历单元格双击时触发 */\n onCellDoubleClick: Function as PropType,\n /** 日历单元格右击时触发 */\n onCellRightClick: Function as PropType,\n /** 右上角控件组选中值有变化的时候触发 */\n onControllerChange: Function as PropType,\n /** 月份切换时触发 */\n onMonthChange: Function as PropType,\n};\n","interface ModeOption {\n // 选项值\n value: string;\n // 选项展示的文本\n label: string;\n}\n\n/** 常量 */\n// 组件配置项名\nexport const COMPONENT_NAME = 'calendar';\n// 非法日期的标识\nexport const INVALID_DATE = 'Invalid Date';\n// 最小年份\nexport const MIN_YEAR = 1970;\n// 每年首月份\nexport const FIRST_MONTH_OF_YEAR = 1;\n// 每年最后一个月份\nexport const LAST_MONTH_OF_YEAR = 12;\n\n/** 默认值 */\n// 默认的日期字符串格式\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';\n// 默认模式值\nexport const DEFAULT_MODE = 'month';\n// 默认周起始日\nexport const DEFAULT_FIRST_DAY_OF_WEEK = 1;\n// 默认风格类型\nexport const DEFAULT_THEME = 'full';\n// 年历中每一行显示的月数量\nexport const DEFAULT_YEAR_CELL_NUMINROW = 4;\n\n/** 数据源 */\n// 日历组件风格的可选值\nexport const THEME_LIST: string[] = ['full', 'card'];\n// 日历组件模式的可选值\nexport const MODE_LIST: string[] = ['month', 'year'];\n// 日历组件模式选项列表\nexport const MODE_OPTION_LIST: ModeOption[] = [\n { value: 'month', label: '月' },\n { value: 'year', label: '年' },\n];\n// 日历组件首列星期的可选值\nexport const FIRST_DAY_OF_WEEK_LIST: number[] = [1, 2, 3, 4, 5, 6, 7];\n\n/** map */\n// 一些固定的文本\nexport const TEXT_MAP: Record = {\n showWeekend: '显示周末',\n hideWeekend: '隐藏周末',\n today: '今天',\n thisMonth: '本月',\n};\n// 星期的显示值\nexport const DAY_CN_MAP: Record = {\n 1: '一',\n 2: '二',\n 3: '三',\n 4: '四',\n 5: '五',\n 6: '六',\n 7: '日',\n};\n// 月份的显示值\nexport const MONTH_CN_MAP: Record = {\n 1: '一月',\n 2: '二月',\n 3: '三月',\n 4: '四月',\n 5: '五月',\n 6: '六月',\n 7: '七月',\n 8: '八月',\n 9: '九月',\n 10: '十月',\n 11: '十一月',\n 12: '十二月',\n};\n\nexport default {\n COMPONENT_NAME,\n INVALID_DATE,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n\n DEFAULT_DATE_FORMAT,\n DEFAULT_MODE,\n DEFAULT_FIRST_DAY_OF_WEEK,\n DEFAULT_THEME,\n DEFAULT_YEAR_CELL_NUMINROW,\n\n TEXT_MAP,\n MODE_LIST,\n MODE_OPTION_LIST,\n FIRST_DAY_OF_WEEK_LIST,\n\n THEME_LIST,\n DAY_CN_MAP,\n MONTH_CN_MAP,\n};\n","import dayjs from 'dayjs';\n\nimport { TdCalendarProps, CalendarCell } from '../type';\nimport { CalendarState } from '../types';\n\n// 组件的一些常量\nimport { FIRST_MONTH_OF_YEAR, LAST_MONTH_OF_YEAR, DAY_CN_MAP } from '../consts';\n\n/**\n * 获取一个日期是周几(1~7)\n */\nexport const getDay = (dt: Date): number => {\n let day = dayjs(dt).day();\n if (day === 0) {\n day = 7;\n }\n return day;\n};\n\n/**\n * 获取星期的中文\n * @param num 星期(1~7)\n */\nexport const getDayCn = (num: number): string => {\n let re = '';\n const numStr = num.toString();\n if (numStr in DAY_CN_MAP) {\n re = DAY_CN_MAP[numStr];\n }\n return re;\n};\n\n/**\n * 获取一个日期在日历上的列下标\n * @param firstDayOfWeek 周起始日(1~7)\n * @param dt\n */\nexport const getCellColIndex = (firstDayOfWeek: number, dt: Date): number => {\n let re = 0;\n const day = getDay(dt);\n if (day >= firstDayOfWeek) {\n re = day - firstDayOfWeek;\n } else {\n re = 7 - firstDayOfWeek + day;\n }\n return re;\n};\n/**\n * 返回日期+天数(天数可以负数)\n */\nexport const addDate = (dt: Date, days: number) => {\n const d = new Date(dt);\n d.setDate(d.getDate() + days);\n return d;\n};\n\n/**\n * 创建月历单元格数据\n */\nexport const createYearCellsData = (props: TdCalendarProps, state: CalendarState): CalendarCell[] => {\n const { curSelectedYear: year, curDate, curDateList } = state;\n const { format, multiple } = props;\n\n const monthsArr: CalendarCell[] = [];\n for (let num = FIRST_MONTH_OF_YEAR; num <= LAST_MONTH_OF_YEAR; num++) {\n const date = new Date(year, num - 1);\n const isCurrent = multiple\n ? !!curDateList.find((item) => item.year() === year && parseInt(item.format('M'), 10) === num)\n : curDate.year() === year && parseInt(curDate.format('M'), 10) === num;\n monthsArr.push({\n mode: 'year',\n isCurrent,\n date,\n formattedDate: dayjs(date).format(format),\n filterDate: null,\n formattedFilterDate: null,\n isShowWeekend: true,\n });\n }\n\n return monthsArr;\n};\n\n/**\n * 创建日历单元格数据\n */\nexport const createMonthCellsData = (props: TdCalendarProps, state: CalendarState): CalendarCell[][] => {\n const {\n curSelectedYear: year,\n curSelectedMonth: month,\n realFirstDayOfWeek: firstDayOfWeek,\n curDate,\n curDateList,\n } = state;\n const { format, multiple } = props;\n\n const daysArr: CalendarCell[][] = [];\n // 当前月份的开始日期\n const begin: Date = dayjs(`${year}-${month}`).startOf('month').toDate();\n // 当前月份的结束日期\n const end: Date = dayjs(dayjs(`${year}-${month}`).endOf('month').format('YYYY-MM-DD')).toDate();\n const days = end.getDate();\n\n const beginDateColIndex = getCellColIndex(firstDayOfWeek, begin);\n let arr = [];\n let num = 1;\n\n const createCellData = (belongTo: number, isCurrent: boolean, date: Date, weekOrder: number): CalendarCell => {\n const day = getDay(date);\n return {\n mode: 'month',\n belongTo,\n isCurrent,\n day,\n weekOrder,\n date,\n formattedDate: dayjs(date).format(format),\n filterDate: null,\n formattedFilterDate: null,\n isShowWeekend: true,\n };\n };\n\n const judgeIsCurrent = (date: Date) => {\n const isCurrent = multiple ? !!curDateList.find((item) => item.isSame(dayjs(date))) : curDate.isSame(dayjs(date));\n return isCurrent;\n };\n\n // 添加上个月中和当前月第一天同一周的日期\n for (let i = 0; i < beginDateColIndex; i++) {\n const date = addDate(begin, i - beginDateColIndex);\n arr.push(createCellData(-1, false, date, num));\n if (arr.length === 7) {\n daysArr.push(arr);\n arr = [];\n num += 1;\n }\n }\n for (let i = 0; i < days; i++) {\n const date = addDate(begin, i);\n const isCurrent = judgeIsCurrent(date);\n arr.push(createCellData(0, isCurrent, date, num));\n if (arr.length === 7) {\n daysArr.push(arr);\n arr = [];\n num += 1;\n }\n }\n // 添加下个月中和当前月最后同一周的日期\n if (arr.length) {\n const nextMonthCellNum = 7 - arr.length;\n for (let i = 0; i < nextMonthCellNum; i++) {\n const date = addDate(end, i + 1);\n arr.push(createCellData(1, false, date, num));\n }\n daysArr.push(arr);\n }\n\n return daysArr;\n};\n\n/**\n * 根据当前时间创建一个默认日期\n * @returns 当前日期都dayjs对象\n */\nexport const createDefaultCurDate = (): dayjs.Dayjs => dayjs(dayjs().format('YYYY-MM-DD'));\n","import { reactive, watch } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useConfig } from '../../hooks/useConfig';\nimport { COMPONENT_NAME } from '../consts';\nimport { createDefaultCurDate } from '../utils';\nimport { TdCalendarProps } from '../type';\nimport { CalendarState } from '../types';\nimport { isArray } from 'lodash-es';\n\nexport function useState(props: TdCalendarProps) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const state = reactive({\n realFirstDayOfWeek: 1,\n curDate: null,\n curDateList: [],\n curSelectedYear: null,\n curSelectedMonth: null,\n curSelectedMode: null,\n isShowWeekend: true,\n controlSize: 'medium',\n });\n\n function toToday() {\n const curDate = createDefaultCurDate();\n state.curDate = curDate;\n state.curSelectedYear = curDate.year();\n state.curSelectedMonth = parseInt(curDate.format('M'), 10);\n }\n\n function setCurSelectedYear(year?: TdCalendarProps['year']) {\n const curSelectedYear = year ? parseInt(`${year}`, 10) : createDefaultCurDate().year();\n if (!isNaN(curSelectedYear) && curSelectedYear > 0) {\n state.curSelectedYear = curSelectedYear;\n }\n }\n\n function setCurSelectedMonth(month?: TdCalendarProps['month']) {\n const curSelectedMonth = month ? parseInt(`${month}`, 10) : parseInt(createDefaultCurDate().format('M'), 10);\n if (!isNaN(curSelectedMonth) && curSelectedMonth > 0 && curSelectedMonth <= 12) {\n state.curSelectedMonth = curSelectedMonth;\n }\n }\n\n function setCurrentDate(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDate = value && value.length ? dayjs(value[0]) : createDefaultCurDate();\n } else {\n state.curDate = value ? dayjs(value) : createDefaultCurDate();\n }\n }\n\n function setCurrentDateList(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDateList = value && value.length ? value.map((item) => dayjs(item)) : [createDefaultCurDate()];\n } else {\n state.curDateList = value ? [dayjs(value)] : [createDefaultCurDate()];\n }\n }\n\n function checkDayVisible(day: number) {\n let re = true;\n if (!state.isShowWeekend) {\n re = day !== 6 && day !== 7;\n }\n return re;\n }\n\n watch(\n () => props.firstDayOfWeek,\n () => {\n state.realFirstDayOfWeek = props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek ?? 1;\n },\n { immediate: true },\n );\n watch(\n () => props.value,\n (v: TdCalendarProps['value']) => {\n if (props.multiple) {\n setCurrentDateList(v);\n } else {\n setCurrentDate(v);\n }\n },\n { immediate: true },\n );\n watch(\n () => props.year,\n (v: TdCalendarProps['year']) => {\n setCurSelectedYear(v);\n },\n { immediate: true },\n );\n watch(\n () => props.month,\n (v: TdCalendarProps['month']) => {\n setCurSelectedMonth(v);\n },\n { immediate: true },\n );\n watch(\n () => props.isShowWeekendDefault,\n (v: TdCalendarProps['isShowWeekendDefault']) => {\n state.isShowWeekend = v;\n },\n { immediate: true },\n );\n watch(\n () => props.mode,\n (v: TdCalendarProps['mode']) => {\n state.curSelectedMode = v;\n },\n { immediate: true },\n );\n watch(\n () => props.theme,\n (v: TdCalendarProps['theme']) => {\n if (v === 'card') state.controlSize = 'small';\n if (v === 'full') state.controlSize = 'medium';\n },\n { immediate: true },\n );\n return {\n state,\n toToday,\n checkDayVisible,\n };\n}\n","import { isFunction } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { computed, nextTick } from 'vue';\nimport dayjs from 'dayjs';\nimport { COMPONENT_NAME } from '../consts';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps, ControllerOptions } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\n\nconst getDefaultControllerConfigData = (visible = true): Record => ({\n visible, // 是否显示(全部控件)\n disabled: false, // 是否禁用(全部控件)\n // 模式切换单选组件设置\n mode: {\n visible: true, // 是否显示\n radioGroupProps: {}, // 用于透传props给该radioGroup组件\n },\n // 年份选择框组件相关设置\n year: {\n visible: true, // 是否显示\n selectProps: {}, // 用于透传props给该select组件\n },\n // 年份选择框组件相关设置\n month: {\n visible: true, // 是否显示(“year”模式下本身是不显示该组件的)\n selectProps: {}, // 用于透传props给该select组件\n },\n // 隐藏\\显示周末按钮组件相关设置\n weekend: {\n visible: true, // 是否显示\n showWeekendButtonProps: {}, // 用于透传props给显示周末按钮组件\n hideWeekendButtonProps: {}, // 用于透传props给隐藏周末按钮组件\n },\n // “今天\\本月”按钮组件相关设置\n current: {\n visible: true, // 是否显示\n currentDayButtonProps: {}, // 用于透传props给“今天”钮组件(“month”模式下有效)\n currentMonthButtonProps: {}, // 用于透传props给“本月”按钮组件(“year”模式下有效)\n },\n});\n\nexport function userController(props: TdCalendarProps, state: CalendarState) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const options = computed(() => {\n const dayJsFilterDate = dayjs(`${state.curSelectedYear}-${state.curSelectedMonth}`);\n const re = {\n isShowWeekend: state.isShowWeekend,\n filterDate: dayJsFilterDate.toDate(),\n formattedFilterDate: dayJsFilterDate.format(props.format),\n mode: state.curSelectedMode,\n };\n return re;\n });\n const configData = computed>(() => {\n const controllerConfig = props.controllerConfig ?? globalConfig.value.controllerConfig ?? true;\n if (isBoolean(controllerConfig)) {\n return getDefaultControllerConfigData(controllerConfig);\n }\n return {\n ...getDefaultControllerConfigData(),\n ...controllerConfig,\n };\n });\n const visible = computed(() => {\n return !!configData.value && configData.value.visible;\n });\n /**\n * 判断某个控件是否显示\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @returns true表示显示\n */\n function checkControllerVisible(name: string): boolean {\n let re = true;\n const conf = configData.value;\n if (!conf || !conf.visible || conf[name] === false || (conf[name] && !conf[name].visible)) {\n re = false;\n }\n return re;\n }\n /**\n * 判断某个控件是否禁用\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @param propsName 表示禁用的控件属性(对应controllerConfigData)\n * @returns true表示禁用\n */\n function checkControllerDisabled(name: string, propsName: string): boolean {\n let re = false;\n const conf = configData.value;\n if (conf && (conf.disabled || (conf[name] && conf[name][propsName] && conf[name][propsName].disabled))) {\n re = true;\n }\n return re;\n }\n function emitControllerChange() {\n nextTick(() => {\n isFunction(props.onControllerChange) && props.onControllerChange({ ...options.value });\n });\n }\n\n return {\n options,\n configData,\n visible,\n checkControllerVisible,\n checkControllerDisabled,\n emitControllerChange,\n };\n}\n","import { computed } from 'vue';\n\nimport { CellColHeader, CalendarState } from '../types';\nimport { TdCalendarProps, WeekDay } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\nimport { COMPONENT_NAME } from '../consts';\nimport * as utils from '../utils';\nimport { isObject } from 'lodash-es';\n\nexport function useColHeaders(props: TdCalendarProps, state: CalendarState) {\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n\n const weekDisplayText = computed(() => {\n return props.week || t(globalConfig.value.week).split(',');\n });\n function getWeekDisplay(weekNum: number): string {\n const weekText = weekDisplayText.value as string[];\n return isObject(weekText) && weekText[weekNum - 1] ? weekText[weekNum - 1] : utils.getDayCn(weekNum);\n }\n const cellColHeaders = computed(() => {\n const re: CellColHeader[] = [];\n const min: WeekDay = 1;\n const max: WeekDay = 7;\n\n for (let i = state.realFirstDayOfWeek; i <= max; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n if (state.realFirstDayOfWeek > min) {\n for (let i = min; i < state.realFirstDayOfWeek; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n }\n return re;\n });\n\n return {\n cellColHeaders,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useCommonClassName } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\n\nimport { useCalendarCellClass } from './hooks';\n\n// 组件相关的自定义类型\nimport { CalendarCell } from './type';\n\nconst clickTypeEmitEventMap = {\n click: 'click',\n dblclick: 'dblclick',\n contextmenu: 'rightclick',\n};\n\nexport default defineComponent({\n name: `TCalendarCell`,\n inheritAttrs: false,\n props: {\n item: {\n type: Object,\n default: (): CalendarCell => null,\n },\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n theme: {\n type: String,\n default: (): string => null,\n },\n t: Function,\n global: Object,\n cell: [String, Function],\n cellAppend: [String, Function],\n },\n emits: [...Object.values(clickTypeEmitEventMap)],\n setup(props, { emit }) {\n const renderContent = useContent();\n const cls = useCalendarCellClass();\n const { STATUS } = useCommonClassName();\n\n const valueDisplay = computed(() => {\n if (props.item.mode === 'month') {\n const dateNum = props.item.date.getDate();\n const fillZero = dateNum < 10 && (props.fillWithZero ?? props.global.fillWithZero ?? true);\n return fillZero ? `0${dateNum}` : dateNum;\n }\n const map = props.t(props.global.cellMonth).split(',');\n return map[props.item.date.getMonth().toString()];\n });\n const allowSlot = computed(() => {\n return props.theme === 'full';\n });\n const disabled = computed(() => {\n return props.item.mode === 'month' && props.item.belongTo !== 0;\n });\n const cellCls = computed(() => {\n const { mode, date, formattedDate, isCurrent } = props.item;\n const now = new Date();\n const isNow =\n mode === 'year'\n ? now.getMonth() === date.getMonth() && now.getFullYear() === date.getFullYear()\n : formattedDate === dayjs().format('YYYY-MM-DD');\n return [\n cls.tableBodyCell.value,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.checked]: isCurrent,\n [cls.tableBodyCell4Now.value]: isNow,\n },\n ];\n });\n const clickCell = (e: MouseEvent): void => {\n if (disabled.value) return;\n const emitName = clickTypeEmitEventMap[e.type as keyof typeof clickTypeEmitEventMap];\n emit(emitName, e);\n };\n\n const renderDefaultNode = () => (\n <>\n
    {valueDisplay.value}
    \n
    \n {allowSlot.value &&\n renderContent('cellAppend', undefined, {\n params: { ...props.item },\n })}\n
    \n \n );\n\n return () => {\n return (\n props.item && (\n \n {renderContent('cell', undefined, {\n defaultNode: renderDefaultNode(),\n params: { ...props.item },\n })}\n \n )\n );\n };\n },\n});\n","import { computed } from 'vue';\n\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps } from '../type';\nimport { COMPONENT_NAME } from '../consts';\n\nexport function useCalendarClass(props: TdCalendarProps, state: CalendarState) {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const body = computed(() => {\n return [`${prefixClass.value}`, `${prefixClass.value}--${props.theme}`];\n });\n const panel = computed(() => {\n return [`${prefixClass.value}__panel`, `${prefixClass.value}__panel--${state.curSelectedMode}`];\n });\n const control = computed(() => {\n return [`${prefixClass.value}__control`];\n });\n const title = computed(() => {\n return [`${prefixClass.value}__title`];\n });\n const controlSection = computed(() => {\n return [`${prefixClass.value}__control-section`];\n });\n const controlSectionCell = computed(() => {\n return [`${prefixClass.value}__control-section-cell`];\n });\n const controlTag = computed(() => {\n return [`${prefixClass.value}__control-tag`];\n });\n const table = computed(() => {\n return [`${prefixClass.value}__table`];\n });\n const tableHead = computed(() => {\n return [`${prefixClass.value}__table-head`];\n });\n const tableHeadRow = computed(() => {\n return [`${prefixClass.value}__table-head-row`];\n });\n const tableHeadCell = computed(() => {\n return [`${prefixClass.value}__table-head-cell`];\n });\n const tableBody = computed(() => {\n return [`${prefixClass.value}__table-body`];\n });\n const tableBodyRow = computed(() => {\n return [`${prefixClass.value}__table-body-row`];\n });\n\n return {\n body,\n panel,\n control,\n title,\n controlSection,\n controlSectionCell,\n controlTag,\n table,\n tableHead,\n tableHeadRow,\n tableHeadCell,\n tableBody,\n tableBodyRow,\n };\n}\n\nexport function useCalendarCellClass() {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const tableBodyCell = computed(() => {\n return [`${prefixClass.value}__table-body-cell`];\n });\n const tableBodyCell4Now = computed(() => {\n return `${prefixClass.value}__table-body-cell--now`;\n });\n const tableBodyCellDisplay = computed(() => {\n return [`${prefixClass.value}__table-body-cell-display`];\n });\n const tableBodyCellCsontent = computed(() => {\n return [`${prefixClass.value}__table-body-cell-content`];\n });\n\n return {\n tableBodyCell,\n tableBodyCell4Now,\n tableBodyCellDisplay,\n tableBodyCellCsontent,\n };\n}\n","import { defineComponent, computed, watch } from 'vue';\n// 通用库\nimport dayjs from 'dayjs';\nimport { remove } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\nimport { useState, useCalendarClass, userController, useColHeaders } from './hooks';\n\n// 组件的一些常量\nimport {\n COMPONENT_NAME,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n DEFAULT_YEAR_CELL_NUMINROW,\n} from './consts';\n\n// 子组件\nimport { Select as TSelect } from '../select';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../radio';\nimport { Button as TButton } from '../button';\nimport { CheckTag as TCheckTag } from '../tag';\nimport CalendarCellItem from './calendar-cell';\n\n// 组件相关类型\nimport { CalendarCell } from './type';\nimport { CalendarRange, YearMonthOption, ModeOption, CellEventOption } from './types';\n\n// 组件逻辑\nexport default defineComponent({\n name: 'TCalendar',\n props,\n setup(props, { slots }) {\n const renderContent = useContent();\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n // 组件内部状态管理\n const { state, toToday, checkDayVisible } = useState(props);\n\n // 样式\n const cls = useCalendarClass(props, state);\n\n // 日历主体头部(日历模式下使用)\n const { cellColHeaders } = useColHeaders(props, state);\n\n // 日历控件栏(右上角)\n const controller = userController(props, state);\n\n // 年\\月份下拉框\n const rangeFromTo = computed(() => {\n if (!props.range || props.range.length < 2) {\n return null;\n }\n const [v1, v2] = props.range;\n if (dayjs(v1).isBefore(dayjs(v2))) {\n return {\n from: v1,\n to: v2,\n };\n }\n return {\n from: v2,\n to: v1,\n };\n });\n function checkMonthAndYearSelectedDisabled(year: number, month: number): boolean {\n let disabled = false;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n if (year === beginYear) {\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n disabled = month < beginMon;\n } else if (year === endYear) {\n const endMon = parseInt(dayjs(rangeFromTo.value.to).format('M'), 10);\n disabled = month > endMon;\n }\n }\n return disabled;\n }\n // 当存在日期范围限制时,改变年份后应将月份调整为合法月份\n function adjustMonth(): void {\n if (rangeFromTo.value?.from && rangeFromTo.value?.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n if (checkMonthAndYearSelectedDisabled(state.curSelectedYear, state.curSelectedMonth)) {\n state.curSelectedMonth =\n state.curSelectedYear === beginYear\n ? beginMon\n : state.curSelectedYear === endYear\n ? 1\n : state.curSelectedMonth;\n }\n }\n }\n watch(\n () => {\n return {\n year: `${state.curSelectedYear}`,\n month: `${state.curSelectedMonth}`,\n };\n },\n (v: { month: string; year: string }) => {\n isFunction(props.onMonthChange) && props.onMonthChange({ ...v });\n controller.emitControllerChange();\n },\n );\n const dateSelect = {\n yearSelectOptionList: computed(() => {\n const re: YearMonthOption[] = [];\n let begin: number = state.curSelectedYear - 10;\n let end: number = state.curSelectedYear + 10;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n begin = dayjs(rangeFromTo.value.from).year();\n end = dayjs(rangeFromTo.value.to).year();\n }\n\n if (begin < MIN_YEAR) {\n begin = MIN_YEAR;\n }\n if (end < MIN_YEAR) {\n end = MIN_YEAR;\n }\n\n for (let i = begin; i <= end; i++) {\n re.push({\n value: i,\n label: t(globalConfig.value.yearSelection, { year: i }),\n disabled: false,\n });\n }\n return re;\n }),\n isYearSelectVisible: computed(() => {\n return controller.checkControllerVisible('year');\n }),\n isYearSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('year', 'selectProps');\n }),\n monthSelectOptionList: computed(() => {\n adjustMonth();\n const re: YearMonthOption[] = [];\n for (let i = FIRST_MONTH_OF_YEAR; i <= LAST_MONTH_OF_YEAR; i++) {\n const disabled = checkMonthAndYearSelectedDisabled(state.curSelectedYear, i);\n re.push({\n value: i,\n label: t(globalConfig.value.monthSelection, { month: i }),\n disabled,\n });\n }\n return re;\n }),\n isMonthSelectVisible: computed(() => {\n return state.curSelectedMode === 'month' && controller.checkControllerVisible('month');\n }),\n isMonthSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('month', 'selectProps');\n }),\n };\n // 模式选项\n const modeSelect = {\n optionList: computed(() => {\n return [\n { value: 'month', label: t(globalConfig.value.monthRadio) },\n { value: 'year', label: t(globalConfig.value.yearRadio) },\n ];\n }),\n isVisible: computed(() => {\n return controller.checkControllerVisible('mode');\n }),\n isDisabled: computed(() => {\n return controller.checkControllerDisabled('mode', 'radioGroupProps');\n }),\n };\n // 显示\\隐藏周末按钮\n const weekendBtn = {\n text: computed(() => {\n return state.isShowWeekend ? t(globalConfig.value.hideWeekend) : t(globalConfig.value.showWeekend);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.weekend;\n return state.isShowWeekend ? c.hideWeekendButtonProps : c.showWeekendButtonProps;\n }),\n isVisible: computed(() => {\n return (\n props.theme === 'full' &&\n controller.checkControllerVisible('current') &&\n controller.checkControllerVisible('weekend')\n );\n }),\n isDisabled: computed(() => {\n const p = state.isShowWeekend ? 'hideWeekendButtonProps' : 'showWeekendButtonProps';\n return controller.checkControllerDisabled('weekend', p);\n }),\n };\n // 今天\\本月按钮\n const currentBtn = {\n text: computed(() => {\n return state.curSelectedMode === 'month' ? t(globalConfig.value.today) : t(globalConfig.value.thisMonth);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.current;\n return state.curSelectedMode === 'month' ? c.currentDayButtonProps : c.currentMonthButtonProps;\n }),\n isVisible: computed(() => {\n return props.theme === 'full' && controller.checkControllerVisible('current');\n }),\n isDisabled: computed(() => {\n const p = state.curSelectedMode === 'month' ? 'currentDayButtonProps' : 'currentMonthButtonProps';\n return controller.checkControllerDisabled('current', p);\n }),\n };\n const renderControl = () => {\n return (\n
    \n
    \n {renderContent('head', undefined, {\n params: { ...controller.options.value },\n })}\n
    \n
    \n {dateSelect.isYearSelectVisible.value && (\n
    \n \n
    \n )}\n {dateSelect.isMonthSelectVisible.value && (\n
    \n \n
    \n )}\n {modeSelect.isVisible.value && (\n
    \n \n {modeSelect.optionList.value.map((item) => (\n \n {item.label}\n \n ))}\n \n
    \n )}\n\n {weekendBtn.isVisible.value && (\n
    \n {\n state.isShowWeekend = !state.isShowWeekend;\n controller.emitControllerChange();\n }}\n >\n {weekendBtn.text.value}\n \n
    \n )}\n {currentBtn.isVisible.value && (\n
    \n {\n toToday();\n }}\n >\n {currentBtn.text.value}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const cellClickEmit = (eventPropsName: keyof typeof props, e: MouseEvent, cellData: CalendarCell): void => {\n if (isFunction(props[eventPropsName])) {\n const options: CellEventOption = {\n cell: {\n ...cellData,\n ...controller.options.value,\n },\n e,\n };\n (props[eventPropsName] as Function)(options);\n }\n };\n const clickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n const d = dayjs(cellData.date);\n if (props.multiple) {\n if (state.curDateList.find((item) => item.isSame(d))) {\n state.curDateList = remove(state.curDateList, (item) => !item.isSame(d));\n } else {\n state.curDateList.push(d);\n }\n } else {\n state.curDate = d;\n }\n cellClickEmit('onCellClick', e, cellData);\n };\n const doubleClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n cellClickEmit('onCellDoubleClick', e, cellData);\n };\n const rightClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n if (props.preventCellContextmenu) {\n e.preventDefault();\n }\n cellClickEmit('onCellRightClick', e, cellData);\n };\n\n const monthCellsData = computed(() => {\n const daysArr: CalendarCell[][] = utils.createMonthCellsData(props, state);\n return daysArr;\n });\n const renderMonthBody = () => {\n return (\n \n \n \n {cellColHeaders.value.map(\n (item, index) =>\n checkDayVisible(item.num) && (\n \n ),\n )}\n \n \n\n \n {monthCellsData.value.map((week, weekIndex) => (\n \n {week.map(\n (item, itemIndex) =>\n (state.isShowWeekend || item.day < 6) && (\n clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n >\n ),\n )}\n \n ))}\n \n
    \n {isArray(props.week)\n ? props.week[index]\n : renderContent('week', undefined, {\n defaultNode: {item.display},\n params: { day: item.num },\n })}\n
    \n );\n };\n\n const yearCellsData = computed(() => {\n const re: CalendarCell[][] = [];\n const monthsArr: CalendarCell[] = utils.createYearCellsData(props, state);\n const rowCount = Math.ceil(monthsArr.length / DEFAULT_YEAR_CELL_NUMINROW);\n let index = 0;\n for (let i = 1; i <= rowCount; i++) {\n const row: CalendarCell[] = [];\n for (let j = 1; j <= DEFAULT_YEAR_CELL_NUMINROW; j++) {\n row.push(monthsArr[index]);\n index += 1;\n }\n re.push(row);\n }\n return re;\n });\n const renderYearBody = () => {\n return (\n \n \n {yearCellsData.value.map((cell, cellIndex) => (\n \n {cell.map((item, itemIndex) => (\n clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n >\n ))}\n \n ))}\n \n
    \n );\n };\n\n return () => {\n return (\n
    \n {controller.visible.value && renderControl()}\n
    {state.curSelectedMode === 'month' ? renderMonthBody() : renderYearBody()}
    \n
    \n );\n };\n },\n});\n","import _Calendar from './calendar';\nimport withInstall from '../utils/withInstall';\nimport { TdCalendarProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CalendarProps = TdCalendarProps;\n\nexport const Calendar = withInstall(_Calendar);\nexport default Calendar;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCardProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 卡片操作区 */\n actions: {\n type: [String, Function] as PropType,\n },\n /** 卡片中的用户头像,仅在海报风格的卡片中有效 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 是否有边框 */\n bordered: {\n type: Boolean,\n default: true,\n },\n /** 卡片内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 卡片封面图。值类型为字符串,会自动使用 `img` 标签输出封面图;也可以完全最定义封面图 */\n cover: {\n type: [String, Function] as PropType,\n },\n /** 卡片内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 卡片描述文案 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 卡片底部内容,可完全自定义 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 卡片顶部内容,优先级高于其他所有元素 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 头部是否带分割线,仅在有header时有效 */\n headerBordered: Boolean,\n /** hover时是否有阴影 */\n hoverShadow: Boolean,\n /** 加载状态,值为 true 会根据不同的布局显示不同的加载状态,值为 false 则表示非加载状态。也可以使用 Skeleton 组件完全自定义加载态呈现内容 */\n loading: {\n type: [Boolean, Function] as PropType,\n default: false as TdCardProps['loading'],\n },\n /** 透传加载组件(Loading)全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 是否显示卡片阴影,默认不显示 */\n shadow: Boolean,\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCardProps['size'],\n validator(val: TdCardProps['size']): boolean {\n if (!val) return true;\n return ['medium', 'small'].includes(val);\n },\n },\n /** 卡片状态内容,仅在操作区域不在顶部时有效(即 `theme=poster2` ) */\n status: {\n type: String,\n default: '',\n },\n /** 卡片副标题 */\n subtitle: {\n type: [String, Function] as PropType,\n },\n /** 卡片风格:普通风格、海报风格1(操作区域在顶部)、海报风格2(操作区域在底部) */\n theme: {\n type: String as PropType,\n default: 'normal' as TdCardProps['theme'],\n validator(val: TdCardProps['theme']): boolean {\n if (!val) return true;\n return ['normal', 'poster1', 'poster2'].includes(val);\n },\n },\n /** 卡片标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, computed } from 'vue';\n\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport TLoading from '../loading';\nimport props from './props';\nimport { isString } from 'lodash-es';\nimport { TdCardProps } from './type';\n\nexport default defineComponent({\n name: 'TCard',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('card');\n const { SIZE } = useCommonClassName();\n\n const baseCls = computed(() => {\n const defaultClass = [COMPONENT_NAME.value];\n\n if (props.size === 'small') defaultClass.push(`${SIZE.value[props.size]}`);\n if (props.bordered) defaultClass.push(`${COMPONENT_NAME.value}--bordered`);\n if (props.shadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow`);\n if (props.hoverShadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow-hover`);\n\n return defaultClass;\n });\n\n const headerCls = computed(() => {\n const defaultClass = [`${COMPONENT_NAME.value}__header`];\n return props.headerBordered\n ? defaultClass.concat(`${COMPONENT_NAME.value}__title--bordered`)\n : [`${COMPONENT_NAME.value}__header`];\n });\n\n const headerWrapperCls = usePrefixClass('card__header-wrapper');\n const headerAvatarCls = usePrefixClass('card__avatar');\n const headerTitleCls = usePrefixClass('card__title');\n const headerSubTitleCls = usePrefixClass('card__subtitle');\n const headerDescriptionCls = usePrefixClass('card__description');\n const actionsCls = usePrefixClass('card__actions');\n\n const bodyCls = usePrefixClass('card__body');\n const coverCls = usePrefixClass('card__cover');\n const footerCls = usePrefixClass('card__footer');\n const footerWrapperCls = usePrefixClass('card__footer-wrapper');\n\n // 卡片风格:普通风格、海报风格1(操作区域在顶部)、海报风格2(操作区域在底部)。\n // 可选项:normal/poster1/poster2\n const isPoster2 = computed(() => props.theme === 'poster2');\n\n const showTitle = computed(() => props.title || slots.title);\n const showHeader = computed(() => props.header || slots.header);\n const showSubtitle = computed(() => props.subtitle || slots.subtitle);\n const showAvatar = computed(() => props.avatar || slots.avatar);\n const showDescription = computed(() => props.description || slots.description);\n const showStatus = computed(() => props.status || slots.status);\n const showActions = computed(() => props.actions || slots.actions);\n const showFooter = computed(() => props.footer || slots.footer);\n const showCover = computed(() => props.cover || slots.cover);\n const showLoading = computed(() => props.loading || slots.loading);\n const showContent = computed(() => props.content || slots.content || props.default || slots.default);\n\n // 是否展示头部区域\n const isHeaderRender = computed(\n () =>\n showHeader.value ||\n showTitle.value ||\n showSubtitle.value ||\n showDescription.value ||\n showAvatar.value ||\n (showStatus.value && isPoster2.value) ||\n (showActions.value && !isPoster2.value),\n );\n\n // 是否展示底部区域\n const isFooterRender = computed(() => showFooter.value || (showActions.value && isPoster2.value));\n\n // 头部区域渲染逻辑\n const renderHeader = () => {\n if (showHeader.value) return
    {renderTNodeJSX('header')}
    ;\n return (\n
    \n
    \n {showAvatar.value &&
    {renderTNodeJSX('avatar')}
    }\n
    \n {showTitle.value &&
    {renderTNodeJSX('title')}
    }\n {showSubtitle.value &&
    {renderTNodeJSX('subtitle')}
    }\n {showDescription.value &&

    {renderTNodeJSX('description')}

    }\n
    \n
    \n {showActions.value && !isPoster2.value &&
    {renderTNodeJSX('actions')}
    }\n {showStatus.value &&
    {renderTNodeJSX('status')}
    }\n
    \n );\n };\n\n // 封面区域渲染逻辑\n const renderCover = () => {\n const textCover = isString(props.cover);\n return
    {textCover ? : renderTNodeJSX('cover')}
    ;\n };\n\n return () => {\n const content = (\n
    \n {isHeaderRender.value ? renderHeader() : null}\n {showCover.value ? renderCover() : null}\n {showContent.value && (\n
    {renderTNodeJSX('default') || renderTNodeJSX('content')}
    \n )}\n {isFooterRender.value && (\n
    \n
    {renderTNodeJSX('footer')}
    \n {showActions.value && isPoster2.value &&
    {renderTNodeJSX('actions')}
    }\n
    \n )}\n
    \n );\n\n if (showLoading.value) {\n return (\n renderTNodeJSX('loading') || (\n {content}\n )\n );\n }\n return content;\n };\n },\n});\n","import _Card from './card';\nimport withInstall from '../utils/withInstall';\nimport { TdCardProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CardProps = TdCardProps;\n\nexport const Card = withInstall(_Card);\nexport default Card;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdCommentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作 */\n actions: {\n type: Array as PropType,\n },\n /** 作者 */\n author: {\n type: [String, Function] as PropType,\n },\n /** 头像 */\n avatar: {\n type: [String, Object, Function] as PropType,\n },\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 时间 */\n datetime: {\n type: [String, Function] as PropType,\n },\n /** 引用 */\n quote: {\n type: [String, Function] as PropType,\n },\n /** 回复 */\n reply: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Button from '../button';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TComment',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('comment');\n const renderTNodeJSX = useTNodeJSX();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ?
    {reply}
    : null;\n\n const quoteDom = quote ?
    {quote}
    : null;\n\n const avatarDom = avatar ? (\n
    \n {isString(avatar) ? \"\" : avatar}\n
    \n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n
    \n {author && {author}}\n {datetime && {datetime}}\n
    \n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n return (\n
    \n {(isArray(actions) ? actions : [actions]).map((action, index) => (\n \n ))}\n
    \n );\n };\n\n const contentDom = (\n
    \n {authorDatetimeDom}\n
    {content}
    \n {quoteDom}\n {renderActions()}\n
    \n );\n\n return (\n
    \n
    \n {avatarDom}\n {contentDom}\n
    \n {replyDom}\n
    \n );\n };\n },\n});\n","import _Comment from './comment';\nimport withInstall from '../utils/withInstall';\nimport { TdCommentProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CommentProps = TdCommentProps;\n\nexport const Comment = withInstall(_Comment);\nexport default Comment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdEmptyProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作按钮 */\n action: {\n type: Function as PropType,\n },\n /** 描述文字 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 组件图片,可以完全自定义内容。值类型为字符串时,表示图片地址;值类型为对象时,则表示透传全部属性到图片组件,示例:`` */\n image: {\n type: [String, Function] as PropType,\n },\n /** 透传图片样式表 */\n imageStyle: {\n type: Object as PropType,\n },\n /** 空状态的尺寸,默认为 `medium` */\n size: {\n type: String as PropType,\n default: 'medium' as TdEmptyProps['size'],\n validator(val: TdEmptyProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 错误标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 组件类型,如:空数据/成功/失败/网络错误/建设中 */\n type: {\n type: String as PropType,\n default: 'empty' as TdEmptyProps['type'],\n validator(val: TdEmptyProps['type']): boolean {\n if (!val) return true;\n return ['empty', 'success', 'fail', 'network-error', 'maintenance'].includes(val);\n },\n },\n};\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'MaintenanceSvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'NetworkErrorSvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'EmptySvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'FailSvg',\n setup() {\n return () => (\n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'SuccessSvg',\n setup() {\n return () => (\n \n \n \n );\n },\n});\n","import { computed, defineComponent, h, toRefs } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isPlainObject } from 'lodash-es';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport type { TdEmptyProps } from './type';\nimport Image from '../image';\nimport MaintenanceSvg from './components/MaintenanceSvg';\nimport NetworkErrorSvg from './components/NetworkErrorSvg';\nimport EmptySvg from './components/EmptySvg';\nimport FailSvg from './components/FailSvg';\nimport SuccessSvg from './components/SuccessSvg';\n\nexport default defineComponent({\n name: 'TEmpty',\n components: { TImage: Image },\n props,\n setup(props: TdEmptyProps, { slots }) {\n const { size, image: propsImage, description: propsDescription, title: propsTitle, type } = toRefs(props);\n const { globalConfig } = useConfig('empty');\n const classPrefix = usePrefixClass('empty');\n const showAction = computed(() => props.action || slots.action);\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const defaultMaps: {\n [key in TdEmptyProps['type']]?: Pick;\n } = {\n maintenance: {\n image: globalConfig.value.image.maintenance || MaintenanceSvg,\n title: globalConfig.value.titleText.maintenance,\n },\n success: {\n image: globalConfig.value.image.success || SuccessSvg,\n title: globalConfig.value.titleText.success,\n },\n fail: {\n image: globalConfig.value.image.fail || FailSvg,\n title: globalConfig.value.titleText.fail,\n },\n 'network-error': {\n image: globalConfig.value.image.networkError || NetworkErrorSvg,\n title: globalConfig.value.titleText.networkError,\n },\n empty: {\n image: globalConfig.value.image.empty || EmptySvg,\n title: globalConfig.value.titleText.empty,\n },\n };\n\n const emptyClasses = computed(() => [classPrefix.value, SIZE.value[size.value]]);\n const titleClasses = [`${classPrefix.value}__title`];\n const imageClasses = [`${classPrefix.value}__image`];\n const descriptionClasses = [`${classPrefix.value}__description`];\n const actionClass = [`${classPrefix.value}__action`];\n\n const typeImageProps = computed(() => defaultMaps[type.value] ?? null);\n const showImage = computed(() => propsImage.value || slots?.image?.() || typeImageProps.value?.image);\n const showTitle = computed(() => propsTitle.value || slots?.title?.() || typeImageProps.value?.title);\n const showDescription = computed(() => propsDescription.value || slots?.description?.());\n\n const renderTitle = () => {\n if (!showTitle.value) {\n return null;\n }\n return
    {showTitle.value}
    ;\n };\n const renderDescription = () => {\n if (!showDescription.value) {\n return null;\n }\n return
    {showDescription.value}
    ;\n };\n const getImageIns = () => {\n const data = showImage.value;\n let result = null;\n if (isString(data)) {\n result = ;\n } else if (data && Reflect.has(data, 'setup')) {\n result = h(data as unknown);\n } else if (isPlainObject(data)) {\n result = ;\n }\n\n return data ? result : null;\n };\n\n return () => {\n return (\n
    \n {showImage.value ? (\n
    \n {slots?.image ? renderTNodeJSX('image') : getImageIns()}\n
    \n ) : null}\n {renderTitle()}\n {renderDescription()}\n {showAction.value ?
    {renderTNodeJSX('action')}
    : null}\n
    \n );\n };\n },\n});\n","import _Empty from './empty';\nimport withInstall from '../utils/withInstall';\nimport type { TdEmptyProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type EmptyProps = TdEmptyProps;\n\nexport const Empty = withInstall(_Empty);\nexport default Empty;\n","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message';\n\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n private popupStack = {\n popup: new Set(),\n dialog: new Set(),\n message: new Set(),\n };\n\n private getNextZIndex = (type: PopupType) => {\n const current =\n type === 'message'\n ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n return current + Z_INDEX_STEP;\n };\n\n public add = (type: PopupType) => {\n const zIndex = this.getNextZIndex(type);\n this.popupStack[type].add(zIndex);\n if (type === 'dialog') {\n this.popupStack.popup.add(zIndex);\n }\n return zIndex;\n };\n\n public delete = (zIndex: number, type: PopupType) => {\n this.popupStack[type].delete(zIndex);\n if (type === 'dialog') {\n this.popupStack.popup.delete(zIndex);\n }\n };\n\n public isLastDialog = (zIndex: number) => {\n if (this.popupStack.dialog.size > 1) {\n return zIndex === Array.from(this.popupStack.dialog).pop();\n }\n return true;\n };\n}\n\nconst popupManager = new PopupManager();\n\nexport default function usePopupManager(\n type: PopupType,\n {\n visible,\n runOnMounted,\n }: {\n visible?: Ref;\n runOnMounted?: boolean;\n } = {},\n) {\n const zIndex = ref(0);\n\n const open = () => {\n zIndex.value = popupManager.add(type);\n };\n\n const close = () => {\n popupManager.delete(zIndex.value, type);\n };\n\n const isLastDialog = () => {\n if (type === 'dialog') {\n return popupManager.isLastDialog(zIndex.value);\n }\n return false;\n };\n\n watch(\n () => visible?.value,\n (visible) => {\n if (visible) {\n open();\n } else {\n close();\n }\n },\n {\n immediate: true,\n },\n );\n\n if (runOnMounted) {\n onMounted(() => {\n open();\n });\n\n onBeforeUnmount(() => {\n close();\n });\n }\n\n return {\n zIndex: readonly(zIndex),\n open,\n close,\n isLastDialog,\n };\n}\n","import { positiveSubtract, positiveAdd } from '@tdesign/common-js/input-number/number';\nimport { ref, watch } from 'vue';\nimport { ImageScale } from '../type';\nimport { throttle } from 'lodash-es';\n\ninterface InitTransform {\n translateX: number;\n translateY: number;\n}\n\nexport function useDrag(initTransform: InitTransform) {\n const transform = ref(initTransform);\n\n const mouseDownHandler = (e: MouseEvent) => {\n const { pageX: startX, pageY: startY } = e;\n const { translateX, translateY } = transform.value;\n const mouseMoveHandler = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n transform.value = {\n translateX: translateX + pageX - startX,\n translateY: translateY + pageY - startY,\n };\n };\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n };\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const resetTransform = () => {\n transform.value = { ...initTransform };\n };\n\n return { transform, mouseDownHandler, resetTransform };\n}\n\nexport function useMirror() {\n const mirror = ref(1);\n const onMirror = () => {\n mirror.value *= -1;\n };\n const resetMirror = () => {\n mirror.value = 1;\n };\n\n return { mirror, onMirror, resetMirror };\n}\n\nexport function useScale(imageScale: ImageScale = { max: 2, min: 0.5, step: 0.2 }) {\n const { max, min, step, defaultScale } = imageScale;\n const scale = ref(defaultScale ?? 1);\n\n const onZoomIn = throttle(() => {\n const result = positiveAdd(scale.value, step);\n setScale(result);\n }, 50);\n\n const onZoomOut = throttle(() => {\n const result = positiveSubtract(scale.value, step);\n setScale(result);\n }, 50);\n\n const resetScale = () => {\n scale.value = defaultScale ?? 1;\n };\n\n const setScale = (newScale: number) => {\n let value = newScale;\n if (newScale < min) {\n value = min;\n }\n if (newScale > max) {\n value = max;\n }\n scale.value = value;\n };\n\n watch(\n () => imageScale,\n () => resetScale(),\n );\n\n return { scale, onZoomIn, onZoomOut, resetScale };\n}\n\nexport function useRotate() {\n const rotate = ref(0);\n const ROTATE_DEG = 90;\n\n const onRotate = () => {\n rotate.value += ROTATE_DEG;\n };\n const resetRotate = () => {\n rotate.value = 0;\n };\n\n return { rotate, onRotate, resetRotate };\n}\n","import { ImageErrorIcon } from 'tdesign-icons-vue-next';\nimport { PropType, computed, defineComponent, onMounted, ref, toRefs, watch } from 'vue';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { useImagePreviewUrl } from '../../hooks/useImagePreviewUrl';\nimport { useDrag } from '../hooks';\nimport { TdImageViewerProps } from '../type';\n\nexport default defineComponent({\n name: 'TImageItem',\n props: {\n rotate: Number,\n scale: Number,\n mirror: Number,\n src: [String, Object] as PropType,\n placementSrc: [String, Object] as PropType,\n isSvg: Boolean,\n imageReferrerpolicy: String as PropType,\n },\n\n setup(props) {\n const { src, placementSrc, isSvg } = toRefs(props);\n const classPrefix = usePrefixClass();\n const error = ref(false);\n const loaded = ref(false);\n const { transform, mouseDownHandler } = useDrag({ translateX: 0, translateY: 0 });\n const { globalConfig } = useConfig('imageViewer');\n const errorText = globalConfig.value.errorText;\n const svgElRef = ref();\n\n const imgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !props.placementSrc || loaded.value ? 'block' : 'none',\n }));\n const placementImgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !loaded.value ? 'block' : 'none',\n }));\n const boxStyle = computed(() => {\n const { translateX, translateY } = transform.value;\n return {\n transform: `translate(${translateX}px, ${translateY}px) scale(${props.mirror}, 1)`,\n };\n });\n\n const resetStatus = () => {\n error.value = false;\n loaded.value = false;\n if (isSvg.value) {\n createSvgShadow(mainImagePreviewUrl.value);\n }\n };\n\n const createSvgShadow = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n error.value = true;\n throw new Error(`Failed to fetch SVG: ${response.statusText}`);\n }\n const svgText = await response.text();\n\n const element = svgElRef.value;\n element.innerHTML = '';\n element.classList?.add(`${classPrefix.value}-image-viewer__modal-image-svg`);\n const shadowRoot = element.attachShadow({ mode: 'closed' });\n\n const container = document.createElement('div');\n\n container.style.background = 'var(--td-bg-color-container)';\n container.style.padding = '4px';\n container.style.borderRadius = '4px';\n container.style.maxHeight = '100%';\n container.style.maxWidth = '100%';\n container.style.boxSizing = 'border-box';\n container.style.height = 'auto';\n container.innerHTML = svgText;\n shadowRoot.appendChild(container);\n\n const svgElement = container.querySelector('svg');\n if (svgElement) {\n const svgViewBox = svgElement.getAttribute('viewBox');\n if (svgViewBox) {\n const viewBoxValues = svgViewBox\n .split(/[\\s\\,]/)\n .filter(function (v) {\n return v;\n })\n .map(parseFloat);\n\n // svg viewbox x(0) and y(1) offset, width(2) and height(3),eg\n const svgViewBoxWidth = viewBoxValues[2];\n // const svgViewBoxHeight = viewBoxValues[3];\n container.style.width = `${svgViewBoxWidth}px`;\n } else {\n const bbox = svgElement.getBBox();\n const calculatedViewBox = `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}`;\n svgElement.setAttribute('viewBox', calculatedViewBox);\n\n container.style.width = `${bbox.width}px`;\n }\n svgElement.style.maxHeight = '100%';\n svgElement.style.maxWidth = '100%';\n svgElement.style.height = 'auto';\n svgElement.style.display = 'block';\n svgElement.style.lineHeight = 'normal';\n }\n loaded.value = true;\n };\n\n const { previewUrl: mainImagePreviewUrl } = useImagePreviewUrl(src);\n const { previewUrl: placementImagePreviewUrl } = useImagePreviewUrl(placementSrc);\n\n watch([mainImagePreviewUrl, placementImagePreviewUrl], () => {\n resetStatus();\n });\n\n onMounted(async () => {\n if (isSvg.value) {\n await createSvgShadow(mainImagePreviewUrl.value);\n }\n });\n\n return () => (\n
    \n
    \n {error.value && (\n
    \n {/* 脱离文档流 */}\n
    \n \n
    {errorText}
    \n
    \n
    \n )}\n\n {!error.value && !!props.placementSrc && placementImagePreviewUrl.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={placementImagePreviewUrl.value}\n style={placementImgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && !isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={mainImagePreviewUrl.value}\n onLoad={() => (loaded.value = true)}\n onError={() => (error.value = true)}\n style={imgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n data-alt=\"svg\"\n style={imgStyle.value}\n draggable=\"false\"\n >
    \n )}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { TNode } from '../../common';\nimport { useTNodeJSX } from '../../hooks/tnode';\n\nexport default defineComponent({\n name: 'TImageModalIcon',\n props: {\n disabled: Boolean,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n label: String,\n icon: Function as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const wrapClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-icon`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n },\n ]);\n\n return () => (\n
    \n {renderTNodeJSX('icon')}\n {props.label && {props.label}}\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDialogProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 对话框挂载的节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发对话框关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: undefined,\n },\n /** 点击蒙层时是否触发关闭事件 */\n closeOnOverlayClick: {\n type: Boolean,\n default: undefined,\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 是否在按下回车键时,触发确认事件 */\n confirmOnEnter: Boolean,\n /** 对话框内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否在关闭弹框的时候销毁子元素 */\n destroyOnClose: Boolean,\n /** 弹框元素类名,示例:'t-class-dialog-first t-class-dialog-second' */\n dialogClassName: {\n type: String,\n default: '',\n },\n /** 作用于对话框本身的样式 */\n dialogStyle: {\n type: Object as PropType,\n },\n /** 对话框是否可以拖拽(仅在非模态对话框时有效) */\n draggable: Boolean,\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDialogProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['header'],\n },\n /** 对话框类型,有 4 种:模态对话框、非模态对话框、普通对话框、全屏对话框。弹出「模态对话框」时,只能操作对话框里面的内容,不能操作其他内容。弹出「非模态对话框」时,则可以操作页面内所有内容。「普通对话框」是指没有脱离文档流的对话框,可以在这个基础上开发更多的插件 */\n mode: {\n type: String as PropType,\n default: 'modal' as TdDialogProps['mode'],\n validator(val: TdDialogProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless', 'normal', 'full-screen'].includes(val);\n },\n },\n /** 对话框位置,内置两种:垂直水平居中显示 和 靠近顶部(top:20%)显示。默认情况,为避免贴顶或贴底,顶部和底部距离最小为 `48px`,可通过调整 `top` 覆盖默认大小 */\n placement: {\n type: String as PropType,\n default: 'top' as TdDialogProps['placement'],\n validator(val: TdDialogProps['placement']): boolean {\n if (!val) return true;\n return ['top', 'center'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogProps['theme'],\n validator(val: TdDialogProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 用于弹框具体窗口顶部的距离,优先级大于 placement */\n top: {\n type: [String, Number] as PropType,\n },\n /** 控制对话框是否显示 */\n visible: Boolean,\n /** 对话框宽度,示例:320, '500px', '80%' */\n width: {\n type: [String, Number] as PropType,\n },\n /** 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 对话框执行消失动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 对话框执行弹出动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,点击取消按钮、点击关闭按钮、点击蒙层、按下 ESC 等场景下触发 */\n onClose: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 对话框消失动画效果结束后触发 */\n onClosed: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 时触发事件 */\n onEscKeydown: Function as PropType,\n /** 对话框弹出动画效果结束后触发 */\n onOpened: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n};\n","import { getCurrentInstance } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { omit } from 'lodash-es';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport TButton, { ButtonProps } from '../../button';\nimport { PopconfirmConfig, DialogConfig, DrawerConfig } from '../../config-provider';\nimport type { ClassName } from '../../common';\nimport type { TdDialogProps } from '../type';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\n\nexport interface MixinsConfirmBtn {\n theme?: MixinsThemeType;\n className?: ClassName;\n confirmBtn: TdDialogProps['confirmBtn'];\n globalConfirm: PopconfirmConfig['confirm'] | DrawerConfig['confirm'] | DialogConfig['confirm'];\n globalConfirmBtnTheme?: PopconfirmConfig['confirmBtnTheme'] | DialogConfig['confirmBtnTheme'];\n size?: ButtonProps['size'];\n confirmLoading?: boolean;\n}\n\nexport interface MixinsCancelBtn {\n className?: ClassName;\n cancelBtn: TdDialogProps['cancelBtn'];\n globalCancel: PopconfirmConfig['cancel'] | DrawerConfig['cancel'] | DialogConfig['cancel'];\n size?: ButtonProps['size'];\n}\n\nexport type MixinsThemeType = keyof (PopconfirmConfig['confirmBtnTheme'] & DialogConfig['confirmBtnTheme']);\n\nexport interface BtnAction {\n confirmBtnAction: (e: MouseEvent) => void;\n cancelBtnAction: (e: MouseEvent) => void;\n}\n\nexport function useAction(action: BtnAction) {\n const instance = getCurrentInstance();\n const renderTNodeJSX = useTNodeJSX();\n // 全局配置属性综合\n const getDefaultConfirmBtnProps = (options: MixinsConfirmBtn): ButtonProps => {\n const { globalConfirm, theme, globalConfirmBtnTheme } = options;\n const defaultTheme = getPropertyValFromObj(omit(globalConfirmBtnTheme, ['info']), theme) || 'primary';\n let props: ButtonProps = {\n // @ts-ignore\n // TODO: fix type of globalConfirmBtnTheme\n theme: defaultTheme,\n size: options.size,\n onClick: (e) => {\n action.confirmBtnAction(e);\n },\n };\n if (isString(globalConfirm)) {\n props.content = globalConfirm;\n } else if (isObject(globalConfirm)) {\n props = { ...props, ...globalConfirm };\n }\n return props;\n };\n // 全局配置属性综合\n const getDefaultCancelBtnProps = (options: MixinsCancelBtn): ButtonProps => {\n const { globalCancel } = options;\n let props: ButtonProps = {\n theme: 'default',\n size: options.size,\n onClick: (e) => {\n action.cancelBtnAction(e);\n },\n };\n if (isString(globalCancel)) {\n props.content = globalCancel;\n } else if (isObject(globalCancel)) {\n props = { ...props, ...globalCancel };\n }\n return props;\n };\n const getButtonByProps = (\n button: string | ButtonProps,\n params: {\n defaultButtonProps: ButtonProps;\n className?: ClassName;\n confirmLoading?: boolean;\n },\n ) => {\n const { defaultButtonProps, className, confirmLoading } = params;\n let newOptions = defaultButtonProps;\n if (isString(button)) {\n newOptions.content = button;\n } else if (isObject(button)) {\n newOptions = { ...newOptions, ...button };\n }\n if (confirmLoading !== undefined) {\n newOptions.loading = confirmLoading;\n }\n return ;\n };\n const getConfirmBtn = (options: MixinsConfirmBtn) => {\n const { confirmBtn, className, confirmLoading } = options;\n if (confirmBtn === null) return null;\n if (confirmBtn && instance.slots.confirmBtn) {\n console.warn('Both $props.confirmBtn and $scopedSlots.confirmBtn exist, $props.confirmBtn is preferred.');\n }\n const defaultButtonProps = getDefaultConfirmBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!confirmBtn && !instance.slots.confirmBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (confirmBtn && ['string', 'object'].includes(typeof confirmBtn)) {\n return getButtonByProps(confirmBtn as string | ButtonProps, {\n defaultButtonProps,\n className,\n confirmLoading,\n });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('confirmBtn');\n };\n const getCancelBtn = (options: MixinsCancelBtn) => {\n const { cancelBtn, className } = options;\n if (cancelBtn === null) return null;\n if (cancelBtn && instance.slots.cancelBtn) {\n console.warn('Both $props.cancelBtn and $scopedSlots.cancelBtn exist, $props.cancelBtn is preferred.');\n }\n const defaultButtonProps: ButtonProps = getDefaultCancelBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!cancelBtn && !instance.slots.cancelBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (cancelBtn && ['string', 'object'].includes(typeof cancelBtn)) {\n return getButtonByProps(cancelBtn as string | ButtonProps, { defaultButtonProps, className });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('cancelBtn');\n };\n return { getConfirmBtn, getCancelBtn };\n}\n","/**\n * 计算滚动条宽度的方法\n * 新建一个带有滚动条的 div 元素,通过该元素的 offsetWidth 和 clientWidth 的差值即可获得\n * CSS 中设置了 -webkit-scrollbar { width: 6px; height: 6px },固定浏览器滚动条宽度,仅限 Chrome/Safari\n * Safari UA\n * \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15\"\n * Chrome UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36\n * FireFox UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0\n * IE UA\n * \"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2;\n * .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\"\n */\nimport { getIEVersion } from './helper';\n\nexport function getScrollbarWidthWithCSS() {\n const defaultScrollbarWidth = 6;\n if (typeof navigator === 'undefined' || !navigator) return defaultScrollbarWidth;\n if (/(Chrome|Safari)/i.test(navigator.userAgent)) return defaultScrollbarWidth;\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n // 火狐浏览器需要再减去 4\n if (/Firefox/.test(navigator.userAgent)) {\n scrollbarWidth -= 4;\n }\n if (getIEVersion() <= 11) {\n scrollbarWidth = 12;\n }\n return scrollbarWidth;\n}\n\n/**\n * @description: Calculate scroll bar width\n * @param container Container used to calculate scrollbar width\n * @default container: document.body\n */\nexport function getScrollbarWidth(container: HTMLElement = document.body) {\n if (container === document.body) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n return container.offsetWidth - container.clientWidth;\n}\n","export function getCSSValue(v: string | number) {\n return Number.isNaN(Number(v)) ? v : `${Number(v)}px`;\n}\n\nexport function initDragEvent(dragBox: HTMLElement) {\n const target = dragBox;\n const windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n const windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n target.addEventListener('mousedown', (targetEvent: MouseEvent) => {\n // 算出鼠标相对元素的位置\n const disX = targetEvent.clientX - target.offsetLeft;\n const disY = targetEvent.clientY - target.offsetTop;\n const dialogW = target.offsetWidth;\n const dialogH = target.offsetHeight;\n // 如果弹出框超出屏幕范围 不能进行拖拽\n if (dialogW > windowInnerWidth || dialogH > windowInnerHeight) return;\n function mouseMoverHandler(documentEvent: MouseEvent) {\n // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置\n let left = documentEvent.clientX - disX;\n let top = documentEvent.clientY - disY;\n // 临界判断\n // 拖拽上左边界限制\n if (left < 0) left = 0;\n if (top < 0) top = 0;\n if (windowInnerWidth - target.offsetWidth - left < 0) left = windowInnerWidth - target.offsetWidth;\n if (windowInnerHeight - target.offsetHeight - top < 0) top = windowInnerHeight - target.offsetHeight;\n target.style.position = 'absolute';\n target.style.left = `${left}px`;\n target.style.top = `${top}px`;\n }\n function mouseUpHandler() {\n // 鼠标弹起来的时候不再移动\n document.removeEventListener('mousemove', mouseMoverHandler);\n // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)\n document.removeEventListener('mouseup', mouseUpHandler);\n }\n // 元素按下时注册document鼠标监听事件\n document.addEventListener('mousemove', mouseMoverHandler);\n // 鼠标弹起来移除document鼠标监听事件\n document.addEventListener('mouseup', mouseUpHandler);\n // 拖拽结束移除鼠标监听事件,解决文字拖拽结束事件未解绑问题\n document.addEventListener('dragend', mouseUpHandler);\n });\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDialogCardProps } from '../dialog/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['closeBtn'],\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['header'],\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogCardProps['theme'],\n validator(val: TdDialogCardProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n};\n","import { computed, defineComponent, ref, toRefs } from 'vue';\nimport {\n CloseIcon as TdCloseIcon,\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport dialogCardProps from './dialog-card-props';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useAction } from './hooks';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport type { TdDialogProps } from './type';\nimport dialogProps from './props';\nimport { getCSSValue, initDragEvent } from './utils';\n\nexport default defineComponent({\n name: 'TDialogCard',\n // 注册v-draggable指令,传入true时候初始化拖拽事件\n directives: {\n draggable(el, binding) {\n // el 指令绑定的元素\n if (el && binding && binding.value) {\n initDragEvent(el);\n }\n },\n },\n props: {\n ...dialogProps,\n ...dialogCardProps,\n },\n setup(props, { expose }) {\n const rootRef = ref(null);\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { globalConfig } = useConfig('dialog');\n const { CloseIcon, InfoCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CloseIcon: TdCloseIcon,\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const { cancelBtn, confirmBtn, confirmLoading } = toRefs(props);\n const confirmBtnAction = (e: MouseEvent) => props.onConfirm?.({ e });\n const cancelBtnAction = (e: MouseEvent) => props.onCancel?.({ e });\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const closeBtnAction = (e: MouseEvent) => props?.onCloseBtnClick?.({ e });\n const onStopDown = (e: MouseEvent) => {\n if (isModeLess.value && props?.draggable) e.stopPropagation();\n };\n\n const resetPosition = () => {\n if (!rootRef.value && isModeLess.value && props.draggable) return;\n rootRef.value.style.position = 'relative';\n rootRef.value.style.left = 'unset';\n rootRef.value.style.top = 'unset';\n };\n\n // 暴露给父组件的接口\n expose({\n $el: rootRef,\n resetPosition,\n });\n\n const dialogClass = computed(() => {\n const dialogClass = [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}__modal-${props.theme}`,\n isModeLess.value && props.draggable && `${COMPONENT_NAME.value}--draggable`,\n props.dialogClassName,\n ];\n\n if (isFullScreen.value) {\n dialogClass.push(`${COMPONENT_NAME.value}__fullscreen`);\n } else {\n dialogClass.push(...[`${COMPONENT_NAME.value}--default`, `${COMPONENT_NAME.value}--${props.placement}`]);\n }\n return dialogClass;\n });\n const dialogStyle = computed(() => {\n return !isFullScreen.value ? { width: getCSSValue(props.width), ...props.dialogStyle } : { ...props.dialogStyle }; // width全屏模式不生效\n });\n\n const renderCard = () => {\n const confirmBtnLoading = computed(() => {\n // @ts-ignore\n return confirmBtn.value?.loading || confirmLoading.value;\n });\n const defaultFooter = (\n
    \n {getCancelBtn({\n cancelBtn: cancelBtn.value as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n })}\n {getConfirmBtn({\n theme: props?.theme,\n confirmBtn: confirmBtn.value as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n confirmLoading: confirmBtnLoading.value,\n })}\n
    \n );\n\n const footerContent = renderTNodeJSX('footer', defaultFooter);\n\n const renderHeader = () => {\n // header 值为 true 显示空白头部\n const header = renderTNodeJSX('header',
    ) ?? false;\n const headerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__header`, `${COMPONENT_NAME.value}__header--fullscreen`]\n : `${COMPONENT_NAME.value}__header`;\n\n const closeClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__close`, `${COMPONENT_NAME.value}__close--fullscreen`]\n : `${COMPONENT_NAME.value}__close`;\n const getIcon = () => {\n const icon = {\n info: ,\n warning: ,\n danger: ,\n success: ,\n };\n return icon[props?.theme as keyof typeof icon];\n };\n return (\n (header || props?.closeBtn) && (\n
    \n
    \n {getIcon()}\n {header}\n
    \n\n {props?.closeBtn ? (\n \n {renderTNodeJSX('closeBtn', )}\n \n ) : null}\n
    \n )\n );\n };\n\n const renderBody = () => {\n const body = renderContent('default', 'body');\n const bodyClassName =\n props?.theme === 'default' ? [`${COMPONENT_NAME.value}__body`] : [`${COMPONENT_NAME.value}__body__icon`];\n if (isFullScreen.value && footerContent) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen`);\n } else if (isFullScreen.value) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen--without-footer`);\n }\n return (\n
    \n {body}\n
    \n );\n };\n\n const renderFooter = () => {\n const footerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--fullscreen`]\n : `${COMPONENT_NAME.value}__footer`;\n\n return (\n footerContent && (\n
    \n {footerContent}\n
    \n )\n );\n };\n\n return (\n <>\n {renderHeader()}\n {renderBody()}\n {!!props.footer && renderFooter()}\n \n );\n };\n\n return () => (\n \n {renderCard()}\n \n );\n },\n});\n","import {\n computed,\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n Transition,\n watch,\n Teleport,\n ComponentPublicInstance,\n} from 'vue';\nimport { DialogCloseContext } from './type';\nimport props from './props';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useSameTarget } from './hooks';\nimport useDestroyOnClose from '../hooks/useDestroyOnClose';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport useTeleport from '../hooks/useTeleport';\nimport usePopupManager from '../hooks/usePopupManager';\nimport { getCSSValue } from './utils';\nimport TDialogCard from './dialog-card';\n\nlet mousePosition: { x: number; y: number } | null;\nconst getClickPosition = (e: MouseEvent) => {\n mousePosition = {\n x: e.clientX,\n y: e.clientY,\n };\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDialog',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const dialogCardRef = ref void }>>(null);\n const { globalConfig } = useConfig('dialog');\n const confirmBtnAction = (context: { e: MouseEvent }) => {\n props.onConfirm?.(context);\n };\n const cancelBtnAction = (context: { e: MouseEvent }) => {\n props.onCancel?.(context);\n emitCloseEvent({ e: context.e, trigger: 'cancel' });\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n useDestroyOnClose();\n const timer = ref();\n const styleEl = ref();\n // 是否模态形式的对话框\n const isModal = computed(() => props.mode === 'modal');\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const computedVisible = computed(() => props.visible);\n const maskClass = computed(() => [\n `${COMPONENT_NAME.value}__mask`,\n !props.showOverlay && `${classPrefix.value}-is-hidden`,\n ]);\n const positionClass = computed(() => {\n if (isFullScreen.value) return [`${COMPONENT_NAME.value}__position_fullscreen`];\n if (isModal.value || isModeLess.value) {\n return [\n `${COMPONENT_NAME.value}__position`,\n !!props.top && `${COMPONENT_NAME.value}--top`,\n `${props.placement && !props.top ? `${COMPONENT_NAME.value}--${props.placement}` : ''}`,\n ];\n }\n return [];\n });\n const wrapClass = computed(() =>\n isFullScreen.value || isModal.value || isModeLess.value ? [`${COMPONENT_NAME.value}__wrap`] : null,\n );\n const positionStyle = computed(() => {\n if (isFullScreen.value) return {}; // 全屏模式,top属性不生效\n\n // 此处获取定位方式 top 优先级较高 存在时 默认使用top定位\n const { top } = props;\n let topStyle = {};\n if (top !== undefined) {\n const topValue = getCSSValue(top);\n topStyle = { paddingTop: topValue };\n }\n return topStyle;\n });\n\n const { isLastDialog } = usePopupManager('dialog', {\n visible: computedVisible,\n });\n\n watch(\n () => props.visible,\n (value) => {\n if (value) {\n if ((isModal.value && !props.showInAttachedElement) || isFullScreen.value) {\n if (props.preventScrollThrough) {\n document.body.appendChild(styleEl.value);\n }\n\n nextTick(() => {\n if (mousePosition && dialogCardRef.value?.$el) {\n const el = dialogCardRef.value.$el as HTMLElement;\n el.style.transformOrigin = `${mousePosition.x - el.offsetLeft}px ${mousePosition.y - el.offsetTop}px`;\n }\n });\n }\n // 清除鼠标焦点 避免entry事件多次触发(按钮弹出弹窗 不移除焦点 立即按Entry按键 会造成弹窗关闭再弹出)\n (document.activeElement as HTMLElement)?.blur();\n } else {\n clearStyleFunc();\n }\n addKeyboardEvent(value);\n },\n );\n\n function destroySelf() {\n styleEl.value.parentNode?.removeChild?.(styleEl.value);\n }\n\n function clearStyleFunc() {\n clearTimeout(timer.value);\n timer.value = setTimeout(() => {\n destroySelf();\n }, 150);\n }\n\n const addKeyboardEvent = (status: boolean) => {\n if (status) {\n document.addEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.addEventListener('keydown', keyboardEnterEvent);\n } else {\n document.removeEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.removeEventListener('keydown', keyboardEnterEvent);\n }\n };\n // 回车触发确认事件\n const keyboardEnterEvent = (e: KeyboardEvent) => {\n const eventSrc = e.target as HTMLElement;\n if (eventSrc.tagName.toLowerCase() === 'input') return; // 若是input触发 则不执行\n const { code } = e;\n if ((code === 'Enter' || code === 'NumpadEnter') && isLastDialog()) {\n props.onConfirm?.({ e });\n }\n };\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.code === 'Escape' && isLastDialog()) {\n props.onEscKeydown?.({ e });\n // 根据closeOnEscKeydown判断按下ESC时是否触发close事件\n if (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) {\n emitCloseEvent({ e, trigger: 'esc' });\n }\n }\n };\n const overlayAction = (e: MouseEvent) => {\n if (props.showOverlay && (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick)) {\n props.onOverlayClick?.({ e });\n emitCloseEvent({ e, trigger: 'overlay' });\n }\n };\n const { onClick, onMousedown, onMouseup } = useSameTarget(overlayAction);\n const closeBtnAction = (context: { e: MouseEvent }) => {\n props.onCloseBtnClick?.(context);\n emitCloseEvent({\n trigger: 'close-btn',\n e: context.e,\n });\n };\n\n // 打开弹窗动画开始时事件\n const beforeEnter = () => {\n props.onBeforeOpen?.();\n };\n\n // 打开弹窗动画结束时事件\n const afterEnter = () => {\n props.onOpened?.();\n };\n\n // 关闭弹窗动画开始时事件\n const beforeLeave = () => {\n props.onBeforeClose?.();\n };\n\n // 关闭弹窗动画结束时事件\n const afterLeave = () => {\n dialogCardRef.value?.resetPosition?.();\n props.onClosed?.();\n };\n\n const emitCloseEvent = (ctx: DialogCloseContext) => {\n props.onClose?.(ctx);\n // 默认关闭弹窗\n context.emit('update:visible', false);\n };\n\n // Vue在引入阶段对事件的处理还做了哪些初始化操作。Vue在实例上用一个_events属性存贮管理事件的派发和更新,\n // 暴露出$on, $once, $off, $emit方法给外部管理事件和派发执行事件\n // 所以通过判断_events某个事件下监听函数数组是否超过一个,可以判断出组件是否监听了当前事件\n // const hasEventOn = (name: string) => {\n // // _events 因没有被暴露在vue实例接口中,只能把这个规则注释掉\n // // eslint-disable-next-line dot-notation\n // // @ts-ignore\n // const eventFuncs = this['_events']?.[name];\n // return !!eventFuncs?.length;\n // };\n\n const renderDialog = () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { theme, onConfirm, onCancel, onCloseBtnClick, ...otherProps } = props;\n return (\n /** 非模态形态下draggable为true才允许拖拽 */\n
    \n \n \n
    \n \n );\n };\n\n onMounted(() => {\n const hasScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_dialog_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n width: calc(100% - ${scrollWidth}px);\n }\n `;\n });\n\n onBeforeUnmount(() => {\n addKeyboardEvent(false);\n destroySelf();\n });\n\n return () => {\n const maskView = (isModal.value || isFullScreen.value) &&
    ;\n const dialogView = renderDialog();\n const view = [maskView, dialogView];\n const ctxStyle = { zIndex: props.zIndex };\n // dialog__ctx--fixed 绝对定位\n // dialog__ctx--absolute 挂载在attach元素上 相对定位\n // __ctx--modeless modeless 点击穿透\n const ctxClass = [\n `${COMPONENT_NAME.value}__ctx`,\n {\n [`${COMPONENT_NAME.value}__ctx--fixed`]: isModal.value || isFullScreen.value,\n [`${COMPONENT_NAME.value}__ctx--absolute`]: isModal.value && props.showInAttachedElement,\n [`${COMPONENT_NAME.value}__ctx--modeless`]: isModeLess.value,\n },\n ];\n return (\n \n \n {(!props.destroyOnClose || props.visible) && (\n
    \n {view}\n
    \n )}\n \n
    \n );\n };\n },\n});\n","export function useSameTarget(handleClick?: (e: MouseEvent) => void) {\n // 判断 click 事件的起点和落点所在元素是否一致\n let MOUSEDOWN_TARGET = false;\n let MOUSEUP_TARGET = false;\n\n const onClick = (e: MouseEvent) => {\n if (MOUSEDOWN_TARGET && MOUSEUP_TARGET) {\n handleClick(e);\n }\n MOUSEDOWN_TARGET = false;\n MOUSEUP_TARGET = false;\n };\n\n const onMousedown = (e: MouseEvent) => {\n MOUSEDOWN_TARGET = e.target === e.currentTarget;\n };\n const onMouseup = (e: MouseEvent) => {\n MOUSEUP_TARGET = e.target === e.currentTarget;\n };\n\n return { onClick, onMousedown, onMouseup };\n}\n","import { App, createApp, ref, Plugin, defineComponent, h, onMounted, nextTick } from 'vue';\nimport DialogComponent from './dialog';\nimport { getAttach } from '../utils/dom';\nimport { DialogOptions, DialogMethod, DialogConfirmMethod, DialogAlertMethod, DialogInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDialog: DialogMethod = (props: DialogOptions) => {\n const options = { ...props };\n const wrapper = document.createElement('div');\n const visible = ref(false);\n const { className, style } = options;\n\n let preClassName = className;\n\n const updateClassNameStyle = (className: string, style: DialogOptions['style']) => {\n if (className) {\n if (preClassName && preClassName !== className) {\n wrapper.firstElementChild.classList.remove(...preClassName.split(' ').map((name) => name.trim()));\n }\n className.split(' ').forEach((name) => {\n wrapper.firstElementChild.classList.add(name.trim());\n });\n }\n\n if (style) {\n (wrapper.firstElementChild as HTMLElement).style.cssText += style;\n }\n\n preClassName = className;\n };\n\n const component = defineComponent({\n setup(props, { expose }) {\n const dialogOptions = ref>(options);\n onMounted(() => {\n visible.value = true;\n // 处理 https://github.com/Tencent/tdesign-vue-next/issues/394\n (document.activeElement as HTMLElement).blur();\n // 避免元素未挂载就触发样式获取,子元素为空的问题\n nextTick(() => {\n updateClassNameStyle(className, style);\n });\n });\n const update = (newOptions: DialogOptions) => {\n dialogOptions.value = {\n ...options,\n ...newOptions,\n };\n };\n\n expose({\n update,\n });\n\n return () => {\n const onClose =\n options.onClose ||\n function () {\n visible.value = false;\n };\n delete options.className;\n delete options.style;\n return h(DialogComponent, {\n onClose,\n visible: visible.value,\n ...dialogOptions.value,\n });\n };\n },\n });\n const dialogComponent = createApp(component);\n const dialog = dialogComponent.mount(wrapper);\n\n const container = getAttach(options.attach);\n if (container) {\n container.appendChild(wrapper);\n } else {\n console.error('attach is not exist');\n }\n\n const dialogNode: DialogInstance = {\n show: () => {\n visible.value = true;\n },\n hide: () => {\n visible.value = false;\n },\n update: (newOptions: DialogOptions) => {\n // className & style由updateClassNameStyle来处理\n dialog.update(omit(newOptions, ['className', 'style']));\n updateClassNameStyle(newOptions.className, newOptions.style);\n },\n destroy: () => {\n visible.value = false;\n setTimeout(() => {\n dialogComponent.unmount();\n wrapper.remove();\n }, 300);\n },\n setConfirmLoading: (val: boolean) => {\n dialog.update({ confirmLoading: val });\n },\n };\n return dialogNode;\n};\ninterface ExtraApi {\n confirm: DialogConfirmMethod;\n alert: DialogAlertMethod;\n}\n\ntype ExtraApiType = keyof ExtraApi;\n\nconst confirm: DialogConfirmMethod = (props: DialogOptions) => createDialog(props);\n\nconst alert: DialogAlertMethod = (props: Omit) => {\n const options = { ...props };\n options.cancelBtn = null;\n return createDialog(options);\n};\n\nconst extraApi: ExtraApi = {\n confirm,\n alert,\n};\n\nexport type DialogPluginType = Plugin & ExtraApi & DialogMethod;\n\nexport const DialogPlugin = createDialog as DialogPluginType;\n\nDialogPlugin.install = (app: App): void => {\n app.config.globalProperties.$dialog = createDialog;\n Object.keys(extraApi).forEach((funcName: ExtraApiType) => {\n app.config.globalProperties.$dialog[funcName] = extraApi[funcName];\n });\n};\n\nObject.keys(extraApi).forEach((funcName: ExtraApiType) => {\n DialogPlugin[funcName] = extraApi[funcName];\n});\n\nexport default DialogPlugin;\n","import _Dialog from './dialog';\nimport _DialogCard from './dialog-card';\nimport withInstall from '../utils/withInstall';\nimport { TdDialogProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DialogProps = TdDialogProps;\n\nexport const Dialog = withInstall(_Dialog);\nexport const DialogCard = withInstall(_DialogCard);\n\nexport { default as DialogPlugin } from './plugin';\nexport default Dialog;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { PropType } from 'vue';\nimport { TdImageViewerProps } from './type';\n\nexport default {\n /** 指定挂载节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: 'body' as TdImageViewerProps['attach'],\n },\n /** 是否展示关闭按钮,值为 `true` 显示默认关闭按钮;值为 `false` 则不显示关闭按钮;也可以完全自定义关闭按钮 */\n closeBtn: {\n type: [Boolean, Function] as PropType,\n default: true as TdImageViewerProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发图片预览器关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: true,\n },\n /** 是否在点击遮罩层时,触发预览关闭 */\n closeOnOverlay: Boolean,\n /** 是否允许拖拽调整位置。`mode=modal` 时,默认不允许拖拽;`mode=modeless` 时,默认允许拖拽 */\n draggable: {\n type: Boolean,\n default: undefined,\n },\n /** 图片预览中的 `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n imageReferrerpolicy: {\n type: String as PropType,\n validator(val: TdImageViewerProps['imageReferrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片缩放相关配置。`imageScale.max` 缩放的最大比例;`imageScale.min` 缩放的最小比例;`imageScale.step` 缩放的步长速度; `imageScale.defaultScale` 默认的缩放比例 */\n imageScale: {\n type: Object as PropType,\n },\n /** 图片数组。`mainImage` 表示主图,必传;`thumbnail` 表示缩略图,如果不存在,则使用主图显示;`download` 是否允许下载图片,默认允许下载。示例: `['img_url_1', 'img_url_2']`,`[{ thumbnail: 'small_image_url', mainImage: 'big_image_url', download: false }]` */\n images: {\n type: Array as PropType,\n default: (): TdImageViewerProps['images'] => [],\n },\n /** 当前预览图片所在的下标 */\n index: {\n type: Number,\n default: undefined,\n },\n /** 当前预览图片所在的下标,非受控属性 */\n defaultIndex: {\n type: Number,\n default: 0,\n },\n /** 模态预览(modal)和非模态预览(modeless) */\n mode: {\n type: String as PropType,\n default: 'modal' as TdImageViewerProps['mode'],\n validator(val: TdImageViewerProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless'].includes(val);\n },\n },\n /** 切换预览图片的左图标,可自定义 */\n navigationArrow: {\n type: [Boolean, Function] as PropType,\n default: true as TdImageViewerProps['navigationArrow'],\n },\n /** 是否显示遮罩层。`mode=modal` 时,默认显示;`mode=modeless` 时,默认不显示 */\n showOverlay: {\n type: Boolean,\n default: undefined,\n },\n /** 预览标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 触发图片预览的元素,可能是一个预览按钮,可能是一张缩略图,完全自定义 */\n trigger: {\n type: [String, Function] as PropType,\n },\n /** 限制预览器缩放的最小宽度和最小高度,仅 `mode=modeless` 时有效 */\n viewerScale: {\n type: Object as PropType,\n },\n /** 隐藏/显示预览 */\n visible: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 隐藏/显示预览,非受控属性 */\n defaultVisible: Boolean,\n /** 层级,默认为 2000 */\n zIndex: {\n type: Number,\n },\n /** 关闭时触发,事件参数包含触发关闭的来源:关闭按钮、遮罩层、ESC 键 */\n onClose: Function as PropType,\n /** 自定义预览图片下载操作,url为图片链接 */\n onDownload: Function as PropType,\n /** 预览图片切换时触发,`context.prev` 切换到上一张图片,`context.next` 切换到下一张图片 */\n onIndexChange: Function as PropType,\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport { ImageIcon, ZoomInIcon, ZoomOutIcon, DownloadIcon, MirrorIcon, RotationIcon } from 'tdesign-icons-vue-next';\nimport TImageViewerIcon from './ImageModalIcon';\nimport TToolTip from '../../tooltip';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useImagePreviewUrl } from '../../hooks';\nimport { ImageInfo } from '../type';\nimport { largeNumberToFixed } from '@tdesign/common-js/input-number/large-number';\n\nexport default defineComponent({\n name: 'TImageViewerUtils',\n props: {\n scale: Number,\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onDownload: Function as PropType<(url: string) => void>,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const imageUrl = computed(() => props.currentImage.mainImage);\n\n const { previewUrl } = useImagePreviewUrl(imageUrl);\n const { globalConfig } = useConfig('imageViewer');\n\n return () => (\n
    \n
    \n \n } />\n \n \n } />\n \n } onClick={props.onZoomOut} />\n \n\n } onClick={props.onZoomIn} />\n \n
    \n } onClick={props.onReset} />\n
    \n \n {props.currentImage.download && (\n }\n onClick={() => {\n props.onDownload(previewUrl.value);\n }}\n />\n )}\n
    \n
    \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport TDialog from '../../dialog';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport props from '../props';\nimport { ImageInfo, TdImageViewerProps } from '../type';\nimport TImageItem from './ImageItem';\nimport TImageViewerUtils from './ImageViewerUtils';\n\nexport default defineComponent({\n name: 'TImageViewerModal',\n props: {\n zIndex: Number,\n visible: Boolean,\n index: Number,\n images: props.images,\n scale: Number,\n rotate: Number,\n mirror: Number,\n title: props.title,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onClose: props.onClose,\n onDownload: props.onDownload,\n draggable: {\n type: Boolean,\n default: true,\n },\n viewerScale: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n showOverlay: Boolean,\n closeBtn: props.closeBtn,\n imageReferrerpolicy: props.imageReferrerpolicy,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderJSX = useTNodeJSX();\n const style = computed(() => ({\n minWidth: props.viewerScale.minWidth,\n minHeight: props.viewerScale.minHeight,\n }));\n\n return () => (\n (\n
    \n \n
    \n )}\n >\n
    \n \n
    \n \n );\n },\n});\n","export const enum EVENT_CODE {\n left = 'ArrowLeft', // 37\n up = 'ArrowUp', // 38\n right = 'ArrowRight', // 39\n down = 'ArrowDown', // 40\n esc = 'Escape',\n}\n","import { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { TdImageViewerProps, ImageInfo } from '../type';\n\nexport const downloadFile = function (imgSrc: string) {\n const image = new Image();\n // fix #2935\n // 当链接携带了参数时,需处理掉参数再取图片名称,否则扩展名会与参数链接导致原扩展名失效\n // 例如:img.png?sign=xxx 不处理参数会被转成 img.png_sign=xxx\n const name = imgSrc?.split?.('?')?.[0]?.split?.('#')?.[0]?.split?.('/').pop() || Math.random().toString(32).slice(2);\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n canvas.toBlob((blob) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.download = name;\n a.href = url;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n });\n };\n image.src = imgSrc;\n};\n\nconst isImageInfo = (image: string | File | ImageInfo): image is ImageInfo => {\n return !!image && !isString(image) && !(image instanceof File);\n};\n\nexport const formatImages = (images: TdImageViewerProps['images']): ImageInfo[] => {\n if (!isArray(images)) return [];\n return images.map((item) => {\n if (isImageInfo(item)) {\n return {\n download: true,\n thumbnail: item.mainImage,\n ...item,\n };\n }\n return {\n mainImage: item,\n thumbnail: item,\n download: true,\n };\n });\n};\n\nexport const getOverlay = (props: TdImageViewerProps) => {\n if (props.showOverlay !== undefined) {\n return props.showOverlay;\n }\n return props.mode === 'modal';\n};\n","import { ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next';\nimport { Teleport, Transition, computed, defineComponent, nextTick, ref, toRefs, watch } from 'vue';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport usePopupManager from '../hooks/usePopupManager';\nimport useTeleport from '../hooks/useTeleport';\nimport useVModel from '../hooks/useVModel';\nimport Image from '../image';\nimport TImageItem from './base/ImageItem';\nimport TImageViewerIcon from './base/ImageModalIcon';\nimport TImageViewerModal from './base/ImageViewerModal';\nimport TImageViewerUtils from './base/ImageViewerUtils';\nimport { EVENT_CODE } from './consts';\nimport { useMirror, useRotate, useScale } from './hooks';\nimport props from './props';\nimport { TdImageViewerProps } from './type';\nimport { downloadFile, formatImages, getOverlay } from './utils';\n\nexport default defineComponent({\n name: 'TImageViewer',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('image-viewer');\n const renderTNodeJSX = useTNodeJSX();\n const isExpand = ref(true);\n const showOverlayValue = computed(() => getOverlay(props));\n\n const { index, visible, modelValue, imageReferrerpolicy } = toRefs(props);\n const [indexValue, setIndexValue] = useDefaultValue(index, props.defaultIndex ?? 0, props.onIndexChange, 'index');\n const [visibleValue, setVisibleValue] = useVModel(visible, modelValue, props.defaultVisible, () => {}, 'visible');\n const animationEnd = ref(true);\n const animationTimer = ref();\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const wrapClass = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}-preview-image`,\n {\n [`${classPrefix.value}-is-hide`]: !visibleValue.value,\n },\n ]);\n const headerClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-header`,\n {\n [`${classPrefix.value}-is-show`]: isExpand.value,\n },\n ]);\n const zIndexValue = computed(() => props.zIndex ?? 2600);\n const toggleExpand = () => {\n isExpand.value = !isExpand.value;\n };\n\n const { mirror, onMirror, resetMirror } = useMirror();\n const { scale, onZoomIn, onZoomOut, resetScale } = useScale(props.imageScale);\n const { rotate, onRotate, resetRotate } = useRotate();\n const onRest = () => {\n resetMirror();\n resetScale();\n resetRotate();\n };\n\n const images = computed(() => formatImages(props.images));\n const currentImage = computed(() => images.value[indexValue.value] ?? { mainImage: '' });\n\n const { isLastDialog } = usePopupManager('dialog', {\n visible: visibleValue,\n });\n\n const prevImage = () => {\n const newIndex = indexValue.value - 1;\n onRest();\n setIndexValue(newIndex < 0 ? 0 : newIndex, { trigger: 'prev' });\n };\n\n const nextImage = () => {\n const newIndex = indexValue.value + 1;\n onRest();\n setIndexValue(newIndex >= images.value.length ? indexValue.value : newIndex, { trigger: 'next' });\n };\n\n const onImgClick = (i: number) => {\n setIndexValue(i, { trigger: 'current' });\n };\n\n const onDownloadClick = (url: string) => {\n props.onDownload ? props.onDownload(url) : downloadFile(url);\n };\n\n const openHandler = () => {\n setVisibleValue(true);\n };\n const onClose: TdImageViewerProps['onClose'] = (ctx) => {\n setVisibleValue(false);\n props.onClose?.(ctx);\n };\n const closeBtnAction = (e: MouseEvent) => {\n onClose({ e, trigger: 'close-btn' });\n };\n const clickOverlayHandler = (e: MouseEvent) => {\n if (props.closeOnOverlay) {\n onClose({ e, trigger: 'overlay' });\n }\n };\n\n const keydownHandler = (e: KeyboardEvent) => {\n e.stopPropagation();\n\n switch (e.code) {\n case EVENT_CODE.left:\n prevImage();\n break;\n case EVENT_CODE.right:\n nextImage();\n break;\n case EVENT_CODE.up:\n onZoomIn();\n break;\n case EVENT_CODE.down:\n onZoomOut();\n break;\n case EVENT_CODE.esc:\n if (props.closeOnEscKeydown && isLastDialog()) {\n onClose({ e, trigger: 'esc' });\n }\n break;\n default:\n break;\n }\n };\n\n const divRef = ref();\n watch(\n () => visibleValue.value,\n (val) => {\n clearTimeout(animationTimer.value);\n if (val) {\n animationEnd.value = false;\n nextTick().then(() => {\n divRef.value?.focus?.();\n });\n\n onRest();\n } else {\n animationTimer.value = setTimeout(() => {\n animationEnd.value = true;\n }, 200);\n }\n },\n );\n\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const { deltaY } = e;\n deltaY > 0 ? onZoomOut() : onZoomIn();\n };\n\n const transStyle = computed(() => ({\n transform: `translateX(calc(-${indexValue.value} * (40px / 9 * 16 + 4px)))`,\n }));\n\n const renderHeader = () => (\n
    \n }\n class={`${COMPONENT_NAME.value}__header-pre-bt`}\n onClick={toggleExpand}\n />\n
    \n
    \n {images.value.map((image, index) => (\n \n onImgClick(index)}\n />\n
    \n ))}\n
    \n
    \n \n );\n const renderNavigationArrow = (type: 'prev' | 'next') => {\n const rotateDeg = type === 'prev' ? 0 : 180;\n const icon = renderTNodeJSX(\n 'navigationArrow',\n ,\n );\n\n return (\n icon}\n />\n );\n };\n\n const renderCloseBtn = () => {\n if (props.closeBtn === false) {\n return;\n }\n return (\n \n {renderTNodeJSX('closeBtn', )}\n \n );\n };\n\n return () => {\n if (props.mode === 'modeless') {\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n );\n }\n\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n {(visibleValue.value || !animationEnd.value) && (\n \n {!!showOverlayValue.value && (\n
    \n )}\n {images.value.length > 1 && (\n <>\n {renderHeader()}\n
    \n {props.title && renderTNodeJSX('title')}\n {`${indexValue.value + 1}/${images.value.length}`}\n
    \n {renderNavigationArrow('prev')}\n {renderNavigationArrow('next')}\n \n )}\n {renderCloseBtn()}\n \n \n
    \n )}\n
    \n
    \n \n );\n };\n },\n});\n","import _ImageViewer from './image-viewer';\nimport withInstall from '../utils/withInstall';\nimport { TdImageViewerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ImageViewerProps = TdImageViewerProps;\nexport const ImageViewer = withInstall(_ImageViewer);\nexport default ImageViewer;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作栏 */\n action: {\n type: [String, Function] as PropType,\n },\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TListItem',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('list-item');\n const renderTNodeJSX = useTNodeJSX();\n\n return () => {\n const propsContent = renderTNodeJSX('content');\n const propsDefaultContent = renderTNodeJSX('default');\n const propsActionContent = renderTNodeJSX('action');\n\n return (\n
  • \n
    \n {propsDefaultContent || propsContent}\n {propsActionContent &&
  • {propsActionContent}
  • }\n \n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自定义加载中。值为空不显示加载中,值为 'loading' 显示加载中状态,值为 'load-more' 显示加载更多状态。值类型为函数,则表示自定义加载状态呈现内容 */\n asyncLoading: {\n type: [String, Function] as PropType,\n },\n /** 底部 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 头部 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 排列方式(待设计稿输出) */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdListProps['layout'],\n validator(val: TdListProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdListProps['size'],\n validator(val: TdListProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否展示分割线 */\n split: Boolean,\n /** 是否展示斑马纹 */\n stripe: Boolean,\n /** 点击加载更多时触发 */\n onLoadMore: Function as PropType,\n /** 列表滚动时触发,scrollTop 表示顶部滚动距离,scrollBottom 表示底部滚动距离 */\n onScroll: Function as PropType,\n};\n","export const LOAD_MORE = 'load-more';\nexport const LOADING = 'loading';\n","import { Ref, computed } from 'vue';\n\nimport log from '@tdesign/common-js/log/index';\nimport useVirtualScroll from '../../hooks/useVirtualScrollNew';\nimport { TdListProps } from '../type';\nimport { Styles, type ComponentScrollToElementParams } from '../../common';\n\nexport const useListVirtualScroll = (\n scroll: TdListProps['scroll'],\n listRef: Ref,\n listItems: Ref,\n) => {\n const virtualScrollParams = computed(() => ({\n data: listItems.value,\n scroll: scroll,\n }));\n const virtualConfig = useVirtualScroll(listRef, virtualScrollParams);\n const isVirtualScroll = computed(() => virtualConfig.isVirtualScroll.value);\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n if (lastScrollY !== top) {\n virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n } else {\n lastScrollY = -1;\n }\n lastScrollY = top;\n };\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n } as Styles),\n );\n\n const listStyle = computed(\n () =>\n ({\n transform: `translate(0, ${virtualConfig.translateY.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n } as Styles),\n );\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n const { index, key } = params;\n const targetIndex = index === 0 ? index : index ?? Number(key);\n if (!targetIndex && targetIndex !== 0) {\n log.error('List', 'scrollTo: `index` or `key` must exist.');\n return;\n }\n if (targetIndex < 0 || targetIndex >= listItems.value.length) {\n log.error('List', `${targetIndex} does not exist in data, check \\`index\\` or \\`key\\` please.`);\n return;\n }\n virtualConfig.scrollToElement({ ...params, index: targetIndex - 1 });\n };\n\n return {\n virtualConfig,\n cursorStyle,\n listStyle,\n isVirtualScroll,\n onInnerVirtualScroll,\n scrollToElement: handleScrollTo,\n };\n};\n","import { defineComponent, VNodeChild, computed, ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { omit } from 'lodash-es';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport TLoading from '../loading';\nimport TListItem from './list-item';\nimport props from './props';\nimport { LOAD_MORE, LOADING } from './consts';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useListItems, useListVirtualScroll } from './hooks';\n\nimport type { TdListProps } from './type';\n\nexport default defineComponent({\n name: 'TList',\n props,\n setup(props: TdListProps, { expose }) {\n const listRef = ref();\n\n const { globalConfig } = useConfig('list');\n const COMPONENT_NAME = usePrefixClass('list');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n const { listItems } = useListItems();\n\n const { virtualConfig, cursorStyle, listStyle, isVirtualScroll, onInnerVirtualScroll, scrollToElement } =\n useListVirtualScroll(props.scroll, listRef, listItems);\n\n /** 列表基础逻辑 start */\n const listClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [`${COMPONENT_NAME.value}--split`]: props.split,\n [`${COMPONENT_NAME.value}--stripe`]: props.stripe,\n [`${COMPONENT_NAME.value}--vertical-action`]: props.layout === 'vertical',\n },\n ];\n });\n const renderContent = (): VNodeChild => {\n const propsHeaderContent = renderTNodeJSX('header');\n const propsFooterContent = renderTNodeJSX('footer');\n const isVirtualScroll = virtualConfig.isVirtualScroll.value;\n return (\n <>\n {propsHeaderContent ?
    {propsHeaderContent}
    : null}\n {isVirtualScroll ? (\n <>\n
    \n
      \n {virtualConfig.visibleData.value.map((item) => (\n <>\n \n \n ))}\n
    \n \n ) : (\n
      {renderTNodeJSX('default')}
    \n )}\n {propsFooterContent ?
    {propsFooterContent}
    : null}\n \n );\n };\n /** 列表基础逻辑 end */\n\n /** 滚动相关逻辑 start */\n const handleScroll = (e: WheelEvent) => {\n const listElement = e.target as HTMLElement;\n const { scrollTop, scrollHeight, clientHeight } = listElement;\n if (isVirtualScroll.value) onInnerVirtualScroll(e);\n props.onScroll?.({\n e,\n scrollTop,\n scrollBottom: scrollHeight - clientHeight - scrollTop,\n });\n };\n /** 滚动相关逻辑 end */\n\n /** loading加载相关逻辑 start */\n const loadingClass = computed(() => {\n return isString(props.asyncLoading) && ['loading', 'load-more'].includes(props.asyncLoading)\n ? `${COMPONENT_NAME.value}__load ${COMPONENT_NAME.value}__load--${props.asyncLoading}`\n : `${COMPONENT_NAME.value}__load`;\n });\n\n const renderLoading = () => {\n if (props.asyncLoading && isString(props.asyncLoading)) {\n if (props.asyncLoading === LOADING) {\n return (\n
    \n \n {globalConfig.value.loadingText}\n
    \n );\n }\n if (props.asyncLoading === LOAD_MORE) {\n return {globalConfig.value.loadingMoreText};\n }\n }\n return renderTNodeJSX('asyncLoading');\n };\n\n const handleLoadMore = (e: MouseEvent) => {\n if (isString(props.asyncLoading) && props.asyncLoading !== LOAD_MORE) return;\n props.onLoadMore?.({ e });\n };\n expose({ scrollTo: scrollToElement });\n return () => {\n const listContent = [\n renderContent(),\n
    \n {renderLoading()}\n
    ,\n ];\n\n return (\n \n {listContent}\n \n );\n };\n },\n});\n","import { computed } from 'vue';\nimport { isArray } from 'lodash-es';\n\nimport { useChildComponentSlots } from '../../hooks/slot';\n\nexport const useListItems = () => {\n const getChildComponentSlots = useChildComponentSlots();\n\n const listItems = computed(() => {\n const computedListItems = [];\n // 处理 slots\n const listItemSlots = getChildComponentSlots('ListItem');\n\n if (isArray(listItemSlots)) {\n for (const child of listItemSlots) {\n computedListItems.push({\n ...child.props,\n slots: child.children,\n } as any);\n }\n }\n return computedListItems;\n });\n\n return {\n listItems,\n };\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemMetaProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 已废弃。列表项图片 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 列表项内容 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 列表项图片 */\n image: {\n type: [String, Function] as PropType,\n },\n /** 列表项标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-meta-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TListItemMeta',\n props,\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('list-item__meta');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAvatar = () => {\n if (props.avatar || ctx.slots.avatar) {\n console.warn('`avatar` is going to be deprecated, please use `image` instead');\n }\n const thumbnail = renderContent('avatar', 'image');\n if (!thumbnail) return;\n if (isString(thumbnail)) {\n return (\n
    \n \n
    \n );\n }\n return
    {thumbnail}
    ;\n };\n return () => {\n const propsTitleContent = renderTNodeJSX('title');\n const propsDescriptionContent = renderTNodeJSX('description');\n\n const listItemMetaContent = [\n renderAvatar(),\n
    \n {propsTitleContent &&

    {propsTitleContent}

    }\n {propsDescriptionContent &&

    {propsDescriptionContent}

    }\n
    ,\n ];\n\n return
    {listItemMetaContent}
    ;\n };\n },\n});\n","import _List from './list';\nimport _ListItem from './list-item';\nimport _ListItemMeta from './list-item-meta';\nimport withInstall from '../utils/withInstall';\nimport { TdListProps, TdListItemProps, TdListItemMetaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ListProps = TdListProps;\nexport type ListItemProps = TdListItemProps;\nexport type ListItemMetaProps = TdListItemMetaProps;\n\nexport const List = withInstall(_List);\nexport const ListItem = withInstall(_ListItem);\nexport const ListItemMeta = withInstall(_ListItemMeta);\n","export const PRO_THEME = {\n LINE: 'line',\n PLUMP: 'plump',\n CIRCLE: 'circle',\n};\nexport const CIRCLE_SIZE = {\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n};\nexport const CIRCLE_SIZE_PX = {\n SMALL: 72,\n MEDIUM: 112,\n LARGE: 160,\n};\nexport const CIRCLE_FONT_SIZE_RATIO = {\n SMALL: 14 / CIRCLE_SIZE_PX.SMALL,\n MEDIUM: 20 / CIRCLE_SIZE_PX.MEDIUM,\n LARGE: 36 / CIRCLE_SIZE_PX.LARGE,\n};\nexport const STATUS_TEXT = ['success', 'error', 'warning', 'active', 'normal'];\nexport const STATUS_ICON = ['success', 'error', 'warning'];\n\nexport default {\n PRO_THEME,\n CIRCLE_SIZE,\n CIRCLE_SIZE_PX,\n STATUS_TEXT,\n STATUS_ICON,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdProgressProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 进度条颜色。示例:'#ED7B2F' 或 'orange' 或 `['#f00', '#0ff', '#f0f']` 或 `{ '0%': '#f00', '100%': '#0ff' }` 或 `{ from: '#000', to: '#000' }` 等 */\n color: {\n type: [String, Object, Array] as PropType,\n default: '' as TdProgressProps['color'],\n },\n /** 进度百分比,可自定义 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdProgressProps['label'],\n },\n /** 进度条百分比 */\n percentage: {\n type: Number,\n default: 0,\n },\n /** 进度条尺寸,示例:small/medium/large/240。small 值为 72; medium 值为 112;large 值为 160 */\n size: {\n type: [String, Number] as PropType,\n default: 'medium' as TdProgressProps['size'],\n },\n /** 进度条状态 */\n status: {\n type: String as PropType,\n validator(val: TdProgressProps['status']): boolean {\n if (!val) return true;\n return ['success', 'error', 'warning', 'active'].includes(val);\n },\n },\n /** 进度条线宽。宽度数值不能超过 size 的一半,否则不能输出环形进度 */\n strokeWidth: {\n type: [String, Number] as PropType,\n },\n /** 进度条风格。值为 line,标签(label)显示在进度条右侧;值为 plump,标签(label)显示在进度条里面;值为 circle,标签(label)显示在进度条正中间 */\n theme: {\n type: String as PropType,\n default: 'line' as TdProgressProps['theme'],\n validator(val: TdProgressProps['theme']): boolean {\n if (!val) return true;\n return ['line', 'plump', 'circle'].includes(val);\n },\n },\n /** 进度条未完成部分颜色 */\n trackColor: {\n type: String,\n default: '',\n },\n};\n","import { defineComponent, VNode, computed, CSSProperties } from 'vue';\nimport {\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n CheckIcon as TdCheckIcon,\n ErrorIcon as TdErrorIcon,\n} from 'tdesign-icons-vue-next';\n\nimport { getBackgroundColor } from '@tdesign/common-js/utils/helper';\nimport { PRO_THEME, CIRCLE_SIZE, CIRCLE_SIZE_PX, STATUS_ICON, CIRCLE_FONT_SIZE_RATIO } from './consts';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isObject } from 'lodash-es';\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TProgress',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('progress');\n const { CloseCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseIcon, CheckIcon, ErrorIcon } =\n useGlobalIcon({\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n CheckIcon: TdCheckIcon,\n ErrorIcon: TdErrorIcon,\n });\n\n const statusStyle = computed(() => {\n if (!props.status && props.percentage >= 100) {\n return 'success';\n }\n return props.status || 'default';\n });\n\n const trackBgStyle = computed(() => {\n const style: CSSProperties = {};\n if (props.strokeWidth) {\n const height = isString(props.strokeWidth) ? props.strokeWidth : `${props.strokeWidth}px`;\n style.height = height;\n style.borderRadius = height;\n }\n if (props.trackColor) {\n style.backgroundColor = props.trackColor;\n }\n return style;\n });\n\n const barStyle = computed(() => {\n return {\n width: `${props.percentage}%`,\n background: props.color && getBackgroundColor(props.color),\n };\n });\n\n const circlePathStyle = computed(() => {\n const strokeColor = isObject(props.color) ? '' : props.color;\n return {\n stroke: strokeColor,\n };\n });\n\n const circleOuterStyle = computed(() => {\n const strokeColor = isObject(props.trackColor) ? '' : props.trackColor;\n return {\n stroke: strokeColor,\n };\n });\n\n // theme=circle 获取直径\n const diameter = computed(() => {\n let diameter = CIRCLE_SIZE_PX.MEDIUM;\n if (!props.size) {\n return diameter;\n }\n const { SMALL, LARGE, MEDIUM } = CIRCLE_SIZE;\n switch (props.size) {\n case SMALL:\n diameter = CIRCLE_SIZE_PX.SMALL;\n break;\n case MEDIUM:\n diameter = CIRCLE_SIZE_PX.MEDIUM;\n break;\n case LARGE:\n diameter = CIRCLE_SIZE_PX.LARGE;\n break;\n default:\n diameter = Number(props.size);\n break;\n }\n return diameter;\n });\n\n const rPoints = computed(() => {\n return diameter.value / 2;\n });\n\n const radius = computed(() => {\n return rPoints.value - circleStrokeWidth.value / 2;\n });\n\n const circleStyle = computed(() => {\n if (props.theme !== PRO_THEME.CIRCLE) {\n return {};\n }\n\n let fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.MEDIUM;\n if (diameter.value <= CIRCLE_SIZE_PX.SMALL) {\n fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.SMALL;\n } else if (diameter.value >= CIRCLE_SIZE_PX.LARGE) {\n fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.LARGE;\n }\n\n return {\n width: `${diameter.value}px`,\n height: `${diameter.value}px`,\n fontSize: `${fontSize}px`,\n };\n });\n\n const circleStrokeWidth = computed(() => {\n const defaultWidth = props.size === CIRCLE_SIZE.SMALL ? 4 : 6;\n return props.strokeWidth ? Number(props.strokeWidth) : defaultWidth;\n });\n\n const strokeDashArr = computed(() => {\n const radius = (diameter.value - circleStrokeWidth.value) / 2;\n const perimeter = Math.PI * 2 * radius;\n const percent = props.percentage / 100;\n return `${perimeter * percent} ${perimeter * (1 - percent)}`;\n });\n\n const getIconMap = () => {\n const CIRCLE_ICONS = {\n success: CheckIcon,\n warning: ErrorIcon,\n error: CloseIcon,\n };\n const NORMAL_ICONS = {\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: CloseCircleFilledIcon,\n };\n return props.theme === PRO_THEME.CIRCLE ? CIRCLE_ICONS : NORMAL_ICONS;\n };\n const getLabelContent = () => {\n let labelContent: string | VNode = `${props.percentage}%`;\n const status = props.status || '';\n if (STATUS_ICON.includes(status) && props.theme !== PRO_THEME.PLUMP) {\n const components = getIconMap();\n const component = components[status as keyof typeof components];\n if (component) {\n labelContent = ;\n }\n }\n return labelContent;\n };\n\n return () => {\n const labelContent = (\n
    {renderTNodeJSX('label', getLabelContent())}
    \n );\n // 进度大于 10 ,进度百分比显示在内部;进度百分比小于 10 进度显示在外部\n const PLUMP_SEPARATE = 10;\n const separateClasses =\n props.percentage > PLUMP_SEPARATE ? `${COMPONENT_NAME.value}--over-ten` : `${COMPONENT_NAME.value}--under-ten`;\n return (\n
    \n {props.theme === PRO_THEME.LINE && (\n
    \n
    \n
    \n
    \n {labelContent}\n
    \n )}\n\n {props.theme === PRO_THEME.PLUMP && (\n \n
    \n {props.percentage > PLUMP_SEPARATE && labelContent}\n
    \n {props.percentage <= PLUMP_SEPARATE && labelContent}\n
    \n )}\n\n {props.theme === PRO_THEME.CIRCLE && (\n \n {labelContent}\n \n \n {props.percentage > 0 && (\n \n )}\n \n \n )}\n \n );\n };\n },\n});\n","import _Progress from './progress';\nimport withInstall from '../utils/withInstall';\nimport { TdProgressProps } from './type';\n\nimport './style';\n\nexport type ProgressProps = TdProgressProps;\nexport * from './type';\n\nexport const Progress = withInstall(_Progress);\n\nexport default Progress;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSkeletonProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 动画效果,有「渐变加载动画」和「闪烁加载动画」两种。值为 'none' 则表示没有动画 */\n animation: {\n type: String as PropType,\n default: 'none' as TdSkeletonProps['animation'],\n validator(val: TdSkeletonProps['animation']): boolean {\n if (!val) return true;\n return ['gradient', 'flashed', 'none'].includes(val);\n },\n },\n /** 延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒 */\n delay: {\n type: Number,\n default: 0,\n },\n /** 是否为加载状态,如果是则显示骨架图,如果不是则显示加载完成的内容 */\n loading: {\n type: Boolean,\n default: true,\n },\n /** 高级设置,用于自定义行列数量、宽度高度、间距等。【示例一】,`[1, 1, 2]` 表示输出三行骨架图,第一行一列,第二行一列,第三行两列。【示例二】,`[1, 1, { width: '100px' }]` 表示自定义第三行的宽度为 `100px`。【示例三】,`[1, 2, [{ width, height }, { width, height, marginLeft }]]` 表示第三行有两列,且自定义宽度、高度、尺寸(圆形或方形使用)、间距、内容等 */\n rowCol: {\n type: Array as PropType,\n },\n /** 快捷定义骨架图风格,有基础、头像组合等,具体参看代码示例 */\n theme: {\n type: String as PropType,\n validator(val: TdSkeletonProps['theme']): boolean {\n if (!val) return true;\n return ['text', 'avatar', 'paragraph', 'avatar-text', 'tab', 'article'].includes(val);\n },\n },\n};\n","import { h, defineComponent, ref, watch } from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { SkeletonRowCol, SkeletonRowColObj, TdSkeletonProps } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\nimport { isArray } from 'lodash-es';\n\nconst ThemeMap: Record = {\n text: [1],\n avatar: [{ type: 'circle', size: '56px' }],\n paragraph: [1, 1, { width: '70%' }],\n 'avatar-text': [[{ type: 'circle' }, { type: 'text', height: '32px' }]],\n tab: [{ height: '30px' }, { height: '200px' }],\n article: [\n { type: 'rect', height: '30px', width: '100%' },\n { type: 'rect', height: '200px', width: '100%' },\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n ],\n};\n\nconst getColItemStyle = (obj: SkeletonRowColObj) => {\n const styleName = ['width', 'height', 'marginRight', 'marginLeft', 'margin', 'size', 'background', 'backgroundColor'];\n const style = Object.create(null);\n styleName.forEach((name) => {\n // TODO: function isKeyOfObj(key: string, obj: object): key is keyof typeof obj { return key in obj;}\n if (name in obj) {\n const val = obj[name as keyof typeof obj];\n const px = isNumber(val) ? `${val}px` : val;\n if (name === 'size') {\n [style.width, style.height] = [px, px];\n } else {\n style[name] = px;\n }\n }\n });\n return style;\n};\n\nexport default defineComponent({\n name: 'TSkeleton',\n props,\n setup(props, { slots }) {\n const isShow = ref(false);\n const COMPONENT_NAME = usePrefixClass('skeleton');\n const renderContent = useContent();\n const getColItemClass = (obj: SkeletonRowColObj) => [\n `${COMPONENT_NAME.value}__col`,\n `${COMPONENT_NAME.value}--type-${obj.type || 'text'}`,\n { [`${COMPONENT_NAME.value}--animation-${props.animation}`]: props.animation },\n ];\n\n const renderCols = (_cols: Number | SkeletonRowColObj | Array) => {\n let cols: Array = [];\n if (isArray(_cols)) {\n cols = _cols;\n } else if (isNumber(_cols)) {\n cols = new Array(_cols).fill({ type: 'text' });\n } else {\n cols = [_cols as SkeletonRowColObj];\n }\n return cols.map((obj) => (\n
    \n {isFunction(obj.content) ? obj.content(h) : obj.content}\n
    \n ));\n };\n\n const renderRowCol = (_rowCol?: SkeletonRowCol) => {\n const rowCol: SkeletonRowCol = _rowCol || props.rowCol;\n\n const getBlockClass = () => [`${COMPONENT_NAME.value}__row`];\n\n return rowCol.map((item) =>
    {renderCols(item)}
    );\n };\n\n let timer: NodeJS.Timeout = null;\n\n watch(\n () => props.loading,\n (bool) => {\n if (!bool) {\n clearTimeout(timer);\n isShow.value = false;\n return;\n }\n if (props.delay > 0) {\n timer = setTimeout(() => {\n clearTimeout(timer);\n isShow.value = true;\n }, props.delay);\n } else {\n isShow.value = true;\n }\n },\n { immediate: true },\n );\n\n return () => {\n const content = renderContent('default', 'content');\n\n if (slots.default && !isShow.value) {\n return
    {content}
    ;\n }\n\n if (!isShow.value) {\n return;\n }\n\n const children = [];\n if (props.theme) {\n children.push(renderRowCol(ThemeMap[props.theme]));\n }\n if (props.rowCol) {\n children.push(renderRowCol(props.rowCol));\n }\n if (!props.theme && !props.rowCol) {\n // 什么都不传时,传入默认 rowCol\n children.push(renderRowCol([1, 1, 1, { width: '70%' }]));\n }\n\n return
    {children}
    ;\n };\n },\n});\n","import _Skeleton from './skeleton';\nimport withInstall from '../utils/withInstall';\nimport { TdSkeletonProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SkeletonProps = TdSkeletonProps;\n\nexport const Skeleton = withInstall(_Skeleton);\nexport default Skeleton;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStatisticProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 动画效果控制,`duration` 指动画的过渡时间`单位:毫秒`,`valueFrom` 指动画的起始数值。`{ duration, valueFrom }` */\n animation: {\n type: Object as PropType,\n },\n /** 是否开始动画 */\n animationStart: Boolean,\n /** 颜色风格,依次为 TDesign 风格的黑色、蓝色、红色、橙色、绿色。也可以为任何 [CSS color](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value) 支持的 RGB 等值 */\n color: {\n type: String as PropType,\n validator(val: TdStatisticProps['color']): boolean {\n if (!val) return true;\n return ['black', 'blue', 'red', 'orange', 'green'].includes(val);\n },\n },\n /** 小数保留位数 */\n decimalPlaces: {\n type: Number,\n },\n /** 额外的显示内容 */\n extra: {\n type: [String, Function] as PropType,\n },\n /** 格式化数值显示值 */\n format: {\n type: Function as PropType,\n },\n /** 是否加载中 */\n loading: Boolean,\n /** 前缀内容,展示优先级高于 trend */\n prefix: {\n type: [String, Function] as PropType,\n },\n /** 默认展示千位分隔符,可以自定义为其他内容,`separator = ''` 设置为空字符串/null/undefined 时展示默认分隔符 */\n separator: {\n type: String,\n default: ',',\n },\n /** 后缀内容,展示优先级高于 trend */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 数值显示的标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 趋势 */\n trend: {\n type: String as PropType,\n validator(val: TdStatisticProps['trend']): boolean {\n if (!val) return true;\n return ['increase', 'decrease'].includes(val);\n },\n },\n /** 趋势展示位置 */\n trendPlacement: {\n type: String as PropType,\n default: 'left' as TdStatisticProps['trendPlacement'],\n validator(val: TdStatisticProps['trendPlacement']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 单位内容 */\n unit: {\n type: [String, Function] as PropType,\n },\n /** 数值显示的值 */\n value: {\n type: Number,\n },\n};\n","/**\n * Inspired by https://github.com/PengJiyuan/b-tween\n * requestAnimationFrame https://caniuse.com/requestanimationframe\n * TDesign vue 2 need to ensure compatibility with users who are using IE and Vue2,\n * it is necessary to use setInterval instead of requestAnimationFrame when the browser version is less than 9\n */\nimport { getIEVersion } from '../utils/helper';\n\nexport interface TweenSettings {\n from: Record;\n to: Record;\n duration?: number;\n delay?: number;\n onStart?: (keys: Record) => void;\n onUpdate?: (keys: Record) => void;\n onFinish?: (keys: Record) => void;\n}\n\nconst quartOut = (t: number) => 1 - Math.abs((t - 1) ** 4);\n\nexport default class Tween {\n private from: Record;\n\n private to: Record;\n\n private duration: number;\n\n private onStart?: (keys: Record) => void;\n\n private onUpdate: (keys: Record) => void;\n\n private onFinish?: (keys: Record) => void;\n\n private startTime: number;\n\n private started: boolean;\n\n private finished: boolean;\n\n private timer: number | NodeJS.Timer | null;\n\n private keys: Record;\n\n constructor({\n from,\n to,\n duration = 200,\n onStart,\n onUpdate = () => {},\n onFinish,\n }: TweenSettings) {\n this.from = from;\n this.to = to;\n this.duration = duration;\n this.onStart = onStart;\n this.onUpdate = onUpdate;\n this.onFinish = onFinish;\n this.startTime = Date.now();\n this.started = false;\n this.finished = false;\n this.timer = null;\n this.keys = {};\n Object.entries(from).forEach(([key, value]) => {\n if (this.to[key] === undefined) {\n this.to[key] = value;\n }\n });\n\n Object.entries(to).forEach(([key, value]) => {\n if (this.from[key] === undefined) {\n this.from[key] = value;\n }\n });\n }\n\n private time = 0;\n\n private elapsed = 0;\n\n private update() {\n this.time = Date.now();\n if (this.time < this.startTime || this.finished) return;\n\n if (this.elapsed >= this.duration) {\n this.finished = true;\n this.onFinish?.(this.keys);\n return;\n }\n const elapsed = Math.min(this.time - this.startTime, this.duration);\n this.elapsed = elapsed;\n const progress = quartOut(elapsed / this.duration);\n\n Object.keys(this.to).forEach((key) => {\n const delta = this.to[key] - this.from[key];\n this.keys[key] = this.from[key] + delta * progress;\n });\n\n if (!this.started) {\n this.onStart?.(this.keys);\n this.started = true;\n }\n\n this.onUpdate(this.keys);\n }\n\n private polyfillStart() {\n const elapsed = Date.now() - this.startTime;\n const interval = quartOut(elapsed / this.duration);\n\n this.timer = setInterval(() => {\n this.update();\n if (this.finished) {\n clearInterval(this.timer as number);\n }\n }, interval);\n }\n\n private normalStart() {\n const tick = () => {\n this.update();\n this.timer = requestAnimationFrame(tick);\n\n if (this.finished) {\n cancelAnimationFrame(this.timer);\n this.timer = null;\n }\n };\n tick();\n }\n\n public start() {\n this.startTime = Date.now();\n // IE < 10\n if (getIEVersion() < 10) this.polyfillStart();\n else this.normalStart();\n }\n\n public stop() {\n // IE < 10\n if (getIEVersion() < 10) clearInterval(this.timer as number);\n else cancelAnimationFrame(this.timer as number);\n this.timer = null;\n }\n}\n","/**\n * 颜色映射\n */\nexport const COLOR_MAP = {\n black: 'var(--td-text-color-primary)',\n blue: 'var(--td-brand-color)',\n red: 'var(--td-error-color)',\n orange: 'var(--td-warning-color)',\n green: 'var(--td-success-color)',\n};\n\nexport function getFormatValue(value:number | undefined | string, decimalPlaces:number, separator:string) {\n const options = {\n minimumFractionDigits: decimalPlaces ?? 0,\n maximumFractionDigits: decimalPlaces ?? 20,\n useGrouping: !!separator,\n };\n // replace的替换的方案仅能应对大部分地区\n return value.toLocaleString(undefined, options).replace(/,|,/g, separator);\n}\n","import { defineComponent, computed, ref, onMounted, watch, toRefs } from 'vue';\nimport {\n ArrowTriangleDownFilledIcon as TDArrowTriangleDownFilledIcon,\n ArrowTriangleUpFilledIcon as TDArrowTriangleUpFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Skeleton from '../skeleton';\nimport Tween from '@tdesign/common-js/statistic/tween';\nimport { COLOR_MAP, getFormatValue } from '@tdesign/common-js/statistic/utils';\n\nexport default defineComponent({\n name: 'TStatistic',\n props,\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('statistic');\n const renderTNodeJSX = useTNodeJSX();\n const { ArrowTriangleUpFilledIcon, ArrowTriangleDownFilledIcon } = useGlobalIcon({\n ArrowTriangleUpFilledIcon: TDArrowTriangleUpFilledIcon,\n ArrowTriangleDownFilledIcon: TDArrowTriangleDownFilledIcon,\n });\n const trendIcons = {\n increase: ,\n decrease: ,\n };\n const numberValue = computed(() => (isNumber(props.value) ? props.value : 0));\n const innerValue = ref(props.animation?.valueFrom ?? props.value);\n const innerDecimalPlaces = computed(\n () => props.decimalPlaces ?? numberValue.value.toString().split('.')[1]?.length ?? 0,\n );\n\n const tween = ref();\n const { value } = toRefs(props);\n\n const start = (from: number = props.animation?.valueFrom ?? 0, to: number = numberValue.value) => {\n if (from !== to) {\n tween.value = new Tween({\n from: {\n value: from,\n },\n to: {\n value: to,\n },\n duration: props.animation.duration,\n onUpdate: (keys) => {\n innerValue.value = Number(keys.value.toFixed(innerDecimalPlaces.value));\n },\n onFinish: () => {\n innerValue.value = to;\n },\n });\n tween.value?.start();\n }\n };\n\n const formatValue = computed(() => {\n if (isFunction(props.format)) {\n return props.format(innerValue.value);\n }\n\n return getFormatValue(innerValue.value, props.decimalPlaces, props.separator);\n });\n\n const contentStyle = computed(() => {\n const { color } = props;\n return {\n color: COLOR_MAP[color] || color,\n };\n });\n\n watch(\n () => props.animationStart,\n (value) => {\n if (props.animation && value && !tween.value) {\n start();\n }\n },\n );\n watch(value, (value) => {\n if (tween.value) {\n (tween.value as any)?.stop();\n tween.value = null;\n }\n innerValue.value = value;\n if (props.animationStart && props.animation) {\n start();\n }\n });\n\n onMounted(() => props.animation && props.animationStart && start());\n\n expose({ start });\n\n return () => {\n const trendIcon = props.trend ? trendIcons[props.trend] : null;\n const prefix = renderTNodeJSX('prefix') || (trendIcon && props.trendPlacement !== 'right' ? trendIcon : null);\n const suffix = renderTNodeJSX('suffix') || (trendIcon && props.trendPlacement === 'right' ? trendIcon : null);\n const title = renderTNodeJSX('title');\n const unit = renderTNodeJSX('unit');\n const extra = renderTNodeJSX('extra');\n\n return (\n
    \n {title &&
    {title}
    }\n \n
    \n {prefix && {prefix}}\n {formatValue.value}\n {unit && {unit}}\n {suffix && {suffix}}\n
    \n
    \n {extra &&
    {extra}
    }\n
    \n );\n };\n },\n});\n","import _Statistic from './statistic';\nimport withInstall from '../utils/withInstall';\nimport { TdStatisticProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StatisticProps = TdStatisticProps;\n\nexport const Statistic = withInstall(_Statistic);\n\nexport default Statistic;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdSwiperProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 轮播切换动画效果类型:滑动、淡入淡出等 */\n animation: {\n type: String as PropType,\n default: 'slide' as TdSwiperProps['animation'],\n validator(val: TdSwiperProps['animation']): boolean {\n if (!val) return true;\n return ['slide', 'fade'].includes(val);\n },\n },\n /** 是否自动播放 */\n autoplay: {\n type: Boolean,\n default: true,\n },\n /** 当前轮播在哪一项(下标) */\n current: {\n type: Number,\n default: 0,\n },\n /** 当前轮播在哪一项(下标),非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 0,\n },\n /** 轮播滑动方向,包括横向滑动和纵向滑动两个方向 */\n direction: {\n type: String as PropType,\n default: 'horizontal' as TdSwiperProps['direction'],\n validator(val: TdSwiperProps['direction']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 滑动动画时长 */\n duration: {\n type: Number,\n default: 300,\n },\n /** 当使用垂直方向滚动时的高度 */\n height: {\n type: Number,\n },\n /** 轮播间隔时间 */\n interval: {\n type: Number,\n default: 5000,\n },\n /** 是否循环播放 */\n loop: {\n type: Boolean,\n default: true,\n },\n /** 导航器全部配置 */\n navigation: {\n type: [Object, Function] as PropType,\n },\n /** 是否悬浮时停止轮播 */\n stopOnHover: {\n type: Boolean,\n default: true,\n },\n /** 深色模式和浅色模式 */\n theme: {\n type: String as PropType,\n default: 'light' as TdSwiperProps['theme'],\n validator(val: TdSwiperProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'dark'].includes(val);\n },\n },\n /** 触发切换的方式:悬浮、点击等 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdSwiperProps['trigger'],\n validator(val: TdSwiperProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n /** 样式类型:默认样式、卡片样式 */\n type: {\n type: String as PropType,\n default: 'default' as TdSwiperProps['type'],\n validator(val: TdSwiperProps['type']): boolean {\n if (!val) return true;\n return ['default', 'card'].includes(val);\n },\n },\n /** 卡片模式下的缩放比例 */\n cardScale: {\n type: Number,\n default: 210 / 332,\n },\n /** 轮播切换时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nconst swiperItemProps = {\n index: {\n type: Number,\n },\n currentIndex: {\n type: Number,\n },\n isSwitching: {\n type: Boolean,\n default: false,\n },\n getWrapAttribute: {\n type: Function,\n },\n swiperItemLength: {\n type: Number,\n default: 0,\n },\n};\nconst itemWidth = 0.415; // 依据设计稿使用t-swiper__card控制每个swiper的宽度为41.5%\n\nexport default defineComponent({\n name: 'TSwiperItem',\n props: {\n ...props,\n ...swiperItemProps,\n },\n setup(props, { slots }) {\n const prefix = usePrefixClass();\n const active = computed(() => props.index === props.currentIndex);\n const disposeIndex = computed(() => {\n if (props.type !== 'card') return 0;\n if (props.currentIndex === 0 && props.index === props.swiperItemLength - 1) {\n return -1;\n }\n if (props.currentIndex === props.swiperItemLength - 1 && props.index === 0) {\n return props.swiperItemLength;\n }\n if (props.index < props.currentIndex - 1 && props.currentIndex - props.index >= props.swiperItemLength / 2) {\n return props.swiperItemLength + 1;\n }\n if (props.index > props.currentIndex + 1 && props.index - props.currentIndex >= props.swiperItemLength / 2) {\n return -2;\n }\n return props.index;\n });\n const translateX = computed(() => {\n if (props.type !== 'card') return 0;\n const wrapWidth = props.getWrapAttribute('offsetWidth') || 0;\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const inStage = Math.abs(translateIndex - props.currentIndex) <= 1;\n if (inStage) {\n return (\n (wrapWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * props.cardScale) - itemWidth + 1)) / 2\n );\n }\n if (translateIndex < props.currentIndex) {\n return (-itemWidth * (1 + props.cardScale) * wrapWidth) / 2;\n }\n return ((2 + itemWidth * (props.cardScale - 1)) * wrapWidth) / 2;\n });\n const zIndex = computed(() => {\n if (props.type !== 'card') return 0;\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const isActivity = translateIndex === props.currentIndex;\n const inStage = Math.round(Math.abs(translateIndex - props.currentIndex)) <= 1;\n if (isActivity) {\n return 2;\n }\n if (inStage) {\n return 1;\n }\n return 0;\n });\n const itemStyle = computed(() => {\n if (props.animation === 'fade') {\n return {\n opacity: active.value ? 1 : 0,\n transition: props.isSwitching ? `opacity ${props.duration / 1000}s` : '',\n zIndex: active.value ? 1 : 0,\n };\n }\n if (props.type === 'card') {\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const isActivity = translateIndex === props.currentIndex;\n return {\n transform: `translateX(${translateX.value}px) scale(${isActivity ? 1 : props.cardScale})`,\n transition: `transform ${props.duration / 1000}s ease`,\n zIndex: zIndex.value,\n };\n }\n return {};\n });\n\n return () => (\n \n {slots.default?.({}) || []}\n \n );\n },\n});\n","import { defineComponent, ref, computed, watch, isVNode, onMounted, cloneVNode } from 'vue';\nimport { ChevronLeftIcon as TdChevronLeftIcon, ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useChildComponentSlots } from '../hooks';\nimport props from './props';\nimport { SwiperNavigation, SwiperChangeSource } from './type';\nimport TSwiperItem from './swiper-item';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst defaultNavigation: SwiperNavigation = {\n placement: 'inside',\n showSlideBtn: 'always',\n size: 'medium',\n type: 'bars',\n};\n\nexport default defineComponent({\n name: 'TSwiper',\n props,\n emits: ['update:current'],\n setup(props, { emit }) {\n const prefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { ChevronLeftIcon, ChevronRightIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n });\n let swiperTimer: ReturnType | null = null;\n let swiperSwitchingTimer = 0;\n let isBeginToEnd = false;\n let isEndToBegin = false;\n const currentIndex = ref(props.current || props.defaultCurrent);\n const navActiveIndex = ref(props.current || props.defaultCurrent);\n const isHovering = ref(false);\n const isSwitching = ref(false);\n const showArrow = ref(false);\n const swiperWrap = ref();\n const getChildComponentByName = useChildComponentSlots();\n\n const swiperItemLength = ref(0);\n const navigationConfig = computed(() => {\n return {\n ...defaultNavigation,\n ...(isVNode(props.navigation) ? {} : (props.navigation as object)),\n };\n });\n const isEnd = computed(() => {\n if (props.type === 'card') {\n return !props.loop && currentIndex.value + 1 >= swiperItemLength.value;\n }\n return !props.loop && currentIndex.value + 2 >= swiperItemLength.value;\n });\n const propsToUpdateSetTimer = computed(() => {\n return [props.autoplay, currentIndex.value, props.duration, props.interval];\n });\n const swiperWrapClass = computed(() => {\n return {\n [`${prefix.value}-swiper__wrap`]: true,\n [`${prefix.value}-swiper--inside`]: navigationConfig.value.placement === 'inside',\n [`${prefix.value}-swiper--outside`]: navigationConfig.value.placement === 'outside',\n [`${prefix.value}-swiper--vertical`]: props.direction === 'vertical',\n [`${prefix.value}-swiper--large`]: navigationConfig.value.size === 'large',\n [`${prefix.value}-swiper--small`]: navigationConfig.value.size === 'small',\n };\n });\n const containerStyle = computed(() => {\n const offsetHeight = props.height ? `${props.height}px` : `${getWrapAttribute('offsetHeight')}px`;\n if (props.type === 'card' || props.animation === 'fade') {\n return {\n height: offsetHeight,\n };\n }\n if (props.animation === 'slide') {\n const style: Record = {\n transition: isSwitching.value ? `transform ${props.duration / 1000}s ease` : '',\n };\n let active = currentIndex.value;\n if (swiperItemLength.value > 1) {\n active += 1;\n if (isBeginToEnd || isEndToBegin) {\n style.transition = '';\n }\n }\n if (props.direction === 'vertical') {\n style.height = offsetHeight;\n style.transform = `translate3d(0, -${active * 100}%, 0px)`;\n } else {\n style.transform = `translate3d(-${active * 100}%, 0px, 0px)`;\n }\n ['msTransform', 'WebkitTransform'].forEach((key) => {\n style[key] = style.transform;\n });\n return style;\n }\n return {};\n });\n const swiperItems = () => {\n const swiperItemList = getChildComponentByName('SwiperItem');\n swiperItemLength.value = swiperItemList.length;\n const items = swiperItemList.map((swiperItem: any, index) => {\n const p = { ...props, ...swiperItem.props };\n return (\n \n {swiperItem.children.default()}\n \n );\n });\n if (props.animation === 'slide' && items.length > 1) {\n const first = cloneVNode(items[0], {\n key: `swiper-item-append-${0}`,\n });\n const last = cloneVNode(items[items.length - 1], {\n key: `swiper-item-prepend-${items.length - 1}`,\n });\n items.unshift(last);\n items.push(first);\n }\n return items;\n };\n\n const swiperTo = (index: number, context: { source: SwiperChangeSource }) => {\n let targetIndex = index % swiperItemLength.value;\n navActiveIndex.value = targetIndex;\n emit('update:current', targetIndex);\n props.onChange?.(targetIndex, context);\n isSwitching.value = true;\n if (props.animation === 'slide' && swiperItemLength.value > 1 && props.type !== 'card') {\n targetIndex = index;\n isBeginToEnd = false;\n isEndToBegin = false;\n if (index >= swiperItemLength.value) {\n clearTimer();\n setTimeout(() => {\n isEndToBegin = true;\n currentIndex.value = 0;\n }, props.duration);\n }\n if (currentIndex.value === 0) {\n if (\n (swiperItemLength.value > 2 && index === swiperItemLength.value - 1) ||\n (swiperItemLength.value === 2 && index === 0)\n ) {\n targetIndex = -1;\n navActiveIndex.value = swiperItemLength.value - 1;\n clearTimer();\n setTimeout(() => {\n isBeginToEnd = true;\n currentIndex.value = swiperItemLength.value - 1;\n }, props.duration);\n }\n }\n }\n currentIndex.value = targetIndex;\n };\n const clearTimer = () => {\n if (swiperTimer) {\n clearTimeout(swiperTimer);\n swiperTimer = null;\n }\n };\n const setTimer = () => {\n if (props.autoplay && props.interval > 0) {\n clearTimer();\n swiperTimer = setTimeout(\n () => {\n swiperTo(currentIndex.value + 1, { source: 'autoplay' });\n },\n currentIndex.value === 0 ? props.interval - (props.duration + 50) : props.interval, // 当 index 为 0 的时候,表明刚从克隆的最后一项跳转过来,已经经历了duration + 50 的间隔时间,减去即可\n );\n }\n };\n\n const onMouseEnter = () => {\n isHovering.value = true;\n if (props.stopOnHover) {\n clearTimer();\n }\n if (navigationConfig.value.showSlideBtn === 'hover') {\n showArrow.value = true;\n }\n };\n const onMouseLeave = () => {\n isHovering.value = false;\n if (!isEnd.value) {\n setTimer();\n }\n if (navigationConfig.value.showSlideBtn === 'hover') {\n showArrow.value = false;\n }\n };\n const onMouseEnterNavigationItem = (i: number) => {\n if (props.trigger === 'hover') {\n swiperTo(i, { source: 'hover' });\n }\n };\n const onClickNavigationItem = (i: number) => {\n if (props.trigger === 'click') {\n swiperTo(i, { source: 'click' });\n }\n };\n const goNext = (context: { source: SwiperChangeSource }) => {\n if (isSwitching.value) return;\n if (props.type === 'card') {\n return swiperTo(currentIndex.value + 1 >= swiperItemLength.value ? 0 : currentIndex.value + 1, context);\n }\n return swiperTo(currentIndex.value + 1, context);\n };\n const goPrevious = (context: { source: SwiperChangeSource }) => {\n if (isSwitching.value) return;\n if (currentIndex.value - 1 < 0) {\n if (props.animation === 'slide' && swiperItemLength.value === 2) {\n return swiperTo(0, context);\n }\n return swiperTo(swiperItemLength.value - 1, context);\n }\n return swiperTo(currentIndex.value - 1, context);\n };\n const getWrapAttribute = (attr: string) => {\n return swiperWrap.value?.parentNode?.[attr as keyof ParentNode];\n };\n const renderPagination = () => {\n const fractionIndex = currentIndex.value + 1 > swiperItemLength.value ? 1 : currentIndex.value + 1;\n return (\n
    \n
    goPrevious({ source: 'click' })}>\n \n
    \n
    \n {fractionIndex}/{swiperItemLength.value}\n
    \n
    goNext({ source: 'click' })}>\n \n
    \n
    \n );\n };\n const renderArrow = () => {\n if (!showArrow.value) return null;\n return (\n
    \n
    goPrevious({ source: 'click' })}>\n \n
    \n
    goNext({ source: 'click' })}>\n \n
    \n
    \n );\n };\n const renderNavigation = () => {\n if (isVNode(props.navigation)) return props.navigation;\n const navigationSlot = renderTNodeJSX('navigation');\n if (navigationSlot && isVNode(navigationSlot?.[0])) return navigationSlot;\n\n if (navigationConfig.value.type === 'fraction') {\n return (\n
    \n {renderPagination()}\n
    \n );\n }\n const swiperItemList = getChildComponentByName('SwiperItem');\n return (\n \n {swiperItemList.map((_, i: number) => (\n onMouseEnterNavigationItem(i)}\n onClick={() => onClickNavigationItem(i)}\n >\n \n \n ))}\n \n );\n };\n const renderSwiperItems = () => {\n return swiperItems();\n };\n\n watch(\n () => propsToUpdateSetTimer.value,\n () => {\n setTimer();\n },\n );\n watch(\n () => isSwitching.value,\n () => {\n if (isSwitching.value) {\n if (swiperSwitchingTimer) clearTimeout(swiperSwitchingTimer);\n swiperSwitchingTimer = setTimeout(() => {\n isSwitching.value = false;\n swiperSwitchingTimer = 0;\n if (isEnd.value) {\n clearTimer();\n }\n }, props.duration + 50) as unknown as number;\n }\n },\n );\n watch(\n () => props.current,\n () => {\n swiperTo(props.current, { source: 'autoplay' });\n },\n );\n\n onMounted(() => {\n setTimer();\n showArrow.value = navigationConfig.value.showSlideBtn === 'always';\n });\n\n return () => (\n
    \n
    \n \n
    \n {renderSwiperItems()}\n
    \n
    \n {renderNavigation()}\n {renderArrow()}\n
    \n \n );\n },\n});\n","import _Swiper from './swiper';\nimport _SwiperItem from './swiper-item';\nimport withInstall from '../utils/withInstall';\nimport { TdSwiperProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwiperProps = TdSwiperProps;\n\nexport const Swiper = withInstall(_Swiper);\nexport const SwiperItem = withInstall(_SwiperItem);\nexport default Swiper;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdBaseTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 高亮行,支持鼠标键盘操作(Shift)连续高亮行,可用于处理行选中等批量操作,模拟操作系统区域选择行为 */\n activeRowKeys: {\n type: Array as PropType,\n default: undefined as TdBaseTableProps['activeRowKeys'],\n },\n /** 高亮行,支持鼠标键盘操作(Shift)连续高亮行,可用于处理行选中等批量操作,模拟操作系统区域选择行为,非受控属性 */\n defaultActiveRowKeys: {\n type: Array as PropType,\n default: (): TdBaseTableProps['defaultActiveRowKeys'] => [],\n },\n /** 默认不会高亮点击行,`activeRowType=single` 表示鼠标点击仅允许同时高亮一行,Shift 键盘操作加鼠标操作依然可以高亮多行,因为这属于明显的区域选择行为。`activeRowType= multiple ` 表示允许鼠标点击同时高亮多行 */\n activeRowType: {\n type: String as PropType,\n default: '' as TdBaseTableProps['activeRowType'],\n },\n /** 已废弃。是否允许调整列宽。请更为使用 `resizable` */\n allowResizeColumnWidth: {\n type: Boolean,\n default: undefined,\n },\n /** 超出省略等所有浮层元素统一绑定到 `attach`,可根据实际情况调整挂载元素 */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 是否显示表格边框 */\n bordered: Boolean,\n /** 表格底部内容,可以用于自定义列设置等 */\n bottomContent: {\n type: [String, Function] as PropType,\n },\n /** 单元格数据为空时呈现的内容 */\n cellEmptyContent: {\n type: [String, Function] as PropType,\n },\n /** 列配置,泛型 T 指表格数据类型 */\n columns: {\n type: Array as PropType,\n default: (): TdBaseTableProps['columns'] => [],\n },\n /** 数据源,泛型 T 指表格数据类型 */\n data: {\n type: Array as PropType,\n default: (): TdBaseTableProps['data'] => [],\n },\n /** 是否禁用本地数据分页。当 `data` 数据长度超过分页大小时,会自动进行本地数据分页。如果 `disableDataPage` 设置为 true,则无论何时,都不会进行本地数据分页 */\n disableDataPage: Boolean,\n /** 默认重复按下 Space 键可取消当前行高亮,是否禁用取消 */\n disableSpaceInactiveRow: {\n type: Boolean,\n default: undefined,\n },\n /** 空表格呈现样式,支持全局配置 `GlobalConfigProvider` */\n empty: {\n type: [String, Function] as PropType,\n default: '' as TdBaseTableProps['empty'],\n },\n /** 首行内容,横跨所有列 */\n firstFullRow: {\n type: [String, Function] as PropType,\n },\n /** 固定行(冻结行),示例:[M, N],表示冻结表头 M 行和表尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows: {\n type: Array as PropType,\n },\n /** 表尾数据源,泛型 T 指表格数据类型 */\n footData: {\n type: Array as PropType,\n default: (): TdBaseTableProps['footData'] => [],\n },\n /** 已废弃。请更为使用 `footerAffixedBottom`。表尾吸底基于 Affix 组件开发,透传全部 Affix 组件属性。 */\n footerAffixProps: {\n type: Object as PropType,\n },\n /** 表尾吸底。使用该功能,需要非常注意表格是相对于哪一个父元素进行滚动。值为 `true`,则表示相对于整个窗口吸底。如果表格滚动的父元素不是整个窗口,请通过 `footerAffixedBottom.container` 调整固钉的吸顶范围。基于 Affix 组件开发,透传全部 Affix 组件属性 */\n footerAffixedBottom: {\n type: [Boolean, Object] as PropType,\n default: false as TdBaseTableProps['footerAffixedBottom'],\n },\n /** 表尾总结行 */\n footerSummary: {\n type: [String, Function] as PropType,\n },\n /** 已废弃。请更为使用 `headerAffixedTop`。表头吸顶基于 Affix 组件开发,透传全部 Affix 组件属性 */\n headerAffixProps: {\n type: Object as PropType,\n },\n /** 表头吸顶。使用该功能,需要非常注意表格是相对于哪一个父元素进行滚动。值为 `true`,表示相对于整个窗口吸顶。如果表格滚动的父元素不是整个窗口,请通过 `headerAffixedTop.container` 调整吸顶的位置。基于 Affix 组件开发,透传全部 Affix 组件属性。 */\n headerAffixedTop: {\n type: [Boolean, Object] as PropType,\n default: false as TdBaseTableProps['headerAffixedTop'],\n },\n /** 表格高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px。如果不是绝对固定表格高度,建议使用 `maxHeight` */\n height: {\n type: [String, Number] as PropType,\n },\n /** 滚动条吸底。基于 Affix 组件开发,透传全部 Affix 组件属性 */\n horizontalScrollAffixedBottom: {\n type: [Boolean, Object] as PropType,\n },\n /** 是否显示鼠标悬浮状态 */\n hover: Boolean,\n /** 键盘操作行显示悬浮效果,一般用于键盘操作行选中、行展开、行高亮等功能 */\n keyboardRowHover: {\n type: Boolean,\n default: true,\n },\n /** 尾行内容,横跨所有列 */\n lastFullRow: {\n type: [String, Function] as PropType,\n },\n /** 是否启用整个表格元素的懒加载,当页面滚动到可视区域后再渲染表格。注意和表格内部行滚动懒加载的区别,内部行滚动无论表格是否在可视区域都会默认渲染第一屏的行元素 */\n lazyLoad: Boolean,\n /** 加载中状态。值为 `true` 会显示默认加载中样式,可以通过 Function 和 插槽 自定义加载状态呈现内容和样式。值为 `false` 则会取消加载状态 */\n loading: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdBaseTableProps['loading'],\n },\n /** 透传加载组件全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 语言配置 */\n locale: {\n type: Object as PropType,\n },\n /** 表格最大高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px */\n maxHeight: {\n type: [String, Number] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。当 `data` 数据长度超过分页大小时,会自动对本地数据 `data` 进行排序,如果不希望对于 `data` 进行排序,可以设置 `disableDataPage = true` */\n pagination: {\n type: Object as PropType,\n },\n /** 分页吸底。基于 Affix 组件开发,透传全部 Affix 组件属性 */\n paginationAffixedBottom: {\n type: [Boolean, Object] as PropType,\n },\n /** 是否允许调整列宽,设置 `tableLayout=fixed` 效果更友好,此时不允许通过 CSS 设置 `table`元素宽度,也不允许设置 `tableContentWidth`。一般不建议在列宽调整场景使用 `tableLayout: auto`。如果想要配置宽度可调整的最小值和最大值,请使用 `column.resize`,示例:`columns: [{ resize: { minWidth: 120, maxWidth: 300 } }]`。
    默认规则:因列宽超出存在横向滚动条时,列宽调整仅影响当前列宽和总列宽;表格列较少没有横向滚动条时,列宽调整表现为自身宽度和相邻宽度变化 */\n resizable: Boolean,\n /** HTML 标签 `tr` 的属性。类型为 Function 时,参数说明:`params.row` 表示行数据;`params.rowIndex` 表示行下标;`params.type=body` 表示属性作用于 `tbody` 中的元素;`params.type=foot` 表示属性作用于 `tfoot` 中的元素。
    示例一:{ draggable: true },
    示例二:[{ draggable: true }, { title: '超出省略显示' }]。
    示例三:() => [{ draggable: true }] */\n rowAttributes: {\n type: [Object, Array, Function] as PropType,\n },\n /** 行类名,泛型 T 指表格数据类型。`params.row` 表示行数据;`params.rowIndex` 表示行下标;`params.type=body` 表示类名作用于 `tbody` 中的元素;`params.type= tfoot` 表示类名作用于 `tfoot` 中的元素 */\n rowClassName: {\n type: [String, Object, Array, Function] as PropType,\n },\n /** 唯一标识一行数据的字段名,来源于 `data` 中的字段。如果是字段嵌套多层,可以设置形如 `item.a.id` 的方法 */\n rowKey: {\n type: String,\n default: 'id',\n required: true,\n },\n /** 用于自定义合并单元格,泛型 T 指表格数据类型。示例:`({ row, col, rowIndex, colIndex }) => { rowspan: 2, colspan: 3 }` */\n rowspanAndColspan: {\n type: Function as PropType,\n },\n /** 用于自定义表尾的合并单元格,泛型 T 指表格数据类型。示例:`({ row, col, rowIndex, colIndex }) => { rowspan: 2, colspan: 3 }` */\n rowspanAndColspanInFooter: {\n type: Function as PropType,\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 是否显示表头 */\n showHeader: {\n type: Boolean,\n default: true,\n },\n /** 表格尺寸,支持全局配置 `GlobalConfigProvider`,默认全局配置值为 `medium` */\n size: {\n type: String as PropType,\n validator(val: TdBaseTableProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否显示斑马纹 */\n stripe: Boolean,\n /** 表格内容的总宽度,注意不是表格可见宽度。主要应用于 `table-layout: auto` 模式下的固定列显示。`tableContentWidth` 内容宽度的值必须大于表格可见宽度 */\n tableContentWidth: {\n type: String,\n default: '',\n },\n /** 表格布局方式,`` 元素原生属性。[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout)。注意,在列宽调整下场景只能使用 `fixed` 模式 */\n tableLayout: {\n type: String as PropType,\n default: 'fixed' as TdBaseTableProps['tableLayout'],\n validator(val: TdBaseTableProps['tableLayout']): boolean {\n if (!val) return true;\n return ['auto', 'fixed'].includes(val);\n },\n },\n /** 表格顶部内容,可以用于自定义列设置、顶部查询条件等 */\n topContent: {\n type: [String, Function] as PropType,\n },\n /** 行内容上下方向对齐 */\n verticalAlign: {\n type: String as PropType,\n default: 'middle' as TdBaseTableProps['verticalAlign'],\n validator(val: TdBaseTableProps['verticalAlign']): boolean {\n if (!val) return true;\n return ['top', 'middle', 'bottom'].includes(val);\n },\n },\n /** 高亮行发生变化时触发,泛型 T 指表格数据类型。参数 `activeRowList` 表示所有高亮行数据, `currentRowData` 表示当前操作行数据 */\n onActiveChange: Function as PropType,\n /** 键盘操作事件。开启行高亮功能后,会自动开启键盘操作功能,如:通过键盘(Shift)或鼠标操作连续选中高亮行时触发,一般用于处理行选中等批量操作,模拟操作系统区域选择行为 */\n onActiveRowAction: Function as PropType,\n /** 单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 列调整大小之后触发。`context.columnsWidth` 表示操作后各个列的宽度; */\n onColumnResizeChange: Function as PropType,\n /** 分页发生变化时触发。参数 newDataSource 表示分页后的数据。本地数据进行分页时,newDataSource 和源数据 data 会不一样。泛型 T 指表格数据类型 */\n onPageChange: Function as PropType,\n /** 行点击时触发,泛型 T 指表格数据类型 */\n onRowClick: Function as PropType,\n /** 行双击时触发,泛型 T 指表格数据类型 */\n onRowDblclick: Function as PropType,\n /** 鼠标在表格行按下时触发,泛型 T 指表格数据类型 */\n onRowMousedown: Function as PropType,\n /** 鼠标在表格行进入时触发,泛型 T 指表格数据类型 */\n onRowMouseenter: Function as PropType,\n /** 鼠标在表格行离开时触发,泛型 T 指表格数据类型 */\n onRowMouseleave: Function as PropType,\n /** 鼠标悬浮到行时触发,泛型 T 指表格数据类型 */\n onRowMouseover: Function as PropType,\n /** 鼠标在表格行按下又弹起时触发,泛型 T 指表格数据类型 */\n onRowMouseup: Function as PropType,\n /** 表格内容滚动时触发 */\n onScroll: Function as PropType,\n /** 已废弃。表格内容横向滚动时触发。请更为使用 `onScroll` 事件 */\n onScrollX: Function as PropType,\n /** 已废弃。表格内容纵向滚动时触发。当内容超出高度(height)或最大高度(max-height)时,会出现纵向滚动条。请更为使用 `onScroll` 事件 */\n onScrollY: Function as PropType,\n};\n","/**\n * 多级表头相关逻辑\n ** */\n\nimport { RowspanColspan } from '../type';\nimport { BaseTableColumns, ThRowspanAndColspan } from '../interface';\n\n// 获取节点深度,即表头总层级\nexport function getNodeDepth(columns: BaseTableColumns, depthMap: Map, depth = 1): number {\n let maxDepth = depth;\n // 树形结构递归已有较多函数上下文,此处不使用 forEach 迭代\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n depthMap.set(col, depth);\n if (col?.children?.length) {\n const deep = getNodeDepth(col.children, depthMap, depth + 1);\n if (deep > maxDepth) {\n maxDepth = deep;\n }\n }\n }\n return maxDepth;\n}\n\n// 或当前节点的叶子结点宽度\nexport function getChildrenNodeWidth(node: BaseTableColumns[0], count = 0) {\n let countNew = count;\n const childrenList = node?.children || [];\n for (let i = 0, len = childrenList.length; i < len; i++) {\n const item = childrenList[i];\n if (item.children) {\n countNew = getChildrenNodeWidth(item, countNew);\n } else {\n countNew += 1;\n }\n }\n return countNew;\n}\n\n// 获取多级表头对应的 colspan 和 rowspan,以及叶子节点\nexport function getThRowspanAndColspan(columns: BaseTableColumns) {\n const depthMap = new Map();\n const columnsDepth = getNodeDepth(columns, depthMap);\n const rowspanAndColspanMap: ThRowspanAndColspan = new Map();\n const loop = (nodes: BaseTableColumns, leafColumns: BaseTableColumns) => {\n for (let i = 0, len = nodes.length; i < len; i++) {\n const col = nodes[i];\n const rowspan = col.children ? 1 : columnsDepth - depthMap.get(col) + 1;\n const colspan = col.children ? getChildrenNodeWidth(col) : 1;\n // 避免存在 rowspan 或者 colspan 空属性\n const span: RowspanColspan = {};\n rowspan > 1 && (span.rowspan = rowspan);\n colspan > 1 && (span.colspan = colspan);\n rowspanAndColspanMap.set(col, span);\n if (col?.children?.length) {\n loop(col.children, leafColumns);\n } else {\n leafColumns.push(col);\n }\n }\n };\n const leafColumns: BaseTableColumns = [];\n loop(columns, leafColumns);\n return { rowspanAndColspanMap, leafColumns };\n}\n\n// 表头渲染所需的二维数据\nexport function getThList(columns: BaseTableColumns): Array {\n const loop = (nodes: BaseTableColumns, thRows: Array) => {\n let thRowData: BaseTableColumns = [];\n let children: BaseTableColumns = [];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n const thList = [node];\n thRowData = thRowData.concat(thList);\n if (node?.children?.length) {\n children = children.concat(node.children);\n }\n }\n if (children?.length) {\n loop(children, thRows);\n }\n thRows.push(thRowData);\n return thRowData;\n };\n let list: Array = [];\n loop(columns, list);\n list = list.reverse();\n return list;\n}\n","import { usePrefixClass } from '../../hooks/useConfig';\n\nexport default function useClassName() {\n const classPrefix = usePrefixClass();\n const classNames = {\n classPrefix: classPrefix.value,\n tableBaseClass: {\n table: `${classPrefix.value}-table`,\n columnResizableTable: `${classPrefix.value}-table--column-resizable`,\n overflowVisible: `${classPrefix.value}-table--overflow-visible`,\n body: `${classPrefix.value}-table__body`,\n content: `${classPrefix.value}-table__content`,\n topContent: `${classPrefix.value}-table__top-content`,\n bottomContent: `${classPrefix.value}-table__bottom-content`,\n paginationWrap: `${classPrefix.value}-table__pagination-wrap`,\n tdLastRow: `${classPrefix.value}-table__td-last-row`,\n tdFirstCol: `${classPrefix.value}-table__td-first-col`,\n thCellInner: `${classPrefix.value}-table__th-cell-inner`,\n tableRowEdit: `${classPrefix.value}-table--row-edit`,\n cellEditable: `${classPrefix.value}-table__cell--editable`,\n cellEditWrap: `${classPrefix.value}-table__cell-wrap`,\n bordered: `${classPrefix.value}-table--bordered`,\n striped: `${classPrefix.value}-table--striped`,\n hover: `${classPrefix.value}-table--hoverable`,\n loading: `${classPrefix.value}-table--loading`,\n rowspanAndColspan: `${classPrefix.value}-table--rowspan-colspan`,\n empty: `${classPrefix.value}-table__empty`,\n emptyRow: `${classPrefix.value}-table__empty-row`,\n headerFixed: `${classPrefix.value}-table--header-fixed`,\n columnFixed: `${classPrefix.value}-table--column-fixed`,\n widthOverflow: `${classPrefix.value}-table--width-overflow`,\n multipleHeader: `${classPrefix.value}-table--multiple-header`,\n footerAffixed: `${classPrefix.value}-table--footer-affixed`,\n horizontalBarAffixed: `${classPrefix.value}-table--horizontal-bar-affixed`,\n affixedHeader: `${classPrefix.value}-table--affixed-header`,\n affixedHeaderElm: `${classPrefix.value}-table__affixed-header-elm`,\n affixedFooterElm: `${classPrefix.value}-table__affixed-footer-elm`,\n affixedFooterWrap: `${classPrefix.value}-table__affixed-footer-wrap`,\n // 边框模式,固定表头,横向滚动时,右侧添加边线,分隔滚动条\n scrollbarDivider: `${classPrefix.value}-table__scroll-bar-divider`,\n // 当用户设置 height 为固定高度,为保证行元素铺满 table,则需设置 table 元素高度为 100%\n fullHeight: `${classPrefix.value}-table--full-height`,\n // 拖拽列时的标记线\n resizeLine: `${classPrefix.value}-table__resize-line`,\n obviousScrollbar: `${classPrefix.value}-table__scrollbar--obvious`,\n affixedHeaderWrap: `${classPrefix.value}-table__affixed-header-elm-wrap`,\n },\n\n tdAlignClasses: {\n left: `${classPrefix.value}-align-left`,\n right: `${classPrefix.value}-align-right`,\n center: `${classPrefix.value}-align-center`,\n },\n\n tableHeaderClasses: {\n header: `${classPrefix.value}-table__header`,\n thBordered: `${classPrefix.value}-table__header-th--bordered`,\n fixed: `${classPrefix.value}-table__header--fixed`,\n multipleHeader: `${classPrefix.value}-table__header--multiple`,\n },\n\n tableFooterClasses: {\n footer: `${classPrefix.value}-table__footer`,\n fixed: `${classPrefix.value}-table__footer--fixed`,\n },\n\n tableAlignClasses: {\n top: `${classPrefix.value}-vertical-align-top`,\n middle: `${classPrefix.value}-vertical-align-middle`,\n bottom: `${classPrefix.value}-vertical-align-bottom`,\n },\n\n tableRowFixedClasses: {\n top: `${classPrefix.value}-table__row--fixed-top`,\n bottom: `${classPrefix.value}-table__row--fixed-bottom`,\n firstBottom: `${classPrefix.value}-table__row--fixed-bottom-first`,\n withoutBorderBottom: `${classPrefix.value}-table__row--without-border-bottom`,\n },\n\n tableColFixedClasses: {\n left: `${classPrefix.value}-table__cell--fixed-left`,\n right: `${classPrefix.value}-table__cell--fixed-right`,\n lastLeft: `${classPrefix.value}-table__cell--fixed-left-last`,\n firstRight: `${classPrefix.value}-table__cell--fixed-right-first`,\n leftShadow: `${classPrefix.value}-table__content--scrollable-to-left`,\n rightShadow: `${classPrefix.value}-table__content--scrollable-to-right`,\n },\n\n tableLayoutClasses: {\n auto: `${classPrefix.value}-table--layout-auto`,\n fixed: `${classPrefix.value}-table--layout-fixed`,\n },\n\n tdEllipsisClass: `${classPrefix.value}-table-td--ellipsis`,\n\n // 行通栏,一列铺满整行\n tableFullRowClasses: {\n base: `${classPrefix.value}-table__row--full`,\n innerFullRow: `${classPrefix.value}-table__row-full-inner`,\n innerFullElement: `${classPrefix.value}-table__row-full-element`,\n firstFullRow: `${classPrefix.value}-table__first-full-row`,\n lastFullRow: `${classPrefix.value}-table__last-full-row`,\n },\n\n // 展开/收起行,全部类名\n tableExpandClasses: {\n iconBox: `${classPrefix.value}-table__expand-box`,\n iconCell: `${classPrefix.value}-table__expandable-icon-cell`,\n rowExpanded: `${classPrefix.value}-table__row--expanded`,\n rowFolded: `${classPrefix.value}-table__row--folded`,\n row: `${classPrefix.value}-table__expanded-row`,\n rowInner: `${classPrefix.value}-table__expanded-row-inner`,\n expanded: `${classPrefix.value}-table__row--expanded`,\n collapsed: `${classPrefix.value}-table__row--collapsed`,\n },\n\n // 排序功能,全部类名\n tableSortClasses: {\n sortable: `${classPrefix.value}-table__cell--sortable`,\n sortColumn: `${classPrefix.value}-table__sort-column`,\n title: `${classPrefix.value}-table__cell--title`,\n trigger: `${classPrefix.value}-table__cell--sort-trigger`,\n doubleIcon: `${classPrefix.value}-table__double-icons`,\n sortIcon: `${classPrefix.value}-table__sort-icon`,\n iconDirection: {\n asc: `${classPrefix.value}-table-sort-asc`,\n desc: `${classPrefix.value}-table-sort-desc`,\n },\n iconActive: `${classPrefix.value}-table__sort-icon--active`,\n iconDefault: `${classPrefix.value}-icon-sort--default`,\n },\n\n // 行选中功能,全部类名\n tableSelectedClasses: {\n selected: `${classPrefix.value}-table__row--selected`,\n disabled: `${classPrefix.value}-table__row--disabled`,\n checkCell: `${classPrefix.value}-table__cell-check`,\n },\n\n // 过滤功能,全部类名\n tableFilterClasses: {\n filterable: `${classPrefix.value}-table__cell--filterable`,\n popup: `${classPrefix.value}-table__filter-pop`,\n icon: `${classPrefix.value}-table__filter-icon`,\n popupContent: `${classPrefix.value}-table__filter-pop-content`,\n result: `${classPrefix.value}-table__filter-result`,\n inner: `${classPrefix.value}-table__row-filter-inner`,\n bottomButtons: `${classPrefix.value}-table__filter--bottom-buttons`,\n contentInner: `${classPrefix.value}-table__filter-pop-content-inner`,\n iconWrap: `${classPrefix.value}-table__filter-icon-wrap`,\n },\n\n // 通用类名\n asyncLoadingClass: `${classPrefix.value}-table__async-loading`,\n isFocusClass: `${classPrefix.value}-is-focus`,\n isLoadingClass: `${classPrefix.value}-is-loading`,\n isLoadMoreClass: `${classPrefix.value}-is-load-more`,\n\n // 树形结构类名\n tableTreeClasses: {\n col: `${classPrefix.value}-table__tree-col`,\n inlineCol: `${classPrefix.value}-table__tree-col--inline`,\n icon: `${classPrefix.value}-table__tree-op-icon`,\n leafNode: `${classPrefix.value}-table__tree-leaf-node`,\n },\n\n // 拖拽功能类名\n tableDraggableClasses: {\n rowDraggable: `${classPrefix.value}-table--row-draggable`,\n rowHandlerDraggable: `${classPrefix.value}-table--row-handler-draggable`,\n colDraggable: `${classPrefix.value}-table--col-draggable`,\n handle: `${classPrefix.value}-table__handle-draggable`,\n ghost: `${classPrefix.value}-table__ele--draggable-ghost`,\n chosen: `${classPrefix.value}-table__ele--draggable-chosen`,\n dragging: `${classPrefix.value}-table__ele--draggable-dragging`,\n dragSortTh: `${classPrefix.value}-table__th--drag-sort`,\n },\n\n virtualScrollClasses: {\n cursor: `${classPrefix.value}-table__virtual-scroll-cursor`,\n header: `${classPrefix.value}-table__virtual-scroll-header`,\n },\n\n positiveRotate90: `${classPrefix.value}-positive-rotate-90`,\n negativeRotate180: `${classPrefix.value}-negative-rotate-180`,\n };\n\n return classNames;\n}\n\nexport type TableClassName = ReturnType;\n","/** 超出省略显示 */\nimport { defineComponent, PropType, ref, computed, onMounted, onUpdated } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { AttachNode, TNode } from '../common';\nimport { renderContent } from '../utils/render-tnode';\nimport { isTextEllipsis } from '../utils/dom';\nimport TTooltip, { TooltipProps } from '../tooltip';\n\nexport interface EllipsisProps {\n content: string | TNode;\n default: string | TNode;\n tooltipContent: string | number | TNode;\n placement: TooltipProps['placement'];\n attach?: AttachNode;\n tooltipProps: TooltipProps;\n zIndex: number;\n}\n\nexport default defineComponent({\n name: 'TEllipsis',\n\n props: {\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content,可以单独自定义浮层内容,无需和触发元素保持一致 */\n tooltipContent: {\n type: [String, Number, Function] as PropType,\n },\n /** 浮层位置 */\n placement: String as PropType,\n /** 挂载元素 */\n attach: [String, Function] as PropType,\n /** 透传 Tooltip 组件属性 */\n tooltipProps: Object as PropType,\n zIndex: Number,\n overlayClassName: String,\n classPrefix: {\n type: String,\n default: 't',\n },\n },\n\n setup(props) {\n const root = ref();\n\n // 用于判断是否需要渲染 Tooltip\n const flag = ref(false);\n const isOverflow = ref(false);\n\n const ellipsisClasses = computed(() => [\n `${props.classPrefix}-table__ellipsis`,\n `${props.classPrefix}-text-ellipsis`,\n ]);\n\n const innerEllipsisClassName = computed(() => [\n `${props.classPrefix}-table__ellipsis-content`,\n props.overlayClassName,\n ]);\n\n onMounted(() => {\n isOverflow.value = isTextEllipsis(root.value);\n });\n\n onUpdated(() => {\n isOverflow.value = isTextEllipsis(root.value);\n });\n\n // 当表格数据量大时,不希望默认渲染全量的 Tooltip,期望在用户 mouseenter 的时候再显示,通过 flag 判断\n const onTriggerMouseenter = () => {\n if (!root.value) return;\n flag.value = true;\n };\n\n const onTriggerMouseleave = () => {\n if (!root.value) return;\n };\n const handleVisibleChange = (v: boolean) => {\n if (!v) flag.value = false;\n };\n // 使用 debounce 有两个原因:1. 避免 safari/firefox 等浏览器不显示省略浮层;2. 避免省略列快速滚动时,出现一堆的省略浮层\n const onMouseAround = debounce((e: MouseEvent) => {\n e.type === 'mouseleave' ? onTriggerMouseleave() : onTriggerMouseenter();\n }, 80);\n\n return {\n flag,\n root,\n isOverflow,\n ellipsisClasses,\n innerEllipsisClassName,\n onMouseAround,\n handleVisibleChange,\n };\n },\n\n render() {\n const cellNode = renderContent(this, 'default', 'content');\n\n const ellipsisContent = (\n \n {cellNode}\n \n );\n let content = null;\n const tooltipProps = this.tooltipProps as EllipsisProps['tooltipProps'];\n if (this.isOverflow && this.flag) {\n const rProps = {\n content: (this.tooltipContent as string) || (() => cellNode),\n destroyOnClose: true,\n zIndex: this.zIndex,\n attach: this.attach,\n placement: this.placement,\n overlayClassName: tooltipProps?.overlayClassName\n ? this.innerEllipsisClassName.concat(tooltipProps.overlayClassName)\n : this.innerEllipsisClassName,\n onVisibleChange: this.handleVisibleChange,\n ...tooltipProps,\n };\n content = {ellipsisContent};\n } else {\n content = ellipsisContent;\n }\n return content;\n },\n});\n","import { SetupContext, computed, h } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { BaseTableCol, PrimaryTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { getThRowspanAndColspan, getThList } from './useMultiHeader';\nimport useClassName from './useClassName';\nimport { TNodeReturnValue } from '../../common';\nimport { BaseTableColumns } from '../interface';\nimport TEllipsis from '../ellipsis';\n\n// 渲染表头的通用方法\nexport function renderTitle(slots: SetupContext['slots'], col: BaseTableColumns[0], index: number) {\n const params = { col, colIndex: index };\n if (isFunction(col.title)) {\n return col.title(h, params);\n }\n if (isString(col.title) && slots[col.title]) {\n return slots[col.title](params);\n }\n if (isFunction(col.render)) {\n return (\n col.render(h, {\n ...params,\n type: 'title',\n row: {},\n rowIndex: -1,\n }) || col.title\n );\n }\n return col.title;\n}\n\nexport default function useTableHeader(props: TdBaseTableProps) {\n const { tableSortClasses, tableFilterClasses } = useClassName();\n // 一次性获取 colspan 和 rowspan 可以避免其他数据更新导致的重复计算\n const spansAndLeafNodes = computed(() => getThRowspanAndColspan(props.columns));\n // 表头二维数据\n const thList = computed(() => getThList(props.columns));\n const isMultipleHeader = computed(() => thList.value.length > 1);\n\n const renderTitleWidthIcon = (\n [title, sortIcon, filterIcon]: TNodeReturnValue[],\n col: PrimaryTableCol,\n colIndex: number,\n ellipsisTitle: BaseTableCol['ellipsisTitle'],\n attach: HTMLElement,\n extra?: {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n },\n ) => {\n const classes = {\n [tableSortClasses.sortable]: sortIcon,\n [tableFilterClasses.filterable]: filterIcon,\n };\n const content = isFunction(ellipsisTitle) ? ellipsisTitle(h, { col, colIndex }) : undefined;\n const isEllipsis = ellipsisTitle !== undefined ? Boolean(ellipsisTitle) : Boolean(col.ellipsis);\n return (\n
    \n
    \n {isEllipsis ? (\n attach : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof ellipsisTitle === 'object' ? ellipsisTitle : undefined}\n classPrefix={extra?.classPrefix}\n overlayClassName={extra?.ellipsisOverlayClassName}\n >\n {title}\n \n ) : (\n
    {title}
    \n )}\n {Boolean(sortIcon || filterIcon) && (\n
    \n {sortIcon}\n {filterIcon}\n
    \n )}\n
    \n
    \n );\n };\n\n return {\n thList,\n isMultipleHeader,\n spansAndLeafNodes,\n renderTitleWidthIcon,\n };\n}\n","/**\n * important info: only resize happened, th width calculating allowed\n * 验证场景:多级表头调整叶子结点列宽、吸顶表头调整列宽、列数量发生变化、表格未超出、表格已超出\n * - 固定列,调整列宽,需要更新固定位置;右侧固定列,调整列宽,需特殊处理\n * - 当表格内容没有超出时,即没有出现横向滚动条时,此时认为表格有足够的列宽呈现内容,修改宽度为相邻宽度调整\n * - 当表格内容超出,出现横向滚动条时,会自动调整当前列宽和表格总列宽,不影响相邻列宽\n */\nimport { ref, Ref, reactive, onMounted } from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { BaseTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { on, off } from '../../utils/dom';\n\nconst DEFAULT_MIN_WIDTH = 80;\nconst DEFAULT_MAX_WIDTH = 600;\n// 当离右边框的距离不超过 8 时,显示拖拽图标\nconst distance = 8;\n\nexport default function useColumnResize(params: {\n isWidthOverflow: Ref;\n tableContentRef: Ref;\n showColumnShadow: {\n left: boolean;\n right: boolean;\n };\n getThWidthList: (type?: 'default' | 'calculate') => { [colKeys: string]: number };\n updateThWidthList: (data: { [colKey: string]: number }) => void;\n setTableElmWidth: (width: number) => void;\n updateTableAfterColumnResize: () => void;\n onColumnResizeChange: TdBaseTableProps['onColumnResizeChange'];\n}) {\n const {\n isWidthOverflow,\n tableContentRef,\n showColumnShadow,\n getThWidthList,\n updateThWidthList,\n setTableElmWidth,\n updateTableAfterColumnResize,\n onColumnResizeChange,\n } = params;\n const resizeLineRef = ref();\n const effectColMap = ref<{ [colKey: string]: any }>({});\n const leafColumns = ref([]);\n let originalSelectStart: (this: GlobalEventHandlers, ev: Event) => any;\n let originalDragStart: (this: GlobalEventHandlers, ev: Event) => any;\n\n onMounted(() => {\n const hasDocument = typeof document !== 'undefined';\n originalSelectStart = hasDocument ? document.onselectstart : null;\n originalDragStart = hasDocument ? document.ondragstart : null;\n });\n\n const getSiblingResizableCol = (nodes: BaseTableCol[], index: number, type: 'prev' | 'next') => {\n let i = index;\n while (nodes[i] && nodes[i].resizable === false) {\n if (type === 'next') {\n i += 1;\n } else {\n i -= 1;\n }\n }\n return nodes[i];\n };\n\n // 递归查找列宽度变化后,受影响的相关列。前后非禁用调整列宽的列\n const setEffectColMap = (nodes: BaseTableCol[], parent: BaseTableCol | null) => {\n if (!nodes) return;\n leafColumns.value = nodes;\n nodes.forEach((n, index) => {\n const prevNode = getSiblingResizableCol(nodes, index - 1, 'prev');\n const nextNode = getSiblingResizableCol(nodes, index + 1, 'next');\n const parentPrevCol = parent ? effectColMap.value[parent.colKey].prev : nextNode;\n const parentNextCol = parent ? effectColMap.value[parent.colKey].next : prevNode;\n const prev = index === 0 ? parentPrevCol : prevNode;\n const next = index === nodes.length - 1 ? parentNextCol : nextNode;\n effectColMap.value[n.colKey] = {\n prev,\n next,\n current: {\n prevSibling: getSiblingResizableCol(nodes, index - 1, 'prev'),\n nextSibling: getSiblingResizableCol(nodes, index + 1, 'next'),\n },\n };\n setEffectColMap(n.children, n);\n });\n };\n\n const resizeLineParams = {\n isDragging: false,\n draggingCol: null as HTMLElement,\n draggingStart: 0,\n // 列宽调整类型:影响右侧列宽度、影响左侧列宽度、或者仅影响自身\n effectCol: 'next' as 'next' | 'prev',\n };\n\n const resizeLineStyle = reactive({\n display: 'none',\n height: '10px',\n left: '10px',\n bottom: '0',\n });\n\n // 当前列是否配置右侧固定并且处于固定激活状态\n const isColRightFixActive = (col: BaseTableCol) => col.fixed === 'right' && showColumnShadow.right;\n\n // 频繁事件,仅用于计算是否在表头显示拖拽鼠标形态\n const onColumnMouseover = (e: MouseEvent, col: BaseTableCol) => {\n // calculate mouse cursor before drag start\n if (!resizeLineRef.value || resizeLineParams.isDragging || !e.target) return;\n const target = (e.target as HTMLElement).closest('th');\n // 判断是否为叶子阶段,仅叶子结点允许拖拽\n const colKey = target.getAttribute('data-colkey');\n if (!leafColumns.value.find((t) => t.colKey === colKey)) return;\n const targetBoundRect = target.getBoundingClientRect();\n const thRightCursor = targetBoundRect.right - e.pageX <= distance;\n const thLeftCursor = e.pageX - targetBoundRect.left <= distance;\n const isFixedToRight = isColRightFixActive(col);\n if (thRightCursor || isFixedToRight) {\n const colResizable = col.resizable ?? true;\n if (colResizable) {\n target.style.cursor = thRightCursor || (isFixedToRight && thLeftCursor) ? 'col-resize' : '';\n const isCurrent = (thRightCursor && !isFixedToRight) || (isFixedToRight && thLeftCursor);\n resizeLineParams.draggingCol = isCurrent ? target : (target.nextElementSibling as HTMLElement);\n resizeLineParams.effectCol = 'next';\n return;\n }\n } else if (thLeftCursor) {\n const prevEl = target.previousElementSibling;\n if (prevEl) {\n const effectPrevCol = effectColMap.value[col.colKey]?.prev;\n const colResizable = effectPrevCol?.resizable ?? true;\n if (colResizable) {\n target.style.cursor = 'col-resize';\n resizeLineParams.draggingCol = prevEl as HTMLElement;\n resizeLineParams.effectCol = 'prev';\n return;\n }\n }\n }\n // 重置记录值\n target.style.cursor = '';\n resizeLineParams.draggingCol = null;\n resizeLineParams.effectCol = null;\n };\n\n const getMinMaxColWidth = (targetCol: BaseTableCol) => {\n const propMinWidth = isNumber(targetCol.minWidth) ? targetCol.minWidth : parseInt(targetCol.minWidth || '0', 10);\n return {\n minColWidth: Math.max(targetCol.resize?.minWidth || DEFAULT_MIN_WIDTH, propMinWidth),\n maxColWidth: targetCol.resize?.maxWidth || DEFAULT_MAX_WIDTH,\n };\n };\n\n const getNormalResizeInfo = (\n col: BaseTableCol,\n effectPrevCol: BaseTableCol,\n targetBoundRect: DOMRect,\n tableBoundRect: DOMRect,\n ) => {\n const resizeLinePos = targetBoundRect.right - tableBoundRect.left;\n const colLeft = targetBoundRect.left - tableBoundRect.left;\n const targetCol = resizeLineParams.effectCol === 'next' ? col : effectPrevCol;\n const { minColWidth, maxColWidth } = getMinMaxColWidth(targetCol);\n return {\n resizeLinePos,\n minResizeLineLeft: colLeft + minColWidth,\n maxResizeLineLeft: colLeft + maxColWidth,\n };\n };\n\n const getFixedToRightResizeInfo = (\n target: HTMLElement,\n col: BaseTableCol,\n effectPrevCol: BaseTableCol,\n targetBoundRect: DOMRect,\n tableBoundRect: DOMRect,\n ) => {\n const resizeLinePos = targetBoundRect.left - tableBoundRect.left;\n const targetCol = target.dataset.colkey === col.colKey ? col : effectPrevCol;\n const colLeft = targetBoundRect.left - tableBoundRect.left;\n const { minColWidth, maxColWidth } = getMinMaxColWidth(targetCol);\n return {\n resizeLinePos,\n minResizeLineLeft: colLeft + (targetBoundRect.width - maxColWidth),\n maxResizeLineLeft: colLeft + (targetBoundRect.width - minColWidth),\n };\n };\n\n const getFixedToLeftResizeInfo = (targetBoundRect: DOMRect, tableBoundRect: DOMRect) => {\n const resizeLinePos = targetBoundRect.left - tableBoundRect.left;\n const colLeft = targetBoundRect.left - tableBoundRect.left;\n return {\n resizeLinePos,\n minResizeLineLeft: colLeft,\n maxResizeLineLeft: colLeft,\n };\n };\n\n const getTotalTableWidth = (thWidthList: { [key: string]: number }): number => {\n let tableWidth = 0;\n leafColumns.value.forEach((col) => {\n tableWidth += thWidthList[col.colKey];\n });\n return tableWidth;\n };\n const getSiblingColCanResizable = (\n newThWidthList: { [key: string]: number },\n effectNextCol: BaseTableCol,\n distance: number,\n index: number,\n ) => {\n let isWidthAbnormal = true;\n if (effectNextCol) {\n const { minColWidth, maxColWidth } = getMinMaxColWidth(effectNextCol);\n const targetNextColWidth = newThWidthList[effectNextCol.colKey] + distance;\n isWidthAbnormal = targetNextColWidth < minColWidth || targetNextColWidth > maxColWidth;\n }\n return !(isWidthAbnormal || isWidthOverflow.value || index === leafColumns.value.length - 1);\n };\n const getOtherResizeInfo = (\n col: BaseTableCol,\n effectPrevCol: BaseTableCol,\n targetBoundRect: DOMRect,\n tableBoundRect: DOMRect,\n ) =>\n effectPrevCol\n ? getNormalResizeInfo(col, effectPrevCol, targetBoundRect, tableBoundRect)\n : getFixedToLeftResizeInfo(targetBoundRect, tableBoundRect);\n\n // 调整表格列宽\n const onColumnMousedown = (e: MouseEvent, col: BaseTableCol, index: number) => {\n if (!resizeLineParams.draggingCol) return;\n const target = resizeLineParams.draggingCol;\n const targetBoundRect = target.getBoundingClientRect();\n const tableBoundRect = tableContentRef.value?.getBoundingClientRect();\n const effectNextCol = effectColMap.value[col.colKey]?.next;\n const effectPrevCol = effectColMap.value[col.colKey]?.prev;\n const { resizeLinePos, minResizeLineLeft, maxResizeLineLeft } = isColRightFixActive(col)\n ? getFixedToRightResizeInfo(target, col, effectNextCol, targetBoundRect, tableBoundRect)\n : getOtherResizeInfo(col, effectNextCol, targetBoundRect, tableBoundRect);\n\n // 开始拖拽,记录下鼠标起始位置\n resizeLineParams.isDragging = true;\n resizeLineParams.draggingStart = e.x;\n\n // 初始化 resizeLine 标记线\n if (resizeLineRef?.value) {\n resizeLineStyle.display = 'block';\n resizeLineStyle.height = `${tableBoundRect.bottom - targetBoundRect.top}px`;\n resizeLineStyle.left = `${resizeLinePos}px`;\n const parent = tableContentRef.value.parentElement.getBoundingClientRect();\n resizeLineStyle.bottom = `${parent.bottom - tableBoundRect.bottom}px`;\n }\n\n // 结束拖拽,更新列宽。拖拽时鼠标可能会超出 table 范围,需要给 document 绑定拖拽相关事件;\n const onDragEnd = () => {\n if (!resizeLineParams.isDragging) return;\n const moveDistance = resizeLinePos - parseFloat(resizeLineStyle.left) || 0;\n /**\n * 计算列宽\n * - 若表格宽度已经超出,存在横向滚动,则直接改变当前列宽,也意味着改变表格总宽度\n * - 操作边框右侧,改变当前列和上一列;若上一列禁用宽度调整,则改变上一列的上一列,依次往前寻找\n * - 操作边框左侧,改变当前列和下一列;若下一列禁用宽度调整,则改变下一列的下一列,依次往后寻找\n */\n const thWidthList = getThWidthList('calculate');\n const currentCol = effectColMap.value[col.colKey]?.current;\n if (!currentCol) return;\n const currentSibling = resizeLineParams.effectCol === 'next' ? currentCol.nextSibling : currentCol.prevSibling;\n // 多行表头,列宽为最后一层的宽度,即叶子结点宽度\n const newThWidthList = { ...thWidthList };\n // 当前列不允许修改宽度,就调整相邻列的宽度\n const tmpCurrentCol = col.resizable !== false ? col : currentSibling;\n // 是否允许调整后一列的列宽:列宽未超出时,满足后一列设置的最大最小值时且并非是最后一列(最后一列的右侧拉伸会认为是表格整体宽度调整)\n const rightCol = resizeLineParams.effectCol === 'next' ? currentCol.nextSibling : col;\n const canResizeSiblingColWidth = getSiblingColCanResizable(newThWidthList, rightCol, moveDistance, index);\n\n if (resizeLineParams.effectCol === 'next') {\n // 右侧激活态的固定列,需特殊调整\n if (isColRightFixActive(col)) {\n // 如果不相同,则表示改变相临的右侧列宽\n if (target.dataset.colkey !== col.colKey) {\n newThWidthList[effectNextCol.colKey] += moveDistance;\n } else {\n newThWidthList[tmpCurrentCol.colKey] += moveDistance;\n }\n } else {\n // 非右侧激活态的固定列\n newThWidthList[tmpCurrentCol.colKey] -= moveDistance;\n if (canResizeSiblingColWidth) {\n newThWidthList[effectNextCol.colKey] += moveDistance;\n }\n }\n } else if (resizeLineParams.effectCol === 'prev') {\n if (canResizeSiblingColWidth) {\n newThWidthList[tmpCurrentCol.colKey] += moveDistance;\n }\n effectPrevCol && (newThWidthList[effectPrevCol.colKey] -= moveDistance);\n }\n updateThWidthList(newThWidthList);\n const tableWidth = getTotalTableWidth(newThWidthList);\n setTableElmWidth(Math.round(tableWidth));\n updateTableAfterColumnResize();\n\n // 恢复设置\n resizeLineParams.isDragging = false;\n resizeLineParams.draggingCol = null;\n resizeLineParams.effectCol = null;\n target.style.cursor = '';\n resizeLineStyle.display = 'none';\n resizeLineStyle.left = '0';\n off(document, 'mouseup', onDragEnd);\n off(document, 'mousemove', onDragOver);\n document.onselectstart = originalSelectStart;\n document.ondragstart = originalDragStart;\n onColumnResizeChange?.({ columnsWidth: newThWidthList });\n };\n\n // 注意前后两列最小和最大宽度限制\n const onDragOver = (e: MouseEvent) => {\n if (resizeLineParams.isDragging) {\n const left = resizeLinePos + e.x - resizeLineParams.draggingStart;\n resizeLineStyle.left = `${Math.min(Math.max(left, minResizeLineLeft), maxResizeLineLeft)}px`;\n }\n };\n\n on(document, 'mouseup', onDragEnd);\n on(document, 'mousemove', onDragOver);\n\n // 禁用鼠标的选中文字和拖放\n document.onselectstart = () => false;\n document.ondragstart = () => false;\n };\n\n return {\n resizeLineRef,\n resizeLineStyle,\n onColumnMouseover,\n onColumnMousedown,\n setEffectColMap,\n };\n}\n","import {\n ref,\n reactive,\n watch,\n toRefs,\n SetupContext,\n onMounted,\n computed,\n ComputedRef,\n onBeforeUnmount,\n Ref,\n} from 'vue';\nimport { get } from 'lodash-es';\nimport { debounce } from 'lodash-es';\nimport { xorWith } from 'lodash-es';\nimport log from '@tdesign/common-js/log/index';\nimport { ClassName, Styles } from '../../common';\nimport { BaseTableCol, BaseTableInstanceFunctions, TableRowData, TdBaseTableProps } from '../type';\nimport { getScrollbarWidthWithCSS } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport { on, off } from '../../utils/dom';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../interface';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { pick } from 'lodash-es';\n\n// 固定列相关类名处理\nexport function getColumnFixedStyles(\n col: TdBaseTableProps['columns'][0],\n index: number,\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableColFixedClasses: TableColFixedClasses,\n): { style?: Styles; classes?: ClassName } {\n const fixedPos = rowAndColFixedPosition?.get(col.colKey || index);\n if (!fixedPos) return {};\n const thClasses = {\n [tableColFixedClasses.left]: col.fixed === 'left',\n [tableColFixedClasses.right]: col.fixed === 'right',\n [tableColFixedClasses.lastLeft]: col.fixed === 'left' && fixedPos.lastLeftFixedCol,\n [tableColFixedClasses.firstRight]: col.fixed === 'right' && fixedPos.firstRightFixedCol,\n };\n const thStyles = {\n left: col.fixed === 'left' ? `${fixedPos.left}px` : undefined,\n right: col.fixed === 'right' ? `${fixedPos.right}px` : undefined,\n };\n return {\n style: thStyles,\n classes: thClasses,\n };\n}\n\n// 固定行相关类名处理\nexport function getRowFixedStyles(\n rowId: string | number,\n rowIndex: number,\n rowLength: number,\n fixedRows: TdBaseTableProps['fixedRows'],\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableRowFixedClasses: TableRowFixedClasses,\n // 和虚拟滚动搭配使用时,需要增加 style 的偏移量\n virtualTranslateY = 0,\n): { style: Styles; classes: ClassName } {\n if (!fixedRows || !fixedRows.length) return { style: undefined, classes: undefined };\n const fixedTop = rowIndex < fixedRows[0];\n const fixedBottom = rowIndex > rowLength - 1 - fixedRows[1];\n const firstFixedBottomRow = rowLength - fixedRows[1];\n const fixedPos = rowAndColFixedPosition?.get(rowId) || {};\n const rowClasses = {\n [tableRowFixedClasses.top]: fixedTop,\n [tableRowFixedClasses.bottom]: fixedBottom,\n [tableRowFixedClasses.firstBottom]: rowIndex === firstFixedBottomRow,\n [tableRowFixedClasses.withoutBorderBottom]: rowIndex === firstFixedBottomRow - 1,\n };\n const rowStyles = {\n top: fixedTop ? `${fixedPos.top - virtualTranslateY}px` : undefined,\n bottom: fixedBottom ? `${fixedPos.bottom + virtualTranslateY}px` : undefined,\n };\n return {\n style: rowStyles,\n classes: rowClasses,\n };\n}\n\nexport default function useFixed(\n props: TdBaseTableProps,\n context: SetupContext,\n finalColumns: ComputedRef[]>,\n affixRef: Record,\n) {\n const {\n columns,\n tableLayout,\n tableContentWidth,\n fixedRows,\n firstFullRow,\n lastFullRow,\n maxHeight,\n headerAffixedTop,\n footerAffixedBottom,\n bordered,\n resizable,\n allowResizeColumnWidth,\n } = toRefs(props);\n const data = ref([]);\n const tableRef = ref();\n const tableContentRef = ref();\n const isFixedHeader = ref(false);\n const isWidthOverflow = ref(false);\n const tableElmRef = ref();\n // CSS 样式设置了固定 6px\n const scrollbarWidth = ref(6);\n // 固定列、固定表头、固定表尾等内容的位置信息\n const rowAndColFixedPosition = ref(new Map());\n const showColumnShadow = reactive({\n left: false,\n right: false,\n });\n // 虚拟滚动不能使用 CSS sticky 固定表头\n const virtualScrollHeaderPos = ref<{ left: number; top: number }>({ left: 0, top: 0 });\n const tableWidth = ref(0);\n const tableElmWidth = ref(0);\n const thWidthList = ref<{ [colKey: string]: number }>({});\n\n const isFixedColumn = ref(false);\n const isFixedRightColumn = ref(false);\n const isFixedLeftColumn = ref(false);\n\n const columnResizable = computed(() => allowResizeColumnWidth.value ?? resizable.value ?? false);\n\n // 没有表头吸顶,没有虚拟滚动,则不需要表头宽度计算\n const notNeedThWidthList = computed(\n () =>\n !(\n props.headerAffixedTop ||\n props.footerAffixedBottom ||\n props.horizontalScrollAffixedBottom ||\n props.scroll?.type === 'virtual'\n ),\n );\n\n function setUseFixedTableElmRef(val: HTMLTableElement) {\n tableElmRef.value = val;\n }\n\n function getColumnMap(\n columns: BaseTableCol[],\n map: RowAndColFixedPosition = new Map(),\n levelNodes: FixedColumnInfo[][] = [],\n level = 0,\n parent?: FixedColumnInfo,\n ) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (['left', 'right'].includes(col.fixed)) {\n isFixedColumn.value = true;\n }\n if (col.fixed === 'right') {\n isFixedRightColumn.value = true;\n }\n if (col.fixed === 'left') {\n isFixedLeftColumn.value = true;\n }\n const key = col.colKey || i;\n const columnInfo: FixedColumnInfo = { col, parent, index: i };\n map.set(key, columnInfo);\n if (col.children?.length) {\n getColumnMap(col.children, map, levelNodes, level + 1, columnInfo);\n }\n if (levelNodes[level]) {\n levelNodes[level].push(columnInfo);\n } else {\n // eslint-disable-next-line no-param-reassign\n levelNodes[level] = [columnInfo];\n }\n }\n return {\n newColumnsMap: map,\n levelNodes,\n };\n }\n\n const setFixedLeftPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.fixed === 'right') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i - 1;\n while (lastColIndex >= 0 && columns[lastColIndex].fixed !== 'left') {\n lastColIndex -= 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === 0 ? parent?.left || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i - 1);\n if (colInfo) {\n colInfo.left = (lastColInfo?.left || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedLeftPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n const setFixedRightPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n if (col.fixed === 'left') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i + 1;\n while (lastColIndex < columns.length && columns[lastColIndex].fixed !== 'right') {\n lastColIndex += 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === columns.length - 1 ? parent?.right || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i + 1);\n if (colInfo) {\n colInfo.right = (lastColInfo?.right || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedRightPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n // 获取固定列位置信息。先获取节点宽度,再计算\n const setFixedColPosition = (trList: HTMLCollection, initialColumnMap: RowAndColFixedPosition) => {\n if (!trList) return;\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n if (!colKey) {\n log.warn('TDesign Table', `${th.innerText} missing colKey. colKey is required for fixed column feature.`);\n }\n const obj = initialColumnMap.get(colKey || j);\n if (obj?.col?.fixed) {\n initialColumnMap.set(colKey, { ...obj, width: th.getBoundingClientRect().width });\n }\n }\n }\n setFixedLeftPos(columns.value, initialColumnMap);\n setFixedRightPos(columns.value, initialColumnMap);\n };\n\n // 设置固定行位置信息 top/bottom\n const setFixedRowPosition = (\n trList: HTMLCollection,\n initialColumnMap: RowAndColFixedPosition,\n thead: HTMLTableSectionElement,\n tfoot: HTMLTableSectionElement,\n ) => {\n const [fixedTopRows, fixedBottomRows] = fixedRows.value || [];\n const { data, rowKey = 'id' } = props;\n for (let i = 0; i < fixedTopRows; i++) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i - 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === 0) {\n defaultBottom = thead?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.top = (lastRowInfo.top || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n for (let i = data.length - 1; i >= data.length - fixedBottomRows; i--) {\n // 当虚拟滚动的时候,尾部固定行并非对应数据的 index,需要进行倒推计算\n const tr = trList[trList.length - (data.length - i)] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i + 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === data.length - 1) {\n defaultBottom = tfoot?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.bottom = (lastRowInfo.bottom || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n };\n\n const updateRowAndColFixedPosition = (tableContentElm: HTMLElement, initialColumnMap: RowAndColFixedPosition) => {\n rowAndColFixedPosition.value.clear();\n if (!tableContentElm) return;\n const thead = tableContentElm.querySelector('thead');\n // 处理固定列\n thead && setFixedColPosition(thead.children, initialColumnMap);\n // 处理冻结行\n const tbody = tableContentElm.querySelector('tbody');\n const tfoot = tableContentElm.querySelector('tfoot');\n tbody && setFixedRowPosition(tbody.children, initialColumnMap, thead, tfoot);\n // 更新最终 Map\n rowAndColFixedPosition.value = initialColumnMap;\n };\n\n let shadowLastScrollLeft: number;\n const updateColumnFixedShadow = (target: HTMLElement, extra?: { skipScrollLimit?: boolean }) => {\n if (!isFixedColumn.value || !target) return;\n const { scrollLeft } = target;\n // 只有左右滚动,需要更新固定列阴影\n if (shadowLastScrollLeft === scrollLeft && (!extra || !extra.skipScrollLimit)) return;\n shadowLastScrollLeft = scrollLeft;\n const isShowRight = target.clientWidth + scrollLeft < target.scrollWidth;\n const isShowLeft = scrollLeft > 0;\n if (showColumnShadow.left === isShowLeft && showColumnShadow.right === isShowRight) return;\n showColumnShadow.left = isShowLeft && isFixedLeftColumn.value;\n showColumnShadow.right = isShowRight && isFixedRightColumn.value;\n };\n\n // 多级表头场景较为复杂:为了滚动的阴影效果,需要知道哪些列是边界列,左侧固定列的最后一列,右侧固定列的第一列,每一层表头都需要兼顾\n const setIsLastOrFirstFixedCol = (levelNodes: FixedColumnInfo[][]) => {\n for (let t = 0; t < levelNodes.length; t++) {\n const nodes = levelNodes[t];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const colMapInfo = nodes[i];\n const nextColMapInfo = nodes[i + 1];\n const { parent } = colMapInfo;\n const isParentLastLeftFixedCol = !parent || parent?.lastLeftFixedCol;\n if (isParentLastLeftFixedCol && colMapInfo.col.fixed === 'left' && nextColMapInfo?.col.fixed !== 'left') {\n colMapInfo.lastLeftFixedCol = true;\n }\n const lastColMapInfo = nodes[i - 1];\n const isParentFirstRightFixedCol = !parent || parent?.firstRightFixedCol;\n if (isParentFirstRightFixedCol && colMapInfo.col.fixed === 'right' && lastColMapInfo?.col.fixed !== 'right') {\n colMapInfo.firstRightFixedCol = true;\n }\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const updateFixedStatus = () => {\n const { newColumnsMap, levelNodes } = getColumnMap(columns.value);\n setIsLastOrFirstFixedCol(levelNodes);\n const timer = setTimeout(() => {\n if (isFixedColumn.value || fixedRows.value?.length) {\n updateRowAndColFixedPosition(tableContentRef.value, newColumnsMap);\n }\n clearTimeout(timer);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n };\n\n const updateFixedHeader = () => {\n const timer = setTimeout(() => {\n if (!tableContentRef.value) return;\n isFixedHeader.value = tableContentRef.value.scrollHeight > tableContentRef.value.clientHeight;\n isWidthOverflow.value = tableContentRef.value.scrollWidth > tableContentRef.value.clientWidth;\n const pos = tableContentRef.value.getBoundingClientRect();\n virtualScrollHeaderPos.value = {\n top: pos.top,\n left: pos.left,\n };\n clearTimeout(timer);\n }, 0);\n };\n\n const setTableElmWidth = (width: number) => {\n if (tableElmWidth.value === width) return;\n tableElmWidth.value = width;\n };\n\n const updateTableWidth = () => {\n const rect = tableContentRef.value?.getBoundingClientRect();\n if (!rect) return;\n // 存在纵向滚动条,且固定表头时,需去除滚动条宽度\n const reduceWidth = isFixedHeader.value ? scrollbarWidth.value : 0;\n tableWidth.value = rect.width - reduceWidth - (props.bordered ? 1 : 0);\n const elmRect = tableElmRef?.value?.getBoundingClientRect();\n elmRect?.width && setTableElmWidth(elmRect.width);\n };\n\n const updateAffixPosition = () => {\n // 在表格高度变化的时候 需要手动调整affix的位置 因为affix本身无法监听到这些变化触发重新计算\n affixRef.paginationAffixRef.value?.handleScroll?.();\n affixRef.horizontalScrollAffixRef.value?.handleScroll?.();\n affixRef.headerTopAffixRef.value?.handleScroll?.();\n affixRef.footerBottomAffixRef.value?.handleScroll?.();\n };\n\n const calculateThWidthList = (trList: HTMLCollection) => {\n const widthMap: { [colKey: string]: number } = {};\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n // second for used for multiple row header\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n widthMap[colKey] = th.getBoundingClientRect().width;\n }\n }\n return widthMap;\n };\n\n const updateThWidthList = (trList: HTMLCollection | { [colKey: string]: number }) => {\n if (trList instanceof HTMLCollection) {\n if (columnResizable.value) return;\n thWidthList.value = calculateThWidthList(trList);\n } else {\n thWidthList.value = thWidthList.value || {};\n Object.entries(trList).forEach(([colKey, width]) => {\n thWidthList.value[colKey] = width;\n });\n }\n return thWidthList.value;\n };\n\n const updateThWidthListHandler = () => {\n const timer = setTimeout(() => {\n updateTableWidth();\n if (notNeedThWidthList.value) return;\n const thead = tableContentRef.value?.querySelector('thead');\n if (!thead) return;\n updateThWidthList(thead.children);\n clearTimeout(timer);\n }, 0);\n };\n\n const resetThWidthList = () => {\n thWidthList.value = {};\n };\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScrollX?.({ e });\n props.onScrollY?.({ e });\n props.onScroll?.({ e });\n };\n\n const getThWidthList = (type?: 'default' | 'calculate') => {\n if (type === 'calculate') {\n const trList = tableContentRef.value?.querySelector('thead')?.children;\n if (!trList) {\n return {};\n }\n return calculateThWidthList(trList);\n }\n return thWidthList.value || {};\n };\n\n watch(\n [\n data,\n columns,\n bordered,\n tableLayout,\n tableContentWidth,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n fixedRows,\n firstFullRow,\n lastFullRow,\n ],\n updateFixedStatus,\n { immediate: true },\n );\n\n watch(\n [isFixedColumn, columns],\n () => {\n const timer = setTimeout(() => {\n if (isFixedColumn.value) {\n updateColumnFixedShadow(tableContentRef.value);\n }\n clearTimeout(timer);\n }, 0);\n },\n { immediate: true },\n );\n\n watch(\n [maxHeight, data, columns, bordered, tableContentRef],\n () => {\n if (tableContentRef.value) {\n // 如果不监听元素的ref,会出现watch在ref还没ready的时候触发,此时没有触发这个判断的更新,导致表头消失\n updateFixedHeader();\n }\n },\n { immediate: true },\n );\n\n watch(finalColumns, () => {\n resetThWidthList();\n });\n\n // 影响表头宽度的元素\n watch(\n [data, bordered, tableLayout, fixedRows, isFixedHeader, headerAffixedTop, footerAffixedBottom, tableContentWidth],\n () => {\n const timer = setTimeout(() => {\n updateThWidthListHandler();\n updateAffixPosition();\n clearTimeout(timer);\n }, 60);\n },\n { immediate: true },\n );\n\n watch([finalColumns], ([finalColumns], [preFinalColumns]) => {\n const finalColKeys = finalColumns.map((t) => t.colKey);\n const preColKeys = preFinalColumns.map((t) => t.colKey);\n if (finalColKeys.length < preColKeys.length) {\n const reduceKeys = xorWith(preColKeys, finalColKeys);\n const thWidthList = getThWidthList('calculate');\n let reduceWidth = 0;\n reduceKeys.forEach((key) => {\n reduceWidth += thWidthList[key];\n });\n const rootThWidthList = pick(thWidthList, preColKeys);\n const oldTotalWidth = Object.values(rootThWidthList).reduce((r = 0, n) => r + n);\n // 保留原有可能编辑过的列宽度,但是当剩余列过小时,表头小于内容宽,需要缩放回内容宽度\n // 使用不包含滚动条的可视化区域宽度,意味着当不再溢出的时候,将宽度设置回完整宽度\n const contentWidth = tableContentRef.value.clientWidth;\n const widthToReserve = oldTotalWidth - reduceWidth;\n setTableElmWidth(Math.max(contentWidth, widthToReserve));\n }\n });\n\n const refreshTable: BaseTableInstanceFunctions['refreshTable'] = () => {\n // updateTableWidth();\n updateThWidthListHandler();\n updateFixedHeader();\n updateAffixPosition();\n\n if (isFixedColumn.value || isFixedHeader.value) {\n updateFixedStatus();\n updateColumnFixedShadow(tableContentRef.value, { skipScrollLimit: true });\n }\n\n // auto 布局下,同步表头列宽,避免 affix 表头列宽不对齐\n if (tableLayout.value === 'auto') {\n updateThWidthList(getThWidthList('calculate'));\n }\n };\n\n const onResize = debounce(() => {\n refreshTable();\n }, 30);\n\n let resizeObserver: ResizeObserver = null;\n function addTableResizeObserver(tableElement: HTMLDivElement) {\n if (typeof window === 'undefined') return;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n if (getIEVersion() < 11 || typeof window.ResizeObserver === 'undefined') return;\n off(window, 'resize', onResize);\n resizeObserver = new window.ResizeObserver(() => {\n const timer = setTimeout(() => {\n refreshTable();\n clearTimeout(timer);\n }, 200);\n });\n resizeObserver.observe(tableElement);\n tableRef.value = tableElement;\n }\n\n onMounted(() => {\n const scrollWidth = getScrollbarWidthWithCSS();\n scrollbarWidth.value = scrollWidth;\n updateThWidthListHandler();\n const isWatchResize = isFixedColumn.value || isFixedHeader.value || !notNeedThWidthList.value || !data.value.length;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n const hasWindow = typeof window !== 'undefined';\n const hasResizeObserver = hasWindow && typeof window.ResizeObserver !== 'undefined';\n if ((isWatchResize && getIEVersion() < 11) || !hasResizeObserver) {\n on(window, 'resize', onResize);\n }\n });\n\n onBeforeUnmount(() => {\n if (typeof window !== 'undefined') {\n off(window, 'resize', onResize);\n }\n resizeObserver?.unobserve(tableRef.value);\n resizeObserver?.disconnect();\n });\n\n const setData = (dataSource: TableRowData[]) => {\n data.value = dataSource;\n };\n\n const updateTableAfterColumnResize = () => {\n updateFixedStatus();\n updateFixedHeader();\n };\n\n return {\n tableWidth,\n tableElmWidth,\n thWidthList,\n isFixedHeader,\n isWidthOverflow,\n tableContentRef,\n isFixedColumn,\n showColumnShadow,\n rowAndColFixedPosition,\n virtualScrollHeaderPos,\n scrollbarWidth,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n updateThWidthListHandler,\n updateColumnFixedShadow,\n setUseFixedTableElmRef,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n };\n}\n","import { ref, SetupContext, toRefs, watch } from 'vue';\nimport { useConfig } from '../../hooks/useConfig';\nimport Pagination, { PageInfo, PaginationProps } from '../../pagination';\nimport { TdBaseTableProps, TableRowData } from '../type';\n\n// 分页功能包含:远程数据排序受控、远程数据排序非受控、本地数据排序受控、本地数据排序非受控 等 4 类功能\nexport default function usePagination(props: TdBaseTableProps, context: SetupContext) {\n const { pagination, data, disableDataPage } = toRefs(props);\n const { classPrefix } = useConfig();\n const innerPagination = ref(props.pagination);\n\n const dataSource = ref([]);\n const isPaginateData = ref(false);\n\n const updateDataSourceAndPaginate = (current = 1, pageSize = 10) => {\n const { data } = props;\n // data 数据数量超出分页大小时,则自动启动本地数据分页\n const t = Boolean(!disableDataPage.value && data.length > pageSize);\n isPaginateData.value = t;\n if (t) {\n const start = (current - 1) * pageSize;\n const end = current * pageSize;\n dataSource.value = data.slice(start, end);\n } else {\n dataSource.value = data;\n }\n };\n\n // 受控情况,只有 pagination.current 或者 pagination.pageSize 变化,才对数据进行排序\n watch(\n () => [pagination.value?.current, pagination.value?.pageSize, data.value.length, disableDataPage],\n () => {\n if (!pagination.value || !pagination.value.current) return;\n const { current, pageSize } = pagination.value;\n innerPagination.value = { current, pageSize };\n updateDataSourceAndPaginate(pagination.value.current, pagination.value.pageSize);\n },\n { immediate: true },\n );\n\n // 非受控情况,只执行一次 Props 数据更新(pagination.defaultCurrent 和 pagination.defaultPageSize)\n watch(\n [data],\n () => {\n if (!pagination.value || !pagination.value.defaultCurrent) return;\n const isControlled = Boolean(pagination.value.current);\n // 存在受控属性时,立即返回不再执行后续内容\n if (isControlled) return;\n updateDataSourceAndPaginate(\n innerPagination.value.current ?? pagination.value.defaultCurrent,\n innerPagination.value.pageSize ?? pagination.value.defaultPageSize,\n );\n },\n { immediate: true },\n );\n\n const renderPagination = () => {\n if (!props.pagination) return null;\n const paginationProps = { ...props.pagination };\n // Vue3,两个 onChange 事件绑定,会成为数组,因为需提前移除外部 onChange\n delete paginationProps.onChange;\n return (\n
    \n {\n props.pagination?.onChange?.(pageInfo);\n innerPagination.value = pageInfo;\n updateDataSourceAndPaginate(pageInfo.current, pageInfo.pageSize);\n props.onPageChange?.(pageInfo, dataSource.value);\n }}\n v-slots={{ totalContent: context.slots.totalContent }}\n />\n
    \n );\n };\n\n return {\n isPaginateData,\n dataSource,\n innerPagination,\n renderPagination,\n };\n}\n","import { isBoolean } from 'lodash-es';\nimport { computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport { on, off } from '../../utils/dom';\nimport { AffixProps } from '../../affix';\nimport { debounce } from 'lodash-es';\n\n/**\n * 1. 表头吸顶(普通表头吸顶 和 虚拟滚动表头吸顶)\n * 2. 表尾吸底\n * 3. 底部滚动条吸底\n * 4. 分页器吸底\n */\nexport default function useAffix(props: TdBaseTableProps) {\n const tableContentRef = ref();\n // 吸顶表头\n const affixHeaderRef = ref();\n // 吸底表尾\n const affixFooterRef = ref();\n // 吸底滚动条\n const horizontalScrollbarRef = ref();\n // 吸底分页器\n const paginationRef = ref();\n // 当表格完全滚动消失在视野时,需要隐藏吸顶表头\n const showAffixHeader = ref(true);\n // 当表格完全滚动消失在视野时,需要隐藏吸底尾部\n const showAffixFooter = ref(true);\n // 当表格完全滚动消失在视野时,需要隐藏吸底分页器\n const showAffixPagination = ref(true);\n // 当鼠标按下拖动内容来滚动时,需要更新表头位置(Windows 按下鼠标横向滚动,滚动结束后,再松开鼠标)\n let isMousedown = false;\n let isMouseInScrollableArea = false;\n\n const isVirtualScroll = computed(\n () => props.scroll && props.scroll.type === 'virtual' && (props.scroll.threshold || 100) < props.data.length,\n );\n\n const isAffixed = computed(\n () => !!(props.headerAffixedTop || props.footerAffixedBottom || props.horizontalScrollAffixedBottom),\n );\n\n let lastScrollLeft = 0;\n const onHorizontalScroll = (scrollElement?: HTMLElement) => {\n if (!isAffixed.value && !isVirtualScroll.value) return;\n let target = scrollElement;\n if (!target && tableContentRef.value) {\n lastScrollLeft = 0;\n target = tableContentRef.value;\n }\n if (!target) return;\n const left = target.scrollLeft;\n // 如果 lastScrollLeft 等于 left,说明不是横向滚动,不需要更新横向滚动距离\n if (lastScrollLeft === left) return;\n lastScrollLeft = left;\n // 表格内容、吸顶表头、吸底表尾、吸底横向滚动更新\n const toUpdateScrollElement = [\n tableContentRef.value,\n affixHeaderRef.value,\n affixFooterRef.value,\n horizontalScrollbarRef.value,\n ];\n for (let i = 0, len = toUpdateScrollElement.length; i < len; i++) {\n if (toUpdateScrollElement[i] && scrollElement !== toUpdateScrollElement[i]) {\n toUpdateScrollElement[i].scrollLeft = left;\n }\n }\n };\n\n // 吸底的元素(footer、横向滚动条、分页器)是否显示\n const isAffixedBottomElementShow = (elementRect: DOMRect, tableRect: DOMRect, headerHeight: number) =>\n tableRect.top + headerHeight < elementRect.top && elementRect.top > elementRect.height;\n\n const getOffsetTop = (props: boolean | AffixProps) => {\n if (isBoolean(props)) return 0;\n return props.offsetTop || 0;\n };\n\n const updateAffixHeaderOrFooter = () => {\n if (!isAffixed.value && !isVirtualScroll.value && !tableContentRef.value) return;\n const pos = tableContentRef.value?.getBoundingClientRect();\n const headerRect = tableContentRef.value?.querySelector('thead')?.getBoundingClientRect();\n const headerHeight = headerRect?.height || 0;\n const footerRect = affixFooterRef.value?.getBoundingClientRect();\n if ((props.headerAffixedTop || isVirtualScroll.value) && affixHeaderRef.value) {\n const offsetTop = getOffsetTop(props.headerAffixProps || props.headerAffixedTop);\n const footerHeight = footerRect?.height || 0;\n let r = Math.abs(pos.top) < pos.height - headerHeight - offsetTop - footerHeight;\n // 如果是虚拟滚动的表头,只要表头在可视区域内,一律永久显示(虚拟滚动表头 和 吸顶表头可能同时存在)\n if (isVirtualScroll.value) {\n r = pos.top > -1 * headerRect.height;\n }\n showAffixHeader.value = r;\n }\n // 底部内容吸底 和 底部滚动条吸底,不可能同时存在,二选一即可\n if (props.footerAffixedBottom && affixFooterRef?.value) {\n showAffixFooter.value = isAffixedBottomElementShow(footerRect, pos, headerHeight);\n } else if (props.horizontalScrollAffixedBottom && horizontalScrollbarRef?.value) {\n const horizontalScrollbarRect = horizontalScrollbarRef.value.getBoundingClientRect();\n showAffixFooter.value = isAffixedBottomElementShow(horizontalScrollbarRect, pos, headerHeight);\n }\n if (props.paginationAffixedBottom && paginationRef.value) {\n const pageRect = paginationRef.value.getBoundingClientRect();\n showAffixPagination.value = isAffixedBottomElementShow(pageRect, pos, headerHeight);\n }\n };\n\n const onDocumentScroll = () => {\n updateAffixHeaderOrFooter();\n };\n\n const onFootScroll = () => {\n onHorizontalScroll(affixFooterRef.value);\n };\n\n const onHeaderScroll = () => {\n onHorizontalScroll(affixHeaderRef.value);\n };\n\n const horizontalScrollbarScroll = () => {\n onHorizontalScroll(horizontalScrollbarRef.value);\n };\n\n const onTableContentScroll = () => {\n onHorizontalScroll(tableContentRef.value);\n };\n\n const onFootMouseEnter = () => {\n on(affixFooterRef.value, 'scroll', onFootScroll);\n };\n\n const onFootMouseLeave = () => {\n off(affixFooterRef.value, 'scroll', onFootScroll);\n };\n\n const onHeaderMouseEnter = () => {\n on(affixHeaderRef.value, 'scroll', onHeaderScroll);\n onMouseEnterScrollableArea();\n };\n\n const onHeaderMouseLeave = () => {\n if (!isMousedown) off(affixHeaderRef.value, 'scroll', onHeaderScroll);\n onMouseLeaveScrollableArea();\n };\n\n const onScrollbarMouseEnter = () => {\n on(horizontalScrollbarRef.value, 'scroll', horizontalScrollbarScroll);\n };\n\n const onScrollbarMouseLeave = () => {\n off(horizontalScrollbarRef.value, 'scroll', horizontalScrollbarScroll);\n };\n\n const onTableContentMouseEnter = () => {\n on(tableContentRef.value, 'scroll', onTableContentScroll);\n onMouseEnterScrollableArea();\n };\n\n const onTableContentMouseLeave = () => {\n if (!isMousedown) off(tableContentRef.value, 'scroll', onTableContentScroll);\n onMouseLeaveScrollableArea();\n };\n\n const onMousedown = () => {\n isMousedown = true;\n };\n\n const onMouseup = () => {\n isMousedown = false;\n if (!isMouseInScrollableArea) {\n off(affixHeaderRef.value, 'scroll', onHeaderScroll);\n off(tableContentRef.value, 'scroll', onTableContentScroll);\n }\n };\n\n const onMouseEnterScrollableArea = () => {\n isMouseInScrollableArea = true;\n };\n\n const onMouseLeaveScrollableArea = () => {\n isMouseInScrollableArea = false;\n };\n\n // 记录激活中的 scroll,在新元素点击时要进行抢占\n const activatingTouchScrollListenerCleanups: Array<() => void> = [];\n const setupElementTouchScrollListener = (element: HTMLElement) => {\n // 思路来源 https://github.com/vueuse/vueuse/blob/main/packages/core/useScroll/index.ts\n // 兼容不支持 scrollend 但是又存在惯性滑动的场景,例如 safari\n // 200 毫秒这个默认值是 vueuse 的用法,后面有问题可以再重新考虑\n const debounceOffScrollListener = debounce((listener) => {\n off(element, 'scroll', listener);\n }, 200);\n\n function onElementTouchScroll() {\n onHorizontalScroll(element);\n debounceOffScrollListener(onElementTouchScroll);\n }\n function onElementTouchStart(e: UIEvent) {\n if (e.composedPath().includes(element)) {\n // 下一次 touch 清理所有的 scroll,不同于 pc 端的 enter,触碰打断是合理的\n activatingTouchScrollListenerCleanups.forEach((cleanup) => cleanup());\n activatingTouchScrollListenerCleanups.length = 0;\n // 即使是相同元素也重新绑定,因为 touch 必定带来滑动停止\n on(element, 'scroll', onElementTouchScroll);\n // 有可能触碰了一下,没触发 scroll,也销毁\n debounceOffScrollListener(onElementTouchScroll);\n activatingTouchScrollListenerCleanups.push(() => {\n off(element, 'scroll', onElementTouchScroll);\n });\n }\n }\n\n on(element, 'touchstart', onElementTouchStart);\n\n function removeElementTouchScrollListener() {\n off(element, 'touchstart', onElementTouchStart);\n }\n\n return {\n removeElementTouchScrollListener,\n };\n };\n\n // 清理所有 touch 相关的逻辑\n const elementTouchScrollCleanups: Array<() => void> = [];\n const cleanupElementTouchScroll = () => {\n elementTouchScrollCleanups.forEach((cleanup) => cleanup());\n elementTouchScrollCleanups.length = 0;\n };\n\n const removeHorizontalScrollListeners = () => {\n off(window, 'mousedown', onMousedown);\n off(window, 'mouseup', onMouseup);\n\n cleanupElementTouchScroll();\n if (affixHeaderRef.value) {\n off(affixHeaderRef.value, 'mouseenter', onHeaderMouseEnter);\n off(affixHeaderRef.value, 'mouseleave', onHeaderMouseLeave);\n }\n if (affixFooterRef.value) {\n off(affixFooterRef.value, 'mouseenter', onFootMouseEnter);\n off(affixFooterRef.value, 'mouseleave', onFootMouseLeave);\n }\n if (tableContentRef.value) {\n off(tableContentRef.value, 'mouseenter', onTableContentMouseEnter);\n off(tableContentRef.value, 'mouseleave', onTableContentMouseLeave);\n }\n if (horizontalScrollbarRef.value) {\n off(horizontalScrollbarRef.value, 'mouseenter', onScrollbarMouseEnter);\n off(horizontalScrollbarRef.value, 'mouseleave', onScrollbarMouseLeave);\n }\n };\n\n const addHorizontalScrollListeners = () => {\n on(window, 'mousedown', onMousedown);\n on(window, 'mouseup', onMouseup);\n\n removeHorizontalScrollListeners();\n if (affixHeaderRef.value) {\n on(affixHeaderRef.value, 'mouseenter', onHeaderMouseEnter);\n on(affixHeaderRef.value, 'mouseleave', onHeaderMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(affixHeaderRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if (props.footerAffixedBottom && affixFooterRef.value) {\n on(affixFooterRef.value, 'mouseenter', onFootMouseEnter);\n on(affixFooterRef.value, 'mouseleave', onFootMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(affixFooterRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if (props.horizontalScrollAffixedBottom && horizontalScrollbarRef.value) {\n on(horizontalScrollbarRef.value, 'mouseenter', onScrollbarMouseEnter);\n on(horizontalScrollbarRef.value, 'mouseleave', onScrollbarMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(horizontalScrollbarRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if ((isAffixed.value || isVirtualScroll.value) && tableContentRef.value) {\n on(tableContentRef.value, 'mouseenter', onTableContentMouseEnter);\n on(tableContentRef.value, 'mouseleave', onTableContentMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(tableContentRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n };\n\n const addVerticalScrollListener = () => {\n if (!isAffixed.value && !props.paginationAffixedBottom) return;\n const timer = setTimeout(() => {\n if (isAffixed.value || props.paginationAffixedBottom) {\n on(document, 'scroll', onDocumentScroll);\n } else {\n off(document, 'scroll', onDocumentScroll);\n }\n clearTimeout(timer);\n });\n };\n\n watch([affixHeaderRef, affixFooterRef, horizontalScrollbarRef, tableContentRef], () => {\n addHorizontalScrollListeners();\n onHorizontalScroll();\n updateAffixHeaderOrFooter();\n });\n\n watch(isAffixed, addVerticalScrollListener);\n\n watch(\n () => [\n props.data,\n props.columns,\n props.headerAffixedTop,\n props.footerAffixedBottom,\n props.horizontalScrollAffixedBottom,\n ],\n () => {\n onHorizontalScroll();\n },\n );\n\n onBeforeUnmount(() => {\n off(document, 'scroll', onDocumentScroll);\n removeHorizontalScrollListeners();\n affixHeaderRef.value = null;\n affixFooterRef.value = null;\n horizontalScrollbarRef.value = null;\n tableContentRef.value = null;\n });\n\n const setTableContentRef = (tableContent: HTMLDivElement) => {\n tableContentRef.value = tableContent;\n addVerticalScrollListener();\n };\n\n return {\n showAffixHeader,\n showAffixFooter,\n showAffixPagination,\n affixHeaderRef,\n affixFooterRef,\n horizontalScrollbarRef,\n paginationRef,\n onHorizontalScroll,\n setTableContentRef,\n updateAffixHeaderOrFooter,\n };\n}\n","import { isFunction } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { CellData, RowClassNameParams, TableColumnClassName, TableRowData, TdBaseTableProps } from './type';\nimport { ClassName, HTMLElementAttributes } from '../common';\nimport { AffixProps } from '../affix';\n\nexport function toString(obj: any): string {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();\n}\n\nexport function debounce(fn: Function, delay = 200): () => void {\n let timer: ReturnType;\n return function newFn(this: T, ...args: Array): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, args);\n }, delay);\n };\n}\n\nexport interface FormatRowAttributesParams {\n row: TableRowData;\n rowIndex: number;\n type: 'body' | 'foot';\n}\n\n// 行属性\nexport function formatRowAttributes(attributes: TdBaseTableProps['rowAttributes'], params: FormatRowAttributesParams) {\n if (!attributes) return undefined;\n const attrList = attributes instanceof Array ? attributes : [attributes];\n let result: HTMLElementAttributes = {};\n for (let i = 0; i < attrList.length; i++) {\n const attrItem = attrList[i];\n if (!attrItem) continue;\n const attrProperty = isFunction(attrItem) ? attrItem(params) : attrItem;\n result =\n attrProperty instanceof Array ? formatRowAttributes(attrProperty, params) : Object.assign(result, attrProperty);\n }\n return result;\n}\n\n// 行类名,['A', 'B'],[() => 'A', () => 'B']\nexport function formatRowClassNames(\n rowClassNames: TdBaseTableProps['rowClassName'],\n params: RowClassNameParams,\n rowKey: string,\n) {\n const rowClassList = rowClassNames instanceof Array ? rowClassNames : [rowClassNames];\n const { row, rowIndex } = params;\n // 自定义行类名\n let customClasses: ClassName = [];\n for (let i = 0, len = rowClassList.length; i < len; i++) {\n const rName = rowClassList[i];\n let tClass = isFunction(rName) ? rName(params) : rName;\n if (isObject(tClass) && !(tClass instanceof Array)) {\n // TODO: 这里其实是两点原因导致的\n // 1. isObject(tClass) && !(tClass instanceof Array) 直接用 isPlainObject 就可以了吧,或者 tClass && typeof tClass === 'object'\n // 2. lodash-es 类型不全\n // 根据下标设置行类名\n (tClass as Record)[rowIndex] && (tClass = (tClass as Record)[rowIndex]);\n // 根据行唯一标识设置行类名\n const rowId = get(row, rowKey || 'id');\n tClass[rowId] && (tClass = tClass[rowId]);\n } else if (tClass instanceof Array) {\n tClass = formatRowClassNames(tClass, params, rowKey);\n }\n customClasses = customClasses.concat(tClass);\n }\n return customClasses;\n}\n\nexport function formatClassNames(\n classNames: TableColumnClassName | TableColumnClassName[],\n params: CellData,\n) {\n const classes = classNames instanceof Array ? classNames : [classNames];\n const arr: any[] = [];\n for (let i = 0, len = classes.length; i < len; i++) {\n const cls = classes[i];\n if (isFunction(cls)) {\n arr.push(cls(params));\n } else {\n arr.push(cls);\n }\n }\n return arr;\n}\n\nexport const INNER_PRE_NAME = '@@inner-';\n\n// 多级表头,列配置场景,获取 currentRow\nexport function getCurrentRowByKey(columns: T[], key: string): T {\n if (!columns || !key) return;\n const col = columns?.find((t) => t.colKey === key);\n if (col) return col;\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i]?.children?.length) {\n return getCurrentRowByKey(columns[i]?.children, key);\n }\n }\n}\n\n/** 透传 Affix 组件全部特性 */\nexport function getAffixProps(mainAffixProps: boolean | AffixProps, subAffixProps?: AffixProps) {\n if (typeof mainAffixProps === 'object') return mainAffixProps;\n if (typeof subAffixProps === 'object') return subAffixProps;\n return {};\n}\n","import { ref, watch, Ref } from 'vue';\nimport { get } from 'lodash-es';\nimport log from '@tdesign/common-js/log/index';\nimport { BaseTableCellParams, BaseTableCol, TableRowData, TableRowspanAndColspanFunc } from '../type';\n\nexport interface SkipSpansValue {\n colspan?: number;\n rowspan?: number;\n skipped?: boolean;\n}\n\nexport function getCellKey(row: TableRowData, rowKey: string, colKey: string, colIndex: number) {\n const rowValue = get(row, rowKey);\n if (rowValue === undefined) {\n log.error('Table', 'rowKey is wrong, can not get unique identifier of row.');\n }\n return [rowValue, colKey || colIndex].join('_');\n}\n\n// getCellKey的反向操作 用于获取rowKey\nexport function getRowKeyFromCell(cellKey: string) {\n return cellKey.split('_')?.[0];\n}\n\nexport default function useRowspanAndColspan(\n data: Ref,\n columns: Ref[]>,\n rowKey: Ref,\n rowspanAndColspan: Ref>,\n) {\n const skipSpansMap = ref(new Map());\n\n // 计算单元格是否跳过渲染\n const onTrRowspanOrColspan = (params: BaseTableCellParams, skipSpansValue: SkipSpansValue) => {\n const { rowIndex, colIndex } = params;\n if (!skipSpansValue.rowspan && !skipSpansValue.colspan) return;\n const maxRowIndex = rowIndex + (skipSpansValue.rowspan || 1);\n const maxColIndex = colIndex + (skipSpansValue.colspan || 1);\n for (let i = rowIndex; i < maxRowIndex; i++) {\n for (let j = colIndex; j < maxColIndex; j++) {\n if (i !== rowIndex || j !== colIndex) {\n if (!data.value[i] || !columns.value[j]) return;\n const cellKey = getCellKey(data.value[i], rowKey.value, columns.value[j].colKey, j);\n const state = skipSpansMap.value.get(cellKey) || {};\n state.skipped = true;\n skipSpansMap.value.set(cellKey, state);\n }\n }\n }\n };\n\n // 计算单元格是否需要设置 rowspan 和 colspan\n const updateSkipSpansMap = (\n data: TableRowData[],\n columns: BaseTableCol[],\n rowspanAndColspan: TableRowspanAndColspanFunc,\n ) => {\n skipSpansMap.value?.clear();\n if (!data || !rowspanAndColspan) return;\n for (let i = 0, len = data.length; i < len; i++) {\n const row = data[i];\n for (let j = 0, colLen = columns.length; j < colLen; j++) {\n const col = columns[j];\n const params = {\n row,\n col,\n rowIndex: i,\n colIndex: j,\n };\n const cellKey = getCellKey(row, rowKey.value, col.colKey, j);\n const state = skipSpansMap.value.get(cellKey) || {};\n const o = rowspanAndColspan(params) || {};\n if (o.rowspan || o.colspan || state.rowspan || state.colspan) {\n o.rowspan && (state.rowspan = o.rowspan);\n o.colspan && (state.colspan = o.colspan);\n skipSpansMap.value.set(cellKey, state);\n }\n onTrRowspanOrColspan?.(params, state);\n }\n }\n };\n\n watch(\n () => [data.value, columns.value, rowspanAndColspan],\n () => {\n updateSkipSpansMap(data.value, columns.value, rowspanAndColspan?.value);\n },\n { immediate: true },\n );\n\n return { skipSpansMap };\n}\n","import {\n defineComponent,\n PropType,\n SetupContext,\n h,\n computed,\n ref,\n reactive,\n toRefs,\n onUpdated,\n nextTick,\n onMounted,\n} from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { upperFirst } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { formatClassNames, formatRowAttributes, formatRowClassNames } from './utils';\nimport { getRowFixedStyles, getColumnFixedStyles } from './hooks/useFixed';\nimport useClassName from './hooks/useClassName';\nimport TEllipsis from './ellipsis';\nimport { BaseTableCellParams, TableRowData, RowspanColspan, TdPrimaryTableProps, TdBaseTableProps } from './type';\nimport baseTableProps from './base-table-props';\nimport useLazyLoad from './hooks/useLazyLoad';\nimport { RowAndColFixedPosition } from './interface';\nimport { getCellKey, SkipSpansValue } from './hooks/useRowspanAndColspan';\nimport { TooltipProps } from '../tooltip';\nimport { PaginationProps } from '..';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport { AttachNode, SlotReturnValue } from '../common';\n\nexport interface RenderTdExtra {\n rowAndColFixedPosition: RowAndColFixedPosition;\n columnLength: number;\n dataLength: number;\n cellSpans: RowspanColspan;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n}\n\nexport interface RenderEllipsisCellParams {\n cellNode: any;\n}\n\nexport type TrCommonProps = Pick;\n\nexport const TABLE_PROPS = [\n 'rowKey',\n 'rowClassName',\n 'columns',\n 'fixedRows',\n 'footData',\n 'rowAttributes',\n 'rowspanAndColspan',\n 'scroll',\n 'cellEmptyContent',\n 'pagination',\n 'attach',\n 'onCellClick',\n 'onRowClick',\n 'onRowDblclick',\n 'onRowMouseover',\n 'onRowMousedown',\n 'onRowMouseenter',\n 'onRowMouseleave',\n 'onRowMouseup',\n] as const;\n\nexport type TrPropsKeys = typeof TABLE_PROPS[number];\n\nexport interface TrProps extends TrCommonProps {\n rowKey: string;\n row: TableRowData;\n rowIndex: number;\n ellipsisOverlayClassName: string;\n classPrefix: string;\n dataLength: number;\n rowAndColFixedPosition?: RowAndColFixedPosition;\n skipSpansMap?: Map;\n tableElm?: any;\n // HTMLDivElement\n tableContentElm?: any;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n virtualConfig: VirtualScrollConfig;\n attach?: AttachNode;\n active?: boolean;\n isHover?: boolean;\n}\n\nexport const ROW_LISTENERS = [\n 'click',\n 'dblclick',\n 'mouseover',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mouseup',\n] as const;\n\nexport function renderCell(\n params: BaseTableCellParams,\n slots: SetupContext['slots'],\n extra?: {\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n pagination?: PaginationProps;\n },\n) {\n const { col, row, rowIndex } = params;\n // support serial number column\n if (col.colKey === 'serial-number') {\n const { current, pageSize, defaultCurrent, defaultPageSize } = extra?.pagination || {};\n const tCurrent = current || defaultCurrent;\n const tPageSize = pageSize || defaultPageSize;\n if (tPageSize && tCurrent) {\n return tPageSize * (tCurrent - 1) + rowIndex + 1;\n }\n return rowIndex + 1;\n }\n if (isFunction(col.cell)) {\n return col.cell(h, params);\n }\n if (slots[col.colKey]) {\n return slots[col.colKey](params);\n }\n if (isString(col.cell) && slots[col.cell]) {\n return slots[col.cell](params);\n }\n if (isFunction(col.render)) {\n return col.render(h, { ...params, type: 'cell' });\n }\n const r = get(row, col.colKey);\n // 0 和 false 属于正常可用之,不能使用兜底逻辑 cellEmptyContent\n if (![undefined, '', null].includes(r)) return r;\n // cellEmptyContent 作为空数据兜底显示,用户可自定义\n if (extra?.cellEmptyContent) {\n return isFunction(extra.cellEmptyContent) ? extra.cellEmptyContent(h, params) : extra.cellEmptyContent;\n }\n if (slots.cellEmptyContent) return slots.cellEmptyContent(params);\n if (slots['cell-empty-content']) return slots['cell-empty-content'](params);\n return r;\n}\n\n// 表格行组件\nexport default defineComponent({\n name: 'TR',\n\n props: {\n row: Object as PropType,\n rowIndex: Number,\n dataLength: Number,\n ellipsisOverlayClassName: String,\n classPrefix: String,\n rowAndColFixedPosition: Map as PropType,\n // 合并单元格,是否跳过渲染\n skipSpansMap: Map as PropType,\n virtualConfig: Object as PropType,\n active: Boolean,\n isHover: Boolean,\n ...pick(baseTableProps, TABLE_PROPS),\n // eslint-disable-next-line\n tableElm: {},\n // eslint-disable-next-line\n tableContentElm: {},\n },\n\n emits: ['row-mounted'],\n\n setup(props: TrProps, context: SetupContext) {\n const { tableContentElm, active, isHover } = toRefs(props);\n const trRef = ref(null);\n const {\n tdEllipsisClass,\n tableBaseClass,\n tableColFixedClasses,\n tableRowFixedClasses,\n tdAlignClasses,\n tableDraggableClasses,\n } = useClassName();\n const trStyles = computed(() =>\n getRowFixedStyles(\n get(props.row, props.rowKey || 'id'),\n props.rowIndex,\n props.dataLength,\n props.fixedRows,\n props.rowAndColFixedPosition,\n tableRowFixedClasses,\n props.virtualConfig.isVirtualScroll.value ? props.virtualConfig.translateY.value : 0,\n ),\n );\n\n const trAttributes = computed(\n () => formatRowAttributes(props.rowAttributes, { row: props.row, rowIndex: props.rowIndex, type: 'body' }) || {},\n );\n\n const classes = computed(() => {\n const customClasses = formatRowClassNames(\n props.rowClassName,\n { row: props.row, rowKey: props.rowKey, rowIndex: props.rowIndex, type: 'body' },\n props.rowKey || 'id',\n );\n return [\n trStyles.value?.classes,\n customClasses,\n {\n [`${props.classPrefix}-table__row--active`]: active.value,\n [`${props.classPrefix}-table__row--hover`]: isHover.value,\n },\n ].filter((v) => v);\n });\n\n const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n tableContentElm,\n trRef,\n reactive({ ...props.scroll, rowIndex: props.rowIndex }),\n );\n\n const getTrListeners = (row: TableRowData, rowIndex: number) => {\n const trListeners: { [eventName: string]: (e: MouseEvent) => void } = {};\n // add events to row\n ROW_LISTENERS.forEach((eventName) => {\n trListeners[`on${upperFirst(eventName)}`] = (e: MouseEvent) => {\n const p = { e, row, index: rowIndex };\n props[`onRow${upperFirst(eventName)}` as `onRow${Capitalize}`]?.(p);\n };\n });\n return trListeners;\n };\n\n // 触发 row 的更新行高事件,通知虚拟滚动相关逻辑\n const notifyVirtualSizeUpdate = () => {\n if (props.virtualConfig?.isVirtualScroll.value) {\n context.emit('row-mounted', {\n ref: trRef,\n data: props.row,\n });\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n notifyVirtualSizeUpdate();\n });\n });\n\n // 有可能因为 row-key 带来组件复用,这时候通过 update 进行更新\n onUpdated(() => {\n nextTick(() => {\n notifyVirtualSizeUpdate();\n });\n });\n\n function renderEllipsisCell(cellParams: BaseTableCellParams, params: RenderEllipsisCellParams) {\n const { cellNode } = params;\n const { col, colIndex } = cellParams;\n\n let content: SlotReturnValue;\n if (isFunction(col.ellipsis)) {\n content = col.ellipsis(h, cellParams);\n } else if (typeof col.ellipsis === 'object' && isFunction(col.ellipsis.content)) {\n content = col.ellipsis.content(h, cellParams);\n } else if (context.slots[`ellipsis-${col.colKey}`]) {\n // support ellipsis- to define one column cell ellipsis-content\n content = context.slots[`ellipsis-${col.colKey}`](cellParams);\n } else if (context.slots.ellipsis) {\n // support ellipsis slot to define all table cell ellipsis-content\n content = context.slots.ellipsis(cellParams);\n }\n\n let tooltipProps = {};\n if (typeof col.ellipsis === 'object') {\n tooltipProps = 'props' in col.ellipsis ? col.ellipsis.props : col.ellipsis || undefined;\n }\n const tableElement = props.tableElm as HTMLDivElement;\n let placement: TooltipProps['placement'] = colIndex === 0 ? 'top-left' : 'top';\n placement = colIndex === props.columns.length - 1 ? 'top-right' : placement;\n return (\n tableElement : undefined}\n tooltipContent={content && (() => content)}\n tooltipProps={tooltipProps}\n overlayClassName={props.ellipsisOverlayClassName}\n classPrefix={props.classPrefix}\n >\n {cellNode}\n \n );\n }\n\n function renderTd(params: BaseTableCellParams, extra: RenderTdExtra) {\n const { col, colIndex, rowIndex } = params;\n const { cellSpans, dataLength, rowAndColFixedPosition } = extra;\n const cellNode = renderCell(params, context.slots, {\n cellEmptyContent: extra.cellEmptyContent,\n pagination: props.pagination,\n });\n const tdStyles = getColumnFixedStyles(col, colIndex, rowAndColFixedPosition, tableColFixedClasses);\n const customClasses = formatClassNames(col.className, { ...params, type: 'td' });\n const classes = [\n tdStyles.classes,\n customClasses,\n {\n [tdEllipsisClass]: col.ellipsis,\n [tableBaseClass.tdLastRow]: rowIndex + cellSpans.rowspan === dataLength,\n [tableBaseClass.tdFirstCol]: colIndex === 0 && props.rowspanAndColspan,\n [tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 标记可拖拽列\n [tableDraggableClasses.handle]: col.colKey === 'drag',\n },\n ];\n const onClick = (e: MouseEvent) => {\n const p = { ...params, e };\n if (col.stopPropagation) {\n e.stopPropagation();\n }\n props.onCellClick?.(p);\n };\n const normalAttrs = isFunction(col.attrs) ? col.attrs({ ...params, type: 'td' }) : col.attrs;\n const attrs = { ...normalAttrs, ...cellSpans };\n return (\n
    \n );\n }\n\n return () => {\n const { columns, skipSpansMap, row, dataLength, rowAndColFixedPosition } = props;\n const columVNodeList = columns?.map((col, colIndex) => {\n const cellSpans: RowspanColspan = {};\n const params = {\n row,\n col,\n rowIndex: props.rowIndex,\n colIndex,\n };\n let spanState = null;\n if (props.skipSpansMap.size) {\n const cellKey = getCellKey(row, props.rowKey, col.colKey, colIndex);\n spanState = skipSpansMap.get(cellKey) || {};\n spanState?.rowspan > 1 && (cellSpans.rowspan = spanState.rowspan);\n spanState?.colspan > 1 && (cellSpans.colspan = spanState.colspan);\n if (spanState.skipped) return null;\n }\n return renderTd(params, {\n dataLength,\n rowAndColFixedPosition,\n columnLength: columns.length,\n cellSpans,\n cellEmptyContent: props.cellEmptyContent,\n });\n });\n\n return (\n \n {hasLazyLoadHolder.value\n ? [\n );\n };\n },\n});\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '../../utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport default function useLazyLoad(\n containerRef: Ref,\n childRef: Ref,\n params: UseLazyLoadParams,\n) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n if (!childRef?.value || !containerRef?.value) return;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import { defineComponent, computed, PropType, toRefs } from 'vue';\nimport { camelCase } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\nimport { useConfig } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useClassName from './hooks/useClassName';\nimport baseTableProps from './base-table-props';\nimport { TNodeReturnValue } from '../common';\nimport useRowspanAndColspan from './hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from './interface';\nimport { TdBaseTableProps } from './type';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport type { CamelCase } from '@tdesign/common-js/utils/types';\n\nexport const ROW_AND_TD_LISTENERS = [...ROW_LISTENERS, 'cell-click'];\nexport interface TableBodyProps extends BaseTableProps {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n showColumnShadow: { left: boolean; right: boolean };\n tableElm: any;\n tableWidth: number;\n isWidthOverflow: boolean;\n virtualConfig: VirtualScrollConfig;\n // HTMLDivElement\n tableContentElm: any;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n handleRowMounted: (rowData: any) => void;\n}\n\n// table 到 body 的相同属性\nexport const extendTableProps = [\n 'bordered',\n 'rowKey',\n 'rowClassName',\n 'rowAttributes',\n 'loading',\n 'empty',\n 'fixedRows',\n 'firstFullRow',\n 'lastFullRow',\n 'rowspanAndColspan',\n 'scroll',\n 'cellEmptyContent',\n 'pagination',\n 'attach',\n 'onCellClick',\n 'onPageChange',\n 'onRowClick',\n 'onRowDblclick',\n 'onRowMouseover',\n 'onRowMousedown',\n 'onRowMouseenter',\n 'onRowMouseleave',\n 'onRowMouseup',\n 'onScroll',\n 'onScrollX',\n 'onScrollY',\n];\n\nexport default defineComponent({\n name: 'TBody',\n\n props: {\n classPrefix: String,\n data: Array as PropType,\n columns: Array as PropType,\n ellipsisOverlayClassName: String,\n rowAndColFixedPosition: Map as PropType,\n showColumnShadow: Object as PropType,\n // eslint-disable-next-line\n tableElm: {},\n tableWidth: Number,\n isWidthOverflow: Boolean,\n virtualConfig: Object as PropType,\n // eslint-disable-next-line\n tableContentElm: {},\n handleRowMounted: Function as PropType,\n renderExpandedRow: Function as PropType,\n firstFullRow: [String, Function] as PropType,\n lastFullRow: [String, Function] as PropType,\n activeRow: [Array] as PropType>,\n hoverRow: [String, Number],\n ...pick(baseTableProps, extendTableProps),\n },\n\n // eslint-disable-next-line\n setup(props: TableBodyProps) {\n const renderTNode = useTNodeJSX();\n const { data, columns, rowKey, rowspanAndColspan } = toRefs(props);\n const { t, globalConfig } = useConfig('table', props.locale);\n const { tableFullRowClasses, tableBaseClass } = useClassName();\n const { skipSpansMap } = useRowspanAndColspan(data, columns, rowKey, rowspanAndColspan);\n\n const tbodyClasses = computed(() => [tableBaseClass.body]);\n\n return {\n t,\n globalConfig,\n renderTNode,\n tableFullRowClasses,\n tbodyClasses,\n tableBaseClass,\n skipSpansMap,\n };\n },\n\n render() {\n const renderEmpty = (columns: TableBodyProps['columns']) => {\n const tableWidth = this.bordered ? this.tableWidth - 2 : this.tableWidth;\n return (\n \n \n \n );\n };\n\n const getFullRow = (columnLength: number, type: 'first-full-row' | 'last-full-row') => {\n const tType = camelCase(type) as CamelCase;\n const fullRowNode = this.renderTNode(tType);\n if (['', null, undefined, false].includes(fullRowNode)) return null;\n const isFixedToLeft = this.isWidthOverflow && this.columns.find((col) => col.fixed === 'left');\n const classes = [this.tableFullRowClasses.base, this.tableFullRowClasses[tType]];\n const tableWidth = this.bordered ? this.tableWidth - 2 : this.tableWidth;\n /** innerFullRow 和 innerFullElement 同时存在,是为了保证 固定列时,当前行不随内容进行横向滚动 */\n return (\n \n \n \n );\n };\n\n const columnLength = this.columns.length;\n const dataLength = this.data?.length;\n const trNodeList: TNodeReturnValue[] = [];\n\n const properties = [\n 'classPrefix',\n 'ellipsisOverlayClassName',\n 'rowAndColFixedPosition',\n 'scroll',\n 'tableElm',\n 'tableContentElm',\n 'pagination',\n 'attach',\n ];\n\n const renderData = this.virtualConfig.isVirtualScroll.value ? this.virtualConfig.visibleData.value : this.data;\n\n renderData?.forEach((row, rowIndex) => {\n const rowKey = this.rowKey || 'id';\n const rowValue = get(row, rowKey);\n const trProps = {\n ...pick(this.$props, TABLE_PROPS),\n rowKey,\n row,\n columns: this.columns,\n rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n dataLength,\n skipSpansMap: this.skipSpansMap,\n virtualConfig: this.virtualConfig,\n active: this.activeRow?.includes(rowValue),\n isHover: this.hoverRow === rowValue,\n ...pick(this.$props, properties),\n // 遍历的同时,计算后面的节点,是否会因为合并单元格跳过渲染\n };\n if (this.onCellClick) {\n trProps.onCellClick = this.onCellClick;\n }\n\n const trNode = (\n \n );\n trNodeList.push(trNode);\n\n // 执行展开行渲染\n if (this.renderExpandedRow) {\n const p = {\n row,\n index: rowIndex,\n columns: this.columns,\n tableWidth: this.tableWidth,\n isWidthOverflow: this.isWidthOverflow,\n };\n const expandedContent = this.renderExpandedRow(p);\n expandedContent && trNodeList.push(expandedContent);\n }\n });\n\n const list = [getFullRow(columnLength, 'first-full-row'), ...trNodeList, getFullRow(columnLength, 'last-full-row')];\n\n const isEmpty = !this.data?.length && !this.loading && !this.firstFullRow && !this.lastFullRow;\n\n // 垫上隐藏的 tr 元素高度\n const translate = `translateY(${this.virtualConfig?.translateY.value}px)`;\n const posStyle = this.virtualConfig?.isVirtualScroll.value\n ? {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n }\n : undefined;\n\n return (\n \n {isEmpty ? renderEmpty(this.columns) : list}\n \n );\n },\n});\n","import { computed, toRefs } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport useClassName from './useClassName';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useStyle(props: TdBaseTableProps) {\n const { size, bordered, stripe, hover, verticalAlign, height, maxHeight, tableContentWidth } = toRefs(props);\n\n const { tableBaseClass, tableAlignClasses } = useClassName();\n const { sizeClassNames } = useCommonClassName();\n const { globalConfig } = useConfig('table', props.locale);\n const tableSize = computed(() => size.value ?? globalConfig.value.size);\n\n const tableClasses = computed(() => [\n tableBaseClass.table,\n {\n [sizeClassNames[tableSize.value]]: tableSize.value !== 'medium',\n [tableBaseClass.bordered]: bordered.value,\n [tableBaseClass.striped]: stripe.value,\n [tableBaseClass.hover]: hover.value,\n [tableBaseClass.loading]: props.loading,\n [tableBaseClass.affixedHeader]: props.headerAffixedTop,\n [tableBaseClass.rowspanAndColspan]: props.rowspanAndColspan,\n [tableAlignClasses[verticalAlign.value]]: verticalAlign.value !== 'middle',\n },\n ]);\n\n const tableContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n }));\n\n const tableElementStyles = computed(() => ({\n width: formatCSSUnit(tableContentWidth.value),\n }));\n\n return {\n tableClasses,\n sizeClassNames,\n tableElementStyles,\n tableContentStyles,\n };\n}\n","import { defineComponent, computed, SetupContext, PropType, ref, Ref, h, CSSProperties } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { getColumnFixedStyles } from './hooks/useFixed';\nimport useClassName from './hooks/useClassName';\nimport { BaseTableCol, TableRowData, TdBaseTableProps } from './type';\nimport { renderTitle } from './hooks/useTableHeader';\nimport TEllipsis from './ellipsis';\nimport { formatClassNames } from './utils';\nimport { RowAndColFixedPosition, BaseTableColumns, ThRowspanAndColspan } from './interface';\nimport { AttachNode } from '../common';\n\nexport interface TheadProps {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n // 是否固定表头\n isFixedHeader: boolean;\n maxHeight?: TdBaseTableProps['maxHeight'];\n height?: TdBaseTableProps['height'];\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n // 虚拟滚动单独渲染表头;表头吸顶单独渲染表头\n thWidthList?: { [colKey: string]: number };\n bordered?: boolean;\n isMultipleHeader?: boolean;\n thDraggable?: boolean;\n spansAndLeafNodes?: {\n rowspanAndColspanMap: ThRowspanAndColspan;\n leafColumns: BaseTableCol[];\n };\n thList: BaseTableCol[][];\n columnResizeParams: {\n resizeLineRef: Ref;\n resizeLineStyle: CSSProperties;\n onColumnMouseover: (e: MouseEvent, col: BaseTableCol) => void;\n onColumnMousedown: (e: MouseEvent, col: BaseTableCol, index: number) => void;\n };\n resizable?: Boolean;\n attach?: AttachNode;\n showColumnShadow?: { left: boolean; right: boolean };\n}\n\nexport default defineComponent({\n name: 'THead',\n\n props: {\n classPrefix: String,\n ellipsisOverlayClassName: String,\n isFixedHeader: Boolean,\n thDraggable: Boolean,\n maxHeight: [String, Number] as PropType,\n height: [String, Number] as PropType,\n rowAndColFixedPosition: Map as PropType,\n thWidthList: Object as PropType,\n bordered: Boolean,\n isMultipleHeader: Boolean,\n resizable: Boolean,\n attach: [String, Function] as PropType,\n spansAndLeafNodes: Object as PropType,\n thList: Array as PropType,\n columnResizeParams: Object as PropType,\n showColumnShadow: Object as PropType,\n },\n\n setup(props: TheadProps, { slots }: SetupContext) {\n const theadRef = ref();\n const classnames = useClassName();\n const { tableHeaderClasses, tableBaseClass } = classnames;\n const theadClasses = computed(() => [\n tableHeaderClasses.header,\n {\n [tableHeaderClasses.fixed]: Boolean(props.maxHeight || props.height),\n [tableBaseClass.bordered]: props.bordered && props.isMultipleHeader,\n [tableHeaderClasses.multipleHeader]: props.isMultipleHeader,\n },\n ]);\n\n // 单行表格合并\n const colspanSkipMap = computed(() => {\n const map: { [key: string]: boolean } = {};\n\n const processColumns = (columns: BaseTableColumns) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.colspan > 1) {\n for (let j = i + 1; j < i + item.colspan; j++) {\n if (columns[j]) {\n map[columns[j].colKey] = true;\n }\n }\n }\n // 如果有子列,递归处理\n if (item.children) {\n processColumns(item.children);\n }\n }\n };\n\n const list = props.thList[0];\n processColumns(list);\n\n return map;\n });\n\n const getTableNode = (thead: HTMLElement) => {\n let parent = thead;\n while (parent) {\n parent = parent.parentNode as HTMLElement;\n if (parent?.classList?.contains(`${props.classPrefix}-table`)) {\n break;\n }\n }\n return parent;\n };\n\n return {\n ...classnames,\n colspanSkipMap,\n theadClasses,\n theadRef,\n slots,\n getTableNode,\n };\n },\n\n render() {\n const renderThNodeList = (\n rowAndColFixedPosition: RowAndColFixedPosition,\n thWidthList: TheadProps['thWidthList'],\n ) => {\n // thBorderMap: rowspan 会影响 tr > th 是否为第一列表头,从而影响边框\n const thBorderMap = new Map();\n const thRowspanAndColspan = this.spansAndLeafNodes.rowspanAndColspanMap;\n return this.thList.map((row, rowIndex) => {\n const thRow = row.map((col: BaseTableColumns[0], index: number) => {\n // 因合并单行表头,跳过\n if (this.colspanSkipMap[col.colKey]) return null;\n const rowspanAndColspan = thRowspanAndColspan.get(col);\n if (index === 0 && rowspanAndColspan.rowspan > 1) {\n for (let j = rowIndex + 1; j < rowIndex + rowspanAndColspan.rowspan; j++) {\n thBorderMap.set(this.thList[j][0], true);\n }\n }\n const thStyles = getColumnFixedStyles(col, index, rowAndColFixedPosition, this.tableColFixedClasses);\n const colParams = {\n col,\n colIndex: index,\n row: {},\n rowIndex: -1,\n };\n const customClasses = formatClassNames(col.className, { ...colParams, type: 'th' });\n const thCustomClasses = formatClassNames(col.thClassName, { ...colParams, type: 'th' });\n const isLeftFixedActive = this.showColumnShadow.left && col.fixed === 'left';\n const isRightFixedActive = this.showColumnShadow.right && col.fixed === 'right';\n const canDragSort = this.thDraggable && !(isLeftFixedActive || isRightFixedActive);\n const thClasses = [\n thStyles.classes,\n customClasses,\n thCustomClasses,\n {\n // 受 rowspan 影响,部分 tr > th:first-child 需要补足左边框\n [this.tableHeaderClasses.thBordered]: thBorderMap.get(col),\n [`${this.classPrefix}-table__th-${col.colKey}`]: col.colKey,\n [this.tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 允许拖拽的列类名\n [this.tableDraggableClasses.dragSortTh]: canDragSort,\n },\n ];\n const withoutChildren = !col.children?.length;\n const width = withoutChildren && thWidthList?.[col.colKey] ? `${thWidthList?.[col.colKey]}px` : undefined;\n const styles = { ...(thStyles.style || {}), width };\n const innerTh = renderTitle(this.slots, col, index);\n const resizeColumnListener =\n this.resizable || !canDragSort\n ? {\n onMousedown: (e: MouseEvent) => {\n if (this.resizable) {\n this.columnResizeParams?.onColumnMousedown?.(e, col, index);\n }\n if (!canDragSort) {\n const timer = setTimeout(() => {\n const thList = this.theadRef.querySelectorAll('th');\n thList[index]?.removeAttribute('draggable');\n clearTimeout(timer);\n }, 10);\n }\n },\n onMousemove: (e: MouseEvent) => {\n this.resizable && this.columnResizeParams?.onColumnMouseover?.(e, col);\n },\n }\n : {};\n const content = isFunction(col.ellipsisTitle) ? col.ellipsisTitle(h, { col, colIndex: index }) : undefined;\n const isEllipsis = col.ellipsisTitle !== undefined ? Boolean(col.ellipsisTitle) : Boolean(col.ellipsis);\n const attrs = (isFunction(col.attrs) ? col.attrs({ ...colParams, type: 'th' }) : col.attrs) || {};\n if (col.colspan > 1) {\n attrs.colspan = col.colspan;\n }\n return (\n \n
    \n {isEllipsis ? (\n this.getTableNode(this.theadRef) : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof col.ellipsisTitle === 'object' ? col.ellipsisTitle : undefined}\n overlayClassName={this.ellipsisOverlayClassName}\n classPrefix={this.classPrefix}\n >\n {innerTh}\n \n ) : (\n innerTh\n )}\n
    \n \n );\n });\n return
    {thRow};\n });\n };\n\n return (\n \n {renderThNodeList(this.rowAndColFixedPosition, this.thWidthList)}\n \n );\n },\n});\n","import { SetupContext, h, defineComponent, PropType, toRefs } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { BaseTableCellParams, RowspanColspan, TableRowData, TdBaseTableProps } from './type';\nimport { formatRowAttributes, formatRowClassNames } from './utils';\nimport { getColumnFixedStyles } from './hooks/useFixed';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useRowspanAndColspan, { getCellKey } from './hooks/useRowspanAndColspan';\nimport { RowAndColFixedPosition } from './interface';\nimport useClassName from './hooks/useClassName';\nimport { Styles } from '../common';\n\nexport interface TFootProps {\n rowKey: string;\n // 是否固定表头\n isFixedHeader: boolean;\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n footData: TdBaseTableProps['footData'];\n columns: TdBaseTableProps['columns'];\n rowAttributes: TdBaseTableProps['rowAttributes'];\n rowClassName: TdBaseTableProps['rowClassName'];\n // 表尾吸底内容宽度\n thWidthList?: { [colKey: string]: number };\n footerSummary?: TdBaseTableProps['footerSummary'];\n rowspanAndColspanInFooter: TdBaseTableProps['rowspanAndColspanInFooter'];\n\n // 是否虚拟滚动\n virtualScroll?: boolean;\n}\n\nexport default defineComponent({\n name: 'TFoot',\n\n props: {\n rowKey: String,\n isFixedHeader: Boolean,\n rowAndColFixedPosition: Map as PropType,\n footData: Array as PropType,\n columns: Array as PropType,\n rowAttributes: [Array, Object, Function] as PropType,\n rowClassName: [Array, String, Object, Function] as PropType,\n thWidthList: [Object] as PropType,\n footerSummary: [String, Function] as PropType,\n rowspanAndColspanInFooter: Function as PropType,\n virtualScroll: Boolean,\n },\n\n // eslint-disable-next-line\n setup(props: TFootProps, context: SetupContext) {\n const renderTNode = useTNodeJSX();\n const classnames = useClassName();\n const { footData, columns, rowKey, rowspanAndColspanInFooter } = toRefs(props);\n const { skipSpansMap } = useRowspanAndColspan(footData, columns, rowKey, rowspanAndColspanInFooter);\n const renderTFootCell = (p: BaseTableCellParams) => {\n const { col, row } = p;\n if (isFunction(col.foot)) {\n return col.foot(h, p);\n }\n if (isString(col.foot) && context.slots[col.foot]) {\n return context.slots[col.foot](p) || col.foot;\n }\n return col.foot || get(row, col.colKey);\n };\n\n return {\n skipSpansMap,\n ...classnames,\n renderTFootCell,\n renderTNode,\n };\n },\n\n render() {\n if (!this.columns) return null;\n // 虚拟滚动情况下,不使用 sticky 定位,外部通过 affix 实现 footer\n const theadClasses = [this.tableFooterClasses.footer, { [this.tableFooterClasses.fixed]: this.isFixedHeader }];\n const footerDomList = this.footData?.map((row, rowIndex) => {\n const trAttributes = formatRowAttributes(this.rowAttributes, { row, rowIndex, type: 'foot' });\n // 自定义行类名\n const customClasses = formatRowClassNames(\n this.rowClassName,\n { row, rowIndex, type: 'foot' },\n this.rowKey || 'id',\n );\n return (\n \n {this.columns.map((col, colIndex) => {\n // 合并单元格过滤\n const cellSpans: RowspanColspan = {};\n let spanState = null;\n if (this.skipSpansMap.size) {\n const cellKey = getCellKey(row, this.rowKey, col.colKey, colIndex);\n spanState = this.skipSpansMap.get(cellKey) || {};\n spanState?.rowspan > 1 && (cellSpans.rowspan = spanState.rowspan);\n spanState?.colspan > 1 && (cellSpans.colspan = spanState.colspan);\n if (spanState.skipped) return null;\n }\n const tdStyles = getColumnFixedStyles(\n col,\n colIndex,\n this.rowAndColFixedPosition,\n this.tableColFixedClasses,\n );\n const style: Styles = { ...tdStyles.style };\n if (this.thWidthList?.[col.colKey]) {\n style.width = `${this.thWidthList[col.colKey]}px`;\n }\n return (\n \n );\n })}\n \n );\n });\n const footerSummary = this.renderTNode('footerSummary');\n // 都不存在,则不需要渲染 footer\n if (!footerSummary && (!this.footData || !this.footData.length)) return null;\n return (\n // 虚拟滚动下,不显示 footer,但预留元素,用于高度计算\n \n {footerSummary && (\n \n \n \n )}\n {footerDomList}\n \n );\n },\n});\n","import { ref, Ref, toRefs } from 'vue';\nimport { get } from 'lodash-es';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { BaseTableProps } from '../interface';\nimport { RowEventContext, TableRowData } from '../type';\nimport { on, off } from '../../utils/dom';\nimport {\n ARROW_DOWN_REG,\n ARROW_UP_REG,\n ESCAPE_REG,\n SPACE_REG,\n SHIFT_REG,\n CLEAR_REG,\n ALL_REG,\n} from '@tdesign/common-js/common';\n\n/**\n * 行高亮功能,支持键盘操作\n */\nexport function useRowHighlight(props: BaseTableProps, tableRef: Ref) {\n const { data, activeRowType, activeRowKeys, defaultActiveRowKeys, disableSpaceInactiveRow } = toRefs(props);\n const currentOperationRowIndex = ref(-1);\n const isShiftPressed = ref(false);\n const shiftSelectionState = ref(false);\n const areaSelectionStartIndex = ref(-1);\n\n const [tActiveRow, setTActiveRow] = useDefaultValue(\n activeRowKeys,\n defaultActiveRowKeys.value,\n props.onActiveChange,\n 'activeRowKeys',\n );\n\n const handleInactive = (ctx: RowEventContext) => {\n const { row, index } = ctx;\n const rowValue = get(row, props.rowKey);\n if (activeRowType.value === 'single') {\n const newActiveRowKeys = tActiveRow.value.length > 1 ? [rowValue] : [];\n setTActiveRow(newActiveRowKeys, {\n type: 'inactive',\n activeRowList: [{ row, rowIndex: index }],\n currentRowData: row,\n });\n } else if (activeRowType.value === 'multiple') {\n const newActiveRowKeys = tActiveRow.value.filter((t) => t !== rowValue);\n const activeRowList: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = 0, len = data.value.length; i < len; i++) {\n const row = data.value[i];\n if (newActiveRowKeys.includes(get(row, props.rowKey))) {\n activeRowList.push({ row, rowIndex: i });\n }\n }\n setTActiveRow(newActiveRowKeys, {\n type: 'inactive',\n activeRowList,\n currentRowData: row,\n });\n }\n };\n\n const handleActive = (ctx: RowEventContext) => {\n const { row } = ctx;\n const rowValue = get(row, props.rowKey);\n if (activeRowType.value === 'single') {\n setTActiveRow([rowValue], {\n activeRowList: [{ row, rowIndex: ctx.index }],\n currentRowData: row,\n type: 'active',\n });\n } else {\n const newActiveRowKeys = tActiveRow.value.concat(rowValue);\n const activeRowList: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = 0, len = data.value.length; i < len; i++) {\n const row = data.value[i];\n if (newActiveRowKeys.includes(get(row, props.rowKey))) {\n activeRowList.push({ row, rowIndex: i });\n }\n }\n setTActiveRow(newActiveRowKeys, {\n activeRowList,\n currentRowData: row,\n type: 'active',\n });\n }\n };\n\n const handleShiftActive = (ctx: RowEventContext) => {\n document.getSelection().removeAllRanges();\n const { row } = ctx;\n const currentIndex = currentOperationRowIndex.value;\n const startIndex = Math.min(areaSelectionStartIndex.value, currentIndex);\n const endIndex = Math.max(areaSelectionStartIndex.value, currentIndex);\n const newActiveRowData: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = startIndex; i <= endIndex; i++) {\n newActiveRowData.push({ row: data.value[i], rowIndex: i });\n }\n const newActiveRowKeys = newActiveRowData.map((item) => get(item.row, props.rowKey));\n setTActiveRow(newActiveRowKeys, {\n activeRowList: newActiveRowData,\n type: 'active',\n currentRowData: row,\n });\n };\n\n const getActiveRowList = () => {\n const list: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = 0, len = data.value.length; i < len; i++) {\n const row = data.value[i];\n const rowValue = get(row, props.rowKey);\n if (tActiveRow.value.includes(rowValue)) {\n list.push({ row, rowIndex: i });\n }\n }\n return list;\n };\n\n const onHighlightRow = (ctx: RowEventContext, extra?: { action?: 'active' | 'inactive' }) => {\n if (!activeRowType.value) return;\n const { row, index } = ctx;\n const rowValue = get(row, props.rowKey);\n // 如果是连续选中\n if (isShiftPressed.value) {\n currentOperationRowIndex.value = index;\n handleShiftActive(ctx);\n shiftSelectionState.value = true;\n } else if (tActiveRow.value.includes(rowValue) && extra?.action !== 'active') {\n if (!disableSpaceInactiveRow.value) {\n // 如果已经高亮,则取消高亮\n handleInactive(ctx);\n currentOperationRowIndex.value = index;\n }\n } else {\n // 如果没有高亮,则设置高亮\n handleActive(ctx);\n currentOperationRowIndex.value = index;\n }\n };\n\n const clearActive = () => {\n setTActiveRow([], {\n activeRowList: [],\n currentRowData: undefined,\n type: 'inactive',\n });\n props.onActiveRowAction?.({ action: 'clear', activeRowList: [] });\n currentOperationRowIndex.value = -1;\n };\n\n const setAllActive = () => {\n const activeKeys = data.value.map((item) => get(item, props.rowKey));\n const activeRowList = data.value.map((row, rowIndex) => ({ row, rowIndex }));\n setTActiveRow(activeKeys, {\n activeRowList,\n currentRowData: undefined,\n type: 'active',\n });\n props.onActiveRowAction?.({ action: 'select-all', activeRowList });\n currentOperationRowIndex.value = -1;\n };\n\n const clearShiftAreaSelection = () => {\n shiftSelectionState.value = false;\n };\n\n const keyboardDownListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n\n if (ARROW_DOWN_REG.test(code)) {\n e.preventDefault();\n const index = Math.min(data.value.length - 1, currentOperationRowIndex.value + 1);\n if (activeRowType.value === 'single') {\n onHighlightRow({ row: data.value[index], index, e }, { action: 'active' });\n } else {\n currentOperationRowIndex.value = index;\n }\n } else if (ARROW_UP_REG.test(code)) {\n e.preventDefault();\n const index = Math.max(0, currentOperationRowIndex.value - 1);\n if (activeRowType.value === 'single') {\n onHighlightRow({ row: data.value[index], index, e }, { action: 'active' });\n } else {\n currentOperationRowIndex.value = index;\n }\n } else if (SPACE_REG.test(code)) {\n e.preventDefault();\n // keydown space to active or inactive\n const index = currentOperationRowIndex.value;\n // area selection can not cancel active with keydown space\n if (shiftSelectionState.value) {\n props.onActiveRowAction?.({\n action: 'shift-area-selection',\n activeRowList: getActiveRowList(),\n });\n } else if (!disableSpaceInactiveRow.value) {\n onHighlightRow({ row: data.value[index], index, e });\n } else {\n props.onActiveRowAction?.({\n action: 'space-one-selection',\n activeRowList: getActiveRowList(),\n });\n }\n } else if (SHIFT_REG.test(code)) {\n // shift 连续选中开始\n isShiftPressed.value = true;\n areaSelectionStartIndex.value = currentOperationRowIndex.value;\n } else if (ESCAPE_REG.test(code) || CLEAR_REG.test(code)) {\n // 清空\n clearActive();\n clearShiftAreaSelection();\n } else if (ALL_REG.test(code)) {\n // 全选\n setAllActive();\n }\n\n if (!SPACE_REG.test(code)) {\n clearShiftAreaSelection();\n }\n };\n\n const keyboardUpListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n if (SHIFT_REG.test(code)) {\n isShiftPressed.value = false;\n }\n };\n\n const addHighlightKeyboardListener = () => {\n on(tableRef.value, 'keydown', keyboardDownListener);\n on(tableRef.value, 'keyup', keyboardUpListener);\n };\n\n const removeHighlightKeyboardListener = () => {\n off(tableRef.value, 'keydown', keyboardDownListener);\n off(tableRef.value, 'keyup', keyboardUpListener);\n };\n\n return {\n tActiveRow,\n onHighlightRow,\n addHighlightKeyboardListener,\n removeHighlightKeyboardListener,\n };\n}\n\nexport default useRowHighlight;\n","import { computed, defineComponent, SetupContext, ref, nextTick, PropType, watch, onMounted, toRefs } from 'vue';\nimport { pick } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport props from './base-table-props';\nimport useTableHeader from './hooks/useTableHeader';\nimport useColumnResize from './hooks/useColumnResize';\nimport useFixed from './hooks/useFixed';\nimport usePagination from './hooks/usePagination';\nimport useVirtualScrollNew from '../hooks/useVirtualScrollNew';\nimport useAffix from './hooks/useAffix';\nimport Loading from '../loading';\nimport TBody, { extendTableProps } from './tbody';\nimport { BaseTableProps } from './interface';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useClassName from './hooks/useClassName';\nimport { useConfig } from '../hooks/useConfig';\nimport { Affix } from '../affix';\nimport { ROW_LISTENERS } from './tr';\nimport THead from './thead';\nimport TFoot from './tfoot';\nimport { getAffixProps } from './utils';\nimport { Styles, ComponentScrollToElementParams } from '../common';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { BaseTableInstanceFunctions } from './type';\nimport log from '@tdesign/common-js/log/index';\nimport { useRowHighlight } from './hooks/useRowHighlight';\nimport useHoverKeyboardEvent from './hooks/useHoverKeyboardEvent';\nimport useElementLazyRender from '../hooks/useElementLazyRender';\nimport { isFunction } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nexport const BASE_TABLE_EVENTS = ['page-change', 'cell-click', 'scroll', 'scrollX', 'scrollY'];\nexport const BASE_TABLE_ALL_EVENTS = ROW_LISTENERS.map((t) => `row-${t}`).concat(BASE_TABLE_EVENTS);\n\nexport interface TableListeners {\n [key: string]: Function;\n}\n\nexport default defineComponent({\n name: 'TBaseTable',\n\n props: {\n ...props,\n /**\n * 渲染展开行,非公开属性,请勿在业务中使用\n */\n renderExpandedRow: Function as PropType,\n onLeafColumnsChange: Function as PropType,\n thDraggable: Boolean,\n },\n\n emits: ['show-element-change'],\n\n setup(props: BaseTableProps, context: SetupContext) {\n const { lazyLoad } = toRefs(props);\n const renderTNode = useTNodeJSX();\n const tableRef = ref();\n const tableElmRef = ref();\n const tableBodyRef = ref>();\n const bottomContentRef = ref();\n const tableFootHeight = ref(0);\n const { classPrefix, virtualScrollClasses, tableLayoutClasses, tableBaseClass, tableColFixedClasses } =\n useClassName();\n // 表格基础样式类\n const { tableClasses, sizeClassNames, tableContentStyles, tableElementStyles } = useStyle(props);\n const { globalConfig } = useConfig('table', props.locale);\n const { isMultipleHeader, spansAndLeafNodes, thList } = useTableHeader(props);\n const finalColumns = computed(() => spansAndLeafNodes.value?.leafColumns || props.columns);\n const tableSize = computed(() => props.size ?? globalConfig.value.size);\n\n const { showElement } = useElementLazyRender(tableRef, lazyLoad);\n\n // 吸附相关ref 用来做视图resize后重新定位\n const paginationAffixRef = ref();\n const horizontalScrollAffixRef = ref();\n const headerTopAffixRef = ref();\n const footerBottomAffixRef = ref();\n\n // 固定表头和固定列逻辑\n const {\n scrollbarWidth,\n virtualScrollHeaderPos,\n tableWidth,\n tableElmWidth,\n tableContentRef,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n thWidthList,\n showColumnShadow,\n rowAndColFixedPosition,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n setUseFixedTableElmRef,\n updateColumnFixedShadow,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n } = useFixed(props, context, finalColumns, {\n paginationAffixRef,\n horizontalScrollAffixRef,\n headerTopAffixRef,\n footerBottomAffixRef,\n });\n\n // 1. 表头吸顶;2. 表尾吸底;3. 底部滚动条吸底;4. 分页器吸底\n const {\n affixHeaderRef,\n affixFooterRef,\n horizontalScrollbarRef,\n paginationRef,\n showAffixHeader,\n showAffixFooter,\n showAffixPagination,\n onHorizontalScroll,\n setTableContentRef,\n updateAffixHeaderOrFooter,\n } = useAffix(props);\n\n const { dataSource, innerPagination, isPaginateData, renderPagination } = usePagination(props, context);\n\n // 列宽拖拽逻辑\n const columnResizeParams = useColumnResize({\n isWidthOverflow,\n tableContentRef,\n showColumnShadow,\n getThWidthList,\n updateThWidthList,\n setTableElmWidth,\n updateTableAfterColumnResize,\n onColumnResizeChange: props.onColumnResizeChange,\n });\n const { resizeLineRef, resizeLineStyle, setEffectColMap } = columnResizeParams;\n\n const dynamicBaseTableClasses = computed(() => [\n tableClasses.value,\n {\n [tableBaseClass.headerFixed]: isFixedHeader.value,\n [tableBaseClass.columnFixed]: isFixedColumn.value,\n [tableBaseClass.widthOverflow]: isWidthOverflow.value,\n [tableBaseClass.multipleHeader]: isMultipleHeader.value,\n [tableColFixedClasses.leftShadow]: showColumnShadow.left,\n [tableColFixedClasses.rightShadow]: showColumnShadow.right,\n [tableBaseClass.columnResizableTable]: props.resizable,\n [`${classPrefix}-table__row--active-${props.activeRowType}`]: props.activeRowType,\n },\n ]);\n\n const tableElmClasses = computed(() => [[tableLayoutClasses[props.tableLayout]]]);\n\n const showRightDivider = computed(\n () =>\n props.bordered &&\n isFixedHeader.value &&\n ((isMultipleHeader.value && isWidthOverflow.value) || !isMultipleHeader.value),\n );\n\n const dividerBottom = computed(() => {\n if (!props.bordered) return 0;\n const bottomRect = bottomContentRef.value?.getBoundingClientRect();\n const paginationRect = paginationRef.value?.getBoundingClientRect();\n return (bottomRect?.height || 0) + (paginationRect?.height || 0);\n });\n\n // 行高亮\n const { tActiveRow, onHighlightRow, addHighlightKeyboardListener, removeHighlightKeyboardListener } =\n useRowHighlight(props, tableRef);\n\n const {\n hoverRow,\n needKeyboardRowHover,\n clearHoverRow,\n addRowHoverKeyboardListener,\n removeRowHoverKeyboardListener,\n tableRefTabIndex,\n } = useHoverKeyboardEvent(props, tableRef);\n\n watch(tableElmRef, () => {\n setUseFixedTableElmRef(tableElmRef.value);\n });\n\n watch(\n () => [props.data, dataSource],\n () => {\n setData(isPaginateData.value ? dataSource.value : props.data);\n },\n );\n\n watch(\n spansAndLeafNodes,\n () => {\n props.onLeafColumnsChange?.(spansAndLeafNodes.value.leafColumns);\n setEffectColMap(spansAndLeafNodes.value.leafColumns, null);\n },\n { immediate: true },\n );\n\n const onFixedChange = () => {\n nextTick(() => {\n onHorizontalScroll();\n updateAffixHeaderOrFooter();\n });\n };\n\n const syncThWidthList = throttle(() => {\n updateThWidthList(getThWidthList('calculate'));\n });\n\n // 虚拟滚动相关数据\n const virtualScrollParams = computed(() => ({\n data: props.data,\n // 传递 fixedRows 的配置\n scroll: { ...props.scroll, fixedRows: props.fixedRows },\n }));\n const virtualConfig = useVirtualScrollNew(tableContentRef, virtualScrollParams);\n\n let lastScrollY = -1;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n } else {\n lastScrollY = -1;\n updateColumnFixedShadow(target);\n }\n lastScrollY = top;\n emitScrollEvent(e);\n if (props.tableLayout === 'auto') {\n syncThWidthList();\n }\n };\n\n // used for top margin\n const getTFootHeight = () => {\n if (!tableElmRef.value) return;\n tableFootHeight.value = tableElmRef.value.querySelector('tfoot')?.getBoundingClientRect().height;\n };\n\n // 对外暴露方法,修改时需谨慎(expose)\n const scrollColumnIntoView: BaseTableInstanceFunctions['scrollColumnIntoView'] = (colKey: string) => {\n if (!tableContentRef.value) return;\n const thDom = tableContentRef.value.querySelector(`th[data-colkey=\"${colKey}\"]`);\n const fixedThDom = tableContentRef.value.querySelectorAll('th.t-table__cell--fixed-left');\n let totalWidth = 0;\n for (let i = 0, len = fixedThDom.length; i < len; i++) {\n totalWidth += fixedThDom[i].getBoundingClientRect().width;\n }\n const domRect = thDom.getBoundingClientRect();\n const contentRect = tableContentRef.value.getBoundingClientRect();\n const distance = domRect.left - contentRect.left - totalWidth;\n tableContentRef.value.scrollTo({ left: distance, behavior: 'smooth' });\n };\n\n watch(tableContentRef, () => {\n setTableContentRef(tableContentRef.value);\n // auto 布局下,初始化表头列宽,避免 affix 表头列宽不对齐\n if (props.tableLayout === 'auto') {\n syncThWidthList();\n }\n });\n\n // 应该有多种情况下需要更新 foot 高度\n // 原方案只监听 tableElmRef,但是可能有异步渲染的情况,footer 的渲染晚于 dom 引用的产生\n // 加入 timeout,避免渲染延迟导致的高度获取失败\n watch(\n () => [tableElmRef.value, props.footData, props.footerSummary, props.columns],\n () => {\n const timer = setTimeout(() => {\n getTFootHeight();\n clearTimeout(timer);\n }, 0);\n },\n );\n\n watch(tableRef, (tableRef) => {\n addTableResizeObserver(tableRef);\n });\n\n onMounted(() => {\n getTFootHeight();\n setTableContentRef(tableContentRef.value);\n addTableResizeObserver(tableRef.value);\n });\n\n const onTableFocus = () => {\n props.activeRowType && addHighlightKeyboardListener();\n needKeyboardRowHover.value && addRowHoverKeyboardListener();\n };\n\n const onTableBlur = () => {\n props.activeRowType && removeHighlightKeyboardListener();\n needKeyboardRowHover.value && removeRowHoverKeyboardListener();\n };\n\n const onInnerRowClick: BaseTableProps['onRowClick'] = (ctx) => {\n props.onRowClick?.(ctx);\n props.activeRowType && onHighlightRow(ctx);\n needKeyboardRowHover.value && clearHoverRow();\n };\n\n watch(\n [showElement],\n ([showElement]) => {\n context.emit('show-element-change', showElement);\n },\n { immediate: true },\n );\n\n const tableData = computed(() => (isPaginateData.value ? dataSource.value : props.data));\n\n const scrollToElement = (params: ComponentScrollToElementParams) => {\n let { index } = params;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Table', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = tableData.value?.findIndex((item) => get(item, props.rowKey) === params.key);\n if (index < 0) {\n log.error('Table', `${params.key} does not exist in data, check \\`rowKey\\` or \\`data\\` please.`);\n }\n }\n if (virtualConfig.isVirtualScroll.value) {\n virtualConfig.scrollToElement({ ...params, index: index + 1 });\n } else {\n // 执行普通的滚动\n // 获取 tbody\n const el = tableBodyRef.value?.$el as HTMLElement | undefined;\n const row = el?.children?.[index] as HTMLElement;\n if (row) {\n const { offsetTop } = row;\n const scrollTop = tableContentRef.value.scrollTop;\n const scrollHeight = offsetTop - scrollTop - (params.top ?? 0);\n // 实现偏移量的支持\n tableContentRef.value.scrollBy({ top: scrollHeight, behavior: params.behavior ?? 'auto' });\n }\n }\n };\n\n return {\n thList,\n classPrefix,\n innerPagination,\n globalConfig,\n tableFootHeight,\n virtualScrollHeaderPos,\n tableSize,\n tableWidth,\n tableElmWidth,\n tableRef,\n tableElmRef,\n sizeClassNames,\n tableBaseClass,\n spansAndLeafNodes,\n dynamicBaseTableClasses,\n tableContentStyles,\n tableElementStyles,\n dividerBottom,\n virtualScrollClasses,\n tableLayoutClasses,\n tableElmClasses,\n tableContentRef,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n rowAndColFixedPosition,\n showColumnShadow,\n thWidthList,\n isPaginateData,\n dataSource,\n affixHeaderRef,\n affixFooterRef,\n bottomContentRef,\n paginationRef,\n showAffixHeader,\n showAffixFooter,\n scrollbarWidth,\n isMultipleHeader,\n showRightDivider,\n resizeLineRef,\n resizeLineStyle,\n columnResizeParams,\n horizontalScrollbarRef,\n tableBodyRef,\n virtualConfig,\n showAffixPagination,\n tActiveRow,\n hoverRow,\n showElement,\n scrollToElement,\n renderPagination,\n renderTNode,\n onFixedChange,\n onHorizontalScroll,\n updateAffixHeaderOrFooter,\n onInnerVirtualScroll,\n refreshTable,\n scrollColumnIntoView,\n onTableFocus,\n onTableBlur,\n onInnerRowClick,\n paginationAffixRef,\n horizontalScrollAffixRef,\n headerTopAffixRef,\n footerBottomAffixRef,\n tableRefTabIndex,\n };\n },\n\n render() {\n if (!this.showElement) {\n return
    ;\n }\n\n const { rowAndColFixedPosition, tableLayout } = this;\n const data = this.isPaginateData ? this.dataSource : this.data;\n const columns = this.spansAndLeafNodes?.leafColumns || this.columns;\n\n const columnResizable = this.allowResizeColumnWidth ?? this.resizable;\n if (columnResizable && tableLayout === 'auto') {\n log.warn(\n 'Table',\n 'table-layout can not be `auto`, cause you are using column resizable, set `table-layout: fixed` please.',\n );\n }\n\n const defaultColWidth = tableLayout === 'fixed' && this.isWidthOverflow ? '100px' : undefined;\n\n const renderColGroup = (isAffixHeader = true) => (\n
    \n {columns.map((col) => {\n const style: Styles = {\n width:\n formatCSSUnit(\n (isAffixHeader || columnResizable ? this.thWidthList[col.colKey] : undefined) || col.width,\n ) || defaultColWidth,\n };\n if (col.minWidth) {\n style.minWidth = formatCSSUnit(col.minWidth);\n }\n // 没有设置任何宽度的场景下,需要保留表格正常显示的最小宽度,否则会出现因宽度过小的抖动问题\n if (!style.width && !col.minWidth && this.tableLayout === 'fixed') {\n style.minWidth = '80px';\n }\n return ;\n })}\n \n );\n\n const renderAffixedHeader = () => {\n if (this.showHeader === false) return null;\n return (\n !!(this.virtualConfig.isVirtualScroll.value || this.headerAffixedTop) &&\n (this.headerAffixedTop ? (\n \n {affixHeaderWithWrap}\n \n ) : (\n this.isFixedHeader && affixHeaderWithWrap\n ))\n );\n };\n\n const renderAffixedHorizontalScrollbar = () => (\n \n \n
    \n \n \n );\n\n const headProps = {\n isFixedHeader: this.isFixedHeader,\n rowAndColFixedPosition: this.rowAndColFixedPosition,\n isMultipleHeader: this.isMultipleHeader,\n bordered: this.bordered,\n maxHeight: this.maxHeight,\n height: this.height,\n spansAndLeafNodes: this.spansAndLeafNodes,\n thList: this.thList,\n thWidthList: this.thWidthList,\n resizable: this.resizable,\n columnResizeParams: this.columnResizeParams,\n classPrefix: this.classPrefix,\n ellipsisOverlayClassName: this.tableSize !== 'medium' ? this.sizeClassNames[this.tableSize] : '',\n attach: this.attach,\n showColumnShadow: this.showColumnShadow,\n thDraggable: this.thDraggable,\n };\n\n /**\n * Affixed Header\n */\n // IE 浏览器需要遮挡 header 吸顶滚动条,要减去 getBoundingClientRect.height 的滚动条高度 4 像素\n const IEHeaderWrap = getIEVersion() <= 11 ? 4 : 0;\n const barWidth = this.isWidthOverflow ? this.scrollbarWidth : 0;\n const affixHeaderHeight = ref((this.affixHeaderRef?.getBoundingClientRect().height || 0) - IEHeaderWrap);\n // 等待表头渲染完成后再更新高度,有可能列变动带来多级表头的高度变化,错误高度会导致滚动条显示\n const timer = setTimeout(() => {\n affixHeaderHeight.value = (this.affixHeaderRef?.getBoundingClientRect().height || 0) - IEHeaderWrap;\n clearTimeout(timer);\n }, 0);\n const affixHeaderWrapHeight = computed(() => affixHeaderHeight.value - barWidth);\n // 两类场景:1. 虚拟滚动,永久显示表头,直到表头消失在可视区域; 2. 表头吸顶,根据滚动情况判断是否显示吸顶表头\n const headerOpacity = props.headerAffixedTop ? Number(this.showAffixHeader) : 1;\n const affixHeaderWrapHeightStyle = computed(() => {\n return {\n width: `${this.tableWidth}px`,\n height: `${affixHeaderWrapHeight.value}px`,\n opacity: headerOpacity,\n };\n });\n // 多级表头左边线缺失\n const affixedLeftBorder = this.bordered ? 1 : 0;\n const affixedHeader = Boolean(\n (this.headerAffixedTop || this.virtualConfig.isVirtualScroll.value) && this.tableWidth,\n ) && (\n \n
    \n {col.ellipsis ? renderEllipsisCell(params, { cellNode }) : cellNode}\n ]\n : columVNodeList}\n
    \n \n {this.renderTNode('empty') || this.t(this.globalConfig.empty)}\n \n
    \n \n
    {fullRowNode}
    \n \n
    \n {this.renderTFootCell({\n row,\n rowIndex,\n col,\n colIndex,\n })}\n
    \n
    {footerSummary}
    \n
    \n {renderColGroup(true)}\n \n
    \n \n );\n\n // 添加这一层,是为了隐藏表头的横向滚动条。如果以后不需要照顾 IE 10 以下的项目,则可直接移除这一层\n // 彼时,可更为使用 CSS 样式中的 .hideScrollbar()\n const affixHeaderWithWrap = (\n
    \n {affixedHeader}\n
    \n );\n\n /**\n * Affixed Footer\n */\n let marginScrollbarWidth = this.isWidthOverflow ? this.scrollbarWidth : 0;\n if (this.bordered) {\n marginScrollbarWidth += 1;\n }\n // Hack: Affix 组件,marginTop 临时使用 负 margin 定位位置\n const showFooter = Boolean(this.virtualConfig.isVirtualScroll.value || this.footerAffixedBottom);\n const hasFooter = this.footData?.length || this.footerSummary || this.$slots['footerSummary'];\n const affixedFooter = Boolean(showFooter && hasFooter && this.tableWidth) && (\n \n \n \n {/* 此处和 Vue2 不同,Vue3 里面必须每一处单独写 */}\n {renderColGroup(true)}\n \n
    \n \n \n );\n\n // 通过 translate 撑开虚拟滚动的高度,应该是内容高度加上表头和表尾的高度\n const translate = `translate(0, ${\n this.virtualConfig.scrollHeight.value + (this.tableFootHeight ?? 0) + (affixHeaderHeight.value ?? 0)\n }px)`;\n const virtualStyle = {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n };\n const tableBodyProps = {\n classPrefix: this.classPrefix,\n ellipsisOverlayClassName: this.tableSize !== 'medium' ? this.sizeClassNames[this.tableSize] : '',\n rowAndColFixedPosition,\n showColumnShadow: this.showColumnShadow,\n data: data,\n virtualConfig: this.virtualConfig,\n columns: this.spansAndLeafNodes.leafColumns,\n tableElm: this.tableRef,\n tableWidth: this.tableWidth,\n isWidthOverflow: this.isWidthOverflow,\n scroll: this.scroll,\n cellEmptyContent: this.cellEmptyContent,\n tableContentElm: this.tableContentRef,\n handleRowMounted: this.virtualConfig.handleRowMounted,\n renderExpandedRow: this.renderExpandedRow,\n ...pick(this.$props, extendTableProps),\n // 内部使用分页信息必须取 innerPagination\n pagination: this.innerPagination,\n attach: this.attach,\n hoverRow: this.hoverRow,\n activeRow: this.tActiveRow,\n onRowClick: this.onInnerRowClick,\n };\n const tableContent = (\n \n {this.virtualConfig.isVirtualScroll.value && (\n
    \n )}\n\n \n {renderColGroup(false)}\n {this.showHeader && (\n \n )}\n \n \n \n
    \n );\n\n const getCustomLoadingText = isFunction(this.loading) ? this.loading : this.$slots.loading;\n const loadingContent = this.loading !== undefined && (\n this.tableRef : undefined}\n showOverlay\n size=\"small\"\n {...(this.loadingProps as BaseTableProps['loadingProps'])}\n >\n );\n\n const topContent = this.renderTNode('topContent');\n const bottomContent = this.renderTNode('bottomContent');\n const pagination = (\n \n {this.renderPagination()}\n \n );\n\n const bottom = !!bottomContent && (\n
    \n {bottomContent}\n
    \n );\n\n return (\n \n {!!topContent &&
    {topContent}
    }\n\n {renderAffixedHeader()}\n\n {tableContent}\n\n {affixedFooter}\n\n {loadingContent}\n\n {bottom}\n\n {/* 右侧滚动条分隔线 */}\n {this.showRightDivider && (\n \n )}\n\n {/* 吸底的滚动条 */}\n {this.horizontalScrollAffixedBottom && renderAffixedHorizontalScrollbar()}\n\n {/* 吸底的分页器 */}\n {this.paginationAffixedBottom ? (\n \n {pagination}\n \n ) : (\n pagination\n )}\n\n {/* 调整列宽时的指示线。由于层级需要比较高,因而放在根节点,避免被吸顶表头覆盖。非必要情况,请勿调整辅助线位置 */}\n
    \n \n );\n },\n});\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useElementLazyRender(labelRef: Ref, lazyLoad: Ref) {\n const ioObserver = ref();\n const showElement = ref(true);\n\n const handleLazyLoad = () => {\n if (!lazyLoad.value || !labelRef.value || ioObserver.value) return;\n showElement.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showElement.value = true;\n },\n 10,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n lazyLoad.value && watch([lazyLoad, labelRef], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value?.unobserve?.(labelRef.value);\n });\n\n return {\n showElement,\n };\n}\n\nexport default useElementLazyRender;\n","import { toRefs, Ref, ref, computed } from 'vue';\nimport { get } from 'lodash-es';\nimport { BaseTableProps } from '../interface';\nimport { on, off } from '../../utils/dom';\nimport {\n ALL_REG,\n ARROW_DOWN_REG,\n ARROW_UP_REG,\n CLEAR_REG,\n ESCAPE_REG,\n SPACE_REG,\n ARROW_LEFT_REG,\n ARROW_RIGHT_REG,\n} from '@tdesign/common-js/common';\nimport { RowEventContext, TableRowData } from '../type';\n\n/**\n * 需要进行表格行操作时,则需要键盘操作的悬浮效果来表达当前的哪一行\n * 如:高亮多行、行选中、行展开等功能\n */\nexport function useHoverKeyboardEvent(props: BaseTableProps, tableRef: Ref) {\n const { hover, data, activeRowType, keyboardRowHover, disableSpaceInactiveRow } = toRefs(props);\n const hoverRow = ref();\n const currentHoverRowIndex = ref(-1);\n const tableRefTabIndex = ref(0);\n\n // 单行高亮场景,不需要键盘悬浮效果\n const needKeyboardRowHover = computed(() => {\n if (activeRowType.value === 'single') return false;\n if (activeRowType.value === 'multiple') return true;\n return hover.value || keyboardRowHover.value;\n });\n\n const onHoverRow = (ctx: RowEventContext, extra?: { action?: 'hover' }) => {\n const rowValue = get(ctx.row, props.rowKey);\n if (hoverRow.value === rowValue && extra?.action !== 'hover') {\n if (!disableSpaceInactiveRow.value) {\n hoverRow.value = undefined;\n }\n } else {\n hoverRow.value = rowValue;\n }\n currentHoverRowIndex.value = ctx.index;\n };\n\n const clearHoverRow = () => {\n hoverRow.value = undefined;\n currentHoverRowIndex.value = -1;\n };\n\n const keyboardDownListener = (e: KeyboardEvent) => {\n if (!needKeyboardRowHover.value) return;\n const code = e.code || e.key?.trim();\n if (ARROW_DOWN_REG.test(code)) {\n e.preventDefault();\n const index = Math.min(data.value.length - 1, currentHoverRowIndex.value + 1);\n onHoverRow({ row: data.value[index], index, e }, { action: 'hover' });\n } else if (ARROW_UP_REG.test(code)) {\n e.preventDefault();\n const index = Math.max(0, currentHoverRowIndex.value - 1);\n onHoverRow({ row: data.value[index], index, e }, { action: 'hover' });\n } else if (SPACE_REG.test(code) && props.activeRowType !== 'multiple') {\n const index = currentHoverRowIndex.value;\n onHoverRow({ row: data.value[index], index, e });\n\n if (!props.activeRowType) {\n props.onActiveRowAction?.({\n action: 'space-one-selection',\n activeRowList: [{ row: data.value[index], rowIndex: index }],\n });\n }\n } else if (ESCAPE_REG.test(code) && !props.activeRowType) {\n hoverRow.value = undefined;\n props.onActiveRowAction?.({ action: 'clear', activeRowList: [] });\n } else if (ALL_REG.test(code) && !props.activeRowType) {\n props.onActiveRowAction?.({ action: 'select-all', activeRowList: [] });\n // fix: https://github.com/Tencent/tdesign-vue-next/issues/4990 ↓\n } else if (CLEAR_REG.test(code) && !props.activeRowType && !e.ctrlKey && !e.metaKey) {\n props.onActiveRowAction?.({ action: 'clear', activeRowList: [] });\n }\n\n // 用于支持键盘默认的左右滚动,左右滚动时重置为undefined,其他情况下为0,支持键盘操作\n if (ARROW_LEFT_REG.test(code) || ARROW_RIGHT_REG.test(code)) {\n tableRefTabIndex.value = undefined;\n } else {\n tableRefTabIndex.value = 0;\n }\n };\n\n const addRowHoverKeyboardListener = () => {\n on(tableRef.value, 'keydown', keyboardDownListener);\n };\n\n const removeRowHoverKeyboardListener = () => {\n off(tableRef.value, 'keydown', keyboardDownListener);\n };\n\n return {\n hoverRow,\n needKeyboardRowHover,\n clearHoverRow,\n addRowHoverKeyboardListener,\n removeRowHoverKeyboardListener,\n tableRefTabIndex,\n };\n}\n\nexport default useHoverKeyboardEvent;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPrimaryTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 异步加载状态。值为 `loading` 显示默认文字 “正在加载中,请稍后”,值为 `loading-more` 显示“点击加载更多”,值为其他,表示完全自定义异步加载区域内容 */\n asyncLoading: {\n type: [String, Function] as PropType,\n },\n /** 自定义显示列控制器,值为空不会显示。具体属性请看下方 `TableColumnController` 文档 */\n columnController: {\n type: Object as PropType,\n },\n /** 是否显示列配置弹框控制器,只要该属性值不为 `undefined`,弹框的显示/隐藏完全由该属性控制 */\n columnControllerVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示列配置弹框控制器,只要该属性值不为 `undefined`,弹框的显示/隐藏完全由该属性控制,非受控属性 */\n defaultColumnControllerVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 列配置,泛型 T 指表格数据类型 */\n columns: {\n type: Array as PropType,\n default: (): TdPrimaryTableProps['columns'] => [],\n },\n /** 列配置功能中,当前显示的列 */\n displayColumns: {\n type: Array as PropType,\n default: undefined as TdPrimaryTableProps['displayColumns'],\n },\n /** 列配置功能中,当前显示的列,非受控属性 */\n defaultDisplayColumns: {\n type: Array as PropType,\n },\n /** 拖拽排序方式,值为 `row` 表示行拖拽排序,这种方式无法进行文本复制,慎用。值为`row-handler` 表示通过拖拽手柄进行行拖拽排序。值为 `col` 表示列顺序拖拽。值为 `row-handler-col` 表示同时支持行拖拽和列拖拽。⚠️`drag-col` 已废弃,请勿使用。 */\n dragSort: {\n type: String as PropType,\n validator(val: TdPrimaryTableProps['dragSort']): boolean {\n if (!val) return true;\n return ['row', 'row-handler', 'col', 'row-handler-col', 'drag-col'].includes(val);\n },\n },\n /** 拖拽排序扩展参数,具体参数见 [Sortable](https://github.com/SortableJS/Sortable) */\n dragSortOptions: {\n type: Object as PropType,\n },\n /** 单元格是否允许编辑。返回值为 `true` 则表示可编辑;返回值为 `false` 则表示不可编辑,只读状态 */\n editableCellState: {\n type: Function as PropType,\n },\n /** 处于编辑状态的行 */\n editableRowKeys: {\n type: Array as PropType,\n },\n /** 用于控制是否显示「展开图标列」,值为 `false` 则不会显示。可以精确到某一行是否显示,还可以自定义展开图标内容。`expandedRow` 存在时,该参数有效。支持全局配置 `GlobalConfigProvider` */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: true as TdPrimaryTableProps['expandIcon'],\n },\n /** 是否允许点击行展开 */\n expandOnRowClick: Boolean,\n /** 展开行内容,泛型 T 指表格数据类型 */\n expandedRow: {\n type: [String, Function] as PropType,\n },\n /** 展开行 */\n expandedRowKeys: {\n type: Array as PropType,\n default: undefined as TdPrimaryTableProps['expandedRowKeys'],\n },\n /** 展开行,非受控属性 */\n defaultExpandedRowKeys: {\n type: Array as PropType,\n default: (): TdPrimaryTableProps['defaultExpandedRowKeys'] => [],\n },\n /** 自定义过滤图标,支持全局配置 `GlobalConfigProvider` */\n filterIcon: {\n type: Function as PropType,\n },\n /** 自定义过滤状态行及清空筛选等 */\n filterRow: {\n type: [String, Function] as PropType,\n },\n /** 过滤数据的值 */\n filterValue: {\n type: Object as PropType,\n default: undefined as TdPrimaryTableProps['filterValue'],\n },\n /** 过滤数据的值,非受控属性 */\n defaultFilterValue: {\n type: Object as PropType,\n },\n /** 隐藏排序文本提示,支持全局配置 `GlobalConfigProvider`,默认全局配置值为 `false` */\n hideSortTips: Boolean,\n /** 半选状态行。选中行请更为使用 `selectedRowKeys` 控制 */\n indeterminateSelectedRowKeys: {\n type: Array as PropType,\n },\n /** 是否支持多列排序 */\n multipleSort: Boolean,\n /** 行选中功能,是否在分页时保留上一页选中结果不清空,本地数据分页场景下,会全选所有页数据。值为 `false` 则表示全部选中操作停留在当前页,不跨分页;本地数据分页场景下,全选仅选中当前页 */\n reserveSelectedRowOnPaginate: {\n type: Boolean,\n default: true,\n },\n /** 行选中单选场景,是否允许取消选中 */\n rowSelectionAllowUncheck: Boolean,\n /** 行选中类型,单选或多选。效果和 `columns` 中配置的 `{ colKey: 'row-select', type: 'single' }` 一样 */\n rowSelectionType: {\n type: String as PropType,\n validator(val: TdPrimaryTableProps['rowSelectionType']): boolean {\n if (!val) return true;\n return ['single', 'multiple'].includes(val);\n },\n },\n /** 是否在点击整行时选中 */\n selectOnRowClick: Boolean,\n /** 选中行。半选状态行请更为使用 `indeterminateSelectedRowKeys` 控制 */\n selectedRowKeys: {\n type: Array as PropType,\n default: undefined as TdPrimaryTableProps['selectedRowKeys'],\n },\n /** 选中行。半选状态行请更为使用 `indeterminateSelectedRowKeys` 控制,非受控属性 */\n defaultSelectedRowKeys: {\n type: Array as PropType,\n default: (): TdPrimaryTableProps['defaultSelectedRowKeys'] => [],\n },\n /** 当前排序列是否显示背景色 */\n showSortColumnBgColor: Boolean,\n /** 排序控制。sortBy 排序字段;descending 是否进行降序排列。值为数组时,表示正进行多字段排序 */\n sort: {\n type: [Object, Array] as PropType,\n default: undefined as TdPrimaryTableProps['sort'],\n },\n /** 排序控制。sortBy 排序字段;descending 是否进行降序排列。值为数组时,表示正进行多字段排序,非受控属性 */\n defaultSort: {\n type: [Object, Array] as PropType,\n },\n /** 自定义排序图标,支持全局配置 `GlobalConfigProvider` */\n sortIcon: {\n type: Function as PropType,\n },\n /** 已废弃。允许表格行拖拽时排序。请更为使用 `dragSort=\\\"row\\\"` */\n sortOnRowDraggable: Boolean,\n /** 异步加载区域被点击时触发 */\n onAsyncLoadingClick: Function as PropType,\n /** 单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 分页、排序、过滤等内容变化时触发,泛型 T 指表格数据类型,`currentData` 表示变化后的数据 */\n onChange: Function as PropType,\n /** 确认操作之前列配置发生变化时触发。`context.columns` 表示已选中的列;`context.currentColumn` 表示本次变化操作的列,值不存在表示全选操作;`context.type` 表示当前操作属于选中列或是取消列 */\n onColumnChange: Function as PropType,\n /** 列配置弹窗显示或隐藏变化时触发 */\n onColumnControllerVisibleChange: Function as PropType,\n /** 本地数据排序导致 `data` 变化时触发,第一个参数指变化后的数据,第二个参数 `context.trigger` 表示触发本次变化的来源 */\n onDataChange: Function as PropType,\n /** 确认列配置时触发 */\n onDisplayColumnsChange: Function as PropType,\n /** 拖拽排序时触发,`data` 表示排序前的数据,`newData` 表示拖拽排序结束后的新数据,`sort=row` 表示行拖拽事件触发,`sort=col` 表示列拖拽事件触发 */\n onDragSort: Function as PropType,\n /** 展开行发生变化时触发,泛型 T 指表格数据类型 */\n onExpandChange: Function as PropType,\n /** 过滤参数发生变化时触发,泛型 T 指表格数据类型 */\n onFilterChange: Function as PropType,\n /** 行编辑时触发 */\n onRowEdit: Function as PropType,\n /** 行编辑校验完成后触发,即组件实例方法 `validateRowData` 执行结束后触发。`result` 表示校验结果,`trigger=self` 表示编辑组件内部触发的校验,`trigger='parent'` 表示表格父组件触发的校验 */\n onRowValidate: Function as PropType,\n /** 选中行发生变化时触发,泛型 T 指表格数据类型。两个参数,第一个参数为选中行 keys,第二个参数为更多参数,具体如下:`type = uncheck` 表示当前行操作为「取消行选中」;`type = check` 表示当前行操作为「行选中」; `currentRowKey` 表示当前操作行的 rowKey 值; `currentRowData` 表示当前操作行的行数据 */\n onSelectChange: Function as PropType,\n /** 排序发生变化时触发。其中 sortBy 表示当前排序的字段,sortType 表示排序的方式,currentDataSource 表示 sorter 排序后的结果,col 表示列配置。sort 值类型为数组时表示多字段排序 */\n onSortChange: Function as PropType,\n /** 可编辑行表格,全部数据校验完成后触发。即组件实例方法 `validateTableData` 执行结束后触发 */\n onValidate: Function as PropType,\n};\n","import { computed, defineComponent, PropType, toRefs } from 'vue';\nimport Checkbox, { CheckboxGroup, CheckboxGroupChangeContext, CheckboxGroupProps, CheckboxProps } from '../checkbox';\nimport { intersection } from 'lodash-es';\nimport { usePrefixClass } from '../hooks';\n\nexport type ColumnCheckboxGroupProps = Pick & {\n checkboxProps: CheckboxGroupProps;\n label?: string;\n uniqueKey?: string;\n};\n\nexport default defineComponent({\n name: 'ColumnCheckboxGroup',\n\n props: {\n checkboxProps: Object as PropType,\n options: {\n type: Array as PropType,\n default: () => [] as ColumnCheckboxGroupProps['options'],\n },\n label: String,\n uniqueKey: String,\n value: Array as PropType,\n onChange: Function as PropType,\n },\n\n setup(props: ColumnCheckboxGroupProps) {\n const { checkboxProps, value, options } = toRefs(props);\n const classPrefix = usePrefixClass();\n\n const allCheckedColumnKeys = computed(() => {\n const allCheckedKeys: CheckboxGroupProps['value'] = [];\n options.value.forEach((option) => {\n if (typeof option === 'object') {\n if (option.disabled) return;\n if (option.value) {\n allCheckedKeys.push(option.value);\n } else if (typeof option.label === 'string') {\n allCheckedKeys.push(option.label);\n }\n } else {\n allCheckedKeys.push(option);\n }\n });\n return allCheckedKeys;\n });\n\n const intersectionKeys = computed(() => intersection(allCheckedColumnKeys.value, value.value));\n\n const isCheckedAll = computed(() => {\n const len = intersectionKeys.value.length;\n return Boolean(len && allCheckedColumnKeys.value.length === len);\n });\n\n const isIndeterminate = computed(() => {\n const len = intersectionKeys.value.length;\n return Boolean(len < allCheckedColumnKeys.value.length && len);\n });\n\n const onCheckAllColumnsChange: CheckboxProps['onChange'] = (checkAll, ctx) => {\n const changeParams: CheckboxGroupChangeContext = {\n e: ctx.e,\n type: 'check',\n current: undefined,\n option: undefined,\n };\n if (checkAll) {\n const newKeys = [...new Set(value.value.concat(allCheckedColumnKeys.value))];\n props.onChange?.(newKeys, changeParams);\n } else {\n const newKeys = value.value.filter((val) => !allCheckedColumnKeys.value.includes(val));\n props.onChange?.(newKeys, { ...changeParams, type: 'uncheck' });\n }\n };\n\n const handleCheckChange: CheckboxGroupProps['onChange'] = (val, ctx) => {\n props.onChange?.(val, ctx);\n };\n\n const classes = computed(() => [\n `${classPrefix.value}-table__column-controller-item`,\n {\n [`${classPrefix.value}-table__${props.uniqueKey}`]: props.uniqueKey,\n },\n ]);\n\n return () => {\n return (\n
    \n
    \n \n {props.label}\n \n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","/**\n * 自定义显示列控制器,即列配置\n */\nimport { computed, ref, SetupContext, toRefs, watch, h } from 'vue';\nimport { SettingIcon as TdSettingIcon } from 'tdesign-icons-vue-next';\n// import { intersection } from 'lodash-es';\nimport { CheckboxGroupValue, CheckboxOptionObj, CheckboxGroupChangeContext } from '../../checkbox';\nimport { DialogPlugin } from '../../dialog/plugin';\nimport { renderTitle } from './useTableHeader';\nimport { PrimaryTableCol, TdPrimaryTableProps } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\nimport ColumnCheckboxGroup from '../column-checkbox-group';\nimport { isFunction } from 'lodash-es';\nimport { useTNodeJSX } from '../../hooks';\n\nexport function getColumnKeys(columns: PrimaryTableCol[], keys = new Set()) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.children?.length) {\n getColumnKeys(col.children, keys);\n } else {\n col.colKey && keys.add(col.colKey);\n }\n }\n return keys;\n}\n\ninterface CheckboxGroupOptionsType {\n options: CheckboxOptionObj[];\n label: string;\n value?: string | number;\n}\n\nexport default function useColumnController(props: TdPrimaryTableProps, context: SetupContext) {\n const { classPrefix, globalConfig } = useConfig('table', props.locale);\n const { SettingIcon } = useGlobalIcon({ SettingIcon: TdSettingIcon });\n const { columns, columnController, displayColumns, columnControllerVisible } = toRefs(props);\n const dialogInstance = ref(null);\n const renderTNodeJSX = useTNodeJSX();\n\n const enabledColKeys = computed(() => {\n const arr = (columnController.value?.fields || [...getColumnKeys(columns.value)] || []).filter((v) => v);\n return new Set(arr);\n });\n\n const keys = [...getColumnKeys(columns.value)];\n\n // 确认后的列配置\n const [tDisplayColumns, setTDisplayColumns] = useDefaultValue(\n displayColumns,\n props.defaultDisplayColumns || keys,\n props.onDisplayColumnsChange,\n 'displayColumns',\n );\n // 弹框内的多选\n const columnCheckboxKeys = ref(displayColumns.value || props.defaultDisplayColumns || keys);\n\n const checkboxGroupList = computed(() => {\n if (columnController.value?.groupColumns?.length) {\n return getCheckboxGroupOptions(columns.value);\n }\n const oneItem: CheckboxGroupOptionsType = {\n label: globalConfig.value.selectAllText,\n options: getCheckboxOptions(columns.value),\n };\n return [oneItem];\n });\n\n // const intersectionChecked = computed(() => intersection(columnCheckboxKeys.value, [...enabledColKeys.value]));\n\n watch([displayColumns], ([val]) => {\n columnCheckboxKeys.value = val || props.defaultDisplayColumns || keys;\n });\n\n function getOneColumnItem(column: PrimaryTableCol, i: number) {\n return {\n label: () => renderTitle(context.slots, column, i),\n value: column.colKey,\n disabled: !enabledColKeys.value.has(column.colKey),\n };\n }\n\n // 列配置分组\n function getCheckboxGroupOptions(columns: PrimaryTableCol[]) {\n const groupColumns = columnController.value?.groupColumns;\n if (!groupColumns?.length) return [];\n const groupList: CheckboxGroupOptionsType[] = [];\n const loop = (columns: PrimaryTableCol[]) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const column = columns[i];\n const oneItem = getOneColumnItem(column, i);\n for (let j = 0, len1 = groupColumns.length; j < len1; j++) {\n const groupInfo = groupColumns[j];\n if (!groupInfo.columns.includes(column.colKey)) continue;\n if (groupList[j]?.options?.length) {\n groupList[j].options.push(oneItem);\n } else {\n groupList[j] = { ...groupColumns[j], options: [oneItem] };\n }\n }\n if (column.children?.length) {\n loop(column.children);\n }\n }\n };\n loop(columns);\n return groupList;\n }\n\n function getCheckboxOptions(columns: PrimaryTableCol[], arr: CheckboxOptionObj[] = []) {\n if (columnController.value?.groupColumns?.length) return [];\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.children?.length) {\n getCheckboxOptions(item.children, arr);\n } else {\n // 只把叶子列提供出去进行配置\n if (item.colKey) {\n arr.push(getOneColumnItem(item, i));\n }\n }\n }\n return arr;\n }\n\n const handleCheckChange = (val: CheckboxGroupValue, ctx: CheckboxGroupChangeContext) => {\n columnCheckboxKeys.value = val;\n const params = {\n columns: val,\n type: ctx.type,\n currentColumn: getCurrentRowByKey(columns.value, String(ctx.current)),\n e: ctx.e,\n };\n props.onColumnChange?.(params);\n };\n\n // 暂时不删除,万一后面需要整体的全选\n // const handleClickAllShowColumns = (checked: boolean, ctx: { e: Event }) => {\n // if (checked) {\n // const newData = checkboxOptions.value?.map((t) => t.value) || [];\n // columnCheckboxKeys.value = newData;\n // props.onColumnChange?.({ type: 'check', columns: newData, e: ctx.e });\n // } else {\n // const disabledColKeys = checkboxOptions.value.filter((t) => t.disabled).map((t) => t.value);\n // columnCheckboxKeys.value = disabledColKeys;\n // props.onColumnChange?.({ type: 'uncheck', columns: disabledColKeys, e: ctx.e });\n // }\n // };\n\n const handleToggleColumnController = () => {\n if (dialogInstance.value) {\n dialogInstance.value.show();\n return;\n }\n dialogInstance.value = DialogPlugin.confirm({\n header: globalConfig.value.columnConfigTitleText,\n body: () => {\n const widthMode = columnController.value?.displayType === 'fixed-width' ? 'fixed' : 'auto';\n // const checkedLength = intersectionChecked.value.length;\n // const isCheckedAll = checkedLength === enabledColKeys.value.size;\n // const isIndeterminate = checkedLength > 0 && checkedLength < enabledColKeys.value.size;\n const { columnControllerTopContent, columnControllerBottomContent } = columnController.value || {};\n const defaultNode = (\n \n
    \n {isFunction(columnControllerTopContent)\n ? columnControllerTopContent(h)\n : renderTNodeJSX('columnControllerTopContent')}\n {/* 请选择需要在表格中显示的数据列 */}\n {globalConfig.value.columnConfigDescriptionText && (\n

    \n {globalConfig.value.columnConfigDescriptionText}\n

    \n )}\n {checkboxGroupList.value.map((group, index) => {\n const uniqueKey = columnController.value?.groupColumns?.length\n ? String(group.value || index)\n : undefined;\n return (\n \n );\n })}\n\n {isFunction(columnControllerBottomContent)\n ? columnControllerBottomContent(h)\n : renderTNodeJSX('columnControllerBottomContent')}\n
    \n \n );\n return defaultNode;\n },\n confirmBtn: globalConfig.value.confirmText,\n cancelBtn: globalConfig.value.cancelText,\n width: 612,\n onConfirm: () => {\n setTDisplayColumns([...columnCheckboxKeys.value]);\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'confirm' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n onClose: () => {\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'cancel' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n ...(columnController.value?.dialogProps || {}),\n });\n };\n\n // columnControllerVisible 一般应用于不包含列配置按钮的场景,有外部直接控制弹框的显示或隐藏\n watch(\n [columnControllerVisible],\n ([visible]) => {\n if (visible === undefined) return;\n if (dialogInstance.value) {\n visible ? dialogInstance.value.show() : dialogInstance.value.hide();\n } else {\n visible && handleToggleColumnController();\n }\n },\n { immediate: true },\n );\n\n const renderColumnController = () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n if (isColumnController && columnController.value.hideTriggerButton) return null;\n const classes = [\n `${classPrefix.value}-table__column-controller-trigger`,\n { [`${classPrefix.value}-align-${placement}`]: !!placement },\n ];\n return (\n
    \n ,\n }}\n {...props.columnController?.buttonProps}\n >\n
    \n );\n };\n\n return {\n tDisplayColumns,\n columnCheckboxKeys,\n renderColumnController,\n };\n}\n","import { isFunction, isNumber, get } from 'lodash-es';\nimport { BaseTableCol } from './types';\n\nexport function filterDataByIds(\n data: Array = [],\n ids: Array = [],\n byId = 'id',\n): Array {\n return data.filter((d: Record = {}) => ids.includes(d[byId]));\n}\n\nexport enum SCROLL_DIRECTION {\n X = 'x',\n Y = 'y',\n UNKNOWN = 'unknown',\n}\n\nlet preScrollLeft: any;\nlet preScrollTop: any;\n\nexport const getScrollDirection = (scrollLeft: number, scrollTop: number): SCROLL_DIRECTION => {\n let direction = SCROLL_DIRECTION.UNKNOWN;\n if (preScrollTop !== scrollTop) {\n direction = SCROLL_DIRECTION.Y;\n } else if (preScrollLeft !== scrollLeft) {\n direction = SCROLL_DIRECTION.X;\n }\n preScrollTop = scrollTop;\n preScrollLeft = scrollLeft;\n return direction;\n};\n\nexport function isRowSelectedDisabled(\n selectColumn: { [key: string]: any },\n row: Record,\n rowIndex: number,\n): boolean {\n if (!selectColumn) return false;\n let disabled = isFunction(selectColumn.disabled) ? selectColumn.disabled({ row, rowIndex }) : selectColumn.disabled;\n if (selectColumn.checkProps) {\n if (isFunction(selectColumn.checkProps)) {\n disabled = disabled || selectColumn.checkProps({ row, rowIndex }).disabled;\n } else if (selectColumn.checkProps === 'object') {\n disabled = disabled || selectColumn.checkProps.disabled;\n }\n }\n return !!disabled;\n}\n\n// 获取列属性\nexport function getColWidthAttr>(col: T, attrKey: 'width' | 'minWidth') {\n const attr = col[attrKey];\n return isNumber(attr) ? attr : parseFloat(attr);\n}\n\nexport function getEditableKeysMap(keys: Array, list: any[], rowKey: string) {\n const map: { [key: string | number]: boolean } = {};\n for (let i = 0, len = list.length; i < len; i++) {\n const rowValue = get(list[i], rowKey);\n if (keys.includes(rowValue)) {\n map[rowValue] = true;\n }\n }\n return map;\n}\n\nexport function getColumnDataByKey(columns: any[], colKey: string): any {\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i].colKey === colKey) return columns[i];\n if (columns[i].children?.length) {\n const t = getColumnDataByKey(columns[i].children, colKey);\n if (t) return t;\n }\n }\n return null;\n}\n\nexport function getColumnIndexByKey(columns: any[], colKey: string): number {\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i].colKey === colKey) {\n return i;\n }\n if (columns[i].children?.length) {\n const t = getColumnDataByKey(columns[i].children, colKey);\n if (t) return i;\n }\n }\n return -1;\n}\n\nexport function getColumnsResetValue(columns: any[], resetValue: { [key: string]: any } = {}) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.filter && 'resetValue' in col.filter) {\n // eslint-disable-next-line no-param-reassign\n resetValue[col.colKey] = col.filter.resetValue;\n }\n if (col.children?.length) {\n getColumnsResetValue(col.children, resetValue);\n }\n }\n return resetValue;\n}\n","/**\n * 行选中相关功能:单选 + 多选\n */\nimport { computed, toRefs, h, ref, watch } from 'vue';\nimport { intersection } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport {\n ActiveRowActionContext,\n PrimaryTableCellParams,\n PrimaryTableCol,\n RowClassNameParams,\n TableRowData,\n TdPrimaryTableProps,\n} from '../type';\nimport { isRowSelectedDisabled } from '@tdesign/common-js/table/utils';\nimport { TableClassName } from './useClassName';\nimport Checkbox from '../../checkbox';\nimport Radio from '../../radio';\nimport log from '@tdesign/common-js/log/index';\n\nexport default function useRowSelect(\n props: TdPrimaryTableProps,\n tableSelectedClasses: TableClassName['tableSelectedClasses'],\n) {\n const { selectedRowKeys, columns, rowKey, data, reserveSelectedRowOnPaginate, pagination } = toRefs(props);\n const currentPaginateData = ref(\n pagination.value\n ? data.value.slice(\n (pagination.value.current - 1) * pagination.value.pageSize,\n pagination.value.current * pagination.value.pageSize,\n )\n : data.value,\n );\n const selectedRowClassNames = ref();\n const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n selectedRowKeys,\n props.defaultSelectedRowKeys || [],\n props.onSelectChange,\n 'selectedRowKeys',\n );\n const selectedRowDataMap = ref(new Map());\n const selectColumn = computed(() => props.columns.find(({ type }) => ['multiple', 'single'].includes(type)));\n const selectionType = computed(() => props.rowSelectionType || selectColumn.value?.type || 'single');\n const canSelectedRows = computed(() => {\n const currentData = reserveSelectedRowOnPaginate.value ? data.value : currentPaginateData.value;\n return currentData.filter((row, rowIndex): boolean => !isDisabled(row, rowIndex));\n });\n // 选中的行,和所有可以选择的行,交集,用于计算 isSelectedAll 和 isIndeterminate\n const intersectionKeys = computed(() =>\n intersection(\n tSelectedRowKeys.value,\n canSelectedRows.value.map((t) => get(t, props.rowKey || 'id')),\n ),\n );\n\n const allowUncheck = computed(() => {\n if (props.rowSelectionAllowUncheck) return true;\n const singleSelectCol = selectionType.value === 'single';\n if (!singleSelectCol || !selectColumn.value?.checkProps || !('allowUncheck' in selectColumn.value?.checkProps))\n return false;\n return selectColumn.value.checkProps.allowUncheck;\n });\n\n watch(\n [data, columns, tSelectedRowKeys, selectColumn, rowKey],\n () => {\n const disabledRowFunc = (p: RowClassNameParams) =>\n selectColumn.value.disabled(p) ? tableSelectedClasses.disabled : '';\n const disabledRowClass = selectColumn.value?.disabled ? disabledRowFunc : undefined;\n const selected = new Set(tSelectedRowKeys.value);\n const selectedRowClassFunc = ({ row }: RowClassNameParams) => {\n const rowId = get(row, props.rowKey || 'id');\n return selected.has(rowId) ? tableSelectedClasses.selected : '';\n };\n const selectedRowClass = selected.size ? selectedRowClassFunc : undefined;\n selectedRowClassNames.value = [disabledRowClass, selectedRowClass];\n },\n { immediate: true },\n );\n\n // 在远程分页场景下,当前页全选功能的状态判定需基于当前页数据是否存在进行动态重新计算\n watch(data, () => {\n currentPaginateData.value = data.value;\n });\n\n function isDisabled(row: Record, rowIndex: number): boolean {\n return isRowSelectedDisabled(selectColumn.value, row, rowIndex);\n }\n\n function getSelectedHeader() {\n return () => {\n const isIndeterminate =\n intersectionKeys.value.length > 0 && intersectionKeys.value.length < canSelectedRows.value.length;\n const isChecked =\n intersectionKeys.value.length !== 0 &&\n canSelectedRows.value.length !== 0 &&\n intersectionKeys.value.length === canSelectedRows.value.length;\n return (\n \n );\n };\n }\n\n function getRowSelectDisabledData(p: PrimaryTableCellParams) {\n const { col, row, rowIndex } = p;\n const disabled: boolean = isFunction(col.disabled) ? col.disabled({ row, rowIndex }) : col.disabled;\n const checkProps = isFunction(col.checkProps) ? col.checkProps({ row, rowIndex }) : col.checkProps;\n return {\n disabled: disabled || checkProps?.disabled,\n checkProps,\n };\n }\n\n function renderSelectCell(p: PrimaryTableCellParams) {\n const { col: column, row = {} } = p;\n const checked = tSelectedRowKeys.value.includes(get(row, props.rowKey || 'id'));\n const { disabled, checkProps } = getRowSelectDisabledData(p);\n const selectBoxProps: Object = {\n checked,\n disabled,\n ...checkProps,\n // 兼容处理不同的参数\n onClick: (e: MouseEvent | { e: MouseEvent }) => {\n // 选中行功能中,点击 checkbox/radio 需阻止事件冒泡,避免触发不必要的 onRowClick\n if (typeof e === 'object' && 'e' in e) {\n e.e?.stopPropagation();\n } else {\n e?.stopPropagation();\n }\n },\n onChange: () => handleSelectChange(row),\n };\n if (column.type === 'single') return ;\n if (column.type === 'multiple') {\n const isIndeterminate = props.indeterminateSelectedRowKeys?.length\n ? props.indeterminateSelectedRowKeys.includes(get(row, props.rowKey))\n : false;\n return ;\n }\n return null;\n }\n\n function handleSelectChange(row: TableRowData = {}) {\n let selectedRowKeys = [...tSelectedRowKeys.value];\n const reRowKey = props.rowKey || 'id';\n const id = get(row, reRowKey);\n const selectedRowIndex = selectedRowKeys.indexOf(id);\n const isExisted = selectedRowIndex !== -1;\n if (selectionType.value === 'multiple') {\n isExisted ? selectedRowKeys.splice(selectedRowIndex, 1) : selectedRowKeys.push(id);\n } else if (selectionType.value === 'single') {\n selectedRowKeys = isExisted && allowUncheck.value ? [] : [id];\n } else {\n log.warn('Table', '`column.type` must be one of `multiple` and `single`');\n return;\n }\n setTSelectedRowKeys(selectedRowKeys, {\n selectedRowData: selectedRowKeys.map((t) => selectedRowDataMap.value.get(t)),\n currentRowKey: id,\n currentRowData: row,\n type: isExisted ? 'uncheck' : 'check',\n });\n }\n\n function handleSelectAll(checked: boolean) {\n const reRowKey = props.rowKey || 'id';\n const canSelectedRowKeys = canSelectedRows.value.map((record) => get(record, reRowKey));\n const disabledSelectedRowKeys = selectedRowKeys.value?.filter((id) => !canSelectedRowKeys.includes(id)) || [];\n const allIds = checked ? [...disabledSelectedRowKeys, ...canSelectedRowKeys] : [...disabledSelectedRowKeys];\n setTSelectedRowKeys(allIds, {\n selectedRowData: checked ? allIds.map((t) => selectedRowDataMap.value.get(t)) : [],\n type: checked ? 'check' : 'uncheck',\n currentRowKey: 'CHECK_ALL_BOX',\n });\n }\n\n function formatToRowSelectColumn(col: PrimaryTableCol) {\n const isSelection = ['multiple', 'single'].includes(col.type);\n if (!isSelection) return col;\n return {\n ...col,\n width: col.width || 64,\n className: [tableSelectedClasses.checkCell, col.className],\n cell: (_: typeof h, p: PrimaryTableCellParams) => renderSelectCell(p),\n title: col.type === 'multiple' ? getSelectedHeader() : col.title,\n };\n }\n\n const onInnerSelectRowClick: TdPrimaryTableProps['onRowClick'] = ({ row, index }) => {\n const selectedColIndex = props.columns.findIndex((item) => item.colKey === 'row-select');\n let disabled = false;\n if (selectedColIndex !== -1) {\n disabled = getRowSelectDisabledData({\n row,\n rowIndex: index,\n col: props.columns[selectedColIndex],\n colIndex: selectedColIndex,\n })?.disabled;\n }\n if (disabled) return;\n handleSelectChange(row);\n };\n\n watch(\n [data, rowKey],\n () => {\n for (let i = 0, len = data.value.length; i < len; i++) {\n selectedRowDataMap.value.set(get(data.value[i], rowKey.value || 'id'), data.value[i]);\n }\n },\n { immediate: true },\n );\n\n // 是否开启了行选中功能\n const showRowSelect = computed(() => Boolean(selectColumn.value || props.selectOnRowClick || props.selectedRowKeys));\n\n const clearAllSelectedRowKeys = () => {\n setTSelectedRowKeys([], {\n selectedRowData: [],\n currentRowKey: undefined,\n currentRowData: undefined,\n type: 'uncheck',\n });\n };\n\n const handleRowSelectWithAreaSelection = ({ activeRowList, action }: ActiveRowActionContext) => {\n if (!showRowSelect.value) return;\n\n if (action === 'clear') {\n clearAllSelectedRowKeys();\n return;\n }\n\n if (action === 'select-all') {\n handleSelectAll(true);\n return;\n }\n\n if (selectionType.value === 'single') {\n if (action === 'space-one-selection') {\n handleSelectChange(activeRowList[0].row);\n }\n return;\n }\n\n const validAreaSelection = activeRowList.filter(\n ({ row, rowIndex }) =>\n !getRowSelectDisabledData({\n row,\n rowIndex,\n col: selectColumn.value,\n colIndex: undefined,\n }).disabled,\n );\n if (!validAreaSelection.length) return;\n\n const areaSelectionKeys = validAreaSelection.map(({ row }) => get(row, props.rowKey));\n const intersectionKeys = intersection(tSelectedRowKeys.value, areaSelectionKeys);\n const toCheck = intersectionKeys.length !== areaSelectionKeys.length;\n const clearedKeys = tSelectedRowKeys.value.filter((key) => !areaSelectionKeys.includes(key));\n const newSelectedRowKeys = toCheck ? [...new Set(tSelectedRowKeys.value.concat(areaSelectionKeys))] : clearedKeys;\n\n const currentRowData = action === 'space-one-selection' ? activeRowList[0].row : undefined;\n setTSelectedRowKeys(newSelectedRowKeys, {\n selectedRowData: activeRowList,\n currentRowKey: get(currentRowData, props.rowKey),\n currentRowData,\n type: toCheck ? 'check' : 'uncheck',\n });\n };\n\n return {\n selectColumn,\n showRowSelect,\n selectedRowClassNames,\n currentPaginateData,\n setTSelectedRowKeys,\n formatToRowSelectColumn,\n onInnerSelectRowClick,\n handleRowSelectWithAreaSelection,\n };\n}\n","import { computed, defineComponent, PropType } from 'vue';\nimport { ChevronDownIcon as TdChevronDownIcon } from 'tdesign-icons-vue-next';\nimport useClassName from './hooks/useClassName';\nimport { SortType } from './type';\nimport Tooltip, { TooltipProps } from '../tooltip';\nimport { useConfig } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { TNode } from '../common';\nimport { TableConfig } from '../config-provider';\n\ntype SortTypeEnum = 'desc' | 'asc';\ntype SortTypeEnums = Array;\n\nexport default defineComponent({\n name: 'TSorterButton',\n\n props: {\n sortType: {\n type: String as PropType,\n default: 'all',\n },\n sortOrder: {\n type: String,\n default: (): string => '',\n },\n locale: Object as PropType,\n sortIcon: Function as PropType,\n tooltipProps: Object as PropType,\n hideSortTips: Boolean,\n },\n\n emits: ['sort-icon-click'],\n\n setup(props, context) {\n const { tableSortClasses, negativeRotate180 } = useClassName();\n const renderTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { ChevronDownIcon } = useGlobalIcon({ ChevronDownIcon: TdChevronDownIcon });\n\n const allowSortTypes = computed(() =>\n props.sortType === 'all' ? ['asc', 'desc'] : [props.sortType],\n );\n\n const onSortIconClick = (e: MouseEvent, direction: string) => {\n context.emit('sort-icon-click', e, { descending: direction === 'desc' });\n };\n\n const getSortIcon = (direction: SortTypeEnum, activeClass: string) => {\n const defaultIcon = t(globalConfig.value.sortIcon) || ;\n const icon = renderTNode('sortIcon', defaultIcon);\n const sortClassName = [\n activeClass,\n tableSortClasses.sortIcon,\n tableSortClasses.iconDirection[direction],\n { [negativeRotate180]: direction === 'asc' },\n ];\n return (\n onSortIconClick(e, direction)}>\n {icon}\n \n );\n };\n\n return {\n t,\n globalConfig,\n tableSortClasses,\n negativeRotate180,\n allowSortTypes,\n getSortIcon,\n };\n },\n\n render() {\n const { tableSortClasses } = this;\n const classes = [tableSortClasses.trigger, { [tableSortClasses.doubleIcon]: this.allowSortTypes.length > 1 }];\n const tooltips = {\n asc: this.globalConfig.sortAscendingOperationText,\n desc: this.globalConfig.sortDescendingOperationText,\n };\n const sortButton = this.allowSortTypes.map((direction: SortTypeEnum) => {\n const activeClass = direction === this.sortOrder ? tableSortClasses.iconActive : tableSortClasses.iconDefault;\n const cancelTips = this.globalConfig.sortCancelOperationText;\n const tips = direction === this.sortOrder ? cancelTips : tooltips[direction];\n if (this.hideSortTips ?? this.globalConfig.hideSortTips) return this.getSortIcon(direction, activeClass);\n return (\n \n {this.getSortIcon(direction, activeClass)}\n \n );\n });\n return
    {sortButton}
    ;\n },\n});\n","import { SetupContext, computed, toRefs, ref, watch } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { SortInfo, TdPrimaryTableProps, PrimaryTableCol, TableRowData } from '../type';\nimport SorterButton from '../sorter-button';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { isArray } from 'lodash-es';\n\nexport type SortMap = Record;\n\nexport default function useSorter(props: TdPrimaryTableProps, { slots }: SetupContext) {\n const { sort, data } = toRefs(props);\n const originalData = ref();\n const [tSortInfo, setTSortInfo] = useDefaultValue(sort, props.defaultSort, props.onSortChange, 'sort');\n const [tData, setTData] = useDefaultValue(data, [], props.onDataChange, 'data');\n // 本地数据排序:用于记录哪些字段是自定义排序函数\n const sorterFuncMap = computed(() => getSorterFuncMap(props.columns));\n const innerSort = ref();\n\n const sortArray = computed>(() => {\n const sort = tSortInfo.value;\n if (!sort) return [];\n return isArray(sort) ? sort : [sort];\n });\n\n const sortMap = computed(() => {\n const sortMap: Record = {};\n sortArray.value.forEach((info, index) => {\n const { sortBy } = info;\n sortMap[sortBy] = { index, ...info };\n });\n return sortMap;\n });\n\n function getSorterFuncMap(columns: PrimaryTableCol[], map: { [key: string]: Function } = {}) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (isFunction(col.sorter)) {\n // eslint-disable-next-line no-param-reassign\n map[col.colKey] = col.sorter;\n }\n // 多级表头中的排序功能\n if (col.children?.length) {\n getSorterFuncMap(col.children, map);\n }\n }\n return map;\n }\n\n function handleDataSort(sortInfo: SortInfo | Array) {\n const sort = sortInfo;\n if (!Object.keys(sorterFuncMap.value).length) return;\n if (!originalData.value) {\n originalData.value = tData.value;\n }\n const isEmptyArraySort = !sort || (sort instanceof Array && !sort.length);\n const isEmptyObjectSort = !(sort instanceof Array) && !sort?.sortBy;\n if (isEmptyArraySort || isEmptyObjectSort) {\n setTData(originalData.value, { trigger: 'sort' });\n return originalData.value;\n }\n const formatedSort = sort instanceof Array ? sort : [sort];\n // data 为受控属性,data.slice() 浅拷贝,防止 sort 导致原数据变异\n const newData: TableRowData[] = tData.value.slice().sort((a: TableRowData, b: TableRowData) => {\n let sortResult = 0;\n for (let i = 0, len = formatedSort.length; i < len; i++) {\n const item = formatedSort[i];\n const sortFunc = sorterFuncMap.value[item.sortBy];\n // 上一个排序字段值相同时才会进行下一个字段的大小对比\n if (sortResult === 0 && sortFunc) {\n sortResult = item.descending ? sortFunc(b, a) : sortFunc(a, b);\n } else {\n break;\n }\n }\n return sortResult;\n });\n // Data 变化返回的是数据引用,为避免死循环,特此检测排序数据前后是否相同,如果相同则不再触发事件\n if (JSON.stringify(newData) === JSON.stringify(tData.value)) return;\n setTData(newData, { trigger: 'sort' });\n return newData;\n }\n\n function handleSortHeaderClick(col: PrimaryTableCol, p: { descending: boolean }) {\n let sortInfo: SortInfo | Array;\n if (props.multipleSort) {\n sortInfo = getMultipleNextSort(col, p);\n } else {\n // 如果此次调用之前开启了multipleSort,tSortInfo可能为数组,尝试取数组中第一个排序字段的参数\n const sort = tSortInfo.value instanceof Array ? tSortInfo.value[0] : tSortInfo.value;\n sortInfo = getSingleNextSort(col, sort, p);\n }\n // 本地数据 data 排序,需同时抛出 data-change\n const newData = handleDataSort(sortInfo);\n const currentData = newData || tData.value;\n const currentDataSource = currentData;\n setTSortInfo(sortInfo, { currentDataSource, col });\n props.onChange?.({ sorter: sortInfo }, { currentData, trigger: 'sorter' });\n innerSort.value = sortInfo;\n }\n\n function getSortOrder(descending: boolean) {\n if (descending === undefined) return;\n return descending ? 'desc' : 'asc';\n }\n\n // 点击新排序字段,则默认按照降序排序;点击原字段,则排序字段不变仅切换排序方式\n function getSingleNextSort(col: PrimaryTableCol, sortInfo: SortInfo, p: { descending: boolean }): SortInfo {\n // 排序字段和排序方式均相同,则取消排序\n if (sortInfo && sortInfo.sortBy === col.colKey && sortInfo.descending === p.descending) {\n return undefined;\n }\n return { sortBy: col.colKey, descending: p.descending };\n }\n\n function getMultipleNextSort(col: PrimaryTableCol, p: { descending: boolean }): Array {\n // 如tSortInfo不是数组,判断是否存在,如存在作为第一个排序字段(保留之前未开启multipleSort时的字段),否则初始化为空数组\n if (!Array.isArray(tSortInfo.value)) {\n tSortInfo.value = tSortInfo.value ? [tSortInfo.value] : [];\n }\n const sort = tSortInfo.value;\n const { colKey } = col;\n const result = [...sort];\n for (let i = 0, len = sort.length; i < len; i++) {\n if (sort[i].sortBy === colKey) {\n const next = getSingleNextSort(col, sort[i], p);\n next ? (result[i] = next) : result.splice(i, 1);\n return result;\n }\n }\n result.push({ sortBy: colKey, descending: p.descending });\n return result;\n }\n\n function renderSortIcon({ col }: { col: PrimaryTableCol; colIndex: number }) {\n if (!col.sorter) return null;\n const sorterButtonsProps = {\n sortType: col.sortType,\n sortOrder: getSortOrder(sortMap.value[col.colKey]?.descending),\n sortIcon: props.sortIcon,\n hideSortTips: props.hideSortTips,\n locale: props.locale,\n };\n return (\n handleSortHeaderClick(col, p)}\n />\n );\n }\n\n const isSortInfoSame = (a: SortInfo | SortInfo[], b: SortInfo | SortInfo[]) => {\n const tmpSortInfo = isArray(a) ? a : [a];\n const tmpInnerSortInfo = isArray(b) ? b : [b];\n if (tmpSortInfo.length && !b) return false;\n // eslint-disable-next-line\n for (let i = 0, len = tmpSortInfo.length; i < len; i++) {\n const item = tmpSortInfo[i];\n const result = tmpInnerSortInfo.find((t) => t.sortBy === item.sortBy);\n if (!result) return false;\n return item.descending === result.descending;\n }\n };\n\n /**\n * 如果外部的排序不为空,且和内部排序字段不同,说明传入的 sortInfo 和 data 可能存在不一致,\n * 此时,需要在组件内部进行排序,并输出事件\n */\n watch(\n () => [tSortInfo, props.data],\n () => {\n if (!tSortInfo.value || !Object.keys(tSortInfo.value).length || !tData.value.length) return;\n // isSortInfoSame 的两个参数顺序不可变\n if (!isSortInfoSame(tSortInfo.value, innerSort.value)) {\n handleDataSort(tSortInfo.value);\n }\n },\n { immediate: true },\n );\n\n return {\n renderSortIcon,\n };\n}\n","import { defineComponent, PropType, ref, h } from 'vue';\nimport { FilterIcon as TdFilterIcon } from 'tdesign-icons-vue-next';\nimport { isEmpty } from 'lodash-es';\nimport Popup, { PopupProps } from '../popup';\nimport { CheckboxGroup } from '../checkbox';\nimport { RadioGroup } from '../radio';\nimport Input from '../input';\nimport TButton from '../button';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from './type';\nimport { useConfig } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { AttachNode } from '../common';\nimport { isFunction } from 'lodash-es';\nimport { TableConfig } from '../config-provider';\n\nexport interface TableFilterControllerProps {\n locale: TableConfig;\n tFilterValue: FilterValue;\n innerFilterValue: FilterValue;\n tableFilterClasses: {\n filterable: string;\n popup: string;\n icon: string;\n popupContent: string;\n result: string;\n inner: string;\n bottomButtons: string;\n contentInner: string;\n iconWrap: string;\n };\n isFocusClass: string;\n column: PrimaryTableCol;\n colIndex: number;\n // HTMLElement\n primaryTableElement: any;\n popupProps: PopupProps;\n attach?: AttachNode;\n onVisibleChange: (val: boolean) => void;\n filterIcon?: TdPrimaryTableProps['filterIcon'];\n}\n\nexport default defineComponent({\n name: 'TableFilterController',\n\n props: {\n locale: Object as PropType,\n column: Object as PropType,\n colIndex: Number,\n tFilterValue: Object as PropType,\n innerFilterValue: Object as PropType,\n tableFilterClasses: Object as PropType,\n isFocusClass: String,\n // eslint-disable-next-line\n primaryTableElement: {},\n popupProps: Object as PropType,\n attach: [String, Function] as PropType,\n onVisibleChange: Function as PropType,\n filterIcon: [Function] as PropType,\n },\n\n emits: ['inner-filter-change', 'reset', 'confirm'],\n\n setup(props: TableFilterControllerProps, context) {\n const triggerElementRef = ref(null);\n const renderTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { FilterIcon } = useGlobalIcon({ FilterIcon: TdFilterIcon });\n const filterPopupVisible = ref(false);\n\n const onFilterPopupVisibleChange = (visible: boolean) => {\n filterPopupVisible.value = visible;\n props.onVisibleChange?.(visible);\n };\n\n const renderComponent = (column: PrimaryTableCol, filterComponentProps: any, component: any) => {\n if (!component) return null;\n const isVueComponent = !!component.setup;\n if (isFunction(column.filter.component) && !isVueComponent) {\n return column.filter.component((v: any, b: any) => {\n const tProps = typeof b === 'object' && 'attrs' in b ? b.attrs : {};\n return h(v, {\n props: { ...filterComponentProps, ...tProps },\n });\n });\n }\n const filter = column.filter || {};\n return (\n \n );\n };\n\n const getFilterContent = (column: PrimaryTableCol) => {\n const types = ['single', 'multiple', 'input'];\n if (column.filter?.type && !types.includes(column.filter.type)) {\n console.error(`TDesign Table Error: column.filter.type must be the following: ${JSON.stringify(types)}`);\n return;\n }\n const { innerFilterValue = {} } = props;\n const component =\n {\n single: RadioGroup,\n multiple: CheckboxGroup,\n input: Input,\n }[column.filter.type] || column.filter.component;\n if (!component && !column.filter.component) return;\n const filterComponentProps: { [key: string]: any } = {\n options: ['single', 'multiple'].includes(column.filter.type) ? column.filter?.list : undefined,\n ...(column.filter?.props || {}),\n onChange: (val: any, ctx: any) => {\n context.emit('inner-filter-change', val, column);\n if (column.filter.props?.onChange) {\n column.filter.props.onChange?.(val, ctx);\n }\n if (column.filter?.confirmEvents?.includes('onChange')) {\n filterPopupVisible.value = false;\n }\n },\n };\n if (column.colKey && innerFilterValue && column.colKey in innerFilterValue) {\n filterComponentProps.value = innerFilterValue?.[column.colKey];\n }\n // 允许自定义触发确认搜索的事件\n if (column.filter.confirmEvents) {\n column.filter.confirmEvents.forEach((event) => {\n if (event === 'onChange') return;\n filterComponentProps[event] = () => {\n context.emit('confirm', column);\n filterPopupVisible.value = false;\n };\n });\n }\n return (\n
    \n {renderComponent(column, filterComponentProps, component)}\n
    \n );\n };\n\n const getBottomButtons = (column: PrimaryTableCol) => {\n if (!column.filter.showConfirmAndReset) return;\n return (\n
    \n {\n context.emit('reset', column);\n filterPopupVisible.value = false;\n }}\n >\n {globalConfig.value.resetText}\n \n {\n context.emit('confirm', column);\n filterPopupVisible.value = false;\n }}\n >\n {globalConfig.value.confirmText}\n \n
    \n );\n };\n\n const getContent = () => (\n
    \n {getFilterContent(props.column)}\n {getBottomButtons(props.column)}\n
    \n );\n\n return {\n t,\n globalConfig,\n FilterIcon,\n filterPopupVisible,\n triggerElementRef,\n renderTNode,\n getContent,\n onFilterPopupVisibleChange,\n };\n },\n\n render() {\n const { column, popupProps, FilterIcon } = this as any;\n\n if (!column.filter || (column.filter && !Object.keys(column.filter).length)) return null;\n const defaultFilterIcon = this.t(this.globalConfig.filterIcon) || ;\n const filterValue = (this.tFilterValue as TableFilterControllerProps['tFilterValue'])?.[column.colKey];\n const isObjectTrue = typeof filterValue === 'object' && !isEmpty(filterValue);\n // false is a valid filter value\n const isValueExist = ![null, undefined, ''].includes(filterValue) && typeof filterValue !== 'object';\n return (\n this.primaryTableElement as HTMLElement : undefined)}\n visible={this.filterPopupVisible}\n destroyOnClose\n trigger=\"click\"\n placement=\"bottom-right\"\n showArrow\n overlayClassName={this.tableFilterClasses.popup}\n onVisibleChange={(val: boolean) => this.onFilterPopupVisibleChange(val)}\n class={[\n this.tableFilterClasses.icon,\n {\n [this.isFocusClass]: isObjectTrue || isValueExist,\n },\n ]}\n content={this.getContent}\n {...popupProps}\n >\n
    \n {this.renderTNode('filterIcon', {\n defaultNode: defaultFilterIcon,\n params: { col: column, colIndex: this.colIndex },\n })}\n
    \n \n );\n },\n});\n","import { toRefs, ref, watch, computed, SetupContext, h } from 'vue';\nimport useClassName from './useClassName';\nimport TButton from '../../button';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, FilterValue, TableFilterChangeContext } from '../type';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useTNodeDefault } from '../../hooks/tnode';\nimport TableFilterController from '../filter-controller';\nimport { useConfig } from '../../hooks/useConfig';\nimport { isFunction } from 'lodash-es';\nimport { getColumnsResetValue } from '@tdesign/common-js/table/utils';\nimport { renderTitle } from './useTableHeader';\n\nfunction isFilterValueExist(value: any) {\n const isArrayTrue = value instanceof Array && value.length;\n const isObject = typeof value === 'object' && !(value instanceof Array);\n const isObjectTrue = value !== null && isObject && Object.keys(value).length;\n return isArrayTrue || isObjectTrue || !['null', '', 'undefined'].includes(String(value));\n}\n\n// 筛选条件不为空,才需要显示筛选结果行\nfunction filterEmptyData(data: FilterValue) {\n const newFilterValue: FilterValue = {};\n Object.keys(data).forEach((key) => {\n const item = data[key];\n if (isFilterValueExist(item)) {\n newFilterValue[key] = item;\n }\n });\n return newFilterValue;\n}\n\nexport default function useFilter(props: TdPrimaryTableProps, context: SetupContext) {\n const primaryTableRef = ref(null);\n const { t, globalConfig } = useConfig('table', props.locale);\n const renderTNode = useTNodeDefault();\n const { filterValue, columns } = toRefs(props);\n const { tableFilterClasses, isFocusClass } = useClassName();\n const isTableOverflowHidden = ref();\n\n // unControl and control\n const [tFilterValue, setTFilterValue] = useDefaultValue(\n filterValue,\n props.defaultFilterValue,\n props.onFilterChange,\n 'filterValue',\n );\n\n // 过滤内部值\n const innerFilterValue = ref(tFilterValue.value);\n\n const hasEmptyCondition = computed(() => {\n const filterEmpty = filterEmptyData(tFilterValue.value || {});\n return !tFilterValue.value || !Object.keys(filterEmpty).length;\n });\n\n watch([tFilterValue], ([val]) => {\n innerFilterValue.value = val;\n });\n\n function renderFirstFilterRow() {\n if (hasEmptyCondition.value) return null;\n const defaultNode = (\n
    \n \n {/* 搜索 “{getFilterResultContent()}”, */}\n {/* 找到 {props.pagination?.total || props.data?.length} 条结果 */}\n {t(globalConfig.value.searchResultText, {\n result: getFilterResultContent(),\n count: props.pagination?.total || props.data?.length,\n })}\n \n \n {globalConfig.value.clearFilterResultButtonText}\n \n
    \n );\n const filterContent = renderTNode('filterRow');\n if ((props.filterRow && !filterContent) || props.filterRow === null) return null;\n return
    {filterContent || defaultNode}
    ;\n }\n\n // 获取搜索条件内容,存在 options 需要获取其 label 显示\n function getFilterResultContent(): string {\n const arr: string[] = [];\n const columns: Array = [];\n getAllColumns(props.columns, columns);\n columns\n .filter((col) => col.filter)\n .forEach((col, index) => {\n let value = tFilterValue.value[col.colKey];\n if (col.filter.list && !['null'].includes(String(value))) {\n const formattedValue = value instanceof Array ? value : [value];\n const label: string[] = [];\n col.filter.list.forEach((option) => {\n if (formattedValue.includes(option.value)) {\n label.push(option.label);\n }\n });\n value = label.join();\n }\n if (isFilterValueExist(value)) {\n const label = isFunction(col.filter?.label) ? col.filter.label(h) : col.filter?.label;\n const title = renderTitle(context.slots, col, index);\n arr.push(`${label || title}:${value}`);\n }\n });\n return arr.join(';');\n }\n //递归拿到所有的 column\n function getAllColumns(col: Array, columns: Array) {\n col.forEach((column) => {\n if (column.children) {\n getAllColumns(column.children, columns);\n }\n columns.push(column);\n });\n }\n\n function onInnerFilterChange(val: any, column: PrimaryTableCol) {\n const filterValue = {\n ...innerFilterValue.value,\n [column.colKey]: val,\n };\n innerFilterValue.value = filterValue;\n if (!column.filter.showConfirmAndReset) {\n emitFilterChange(filterValue, 'filter-change', column);\n }\n }\n\n function emitFilterChange(\n filterValue: FilterValue,\n trigger: TableFilterChangeContext['trigger'],\n column?: PrimaryTableCol,\n ) {\n setTFilterValue(filterValue, { col: column, trigger });\n props.onChange?.({ filter: filterValue }, { trigger: 'filter' });\n }\n\n function onReset(column: PrimaryTableCol) {\n const filterValue: FilterValue = {\n ...tFilterValue.value,\n [column.colKey]:\n column.filter.resetValue ??\n {\n single: '',\n multiple: [],\n input: '',\n }[column.filter.type] ??\n '',\n };\n emitFilterChange(filterValue, 'reset', column);\n }\n\n function onResetAll() {\n const resetValue = getColumnsResetValue(columns.value);\n emitFilterChange(resetValue, 'clear', undefined);\n }\n\n function onConfirm(column: PrimaryTableCol) {\n emitFilterChange(innerFilterValue.value, 'confirm', column);\n }\n\n // 图标:内置图标,组件自定义图标,全局配置图标\n function renderFilterIcon({ col, colIndex }: { col: PrimaryTableCol; colIndex: number }) {\n return (\n \n );\n }\n\n function setFilterPrimaryTableRef(primaryTableElement: any) {\n primaryTableRef.value = primaryTableElement;\n }\n\n function onPopupVisibleChange(visible: boolean) {\n if (visible && !isTableOverflowHidden.value) {\n isTableOverflowHidden.value = !visible;\n }\n }\n\n return {\n hasEmptyCondition,\n isTableOverflowHidden,\n renderFilterIcon,\n renderFirstFilterRow,\n setFilterPrimaryTableRef,\n };\n}\n","/**!\n * Sortable 1.15.6\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar version = \"1.15.6\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches( /**HTMLElement*/el, /**String*/selector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode;\n\n // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect();\n\n // Set relative to edges of padding box of container\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n\n /* jshint boss:true */\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\n\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\n\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\n\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\nfunction index(el, selector) {\n var index = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n\n /* jshint boss:true */\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n return index;\n}\n\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\n\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl) {\n var rect = {};\n Array.from(container.children).forEach(function (child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n\n // If animating: compensate for current animation\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&\n // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n\n // if fromRect != toRect: animate\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return;\n // Fire global events if it exists in this sortable\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n\n // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n\n // Add default options from plugin\n _extends(defaults, initialized.defaults);\n });\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return;\n\n // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\n ghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n\n _silent = false,\n savedInputChecked = [];\n\n/** @const */\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\n supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return;\n // false when <= IE11\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n }(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n },\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n },\n /**\r\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n * @param {Number} x X position\r\n * @param {Number} y Y position\r\n * @return {HTMLElement} Element of the first found nearest Sortable\r\n */\n _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n },\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n },\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n },\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n };\n\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n // Create imitation event\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n\n/**\r\n * @class Sortable\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el; // root element\n this.options = options = _extends({}, options);\n\n // Export instance\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n // Disabled on Safari: #1571; Enabled on Safari IOS: #2244\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && (!Safari || IOS),\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults);\n\n // Set default options\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n _prepareGroup(options);\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n // Setup drag mode\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n }\n\n // Bind events\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n sortables.push(this.el);\n\n // Restore sorting\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n\n // Add animation state manager\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {\n if (!evt.cancelable) return;\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n _saveInputCheckedState(el);\n\n // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n }\n\n // cancel dnd if original target is content editable\n if (originalTarget.isContentEditable) {\n return;\n }\n\n // Safari ignores further event handling after mousedown\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n }\n\n // Get the index of the dragged element within its parent\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n\n // Check filter\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n\n // Prepare `dragstart`\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n\n // Bind the events: dragstart/dragend\n _this._triggerDragStart(evt, touch);\n\n // Drag start event\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n });\n\n // Chosen item\n toggleClass(dragEl, options.chosenClass, true);\n };\n\n // Disable \"draggable\"\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n if (options.supportPointer) {\n on(ownerDocument, 'pointerup', _this._onDrop);\n // Native D&D triggers pointercancel\n !this.nativeDraggable && on(ownerDocument, 'pointercancel', _this._onDrop);\n } else {\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop);\n }\n\n // Make dragEl draggable (must be before delay for FireFox)\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent('delayStart', this, {\n evt: evt\n });\n\n // Delay is impossible for native DnD in Edge or IE\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n if (options.supportPointer) {\n on(ownerDocument, 'pointerup', _this._disableDelayedDrag);\n on(ownerDocument, 'pointercancel', _this._disableDelayedDrag);\n } else {\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n }\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'pointerup', this._disableDelayedDrag);\n off(ownerDocument, 'pointercancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n try {\n if (document.selection) {\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n var options = this.options;\n\n // Apply effect\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n\n // Drag start event\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent; // store last element\n }\n /* jshint boss:true */ while (parent = getParentOrHost(parent));\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n\n // only set the status to dragging, when we are actually dragging\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options;\n\n // Position absolutely\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n\n // Set transform-origin\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent('setupClone', this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n\n // #1143: IFrame support workaround\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n\n // Set proper drop events\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, 'drop', _this);\n\n // #1276 fix:\n css(dragEl, 'transform', 'translateZ(0)');\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n window.getSelection().removeAllRanges();\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver( /**Event*/evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n if (_silent) return;\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n }\n\n // Capture animation state\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n\n // Return invocation when dragEl is inserted (or completed)\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n\n // Animation\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n\n // Null lastTarget if it is not inside a previously swapped element\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n\n // no bubbling and not fallback\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n\n // Do not detect for empty insert if already inserted\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n\n // Call when dragEl has been inserted\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n if (revert) {\n parentEl = rootEl; // actualization\n capture();\n this._hideClone();\n dragOverEvent('revert');\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n }\n\n // if there is a last element, it is the target\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n // the last draggable element is not the last node\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n }\n // If dragEl is already beside target: Do not insert\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n\n // Undo chrome's scroll adjustment (has no effect on other browsers)\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode; // actualization\n\n // must be done before animation\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'pointercancel', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop( /**Event*/evt) {\n var el = this.el,\n options = this.options;\n\n // Get the index of the dragged element within its parent\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode;\n\n // Get again after plugin event\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n\n // Unbind events\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n css(dragEl, 'transform', '');\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n _disableDraggable(dragEl);\n dragEl.style['will-change'] = '';\n\n // Remove classes\n // ghostClass is added in dragStarted\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n\n // Drag stop event\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n // Remove event\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // drag from one list and drop into another\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // Save sorting\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent( /**Event*/evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n break;\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n /**\r\n * Serializes the item into an array of string.\r\n * @returns {String[]}\r\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\r\n * Sorts the elements according to the array.\r\n * @param {String[]} order order of the items\r\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\r\n * Save the current sorting\r\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\r\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n * @param {HTMLElement} el\r\n * @param {String} [selector] default: `options.draggable`\r\n * @returns {HTMLElement|null}\r\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\r\n * Set/get option\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {*}\r\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n /**\r\n * Destroy\r\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n }\n // Remove draggable attributes\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return;\n\n // show clone at dragEl or original position\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver( /**Event*/evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal;\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\n\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\r\n * @return {Number} Direction dragEl must be swapped\r\n */\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n\n/**\r\n * Generate id\r\n * @param {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\n\n// Fixed #973:\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\n\n// Export utils\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild,\n expando: expando\n};\n\n/**\r\n * Get the Sortable instance of an element\r\n * @param {HTMLElement} element The element\r\n * @return {Sortable|undefined} The instance of Sortable\r\n */\nSortable.get = function (element) {\n return element[expando];\n};\n\n/**\r\n * Mount a plugin to Sortable\r\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\r\n */\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n};\n\n// Export\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n\n // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n\n // Listener for pointer element change\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n // Detect for pointer elem change, emulating native DnD behaviour\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn;\n\n // New scroll root, set scrollEl\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\nfunction Revert() {}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n this.sortable.animateAll();\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\nfunction Remove() {}\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\n multiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\n folding = false,\n // Folding any other time\n dragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n if (!sortable.options.avoidImplicitDeselect) {\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n }\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n avoidImplicitDeselect: false,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n dataTransfer.setData('Text', data);\n }\n };\n }\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n sortable._hideClone();\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n });\n\n // Sort multi-drag elements\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n\n sortable.captureAnimationState();\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n }\n\n // Remove all auxiliary multidrag items from el, if sorting enabled\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n initialFolding = false;\n // If leaving sort:false root, or already folding - Fold to new location\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute);\n\n // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n }\n\n // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n activeSortable._showClone(sortable);\n\n // Unfold animation for clones if showing from hidden\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children;\n\n // Multi-drag selection\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n\n // Modifier activated, select from last to dragEl\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n (function () {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n var filter = options.filter;\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n // Check if element is draggable\n if (!closest(children[i], options.draggable, parentEl, false)) continue;\n // Check if element is filtered\n var filtered = filter && (typeof filter === 'function' ? filter.call(sortable, evt, children[i], sortable) : filter.split(',').some(function (criteria) {\n return closest(children[i], criteria.trim(), parentEl, false);\n }));\n if (filtered) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvent: evt\n });\n }\n })();\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n }\n }\n\n // Multi-drag drop\n if (dragStarted && this.isMultiDrag) {\n folding = false;\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect;\n\n // Prepare unfold animation\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n }\n\n // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n multiDragIndex++;\n });\n\n // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n if (update) {\n dispatchSortableEvent('update');\n dispatchSortableEvent('sort');\n }\n }\n }\n\n // Must be done after capturing individual rects (scroll bar)\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n multiDragSortable = toSortable;\n }\n\n // Remove clones if necessary\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return;\n\n // Only deselect if selection is in this sortable\n if (multiDragSortable !== this.sortable) return;\n\n // Only deselect if target is not item in this sortable\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;\n\n // Only deselect if left click\n if (evt && evt.button !== 0) return;\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvent: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n multiDragSortable = sortable;\n }\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n });\n\n // multiDragElements will already be sorted if folding\n var newIndex;\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n return key;\n }\n }\n });\n}\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","// 拖拽排序场景中:调整某个元素的顺序\nexport default function swapDragArrayElement(\n data: any[], currentIndex: number, targetIndex: number\n) {\n const newData = [...data];\n if (targetIndex - currentIndex > 0) {\n newData.splice(targetIndex + 1, 0, newData[currentIndex]);\n newData.splice(currentIndex, 1);\n } else {\n newData.splice(targetIndex, 0, newData[currentIndex]);\n newData.splice(currentIndex + 1, 1);\n }\n return newData;\n}\n","// 表格 行拖拽 + 列拖拽功能\nimport { SetupContext, computed, toRefs, ref, watch, h, ComputedRef } from 'vue';\nimport Sortable, { SortableEvent, SortableOptions, MoveEvent } from 'sortablejs';\nimport { isFunction } from 'lodash-es';\nimport { TableRowData, TdPrimaryTableProps, DragSortContext, PrimaryTableCol } from '../type';\nimport useClassName from './useClassName';\nimport log from '@tdesign/common-js/log/index';\nimport { hasClass } from '../../utils/dom';\nimport swapDragArrayElement from '@tdesign/common-js/utils/swapDragArrayElement';\nimport { BaseTableColumns } from '../interface';\nimport { getColumnDataByKey, getColumnIndexByKey } from '@tdesign/common-js/table/utils';\nimport { SimplePageInfo } from '../interface';\n\nfunction removeNode(node: HTMLElement) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode: HTMLElement, node: HTMLElement, position: number) {\n const refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\nexport default function useDragSort(\n props: TdPrimaryTableProps,\n context: SetupContext,\n params: ComputedRef<{\n showElement: boolean;\n }>,\n) {\n const { sortOnRowDraggable, dragSort, data } = toRefs(props);\n const innerPagination = ref(props.pagination);\n const { tableDraggableClasses, tableBaseClass, tableFullRowClasses, tableExpandClasses } = useClassName();\n const columns = ref(props.columns || []);\n const primaryTableRef = ref(null);\n // @ts-ignore 判断是否有拖拽列\n const dragCol = computed(() => columns.value.find((item) => item.colKey === 'drag'));\n // 行拖拽判断条件\n const isRowDraggable = computed(\n () => sortOnRowDraggable.value || ['row', 'row-handler-col'].includes(dragSort.value),\n );\n // 行拖拽判断条件-手柄列\n const isRowHandlerDraggable = computed(\n () => ['row-handler', 'row-handler-col'].includes(dragSort.value) && !!dragCol.value,\n );\n // 列拖拽判断条件\n const isColDraggable = computed(() => ['col', 'row-handler-col'].includes(dragSort.value));\n\n if (props.sortOnRowDraggable) {\n log.error('Table', \"`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.\");\n }\n\n // 本地分页的表格,index 不同,需加上分页计数\n function getDataPageIndex(index: number, pagination: SimplePageInfo) {\n const current = pagination.current ?? pagination.defaultCurrent;\n const pageSize = pagination.pageSize ?? pagination.defaultPageSize;\n // 开启本地分页的场景\n if (!props.disableDataPage && pagination && data.value.length > pageSize) {\n return pageSize * (current - 1) + index;\n }\n return index;\n }\n\n // 行拖拽排序\n const registerRowDragEvent = (element: HTMLDivElement): void => {\n /**\n * fix: https://github.com/Tencent/tdesign-vue-next/issues/4985\n * 若table内容未渲染(即element子元素为空),拖拽事件不注册\n */\n if (element?.children?.length === 0 || (!isRowHandlerDraggable.value && !isRowDraggable.value)) return;\n const dragContainer = element?.querySelector('tbody');\n if (!dragContainer) {\n console.error('tbody does not exist.');\n return null;\n }\n const baseOptions: SortableOptions = {\n animation: 150,\n ghostClass: tableDraggableClasses.ghost,\n chosenClass: tableDraggableClasses.chosen,\n dragClass: tableDraggableClasses.dragging,\n // 过滤首行尾行固定,过滤展开行\n filter: `.${tableFullRowClasses.base},.${tableExpandClasses.row}`,\n onMove: (evt: MoveEvent) => !hasClass(evt.related, tableFullRowClasses.base),\n onEnd(evt: SortableEvent) {\n if (evt.newIndex === evt.oldIndex) return;\n // 处理受控:拖拽列表恢复原始排序\n removeNode(evt.item);\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\n let { oldIndex: currentIndex, newIndex: targetIndex } = evt;\n if (\n (isFunction(props.firstFullRow) && props.firstFullRow(h)) ||\n context.slots.firstFullRow ||\n context.slots['first-full-row']\n ) {\n currentIndex -= 1;\n targetIndex -= 1;\n }\n if (innerPagination.value) {\n currentIndex = getDataPageIndex(currentIndex, innerPagination.value);\n targetIndex = getDataPageIndex(targetIndex, innerPagination.value);\n }\n const params: DragSortContext = {\n data: data.value,\n currentIndex,\n current: data.value[currentIndex],\n targetIndex,\n target: data.value[targetIndex],\n newData: swapDragArrayElement([...props.data], currentIndex, targetIndex),\n e: evt,\n sort: 'row',\n };\n // currentData is going to be deprecated\n params.currentData = params.newData;\n props.onDragSort?.(params);\n },\n ...props.dragSortOptions,\n };\n\n if (!dragContainer) return;\n if (isRowDraggable.value) {\n new Sortable(dragContainer, { ...baseOptions });\n } else {\n new Sortable(dragContainer, {\n ...baseOptions,\n handle: `.${tableDraggableClasses.handle}`,\n });\n }\n };\n\n const registerOneLevelColDragEvent = (container: HTMLElement, recover: boolean) => {\n const options: SortableOptions = {\n animation: 150,\n dataIdAttr: 'data-colkey',\n direction: 'vertical',\n ghostClass: tableDraggableClasses.ghost,\n chosenClass: tableDraggableClasses.chosen,\n dragClass: tableDraggableClasses.dragging,\n handle: `.${tableBaseClass.thCellInner}`,\n // 存在类名:t-table__th--drag-sort 的列才允许拖拽调整顺序(注意:添加 draggable 之后,固定列的表头 和 吸顶表头 位置顺序会错位,暂时注释)\n // draggable: `th.${tableDraggableClasses.dragSortTh}`,\n onEnd: (evt: SortableEvent) => {\n if (evt.newIndex === evt.oldIndex) return;\n if (recover) {\n // 处理受控:拖拽列表恢复原始排序,等待外部数据 data 变化,更新最终顺序\n removeNode(evt.item);\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\n }\n const { oldIndex, newIndex, target: targetElement } = evt;\n let currentIndex = recover ? oldIndex : newIndex;\n let targetIndex = recover ? newIndex : oldIndex;\n const oldElement = targetElement.children[currentIndex] as HTMLElement;\n const newElement = targetElement.children[targetIndex] as HTMLElement;\n const current = getColumnDataByKey(columns.value, oldElement.dataset.colkey);\n const target = getColumnDataByKey(columns.value, newElement.dataset.colkey);\n if (!current || !current.colKey) {\n log.error('Table', `colKey is missing in ${JSON.stringify(current)}`);\n }\n if (!target || !target.colKey) {\n log.error('Table', `colKey is missing in ${JSON.stringify(target)}`);\n }\n // 寻找外部数据 props.columns 中的真正下标\n currentIndex = getColumnIndexByKey(props.columns, current.colKey);\n targetIndex = getColumnIndexByKey(props.columns, target.colKey);\n const params: DragSortContext = {\n data: columns.value,\n currentIndex,\n current,\n targetIndex,\n target,\n newData: swapDragArrayElement([...props.columns], currentIndex, targetIndex),\n e: evt,\n sort: 'col',\n };\n // currentData is going to be deprecated\n params.currentData = params.newData;\n props.onDragSort?.(params);\n },\n ...props.dragSortOptions,\n };\n if (!container) return;\n new Sortable(container, options);\n };\n\n // 列拖拽排序:涉及到多级表头、自定义显示列 等综合场景\n const registerColDragEvent = (tableElement: HTMLElement) => {\n if (!isColDraggable.value || !tableElement) return;\n const trList = tableElement.querySelectorAll('thead > tr');\n if (trList.length <= 1) {\n const [container] = trList;\n registerOneLevelColDragEvent(container as HTMLElement, true);\n } else {\n // 多级表头只抛出事件,不处理其他未知逻辑(如多层表头之间具体如何交换)\n trList?.forEach((container) => {\n registerOneLevelColDragEvent(container as HTMLElement, false);\n });\n }\n };\n\n function setDragSortPrimaryTableRef(primaryTableElement: any) {\n primaryTableRef.value = primaryTableElement;\n }\n\n function setDragSortColumns(val: BaseTableColumns) {\n // @ts-ignore\n columns.value = val;\n }\n\n // eslint-disable-next-line\n watch([primaryTableRef, columns, dragSort, params], ([val, columns, dragSort, params]) => {\n register(val, params);\n });\n\n function register(val: any, params: any) {\n const primaryTableCmp = val as any;\n if (!val || !primaryTableCmp.$el || !params.showElement) return;\n // register after table tr rendered\n const timerA = setTimeout(() => {\n registerRowDragEvent(primaryTableCmp.$el);\n registerColDragEvent(primaryTableCmp.$el);\n /** 待表头节点准备完成后 */\n const timer = setTimeout(() => {\n if (primaryTableCmp.$refs.affixHeaderRef) {\n registerColDragEvent(primaryTableCmp.$refs.affixHeaderRef);\n }\n clearTimeout(timer);\n });\n\n clearTimeout(timerA);\n }, 60);\n }\n\n return {\n innerPagination,\n isRowDraggable,\n isRowHandlerDraggable,\n isColDraggable,\n setDragSortPrimaryTableRef,\n setDragSortColumns,\n };\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { computed, defineComponent, onMounted, PropType, ref, SetupContext, toRefs, watch } from 'vue';\nimport { get } from 'lodash-es';\nimport { set } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { Edit1Icon as TdEdit1Icon } from 'tdesign-icons-vue-next';\nimport {\n TableRowData,\n PrimaryTableCol,\n PrimaryTableRowEditContext,\n PrimaryTableRowValidateContext,\n TdBaseTableProps,\n TableEditableCellPropsParams,\n} from './type';\nimport { TableClassName } from './hooks/useClassName';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { renderCell } from './tr';\nimport { validate } from '../form/utils/form-model';\nimport log from '@tdesign/common-js/log/index';\nimport { AllValidateResult } from '../form/type';\nimport { on, off } from '../utils/dom';\nimport { isObject } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport interface OnEditableChangeContext extends PrimaryTableRowEditContext {\n isEdit: boolean;\n validateEdit: (trigger: 'self' | 'parent') => Promise;\n}\n\nexport interface EditableCellProps {\n rowKey: string;\n row: TableRowData;\n rowIndex: number;\n col: PrimaryTableCol;\n colIndex: number;\n oldCell: PrimaryTableCol['cell'];\n tableBaseClass?: TableClassName['tableBaseClass'];\n /** 行编辑需要使用 editable。单元格编辑则无需使用,设置为 undefined */\n editable?: boolean;\n readonly?: boolean;\n errors?: AllValidateResult[];\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n /** 编辑数据时触发 */\n onChange?: (context: PrimaryTableRowEditContext) => void;\n /** 校验结束后触发 */\n onValidate?: (context: PrimaryTableRowValidateContext) => void;\n /** 校验规则发生变化时触发 */\n onRuleChange?: (context: PrimaryTableRowEditContext) => void;\n /** 进入或退出编辑态时触发 */\n onEditableChange?: (context: OnEditableChangeContext) => void;\n}\n\nexport default defineComponent({\n name: 'TableEditableCell',\n props: {\n row: Object as PropType,\n rowKey: String,\n rowIndex: Number,\n col: Object as PropType,\n colIndex: Number,\n oldCell: [Function, String] as PropType,\n tableBaseClass: Object as PropType,\n cellEmptyContent: [Function, String] as PropType,\n editable: {\n type: Boolean,\n default: undefined,\n },\n readonly: {\n type: Boolean,\n },\n errors: {\n type: Array as PropType,\n default: undefined,\n },\n onChange: Function as PropType,\n onValidate: Function as PropType,\n onRuleChange: Function as PropType,\n onEditableChange: Function as PropType,\n },\n\n emits: ['update-edited-cell'],\n\n setup(props: EditableCellProps, context: SetupContext) {\n const { row, col } = toRefs(props);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const tableEditableCellRef = ref(null);\n const isKeepEditMode = computed(() => col.value.edit?.keepEditMode);\n const isEdit = ref(isKeepEditMode.value || props.col.edit?.defaultEditable || false);\n const editValue = ref();\n const errorList = ref();\n const classPrefix = usePrefixClass();\n\n const { Edit1Icon } = useGlobalIcon({ Edit1Icon: TdEdit1Icon });\n\n const updateEditedCellValue: TableEditableCellPropsParams['updateEditedCellValue'] = (obj) => {\n if (typeof obj === 'object' && ('rowValue' in obj || obj.isUpdateCurrentRow)) {\n const rowValue = obj.isUpdateCurrentRow ? get(row.value, props.rowKey) : obj.rowValue;\n delete obj.rowValue;\n delete obj.isUpdateCurrentRow;\n context.emit('update-edited-cell', rowValue, row.value, obj);\n } else {\n editValue.value = obj;\n }\n };\n\n watch([isKeepEditMode], (val) => {\n if (val) {\n isEdit.value = true;\n }\n });\n\n const editOnListeners = computed(() => {\n return col.value.edit?.on?.({ ...cellParams.value, editedRow: currentRow.value, updateEditedCellValue }) || {};\n });\n\n const cellParams = computed(() => ({\n rowIndex: props.rowIndex,\n colIndex: props.colIndex,\n col: props.col,\n row: props.row,\n }));\n\n const currentRow = computed(() => {\n const { colKey } = col.value;\n // handle colKey like a.b.c\n const [firstKey, ...restKeys] = colKey.split('.') || [];\n const newRow = { ...row.value };\n if (restKeys.length) {\n newRow[firstKey] = cloneDeep(row.value[firstKey]);\n set(newRow[firstKey], restKeys.join('.'), editValue.value);\n } else {\n set(newRow, colKey, editValue.value);\n }\n return newRow;\n });\n\n const cellNode = computed(() => {\n const node = renderCell(\n {\n row: currentRow.value,\n col: { ...col.value, cell: props.oldCell },\n rowIndex: props.rowIndex,\n colIndex: props.colIndex,\n },\n context.slots,\n { cellEmptyContent: props.cellEmptyContent },\n );\n return node;\n });\n\n const editProps = computed(() => {\n const { edit } = col.value;\n return isFunction(edit.props)\n ? edit.props({\n ...cellParams.value,\n editedRow: currentRow.value,\n updateEditedCellValue,\n })\n : { ...edit.props };\n });\n\n const componentProps = computed(() => {\n const { edit } = col.value;\n if (!edit) return {};\n const tmpProps = { ...editProps.value };\n // for removing warn: runtime-core.esm-bundler.js:38 [Vue warn]: Invalid prop: type check failed for prop \"onChange\". Expected Function, got Array\n delete tmpProps.onChange;\n delete tmpProps.value;\n edit.abortEditOnEvent?.forEach((item) => {\n delete tmpProps[item];\n });\n return tmpProps;\n });\n\n const isAbortEditOnChange = computed(() => {\n const { edit } = col.value;\n if (!edit) return false;\n return Boolean(edit.abortEditOnEvent?.includes('onChange'));\n });\n\n const validateEdit = (trigger: 'self' | 'parent'): Promise => {\n return new Promise((resolve) => {\n const params: PrimaryTableRowValidateContext = {\n result: [\n {\n ...cellParams.value,\n errorList: [],\n value: editValue.value,\n },\n ],\n trigger,\n };\n const rules = isFunction(col.value.edit.rules) ? col.value.edit.rules(cellParams.value) : col.value.edit.rules;\n if (!col.value.edit || !rules || !rules.length) {\n props.onValidate?.(params);\n resolve(true);\n return;\n }\n validate(editValue.value, rules).then((result) => {\n const list = result?.filter((t) => !t.result);\n params.result[0].errorList = list;\n props.onValidate?.(params);\n if (!list || !list.length) {\n errorList.value = [];\n resolve(true);\n } else {\n errorList.value = list;\n resolve(list);\n }\n });\n });\n };\n\n const isSame = (a: any, b: any) => {\n if (isObject(a) && isObject(b)) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n return a === b;\n };\n\n const updateAndSaveAbort = (outsideAbortEvent: Function, eventName: string, ...args: any) => {\n validateEdit('self').then((result) => {\n if (result !== true) return;\n const oldValue = get(row.value, col.value.colKey);\n // 相同的值无需触发变化\n if (!isSame(editValue.value, oldValue)) {\n editValue.value = oldValue;\n outsideAbortEvent?.(...args);\n }\n editOnListeners.value[eventName]?.(args[2]);\n // 此处必须在事件执行完成后异步销毁编辑组件,否则会导致事件清除不及时引起的其他问题\n const timer = setTimeout(() => {\n if (!isKeepEditMode.value) {\n isEdit.value = false;\n }\n errorList.value = [];\n props.onEditableChange?.({\n ...cellParams.value,\n value: editValue.value,\n editedRow: { ...props.row, [props.col.colKey]: editValue.value },\n validateEdit,\n isEdit: false,\n });\n clearTimeout(timer);\n }, 0);\n });\n };\n\n const listeners = computed<{ [key: string]: Function }>(() => {\n const { edit } = col.value;\n const isCellEditable = props.editable === undefined;\n if (!isEdit.value || !isCellEditable) return;\n if (!edit?.abortEditOnEvent?.length) return {};\n // 自定义退出编辑态的事件\n const tListeners: Record = {};\n const outsideAbortEvent = edit?.onEdited;\n edit.abortEditOnEvent.forEach((itemEvent) => {\n if (itemEvent === 'onChange') return;\n tListeners[itemEvent] = (...args: any) => {\n updateAndSaveAbort(\n outsideAbortEvent,\n itemEvent,\n {\n ...cellParams.value,\n trigger: itemEvent,\n newRowData: currentRow.value,\n },\n ...args,\n );\n };\n });\n\n return tListeners;\n });\n\n // 数据输入时触发\n const onEditChange = (val: any, ...args: any) => {\n editValue.value = val;\n const params = {\n ...cellParams.value,\n value: val,\n editedRow: { ...props.row, [props.col.colKey]: val },\n };\n editProps.value?.onChange?.(val, ...args);\n props.onChange?.(params);\n props.onRuleChange?.(params);\n editOnListeners.value?.onChange?.(params);\n const isCellEditable = props.editable === undefined;\n if (isCellEditable && isAbortEditOnChange.value) {\n const outsideAbortEvent = col.value.edit?.onEdited;\n updateAndSaveAbort(\n outsideAbortEvent,\n 'change',\n {\n ...cellParams.value,\n trigger: 'onChange',\n newRowData: currentRow.value,\n },\n ...args,\n );\n }\n if (col.value.edit?.validateTrigger === 'change') {\n validateEdit('self');\n }\n };\n\n const documentClickHandler = (e: MouseEvent) => {\n if (!col.value.edit || !col.value.edit.component) return;\n if (!isEdit.value) return;\n // @ts-ignore some browser is also only support e.path\n const path = e.composedPath?.() || e.path || [];\n const node = path.find((node: HTMLElement) => node.classList?.contains(`${classPrefix.value}-popup__content`));\n if (node) return;\n const outsideAbortEvent = col.value.edit.onEdited;\n updateAndSaveAbort(outsideAbortEvent, '', {\n ...cellParams.value,\n trigger: 'document',\n newRowData: currentRow.value,\n });\n };\n\n const enterEdit = () => {\n props.onEditableChange?.({\n ...cellParams.value,\n value: editValue.value,\n editedRow: props.row,\n isEdit: true,\n validateEdit,\n });\n };\n\n const onCellClick = (e: MouseEvent) => {\n isEdit.value = true;\n enterEdit();\n e.stopPropagation();\n };\n\n onMounted(() => {\n if (props.col.edit?.defaultEditable) {\n enterEdit();\n }\n });\n\n const cellValue = computed(() => get(row.value, col.value.colKey));\n\n watch(\n cellValue,\n (cellValue) => {\n editValue.value = cellValue;\n },\n { immediate: true },\n );\n\n watch(\n isEdit,\n (isEdit) => {\n const isCellEditable = props.editable === undefined;\n if (!col.value.edit || !col.value.edit.component || !isCellEditable) return;\n if (isEdit) {\n on(document, 'click', documentClickHandler);\n } else {\n off(document, 'click', documentClickHandler);\n }\n },\n { immediate: true },\n );\n\n watch(\n () => [props.editable, props.row, props.col, props.rowIndex, props.colIndex],\n ([editable]: [boolean]) => {\n // 退出编辑态时,恢复原始值,等待父组件传入新的 data 值\n if (editable === false) {\n editValue.value = cellValue.value;\n } else if (editable === true) {\n props.onRuleChange?.({\n ...cellParams.value,\n value: cellValue.value,\n editedRow: row.value,\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.errors,\n (errors) => {\n errorList.value = errors;\n },\n );\n\n return () => {\n if (props.readonly) {\n return cellNode.value;\n }\n // props.editable = undefined 表示由组件内部控制编辑状态\n if ((props.editable === undefined && !isEdit.value) || props.editable === false) {\n return (\n
    \n {cellNode.value}\n {col.value.edit?.showEditIcon !== false && }\n
    \n );\n }\n const Component = col.value.edit?.component;\n if (!Component) {\n log.error('Table', 'edit.component is required.');\n return null;\n }\n const errorMessage = errorList.value?.[0]?.message;\n const tmpEditOnListeners = { ...editOnListeners.value };\n delete tmpEditOnListeners.onChange;\n // remove conflict events\n if (col.value.edit?.abortEditOnEvent?.length) {\n col.value.edit.abortEditOnEvent.forEach((onEventName) => {\n if (tmpEditOnListeners[onEventName]) {\n delete tmpEditOnListeners[onEventName];\n }\n });\n }\n return (\n {\n e.stopPropagation();\n }}\n ref=\"tableEditableCellRef\"\n >\n \n \n );\n };\n },\n});\n","import { ref, computed, watch, toRefs } from 'vue';\nimport { get } from 'lodash-es';\nimport { set } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { PrimaryTableProps } from '../interface';\nimport { getEditableKeysMap } from '@tdesign/common-js/table/utils';\nimport { validate } from '../../form/utils/form-model';\nimport { cloneDeep } from 'lodash-es';\nimport {\n PrimaryTableRowEditContext,\n TableRowData,\n TableErrorListMap,\n PrimaryTableInstanceFunctions,\n ErrorListObjectType,\n PrimaryTableCellParams,\n} from '../type';\nimport { getCellKey, getRowKeyFromCell } from './useRowspanAndColspan';\nimport { OnEditableChangeContext } from '../editable-cell';\n\nexport interface TablePromiseErrorData {\n errors: ErrorListObjectType[];\n errorMap: TableErrorListMap;\n}\n\nexport default function useRowEdit(props: PrimaryTableProps) {\n const { editableRowKeys } = toRefs(props);\n const cellRuleMap = new Map[]>();\n // 校验不通过的错误信息,其中 key 值为 [rowValue, col.colKey].join('__')\n const errorListMap = ref({});\n // 处于编辑态的表格行\n const editableKeysMap = computed(() => getEditableKeysMap(props.editableRowKeys, props.data, props.rowKey || 'id'));\n // 当前编辑的单元格\n const editingCells = ref<{ [cellKey: string]: OnEditableChangeContext }>({});\n // 编辑状态的数据\n const editedFormData = ref<{ [rowValue: string]: { [colKey: string]: any } }>({});\n\n const getErrorListMapByErrors = (errors: ErrorListObjectType[]): TableErrorListMap => {\n const errorMap: TableErrorListMap = {};\n errors.forEach(({ row, col, errorList }) => {\n const rowValue = get(row, props.rowKey || 'id');\n const key = [rowValue, col.colKey].join('__');\n if (errorList?.length) {\n errorMap[key] = errorList;\n } else {\n delete errorMap[key];\n }\n });\n return errorMap;\n };\n\n // 校验一行的数据\n const validateOneRowData = (rowValue: any) => {\n const rowRules = cellRuleMap.get(rowValue);\n if (!rowRules) return;\n const list = rowRules.map(\n (item) =>\n new Promise>((resolve) => {\n const { editedRow, col } = item;\n const rules = isFunction(col.edit.rules) ? col.edit.rules(item) : col.edit.rules;\n if (!col.edit || !rules || !rules.length) {\n resolve({ ...item, errorList: [] });\n return;\n }\n validate(get(editedRow, col.colKey), rules).then((r) => {\n resolve({ ...item, errorList: r.filter((t) => !t.result) });\n });\n }),\n );\n return new Promise((resolve, reject) => {\n Promise.all(list).then((errors) => {\n resolve({\n errors: errors.filter((t) => t.errorList?.length),\n errorMap: getErrorListMapByErrors(errors),\n });\n }, reject);\n });\n };\n\n /**\n * 校验表格单行数据(对外开放方法,修改时需慎重)\n * @param rowValue 行唯一标识\n */\n const validateRowData: PrimaryTableInstanceFunctions['validateRowData'] = (rowValue: any) =>\n new Promise((resolve, reject) => {\n validateOneRowData(rowValue).then(({ errors, errorMap }) => {\n errorListMap.value = errorMap;\n // 缺少校验文本显示\n const tTrigger = 'parent';\n props.onRowValidate?.({ trigger: tTrigger, result: errors });\n resolve({ trigger: tTrigger, result: errors });\n }, reject);\n });\n\n // 校验可编辑单元格\n const validateTableCellData = (): Promise<{ result: TableErrorListMap }> => {\n const cellKeys = Object.keys(editingCells.value);\n\n // 过滤不存在的行,如删除操作\n const existKeys = props.data.map((v) => v[props.rowKey]?.toString());\n const promiseList = cellKeys\n .filter((v) => existKeys.includes(getRowKeyFromCell(v)))\n .map((cellKey) => editingCells.value[cellKey].validateEdit('parent'));\n return new Promise((resolve, reject) => {\n Promise.all(promiseList).then((arr) => {\n const allErrorListMap: TableErrorListMap = {};\n arr.forEach((result, index) => {\n if (result === true) return;\n allErrorListMap[cellKeys[index]] = result;\n });\n props.onValidate?.({ result: allErrorListMap });\n resolve({ result: allErrorListMap });\n }, reject);\n });\n };\n\n /**\n * 校验整个表格数据(对外开放方法,修改时需慎重)\n */\n const validateTableData: PrimaryTableInstanceFunctions['validateTableData'] = () => {\n if (Object.keys(editingCells.value).length) {\n return validateTableCellData();\n }\n const promiseList: Promise[] = [];\n\n const data = props.data || [];\n for (let i = 0, len = data.length; i < len; i++) {\n const rowValue = get(data[i], props.rowKey || 'id');\n promiseList.push(validateOneRowData(rowValue));\n }\n return new Promise((resolve, reject) => {\n Promise.all(promiseList).then((rList) => {\n const allErrorListMap: TableErrorListMap = {};\n rList.forEach(({ errorMap } = { errors: [], errorMap: {} }) => {\n errorMap && Object.assign(allErrorListMap, errorMap);\n });\n errorListMap.value = allErrorListMap;\n props.onValidate?.({ result: allErrorListMap });\n resolve({ result: allErrorListMap });\n }, reject);\n });\n };\n\n /** 更新编辑态单元格数据 */\n const onUpdateEditedCell = (rowValue: any, lastRowData: TableRowData, data: { [key: string]: any }) => {\n if (!editedFormData.value[rowValue]) {\n editedFormData.value[rowValue] = cloneDeep(lastRowData);\n }\n Object.entries(data).forEach(([key, val]) => {\n set(editedFormData.value[rowValue], key, val);\n });\n };\n\n const onRuleChange = (context: PrimaryTableRowEditContext) => {\n // 编辑行,预存校验信息,方便最终校验\n if (props.editableRowKeys) {\n const rowValue = get(context.row, props.rowKey || 'id');\n const rules = cellRuleMap.get(rowValue);\n if (rules) {\n const index = rules.findIndex((t) => t.col.colKey === context.col.colKey);\n if (index === -1) {\n rules.push(context);\n } else {\n rules[index] = context;\n }\n cellRuleMap.set(rowValue, rules);\n } else {\n cellRuleMap.set(rowValue, [context]);\n }\n }\n };\n\n const clearValidateData = () => {\n errorListMap.value = {};\n };\n\n const onPrimaryTableCellEditChange = (params: OnEditableChangeContext) => {\n const cellKey = getCellKey(params.row, props.rowKey, params.col.colKey, params.colIndex);\n\n if (params.isEdit) {\n // @ts-ignore\n editingCells.value[cellKey] = params;\n } else {\n delete editingCells.value[cellKey];\n }\n };\n\n const getEditRowData = ({ row, col }: PrimaryTableCellParams) => {\n const rowValue = get(row, props.rowKey || 'id');\n const editedRowData = editedFormData.value[rowValue];\n if (editedRowData && props.editableRowKeys?.includes(rowValue)) {\n const tmpRow = { ...editedRowData };\n set(tmpRow, col.colKey, get(editedRowData, col.colKey));\n return tmpRow;\n }\n return row;\n };\n\n watch(\n () => editableRowKeys.value?.join(','),\n (keyStr) => {\n const editableRowKeys = keyStr.split(',');\n const rowValueList = Object.keys(editedFormData.value);\n rowValueList.forEach((key) => {\n if (!editableRowKeys.includes(key)) {\n // clear exited editable state row data\n delete editedFormData.value[key];\n }\n });\n },\n );\n\n return {\n editedFormData,\n errorListMap,\n editableKeysMap,\n validateTableData,\n validateTableCellData,\n validateRowData,\n onRuleChange,\n clearValidateData,\n onUpdateEditedCell,\n getEditRowData,\n onPrimaryTableCellEditChange,\n };\n}\n","import { computed, defineComponent, toRefs, h, ref, onMounted, getCurrentInstance } from 'vue';\nimport { get } from 'lodash-es';\nimport { omit } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useColumnController from './hooks/useColumnController';\nimport useRowExpand from './hooks/useRowExpand';\nimport useTableHeader, { renderTitle } from './hooks/useTableHeader';\nimport useRowSelect from './hooks/useRowSelect';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, PrimaryTableCellParams } from './type';\nimport useSorter from './hooks/useSorter';\nimport useFilter from './hooks/useFilter';\nimport useDragSort from './hooks/useDragSort';\nimport useAsyncLoading from './hooks/useAsyncLoading';\nimport EditableCell, { EditableCellProps } from './editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\nimport { useConfig } from '../hooks/useConfig';\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\nimport { ScrollToElementParams } from '../hooks/useVirtualScrollNew';\nimport { BaseTableProps } from './interface';\n\nexport { BASE_TABLE_ALL_EVENTS } from './base-table';\n\nconst OMIT_PROPS = [\n 'hideSortTips',\n 'dragSort',\n 'defaultExpandedRowKeys',\n 'defaultSelectedRowKeys',\n 'columnController',\n 'filterRow',\n 'sortOnRowDraggable',\n 'expandOnRowClick',\n 'expand-on-row-click',\n 'expanded-row',\n 'editable-row-keys',\n 'editable-cell-state',\n 'filter-value',\n 'multipleSort',\n 'expandIcon',\n 'expand-icon',\n 'reserveSelectedRowOnPaginate',\n 'expandedRowKeys',\n 'expandedRow',\n 'reserve-selected-row-on-paginate',\n 'reserveSelectedRowOnPaginate',\n 'selected-row-keys',\n 'selectedRowKeys',\n 'selectOnRowClick',\n 'column-controller',\n 'columnController',\n 'dragSort',\n 'drag-sort',\n 'hideSortTips',\n 'showSortColumnBgColor',\n 'filter-row',\n 'filterRow',\n 'multiple-sort',\n 'multipleSort',\n 'async-loading',\n 'onChange',\n 'onAsyncLoadingClick',\n 'onColumnChange',\n 'onColumnControllerVisibleChange',\n 'onDataChange',\n 'onDisplayColumnsChange',\n 'onDragSort',\n 'onExpandChange',\n 'onFilterChange',\n 'onSelectChange',\n 'onSortChange',\n];\n\nexport default defineComponent({\n name: 'TPrimaryTable',\n\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n },\n\n setup(props, context) {\n const renderTNode = useTNodeJSX();\n const { columns, columnController } = toRefs(props);\n const primaryTableRef = ref(null);\n const showElement = ref(false);\n\n const { classPrefix, tableDraggableClasses, tableBaseClass, tableSelectedClasses, tableSortClasses } =\n useClassName();\n const { globalConfig } = useConfig('table', props.locale);\n const { sizeClassNames } = useStyle(props);\n const tableSize = computed(() => props.size ?? globalConfig.value.size);\n // 自定义列配置功能\n const { tDisplayColumns, renderColumnController } = useColumnController(props, context);\n\n // 展开/收起行功能\n const {\n showExpandedRow,\n showExpandIconColumn,\n getExpandColumn,\n renderExpandedRow,\n onInnerExpandRowClick,\n getExpandedRowClass,\n } = useRowExpand(props, context);\n\n // 排序功能\n const { renderSortIcon } = useSorter(props, context);\n\n // 行选中功能\n const {\n selectColumn,\n showRowSelect,\n selectedRowClassNames,\n currentPaginateData,\n formatToRowSelectColumn,\n setTSelectedRowKeys,\n onInnerSelectRowClick,\n handleRowSelectWithAreaSelection,\n } = useRowSelect(props, tableSelectedClasses);\n\n // 过滤功能\n const {\n hasEmptyCondition,\n isTableOverflowHidden,\n renderFilterIcon,\n renderFirstFilterRow,\n setFilterPrimaryTableRef,\n } = useFilter(props, context);\n\n // 拖拽排序功能\n const dragSortParams = computed(() => ({\n showElement: showElement.value,\n }));\n const {\n isRowHandlerDraggable,\n isRowDraggable,\n isColDraggable,\n innerPagination,\n setDragSortPrimaryTableRef,\n setDragSortColumns,\n } = useDragSort(props, context, dragSortParams);\n\n const { renderTitleWidthIcon } = useTableHeader(props);\n const { renderAsyncLoading } = useAsyncLoading(props);\n\n // 可编辑行\n const {\n errorListMap,\n editableKeysMap,\n validateRowData,\n validateTableData,\n validateTableCellData,\n onRuleChange,\n clearValidateData,\n onUpdateEditedCell,\n getEditRowData,\n onPrimaryTableCellEditChange,\n } = useEditableRow(props);\n\n const innerKeyboardRowHover = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n const innerDisableSpaceInactiveRow = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n const primaryTableClasses = computed(() => {\n return {\n [tableDraggableClasses.colDraggable]: isColDraggable.value,\n [tableDraggableClasses.rowHandlerDraggable]: isRowHandlerDraggable.value,\n [tableDraggableClasses.rowDraggable]: isRowDraggable.value,\n [tableBaseClass.overflowVisible]: isTableOverflowHidden.value === false,\n [tableBaseClass.tableRowEdit]: props.editableRowKeys,\n [`${classPrefix}-table--select-${selectColumn.value?.type}`]: selectColumn.value,\n [`${classPrefix}-table--row-select`]: showRowSelect.value,\n [`${classPrefix}-table--row-expandable`]: showExpandedRow.value,\n };\n });\n\n // 如果想给 TR 添加类名,请在这里补充,不要透传更多额外 Props 到 BaseTable\n const tRowClassNames = computed(() => {\n const tClassNames = [props.rowClassName, selectedRowClassNames.value, getExpandedRowClass];\n return tClassNames.filter((v) => v);\n });\n\n // 如果想给 TR 添加属性,请在这里补充,不要透传更多额外 Props 到 BaseTable\n const tRowAttributes = computed(() => {\n const tAttributes = [props.rowAttributes];\n if (isRowHandlerDraggable.value || isRowDraggable.value) {\n tAttributes.push(({ row }) => ({ 'data-id': get(row, props.rowKey || 'id') }));\n }\n return tAttributes.filter((v) => v);\n });\n\n // 多个 Hook 共用 primaryTableRef\n onMounted(() => {\n setFilterPrimaryTableRef(primaryTableRef.value);\n setDragSortPrimaryTableRef(primaryTableRef.value);\n });\n\n // 对外暴露的方法\n context.expose({\n validateRowData,\n validateTableData,\n validateTableCellData,\n clearValidateData,\n refreshTable: () => {\n primaryTableRef.value.refreshTable();\n },\n scrollToElement: (data: ScrollToElementParams) => {\n primaryTableRef.value.scrollToElement(data);\n },\n scrollColumnIntoView: (colKey: string) => {\n primaryTableRef.value.scrollColumnIntoView(colKey);\n },\n // 暴露基础表格 ref 及相关方法\n baseTableRef: primaryTableRef,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const onEditableCellChange: EditableCellProps['onChange'] = (params) => {\n props.onRowEdit?.(params);\n const rowValue = get(params.editedRow, props.rowKey || 'id');\n onUpdateEditedCell(rowValue, params.row, {\n [params.col.colKey]: params.value,\n });\n };\n\n // 1. 影响列数量的因素有:自定义列配置、展开/收起行、多级表头;2. 影响表头内容的因素有:排序图标、筛选图标\n const getColumns = (columns: PrimaryTableCol[], parentDisplay = false) => {\n const arr: PrimaryTableCol[] = [];\n for (let i = 0, len = columns.length; i < len; i++) {\n let item = { ...columns[i] };\n // 自定义列显示控制\n const isDisplayColumn = item.children?.length || tDisplayColumns.value?.includes(item.colKey);\n if (\n !isDisplayColumn &&\n (props.columnController || props.displayColumns || props.defaultDisplayColumns) &&\n !parentDisplay\n )\n continue;\n item = formatToRowSelectColumn(item);\n const { sort } = props;\n if (item.sorter && props.showSortColumnBgColor) {\n const sorts = sort instanceof Array ? sort : [sort];\n const sortedColumn = sorts.find(\n (sort) => sort && sort.sortBy === item.colKey && sort.descending !== undefined,\n );\n if (sortedColumn) {\n item.className =\n item.className instanceof Array\n ? item.className.concat(tableSortClasses.sortColumn)\n : [item.className, tableSortClasses.sortColumn];\n }\n }\n // 添加排序图标和过滤图标\n if (item.sorter || item.filter) {\n const titleContent = renderTitle(context.slots, item, i);\n const { ellipsisTitle } = item;\n item.title = (h, p) => {\n const sortIcon = item.sorter ? renderSortIcon(p) : null;\n const filterIcon = item.filter ? renderFilterIcon(p) : null;\n // @ts-ignore 注意:此处 Vue2 和 Vue3 有所不同\n const attach = primaryTableRef.value?.tableContentRef;\n return renderTitleWidthIcon(\n [titleContent, sortIcon, filterIcon],\n p.col,\n p.colIndex,\n ellipsisTitle,\n attach,\n {\n classPrefix,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n },\n );\n };\n item.ellipsisTitle = false;\n }\n // 如果是单元格可编辑状态\n if (item.edit?.component) {\n const oldCell = item.cell;\n item.cell = (h, p: PrimaryTableCellParams) => {\n const cellProps: EditableCellProps = {\n ...p,\n row: getEditRowData(p),\n oldCell,\n rowKey: props.rowKey || 'id',\n tableBaseClass,\n cellEmptyContent: props.cellEmptyContent,\n onChange: onEditableCellChange,\n onValidate: props.onRowValidate,\n onRuleChange,\n onEditableChange: onPrimaryTableCellEditChange,\n };\n if (props.editableRowKeys) {\n const rowValue = get(p.row, props.rowKey || 'id');\n cellProps.editable = editableKeysMap.value[rowValue] || false;\n const key = [rowValue, p.col.colKey].join('__');\n const errorList = errorListMap.value?.[key];\n errorList && (cellProps.errors = errorList);\n }\n if (props.editableCellState) {\n cellProps.readonly = !props.editableCellState(p);\n }\n return ;\n };\n }\n if (item.children?.length) {\n item.children = getColumns(item.children, parentDisplay || tDisplayColumns.value?.includes(item.colKey));\n }\n // 多级表头和自定义列配置特殊逻辑:要么子节点不存在,要么子节点长度大于 1,方便做自定义列配置\n if (!item.children || item.children?.length) {\n arr.push(item);\n }\n }\n return arr;\n };\n\n const tColumns = computed(() => {\n const cols = getColumns(columns.value);\n if (showExpandIconColumn.value) {\n cols.unshift(getExpandColumn());\n }\n return cols;\n });\n\n const onInnerPageChange = (pageInfo: PageInfo, newData: Array) => {\n innerPagination.value = { ...innerPagination.value, ...pageInfo };\n currentPaginateData.value = newData;\n props.onPageChange?.(pageInfo, newData);\n const changeParams: Parameters = [\n { pagination: pageInfo },\n { trigger: 'pagination', currentData: newData },\n ];\n props.onChange?.(...changeParams);\n // 是否在分页时保留选中结果,如果不保留则需清空\n if (!props.reserveSelectedRowOnPaginate) {\n setTSelectedRowKeys([], {\n selectedRowData: [],\n type: 'uncheck',\n currentRowKey: 'CLEAR_ON_PAGINATE',\n });\n }\n };\n\n const onInnerActiveRowAction: BaseTableProps['onActiveRowAction'] = (params) => {\n props.onActiveRowAction?.(params);\n handleRowSelectWithAreaSelection(params);\n };\n\n const onSingleRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n if (props.expandOnRowClick) {\n onInnerExpandRowClick(params);\n }\n if (props.selectOnRowClick) {\n onInnerSelectRowClick(params);\n }\n };\n\n // handle click and dblclick exits at the same time\n let timer: any;\n const DURATION = 250;\n const onInnerRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n // no dbl click conflict, no delay\n if (!props.onRowDblclick) {\n onSingleRowClick(params);\n return;\n }\n if (timer) {\n // dblclick\n clearTimeout(timer);\n timer = undefined;\n } else {\n timer = setTimeout(() => {\n onSingleRowClick(params);\n timer = undefined;\n }, DURATION);\n }\n };\n\n const onShowElementChange = (val: boolean) => {\n showElement.value = val;\n };\n\n const formatNode = (\n api: 'topContent' | 'bottomContent' | 'firstFullRow' | 'lastFullRow',\n renderInnerNode: Function,\n condition: boolean,\n extra?: { reverse?: boolean },\n ) => {\n if (!condition) return props[api];\n const innerNode = renderInnerNode(h);\n const propsNode = renderTNode(api);\n if (innerNode && !propsNode) return () => innerNode;\n if (propsNode && !innerNode) return () => propsNode;\n if (innerNode && propsNode) {\n return () =>\n extra?.reverse ? (\n
    \n {innerNode}\n {propsNode}\n
    \n ) : (\n
    \n {propsNode}\n {innerNode}\n
    \n );\n }\n return null;\n };\n\n return () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n // @ts-ignore\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n const isBottomController = isColumnController && placement?.indexOf('bottom') !== -1;\n const topContent = formatNode('topContent', renderColumnController, isColumnController && !isBottomController);\n const bottomContent = formatNode('bottomContent', renderColumnController, isBottomController, {\n reverse: true,\n });\n const firstFullRow = formatNode('firstFullRow', renderFirstFilterRow, !hasEmptyCondition.value);\n const lastFullRow = formatNode('lastFullRow', renderAsyncLoading, !!props.asyncLoading);\n\n // important for base-table controlled properties\n const { vnode } = getCurrentInstance();\n\n const baseTableProps: BaseTableProps = {\n ...omit(vnode.props, OMIT_PROPS),\n rowKey: props.rowKey,\n rowClassName: tRowClassNames.value,\n rowAttributes: tRowAttributes.value,\n columns: tColumns.value,\n keyboardRowHover: props.keyboardRowHover ?? innerKeyboardRowHover.value,\n disableSpaceInactiveRow: props.disableSpaceInactiveRow ?? innerDisableSpaceInactiveRow.value,\n topContent,\n bottomContent,\n firstFullRow,\n lastFullRow,\n thDraggable: ['col', 'row-handler-col'].includes(props.dragSort),\n onShowElementChange,\n onPageChange: onInnerPageChange,\n renderExpandedRow: showExpandedRow.value ? renderExpandedRow : undefined,\n onActiveRowAction: onInnerActiveRowAction,\n };\n\n if (props.expandOnRowClick || props.selectOnRowClick) {\n baseTableProps.onRowClick = onInnerRowClick;\n }\n\n return (\n \n );\n };\n },\n});\n","import { computed, SetupContext, toRefs, h } from 'vue';\nimport { ChevronRightCircleIcon as TdChevronRightCircleIcon } from 'tdesign-icons-vue-next';\nimport { get } from 'lodash-es';\n\nimport {\n TdPrimaryTableProps,\n PrimaryTableCol,\n TableRowData,\n PrimaryTableCellParams,\n TableExpandedRowParams,\n RowEventContext,\n RowClassNameParams,\n} from '../type';\nimport useClassName from './useClassName';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useConfig } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\n\nexport default function useRowExpand(props: TdPrimaryTableProps, context: SetupContext) {\n const { expandedRowKeys } = toRefs(props);\n const renderTNode = useTNodeJSX();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { ChevronRightCircleIcon } = useGlobalIcon({ ChevronRightCircleIcon: TdChevronRightCircleIcon });\n const { tableExpandClasses, positiveRotate90, tableFullRowClasses } = useClassName();\n // controlled and uncontrolled\n const [tExpandedRowKeys, setTExpandedRowKeys] = useDefaultValue(\n expandedRowKeys,\n props.defaultExpandedRowKeys || [],\n props.onExpandChange,\n 'expandedRowKeys',\n );\n\n const showExpandedRow = computed(() =>\n Boolean(props.expandedRow || context.slots.expandedRow || context.slots['expanded-row']),\n );\n\n const showExpandIconColumn = computed(() => props.expandIcon !== false && showExpandedRow.value);\n\n const isFirstColumnFixed = computed(() => props.columns?.[0]?.fixed === 'left');\n\n const getExpandedRowClass = (params: RowClassNameParams) => {\n // 如果没有配置展开行,则不需要增加展开收起相关的类名\n if (!showExpandedRow.value) return null;\n const { row, rowKey } = params;\n const currentRowKey = get(row, rowKey || 'id');\n return tableExpandClasses[tExpandedRowKeys.value?.includes(currentRowKey) ? 'rowExpanded' : 'rowFolded'];\n };\n\n const onToggleExpand = (e: MouseEvent, row: TableRowData) => {\n props.expandOnRowClick && e.stopPropagation();\n const currentId = get(row, props.rowKey || 'id');\n const index = tExpandedRowKeys.value.indexOf(currentId);\n const newKeys = [...tExpandedRowKeys.value];\n index !== -1 ? newKeys.splice(index, 1) : newKeys.push(currentId);\n setTExpandedRowKeys(newKeys, {\n expandedRowData: props.data.filter((t) => newKeys.includes(get(t, props.rowKey || 'id'))),\n currentRowData: row,\n });\n };\n\n const renderExpandIcon = (_: typeof h, p: PrimaryTableCellParams) => {\n const { row, rowIndex } = p;\n const currentId = get(row, props.rowKey || 'id');\n const expanded = tExpandedRowKeys.value.includes(currentId);\n const icon = renderTNode('expandIcon', {\n defaultNode: t(globalConfig.value.expandIcon) || ,\n params: { row, index: rowIndex },\n });\n if (!icon) return null;\n const classes = [\n tableExpandClasses.iconBox,\n tableExpandClasses[expanded ? 'expanded' : 'collapsed'],\n { [positiveRotate90]: expanded },\n ];\n return (\n onToggleExpand(e, row)}>\n {icon}\n \n );\n };\n\n const getExpandColumn = () => {\n const expandCol: PrimaryTableCol = {\n colKey: '__EXPAND_ROW_ICON_COLUMN__',\n width: 46,\n className: tableExpandClasses.iconCell,\n fixed: isFirstColumnFixed.value ? 'left' : undefined,\n cell: renderExpandIcon,\n stopPropagation: true,\n };\n return expandCol;\n };\n\n const renderExpandedRow = (\n p: TableExpandedRowParams & { tableWidth: number; isWidthOverflow: boolean },\n ) => {\n const rowId = get(p.row, props.rowKey || 'id');\n if (!tExpandedRowKeys.value || !tExpandedRowKeys.value.includes(rowId)) return null;\n const isFixedLeft = p.isWidthOverflow && props.columns.find((item) => item.fixed === 'left');\n return (\n \n \n \n
    {renderTNode('expandedRow', { params: p })}
    \n \n \n \n );\n };\n\n const onInnerExpandRowClick = (p: RowEventContext) => {\n onToggleExpand(p.e as MouseEvent, p.row);\n };\n\n return {\n showExpandedRow,\n showExpandIconColumn,\n getExpandColumn,\n renderExpandedRow,\n onInnerExpandRowClick,\n getExpandedRowClass,\n };\n}\n","import { isString } from 'lodash-es';\nimport { computed } from 'vue';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { TdPrimaryTableProps } from '../type';\nimport Loading from '../../loading';\nimport useClassName from './useClassName';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport default function useAsyncLoading(props: TdPrimaryTableProps) {\n const renderTNode = useTNodeJSX();\n const { globalConfig } = useConfig('table', props.locale);\n const { isLoadingClass, isLoadMoreClass, asyncLoadingClass } = useClassName();\n\n const classes = computed(() => [\n asyncLoadingClass,\n {\n [isLoadingClass]: props.asyncLoading === 'loading',\n [isLoadMoreClass]: props.asyncLoading === 'load-more',\n },\n ]);\n\n function onLoadClick() {\n if (!isString(props.asyncLoading)) return;\n props.onAsyncLoadingClick?.({ status: props.asyncLoading });\n }\n\n function renderAsyncLoading() {\n const asyncLoadingNode = renderTNode('asyncLoading');\n if (isString(asyncLoadingNode)) {\n const { asyncLoading } = props;\n const loadingText = {\n 'load-more': globalConfig.value.loadingMoreText,\n loading: globalConfig.value.loadingText,\n }[String(asyncLoading)];\n return (\n
    \n {}\n
    \n );\n }\n if (![null, false, undefined].includes(asyncLoadingNode)) {\n return (\n
    \n {asyncLoadingNode}\n
    \n );\n }\n return null;\n }\n return {\n renderAsyncLoading,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdEnhancedTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 树形结构中,拖拽排序前控制,返回值为 `true` 则继续排序;返回值为 `false` 则中止排序还原数据 */\n beforeDragSort: {\n type: Function as PropType,\n },\n /** 展开的树形节点。非必须。在需要自由控制展开的树形节点时使用。其他场景无需设置,表格组件有内置展开逻辑 */\n expandedTreeNodes: {\n type: Array as PropType,\n default: undefined as TdEnhancedTableProps['expandedTreeNodes'],\n },\n /** 展开的树形节点。非必须。在需要自由控制展开的树形节点时使用。其他场景无需设置,表格组件有内置展开逻辑,非受控属性 */\n defaultExpandedTreeNodes: {\n type: Array as PropType,\n default: (): TdEnhancedTableProps['defaultExpandedTreeNodes'] => [],\n },\n /** 树形结构相关配置。具体属性文档查看 `TableTreeConfig` 相关描述 */\n tree: {\n type: Object as PropType,\n },\n /** 自定义树形结构展开图标,支持全局配置 `GlobalConfigProvider` */\n treeExpandAndFoldIcon: {\n type: Function as PropType,\n },\n /** 异常拖拽排序时触发,如:树形结构中,非同层级之间的交换。`context.code` 指交换异常错误码,固定值;`context.reason` 指交换异常的原因 */\n onAbnormalDragSort: Function as PropType,\n /** 树形结构,展开的树节点发生变化时触发,泛型 T 指表格数据类型 */\n onExpandedTreeNodesChange: Function as PropType,\n /** 已废弃。树形结构,用户操作引起节点展开或收起时触发。请更为使用 `onExpandedTreeNodesChange` */\n onTreeExpandChange: Function as PropType,\n};\n","import { isUndefined, get, set } from 'lodash-es';\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-use-before-define */\nimport { isRowSelectedDisabled } from './utils';\nimport { PrimaryTableCol, TableRowState, TableRowValue, TableRowData } from './types';\nimport log from '../log';\n\nexport type TableTreeDataMap = Map;\n\nexport interface TableRowModel extends TableRowState {\n setData?: (key: string | number, data: T) => void;\n}\n\nexport interface KeysType {\n rowKey: string;\n childrenKey: string;\n}\n\nexport interface SwapParams {\n current: T;\n target: T;\n currentIndex: number;\n targetIndex: number;\n}\n\nexport const TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL = {\n code: 1001,\n reason: 'The same level of rows can not be swapped.',\n};\n\n/**\n * 获取行唯一标识\n * @param row 行数据\n * @param colKey 列字段\n * @param rowIndex 行下标\n * @param level 层级\n */\nexport function getUniqueRowValue(row: TableRowData, colKey: string, rowIndex: number = 0, level: number = 0) {\n const rowValue = get(row, colKey);\n return rowIndex || level ? `${rowValue}_${rowIndex || 0}_${level || 0}}` : rowValue;\n}\n\n/**\n * 表格树形结构处理器\n * Vue 和 React 可以通用\n * 关键函数有以下几个\n * @toggleExpandData 处理树形结构展开收起\n * @setData 更新当行数据\n * @getData 获取单行数据\n * @remove 移除行数据,及其子节点\n * @appendTo 追加子节点到末尾\n */\nclass TableTreeStore {\n /** 树形结构 Map 存储 */\n treeDataMap: TableTreeDataMap = new Map();\n\n expandAllRowIndex: 0;\n\n constructor() {\n this.treeDataMap = new Map();\n }\n\n /**\n * 初始化 treeDataMap,不会改变 dataSource\n * @param dataSource 树形数据源\n * @param columns 列配置\n * @param keys 字段别名\n */\n initialTreeStore(dataSource: T[], columns: PrimaryTableCol[], keys: KeysType) {\n this.treeDataMap?.clear();\n this.initialTreeDataMap(this.treeDataMap, dataSource, columns.find((col) => col.colKey === 'row-select'), keys);\n }\n\n /**\n * 获取所有节点的唯一标识\n */\n getAllUniqueKeys(data: T[], keys: KeysType, arr: T[] = []) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n arr.push(getUniqueRowValue(item, keys.rowKey));\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.getAllUniqueKeys(children, keys, arr);\n }\n }\n return arr;\n }\n\n getExpandedChildrenKeys(data: T[], keys: KeysType, arr: (string | number)[] = []) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n const rowValue = getUniqueRowValue(item, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n if (rowState.expanded) {\n arr.push(rowValue);\n }\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.getExpandedChildrenKeys(children, keys, arr);\n }\n }\n return arr;\n }\n\n expandTreeNode(rowList: (string | number)[], dataSource: T[], keys: KeysType) {\n if (!rowList.length) return dataSource;\n rowList.forEach((rowValue) => {\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState) return;\n this.toggleExpandData({ row: rowState.row as T, rowIndex: rowState.rowIndex }, dataSource, keys, 'expand');\n });\n return dataSource;\n }\n\n foldTreeNode(rowList: (string | number)[], dataSource: T[], keys: KeysType) {\n if (!rowList.length) return dataSource;\n rowList.forEach((rowValue) => {\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState) return;\n this.toggleExpandData({ row: rowState.row as T, rowIndex: rowState.rowIndex }, dataSource, keys, 'fold');\n });\n return dataSource;\n }\n\n toggleExpandData(p: { rowIndex: number; row: T }, dataSource: T[], keys: KeysType, type?: 'expand' | 'fold') {\n if (!p) {\n log.error('EnhancedTable', 'the node toggleExpanded doest not exist in `data`');\n return dataSource;\n }\n const rowValue = get(p.row, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return [];\n }\n const childrenNodes = get(p.row, keys.childrenKey);\n // childrenNodes = true,表示懒加载,直接返回,暂时不做展开处理\n if (childrenNodes === true) return dataSource;\n const r = this.treeDataMap.get(rowValue);\n if (type === 'expand' && r.expanded) return dataSource;\n if (type === 'fold' && !r.expanded) return dataSource;\n r.rowIndex = r.rowIndex ?? p.rowIndex;\n r.expanded = !r.expanded;\n this.treeDataMap.set(rowValue, r);\n return this.updateExpandRow(r, dataSource, keys);\n }\n\n updateExpandRow(changeRow: TableRowState, dataSource: T[], keys: KeysType): T[] {\n const { row, rowIndex, expanded } = changeRow;\n const { treeDataMap } = this;\n const childrenNodes = get(row, keys.childrenKey);\n if (!row || !childrenNodes) return dataSource;\n if (expanded) {\n updateChildrenRowState(treeDataMap, changeRow, expanded, keys);\n updateRowExpandLength(treeDataMap, row, childrenNodes.length, 'expand', keys);\n // eslint-disable-next-line\n dataSource.splice.apply(dataSource, [rowIndex + 1, 0].concat(childrenNodes));\n } else {\n updateChildrenRowState(treeDataMap, changeRow, expanded, keys);\n const len = changeRow.expandChildrenLength || childrenNodes.length;\n updateRowExpandLength(treeDataMap, row, -1 * len, 'fold', keys);\n dataSource.splice(rowIndex + 1, len);\n }\n // 展开或收起后,会影响后续节点的 rowIndex,需同步更新\n updateRowIndex(treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: rowIndex + 1,\n });\n return dataSource;\n }\n\n /**\n * 获取当前行全部数据\n * @param key 行唯一标识\n * @returns {TableRowState} 当前行数据\n */\n getData(key: TableRowValue): TableRowState {\n return this.treeDataMap.get(key);\n }\n\n /**\n * 更新当前行数据,并返回当前行下标\n * @param rowValue 当前行唯一标识值\n * @param newRowData 新行数据\n * @returns {number} rowIndex 设置的行下标\n */\n updateData(rowValue: TableRowValue, newRowData: T, dataSource: T[], keys: KeysType): number {\n const newRowValue = getUniqueRowValue(newRowData, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n // Map 没有查询到,或者查询到的 rowIndex 值为 -1,均表示当前数据不在 dataSource 列表中,未显示在页面中\n if (!rowState || rowState.rowIndex === -1) {\n updateRowData(dataSource, rowValue, newRowData, {\n rowKey: keys.rowKey,\n childrenKey: keys.childrenKey,\n });\n return -1;\n }\n\n // 懒加载处理:children 为 true,则需清空子元素在 map 中的值,而后方便重新加载\n if (get(newRowData, keys.childrenKey) === true) {\n const oldChildren = get(rowState.row, keys.childrenKey);\n if (oldChildren?.length) {\n for (let i = 0, len = oldChildren.length; i < len; i++) {\n const rowValue = getUniqueRowValue(oldChildren[i], keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n if (state) {\n this.treeDataMap.delete(rowValue);\n }\n }\n }\n }\n\n const currentRowIndex = rowState.rowIndex;\n rowState.row = newRowData;\n rowState.id = newRowValue;\n\n // 更新父元素中存储的当前元素值\n if (rowState.parent) {\n // 更新直接子元素数组\n const siblings = get(rowState.parent.row, keys.childrenKey);\n const index = siblings.findIndex((item: T) => getUniqueRowValue(item, keys.rowKey) === rowValue);\n siblings[index] = newRowData;\n }\n\n this.treeDataMap.set(newRowValue, rowState);\n // rowValue 也发生了变化,需移除 旧 rowValue 数据\n if (rowValue !== newRowValue) {\n this.treeDataMap.delete(rowValue);\n }\n return currentRowIndex;\n }\n\n /**\n * 移除指定节点\n * @param key 行唯一标识\n */\n remove(key: TableRowValue, dataSource: T[], keys: KeysType): T[] {\n const r = this.treeDataMap.get(key);\n if (r && r.rowIndex >= 0) {\n // 移除当前节点时,展开的节点的子节点需同步移除\n const removeNumber = (r.expandChildrenLength || 0) + 1;\n dataSource.splice(r.rowIndex, removeNumber);\n\n if (r.parent) {\n const siblings = get(r.parent.row, keys.childrenKey);\n const index = siblings.findIndex((item: TableRowData) => get(item, keys.rowKey) === key);\n siblings.splice(index, 1);\n updateRowExpandLength(this.treeDataMap, r.parent.row, -1 * removeNumber, 'delete', keys);\n }\n\n this.treeDataMap.delete(key);\n\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: r.rowIndex,\n rowKey: keys.rowKey,\n type: 'remove',\n });\n } else {\n log.warn('EnhancedTable', 'Can not remove this node, which is not appeared.');\n }\n return dataSource;\n }\n\n /**\n * 清除子节点\n * @param key\n * @param dataSource\n * @param keys\n */\n removeChildren(key: TableRowValue, dataSource: T[], keys: KeysType): T[] {\n const r = this.treeDataMap.get(key);\n if (r && r.rowIndex >= 0) {\n const removeNumber = r.expandChildrenLength || 0;\n if (removeNumber) {\n dataSource.splice(r.rowIndex + 1, removeNumber);\n }\n if (r.parent) {\n updateRowExpandLength(this.treeDataMap, r.parent.row, -1 * removeNumber, 'delete', keys);\n }\n r.expandChildrenLength = 0;\n r.expanded = false;\n set(r.row, keys.childrenKey, undefined);\n this.treeDataMap.set(key, r);\n // 更新 rowIndex 之后的下标\n if (removeNumber) {\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: r.rowIndex + 1,\n rowKey: keys.rowKey,\n type: 'remove',\n });\n }\n } else {\n log.warn('EnhancedTable', 'Can not remove this node\\'s children, which is not appeared.');\n }\n return dataSource;\n }\n\n /**\n * 为当前节点添加子节点,默认添加到最后一个节点。允许添加单个或多个\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n appendTo(rowValue: string | number, newData: T | T[], dataSource: T[], keys: KeysType): T[] {\n const state = this.treeDataMap.get(rowValue);\n if (!this.validateDataExist(state, rowValue)) return dataSource;\n const children: T[] = get(state.row, keys.childrenKey);\n // 子节点不存在,则表示为叶子节点\n const isShowNewNode = state.expanded || !children?.length;\n // 添加多个子节点时,需去除重复子节点\n const tmpData = newData instanceof Array ? newData : [newData];\n const newChildrenData: T[] = [];\n const newChildrenStates: TableRowState[] = [];\n let firstNewChildrenIndex = -1;\n for (let i = 0, len = tmpData.length; i < len; i++) {\n const oneData = tmpData[i];\n const newRowValue = getUniqueRowValue(oneData, keys.rowKey);\n const mapState = this.treeDataMap.get(newRowValue);\n if (!this.validateDataDoubleExist(mapState, newRowValue)) {\n log.warn('Table', `Duplicated Data \\`${newRowValue}\\` has been removed.`);\n } else {\n const rowIndex = isShowNewNode ? state.rowIndex + (state.expandChildrenLength || 0) + (i + 1) : -1;\n if (i === 0) {\n firstNewChildrenIndex = rowIndex;\n }\n const newState = {\n id: newRowValue,\n row: oneData,\n rowIndex,\n level: state.level + 1,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n path: [...state.path],\n parent: state,\n };\n newState.path = newState.path.concat(newState);\n newChildrenData.push(oneData);\n newChildrenStates.push(newState);\n this.treeDataMap.set(newRowValue, newState);\n }\n }\n if (!newChildrenData.length) return dataSource;\n\n if (children?.length) {\n state.row[keys.childrenKey] = state.row[keys.childrenKey].concat(newChildrenData);\n } else {\n state.row[keys.childrenKey] = newChildrenData;\n state.expanded = true;\n }\n\n // 如果当前节点为展开状态,则需要继续处理\n if (isShowNewNode) {\n dataSource.splice(firstNewChildrenIndex, 0, ...newChildrenData);\n // 更新父元素及祖先元素展开子节点的数量\n const newChildrenCount = newChildrenData.length || 1;\n updateRowExpandLength(this.treeDataMap, state.row, newChildrenCount, 'insert', {\n rowKey: keys.rowKey,\n childrenKey: keys.childrenKey,\n });\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: firstNewChildrenIndex + newChildrenData.length - 1,\n rowKey: keys.rowKey,\n type: 'add',\n count: 1,\n });\n }\n\n return dataSource;\n }\n\n appendToRoot(newData: T | T[], dataSource: T[], keys: KeysType) {\n const newDataSource = dataSource.concat(newData);\n const tmpNewData = newData instanceof Array ? newData : [newData];\n const dataSourceLen = dataSource.length;\n for (let i = 0, len = tmpNewData.length; i < len; i++) {\n const rowValue = get(tmpNewData[i], keys.rowKey);\n if (!rowValue) {\n log.error('Table', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n continue;\n }\n const state: TableRowState = {\n id: rowValue,\n row: tmpNewData[i],\n rowIndex: dataSourceLen + i,\n level: 0,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n };\n state.path = [state];\n this.treeDataMap.set(rowValue, state);\n }\n return newDataSource;\n }\n\n /**\n * 在当前节点后,插入一个兄弟节点\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n insertAfter(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType): T[] {\n return this.insert(rowValue, newData, dataSource, keys, 'after');\n }\n\n /**\n * 在当前节点前,插入一个兄弟节点\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n insertBefore(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType): T[] {\n return this.insert(rowValue, newData, dataSource, keys, 'before');\n }\n\n insert(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType, type: 'before' | 'after') {\n const state = this.treeDataMap.get(rowValue);\n if (!this.validateDataExist(state, rowValue)) return dataSource;\n const newRowValue = get(newData, keys.rowKey);\n const mapState = this.treeDataMap.get(newRowValue);\n if (!this.validateDataDoubleExist(mapState, newRowValue)) return dataSource;\n const rowIndex = type === 'after' ? state.rowIndex + 1 : state.rowIndex;\n const newState = {\n id: newRowValue,\n row: newData,\n rowIndex,\n level: state.level,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n path: state.path.slice(0, -1),\n parent: state.parent,\n };\n newState.path = newState.path.concat(newState);\n const dataIndex = type === 'after' ? state.rowIndex + (state.expandChildrenLength + 1) : state.rowIndex;\n dataSource.splice(dataIndex, 0, newData);\n const distance = type === 'after' ? 1 : 0;\n if (state.parent) {\n const childrenIndex = state.parent.row[keys.childrenKey].findIndex(\n (t: TableRowData) => rowValue === get(t, keys.rowKey),\n );\n state.parent.row[keys.childrenKey].splice(childrenIndex + distance, 0, newData);\n updateRowExpandLength(this.treeDataMap, state.parent.row, 1, 'insert', keys);\n }\n this.treeDataMap.set(newRowValue, newState);\n\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: state.rowIndex + 1,\n type: 'add',\n });\n\n return dataSource;\n }\n\n /**\n * 交换数据行\n * @returns 交换失败返回 false\n */\n swapData(\n dataSource: T[],\n params: SwapParams,\n keys: KeysType,\n ): { dataSource: T[]; result: boolean; code?: number; reason?: string } {\n const startIndex = params.currentIndex;\n const endIndex = params.targetIndex;\n if (startIndex === endIndex) return { dataSource, result: true };\n const startRowValue = get(params.current, keys.rowKey);\n const endRowValue = get(params.target, keys.rowKey);\n const startState = this.treeDataMap.get(startRowValue);\n const endState = this.treeDataMap.get(endRowValue);\n if (startState.level !== endState.level) {\n return {\n dataSource,\n result: false,\n code: TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL.code,\n reason: TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL.reason,\n };\n }\n const startLastIndex = startIndex + startState.expandChildrenLength + 1;\n const endLastIndex = endIndex + endState.expandChildrenLength + 1;\n const startRowList = dataSource.slice(startIndex, startLastIndex);\n const endRowList = dataSource.slice(endIndex, endLastIndex);\n if (startIndex > endIndex) {\n const middleRowList = dataSource.slice(endLastIndex, startIndex);\n const allSwapList = startRowList.concat(endRowList, middleRowList);\n dataSource.splice(endIndex, allSwapList.length);\n dataSource.splice(endIndex, 0, ...allSwapList);\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: endIndex,\n maxRowIndex: startLastIndex,\n });\n } else {\n const middleRowList = dataSource.slice(startLastIndex, endIndex);\n const allSwapList = middleRowList.concat(endRowList, startRowList);\n dataSource.splice(startIndex, allSwapList.length);\n dataSource.splice(startIndex, 0, ...allSwapList);\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: startIndex,\n maxRowIndex: endLastIndex,\n });\n }\n\n // 交换父元素中的两个元素位置\n if (startState.parent) {\n const children = startState.parent.row[keys.childrenKey];\n let count = 0;\n let targetIndex = -1;\n let currentIndex = -1;\n for (let i = 0, len = children.length; i < len; i++) {\n if (get(children[i], keys.rowKey) === startRowValue) {\n currentIndex = i;\n count += 1;\n }\n if (get(children[i], keys.rowKey) === endRowValue) {\n targetIndex = i;\n count += 1;\n }\n if (count >= 2) break;\n }\n // 向后拖拽\n if (currentIndex < targetIndex) {\n children.splice(targetIndex + 1, 0, params.current);\n children.splice(currentIndex, 1);\n } else {\n // 向前拖拽\n children.splice(currentIndex, 1);\n children.splice(targetIndex, 0, params.current);\n }\n }\n\n return { dataSource, result: true };\n }\n\n /**\n * 展开所有节点\n */\n expandAll(dataSource: T[], keys: KeysType) {\n this.expandAllRowIndex = 0;\n const newData: T[] = [];\n const expandLoop = (\n dataSource: T[],\n keys: KeysType,\n parent: TableRowState = null,\n ) => {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n const children = get(item, keys.childrenKey);\n state.rowIndex = this.expandAllRowIndex;\n // children = true is async load\n if (children !== true && children?.length) {\n state.expanded = true;\n }\n state.expandChildrenLength = children?.length || 0;\n this.expandAllRowIndex += 1;\n newData.push(item);\n this.treeDataMap.set(rowValue, state);\n if (children?.length) {\n // 同步更新父元素的展开数量\n let tmpParent = parent;\n while (tmpParent?.row) {\n tmpParent.expandChildrenLength += children.length;\n this.treeDataMap.set(tmpParent.id, tmpParent);\n tmpParent = tmpParent.parent;\n }\n // 继续子元素\n expandLoop(children, keys, state);\n }\n }\n };\n expandLoop(dataSource, keys);\n return newData;\n }\n\n /**\n * 收起所有节点\n */\n foldAll(dataSource: T[], keys: KeysType) {\n const newData: T[] = [];\n let index = 0;\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n state.rowIndex = state.level === 0 ? index : -1;\n state.expanded = false;\n state.expandChildrenLength = 0;\n if (state.level === 0) {\n newData.push(item);\n index += 1;\n }\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.foldAll(children, keys);\n }\n }\n return newData;\n }\n\n /** 获取整个树形结构 */\n getTreeNode(dataSource: T[], keys: KeysType): T[] {\n // let isStarted = false;\n const treeData: T[] = [];\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n // 只需要压入第一层数据\n if (state.level === 0) {\n treeData.push(item);\n }\n }\n return treeData;\n }\n\n /**\n * 获取展开的树形节点\n * @param dataSource 平铺的树形结构数据\n * @param keys 行唯一标识和子节点的字段名\n * @param type 'unique' 标识获取展开节点的行唯一标识值,'data' 表示获取展开节点的数据,'all' 表示获取行节点包含展开状态的全部数据\n * @returns 展开的树形节点\n */\n getTreeExpandedRow(dataSource: T[], keys: KeysType, type: 'unique' | 'data' | 'all' = 'data') {\n const arr: (T | any)[] = [];\n dataSource.forEach((item) => {\n const rowValue = get(item, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState.expanded) return;\n if (type === 'unique') {\n arr.push(rowValue);\n } else if (type === 'data') {\n arr.push(item);\n } else {\n arr.push(rowState);\n }\n });\n return arr;\n }\n\n /**\n * 初始化树形结构 Map\n * @param treeDataMap 树形结构 Map\n * @param dataSource 数据源\n * @param column 树形结构列\n * @param keys 字段映射关系\n * @param level 层级\n * @param parent 父元素\n * @returns void\n */\n initialTreeDataMap(\n treeDataMap: TableTreeDataMap,\n dataSource: T[],\n column: PrimaryTableCol,\n keys: KeysType,\n level = 0,\n parent: TableRowState = null,\n ) {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = getUniqueRowValue(item, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return;\n }\n const children = get(item, keys.childrenKey);\n const state: TableRowState = {\n id: rowValue,\n row: item,\n rowIndex: level === 0 ? i : -1,\n level,\n expanded: false,\n expandChildrenLength: 0,\n disabled: isRowSelectedDisabled(column, item, i),\n parent,\n };\n state.path = parent ? parent.path.concat(state) : [state];\n treeDataMap.set(rowValue, state);\n if (children?.length) {\n this.initialTreeDataMap(treeDataMap, children, column, keys, level + 1, state);\n }\n }\n }\n\n // column.checkProps 和 column.disabled 会影响行的禁用状态,因此当列发生变化时,需要重置禁用状态\n updateDisabledState(dataSource: T[], column: PrimaryTableCol, keys: KeysType) {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return;\n }\n const state = this.treeDataMap.get(rowValue);\n state.disabled = isRowSelectedDisabled(column, item, i);\n this.treeDataMap.set(rowValue, state);\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.updateDisabledState(children, column, keys);\n }\n }\n }\n\n /**\n * 校验数据合法性\n */\n validateDataExist(state: TableRowState, rowValue: string | number) {\n if (!state) {\n log.warn('EnhancedTable', `${rowValue} does not exist.`);\n return false;\n }\n return true;\n }\n\n /**\n * 校验数据是否已存在\n */\n validateDataDoubleExist(state: TableRowState, rowValue: string | number) {\n if (state) {\n log.warn('EnhancedTable', `Duplicated Key. ${rowValue} already exists.`);\n return false;\n }\n return true;\n }\n}\n\nexport default TableTreeStore;\n\n/**\n * 更新展开的子节点数量\n * @param rowSate 行数据和状态\n * @param distance 需要调整的展开子节点长度数量,展开时增加,收起时减少。值为负数,表示减\n * @param expanded 展开/收起\n */\nexport function updateRowExpandLength(\n treeDataMap: TableTreeDataMap,\n row: TableRowData,\n distance: number,\n type: 'expand' | 'fold' | 'delete' | 'insert',\n keys: KeysType,\n) {\n let tmp = row;\n while (tmp) {\n const state = treeDataMap.get(get(tmp, keys.rowKey));\n const expandLen = (state.expandChildrenLength || 0) + distance;\n state.expandChildrenLength = Math.max(0, expandLen);\n tmp = state?.parent?.row;\n }\n // 如果是收起状态,子节点需全部收起,清空子节点展开行数量,设置 expandChildrenLength 为 0\n if (type === 'fold') {\n clearRowExpandLength(treeDataMap, row, keys);\n }\n}\n\nexport function clearRowExpandLength(treeDataMap: TableTreeDataMap, row: T, keys: KeysType) {\n const children = get(row, keys.childrenKey);\n if (children?.length) {\n children.forEach((item: T[]) => {\n const state = treeDataMap.get(get(item, keys.rowKey));\n if (!state) return;\n state.expandChildrenLength = 0;\n clearRowExpandLength(treeDataMap, state.row, keys);\n });\n }\n}\n\n/**\n * 更新子节点行状态,行数据、父节点、层级、路径等数据\n * @param rowState 行状态数据\n * @param expanded 展开或收起\n * @param keys\n */\nexport function updateChildrenRowState(\n treeDataMap: TableTreeDataMap,\n rowState: TableRowState,\n expanded: boolean,\n keys: KeysType,\n) {\n const { row, rowIndex } = rowState;\n const childrenNodes = get(row, keys.childrenKey);\n childrenNodes.forEach((item: T, kidRowIndex: number) => {\n const rowValue = get(item, keys.rowKey);\n const index = expanded ? rowIndex + 1 + kidRowIndex : -1;\n const curState = treeDataMap.get(rowValue);\n const newState: TableRowState = {\n ...curState,\n row: item,\n rowIndex: index,\n expanded: false,\n parent: rowState,\n };\n treeDataMap.set(rowValue, newState);\n // 父节点展开,子节点不一定展开;父节点收起,则所有子节点收起\n if (!expanded) {\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n updateChildrenRowState(\n treeDataMap,\n {\n ...newState,\n rowIndex: -1,\n expanded: false,\n } as any,\n expanded,\n keys,\n );\n }\n }\n });\n}\n\nexport function updateRowData(\n data: T[],\n key: string | number,\n newData: T,\n keys: KeysType,\n) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (get(item, keys.rowKey) === key) {\n // eslint-disable-next-line no-param-reassign\n data[i] = newData;\n return;\n }\n const children: T[] = get(item, keys.childrenKey) || [];\n if (children?.length) {\n updateRowData(children, key, newData, keys);\n }\n }\n}\n\nexport function updateRowIndex(\n treeDataMap: TableTreeDataMap,\n dataSource: T[],\n extra: {\n rowKey: string;\n minRowIndex?: number;\n maxRowIndex?: number;\n type?: 'add' | 'remove';\n count?: number;\n },\n) {\n const start = extra.minRowIndex || 0;\n const end = extra.maxRowIndex || dataSource.length;\n for (let rowIndex = start; rowIndex < end; rowIndex++) {\n const item = dataSource[rowIndex];\n const state = treeDataMap.get(get(item, extra.rowKey));\n if (!state) {\n log.warn('Table', 'tree map went wrong');\n }\n state.rowIndex = rowIndex + (extra?.count || 1) - 1;\n }\n}\n\nexport function diffExpandedTreeNode(\n newExpandedNode: (number | string)[] = [],\n oldExpandedNode: (number | string)[] = [],\n) {\n const removedList: (number | string)[] = [];\n const addedList: (number | string)[] = [];\n const newExpandedNodeMap: Map = new Map();\n const oldExpandedNodeMap: Map = new Map();\n for (let i = 0, len = newExpandedNode.length; i < len; i++) {\n newExpandedNodeMap.set(newExpandedNode[i], true);\n }\n for (let i = 0, len = oldExpandedNode.length; i < len; i++) {\n oldExpandedNodeMap.set(oldExpandedNode[i], true);\n }\n for (let i = 0, len = newExpandedNode.length; i < len; i++) {\n if (!oldExpandedNodeMap.get(newExpandedNode[i])) {\n addedList.push(newExpandedNode[i]);\n }\n }\n for (let i = 0, len = oldExpandedNode.length; i < len; i++) {\n if (!newExpandedNodeMap.get(oldExpandedNode[i])) {\n removedList.push(oldExpandedNode[i]);\n }\n }\n return {\n removedList,\n addedList,\n };\n}\n\nexport type TreeDataMapType = InstanceType['treeDataMap'];\n","import { ComputedRef, nextTick, ref, Ref, toRefs, watch } from 'vue';\nimport { TdEnhancedTableProps, TableRowData } from '../type';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport TableTreeStore, { diffExpandedTreeNode, getUniqueRowValue } from '@tdesign/common-js/table/tree-store';\nimport { TableTreeExpandType } from '../interface';\n\nexport function useTreeDataExpand(\n props: TdEnhancedTableProps,\n params: {\n store: Ref>;\n dataSource: Ref;\n rowDataKeys: ComputedRef<{ rowKey: string; childrenKey: string }>;\n },\n) {\n const { store, dataSource, rowDataKeys } = params;\n const { data, expandedTreeNodes, tree } = toRefs(props);\n\n const isDefaultExpandAllExecute = ref(false);\n const isDefaultExpandedTreeNodesExecute = ref(false);\n const [tExpandedTreeNode, setTExpandedTreeNode] = useDefaultValue(\n expandedTreeNodes,\n props.defaultExpandedTreeNodes,\n props.onExpandedTreeNodesChange,\n 'expandedTreeNodes',\n );\n\n const changedExpandTreeNode = ref<{\n type?: TableTreeExpandType;\n row?: TableRowData;\n rowIndex?: number;\n }>({ type: 'props-change' });\n\n /**\n * 对外暴露的组件实例方法,展开所有节点\n */\n function expandAll(type: 'expand-all' | 'default-expand-all' = 'expand-all', list?: TableRowData[]) {\n const newData = list || data.value;\n dataSource.value = store.value.expandAll(newData, rowDataKeys.value);\n const expandedNode = dataSource.value.map((t) => getUniqueRowValue(t, rowDataKeys.value.rowKey));\n setTExpandedTreeNode(expandedNode, {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'expand',\n trigger: type,\n });\n changedExpandTreeNode.value.type = 'expand-all';\n }\n\n /**\n * 对外暴露的组件实例方法,收起所有节点\n */\n function foldAll() {\n dataSource.value = [...store.value.foldAll(dataSource.value, rowDataKeys.value)];\n setTExpandedTreeNode([], {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'fold',\n trigger: 'fold-all',\n });\n }\n\n function onExpandFoldIconClick(\n p: { row: TableRowData; rowIndex: number },\n trigger?: 'expand-fold-icon' | 'row-click',\n ) {\n const { row, rowIndex } = p;\n changedExpandTreeNode.value = {\n type: 'user-reaction-change',\n ...p,\n };\n const rowValue = getUniqueRowValue(row, rowDataKeys.value.rowKey);\n const rowState = store.value.treeDataMap.get(rowValue);\n let expandedNodes = [...tExpandedTreeNode.value];\n if (rowState.expanded) {\n const expandedChildrenKeys = store.value.getExpandedChildrenKeys([row], rowDataKeys.value);\n for (let i = 0, len = expandedNodes.length; i < len; i++) {\n const nodeValue = expandedNodes[i];\n if (expandedChildrenKeys.includes(nodeValue)) {\n expandedNodes[i] = undefined;\n }\n }\n expandedNodes = expandedNodes.filter(Boolean);\n } else {\n expandedNodes.push(rowValue);\n }\n const params = {\n row,\n rowIndex,\n rowState,\n trigger,\n };\n setTExpandedTreeNode(expandedNodes, {\n ...params,\n type: rowState.expanded ? 'fold' : 'expand',\n });\n props.onTreeExpandChange?.(params);\n }\n\n function updateExpandState(\n data: TableRowData[],\n tExpandedTreeNode: (string | number)[],\n oldExpandedTreeNode: (string | number)[] = [],\n ) {\n const { addedList, removedList } = diffExpandedTreeNode(tExpandedTreeNode, oldExpandedTreeNode);\n store.value.expandTreeNode(addedList, data, rowDataKeys.value);\n store.value.foldTreeNode(removedList, data, rowDataKeys.value);\n return [...data];\n }\n\n watch([tExpandedTreeNode, data], ([tExpandedTreeNode], [oldExpandedTreeNode]) => {\n if (!store.value.treeDataMap.size || !data.value.length) return;\n if (changedExpandTreeNode.value.type === 'user-reaction-change') {\n const { row, rowIndex } = changedExpandTreeNode.value || {};\n dataSource.value = [...store.value.toggleExpandData({ row, rowIndex }, [...dataSource.value], rowDataKeys.value)];\n } else if (changedExpandTreeNode.value.type === 'props-change') {\n updateExpandState(dataSource.value, tExpandedTreeNode, oldExpandedTreeNode);\n }\n changedExpandTreeNode.value.type = 'props-change';\n });\n\n const updateExpandOnDataChange = (data: TableRowData[]) => {\n if (tree.value?.defaultExpandAll && !isDefaultExpandAllExecute.value) {\n expandAll('default-expand-all', [...data]);\n isDefaultExpandAllExecute.value = true;\n } else if (tExpandedTreeNode.value?.length) {\n nextTick(() => {\n dataSource.value = updateExpandState([...data], tExpandedTreeNode.value, []);\n });\n }\n };\n\n return {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n onExpandFoldIconClick,\n updateExpandOnDataChange,\n };\n}\n\nexport default useTreeDataExpand;\n","import { SetupContext, ref, watch, toRefs, onUnmounted, computed, h, shallowRef } from 'vue';\nimport {\n AddRectangleIcon as TdAddRectangleIcon,\n MinusRectangleIcon as TdMinusRectangleIcon,\n} from 'tdesign-icons-vue-next';\nimport { get } from 'lodash-es';\nimport TableTreeStore, { SwapParams } from '@tdesign/common-js/table/tree-store';\nimport {\n TdEnhancedTableProps,\n PrimaryTableCol,\n TableRowData,\n TableRowValue,\n TableRowState,\n PrimaryTableCellParams,\n} from '../type';\nimport useClassName from './useClassName';\nimport { renderCell } from '../tr';\nimport { useConfig } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { useTNodeDefault } from '../../hooks';\nimport useTreeDataExpand from './useTreeDataExpand';\n\nexport default function useTreeData(props: TdEnhancedTableProps, context: SetupContext) {\n const { data, columns } = toRefs(props);\n const { t, globalConfig } = useConfig('table', props.locale);\n const { AddRectangleIcon, MinusRectangleIcon } = useGlobalIcon({\n AddRectangleIcon: TdAddRectangleIcon,\n MinusRectangleIcon: TdMinusRectangleIcon,\n });\n\n const store = ref(new TableTreeStore());\n const treeNodeCol = shallowRef();\n const dataSource = ref([]);\n const { tableTreeClasses } = useClassName();\n const renderTNode = useTNodeDefault();\n\n const rowDataKeys = computed(() => ({\n rowKey: props.rowKey || 'id',\n childrenKey: props.tree?.childrenKey || 'children',\n }));\n\n const {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n updateExpandOnDataChange,\n onExpandFoldIconClick,\n } = useTreeDataExpand(props, { store, dataSource, rowDataKeys });\n\n const checkedColumn = computed(() => columns.value.find((col) => col.colKey === 'row-select'));\n\n watch(checkedColumn, (column) => {\n if (!store.value) return;\n store.value.updateDisabledState(dataSource.value, column, rowDataKeys.value);\n });\n\n const foldIcon = (context: PrimaryTableCellParams) => {\n const params = { ...context, type: 'fold' };\n const defaultFoldIcon = t(globalConfig.value.treeExpandAndFoldIcon, h, params) || ;\n return renderTNode('treeExpandAndFoldIcon', {\n defaultNode: defaultFoldIcon,\n params,\n });\n };\n\n const expandIcon = (context: PrimaryTableCellParams) => {\n const params = { ...context, type: 'expand' };\n const defaultExpandIcon = t(globalConfig.value.treeExpandAndFoldIcon, h, params) || ;\n return renderTNode('treeExpandAndFoldIcon', {\n defaultNode: defaultExpandIcon,\n params,\n });\n };\n\n watch(\n [data],\n () => {\n if (props.tree) {\n resetData(data.value);\n } else {\n dataSource.value = data.value;\n }\n },\n { immediate: true },\n );\n\n // 不能启用这部分代码。如果启用,会导致选中树形结构子节点时数据被重置,全部节点收起\n // watch([columns, rowDataKeys], ([columns, rowDataKeys]) => {\n // store.value.initialTreeStore(data.value, columns, rowDataKeys);\n // });\n\n onUnmounted(() => {\n if (!props.tree) return;\n store.value.treeDataMap?.clear();\n store.value = null;\n });\n\n watch(\n () => [columns, props.tree?.treeNodeColumnIndex],\n () => {\n treeNodeCol.value = getTreeNodeColumnCol();\n },\n { immediate: true },\n );\n\n function resetData(data: TableRowData[]) {\n const { columns, expandedTreeNodes, defaultExpandedTreeNodes, tree } = props;\n store.value.initialTreeStore(data, columns, rowDataKeys.value);\n const defaultNeedExpand = Boolean(!isDefaultExpandedTreeNodesExecute.value && defaultExpandedTreeNodes?.length);\n const needExpandAll = Boolean(tree?.defaultExpandAll && !isDefaultExpandAllExecute.value);\n if ((tExpandedTreeNode.value?.length && !!(expandedTreeNodes || defaultNeedExpand)) || needExpandAll) {\n updateExpandOnDataChange(data);\n isDefaultExpandedTreeNodesExecute.value = true;\n } else {\n dataSource.value = [...data];\n }\n }\n\n function getTreeNodeStyle(level: number) {\n if (level === undefined) return;\n const indent = props.tree?.indent === undefined ? 24 : props.tree?.indent;\n // 默认 1px 是为了临界省略\n return indent ? { paddingLeft: `${level * indent || 1}px` } : {};\n }\n\n /**\n * 组件实例方法,展开或收起某一行\n * @param p 行数据\n */\n function toggleExpandData(p: { row: TableRowData; rowIndex: number }, trigger?: 'expand-fold-icon' | 'row-click') {\n const currentData = { ...p };\n if (p.row.VIRTUAL_SCROLL_INDEX !== undefined) {\n currentData.rowIndex = p.row.VIRTUAL_SCROLL_INDEX;\n }\n dataSource.value = [...store.value.toggleExpandData(currentData, dataSource.value, rowDataKeys.value)];\n const rowValue = get(p.row, rowDataKeys.value.rowKey);\n const rowState = store.value?.treeDataMap?.get(rowValue);\n props.onTreeExpandChange?.({\n row: p.row,\n rowIndex: p.rowIndex,\n rowState,\n trigger,\n });\n }\n\n function getTreeNodeColumnCol() {\n const { columns } = props;\n let treeNodeColumnIndex = props.tree?.treeNodeColumnIndex || 0;\n // type 存在,则表示表格内部渲染的特殊列,比如:展开行按钮、复选框、单选按钮等,不能作为树结点列。因此树结点展开列向后顺移\n while (\n columns[treeNodeColumnIndex]?.type ||\n columns[treeNodeColumnIndex]?.colKey === '__EXPAND_ROW_ICON_COLUMN__'\n ) {\n treeNodeColumnIndex += 1;\n }\n return columns[treeNodeColumnIndex];\n }\n\n function formatTreeColumn(col: PrimaryTableCol): PrimaryTableCol {\n if (!props.tree || col.colKey !== treeNodeCol.value.colKey) return col;\n const newCol = { ...treeNodeCol.value };\n newCol.cell = (h, p) => {\n const cellInfo = renderCell({ ...p, col: { ...treeNodeCol.value } }, context.slots, {\n cellEmptyContent: props.cellEmptyContent,\n });\n const currentState = store.value.treeDataMap.get(get(p.row, rowDataKeys.value.rowKey));\n const colStyle = getTreeNodeStyle(currentState?.level);\n const classes = { [tableTreeClasses.inlineCol]: !!col.ellipsis };\n const childrenNodes = get(p.row, rowDataKeys.value.childrenKey);\n if ((childrenNodes && childrenNodes instanceof Array) || childrenNodes === true) {\n const iconNode = store.value.treeDataMap.get(get(p.row, rowDataKeys.value.rowKey))?.expanded\n ? foldIcon(p)\n : expandIcon(p);\n return (\n
    \n {!!(childrenNodes.length || childrenNodes === true) && (\n {\n onExpandFoldIconClick(p, 'expand-fold-icon');\n e.stopPropagation();\n }}\n >\n {iconNode}\n \n )}\n {cellInfo}\n
    \n );\n }\n return (\n
    \n \n {cellInfo}\n
    \n );\n };\n // 树形节点会显示操作符号 [+] 和 [-],但省略显示的浮层中不需要操作符\n if (newCol.ellipsis === true) {\n newCol.ellipsis = (h, p) => renderCell({ ...p, col: { ...treeNodeCol.value } }, context.slots);\n }\n return newCol;\n }\n\n /**\n * 对外暴露的组件实例方法,设置行数据,自动刷新界面\n * @param key 当前行唯一标识值\n * @param newRowData 新行数据\n */\n function setData(key: TableRowValue, newRowData: T) {\n const rowIndex = store.value.updateData(key, newRowData, dataSource.value, rowDataKeys.value);\n const newData = [...dataSource.value];\n newData[rowIndex] = newRowData;\n dataSource.value = newData;\n }\n\n /**\n * 对外暴露的组件实例方法,获取当前行全部数据\n * @param key 行唯一标识\n * @returns {TableRowState} 当前行数据\n */\n function getData(key: TableRowValue): TableRowState {\n return store.value.getData(key);\n }\n\n /**\n * 对外暴露的组件实例方法,移除指定节点\n * @param key 行唯一标识\n */\n function remove(key: TableRowValue) {\n // 引用传值,可自动更新 dataSource。(dataSource 本是内部变量,可以在任何地方进行任何改变)\n dataSource.value = [...store.value.remove(key, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 移除子节点\n * @param key 行唯一标识\n */\n function removeChildren(key: TableRowValue) {\n dataSource.value = [...store.value.removeChildren(key, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,为当前节点添加子节点,默认添加到最后一个节点\n * @param key 当前节点唯一标识,值为空,则表示给根节点添加元素\n * @param newData 待添加的新节点\n */\n function appendTo(key: TableRowValue = '', newData: T | T[]) {\n if (!key) {\n dataSource.value = store.value.appendToRoot(newData, dataSource.value, rowDataKeys.value);\n return;\n }\n // 引用传值,可自动更新 dataSource。(dataSource 本是内部变量,可以在任何地方进行任何改变)\n dataSource.value = [...store.value.appendTo(key, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,当前节点之后,插入节点\n */\n function insertAfter(rowValue: TableRowValue, newData: T) {\n dataSource.value = [...store.value.insertAfter(rowValue, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,当前节点之后,插入节点\n */\n function insertBefore(rowValue: TableRowValue, newData: T) {\n dataSource.value = [...store.value.insertBefore(rowValue, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,交换行数据\n */\n function swapData(params: SwapParams) {\n const r = store.value.swapData(dataSource.value, params, rowDataKeys.value);\n if (r.result) {\n dataSource.value = [...r.dataSource];\n } else {\n const params = {\n code: r.code,\n reason: r.reason,\n };\n props.onAbnormalDragSort?.(params);\n }\n }\n\n /**\n * 对外暴露的组件实例方法,获取全部数据的树形结构\n * @param key 节点唯一标识\n */\n function getTreeNode() {\n return store.value.getTreeNode(dataSource.value, rowDataKeys.value);\n }\n\n /**\n * 对外暴露的组件实例方法,获取树形结构展开的节点\n */\n function getTreeExpandedRow(type: 'unique' | 'data' | 'all' = 'data') {\n return store.value.getTreeExpandedRow(dataSource.value, rowDataKeys.value, type);\n }\n\n return {\n store,\n rowDataKeys,\n dataSource,\n swapData,\n setData,\n getData,\n remove,\n removeChildren,\n appendTo,\n insertAfter,\n insertBefore,\n formatTreeColumn,\n toggleExpandData,\n expandAll,\n foldAll,\n getTreeNode,\n resetData,\n getTreeExpandedRow,\n onExpandFoldIconClick,\n };\n}\n","import { computed, toRefs, ref, Ref, watch } from 'vue';\nimport { get } from 'lodash-es';\nimport { intersection } from 'lodash-es';\nimport { TdEnhancedTableProps, TdPrimaryTableProps, TableRowData, PrimaryTableCol } from '../type';\nimport { KeysType, TableTreeDataMap, TreeDataMapType } from '@tdesign/common-js/table/tree-store';\nimport useDefaultValue from '../../hooks/useDefaultValue';\n\nexport interface GetChildrenDataReturnValue {\n allChildren: Array;\n allChildrenKeys: Array;\n leafNodeKeys: Array;\n}\n\n// 保存子节点信息,避免重复计算\nexport const childrenMap = new Map();\n\nexport function getChildrenData(\n treeDataMap: TreeDataMapType,\n data: TableRowData,\n keys: { childrenKey: string; rowKey: string },\n r?: GetChildrenDataReturnValue,\n): GetChildrenDataReturnValue {\n if (childrenMap.get(data)) return childrenMap.get(data);\n const result = r || { allChildren: [], allChildrenKeys: [], leafNodeKeys: [] };\n const children = get(data, keys.childrenKey);\n if (!children || !children.length) return result;\n const selectableChildren = children.filter(\n (item: TableRowData) => !treeDataMap.get(get(item, keys.rowKey))?.disabled,\n );\n result.allChildren = [...new Set(result.allChildren.concat(selectableChildren))];\n for (let i = 0, len = children.length; i < len; i++) {\n const tItem = children[i];\n const c = get(tItem, keys.childrenKey);\n if (c?.length) {\n const nextLevelData = getChildrenData(treeDataMap, tItem, keys, result);\n result.allChildren = [...new Set(result.allChildren.concat(nextLevelData.allChildren))];\n }\n }\n // 避免使用 forEach,减少上下文消耗\n for (let i = 0, len = result.allChildren.length; i < len; i++) {\n const item = result.allChildren[i];\n const children = get(item, keys.childrenKey);\n const rowValue = get(item, keys.rowKey);\n result.allChildrenKeys.push(rowValue);\n if (!children || !children.length) {\n result.leafNodeKeys.push(rowValue);\n }\n }\n result.allChildrenKeys = [...new Set(result.allChildrenKeys)];\n result.leafNodeKeys = [...new Set(result.leafNodeKeys)];\n return result;\n}\n\nexport interface RemoveParams {\n // 当前选中的数据\n selectedRowKeys: Array;\n // 需要移除的数据\n removeKeys: Array;\n}\n\nexport interface RemainData {\n data: Array;\n keys: Array;\n}\n\nexport function removeChildrenKeys(p: RemoveParams, r?: RemainData): RemainData {\n const { selectedRowKeys, removeKeys } = p;\n const result = r || { data: [], keys: [] };\n for (let i = 0, len = selectedRowKeys.length; i < len; i++) {\n const key = selectedRowKeys[i];\n if (!removeKeys.includes(key)) {\n result.keys.push(key);\n }\n }\n return result;\n}\n\nexport interface GetKeyDataParams {\n treeDataMap: TreeDataMapType;\n data: Array;\n column: PrimaryTableCol;\n keys: KeysType;\n}\n\nexport interface GetRowDataParams {\n treeDataMap: TreeDataMapType;\n selectedRowKeys: Array;\n}\n\nexport function getRowDataByKeys(p: GetRowDataParams) {\n const { treeDataMap, selectedRowKeys } = p;\n const result = [];\n for (let i = 0, len = selectedRowKeys.length; i < len; i++) {\n const key = selectedRowKeys[i];\n result.push(treeDataMap.get(key));\n }\n return result;\n}\n\ntype SelectChangeParams = Parameters;\n\nexport default function useTreeSelect(props: TdEnhancedTableProps, treeDataMap: Ref) {\n const { selectedRowKeys, tree, data, indeterminateSelectedRowKeys } = toRefs(props);\n // 半选状态的节点:子节点选中至少一个,且没有全部选中\n const tIndeterminateSelectedRowKeys = ref<(string | number)[]>([]);\n\n const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n selectedRowKeys,\n props.defaultSelectedRowKeys || [],\n props.onSelectChange,\n 'selectedRowKeys',\n );\n const rowDataKeys = computed(() => ({\n rowKey: props.rowKey || 'id',\n childrenKey: props.tree?.childrenKey || 'children',\n }));\n\n watch([tree, treeDataMap, data, tSelectedRowKeys], ([tree, treeDataMap]) => {\n if (!tree || !treeDataMap.size || tree.checkStrictly) return;\n updateIndeterminateState();\n });\n\n function updateIndeterminateState() {\n if (!tree.value || tree.value.checkStrictly) return;\n if (!tSelectedRowKeys.value.length) {\n tIndeterminateSelectedRowKeys.value = [];\n return;\n }\n const keys: Array = [];\n const parentMap: { [key: string | number]: any[] } = {};\n for (let i = 0, len = tSelectedRowKeys.value.length; i < len; i++) {\n const rowValue = tSelectedRowKeys.value[i];\n const state = treeDataMap.value.get(rowValue);\n if (!state) continue;\n const children = get(state.row, rowDataKeys.value.childrenKey);\n // 根据选中的叶子结点计算父节点半选状态\n if (!children || !children.length) {\n let parentTmp = state.parent;\n while (parentTmp) {\n if (!parentMap[parentTmp.id]) {\n parentMap[parentTmp.id] = [];\n }\n parentMap[parentTmp.id].push(state.row);\n const checkedLength = parentMap[parentTmp.id].length;\n const { allChildrenKeys } = getChildrenData(treeDataMap.value, parentTmp.row, rowDataKeys.value);\n const parentTmpIndex = keys.indexOf(parentTmp.id);\n const selectedIndex = tSelectedRowKeys.value.indexOf(parentTmp.id);\n if (checkedLength > 0 && checkedLength < allChildrenKeys.length && selectedIndex === -1) {\n parentTmpIndex === -1 && keys.push(parentTmp.id);\n } else {\n parentTmpIndex !== -1 && keys.splice(parentTmpIndex, 1);\n }\n parentTmp = parentTmp.parent;\n }\n }\n }\n tIndeterminateSelectedRowKeys.value = keys;\n }\n\n function updateParentCheckedState(\n selectedKeys: (string | number)[],\n currentRowKey: string | number,\n type: 'check' | 'uncheck',\n ) {\n if (!tree.value || tree.value.checkStrictly) return;\n const keys = [...selectedKeys];\n const state = treeDataMap.value.get(currentRowKey);\n let parentTmp = state.parent;\n while (parentTmp) {\n const { leafNodeKeys } = getChildrenData(treeDataMap.value, parentTmp.row, rowDataKeys.value);\n const checkedChildrenKeys = intersection(leafNodeKeys, selectedKeys);\n const selectedIndex = keys.indexOf(parentTmp.id);\n if (type === 'uncheck') {\n selectedIndex !== -1 && keys.splice(selectedIndex, 1);\n } else if (checkedChildrenKeys.length === leafNodeKeys.length) {\n selectedIndex === -1 && keys.push(parentTmp.id);\n }\n parentTmp = parentTmp.parent;\n }\n return keys;\n }\n\n function onInnerSelectChange(rowKeys: SelectChangeParams[0], extraData: SelectChangeParams[1]) {\n if (!tree.value || tree.value.checkStrictly) {\n setTSelectedRowKeys(rowKeys, extraData);\n return;\n }\n if (extraData.currentRowKey === 'CHECK_ALL_BOX') {\n handleSelectAll(extraData);\n } else {\n handleSelect(rowKeys, extraData);\n }\n }\n\n function handleSelectAll(extraData: SelectChangeParams[1]) {\n const newRowKeys: Array = [];\n const newRowData: TableRowData[] = [];\n if (extraData.type === 'check') {\n const arr = [...treeDataMap.value.values()];\n for (let i = 0, len = arr.length; i < len; i++) {\n const item = arr[i];\n if (!item.disabled) {\n newRowData.push(item.row);\n newRowKeys.push(get(item.row, rowDataKeys.value.rowKey));\n }\n }\n }\n const newExtraData = {\n ...extraData,\n selectedRowData: newRowData || [],\n };\n setTSelectedRowKeys(newRowKeys, newExtraData);\n }\n\n function handleSelect(rowKeys: SelectChangeParams[0], extraData: SelectChangeParams[1]) {\n let newRowKeys = [...rowKeys];\n if (props.tree?.checkStrictly === false) {\n if (extraData?.type === 'check') {\n const result = getChildrenData(treeDataMap.value, extraData.currentRowData, rowDataKeys.value);\n const { allChildrenKeys } = result;\n childrenMap.set(extraData.currentRowData, result);\n newRowKeys = [...new Set(newRowKeys.concat(allChildrenKeys))];\n } else if (extraData?.type === 'uncheck') {\n const children = getChildrenData(treeDataMap.value, extraData.currentRowData, rowDataKeys.value);\n const result = removeChildrenKeys({\n selectedRowKeys: rowKeys,\n removeKeys: children.allChildrenKeys,\n });\n newRowKeys = result.keys;\n }\n }\n newRowKeys = updateParentCheckedState(newRowKeys, extraData.currentRowKey, extraData.type);\n const newRowData = getRowDataByKeys({ treeDataMap: treeDataMap.value, selectedRowKeys: newRowKeys });\n const newExtraData = {\n ...extraData,\n selectedRowData: newRowData,\n };\n setTSelectedRowKeys(newRowKeys, newExtraData);\n }\n\n return {\n // 如果存在受控属性 indeterminateSelectedRowKeys 则优先使用;否则使用内部状态:tIndeterminateSelectedRowKeys\n tIndeterminateSelectedRowKeys: indeterminateSelectedRowKeys.value\n ? indeterminateSelectedRowKeys\n : tIndeterminateSelectedRowKeys,\n onInnerSelectChange,\n };\n}\n","import { defineComponent, SetupContext, computed, ref, getCurrentInstance } from 'vue';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport enhancedTableProps from './enhanced-table-props';\nimport PrimaryTable from './primary-table';\nimport {\n TdEnhancedTableProps,\n PrimaryTableCol,\n TableRowData,\n DragSortContext,\n TdPrimaryTableProps,\n TableRowState,\n} from './type';\nimport useTreeData from './hooks/useTreeData';\nimport useTreeSelect from './hooks/useTreeSelect';\nimport { get } from 'lodash-es';\nimport { ComponentScrollToElementParams } from '../common';\nimport log from '@tdesign/common-js/log/index';\nimport { usePrefixClass } from '../hooks';\n\nexport default defineComponent({\n name: 'TEnhancedTable',\n\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n ...enhancedTableProps,\n },\n\n setup(props: TdEnhancedTableProps, context: SetupContext) {\n const primaryTableRef = ref(null);\n const { store, dataSource, formatTreeColumn, swapData, onExpandFoldIconClick, ...treeInstanceFunctions } =\n useTreeData(props, context);\n const classPrefix = usePrefixClass();\n\n const treeDataMap = ref(store.value.treeDataMap);\n\n const { tIndeterminateSelectedRowKeys, onInnerSelectChange } = useTreeSelect(props, treeDataMap);\n\n // 影响列和单元格内容的因素有:树形节点需要添加操作符 [+] [-]\n const getColumns = (columns: PrimaryTableCol[]) => {\n const arr: PrimaryTableCol[] = [];\n for (let i = 0, len = columns.length; i < len; i++) {\n let item = { ...columns[i] };\n item = formatTreeColumn(item);\n if (item.children?.length) {\n item.children = getColumns(item.children);\n }\n // 多级表头和自定义列配置特殊逻辑:要么子节点不存在,要么子节点长度大于 1,方便做自定义列配置\n if (!item.children || item.children?.length) {\n arr.push(item);\n }\n }\n return arr;\n };\n\n const tColumns = computed(() => {\n // 暂时只有树形结构需要处理 column.cell\n const isTreeData = !props.tree || !Object.keys(props.tree).length;\n return isTreeData ? props.columns : getColumns(props.columns);\n });\n\n const onDragSortChange = (params: DragSortContext) => {\n if (props.beforeDragSort && !props.beforeDragSort(params)) return;\n swapData({\n current: params.current,\n target: params.target,\n currentIndex: params.currentIndex,\n targetIndex: params.targetIndex,\n });\n props.onDragSort?.(params);\n };\n\n const onEnhancedTableRowClick: TdPrimaryTableProps['onRowClick'] = (p) => {\n if (props.tree?.expandTreeNodeOnClick) {\n onExpandFoldIconClick(\n {\n row: p.row,\n rowIndex: p.index,\n },\n 'row-click',\n );\n }\n props.onRowClick?.(p);\n };\n\n const getScrollRowIndex = (rowStateData: TableRowState, key: string | number): number => {\n if (!rowStateData) return -1;\n if (rowStateData.rowIndex >= 0) return rowStateData.rowIndex;\n if (rowStateData.rowIndex < 0) {\n return getScrollRowIndex(rowStateData.parent, key);\n }\n };\n\n const scrollToElement = (params: ComponentScrollToElementParams) => {\n let { index } = params;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Table', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n const rowStateData = treeDataMap.value.get(params.key);\n index = getScrollRowIndex(rowStateData, params.key);\n if (index < 0 || index === undefined) {\n log.error('Table', `${params.key} does not exist in data, check \\`rowKey\\` or \\`data\\` please.`);\n }\n }\n primaryTableRef.value.scrollToElement({ ...params, index });\n };\n\n context.expose({\n store: store.value,\n dataSource: dataSource.value,\n ...treeInstanceFunctions,\n primaryTableRef,\n validateRowData: (rowValue: any) => {\n return primaryTableRef.value.validateRowData(rowValue);\n },\n validateTableData: () => {\n return primaryTableRef.value.validateTableData();\n },\n clearValidateData: () => {\n primaryTableRef.value.clearValidateData();\n },\n refreshTable: () => {\n primaryTableRef.value.refreshTable();\n },\n scrollToElement,\n });\n\n return () => {\n const { vnode } = getCurrentInstance();\n const enhancedProps: TdPrimaryTableProps = {\n ...vnode.props,\n rowKey: props.rowKey || 'id',\n data: dataSource.value,\n columns: tColumns.value,\n // 半选状态节点\n indeterminateSelectedRowKeys: tIndeterminateSelectedRowKeys.value,\n // 树形结构不允许本地数据分页\n disableDataPage: Boolean(props.tree && Object.keys(props.tree).length) || props.disableDataPage,\n onSelectChange: onInnerSelectChange,\n onDragSort: onDragSortChange,\n rowClassName: ({ row }) => {\n const rowValue = get(row, props.rowKey || 'id');\n const rowState = treeDataMap.value.get(rowValue);\n if (!rowState) return [props.rowClassName];\n return [`${classPrefix.value}-table-tr--level-${rowState.level}`, props.rowClassName];\n },\n };\n if (props.tree?.expandTreeNodeOnClick) {\n enhancedProps.onRowClick = onEnhancedTableRowClick;\n }\n // @ts-ignore ref 顺序很重要,如果移动到 v-slots 前面,会让 EnhancedTable 所有实例方法失效,勿动\n return ;\n };\n },\n});\n","import { cloneDeep } from 'lodash-es';\nimport _BaseTable from './base-table';\nimport _PrimaryTable from './primary-table';\nimport _EnhancedTable from './enhanced-table';\nimport withInstall from '../utils/withInstall';\nimport { InfinityScroll } from '../common';\nimport { BaseTableInstanceFunctions, EnhancedTableInstanceFunctions, PrimaryTableInstanceFunctions } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './interface';\n\nexport type AllTableInstanceFunctions = EnhancedTableInstanceFunctions &\n PrimaryTableInstanceFunctions &\n BaseTableInstanceFunctions;\n\nexport type TableScroll = InfinityScroll;\nexport const BaseTable = withInstall(_BaseTable);\nexport const PrimaryTable = withInstall(_PrimaryTable);\nexport const EnhancedTable = withInstall(_EnhancedTable);\n\nconst table = cloneDeep(_PrimaryTable);\nexport const Table = withInstall(table, 'TTable');\n\nexport default Table;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimelineProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签信息放在时间轴的位置,`mode='alternate'` 时生效。纵向时间轴信息位置:左侧、右侧或两侧,默认信息在时间轴右侧。横向时间轴信息位置:上方、下方、两侧 */\n labelAlign: {\n type: String as PropType,\n default: 'left' as TdTimelineProps['labelAlign'],\n validator(val: TdTimelineProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'alternate', 'top', 'bottom'].includes(val);\n },\n },\n /** 时间轴方向:水平方向、垂直方向 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdTimelineProps['layout'],\n validator(val: TdTimelineProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 标签与内容文本的位置关系,`alternate` 为展示在轴两侧,`same` 为展示在同一侧 */\n mode: {\n type: String as PropType,\n default: 'alternate' as TdTimelineProps['mode'],\n validator(val: TdTimelineProps['mode']): boolean {\n if (!val) return true;\n return ['alternate', 'same'].includes(val);\n },\n },\n /** 时间轴是否表现为倒序 */\n reverse: Boolean,\n /** 步骤条风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdTimelineProps['theme'],\n validator(val: TdTimelineProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'dot'].includes(val);\n },\n },\n};\n","import { InjectionKey, ComputedRef, computed } from 'vue';\nimport { TdTimelineProps } from '../type';\n\nexport const DefaultAlign = {\n vertical: ['left', 'right'],\n horizontal: ['top', 'bottom'],\n};\n\nexport interface TimelineProvider {\n theme: TdTimelineProps['theme'];\n reverse: TdTimelineProps['reverse'];\n itemsStatus: string[];\n layout: TdTimelineProps['layout'];\n globalAlign?: TdTimelineProps['labelAlign'];\n mode?: TdTimelineProps['mode'];\n renderAlign: string;\n}\n\nexport const TimelineInjectKey: InjectionKey> = Symbol('timeLineProvide');\n\nexport const DEFAULT_PROVIDER = computed(() => ({\n theme: 'default',\n reverse: false,\n itemsStatus: [],\n layout: 'horizontal',\n renderAlign: 'left',\n mode: 'alternate',\n}));\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimelineItemProps } from '../timeline/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 描述内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 用于自定义时间轴节点元素 */\n dot: {\n type: Function as PropType,\n },\n /** 时间轴颜色,内置 `primary/warning/error/default` 四种色值,可传入 16 进制颜色码或 RGB 颜色值. */\n dotColor: {\n type: String as PropType,\n default: 'primary',\n },\n /** 标签文本内容,可完全自定义 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 标签信息相对于时间轴的位置,在 `mode='alternate'` 时生效,优先级高于 `Timeline.labelAlign` */\n labelAlign: {\n type: String as PropType,\n validator(val: TdTimelineItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 是否处在加载状态 */\n loading: Boolean,\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, inject } from 'vue';\nimport { omit } from 'lodash-es';\nimport props from './timeline-item-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { TimelineInjectKey, DEFAULT_PROVIDER } from './hooks';\nimport Loading from '../loading';\n\nconst DEFAULT_THEME = ['default', 'primary', 'success', 'warning', 'error'];\n\nexport default defineComponent({\n name: 'TTimelineItem',\n props: {\n ...props,\n index: {\n type: Number,\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('timeline-item');\n // unit test need default value\n\n const TimelineProvider = inject(TimelineInjectKey, DEFAULT_PROVIDER);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n // 计算节点模式 CSS 类名\n const getPositionClassName = (index: number) => {\n const { layout, renderAlign } = TimelineProvider.value;\n // TimelineItem.labelAlign > Timeline.labelAlign\n const timelineItemAlign = props.labelAlign ?? renderAlign;\n // 横向布局 以及 纵向布局对应为不同的样式名\n const left = layout === 'horizontal' ? 'top' : 'left';\n const right = layout === 'horizontal' ? 'bottom' : 'right';\n // 单独设置则单独生效\n if (timelineItemAlign === 'alternate') {\n return index % 2 === 0 ? `${COMPONENT_NAME.value}-${left}` : `${COMPONENT_NAME.value}-${right}`;\n }\n if (timelineItemAlign === 'left' || timelineItemAlign === 'top') {\n return `${COMPONENT_NAME.value}-${left}`;\n }\n if (timelineItemAlign === 'right' || timelineItemAlign === 'bottom') {\n return `${COMPONENT_NAME.value}-${right}`;\n }\n return '';\n };\n const handleClick = (e: MouseEvent) => {\n props.onClick?.({ e, item: omit(props, ['index']) });\n };\n\n return () => {\n const { mode, theme, itemsStatus, reverse } = TimelineProvider.value;\n const { loading, dotColor, index } = props;\n\n const labelNode = renderTNodeJSX('label');\n const dotElement = renderTNodeJSX('dot');\n\n const dotContentClass = `${COMPONENT_NAME.value}__dot-content`;\n if (dotElement?.props) {\n const classes = dotElement?.props?.class;\n dotElement.props.class = classes ? [dotContentClass, classes].join(' ') : dotContentClass;\n }\n\n return (\n
  • \n {mode === 'alternate' && labelNode && (\n
    {labelNode}
    \n )}\n
    \n \n {!dotElement && loading && }\n {dotElement}\n
    \n \n \n
    \n {renderContent('default', 'content')}\n {mode === 'same' && labelNode && (\n
    \n {labelNode}\n
    \n )}\n
    \n
  • \n );\n };\n },\n});\n","import { defineComponent, provide, computed } from 'vue';\nimport TimeLineProps from './props';\nimport { TimelineInjectKey, DefaultAlign } from './hooks';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useChildComponentSlots } from '../hooks/slot';\nimport TimelineItem from './timeline-item';\nimport log from '@tdesign/common-js/log/index';\n\nexport default defineComponent({\n name: 'TTimeline',\n props: TimeLineProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('timeline');\n const renderAlign = computed(() => {\n const { labelAlign, layout } = props;\n let res = layout === 'vertical' ? 'left' : 'top';\n if (layout === 'vertical' && labelAlign) {\n const index = DefaultAlign.horizontal.indexOf(labelAlign);\n const isError = index !== -1;\n isError && log.warn('Timeline', 'If layout is vertical, align should be \"left\",\"alternate\" or \"right\" ');\n res = isError ? DefaultAlign.vertical[index] : labelAlign;\n }\n if (layout === 'horizontal' && labelAlign) {\n const index = DefaultAlign.vertical.indexOf(labelAlign);\n const isError = index !== -1;\n isError && log.warn('Timeline', 'If layout is horizontal, align should be \"top\",\"alternate\" or \"bottom\" ');\n res = isError ? DefaultAlign.horizontal[index] : labelAlign;\n }\n return res;\n });\n\n const TimeLineProvide = computed(() => {\n const { theme, reverse, layout, labelAlign, mode } = props;\n return {\n theme,\n reverse,\n itemsStatus: [''],\n layout,\n globalAlign: labelAlign,\n mode,\n renderAlign: renderAlign.value,\n };\n });\n\n const hasLabelItem = 1;\n provide(TimelineInjectKey, TimeLineProvide);\n\n return () => {\n const getChildComponentSlots = useChildComponentSlots();\n let timelineItems = getChildComponentSlots('TTimelineItem');\n if (props.reverse) timelineItems = timelineItems.reverse();\n return (\n \n {timelineItems.map((item, index) => (\n \n ))}\n \n );\n };\n },\n});\n","import _Timeline from './timeline';\nimport _TimelineItem from './timeline-item';\nimport withInstall from '../utils/withInstall';\nimport { TdTimelineProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type TimelineProps = TdTimelineProps;\n\nexport const Timeline = withInstall(_Timeline);\nexport const TimelineItem = withInstall(_TimelineItem);\n\nexport default Timeline;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCollapseProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否为无边框模式 */\n borderless: Boolean,\n /** 默认是否展开全部 */\n defaultExpandAll: Boolean,\n /** 是否禁用面板展开/收起操作 */\n disabled: Boolean,\n /** 展开图标。值为 undefined 或 false 则不显示展开图标;值为 true 显示默认图标;值类型为函数,则表示完全自定义展开图标 */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 展开图标的位置,左侧或右侧 */\n expandIconPlacement: {\n type: String as PropType,\n default: 'left' as TdCollapseProps['expandIconPlacement'],\n validator(val: TdCollapseProps['expandIconPlacement']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 每个面板互斥展开,每次只展开一个面板 */\n expandMutex: Boolean,\n /** 是否允许点击整行标题展开面板 */\n expandOnRowClick: {\n type: Boolean,\n default: true,\n },\n /** 展开的面板集合 */\n value: {\n type: Array as PropType,\n default: undefined as TdCollapseProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCollapseProps['value'],\n },\n /** 展开的面板集合,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 切换面板时触发,返回变化的值 */\n onChange: Function as PropType,\n};\n","import { defineComponent, toRefs, provide, computed } from 'vue';\nimport props from './props';\nimport { CollapseValue, TdCollapseProps, CollapsePanelValue } from './type';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TCollapse',\n props,\n setup(props: TdCollapseProps) {\n const componentName = usePrefixClass('collapse');\n const borderlessClass = usePrefixClass('-border-less');\n const renderTNodeJSX = useTNodeJSX();\n const { value, expandMutex, borderless, modelValue } = toRefs(props);\n const [collapseValue, setCollapseValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const updateCollapseValue = (value: CollapsePanelValue) => {\n let newValue: CollapseValue = [].concat(collapseValue.value || []);\n const index = newValue.indexOf(value);\n if (index >= 0) {\n newValue.splice(index, 1);\n } else if (expandMutex.value) {\n newValue = [value];\n } else {\n newValue.push(value);\n }\n setCollapseValue(newValue);\n };\n const classes = computed(() => {\n return [\n componentName.value,\n {\n [borderlessClass.value]: !!borderless.value,\n },\n ];\n });\n const getUniqId = (() => {\n let index = 0;\n return () => index++;\n })();\n provide('collapseValue', collapseValue);\n provide('updateCollapseValue', updateCollapseValue);\n provide('collapseProps', toRefs(props));\n provide('getUniqId', getUniqId);\n // TODO 这里是有问题的,这是无法响应式,expandIcon 的值变化了,不会重新渲染\n provide('renderParentTNode', renderTNodeJSX);\n return () => {\n const nodes = renderTNodeJSX('default');\n return
    {nodes}
    ;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCollapsePanelProps } from '../collapse/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 折叠面板内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 折叠面板内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 当前面板处理折叠状态时,是否销毁面板内容 */\n destroyOnCollapse: Boolean,\n /** 禁止当前面板展开,优先级大于 Collapse 的同名属性 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当前折叠面板展开图标,优先级大于 Collapse 的同名属性 */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined,\n },\n /** 面板头内容 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 面板头的右侧区域,一般用于呈现面板操作 */\n headerRightContent: {\n type: [String, Function] as PropType,\n },\n /** 当前面板唯一标识,如果值为空则取当前面下标兜底作为唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, ref, computed, inject, Ref, toRefs, Transition } from 'vue';\nimport props from './collapse-panel-props';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { CollapseValue, TdCollapsePanelProps } from './type';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useCollapseAnimation from '../hooks/useCollapseAnimation';\n\nexport default defineComponent({\n name: 'TCollapsePanel',\n props,\n setup(props: TdCollapsePanelProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const componentName = usePrefixClass('collapse-panel');\n const disableClass = usePrefixClass('is-disabled');\n const clickableClass = usePrefixClass('is-clickable');\n const transitionClass = usePrefixClass('slide-down');\n const { value, disabled, destroyOnCollapse } = toRefs(props);\n const collapseValue: Ref = inject('collapseValue');\n const updateCollapseValue: Function = inject('updateCollapseValue');\n const getUniqId: Function = inject('getUniqId', (): undefined => undefined, false);\n const {\n defaultExpandAll,\n disabled: disableAll,\n expandIconPlacement,\n expandOnRowClick,\n } = inject('collapseProps');\n const renderParentTNode: Function = inject('renderParentTNode');\n const innerValue = value.value || getUniqId();\n if (defaultExpandAll.value) {\n updateCollapseValue(innerValue);\n }\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n const iconRef = ref();\n const isDisabled = computed(() => disabled.value || disableAll.value);\n const isActive = computed(() =>\n collapseValue.value instanceof Array\n ? collapseValue.value.includes(innerValue)\n : collapseValue.value === innerValue,\n );\n const classes = computed(() => {\n return [componentName.value, { [disableClass.value]: isDisabled.value }];\n });\n const panelExpandIcon = computed(() => slots.expandIcon || props.expandIcon);\n const handleClick = (e: MouseEvent) => {\n const canExpand = expandOnRowClick.value || e.currentTarget === iconRef.value;\n if (canExpand && !isDisabled.value) {\n updateCollapseValue(innerValue);\n }\n e.stopPropagation();\n };\n const handleHeaderRightContentClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n const renderDefaultIcon = () => {\n return ;\n };\n const renderIcon = () => {\n const tNodeRender = panelExpandIcon.value === undefined ? renderParentTNode : renderTNodeJSX;\n return (\n \n {tNodeRender('expandIcon', renderDefaultIcon())}\n \n );\n };\n const renderBlank = () => {\n return
    ;\n };\n const renderHeaderRightContent = () => {\n const headerRightContent = renderTNodeJSX('headerRightContent');\n\n return headerRightContent ?
    {headerRightContent}
    : null;\n };\n const renderHeader = () => {\n const cls = [\n `${componentName.value}__header`,\n {\n [clickableClass.value]: expandOnRowClick.value && !isDisabled.value,\n },\n ];\n\n return (\n
    \n {expandIconPlacement.value === 'left' && renderIcon()}\n {renderTNodeJSX('header')}\n {renderBlank()}\n {renderHeaderRightContent()}\n {expandIconPlacement.value === 'right' && renderIcon()}\n
    \n );\n };\n const renderBodyByNormal = () => {\n return (\n
    \n
    {renderContent('default', 'content')}
    \n
    \n );\n };\n const renderBodyDestroyOnCollapse = () => {\n return isActive.value ? (\n
    \n
    {renderContent('default', 'content')}
    \n
    \n ) : null;\n };\n const renderBody = () => {\n return destroyOnCollapse.value ? renderBodyDestroyOnCollapse() : renderBodyByNormal();\n };\n return () => {\n return (\n
    \n
    \n {renderHeader()}\n \n {renderBody()}\n \n
    \n
    \n );\n };\n },\n});\n","import _Collapse from './collapse';\nimport _CollapsePanel from './collapse-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdCollapseProps, TdCollapsePanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type CollapseProps = TdCollapseProps;\nexport type CollapsePanelProps = TdCollapsePanelProps;\n\nexport const Collapse = withInstall(_Collapse);\n\nexport const CollapsePanel = withInstall(_CollapsePanel);\n\nexport default Collapse;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdWatermarkProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 水印整体透明度,取值范围 [0-1] */\n alpha: {\n type: Number,\n default: 1,\n },\n /** 水印所覆盖的内容节点 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 水印所覆盖的内容节点,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 水印高度 */\n height: {\n type: Number,\n },\n /** 水印是否重复出现 */\n isRepeat: {\n type: Boolean,\n default: true,\n },\n /** 行间距,只作用在多行(`content` 配置为数组)情况下 */\n lineSpace: {\n type: Number,\n default: 16,\n },\n /** 水印是否可移动 */\n movable: Boolean,\n /** 水印发生运动位移的间隙,单位:毫秒 */\n moveInterval: {\n type: Number,\n default: 3000,\n },\n /** 水印在画布上绘制的水平和垂直偏移量,正常情况下水印绘制在中间位置,即 `offset = [gapX / 2, gapY / 2]` */\n offset: {\n type: Array as PropType,\n },\n /** 水印是否可被删除 */\n removable: {\n type: Boolean,\n default: true,\n },\n /** 水印旋转的角度,单位 ° */\n rotate: {\n type: Number,\n default: -22,\n },\n /** 水印内容,需要显示多行情况下可配置为数组 */\n watermarkContent: {\n type: [Object, Array] as PropType,\n },\n /** 水印宽度 */\n width: {\n type: Number,\n },\n /** 水印之间的水平间距 */\n x: {\n type: Number,\n },\n /** 水印之间的垂直间距 */\n y: {\n type: Number,\n },\n /** 水印元素的 `z-index`,默认值写在 CSS 中 */\n zIndex: {\n type: Number,\n },\n};\n","import { computed, onMounted, defineComponent, watch, ref, reactive, shallowRef } from 'vue';\nimport props from './props';\nimport generateBase64Url from '@tdesign/common-js/watermark/generateBase64Url';\nimport randomMovingStyle from '@tdesign/common-js/watermark/randomMovingStyle';\nimport injectStyle from '@tdesign/common-js/utils/injectStyle';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useMutationObserver } from './hooks';\nimport { useContent } from '../hooks/tnode';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nexport default defineComponent({\n name: 'TWatermark',\n props,\n setup(props) {\n const backgroundImage = ref('');\n const watermarkRef = shallowRef();\n const watermarkContentRef = shallowRef();\n\n const offset = reactive(props.offset || []);\n\n const gapX = computed(() => {\n return props.movable ? 0 : props.x;\n });\n\n const gapY = computed(() => {\n return props.movable ? 0 : props.y;\n });\n\n const rotate = computed(() => {\n return props.movable ? 0 : props.rotate;\n });\n\n const backgroundRepeat = computed(() => {\n if (props.movable) {\n return 'no-repeat';\n }\n return props.isRepeat ? 'repeat' : 'no-repeat';\n });\n\n const offsetLeft = computed(() => {\n return offset[0] || gapX.value / 2;\n });\n\n const offsetTop = computed(() => {\n return offset[1] || gapY.value / 2;\n });\n\n const bgImageOptions = computed(() => ({\n width: props.width,\n height: props.height,\n rotate: rotate.value,\n lineSpace: props.lineSpace,\n alpha: props.alpha,\n gapX: gapX.value,\n gapY: gapY.value,\n watermarkContent: props.watermarkContent,\n offsetLeft: offsetLeft.value,\n offsetTop: offsetTop.value,\n }));\n\n const removeWaterMark = () => {\n if (!watermarkContentRef.value) return;\n watermarkContentRef.value.remove();\n watermarkContentRef.value = null;\n };\n\n const injectWaterMark = () => {\n generateBase64Url(bgImageOptions.value, (base64Url) => {\n removeWaterMark();\n\n backgroundImage.value = base64Url;\n watermarkContentRef.value = document.createElement('div');\n setStyle(watermarkContentRef.value, {\n zIndex: props.zIndex,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n width: '100%',\n height: '100%',\n backgroundSize: `${gapX.value + props.width}px`,\n pointerEvents: 'none',\n backgroundRepeat: backgroundRepeat.value,\n backgroundImage: `url('${backgroundImage.value}')`,\n animation: props.movable ? `watermark infinite ${(props.moveInterval * 4) / 60}s` : 'none',\n });\n watermarkRef.value?.append(watermarkContentRef.value);\n });\n\n if (props.movable) {\n const keyframesStyle = randomMovingStyle();\n injectStyle(keyframesStyle);\n }\n };\n\n onMounted(() => {\n injectWaterMark();\n useMutationObserver(\n watermarkRef.value,\n (mutations) => {\n if (props.removable || !watermarkContentRef.value) return;\n for (const mutation of mutations) {\n const isRemoved = Array.from(mutation.removedNodes).includes(watermarkContentRef.value);\n const isModified = mutation.type === 'attributes' && watermarkContentRef.value === mutation.target;\n if (isRemoved || isModified) {\n injectWaterMark();\n break;\n }\n }\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n });\n\n watch(() => props, injectWaterMark, { deep: true, flush: 'post' });\n\n return () => {\n const COMPONENT_NAME = usePrefixClass('watermark');\n const renderContent = useContent();\n\n return (\n \n {renderContent('default', 'content')}\n \n );\n };\n },\n});\n","import { WatermarkText, WatermarkImage } from './type';\n\nexport default function generateBase64Url({\n width,\n height,\n gapX,\n gapY,\n offsetLeft,\n offsetTop,\n rotate,\n alpha,\n watermarkContent,\n lineSpace\n}: {\n width: number,\n height: number,\n gapX:number,\n gapY: number,\n offsetLeft:number,\n offsetTop:number,\n rotate:number,\n alpha:number,\n watermarkContent: WatermarkText | WatermarkImage | Array,\n lineSpace:number\n}, onFinish: (url: string) => void): string {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n // eslint-disable-next-line no-console\n console.warn('当前环境不支持Canvas, 无法绘制水印');\n onFinish('');\n return;\n }\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = (gapX + width) * ratio;\n const canvasHeight = (gapY + height) * ratio;\n\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = `${gapX + width}px`;\n canvas.style.height = `${gapY + height}px`;\n\n ctx.translate(offsetLeft * ratio, offsetTop * ratio);\n ctx.rotate((Math.PI / 180) * Number(rotate));\n ctx.globalAlpha = alpha;\n\n const markWidth = width * ratio;\n const markHeight = height * ratio;\n\n ctx.fillStyle = 'transparent';\n ctx.fillRect(0, 0, markWidth, markHeight);\n\n const contents = Array.isArray(watermarkContent) ? watermarkContent : [{ ...watermarkContent }];\n let top = 0;\n contents.forEach((item: WatermarkText & WatermarkImage & { top: number }) => {\n if (item.url) {\n const { url, isGrayscale = false } = item;\n // eslint-disable-next-line no-param-reassign\n item.top = top;\n top += height;\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.referrerPolicy = 'no-referrer';\n img.src = url;\n img.onload = () => {\n // ctx.filter = 'grayscale(1)';\n ctx.drawImage(img, 0, item.top * ratio, width * ratio, height * ratio);\n if (isGrayscale) {\n const imgData = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height);\n const pixels = imgData.data;\n for (let i = 0; i < pixels.length; i += 4) {\n const lightness = (pixels[i] + pixels[i + 1] + pixels[i + 2]) / 3;\n pixels[i] = lightness;\n pixels[i + 1] = lightness;\n pixels[i + 2] = lightness;\n }\n ctx.putImageData(imgData, 0, 0);\n }\n onFinish(canvas.toDataURL());\n };\n } else if (item.text) {\n const {\n text,\n fontColor = 'rgba(0, 0, 0, 0.1)',\n fontSize = 16,\n fontFamily = undefined,\n fontWeight = 'normal',\n } = item;\n // eslint-disable-next-line no-param-reassign\n item.top = top;\n top += lineSpace;\n const markSize = Number(fontSize) * ratio;\n // TODO 后续完善font 渲染控制 目前font-family 暂时为 undefined\n ctx.font = `normal normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;\n ctx.textAlign = 'start';\n ctx.textBaseline = 'top';\n ctx.fillStyle = fontColor;\n ctx.fillText(text, 0, item.top * ratio);\n }\n });\n onFinish(canvas.toDataURL());\n}\n","/* eslint-disable no-nested-ternary */\nexport default function randomMovingStyle() {\n const align = Math.floor(Math.random() * 4);\n const p1 = Math.floor(Math.random() * 70) + 30;\n const leftTopLimit = 0;\n const bottomLimit = 95;\n const rightLimit = 90;\n const keyframesStyle = `\n @keyframes watermark {\n 0% {left: ${align === 1 ? rightLimit : align === 3 ? leftTopLimit : p1}%; top: ${\n align === 0 ? leftTopLimit : align === 2 ? bottomLimit : p1\n}%;}\n 25% {left: ${align === 0 ? rightLimit : align === 2 ? leftTopLimit : 100 - p1}%; top: ${\n align === 1 ? bottomLimit : align === 3 ? leftTopLimit : p1\n}%;}\n 50% {left: ${align === 1 ? leftTopLimit : align === 3 ? rightLimit : 100 - p1}%; top: ${\n align === 0 ? bottomLimit : align === 2 ? leftTopLimit : 100 - p1\n}%; transform: translateX(-100%);}\n 75% {left: ${align === 0 ? leftTopLimit : align === 2 ? rightLimit : p1}%; top: ${\n align === 1 ? leftTopLimit : align === 3 ? bottomLimit : 100 - p1\n}%;}\n 100% {left: ${align === 1 ? rightLimit : align === 3 ? leftTopLimit : p1}%; top: ${\n align === 0 ? leftTopLimit : align === 2 ? bottomLimit : p1\n}%;}\n }\n `;\n return keyframesStyle;\n}\n","const injectStyle = (style: string) => {\n const styleElement = document.createElement('style');\n let styleSheet = null;\n document.head.appendChild(styleElement);\n styleSheet = styleElement.sheet;\n styleSheet.insertRule(style, styleSheet.cssRules.length);\n};\n\nexport default injectStyle;\n","import _Watermark from './watermark';\nimport withInstall from '../utils/withInstall';\n\nexport * from './type';\n\nexport const Watermark = withInstall(_Watermark);\nexport default Watermark;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRateProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许半选 */\n allowHalf: Boolean,\n /** 是否允许清除评分,如果允许,重新点击当前评分清除 */\n clearable: Boolean,\n /** 评分图标的颜色,样式中默认为 #ED7B2F。一个值表示设置选中高亮的五角星颜色,示例:[选中颜色]。数组则表示分别设置 选中高亮的五角星颜色 和 未选中暗灰的五角星颜色,[选中颜色,未选中颜色]。示例:['#ED7B2F', '#E3E6EB'] */\n color: {\n type: [String, Array] as PropType,\n default: '#ED7B2F' as TdRateProps['color'],\n },\n /** 评分的数量 */\n count: {\n type: Number,\n default: 5,\n },\n /** 是否禁用评分 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 评分图标的间距 */\n gap: {\n type: Number,\n default: 4,\n },\n /** 自定义评分图标 */\n icon: {\n type: Function as PropType,\n },\n /** 是否显示对应的辅助文字 */\n showText: Boolean,\n /** 评分图标的大小 */\n size: {\n type: String,\n default: '24px',\n },\n /** 评分等级对应的辅助文字。组件内置默认值为:['极差', '失望', '一般', '满意', '惊喜']。自定义值示例:['1分', '2分', '3分', '4分', '5分'] */\n texts: {\n type: Array as PropType,\n default: (): TdRateProps['texts'] => [],\n },\n /** 选择评分的值 */\n value: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 选择评分的值,非受控属性 */\n defaultValue: {\n type: Number,\n default: 0,\n },\n /** 评分数改变时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed, toRefs, ref } from 'vue';\nimport { StarFilledIcon } from 'tdesign-icons-vue-next';\nimport useVModel from '../hooks/useVModel';\nimport props from './props';\nimport { useConfig } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Tooltip from '../tooltip/index';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TRate',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('rate');\n\n const activeColor = isArray(props.color) ? props.color[0] : props.color;\n const defaultColor = isArray(props.color) ? props.color[1] : 'var(--td-bg-color-component)';\n\n const { value: inputValue, modelValue } = toRefs(props);\n const [starValue, setStarValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n\n const hoverValue = ref(undefined);\n const root = ref();\n\n const displayValue = computed(() => Number(hoverValue.value || starValue.value));\n const displayTexts = computed(() => (props.texts.length === 0 ? globalConfig.value.rateText : props.texts));\n const displayText = computed(() => displayTexts.value[Math.ceil(displayValue.value - 1)]);\n\n // 评分图标\n const RateIcon = (iconProps: any) => {\n if (slots.icon !== undefined) {\n return renderTNodeJSX('icon', {\n params: iconProps,\n });\n }\n\n return ;\n };\n\n const getStarValue = (event: MouseEvent, index: number) => {\n if (props.allowHalf) {\n const { left } = root.value.getBoundingClientRect();\n const firstStar = root.value.firstChild.nextSibling as HTMLElement;\n const { width } = firstStar.getBoundingClientRect();\n const { clientX } = event;\n const starMiddle = width * (index - 0.5) + props.gap * (index - 1);\n\n if (clientX - left >= starMiddle) return index;\n if (clientX - left < starMiddle) return index - 0.5;\n }\n\n return index;\n };\n\n const mouseEnterHandler = (event: MouseEvent, index: number) => {\n if (props.disabled) return;\n hoverValue.value = getStarValue(event, index);\n };\n\n const mouseLeaveHandler = () => {\n if (props.disabled) return;\n hoverValue.value = undefined;\n };\n\n const clickHandler = (event: MouseEvent, index: number) => {\n if (props.disabled) return;\n const value = getStarValue(event, index);\n if (props.clearable && value === starValue.value) {\n hoverValue.value = undefined;\n setStarValue(0);\n } else {\n setStarValue(value);\n }\n };\n\n const getStarCls = (index: number) => {\n if (props.allowHalf && index + 0.5 === displayValue.value) return `${classPrefix.value}-rate__item--half`;\n if (index >= displayValue.value) return '';\n if (index < displayValue.value) return `${classPrefix.value}-rate__item--full`;\n };\n\n const { classPrefix } = useConfig('classPrefix');\n\n return () => {\n return (\n
    \n
      \n {[...Array(Number(props.count))].map((_, index) => (\n clickHandler(event, index + 1)}\n onMousemove={(event: MouseEvent) => {\n return mouseEnterHandler(event, index + 1);\n }}\n >\n {props.showText ? (\n \n
      \n \n
      \n
      \n \n
      \n
      \n ) : (\n <>\n
      \n \n
      \n
      \n \n
      \n \n )}\n \n ))}\n
    \n {props.showText &&
    {displayText.value}
    }\n
    \n );\n };\n },\n});\n","import _Rate from './rate';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './type';\n\nexport const Rate = withInstall(_Rate);\n\nexport default Rate;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否添加代码样式 */\n code: Boolean,\n /** 文本内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 是否可复制,可通过配置参数自定义复制操作的具体功能和样式 */\n copyable: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextProps['copyable'],\n },\n /** 文本内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否添加删除线样式 */\n delete: Boolean,\n /** 是否添加不可用样式 */\n disabled: Boolean,\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextProps['ellipsis'],\n },\n /** 文本是否为斜体 */\n italic: Boolean,\n /** 是否添加键盘样式 */\n keyboard: Boolean,\n /** 是否添加标记样式,默认为黄色,可通过配置颜色修改标记样式,如#0052D9 */\n mark: {\n type: [String, Boolean] as PropType,\n default: false as TdTextProps['mark'],\n },\n /** 文本是否加粗 */\n strong: Boolean,\n /** 主题 */\n theme: {\n type: String as PropType,\n validator(val: TdTextProps['theme']): boolean {\n if (!val) return true;\n return ['primary', 'secondary', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 是否添加下划线样式 */\n underline: Boolean,\n};\n","interface Options {\n message?: string;\n format?: string; // MIME type\n onCopy?: (clipboardData: object) => void;\n}\n\nconst defaultMessage = 'Copy to clipboard: #{key}, Enter';\n\nconst format = (message: string) => {\n const copyKey = (/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl') + '+C';\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n};\n\n// inspired by https://github.com/sudodoki/toggle-selection, refactor to esm\nconst deselectCurrent = () => {\n const selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n let active = document.activeElement as any;\n\n const ranges: Range[] = [];\n for (let i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n const tagName = active.tagName.toUpperCase(); // toUpperCase handles XHTML\n switch (tagName) {\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' && selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function (range) {\n selection.addRange(range);\n });\n }\n\n active && active.focus();\n };\n};\n\nconst copy = (text: string, options?: Options) => {\n let message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement('span');\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = 'unset';\n // prevents scrolling to the end of the page\n mark.style.position = 'fixed';\n mark.style.top = '0';\n mark.style.clip = 'rect(0, 0, 0, 0)';\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = 'pre';\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = 'text';\n mark.style.userSelect = 'text';\n mark.addEventListener('copy', function (e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n const successful = document.execCommand('copy');\n if (!successful) {\n throw new Error('copy command was unsuccessful');\n }\n success = true;\n } catch (err) {\n try {\n (window as any).clipboardData.setData(options.format || 'text', text);\n options.onCopy && options.onCopy((window as any).clipboardData);\n success = true;\n } catch (err) {\n message = format('message' in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == 'function') {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n};\n\nexport default copy;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdParagraphProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 段落内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 段落内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdParagraphProps['ellipsis'],\n },\n};\n","import { defineComponent, computed, ref } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './paragraph-props';\nimport TTooltip from '../tooltip/index';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nimport type { TypographyEllipsis } from './type';\n\nexport default defineComponent({\n name: 'TEllipsis',\n components: { TTooltip },\n props: {\n ...props,\n },\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const ellipsisState = computed((): TypographyEllipsis => {\n const ellipsis = props.ellipsis;\n return {\n row: 1,\n expandable: false,\n ...(typeof ellipsis === 'object' ? ellipsis : null),\n };\n });\n\n const ellipsisStyles = computed((): any => {\n const ellipsis = ellipsisState.value;\n const def = {\n overflow: props.ellipsis ? 'hidden' : 'visible',\n textOverflow: props.ellipsis ? 'ellipsis' : 'initial',\n whiteSpace: props.ellipsis ? 'normal' : 'nowrap',\n display: '-webkit-box',\n WebkitLineClamp: ellipsis.row,\n WebkitBoxOrient: 'vertical',\n };\n\n if (isExpand.value) {\n def.overflow = 'visible';\n def.whiteSpace = 'normal';\n def.display = 'initial';\n }\n return def;\n });\n const isExpand = ref(false);\n\n const onExpand = () => {\n isExpand.value = true;\n if (typeof props.ellipsis === 'object') props.ellipsis.onExpand?.(true);\n };\n\n const onCollapse = () => {\n isExpand.value = false;\n if (typeof props.ellipsis === 'object') props.ellipsis.onExpand?.(false);\n };\n\n const renderEllipsisExpand = () => {\n const { suffix } = ellipsisState.value;\n\n const moreNode = (\n \n {suffix || globalConfig.value.expandText}\n \n );\n\n const { tooltipProps, expandable, collapsible } = ellipsisState.value;\n if (!isExpand.value && expandable) {\n return tooltipProps && tooltipProps.content ? (\n \n {moreNode}\n \n ) : (\n moreNode\n );\n }\n if (expandable && isExpand.value && collapsible) {\n return (\n \n {globalConfig.value.collapseText}\n \n );\n }\n };\n\n return () => {\n const { tooltipProps } = ellipsisState.value;\n return (\n \n {tooltipProps && }\n

    {content.value}

    \n {renderEllipsisExpand()}\n \n );\n };\n },\n});\n","import { computed, defineComponent, ref } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './text-props';\nimport copy from './utils/copy-to-clipboard';\nimport { CopyIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport Ellipsis from './ellipsis';\nimport TTooltip from '../tooltip';\nimport TButton from '../button';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\n\nimport type { TdTextProps } from './type';\nimport type { TdTooltipProps } from '../tooltip/type';\n\nexport default defineComponent({\n name: 'TTypographyText',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n const isCopied = ref(false);\n const renderContent = useContent();\n\n const wrapperDecorations = (\n { code, underline, delete: del, strong, keyboard, mark, italic }: TdTextProps,\n content: any,\n ) => {\n let currentContent = content;\n\n function wrap(needed: boolean, Tag: string, styles: object = {}) {\n if (!needed) return;\n currentContent = {currentContent};\n }\n\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark !== false, 'mark', mark ? { color: mark } : {});\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n };\n\n const classList = computed(() => {\n const { theme, disabled } = props;\n const prefix = COMPONENT_NAME.value;\n const list: string[] = [prefix];\n if (disabled) {\n list.push(`${prefix}--disabled`);\n } else if (theme && ['primary', 'secondary', 'success', 'warning', 'error'].includes(theme)) {\n list.push(`${prefix}--${theme}`);\n }\n return list;\n });\n\n const tooltipText = computed(() => {\n const { copyable } = props;\n if (isCopied.value) return globalConfig.value.copiedText;\n else if (typeof copyable === 'object') return copyable.tooltipProps?.content;\n return null;\n });\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const renderCopy = () => {\n const { copyable } = props;\n if (!copyable) return;\n\n let icon: any = isCopied.value ? () => : () => ;\n let tooltipConf: TdTooltipProps = {\n theme: 'default',\n };\n\n let onCopy = () => {};\n if (typeof copyable === 'object') {\n if (copyable.suffix && !isCopied.value) {\n icon = copyable.suffix;\n }\n if (copyable.tooltipProps) {\n tooltipConf = copyable.tooltipProps;\n }\n if (typeof copyable.onCopy === 'function') {\n onCopy = copyable.onCopy;\n }\n }\n return (\n \n onCopyClick(e, onCopy)} />\n \n );\n };\n\n const getChildrenText = () => {\n if (typeof content.value === 'string') {\n return content.value;\n } else if (Array.isArray(content.value)) {\n return content.value.map((v) => v.children).join('');\n }\n };\n\n const onCopyClick = (e: MouseEvent, cb: Function) => {\n e.preventDefault();\n e.stopPropagation();\n\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, 1500);\n\n copy(getChildrenText());\n cb?.();\n };\n\n return () => {\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n ) : (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nimport Text from './text';\n\nexport default defineComponent({\n name: 'TTypography',\n\n setup() {\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n return {renderTNodeJSX('default')};\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTitleProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 段落内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 标题内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdTitleProps['ellipsis'],\n },\n /** 标题等级 */\n level: {\n type: String as PropType,\n default: 'h1' as TdTitleProps['level'],\n validator(val: TdTitleProps['level']): boolean {\n if (!val) return true;\n return ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(val);\n },\n },\n};\n","import { defineComponent, h } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './title-props';\nimport Ellipsis from './ellipsis';\nimport { useContent } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TTypographyTitle',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const renderContent = useContent();\n\n return () => {\n const { level: Tag } = props;\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n \n {h(Tag, ...content)}\n \n ) : (\n <>{h(Tag, { class: COMPONENT_NAME.value }, ...content)}\n );\n };\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './paragraph-props';\nimport TTooltip from '../tooltip/index';\nimport Ellipsis from './ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyParagraph',\n components: { TTooltip },\n props: {\n style: {\n type: Object as PropType>,\n default: () => ({}),\n },\n ...props,\n },\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n return () => {\n return props.ellipsis ? (\n \n {content.value}\n \n ) : (\n

    {content.value}

    \n );\n };\n },\n});\n","import _Typography from './typography';\nimport _Text from './text';\nimport _Title from './title';\nimport _Paragraph from './paragraph';\nimport withInstall from '../utils/withInstall';\n\nexport * from './type';\nimport './style';\n\nexport const Typography = withInstall(_Typography);\nexport const Text = withInstall(_Text);\nexport const Title = withInstall(_Title);\nexport const Paragraph = withInstall(_Paragraph);\n\nexport default Typography;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdAlertProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 关闭按钮。值为 true 则显示默认关闭按钮;值为 false 则不显示按钮;值类型为 string 则直接显示;值类型为 Function 则可以自定关闭按钮 */\n close: {\n type: [String, Boolean, Function] as PropType,\n default: false,\n },\n /** 内容,同 message */\n default: {\n type: [String, Function] as PropType,\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 内容显示最大行数,超出的内容会折叠收起,用户点击后再展开。值为 0 表示不折叠 */\n maxLine: {\n type: Number,\n default: 0,\n },\n /** 内容(子元素) */\n message: {\n type: [String, Function] as PropType,\n },\n /** 跟在告警内容后面的操作区 */\n operation: {\n type: Function as PropType,\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'info' as TdAlertProps['theme'],\n validator(val: TdAlertProps['theme']): boolean {\n return ['success', 'info', 'warning', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 关闭按钮点击时触发 */\n onClose: Function as PropType,\n /** 告警提示框关闭动画结束后触发 */\n onClosed: Function as PropType,\n};\n","import { defineComponent, VNode, ref, onMounted, onBeforeUnmount } from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n HelpCircleFilledIcon as TdHelpCircleFilledIcon,\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { on, off, addClass } from '../utils/dom';\nimport props from './props';\nimport { SlotReturnValue } from '../common';\nimport { useIcon } from '../hooks/icon';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\n\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TAlert',\n props,\n setup(props) {\n const { globalConfig, classPrefix } = useConfig('alert');\n const { CheckCircleFilledIcon, CloseIcon, ErrorCircleFilledIcon, HelpCircleFilledIcon, InfoCircleFilledIcon } =\n useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n HelpCircleFilledIcon: TdHelpCircleFilledIcon,\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n });\n const COMPONENT_NAME = usePrefixClass('alert');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderIconTNode = useIcon();\n // alert的dom引用\n const alertRef = ref(null);\n // description的dom引用\n const descriptionRef = ref(null);\n // desc高度\n const descHeight = ref(0);\n // 是否可见,关闭后置为false\n const visible = ref(true);\n // 是否已收起,使用折叠功能时有效,用于表示是否已折叠;默认折叠\n const collapsed = ref(true);\n\n const renderIcon = () => {\n const Component = {\n info: InfoCircleFilledIcon,\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: ErrorCircleFilledIcon,\n question: HelpCircleFilledIcon,\n };\n const iconContent = renderIconTNode('icon', Component);\n return iconContent ?
    {iconContent}
    : null;\n };\n\n const renderClose = () => {\n const { close } = props;\n let closeContent = null;\n if (close === true || close === '') {\n closeContent = ;\n } else if (isString(close)) {\n closeContent = close;\n } else {\n closeContent = renderIconTNode('close');\n }\n return closeContent ? (\n
    \n {closeContent}\n
    \n ) : null;\n };\n\n const renderTitle = () => {\n const titleContent = renderTNodeJSX('title');\n return titleContent ?
    {titleContent}
    : null;\n };\n\n const renderMessage = () => {\n const operationContent = renderTNodeJSX('operation');\n return (\n
    \n {renderDescription()}\n {operationContent ?
    {operationContent}
    : null}\n
    \n );\n };\n\n const renderDescription = () => {\n let messageContent;\n\n messageContent = renderTNodeJSX('default');\n if (!messageContent) {\n messageContent = renderTNodeJSX('message');\n }\n const contentLength = isArray(messageContent) ? (messageContent as Array).length : 1;\n const hasCollapse = props.maxLine > 0 && props.maxLine < contentLength;\n const height = (descriptionRef.value?.children[0] as HTMLElement)?.offsetHeight;\n if (hasCollapse && collapsed.value) {\n // 折叠\n messageContent = (messageContent as Array).slice(0, props.maxLine as number);\n height && (descriptionRef.value.style.height = `${descHeight.value}px`);\n } else if (hasCollapse) {\n // 展开\n height &&\n (descriptionRef.value.style.height = `${height * (contentLength - props.maxLine) + descHeight.value}px`);\n }\n\n // 如果需要折叠,则元素之间补
    ;否则不补\n return (\n
    \n {hasCollapse\n ? (messageContent as Array).map((content) =>
    {content}
    )\n : messageContent}\n {hasCollapse ? (\n {\n collapsed.value = !collapsed.value;\n }}\n >\n {collapsed.value ? globalConfig.value.expandText : globalConfig.value.collapseText}\n
    \n ) : null}\n \n );\n };\n const renderContent = () => {\n return (\n
    \n {renderTitle()}\n {renderMessage()}\n
    \n );\n };\n const handleClose = (e: MouseEvent) => {\n props.onClose?.({ e });\n addClass(alertRef.value, `${COMPONENT_NAME.value}--closing`);\n };\n\n const handleCloseEnd = (e: TransitionEvent) => {\n const isTransitionTarget = e.target === alertRef.value;\n // 防止子元素冒泡触发\n if (e.propertyName === 'opacity' && isTransitionTarget) {\n visible.value = false;\n props.onClosed?.({ e });\n }\n };\n\n onMounted(() => {\n on(alertRef.value, 'transitionend', handleCloseEnd);\n descHeight.value = descriptionRef.value.offsetHeight;\n });\n onBeforeUnmount(() => {\n off(alertRef.value, 'transitionend', handleCloseEnd);\n });\n\n return () => (\n \n {renderIcon()}\n {renderContent()}\n {renderClose()}\n \n );\n },\n});\n","import { isFunction } from 'lodash-es';\nimport { getCurrentInstance, h } from 'vue';\n\n/**\n * 渲染icon,用于icon、close等渲染图标的场景\n * @example const renderIconTNode = useIcon();\n * @returns renderIconTNode\n * @param iconType 要渲染的icon元素\n * @param defaultIcons 默认icon集合\n */\nexport function useIcon() {\n const instance = getCurrentInstance();\n return function renderIconTNode(iconType: string, defaultIcons?: Record) {\n let iconContent;\n // 传入的是渲染函数\n if (isFunction(instance.props[iconType])) {\n iconContent = instance.props[iconType](h);\n } else if (instance.slots[iconType]) {\n // 插槽slot\n iconContent = instance.slots[iconType] && instance.slots[iconType](null)[0];\n } else if (defaultIcons) {\n const Component = defaultIcons[instance.props.theme as string];\n iconContent = ;\n }\n return iconContent;\n };\n}\n","import _Alert from './alert';\nimport withInstall from '../utils/withInstall';\nimport { TdAlertProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type AlertProps = TdAlertProps;\n\nexport const Alert = withInstall(_Alert);\nexport default Alert;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDrawerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 抽屉挂载的节点,默认挂在组件本身的位置。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 抽屉内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n },\n /** 按下 ESC 时是否触发抽屉关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: undefined,\n },\n /** 点击蒙层时是否触发抽屉关闭事件 */\n closeOnOverlayClick: {\n type: Boolean,\n default: undefined,\n },\n /** 确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 抽屉内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 抽屉关闭时是否销毁节点 */\n destroyOnClose: Boolean,\n /** 抽屉元素类名。 */\n drawerClassName: {\n type: String,\n default: '',\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 或 null 不显示任何内容,值类型为 TNode 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDrawerProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示头部,值类型为 string 则直接显示值,值类型为 TNode 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDrawerProps['header'],\n },\n /** 展开方式,有两种:直接展示在内容上方 和 推开内容区域 */\n mode: {\n type: String as PropType,\n default: 'overlay' as TdDrawerProps['mode'],\n validator(val: TdDrawerProps['mode']): boolean {\n if (!val) return true;\n return ['overlay', 'push'].includes(val);\n },\n },\n /** 抽屉方向 */\n placement: {\n type: String as PropType,\n default: 'right' as TdDrawerProps['placement'],\n validator(val: TdDrawerProps['placement']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,支持 'small', 'medium', 'large','35px', '30%', '3em' 等。纵向抽屉调整的是抽屉宽度,横向抽屉调整的是抽屉高度 */\n size: {\n type: String,\n default: undefined,\n },\n /** 抽屉大小可拖拽调整,横向抽屉调整宽度,纵向抽屉调整高度。`sizeDraggable.max` 和 `sizeDraggable.min` 用于控制拖拽尺寸大小限制 */\n sizeDraggable: {\n type: [Boolean, Object] as PropType,\n default: false as TdDrawerProps['sizeDraggable'],\n },\n /** 组件是否可见 */\n visible: Boolean,\n /** 抽屉层级,样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 抽屉执行关闭动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 抽屉执行打开动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,取消按钮点击时、关闭按钮点击时、ESC 按下时、点击蒙层时均会触发 */\n onClose: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发该事件,同时触发关闭事件 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 键时触发 */\n onEscKeydown: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n /** 抽屉大小拖拽结束时触发,事件参数 `size` 在横向抽屉中表示宽度,在纵向抽屉中表示高度 */\n onSizeDragEnd: Function as PropType,\n};\n","type Placement = 'left' | 'right' | 'top' | 'bottom';\n\ninterface SizeDragLimit {\n max: number;\n min: number;\n}\n\nexport function getSizeDraggable(\n sizeDraggable: boolean | SizeDragLimit,\n limit: { max: number; min: number }\n) {\n if (typeof sizeDraggable === 'boolean') {\n return {\n allowSizeDraggable: sizeDraggable,\n max: limit.max,\n min: limit.min,\n };\n }\n\n return {\n allowSizeDraggable: true,\n max: sizeDraggable.max,\n min: sizeDraggable.min,\n };\n}\n\ntype IOptions = {\n x: number;\n y: number;\n maxWidth: number;\n maxHeight: number;\n min: number;\n max: number;\n};\n\n// > min && < max\nfunction calcSizeRange(size: number, min: number, max: number) {\n return Math.min(Math.max(size, min), max);\n}\n\nexport function calcMoveSize(placement: Placement, opts: IOptions) {\n const { x, y, max, min, maxWidth, maxHeight } = opts;\n let moveSize: number | undefined;\n switch (placement) {\n case 'right':\n // |<--- x --->| |\n // | maxWidth |\n // | size | > min && < max\n moveSize = calcSizeRange(maxWidth - x, min, max);\n break;\n case 'left':\n // |<-- x -->| |\n // x > min && < max\n moveSize = calcSizeRange(x, min, max);\n break;\n case 'top':\n // - - - - - - - -\n // | y |\n // | |\n // - - - - - - - -\n // > min && < max\n // moveSize = Math.min(Math.max(y, min), max);\n moveSize = calcSizeRange(y, min, max);\n break;\n case 'bottom':\n // - - - - - - - -\n // | y |\n // | | maxHeight\n // - - - - - - - -\n // | size |\n // > min && < max\n moveSize = calcSizeRange(maxHeight - y, min, max);\n break;\n default:\n // 参数缺失直接返回\n return moveSize;\n }\n return moveSize;\n}\n","import { computed, ref } from 'vue';\nimport { Styles } from '../../common';\nimport { getSizeDraggable, calcMoveSize } from '@tdesign/common-js/drawer/utils';\nimport type { TdDrawerProps } from '../type';\n\nexport const useDrag = (props: TdDrawerProps) => {\n // 以下为拖拽改变抽屉大小相关 可以抽成hooks\n const isSizeDragging = ref(false);\n const draggedSizeValue = ref(null);\n\n const enableDrag = (e: MouseEvent) => {\n e.stopPropagation(); // 阻止事件冒泡\n // mousedown绑定mousemove和mouseup事件\n document.addEventListener('mouseup', handleMouseup, true);\n document.addEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = true;\n };\n\n const handleMouseup = () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n document.removeEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = false;\n };\n\n const handleMousemove = (e: MouseEvent) => {\n // 鼠标移动时计算draggedSizeValue的值\n const { x, y } = e;\n const maxHeight = document.documentElement.clientHeight;\n const maxWidth = document.documentElement.clientWidth;\n const offsetHeight = 8;\n const offsetWidth = 8;\n // x 轴方向使用最大宽度,y轴方向使用最大高度\n const max = props.placement === 'left' || props.placement === 'right' ? maxWidth : maxHeight;\n // x 轴方向使用默认最小宽度,y轴方向使用默认最小高度\n const min = props.placement === 'left' || props.placement === 'right' ? offsetWidth : offsetHeight;\n const { allowSizeDraggable, max: limitMax, min: limitMin } = getSizeDraggable(props.sizeDraggable, { max, min });\n\n // 不支持拖拽就直接返回\n if (!allowSizeDraggable || !isSizeDragging.value) return;\n\n const moveSize = calcMoveSize(props.placement, {\n x,\n y,\n maxWidth,\n maxHeight,\n max: limitMax,\n min: limitMin,\n });\n\n if (typeof moveSize === 'undefined') return;\n\n draggedSizeValue.value = `${moveSize}px`;\n props.onSizeDragEnd?.({\n e,\n size: moveSize,\n });\n };\n\n const draggableLineStyles = computed(() => {\n // 设置拖拽control的样式\n const isHorizontal = ['right', 'left'].includes(props.placement);\n const oppositeMap = {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top',\n };\n return {\n zIndex: 1,\n position: 'absolute',\n background: 'transparent',\n [oppositeMap[props.placement]]: 0,\n width: isHorizontal ? '16px' : '100%',\n height: isHorizontal ? '100%' : '16px',\n cursor: isHorizontal ? 'col-resize' : 'row-resize',\n } as Styles;\n });\n\n const draggingStyles = computed(() => (isSizeDragging.value ? { userSelect: 'none' } : {}));\n\n return {\n draggedSizeValue,\n enableDrag,\n draggableLineStyles,\n draggingStyles,\n };\n};\n","import { onBeforeUnmount, onMounted, computed, defineComponent, nextTick, onUpdated, ref, watch, Teleport } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { isServer } from '../utils/dom';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport props from './props';\nimport { DrawerCloseContext } from './type';\nimport { useAction } from '../dialog/hooks';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { useDrag } from './hooks';\nimport type { TdDrawerProps } from './type';\nimport useTeleport from '../hooks/useTeleport';\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDrawer',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const destroyOnCloseVisible = ref(false);\n const isVisible = ref(false);\n const styleEl = ref();\n const styleTimer = ref();\n const { globalConfig } = useConfig('drawer');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const COMPONENT_NAME = usePrefixClass('drawer');\n const { draggedSizeValue, enableDrag, draggableLineStyles, draggingStyles } = useDrag(props as TdDrawerProps);\n\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n };\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n closeDrawer({ trigger: 'cancel', e });\n };\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n const drawerEle = ref(null);\n const drawerClasses = computed(() => {\n return [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.placement}`,\n {\n [`${COMPONENT_NAME.value}--open`]: isVisible.value,\n [`${COMPONENT_NAME.value}--attach`]: props.showInAttachedElement,\n [`${COMPONENT_NAME.value}--without-mask`]: !props.showOverlay,\n },\n props?.drawerClassName,\n ];\n });\n\n const sizeValue = computed(() => {\n if (draggedSizeValue.value) return draggedSizeValue.value;\n\n const size = props.size ?? globalConfig.value.size;\n const defaultSize = isNaN(Number(size)) ? size : `${size}px`;\n return (\n {\n small: '300px',\n medium: '500px',\n large: '760px',\n }[size] || defaultSize\n );\n });\n const wrapperStyles = computed(() => {\n return {\n // 用于抵消动画效果:transform: translateX(100%); 等\n transform: isVisible.value ? 'translateX(0)' : undefined,\n width: ['left', 'right'].includes(props.placement) ? sizeValue.value : '',\n height: ['top', 'bottom'].includes(props.placement) ? sizeValue.value : '',\n };\n });\n\n const wrapperClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content-wrapper`,\n `${COMPONENT_NAME.value}__content-wrapper--${props.placement}`,\n ];\n });\n\n const parentNode = computed(() => {\n return drawerEle.value && (drawerEle.value.parentNode as HTMLElement);\n });\n\n const modeAndPlacement = computed(() => {\n return [props.mode, props.placement].join();\n });\n\n const footerStyle = computed(() => {\n return {\n display: 'flex',\n justifyContent: props.placement === 'right' ? 'flex-start' : 'flex-end',\n };\n });\n\n const handleEscKeydown = (e: KeyboardEvent) => {\n if ((props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) && e.key === 'Escape' && isVisible.value) {\n props.onEscKeydown?.({ e });\n closeDrawer({ trigger: 'esc', e });\n }\n };\n\n const clearStyleFunc = () => {\n clearTimeout(styleTimer.value);\n styleTimer.value = setTimeout(() => {\n styleEl.value?.parentNode?.removeChild?.(styleEl.value);\n }, 150);\n };\n\n const handlePushMode = () => {\n if (props.mode !== 'push') return;\n nextTick(() => {\n if (!parentNode.value) return;\n parentNode.value.style.cssText = 'transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;';\n });\n };\n // push 动画效果处理\n const updatePushMode = () => {\n if (!parentNode.value) return;\n if (props.mode !== 'push' || !parentNode.value) return;\n const marginStr = {\n left: `margin: 0 0 0 ${sizeValue.value}`,\n right: `margin: 0 0 0 -${sizeValue.value}`,\n top: `margin: ${sizeValue.value} 0 0 0`,\n bottom: `margin: -${sizeValue.value} 0 0 0`,\n }[props.placement];\n if (isVisible.value) {\n parentNode.value.style.cssText += marginStr;\n } else {\n parentNode.value.style.cssText = parentNode.value.style.cssText.replace(/margin:.+;/, '');\n }\n };\n\n // locale 全局配置,插槽,props,默认值,决定了按钮最终呈现\n const getDefaultFooter = () => {\n // this.getConfirmBtn is a function of useAction\n const confirmBtn = getConfirmBtn({\n confirmBtn: props.confirmBtn as TdDrawerProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n className: `${COMPONENT_NAME.value}__confirm`,\n });\n // this.getCancelBtn is a function of useAction\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDrawerProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n });\n return (\n
    \n {props.placement === 'right' ? confirmBtn : null}\n {cancelBtn}\n {props.placement !== 'right' ? confirmBtn : null}\n
    \n );\n };\n watch(\n modeAndPlacement,\n () => {\n handlePushMode();\n },\n { immediate: true },\n );\n watch(\n () => props.visible,\n (value) => {\n if (isServer) return;\n if (value) {\n if (!props.showInAttachedElement && props.preventScrollThrough) {\n styleEl.value && document.head.appendChild(styleEl.value);\n }\n } else {\n clearStyleFunc();\n }\n\n // 打开前动画或关闭前动画\n value ? props.onBeforeOpen?.() : props.onBeforeClose?.();\n\n // 处理显示逻辑\n if (props.destroyOnClose) {\n if (value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => {\n isVisible.value = true;\n });\n } else {\n isVisible.value = false;\n setTimeout(() => {\n destroyOnCloseVisible.value = true;\n }, 200);\n }\n } else if (destroyOnCloseVisible.value === true && value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => {\n isVisible.value = true;\n });\n } else {\n setTimeout(() => {\n isVisible.value = value;\n });\n }\n },\n { immediate: true },\n );\n const handleCloseBtnClick = (e: MouseEvent) => {\n props.onCloseBtnClick?.({ e });\n closeDrawer({ trigger: 'close-btn', e });\n };\n const handleWrapperClick = (e: MouseEvent) => {\n props.onOverlayClick?.({ e });\n if (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick) {\n closeDrawer({ trigger: 'overlay', e });\n }\n };\n\n const closeDrawer = (params: DrawerCloseContext) => {\n props.onClose?.(params);\n context.emit('update:visible', false);\n };\n\n onUpdated(() => {\n updatePushMode();\n });\n\n onMounted(() => {\n const hasScrollBar = window.innerWidth > document.documentElement.clientWidth;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_drawer_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ${props.mode === 'push' ? '' : `width: calc(100% - ${scrollWidth}px);`}\n }\n `;\n\n if (isVisible.value && !props.showInAttachedElement && props.preventScrollThrough) {\n document.head.appendChild(styleEl.value);\n }\n\n window.addEventListener('keydown', handleEscKeydown);\n });\n\n onBeforeUnmount(() => {\n clearStyleFunc();\n window.removeEventListener('keydown', handleEscKeydown);\n });\n\n return () => {\n if (destroyOnCloseVisible.value) return;\n const body = renderContent('body', 'default');\n const headerContent = renderTNodeJSX('header');\n const defaultFooter = getDefaultFooter();\n\n return (\n \n \n {props.showOverlay &&
    }\n
    \n {headerContent &&
    {headerContent}
    }\n {props.closeBtn && (\n
    \n {renderTNodeJSX('closeBtn', )}\n
    \n )}\n
    {body}
    \n {props.footer && (\n
    {renderTNodeJSX('footer', defaultFooter)}
    \n )}\n {props.sizeDraggable &&
    }\n
    \n
    \n
    \n );\n };\n },\n});\n","import { App, createApp, ref, Plugin, defineComponent, h, onMounted, nextTick } from 'vue';\nimport DrawerComponent from './drawer';\nimport { getAttach } from '../utils/dom';\nimport { DrawerOptions, DrawerMethod, DrawerInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDrawer: DrawerMethod = (props: DrawerOptions) => {\n const options = { ...props };\n const wrapper = document.createElement('div');\n const visible = ref(false);\n const { style } = options;\n\n const updateStyle = (style: DrawerOptions['style']) => {\n if (style) {\n (wrapper.firstElementChild as HTMLElement).style.cssText += style;\n }\n };\n\n const component = defineComponent({\n setup(props, { expose }) {\n const drawerOptions = ref>(options);\n onMounted(() => {\n visible.value = true;\n (document.activeElement as HTMLElement).blur();\n nextTick(() => {\n updateStyle(style);\n });\n });\n const update = (newOptions: DrawerOptions) => {\n drawerOptions.value = {\n ...options,\n ...newOptions,\n };\n };\n\n expose({\n update,\n });\n\n return () => {\n const onClose =\n options.onClose ||\n function () {\n visible.value = false;\n };\n delete options.style;\n return h(DrawerComponent, {\n onClose,\n visible: visible.value,\n drawerClassName: drawerOptions.value?.className,\n ...drawerOptions.value,\n });\n };\n },\n });\n const drawerComponent = createApp(component);\n const drawer = drawerComponent.mount(wrapper);\n\n const destroyDrawer = () => {\n visible.value = false;\n setTimeout(() => {\n drawerComponent.unmount();\n wrapper.remove();\n }, 300);\n };\n\n const container = getAttach(options.attach);\n if (container) {\n container.appendChild(wrapper);\n } else {\n console.error('attach is not exist');\n }\n\n const drawerNode: DrawerInstance = {\n show: () => {\n visible.value = true;\n },\n hide: () => {\n visible.value = false;\n },\n update: (newOptions: DrawerOptions) => {\n // className & style由updateClassNameStyle来处理\n drawer.update(omit(newOptions, ['style']));\n updateStyle(newOptions.style);\n },\n destroy: () => {\n destroyDrawer();\n },\n };\n return drawerNode;\n};\n\nexport type DrawerPluginType = Plugin & DrawerMethod;\n\nexport const DrawerPlugin = createDrawer as DrawerPluginType;\n\nDrawerPlugin.install = (app: App): void => {\n app.config.globalProperties.$drawer = createDrawer;\n};\n\nexport default DrawerPlugin;\n","import _Drawer from './drawer';\nimport withInstall from '../utils/withInstall';\nimport { TdDrawerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DrawerProps = TdDrawerProps;\n\nexport const Drawer = withInstall(_Drawer);\nexport { default as DrawerPlugin } from './plugin';\nexport default Drawer;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdGuideProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于自定义渲染计数部分 */\n counter: {\n type: Function as PropType,\n },\n /** 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景,非受控属性 */\n defaultCurrent: {\n type: Number,\n },\n /** 透传 完成 的全部属性,示例:`{ content: '完成', theme: 'primary' }` */\n finishButtonProps: {\n type: Object as PropType,\n },\n /** 是否隐藏计数 */\n hideCounter: Boolean,\n /** 是否隐藏上一步按钮 */\n hidePrev: Boolean,\n /** 是否隐藏跳过按钮 */\n hideSkip: Boolean,\n /** 高亮框的内边距 */\n highlightPadding: {\n type: Number,\n default: 8,\n },\n /** 引导框的类型 */\n mode: {\n type: String as PropType,\n default: 'popup' as TdGuideProps['mode'],\n validator(val: TdGuideProps['mode']): boolean {\n if (!val) return true;\n return ['popup', 'dialog'].includes(val);\n },\n },\n /** 透传 下一步按钮 的全部属性,示例:{ content: '下一步', theme: 'primary' } */\n nextButtonProps: {\n type: Object as PropType,\n },\n /** 透传 上一步按钮 的全部属性,示例:{ content: '上一步', theme: 'default' } */\n prevButtonProps: {\n type: Object as PropType,\n },\n /** 是否出现遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 透传 跳过按钮 的全部属性,{ content: '跳过', theme: 'default' } */\n skipButtonProps: {\n type: Object as PropType,\n },\n /** 用于定义每个步骤的内容,包括高亮的节点、相对位置和具体的文案内容等。 */\n steps: {\n type: Array as PropType,\n },\n /** 提示框的层级 */\n zIndex: {\n type: Number,\n default: 999999,\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n /** 点击完成按钮时触发 */\n onFinish: Function as PropType,\n /** 点击下一步时触发 */\n onNextStepClick: Function as PropType,\n /** 点击上一步时触发 */\n onPrevStepClick: Function as PropType,\n /** 点击跳过按钮时触发 */\n onSkip: Function as PropType,\n};\n","import { elementInViewport } from '../../utils/dom';\n\nexport function getScrollParent(element: HTMLElement) {\n let style = window.getComputedStyle(element);\n const excludeStaticParent = style.position === 'absolute';\n const overflowRegex = /(auto|scroll)/;\n\n if (style.position === 'fixed') return document.body;\n\n for (let parent = element; parent.parentElement; ) {\n parent = parent.parentElement;\n style = window.getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n }\n\n return document.body;\n}\n\nexport function scrollToParentVisibleArea(element: HTMLElement) {\n const parent = getScrollParent(element);\n if (parent === document.body) return;\n // !todo 逻辑待验证\n if (elementInViewport(element, parent)) return;\n parent.scrollTop = element.offsetTop - parent.offsetTop;\n}\n","import { getWindowSize, elementInViewport, scrollTo } from '../../utils/dom';\n\nexport function scrollToElm(elm: HTMLElement) {\n const rect = elm.getBoundingClientRect();\n\n if (!elementInViewport(elm)) {\n const winHeight = getWindowSize().height;\n // const top = rect.bottom - (rect.bottom - rect.top);\n scrollTo(rect.top - (winHeight / 2 - rect.height / 2), {});\n\n // todo 先暂时保留这里的逻辑\n // if (top < 0 || element.clientHeight > winHeight) {\n // window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2));\n // } else {\n // window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2));\n // }\n }\n}\n","import { defineComponent, computed, nextTick, onMounted, ref, toRefs, watch, h, Teleport } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { GuideCrossProps } from './types';\nimport { TdGuideProps, GuideStep } from './type';\nimport { scrollToParentVisibleArea, getRelativePosition, getTargetElm, scrollToElm } from './utils';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { addClass, removeClass, isFixed, getWindowScroll } from '../utils/dom';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport Button from '../button';\nimport Popup, { PopupProps } from '../popup';\n\nexport default defineComponent({\n name: 'TGuide',\n props,\n setup(props: TdGuideProps, context) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('guide');\n const LOCK_CLASS = usePrefixClass('guide--lock');\n const { globalConfig } = useConfig('guide');\n\n const { current, modelValue, hideCounter, hidePrev, hideSkip, steps, zIndex } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n // 覆盖层,用于覆盖所有元素\n const overlayLayerRef = ref();\n // 高亮层,用于高亮元素\n const highlightLayerRef = ref();\n // 提示层,用于高亮元素\n const referenceLayerRef = ref();\n // 当前高亮的元素\n const currentHighlightLayerElm = ref();\n // dialog wrapper ref\n const dialogWrapperRef = ref();\n // dialog ref\n const dialogTooltipRef = ref();\n // ! popup ref 不确定这里的类型是否完全正确\n const popupTooltipRef = ref>();\n // 是否开始展示\n const actived = ref(false);\n // 步骤总数\n const stepsTotal = computed(() => steps.value.length);\n // 当前步骤的信息\n const currentStepInfo = computed(() => steps.value[innerCurrent.value]);\n // 当前是否为 popup\n const isPopup = computed(() => getCurrentCrossProps('mode') === 'popup');\n // 当前元素位置状态\n const currentElmIsFixed = computed(() => isFixed(currentHighlightLayerElm.value || document.body));\n // 获取当前步骤的属性值 用户当前步骤设置 > 用户组件设置的\n const getCurrentCrossProps = (propsName: Key) =>\n currentStepInfo.value[propsName] ?? props[propsName];\n // 获取当前步骤的用户设定的高亮内容\n const currentCustomHighlightContent = computed(() => {\n const { highlightContent } = currentStepInfo.value;\n\n let node: any = highlightContent;\n if (isFunction(highlightContent)) {\n // 支持函数\n node = highlightContent(hWithParams());\n } else if (context.slots.highlightContent) {\n // 支持插槽\n node = context.slots.highlightContent(hWithParams());\n } else if (context.slots['highlight-content']) {\n // 支持插槽\n node = context.slots['highlight-content'](hWithParams());\n } else if (!!highlightContent) {\n // 支持组件\n node = ;\n }\n\n // 给自定义元素添加类名\n if (node) {\n if (!node.props) node.props = {};\n node.props.class = node.props.class || '';\n }\n return node;\n });\n\n // 是否展示高亮区域\n const showCustomHighlightContent = computed(() => Boolean(currentCustomHighlightContent.value && isPopup.value));\n //\n const popupVisible = ref(false);\n const hWithParams = (params: Record = { currentStepInfo: currentStepInfo.value }) => {\n const newH = new Function('return ' + h.toString())();\n return Object.assign({}, newH, params);\n };\n\n // 设置高亮层的位置\n const setHighlightLayerPosition = (highlightLayer: HTMLElement, isReference = false) => {\n // 这里预留了一个相对元素的功能,暂未使用,也是这里导致了 fix #2111\n let { top, left } = getRelativePosition(currentHighlightLayerElm.value);\n let { width, height } = currentHighlightLayerElm.value.getBoundingClientRect();\n const highlightPadding = getCurrentCrossProps('highlightPadding');\n\n if (isPopup.value) {\n width += highlightPadding * 2;\n height += highlightPadding * 2;\n top -= highlightPadding;\n left -= highlightPadding;\n } else {\n const { scrollTop, scrollLeft } = getWindowScroll();\n top += scrollTop;\n left += scrollLeft;\n }\n\n const style = {\n top: `${top}px`,\n left: `${left}px`,\n };\n\n // 展示自定义高亮\n if (showCustomHighlightContent.value) {\n // 高亮框本身不设定宽高,引用用框的宽高设定为用户自定义的宽高\n if (isReference) {\n const { width, height } = highlightLayerRef.value.getBoundingClientRect();\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n } else {\n Object.assign(style, {\n width: 'auto',\n height: 'auto',\n });\n }\n } else {\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n }\n setStyle(highlightLayer, style);\n };\n\n const showPopupGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = getTargetElm(currentStepInfo.value.element);\n if (!currentHighlightLayerElm.value) return;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n setHighlightLayerPosition(referenceLayerRef.value, true);\n scrollToElm(currentHighlightLayerElm.value);\n // fix: https://github.com/Tencent/tdesign-vue-next/issues/2536\n // 这里其实是一个临时解决方案,最合理的是 popup 内部处理\n popupTooltipRef.value?.update();\n });\n };\n\n const destroyTooltipElm = () => {\n referenceLayerRef.value?.parentNode.removeChild(referenceLayerRef.value);\n };\n\n const showDialogGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = dialogTooltipRef.value;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n scrollToElm(currentHighlightLayerElm.value);\n });\n };\n\n const destroyDialogTooltipElm = () => {\n dialogTooltipRef.value?.parentNode.removeChild(dialogTooltipRef.value);\n dialogWrapperRef.value?.parentNode.removeChild(dialogWrapperRef.value);\n };\n\n const showGuide = () => {\n if (isPopup.value) {\n destroyDialogTooltipElm();\n showPopupGuide();\n } else {\n destroyTooltipElm();\n showDialogGuide();\n }\n popupVisible.value = true;\n };\n\n const destroyGuide = () => {\n destroyTooltipElm();\n destroyDialogTooltipElm();\n highlightLayerRef.value?.parentNode.removeChild(highlightLayerRef.value);\n overlayLayerRef.value?.parentNode.removeChild(overlayLayerRef.value);\n removeClass(document.body, LOCK_CLASS.value);\n };\n\n const handleSkip = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onSkip?.({ e, current: innerCurrent.value, total });\n };\n\n const handlePrev = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value - 1, { e, total });\n props.onPrevStepClick?.({\n e,\n prev: innerCurrent.value - 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleNext = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value + 1, { e, total });\n props.onNextStepClick?.({\n e,\n next: innerCurrent.value + 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleFinish = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onFinish?.({ e, current: innerCurrent.value, total });\n };\n\n const initGuide = () => {\n if (innerCurrent.value >= 0 && innerCurrent.value < steps.value.length) {\n if (!actived.value) {\n actived.value = true;\n addClass(document.body, LOCK_CLASS.value);\n }\n showGuide();\n }\n };\n\n watch(innerCurrent, (val) => {\n if (val >= 0 && val < steps.value.length) {\n popupVisible.value = false;\n initGuide();\n } else {\n actived.value = false;\n destroyGuide();\n }\n });\n\n onMounted(() => {\n initGuide();\n });\n\n return () => {\n const renderOverlayLayer = () => (\n
    \n );\n\n const renderHighlightLayer = () => {\n const style = { zIndex: zIndex.value - 1 };\n const highlightClass = [\n `${COMPONENT_NAME.value}__highlight`,\n `${COMPONENT_NAME.value}__highlight--${isPopup.value ? 'popup' : 'dialog'}`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value && isPopup.value ? 'fixed' : 'absolute'}`,\n ];\n const showOverlay = getCurrentCrossProps('showOverlay');\n const maskClass = [`${COMPONENT_NAME.value}__highlight--${showOverlay ? 'mask' : 'nomask'}`];\n\n return (\n
    \n {showCustomHighlightContent.value && currentCustomHighlightContent.value}\n
    \n );\n };\n\n const renderCounter = () => {\n const popupSlotCounter = renderTNodeJSX('counter', {\n params: { total: stepsTotal.value, current: innerCurrent.value },\n });\n\n const popupDefaultCounter = (\n
    \n {popupSlotCounter || `${innerCurrent.value + 1}/${stepsTotal.value}`}\n
    \n );\n return <>{!hideCounter.value && popupDefaultCounter};\n };\n\n const renderAction = (mode: TdGuideProps['mode']) => {\n const isLast = innerCurrent.value === stepsTotal.value - 1;\n const isFirst = innerCurrent.value === 0;\n const buttonSize = mode === 'popup' ? 'small' : 'medium';\n\n return (\n
    \n {!hideSkip.value && !isLast && (\n \n )}\n {!hidePrev.value && !isFirst && (\n \n )}\n {!isLast && (\n \n )}\n {isLast && (\n \n )}\n
    \n );\n };\n\n const renderTitle = () => {\n const functionTitle = isFunction(currentStepInfo.value.title) ? currentStepInfo.value.title() : undefined;\n const slotTitle = context.slots.title ? context.slots.title(hWithParams()) : undefined;\n return functionTitle || slotTitle || currentStepInfo.value.title;\n };\n\n const renderTooltipBody = () => {\n const title =
    {renderTitle()}
    ;\n const bodyRender = currentStepInfo.value.body;\n\n let descBody: any;\n if (isFunction(bodyRender)) {\n descBody = bodyRender(hWithParams());\n } else if (context.slots.body) {\n descBody = context.slots.body({ currentStepInfo: currentStepInfo.value });\n } else if (typeof bodyRender === 'string') {\n descBody = bodyRender;\n } else {\n descBody = ;\n }\n const desc =
    {descBody}
    ;\n\n return (\n <>\n {title}\n {desc}\n \n );\n };\n\n const renderPopupContent = () => {\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n const action = (\n
    \n {renderCounter()}\n {renderAction('popup')}\n
    \n );\n\n return (\n
    \n {renderTooltipBody()}\n {action}\n
    \n );\n };\n\n const renderPopupGuide = () => {\n const { content } = currentStepInfo.value;\n const contentProps = {\n handlePrev,\n handleNext,\n handleSkip,\n handleFinish,\n current: innerCurrent.value,\n total: stepsTotal.value,\n };\n let renderBody;\n if (isFunction(content)) {\n renderBody = () => content(hWithParams(contentProps));\n } else if (context.slots.content) {\n renderBody = () => context.slots.content(hWithParams(contentProps));\n } else if (content) {\n renderBody = () => ;\n } else {\n renderBody = renderPopupContent;\n }\n const classes = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value ? 'fixed' : 'absolute'}`,\n ];\n\n const innerClassName: PopupProps['overlayInnerClassName'] = [\n {\n [`${COMPONENT_NAME.value}__popup--content`]: !!content,\n },\n ];\n\n return (\n \n
    \n \n );\n };\n\n const renderDialogGuide = () => {\n const style = { zIndex: zIndex.value };\n const wrapperClasses = [\n `${COMPONENT_NAME.value}__wrapper`,\n { [`${COMPONENT_NAME.value}__wrapper--center`]: currentStepInfo.value.placement === 'center' },\n ];\n const dialogClasses = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--absolute`,\n `${COMPONENT_NAME.value}__dialog`,\n {\n [`${COMPONENT_NAME.value}__dialog--nomask`]: !getCurrentCrossProps('showOverlay'),\n [currentStepInfo.value.stepOverlayClass]: !!currentStepInfo.value.stepOverlayClass,\n },\n ];\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n return (\n <>\n
    \n
    \n {renderTooltipBody()}\n
    \n {renderCounter()}\n {renderAction('dialog')}\n
    \n
    \n
    \n \n );\n };\n\n const renderGuide = () => {\n return (\n <>\n \n {renderOverlayLayer()}\n {renderHighlightLayer()}\n {isPopup.value ? renderPopupGuide() : renderDialogGuide()}\n \n \n );\n };\n\n return <>{actived.value && renderGuide()};\n };\n },\n});\n","import { getElmCssPropValue, isFixed, getWindowScroll } from '../../utils/dom';\n\n/**\n * 获取元素相对于另一个元素的位置(或者说相对于 body)\n * 感谢 `meouw`: http://stackoverflow.com/a/442474/375966\n */\nexport function getRelativePosition(elm: HTMLElement, relativeElm: HTMLElement = document.body) {\n const { scrollTop, scrollLeft } = getWindowScroll();\n const { top: elmTop, left: elmLeft } = elm.getBoundingClientRect();\n const { top: relElmTop, left: relElmLeft } = relativeElm.getBoundingClientRect();\n const relativeElmPosition = getElmCssPropValue(relativeElm, 'position');\n\n if (\n (relativeElm.tagName.toLowerCase() !== 'body' && relativeElmPosition === 'relative') ||\n relativeElmPosition === 'sticky'\n ) {\n return {\n top: elmTop - relElmTop,\n left: elmLeft - relElmLeft,\n };\n }\n\n if (isFixed(elm)) {\n return {\n top: elmTop,\n left: elmLeft,\n };\n }\n\n return {\n top: elmTop + scrollTop,\n left: elmLeft + scrollLeft,\n };\n}\n","import { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { AttachNode } from '../../common';\n\nexport function getTargetElm(elm: AttachNode): HTMLElement {\n if (elm) {\n let targetElement: HTMLElement = null;\n if (isString(elm)) {\n targetElement = document.querySelector(elm);\n } else if (isFunction(elm)) {\n targetElement = elm() as HTMLElement;\n } else {\n throw new Error('elm should be string or function');\n }\n if (targetElement) {\n return targetElement as HTMLElement;\n }\n if (process?.env?.NODE_ENV !== 'test') {\n throw new Error('There is no element with given.');\n }\n } else {\n return document.body;\n }\n}\n","import _Guide from './guide';\nimport withInstall from '../utils/withInstall';\nimport { TdGuideProps, GuideStep } from './type';\n\nimport './style';\n\n/**\n * TdGuideStepProps is going to be deprecated, use GuideStep instead\n * @deprecated\n */\nexport type TdGuideStepProps = GuideStep;\n\nexport * from './type';\nexport type GuideProps = TdGuideProps;\n\nexport const Guide = withInstall(_Guide);\n\nexport default Guide;\n","import _Message from './message';\nimport withInstall from '../utils/withInstall';\nimport { TdMessageProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\nexport type MessageProps = TdMessageProps;\n\nexport const Message = withInstall(_Message);\nexport { default as MessagePlugin } from './plugin';\nexport default Message;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdNotificationProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: undefined,\n },\n /** 自定义内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 自定义内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 消息显示时长,单位:毫秒。值为 0 表示永久显示 */\n duration: {\n type: Number,\n default: 3000,\n },\n /** 用于自定义底部内容 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 用于自定义消息通知前面的图标,优先级大于 theme 设定的图标。值为 false 则不显示图标,值为 true 显示 theme 设定图标 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 消息类型 */\n theme: {\n type: String as PropType,\n default: 'info' as TdNotificationProps['theme'],\n validator(val: TdNotificationProps['theme']): boolean {\n if (!val) return true;\n return ['info', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 点击关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 计时结束时触发 */\n onDurationEnd: Function as PropType,\n};\n","export const DEFAULT_Z_INDEX = 6000;\nexport const DISTANCE = '16px';\n\nexport const PLACEMENT_OFFSET = {\n 'top-left': {\n left: DISTANCE,\n top: DISTANCE,\n },\n 'top-right': {\n right: DISTANCE,\n top: DISTANCE,\n },\n 'bottom-right': {\n right: DISTANCE,\n bottom: DISTANCE,\n },\n 'bottom-left': {\n left: DISTANCE,\n bottom: DISTANCE,\n },\n};\n\nexport const PLACEMENT_LIST = Object.keys(PLACEMENT_OFFSET);\n","import { PLACEMENT_LIST } from '../consts';\n\ninterface Keyframe {\n composite?: CompositeOperationOrAuto;\n easing?: string;\n offset?: number | null;\n [property: string]: string | number | null | undefined;\n}\ntype CompositeOperationOrAuto = 'accumulate' | 'add' | 'auto' | 'replace';\n\nconst ANIMATION_OPTION = {\n duration: 200,\n easing: 'linear',\n};\n\nconst getFadeInKeyframes = (placement: string, offsetWidth: Number, offsetHeight: Number): Array | null => {\n if (!PLACEMENT_LIST.includes(placement)) return null;\n if (placement === 'top-right') {\n return [\n { opacity: 0, transform: `translateX(${offsetWidth}px)` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n if (placement === 'bottom-right') {\n return [\n { opacity: 0, transform: `translateX(${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n if (placement === 'top-left') {\n return [\n { opacity: 0, transform: `translateX(-${offsetWidth}px)` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n if (placement === 'bottom-left') {\n return [\n { opacity: 0, transform: `translateX(-${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n};\n\nconst getFadeOutKeyframes = (placement: string, offsetWidth: Number, offsetHeight: Number): Array | null => {\n if (!PLACEMENT_LIST.includes(placement)) return null;\n if (placement === 'top-right') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n ];\n }\n if (placement === 'bottom-right') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(${offsetWidth}px)` },\n ];\n }\n if (placement === 'top-left') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(-${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n ];\n }\n if (placement === 'bottom-left') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(-${offsetWidth}px)` },\n ];\n }\n};\n\nexport const fadeIn = (dom: HTMLElement, placement: string) => {\n if (!dom) return;\n const offsetHeight = dom?.offsetHeight || 0;\n const offsetWidth = dom?.offsetWidth || 0;\n const keyframes: Array | null = getFadeInKeyframes(placement, offsetWidth, offsetHeight);\n if (!keyframes) return;\n dom.animate && dom.animate(keyframes, ANIMATION_OPTION);\n};\n\nexport const fadeOut = (dom: HTMLElement, placement: string, onFinish: Function) => {\n if (!dom) return;\n const offsetHeight = dom?.offsetHeight || 0;\n const offsetWidth = dom?.offsetWidth || 0;\n const keyframes: Array | null = getFadeOutKeyframes(placement, offsetWidth, offsetHeight);\n if (!keyframes) return onFinish();\n\n const animate = dom.animate && dom.animate(keyframes, ANIMATION_OPTION);\n if (animate) {\n animate.onfinish = () => {\n onFinish();\n };\n } else {\n dom.style.display = 'none';\n onFinish();\n }\n};\n","import { defineComponent, h, onBeforeMount, onMounted, ref } from 'vue';\nimport {\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n} from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport props from './props';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { fadeIn, fadeOut } from './utils';\n\nexport default defineComponent({\n name: 'TNotification',\n props: {\n ...props,\n placement: String, // just for animation\n },\n setup(props, { slots, expose }) {\n const COMPONENT_NAME = usePrefixClass('notification');\n const { classPrefix } = useConfig('classPrefix');\n const { InfoCircleFilledIcon, CheckCircleFilledIcon, CloseIcon } = useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n });\n const renderTNode = useTNodeJSX();\n const renderContent = useContent();\n const timer = ref(null);\n const notificationRef = ref(null);\n\n const close = (e?: MouseEvent) => {\n const dom = notificationRef.value as HTMLElement;\n fadeOut(dom, props.placement, () => {\n props.onCloseBtnClick?.({ e });\n });\n };\n\n const renderIcon = () => {\n let iconContent;\n if (props.icon === false) return null;\n if (isFunction(props.icon)) {\n iconContent = props.icon(h);\n } else if (slots.icon) {\n iconContent = slots.icon(null);\n } else if (props.theme) {\n const iconType =\n props.theme === 'success' ? (\n \n ) : (\n \n );\n iconContent =
    {iconType}
    ;\n }\n return iconContent;\n };\n\n const renderClose = () => {\n const defaultClose = ;\n return (\n \n {renderTNode('closeBtn', defaultClose)}\n \n );\n };\n\n const renderMainContent = () => {\n return
    {renderContent('default', 'content')}
    ;\n };\n\n const clearTimer = () => {\n props.duration && clearTimeout(timer.value);\n };\n\n const setTimer = () => {\n if (!props.duration) {\n return;\n }\n timer.value = Number(\n setTimeout(() => {\n clearTimer();\n const dom = notificationRef.value as HTMLElement;\n fadeOut(dom, props.placement, () => {\n props.onDurationEnd?.();\n });\n }, props.duration),\n );\n };\n\n onBeforeMount(() => {\n props.duration && setTimer();\n });\n\n onMounted(() => {\n const dom = notificationRef.value;\n fadeIn(dom, props.placement);\n });\n\n expose({ close });\n return () => (\n
    \n {renderIcon()}\n
    \n
    \n {renderTNode('title')}\n {renderClose()}\n
    \n {renderMainContent()}\n {renderTNode('footer')}\n
    \n
    \n );\n },\n});\n","import { defineComponent, ref, computed, Ref, CSSProperties } from 'vue';\nimport Notification from './notification';\nimport { TdNotificationProps, NotificationOptions } from './type';\nimport { DEFAULT_Z_INDEX, PLACEMENT_OFFSET, DISTANCE } from './consts';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n props: {\n placement: {\n type: String,\n default: 'top-right',\n validator(v: string): boolean {\n return ['top-left', 'top-right', 'bottom-left', 'bottom-right'].indexOf(v) > -1;\n },\n },\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('notification-list');\n\n const { placement } = props as NotificationOptions;\n\n const list: Ref = ref([]);\n const notificationList = ref([]);\n\n const styles = computed(() => ({\n zIndex: DEFAULT_Z_INDEX,\n ...PLACEMENT_OFFSET[placement],\n }));\n\n const add = (options: TdNotificationProps): number => {\n list.value.push(options);\n return list.value.length - 1;\n };\n\n const remove = (index: number) => {\n list.value.splice(index, 1);\n };\n\n const removeAll = () => {\n list.value = [];\n };\n\n const getOffset = (val: string | number) => {\n if (!val) return;\n return isNaN(Number(val)) ? val : `${val}px`;\n };\n\n const notificationStyles = (item: { offset: NotificationOptions['offset']; zIndex: number }) => {\n const styles: CSSProperties = {\n marginBottom: DISTANCE,\n };\n if (item.offset) {\n styles.position = 'relative';\n styles.left = getOffset(item.offset[0]);\n styles.top = getOffset(item.offset[1]);\n }\n if (item.zIndex) styles['z-index'] = item.zIndex;\n return styles;\n };\n\n const getProps = (index: number, item: NotificationOptions) => {\n return {\n ...item,\n onCloseBtnClick: (e: any) => {\n if (item.onCloseBtnClick) {\n item.onCloseBtnClick(e);\n }\n return remove(index);\n },\n onDurationEnd: () => {\n if (item.onDurationEnd) {\n item.onDurationEnd();\n }\n return remove(index);\n },\n };\n };\n\n const addChild = (el: Element) => {\n if (el) {\n notificationList.value.push(el);\n }\n };\n expose({ add, remove, removeAll, list, notificationList });\n\n return () => {\n if (!list.value.length) return;\n\n return (\n
    \n {list.value.map((item: { offset: NotificationOptions['offset']; zIndex: number; id: number }, index) => (\n \n ))}\n
    \n );\n };\n },\n});\n","import { App, Plugin, createApp, nextTick, ComponentPublicInstance } from 'vue';\nimport NotificationList from './notification-list';\nimport { getAttach } from '../utils/dom';\nimport {\n NotificationOptions,\n NotificationInstance,\n NotificationMethod,\n NotificationInfoMethod,\n NotificationWarningMethod,\n NotificationErrorMethod,\n NotificationSuccessMethod,\n NotificationCloseMethod,\n NotificationCloseAllMethod,\n} from './type';\nimport { AttachNodeReturnValue } from '../common';\nimport './style';\n\nlet seed = 0;\n// 存储不同 attach 和 不同 placement 消息列表实例\nconst instanceMap: Map> = new Map();\n\nconst NotificationFunction = (options: NotificationOptions): Promise => {\n seed += 1;\n const hackOptions = {\n placement: 'top-right',\n zIndex: 6000,\n attach: 'body',\n id: seed,\n ...options,\n };\n hackOptions.content = options.content ? options.content : '';\n\n const attachEl = getAttach(hackOptions.attach);\n\n if (!instanceMap.get(attachEl)) {\n instanceMap.set(attachEl, {});\n }\n let tmpInstance = instanceMap.get(attachEl)[hackOptions.placement];\n if (!tmpInstance) {\n const wrapper = document.createElement('div');\n\n const instance = createApp(NotificationList, {\n placement: hackOptions.placement,\n }).mount(wrapper);\n\n instance.add(hackOptions);\n instanceMap.get(attachEl)[hackOptions.placement] = instance;\n tmpInstance = instance;\n attachEl.appendChild(instance.$el);\n } else {\n tmpInstance.add(hackOptions);\n }\n\n return new Promise((resolve) => {\n const ins = instanceMap.get(attachEl)[hackOptions.placement];\n nextTick(() => {\n const notificationList: NotificationInstance[] = ins.notificationList;\n resolve(notificationList?.find((notify) => notify.$?.vnode?.key === hackOptions.id));\n });\n });\n};\n\nconst showThemeNotification: NotificationMethod = (theme, options) => {\n const hackOptions = { ...options, theme };\n return NotificationFunction(hackOptions);\n};\n\ninterface ExtraApi {\n info: NotificationInfoMethod;\n success: NotificationSuccessMethod;\n warning: NotificationWarningMethod;\n error: NotificationErrorMethod;\n close: NotificationCloseMethod;\n closeAll: NotificationCloseAllMethod;\n}\n\nconst extraApi: ExtraApi = {\n info: (options) => showThemeNotification('info', options),\n success: (options) => showThemeNotification('success', options),\n warning: (options) => showThemeNotification('warning', options),\n error: (options) => showThemeNotification('error', options),\n close: (promise) => {\n promise.then((instance) => instance.close());\n },\n closeAll: () => {\n instanceMap.forEach((attach) => {\n Object.keys(attach).forEach((placement) => {\n attach[placement].removeAll();\n });\n });\n },\n};\n\nexport type NotificationPluginType = Plugin & ExtraApi & NotificationMethod;\n\nconst NotificationPlugin: NotificationPluginType = showThemeNotification as NotificationPluginType;\n\nNotificationPlugin.install = (app: App) => {\n app.config.globalProperties.$notify = showThemeNotification;\n Object.keys(extraApi).forEach((funcName: keyof ExtraApi) => {\n app.config.globalProperties.$notify[funcName] = extraApi[funcName];\n });\n};\n\nObject.keys(extraApi).forEach((funcName: keyof ExtraApi) => {\n // @ts-ignore\n // TODO https://github.com/microsoft/TypeScript/issues/32693\n NotificationPlugin[funcName] = extraApi[funcName];\n});\n\nexport const NotifyPlugin = NotificationPlugin;\n\nexport default NotificationPlugin;\n","import _Notification from './notification';\nimport withInstall from '../utils/withInstall';\nimport { TdNotificationProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\nexport type NotificationProps = TdNotificationProps;\n\nexport const Notification = withInstall(_Notification);\nexport { default as NotifyPlugin } from './plugin';\nexport default Notification;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPopconfirmProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n default: '' as TdPopconfirmProps['cancelBtn'],\n },\n /** 确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n default: '' as TdPopconfirmProps['confirmBtn'],\n },\n /** 确认框内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 触发元素,同 triggerElement */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否在关闭浮层时销毁浮层 */\n destroyOnClose: {\n type: Boolean,\n default: true,\n },\n /** 确认框图标 */\n icon: {\n type: Function as PropType,\n },\n /** 浮层出现位置 */\n placement: {\n type: String as PropType,\n default: 'top' as TdPopconfirmProps['placement'],\n validator(val: TdPopconfirmProps['placement']): boolean {\n if (!val) return true;\n return [\n 'top',\n 'left',\n 'right',\n 'bottom',\n 'top-left',\n 'top-right',\n 'bottom-left',\n 'bottom-right',\n 'left-top',\n 'left-bottom',\n 'right-top',\n 'right-bottom',\n ].includes(val);\n },\n },\n /** 透传 Popup 组件属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示浮层箭头 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 文字提示风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdPopconfirmProps['theme'],\n validator(val: TdPopconfirmProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'warning', 'danger'].includes(val);\n },\n },\n /** 触发元素 */\n triggerElement: {\n type: [String, Function] as PropType,\n },\n /** 是否显示气泡确认框 */\n visible: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示气泡确认框,非受控属性 */\n defaultVisible: Boolean,\n /** 点击取消按钮时触发 */\n onCancel: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 确认框显示或隐藏时触发 */\n onVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed, toRefs } from 'vue';\nimport {\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\n\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\nimport { useContent, useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport useVModel from '../hooks/useVModel';\nimport { useAction } from '../dialog/hooks';\n\nimport type { PopconfirmVisibleChangeContext } from './type';\nimport type { TdDialogProps } from '../dialog/type';\nexport default defineComponent({\n name: 'TPopconfirm',\n props,\n setup(props) {\n const { globalConfig } = useConfig('popconfirm');\n const COMPONENT_NAME = usePrefixClass('popconfirm');\n const { InfoCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const { visible, modelValue } = toRefs(props);\n const [innerVisible, setInnerVisible] = useVModel(\n visible,\n modelValue,\n props.defaultVisible,\n props.onVisibleChange,\n 'visible',\n );\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n setInnerVisible(false, { e, trigger: 'confirm' });\n };\n\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n setInnerVisible(false, { e, trigger: 'cancel' });\n };\n\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n\n const renderTNodeJSX = useTNodeJSX();\n const innerPopupProps = computed(() => {\n return {\n showArrow: props.showArrow,\n overlayClassName: COMPONENT_NAME.value,\n trigger: 'click' as PopupProps['trigger'],\n destroyOnClose: props.destroyOnClose,\n placement: props.placement,\n ...(props.popupProps as PopupProps),\n };\n });\n\n const renderTNodeDefault = useTNodeDefault();\n const renderContent = () => {\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n size: 'small',\n });\n\n const confirmBtn = getConfirmBtn({\n theme: props.theme,\n confirmBtn: props.confirmBtn as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n size: 'small',\n });\n\n const renderIcon = () => {\n const Icon = {\n default: InfoCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n danger: ErrorCircleFilledIcon,\n }[props.theme];\n const theme = props.theme || 'default';\n return renderTNodeDefault('icon', );\n };\n\n return (\n
    \n
    \n {renderIcon()}\n
    {renderTNodeJSX('content')}
    \n
    \n {Boolean(cancelBtn || confirmBtn) && (\n
    \n {cancelBtn}\n {confirmBtn}\n
    \n )}\n
    \n );\n };\n\n const onPopupVisibleChange = (val: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(val, context as PopconfirmVisibleChangeContext);\n };\n\n const renderTNodeContent = useContent();\n\n return () => (\n \n {renderTNodeContent('default', 'triggerElement')}\n \n );\n },\n});\n","import _Popconfirm from './popconfirm';\nimport withInstall from '../utils/withInstall';\nimport { TdPopconfirmProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type PopconfirmProps = TdPopconfirmProps;\n\nexport const Popconfirm = withInstall(_Popconfirm);\nexport default Popconfirm;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdUploadProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文件名过长时,需要省略中间的文本,保留首尾文本。示例:[10, 7],表示首尾分别保留的文本长度 */\n abridgeName: {\n type: Array as PropType,\n },\n /** 接受上传的文件类型,[查看 W3C示例](https://www.w3schools.com/tags/att_input_accept.asp),[查看 MDN 示例](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input/file) */\n accept: {\n type: String,\n default: '',\n },\n /** 上传接口。设接口响应数据为字段 `response`,那么 `response.error` 存在时会判断此次上传失败,并显示错误文本信息;`response.url` 会作为文件上传成功后的地址,并使用该地址显示图片或文件 */\n action: {\n type: String,\n default: '',\n },\n /** 是否允许重复上传相同文件名的文件 */\n allowUploadDuplicateFile: Boolean,\n /** 是否在选择文件后自动发起请求上传文件 */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /** 如果是自动上传模式 `autoUpload=true`,表示全部文件上传之前的钩子函数,函数参数为上传的文件,函数返回值决定是否继续上传,若返回值为 `false` 则终止上传。
    如果是非自动上传模式 `autoUpload=false`,则函数返回值为 `false` 时表示本次选中的文件不会加入到文件列表中,即不触发 `onChange` 事件 */\n beforeAllFilesUpload: {\n type: Function as PropType,\n },\n /** 如果是自动上传模式 `autoUpload=true`,表示单个文件上传之前的钩子函数,若函数返回值为 `false` 则表示不上传当前文件。
    如果是非自动上传模式 `autoUpload=false`,函数返回值为 `false` 时表示从上传文件中剔除当前文件 */\n beforeUpload: {\n type: Function as PropType,\n },\n /** 批量文件/图片上传,`autoUpload=false` 场景下,透传“取消上传”按钮属性 */\n cancelUploadButton: {\n type: [Object, Function] as PropType,\n },\n /** 上传请求所需的额外字段,默认字段有 `file`,表示文件信息。可以添加额外的文件名字段,如:`{file_name: \"custom-file-name.txt\"}`。`autoUpload=true` 时有效。也可以使用 `formatRequest` 完全自定义上传请求的字段 */\n data: {\n type: [Object, Function] as PropType,\n },\n /** 非拖拽场景,指触发上传的元素,如:“选择文件”。如果是拖拽场景,则是指拖拽区域 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于自定义拖拽区域,`theme=custom` 且 `draggable=true` 时有效 */\n dragContent: {\n type: [String, Function] as PropType,\n },\n /** 是否启用拖拽上传,不同的组件风格默认值不同。`theme=file` 或 `theme=image` 时有效 */\n draggable: {\n type: Boolean,\n default: undefined,\n },\n /** 用于完全自定义文件列表界面内容(UI),单文件和多文件均有效 */\n fileListDisplay: {\n type: Function as PropType,\n },\n /** 已上传文件列表,同 `value`。TS 类型:`UploadFile` */\n files: {\n type: Array as PropType,\n default: undefined as TdUploadProps['files'],\n },\n /** 已上传文件列表,同 `value`。TS 类型:`UploadFile`,非受控属性 */\n defaultFiles: {\n type: Array as PropType,\n default: (): TdUploadProps['defaultFiles'] => [],\n },\n /** 转换文件 `UploadFile` 的数据结构,可新增或修改 `UploadFile` 的属性,注意不能删除 `UploadFile` 属性。`action` 存在时有效 */\n format: {\n type: Function as PropType,\n },\n /** 用于新增或修改文件上传请求 参数。`action` 存在时有效。一个请求上传一个文件时,默认请求字段有 `file`。
    一个请求上传多个文件时,默认字段有 `file[0]/file[1]/file[2]/.../length`,其中 `length` 表示本次上传的文件数量。
    ⚠️非常注意,此处的 `file[0]/file[1]` 仅仅是一个字段名,并非表示 `file` 是一个数组,接口获取字段时注意区分。
    可以使用 `name` 定义 `file` 字段的别名。
    也可以使用 `formatRequest` 自定义任意字段,如添加一个字段 `fileList` ,存储文件数组 */\n formatRequest: {\n type: Function as PropType,\n },\n /** 用于格式化文件上传后的接口响应数据,`response` 便是接口响应的原始数据。`action` 存在时有效。
    示例返回值:`{ error, url, status, files }`
    此函数的返回值 `error` 会作为错误文本提醒,表示上传失败的原因,如果存在会判定为本次上传失败。
    此函数的返回值 `url` 会作为单个文件上传成功后的链接。
    `files` 表示一个请求同时上传多个文件后的文件列表 */\n formatResponse: {\n type: Function as PropType,\n },\n /** 设置上传的请求头部,`action` 存在时有效 */\n headers: {\n type: Object as PropType,\n },\n /** 透传图片预览组件全部属性 */\n imageViewerProps: {\n type: Object as PropType,\n },\n /** 用于添加属性到 HTML 元素 `input` */\n inputAttributes: {\n type: Object as PropType,\n },\n /** 多个文件是否作为一个独立文件包,整体替换,整体删除。不允许追加文件,只允许替换文件。`theme=file-flow` 时有效 */\n isBatchUpload: Boolean,\n /** 上传组件文本语言配置,支持自定义配置组件中的全部文本。优先级高于全局配置中语言 */\n locale: {\n type: Object as PropType,\n },\n /** 用于控制文件上传数量,值为 0 则不限制。注意,单文件上传场景,请勿设置 `max` 属性 */\n max: {\n type: Number,\n default: 0,\n },\n /** HTTP 请求类型 */\n method: {\n type: String as PropType,\n default: 'POST' as TdUploadProps['method'],\n validator(val: TdUploadProps['method']): boolean {\n if (!val) return true;\n return ['POST', 'GET', 'PUT', 'OPTION', 'PATCH', 'post', 'get', 'put', 'option', 'patch'].includes(val);\n },\n },\n /** 模拟进度间隔时间,单位:毫秒,默认:300。由于原始的上传请求,小文件上传进度只有 0 和 100,故而新增模拟进度,每间隔 `mockProgressDuration` 毫秒刷新一次模拟进度。小文件设置小一点,大文件设置大一点。注意:当 `useMockProgress` 为真时,当前设置有效 */\n mockProgressDuration: {\n type: Number,\n },\n /** 支持多文件上传 */\n multiple: Boolean,\n /** 文件上传时的名称 */\n name: {\n type: String,\n default: 'file',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: '',\n },\n /** 自定义上传方法。返回值 `status` 表示上传成功或失败;`error` 或 `response.error` 表示上传失败的原因;
    `response` 表示请求上传成功后的返回数据,`response.url` 表示上传成功后的图片/文件地址,`response.files` 表示一个请求上传多个文件/图片后的返回值。
    示例一:`{ status: 'fail', error: '上传失败', response }`。
    示例二:`{ status: 'success', response: { url: 'https://tdesign.gtimg.com/site/avatar.jpg' } }`。
    示例三:`{ status: 'success', files: [{ url: 'https://xxx.png', name: 'xxx.png' }]}` */\n requestMethod: {\n type: Function as PropType,\n },\n /** 是否显示图片的文件名称 */\n showImageFileName: {\n type: Boolean,\n default: true,\n },\n /** 是否在文件列表中显示缩略图,`theme=file-flow` 时有效 */\n showThumbnail: Boolean,\n /** 是否显示上传进度 */\n showUploadProgress: {\n type: Boolean,\n default: true,\n },\n /** 图片文件大小限制,默认单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }` */\n sizeLimit: {\n type: [Number, Object] as PropType,\n },\n /** 文件上传提示文本状态 */\n status: {\n type: String as PropType,\n validator(val: TdUploadProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件风格。custom 表示完全自定义风格;file 表示默认文件上传风格;file-input 表示输入框形式的文件上传;file-flow 表示文件批量上传;image 表示默认图片上传风格;image-flow 表示图片批量上传 */\n theme: {\n type: String as PropType,\n default: 'file' as TdUploadProps['theme'],\n validator(val: TdUploadProps['theme']): boolean {\n if (!val) return true;\n return ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(val);\n },\n },\n /** 组件下方文本提示,可以使用 `status` 定义文本 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 触发上传的元素,`files` 指本次显示的全部文件 */\n trigger: {\n type: Function as PropType,\n },\n /** 透传选择按钮全部属性 */\n triggerButtonProps: {\n type: Object as PropType,\n },\n /** 是否在同一个请求中上传全部文件,默认一个请求上传一个文件。多文件上传时有效 */\n uploadAllFilesInOneRequest: Boolean,\n /** 批量文件/图片上传,`autoUpload=false` 场景下,透传“点击上传”按钮属性 */\n uploadButton: {\n type: [Object, Function] as PropType,\n },\n /** 是否允许粘贴上传剪贴板中的文件 */\n uploadPastedFiles: {\n type: Boolean,\n default: true,\n },\n /** 是否在请求时间超过 300ms 后显示模拟进度。上传进度有模拟进度和真实进度两种。一般大小的文件上传,真实的上传进度只有 0 和 100,不利于交互呈现,因此组件内置模拟上传进度。真实上传进度一般用于大文件上传。 */\n useMockProgress: {\n type: Boolean,\n default: true,\n },\n /** 已上传文件列表,同 `files`。TS 类型:`UploadFile` */\n value: {\n type: Array as PropType,\n default: undefined as TdUploadProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdUploadProps['value'],\n },\n /** 已上传文件列表,同 `files`。TS 类型:`UploadFile`,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdUploadProps['defaultValue'] => [],\n },\n /** 上传请求时是否携带 cookie */\n withCredentials: Boolean,\n /** 点击「取消上传」时触发 */\n onCancelUpload: Function as PropType,\n /** 已上传文件列表发生变化时触发,`trigger` 表示触发本次的来源 */\n onChange: Function as PropType,\n /** 进入拖拽区域时触发 */\n onDragenter: Function as PropType,\n /** 离开拖拽区域时触发 */\n onDragleave: Function as PropType,\n /** 拖拽结束时触发 */\n onDrop: Function as PropType,\n /** 上传失败后触发。`response` 指接口响应结果,`response.error` 会作为错误文本提醒。如果希望判定为上传失败,但接口响应数据不包含 `error` 字段,可以使用 `formatResponse` 格式化 `response` 数据结构。如果是多文件多请求上传场景,请到事件 `onOneFileFail` 中查看 `response` */\n onFail: Function as PropType,\n /** 多文件/图片场景下,单个文件上传失败后触发,如果一个请求上传一个文件,则会触发多次。单文件/图片不会触发 */\n onOneFileFail: Function as PropType,\n /** 单个文件上传成功后触发,在多文件场景下会触发多次。`context.file` 表示当前上传成功的单个文件,`context.response` 表示上传请求的返回数据 */\n onOneFileSuccess: Function as PropType,\n /** 点击图片预览时触发,文件没有预览 */\n onPreview: Function as PropType,\n /** 上传进度变化时触发,真实进度和模拟进度都会触发。
    ⚠️ 原始上传请求,小文件的上传进度只有 0 和 100,故而不会触发 `progress` 事件;只有大文件才有真实的中间进度。如果你希望很小的文件也显示上传进度,保证 `useMockProgress=true` 的情况下,设置 `mockProgressDuration` 为更小的值。
    参数 `options.type=real` 表示真实上传进度,`options.type=mock` 表示模拟上传进度 */\n onProgress: Function as PropType,\n /** 移除文件时触发 */\n onRemove: Function as PropType,\n /** 选择文件或图片之后,上传之前,触发该事件 */\n onSelectChange: Function as PropType,\n /** 上传成功后触发。
    `context.currentFiles` 表示当次请求上传的文件(无论成功或失败),`context.fileList` 表示上传成功后的文件,`context.response` 表示上传请求的返回数据。
    `context.results` 表示单次选择全部文件上传成功后的响应结果,可以在这个字段存在时提醒用户上传成功或失败。
    */\n onSuccess: Function as PropType,\n /** 文件上传校验结束事件,文件数量超出、文件大小超出限制、文件同名、`beforeAllFilesUpload` 返回值为假、`beforeUpload` 返回值为假等场景会触发。
    注意:如果设置允许上传同名文件,即 `allowUploadDuplicateFile=true`,则不会因为文件重名触发该事件。
    结合 `status` 和 `tips` 可以在组件中呈现不同类型的错误(或告警)提示 */\n onValidate: Function as PropType,\n /** 待上传文件列表发生变化时触发。`context.files` 表示事件参数为待上传文件,`context.trigger` 引起此次变化的触发来源 */\n onWaitingUploadFilesChange: Function as PropType,\n};\n","import { PropType } from 'vue';\nimport { CommonDisplayFileProps } from '../types';\n\nexport const commonProps = {\n accept: String,\n files: Array as PropType,\n toUploadFiles: Array as PropType,\n displayFiles: Array as PropType,\n theme: String as PropType,\n abridgeName: Array as PropType,\n placeholder: String,\n classPrefix: String,\n tips: [String, Function],\n status: String as PropType,\n locale: Object as PropType,\n sizeOverLimitMessage: String,\n autoUpload: Boolean,\n uploadPastedFiles: Boolean,\n onPasteFileChange: Function as PropType,\n disabled: Boolean,\n uploading: Boolean,\n tipsClasses: [String, Array, Object] as PropType,\n errorClasses: [String, Array, Object] as PropType,\n placeholderClass: [String, Array, Object] as PropType,\n showUploadProgress: Boolean,\n default: Function as PropType,\n fileListDisplay: Function as PropType,\n onRemove: Function as PropType,\n imageViewerProps: Object as PropType,\n};\n","import { defineComponent, toRefs, computed } from 'vue';\nimport {\n CloseIcon as TdCloseIcon,\n TimeFilledIcon as TdTimeFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport TLoading from '../../loading';\nimport Link from '../../link';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { UploadConfig } from '../../config-provider';\n\nexport interface NormalFileProps extends CommonDisplayFileProps {\n multiple: boolean;\n}\n\nconst NormalFile = defineComponent({\n name: 'UploadNormalFile',\n props: {\n multiple: Boolean,\n ...commonProps,\n },\n setup(props, { slots }) {\n const { theme, disabled, classPrefix } = toRefs(props);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const { CloseIcon, TimeFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseCircleFilledIcon } =\n useGlobalIcon({\n CloseIcon: TdCloseIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n\n const renderTNodeJSX = useTNodeJSX();\n\n const uploadPrefix = `${classPrefix.value}-upload`;\n\n const renderProgress = (percent: number) => (\n
    \n \n {props.showUploadProgress && {percent || 0}%}\n
    \n );\n\n // 文本型预览\n const renderFilePreviewAsText = (files: UploadFile[]) => {\n if (theme.value !== 'file') return null;\n if (!props.multiple && files[0]?.status === 'fail' && props.autoUpload) {\n return null;\n }\n return files.map((file, index) => {\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n \n {file.url ? (\n \n {fileName}\n \n ) : (\n {fileName}\n )}\n {file.status === 'fail' && (\n
    \n \n
    \n )}\n {file.status === 'waiting' && (\n
    \n \n
    \n )}\n {file.status === 'progress' && renderProgress(file.percent)}\n {!disabled.value && file.status !== 'progress' && (\n props.onRemove({ e, file, index })}\n />\n )}\n
    \n );\n });\n };\n\n // 输入框型预览\n const renderFilePreviewAsInput = () => {\n if (theme.value !== 'file-input') return;\n const file: UploadFile = props.displayFiles[0] || [];\n const inputTextClass = [\n `${classPrefix.value}-input__inner`,\n { [`${uploadPrefix}__placeholder`]: !props.displayFiles[0] },\n ];\n const disabledClass = disabled.value ? `${classPrefix.value}-is-disabled` : '';\n const fileName =\n props.abridgeName?.length && file?.name ? abridgeName(file.name, ...props.abridgeName) : file?.name;\n return (\n
    \n
    \n \n {file?.name ? fileName : props.placeholder}\n \n {file?.status === 'progress' && renderProgress(file.percent)}\n {file?.status === 'waiting' && (\n \n )}\n {file.status === 'success' && }\n {file?.name && file.status === 'fail' && (\n \n )}\n {Boolean(!disabled.value && file.name) && (\n props.onRemove({ e, file, index: 0 })}\n />\n )}\n
    \n
    \n );\n };\n\n return () => {\n const classes = [`${uploadPrefix}__single`, `${uploadPrefix}__single-${theme.value}`];\n let fileListDisplay = renderTNodeJSX('fileListDisplay', {\n params: {\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n },\n });\n if (props.fileListDisplay === null || fileListDisplay === null) {\n fileListDisplay = null;\n }\n\n const { displayFiles } = props;\n\n return (\n
    \n {theme.value === 'file-input' && renderFilePreviewAsInput()}\n\n {slots.default?.()}\n\n {theme.value === 'file' && props.placeholder && !displayFiles[0] && (\n {props.placeholder}\n )}\n\n {fileListDisplay === null ? null : fileListDisplay || renderFilePreviewAsText(displayFiles)}\n\n {/* 单文件上传失败要显示失败的原因 */}\n {!props.multiple && displayFiles[0]?.status === 'fail' && theme.value === 'file' ? (\n \n {displayFiles[0].response?.error || locale.value.progress.failText}\n \n ) : null}\n
    \n );\n };\n },\n});\n\nexport default NormalFile;\n","import { Ref, ref } from 'vue';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps } from '../type';\n\nexport interface UploadDragEvents {\n onDragFileChange?: (files: File[]) => void;\n onDragenter?: TdUploadProps['onDragenter'];\n onDragleave?: TdUploadProps['onDragleave'];\n onDrop?: TdUploadProps['onDrop'];\n}\n\nexport default function useDrag(props: UploadDragEvents, accept: Ref) {\n const target = ref(null);\n const dragActive = ref(false);\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault();\n dragActive.value = false;\n\n const { files } = event.dataTransfer;\n const dragFiles: File[] = getFileList(files, accept.value);\n props.onDrop?.({ e: event });\n if (dragFiles?.length) {\n props.onDragFileChange?.(dragFiles);\n }\n };\n\n const handleDragenter = (event: DragEvent) => {\n event.preventDefault();\n target.value = event.target;\n props.onDragenter?.({ e: event });\n dragActive.value = true;\n };\n\n const handleDragleave = (event: DragEvent) => {\n if (event.target !== target.value) return;\n event.preventDefault();\n props.onDragleave?.({ e: event });\n dragActive.value = false;\n };\n\n const handleDragover = (event: DragEvent) => {\n event.preventDefault();\n };\n\n return {\n target,\n dragActive,\n handleDrop,\n handleDragenter,\n handleDragleave,\n handleDragover,\n };\n}\n","import { defineComponent, toRefs, PropType, ref, computed, h } from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { abridgeName, getFileSizeText } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps, UploadFile } from '../type';\nimport Button from '../../button';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport TLoading from '../../loading';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport useGlobalIcon from '../../hooks/useGlobalIcon';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { useTNodeJSX } from '../../hooks';\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface DraggerProps extends CommonDisplayFileProps {\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n}\n\nexport default defineComponent({\n name: 'UploadDraggerFile',\n props: {\n ...commonProps,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n dragEvents: Object as PropType,\n },\n setup(props, { slots }) {\n const { displayFiles, disabled, accept } = toRefs(props);\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const { sizeClassNames } = useCommonClassName();\n const uploadPrefix = `${props.classPrefix}-upload`;\n\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const draggerFileRef = ref();\n\n const classes = computed(() => [\n `${uploadPrefix}__dragger`,\n { [`${uploadPrefix}__dragger-center`]: !displayFiles.value[0] },\n { [`${uploadPrefix}__dragger-error`]: displayFiles.value[0]?.status === 'fail' },\n ]);\n\n const { CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const renderImage = () => {\n if (!props.displayFiles.length) return;\n const file = displayFiles.value[0];\n if (!file) return null;\n const url = file?.url || file?.response?.url;\n return (\n
    \n }\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n\n const renderUploading = () => {\n if (!props.displayFiles.length) return;\n const file = displayFiles.value[0];\n if (!file) return null;\n if (file?.status === 'progress') {\n return (\n
    \n \n {props.showUploadProgress && {file.percent}%}\n
    \n );\n }\n };\n\n const renderMainPreview = () => {\n const file = displayFiles.value[0];\n const fileName = props.abridgeName ? abridgeName(file.name, ...props.abridgeName) : file.name;\n\n const fileInfo = [\n
    \n {fileName}\n {file.status === 'progress' && renderUploading()}\n {file.status === 'success' && }\n {file.status === 'fail' && }\n
    ,\n \n {locale.value.file.fileSizeText}:{getFileSizeText(file.size)}\n ,\n \n {locale.value.file.fileOperationDateText}:{file.uploadTime || '-'}\n ,\n ];\n return (\n
    \n {props.theme === 'image' && renderImage()}\n
    \n {renderTNodeJSX('fileListDisplay', { params: { files: props.displayFiles } }) || fileInfo}\n\n
    \n {['progress', 'waiting'].includes(file.status) && !disabled.value && (\n \n props.cancelUpload?.({\n e,\n file: props.toUploadFiles[0] || props.files[0],\n })\n }\n >\n {locale.value?.cancelUploadText}\n \n )}\n {!props.autoUpload && file.status === 'waiting' && (\n props.uploadFiles?.()}\n class={`${uploadPrefix}__dragger-upload-btn`}\n >\n {locale.value.triggerUploadText.normal}\n \n )}\n
    \n {['fail', 'success'].includes(file?.status) && !disabled.value && (\n
    \n \n {locale.value.triggerUploadText.reupload}\n \n props.onRemove({ e, index: 0, file })}\n >\n {locale.value.triggerUploadText.delete}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const renderDefaultDragElement = () => {\n const unActiveElement = (\n
    \n {locale.value.triggerUploadText?.normal}\n   /  {locale.value.dragger.draggingText}\n
    \n );\n const activeElement =
    {locale.value.dragger.dragDropText}
    ;\n return dragActive.value ? activeElement : unActiveElement;\n };\n\n const getContent = () => {\n const file = displayFiles.value[0];\n if (file && (['progress', 'success', 'fail', 'waiting'].includes(file.status) || !file.status)) {\n return renderMainPreview();\n }\n return (\n
    \n {slots.default?.() || renderDefaultDragElement()}\n
    \n );\n };\n\n return () => (\n \n {props.trigger?.(h, { files: displayFiles.value, dragActive: dragActive.value }) || getContent()}\n
    \n );\n },\n});\n","import { defineComponent, PropType, toRefs, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n DeleteIcon as TdDeleteIcon,\n AddIcon as TdAddIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport Loading from '../../loading';\nimport useGlobalIcon from '../../hooks/useGlobalIcon';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { TdUploadProps, UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\nimport { UploadConfig } from '../../config-provider';\nimport { useTNodeJSX } from '../../hooks';\nimport Link from '../../link';\nimport Image from '../../image';\n\nexport interface ImageCardUploadProps extends CommonDisplayFileProps {\n multiple: TdUploadProps['multiple'];\n max: TdUploadProps['max'];\n disabled?: TdUploadProps['disabled'];\n showUploadProgress: TdUploadProps['showUploadProgress'];\n triggerUpload?: (e: MouseEvent) => void;\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n onPreview?: TdUploadProps['onPreview'];\n}\n\nexport default defineComponent({\n name: 'UploadImageCard',\n props: {\n ...commonProps,\n multiple: Boolean,\n max: Number,\n disabled: Boolean,\n showUploadProgress: Boolean,\n triggerUpload: Function as PropType,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n onPreview: Function as PropType,\n showImageFileName: Boolean,\n },\n setup(props) {\n const { displayFiles, classPrefix, multiple, max } = toRefs(props);\n const locale = computed(() => props.locale as UploadConfig);\n const { BrowseIcon, DeleteIcon, AddIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const renderTNodeJSX = useTNodeJSX();\n\n const showTrigger = computed(() => {\n if (multiple.value) {\n return !max.value || displayFiles.value.length < max.value;\n }\n return !displayFiles.value?.[0];\n });\n\n const renderMainContent = (file: UploadFile, index: number) => {\n return (\n
    \n \n
    \n e.stopPropagation()}>\n t.url || t.raw)}\n defaultIndex={index}\n trigger={(h, { open }) => {\n return (\n {\n props.onPreview?.({ file, index, e });\n open();\n }}\n />\n );\n }}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n \n {!props.disabled && (\n <>\n \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n \n )}\n
    \n
    \n );\n };\n\n const renderProgressFile = (file: UploadFile, loadCard: string) => {\n return (\n
    \n \n

    \n {locale.value?.progress?.uploadingText}\n {props.showUploadProgress ? ` ${file.percent}%` : ''}\n

    \n
    \n );\n };\n\n const renderFailFile = (file: UploadFile, index: number, loadCard: string) => {\n return (\n
    \n \n

    {file.response?.error || locale.value?.progress?.failText}

    \n
    \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n
    \n
    \n );\n };\n\n return () => {\n // render custom UI with fileListDisplay\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n triggerUpload: props.triggerUpload,\n uploadFiles: props.uploadFiles,\n cancelUpload: props.cancelUpload,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: displayFiles.value,\n },\n });\n if (customList) return customList;\n\n const cardItemClasses = `${classPrefix.value}-upload__card-item ${classPrefix.value}-is-background`;\n return (\n
    \n
      \n {displayFiles.value?.map((file: UploadFile, index: number) => {\n const fileNameClassName = `${classPrefix.value}-upload__card-name`;\n\n const loadCard = `${classPrefix.value}-upload__card-container ${classPrefix.value}-upload__card-box`;\n const fileName = props.abridgeName ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n
    • \n {file.status === 'progress' && renderProgressFile(file, loadCard)}\n {file.status === 'fail' && renderFailFile(file, index, loadCard)}\n {!['progress', 'fail'].includes(file.status) && renderMainContent(file, index)}\n {Boolean(fileName && props.showImageFileName) &&\n (file.url ? (\n \n {fileName}\n \n ) : (\n {fileName}\n ))}\n
    • \n );\n })}\n\n {showTrigger.value && (\n
    • \n \n \n

      \n {locale.value?.triggerUploadText?.image}\n

      \n
    \n \n )}\n \n \n );\n };\n },\n});\n","import { computed, defineComponent, toRefs, PropType, ref } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n DeleteIcon as TdDeleteIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n TimeFilledIcon as TdTimeFilledIcon,\n FileExcelIcon as TdFileExcelIcon,\n FilePdfIcon as TdFilePdfIcon,\n FileWordIcon as TdFileWordIcon,\n FilePowerpointIcon as TdFilePowerpointIcon,\n FileIcon as TdFileIcon,\n VideoIcon as TdVideoIcon,\n} from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport useGlobalIcon from '../../hooks/useGlobalIcon';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport TButton from '../../button';\nimport { UploadFile, TdUploadProps } from '../type';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport {\n abridgeName,\n returnFileSize,\n IMAGE_REGEXP,\n FILE_PDF_REGEXP,\n FILE_EXCEL_REGEXP,\n FILE_WORD_REGEXP,\n FILE_PPT_REGEXP,\n VIDEO_REGEXP,\n} from '@tdesign/common-js/upload/utils';\nimport TLoading from '../../loading';\nimport { useTNodeJSX } from '../../hooks';\nimport Link from '../../link';\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface ImageFlowListProps extends CommonDisplayFileProps {\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file?: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n disabled?: boolean;\n isBatchUpload?: boolean;\n draggable?: boolean;\n onPreview?: TdUploadProps['onPreview'];\n uploadButton?: TdUploadProps['uploadButton'];\n cancelUploadButton?: TdUploadProps['cancelUploadButton'];\n}\n\nexport default defineComponent({\n name: 'UploadMultipleFlowList',\n props: {\n ...commonProps,\n showThumbnail: Boolean,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n dragEvents: Object as PropType,\n disabled: Boolean,\n isBatchUpload: Boolean,\n draggable: Boolean,\n showImageFileName: Boolean,\n uploadButton: Object as PropType,\n cancelUploadButton: Object as PropType,\n onPreview: Function as PropType,\n },\n setup(props, { slots }) {\n // locale 已经在 useUpload 中统一处理优先级\n const { uploading, disabled, displayFiles, classPrefix, accept } = toRefs(props);\n const uploadPrefix = computed(() => `${classPrefix.value}-upload`);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const {\n BrowseIcon,\n DeleteIcon,\n CheckCircleFilledIcon,\n ErrorCircleFilledIcon,\n TimeFilledIcon,\n FileExcelIcon,\n FilePdfIcon,\n FileWordIcon,\n FilePowerpointIcon,\n FileIcon,\n VideoIcon,\n } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n FileExcelIcon: TdFileExcelIcon,\n FilePdfIcon: TdFilePdfIcon,\n FileWordIcon: TdFileWordIcon,\n FilePowerpointIcon: TdFilePowerpointIcon,\n FileIcon: TdFileIcon,\n VideoIcon: TdVideoIcon,\n });\n\n const drag = useDrag(props.dragEvents, accept);\n\n const currentPreviewFile = ref([]);\n const previewIndex = ref(0);\n\n const uploadText = computed(() => {\n if (uploading.value) return `${locale.value.progress.uploadingText}`;\n return locale.value.triggerUploadText.normal;\n });\n\n const innerDragEvents = computed(() => {\n const draggable = props.draggable === undefined ? true : props.draggable;\n return draggable\n ? {\n onDrop: drag.handleDrop,\n onDragenter: drag.handleDragenter,\n onDragover: drag.handleDragover,\n onDragleave: drag.handleDragleave,\n }\n : {};\n });\n\n const getStatusMap = () => {\n const iconMap = {\n success: ,\n fail: ,\n progress: ,\n waiting: ,\n };\n const { progress } = locale.value;\n const textMap = {\n success: progress?.successText,\n fail: progress?.failText,\n progress: progress?.uploadingText,\n waiting: progress?.waitingText,\n };\n return {\n iconMap,\n textMap,\n };\n };\n\n const renderEmpty = () => (\n
    \n {drag.dragActive.value ? locale.value.dragger.dragDropText : locale.value.dragger.clickAndDragText}\n
    \n );\n\n const renderImgItem = (file: UploadFile, index: number) => {\n const { iconMap, textMap } = getStatusMap();\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n
  • \n \n {file.status === 'progress' && (\n
    \n {iconMap[file.status as 'progress']}\n

    \n {textMap[file.status as 'progress']}\n {props.showUploadProgress && ` ${file.percent}%`}\n

    \n
    \n )}\n {file.status === 'fail' && (\n
    \n {iconMap[file.status as 'fail']}\n

    {file.response?.error || textMap[file.status as 'fail']}

    \n
    \n )}\n {(['waiting', 'success'].includes(file.status) || (!file.status && file.url)) && (\n \n )}\n
    \n {(file.url || file.raw) && !['progress', 'fail'].includes(file.status) && (\n \n {\n previewIndex.value = index;\n currentPreviewFile.value = displayFiles.value;\n props.onPreview?.({ file, index, e });\n }}\n />\n \n \n )}\n {!disabled.value && (\n props.onRemove({ e, index, file })}\n >\n \n \n )}\n
    \n \n {props.showImageFileName && (\n

    \n {['success', 'waiting'].includes(file.status) && iconMap[file.status]}\n {fileName}\n

    \n )}\n
  • \n );\n };\n\n const renderStatus = (file: UploadFile) => {\n const { iconMap, textMap } = getStatusMap();\n return (\n
    \n {iconMap[file.status]}\n \n {file.response?.error ? file.response?.error || textMap[file.status] : textMap[file.status]}\n {props.showUploadProgress && file.status === 'progress' ? ` ${file.percent || 0}%` : ''}\n \n
    \n );\n };\n\n const renderNormalActionCol = (file: UploadFile, index: number) => (\n \n props.onRemove({ e, index, file })}\n >\n \n );\n\n // batchUpload action col\n const renderBatchActionCol = (index: number) =>\n // 第一行数据才需要合并单元格\n index === 0 ? (\n \n props.onRemove({ e, index: -1, file: undefined })}\n >\n \n ) : null;\n\n const getFileThumbnailIcon = (fileType: string) => {\n if (FILE_PDF_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_EXCEL_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_WORD_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_PPT_REGEXP.test(fileType)) {\n return ;\n }\n if (VIDEO_REGEXP.test(fileType)) {\n return ;\n }\n return ;\n };\n\n const renderFileThumbnail = (file: UploadFile) => {\n if (!file || (!file.raw && file.url)) return null;\n const fileType = file.raw.type;\n const className = `${uploadPrefix.value}__file-thumbnail`;\n if (IMAGE_REGEXP.test(fileType)) {\n return (\n {\n e.preventDefault();\n currentPreviewFile.value = [file];\n previewIndex.value = 0;\n props.onPreview?.({ file, index: 0, e });\n }}\n />\n );\n }\n return
    {getFileThumbnailIcon(fileType)}
    ;\n };\n\n const renderFileList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n \n \n \n \n \n \n {disabled.value ? null : }\n \n \n \n {!displayFiles.value.length && (\n \n \n \n )}\n {displayFiles.value.map((file, index) => {\n // 合并操作出现条件为:当前为合并上传模式且列表内没有待上传文件\n const showBatchUploadAction = props.isBatchUpload;\n const deleteNode =\n showBatchUploadAction && displayFiles.value.every((item) => item.status === 'success' || !item.status)\n ? renderBatchActionCol(index)\n : renderNormalActionCol(file, index);\n const fileName = props.abridgeName?.length ? abridgeName(file.name, ...props.abridgeName) : file.name;\n const thumbnailNode = props.showThumbnail ? (\n
    \n {renderFileThumbnail(file)}\n {fileName}\n
    \n ) : (\n fileName\n );\n const fileNameNode = file.url ? (\n // 此次需要设置disabled为false 否则链接会跟随表单不可点击\n \n {thumbnailNode}\n \n ) : (\n thumbnailNode\n );\n return (\n \n \n \n \n {disabled.value ? null : deleteNode}\n \n );\n })}\n \n
    {locale.value.file?.fileNameText}{locale.value.file?.fileSizeText}{locale.value.file?.fileStatusText}{locale.value.file?.fileOperationText}
    {renderEmpty()}
    \n {fileNameNode}\n {returnFileSize(file.size)}{renderStatus(file)}
    \n );\n };\n\n const renderImageList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onRemove: props.onRemove,\n onPreview: props.onPreview,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n
      \n {props.displayFiles.map((file, index) => renderImgItem(file, index))}\n
    \n );\n };\n\n return () => {\n const cardClassName = `${uploadPrefix.value}__flow-card-area`;\n const cancelUploadDisabled = disabled.value || !uploading.value;\n const hasCancelUploadTNode = slots.uploadButton || isFunction(props.uploadButton);\n const uploadButtonDisabled = Boolean(disabled.value || uploading.value || !displayFiles.value.length);\n const hasUploadButtonTNode = slots.cancelUploadButton || isFunction(props.cancelUploadButton);\n return (\n
    \n
    \n {slots.default?.()}\n {props.placeholder && (\n \n {props.placeholder}\n \n )}\n
    \n\n {props.theme === 'image-flow' && (\n
    \n {displayFiles.value.length ? renderImageList() : renderEmpty()}\n
    \n )}\n\n {props.theme === 'file-flow' &&\n (displayFiles.value.length ? (\n renderFileList()\n ) : (\n
    \n {renderEmpty()}\n
    \n ))}\n\n {!props.autoUpload && (props.uploadButton !== null || props.cancelUploadButton !== null) && (\n
    \n {props.cancelUploadButton !== null &&\n (hasCancelUploadTNode ? (\n renderTNodeJSX('cancelUploadButton', {\n params: {\n disabled: cancelUploadDisabled,\n cancelUploadText: locale.value?.cancelUploadText,\n cancelUpload: props.cancelUpload,\n },\n })\n ) : (\n props.cancelUpload?.({ e })}\n {...(isObject(props.cancelUploadButton) ? props.cancelUploadButton : {})}\n >\n ))}\n {props.uploadButton !== null &&\n (hasUploadButtonTNode ? (\n renderTNodeJSX('uploadButton', {\n params: {\n disabled: uploadButtonDisabled,\n uploading: uploading.value,\n uploadText: uploadText.value,\n uploadFiles: props.uploadFiles,\n },\n })\n ) : (\n props.uploadFiles?.()}\n {...(isObject(props.uploadButton) ? props.uploadButton : {})}\n >\n ))}\n
    \n )}\n\n t.url || t.raw)}\n visible={!!currentPreviewFile.value.length}\n onClose={() => {\n currentPreviewFile.value = [];\n }}\n index={previewIndex.value}\n onIndexChange={(val) => (previewIndex.value = val)}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, toRefs } from 'vue';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { useContent } from '../../hooks/tnode';\nimport { TdUploadProps } from '../type';\n\nexport interface CustomFileProps extends CommonDisplayFileProps {\n dragEvents: UploadDragEvents;\n draggable?: boolean;\n // 拖拽区域\n dragContent?: TdUploadProps['dragContent'];\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n childrenNode?: any;\n}\n\nexport default defineComponent({\n name: 'UploadCustomFile',\n props: {\n ...commonProps,\n dragEvents: Object as PropType,\n draggable: Boolean,\n // 拖拽区域\n dragContent: Function as PropType,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n childrenNode: [String, Function] as PropType,\n },\n setup(props, { slots }) {\n const { classPrefix, displayFiles, accept } = toRefs(props);\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const renderContent = useContent();\n\n const renderDragContent = () => {\n const params = { dragActive: dragActive.value || false, files: displayFiles.value };\n return (\n \n
    \n {renderContent('dragContent', 'trigger', { params }) || props.childrenNode?.(params)}\n
    \n \n );\n };\n\n return () => (\n <>\n {props.draggable ? (\n renderDragContent()\n ) : (\n
    \n {props.childrenNode?.({ files: displayFiles.value }) || slots.default?.()}\n
    \n )}\n \n );\n },\n});\n","import { isFunction, isNumber } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport { getCurrentDate, isOverSizeLimit } from './utils';\nimport xhr from './xhr';\nimport log from '../log/log';\nimport {\n UploadFile,\n SizeLimitObj,\n FileChangeParams,\n FileChangeReturn,\n RequestMethodResponse,\n HandleUploadParams,\n SuccessContext,\n handleSuccessParams,\n UploadTriggerUploadText,\n ErrorContext,\n ResponseType,\n} from './types';\n\nexport interface BeforeUploadExtra {\n /** 图片文件大小限制 */\n sizeLimit?: number | SizeLimitObj;\n /** 上传文件之前的钩子,参数为上传的文件,返回值决定是否上传 */\n beforeUpload?: (file: UploadFile) => boolean | Promise;\n}\n\nexport type BeforeUploadPromiseList = [Promise, undefined | Promise]\n\nexport function handleBeforeUpload(\n file: UploadFile, params: BeforeUploadExtra,\n): Promise<[SizeLimitObj, boolean]> {\n const { sizeLimit, beforeUpload } = params;\n // 文件大小校验\n const sizePromise = new Promise((resolve) => {\n let result: SizeLimitObj = null;\n if (sizeLimit) {\n const sizeLimitObj: SizeLimitObj = isNumber(sizeLimit)\n ? { size: sizeLimit, unit: 'KB' }\n : sizeLimit;\n const limit = isOverSizeLimit(file.size, sizeLimitObj.size, sizeLimitObj.unit);\n if (limit) {\n result = sizeLimitObj;\n }\n }\n resolve(result);\n });\n\n // 自定义校验\n const promiseList: BeforeUploadPromiseList = [sizePromise, undefined];\n if (isFunction(beforeUpload)) {\n const r = beforeUpload(file);\n const p = r instanceof Promise ? r : (new Promise((resolve) => resolve(r)));\n promiseList[1] = p;\n }\n\n // 同时进行文件大小校验和自定义校验函数\n return new Promise((resolve) => {\n Promise.all(promiseList).then((r) => {\n resolve(r);\n });\n });\n}\n\nexport interface OnErrorParams extends ErrorContext {\n formatResponse?: HandleUploadParams['formatResponse'];\n}\n\nexport function handleError(options: OnErrorParams) {\n const { event, files, response, XMLHttpRequest, formatResponse } = options;\n let res = response;\n if (isFunction(formatResponse)) {\n res = formatResponse(response, { file: files[0], currentFiles: files });\n }\n files.forEach((file) => {\n file.status = 'fail';\n file.response = res;\n });\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport function handleSuccess(params: handleSuccessParams) {\n const { event, files, response, XMLHttpRequest } = params;\n if (files?.length <= 0) {\n log.error('Upload', 'Empty File in Success Callback');\n }\n files.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n delete file.response?.error;\n });\n const res = response;\n files[0].url = res.url || files[0].url;\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport type UploadRequestReturn = {\n status?: 'fail' | 'success';\n /** 上传失败的文件,需等待继续上传 */\n failedFiles?: UploadFile[];\n data?: SuccessContext;\n /** 批量文件上传,一个文件一个请求的场景下,响应结果的列表 */\n list?: UploadRequestReturn[];\n}\n\nexport function handleRequestMethodResponse(res: RequestMethodResponse) {\n if (!res) {\n log.error('Upload', '`requestMethodResponse` is required.');\n return false;\n }\n if (!res.status) {\n log.error('Upload', '`requestMethodResponse.status` is missing, which value only can be `success` or `fail`');\n return false;\n }\n if (!['success', 'fail'].includes(res.status)) {\n log.error('Upload', '`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: \\'success\\', response: { url: \\'\\' } }`');\n return false;\n }\n if (res.status === 'success' && (!res.response || (!res.response.url && !res.response.files))) {\n log.warn('Upload', '`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`');\n }\n return true;\n}\n\n/**\n * 一次上传请求的返回结果\n */\nexport function uploadOneRequest(params: HandleUploadParams): Promise {\n const { action, toUploadFiles, requestMethod } = params;\n return new Promise((resolve) => {\n if (!action && !requestMethod) {\n log.error('Upload', 'one of action and requestMethod must be exist.');\n resolve({});\n return;\n }\n if (!toUploadFiles || !toUploadFiles.length) {\n log.warn('Upload', 'No files need to be uploaded');\n resolve({});\n return;\n }\n toUploadFiles.forEach((file) => {\n file.status = 'progress';\n });\n // 自定义上传方法\n if (requestMethod) {\n requestMethod(params.multiple ? toUploadFiles : toUploadFiles[0]).then((res) => {\n if (!handleRequestMethodResponse(res)) {\n resolve({});\n return;\n }\n let response = (res.response || {}) as ResponseType;\n if (isFunction(params.formatResponse)) {\n response = params.formatResponse(response, { file: toUploadFiles[0], currentFiles: toUploadFiles });\n }\n if (res.status === 'fail') {\n response.error = res.error || response.error;\n }\n let resultFiles: UploadFile[] = [];\n if (res.status === 'success' && response.files) {\n // 一个请求上传并返回多个文件\n resultFiles = response.files.map((file: UploadFile) => {\n const fileInfo = toUploadFiles.find((toFile) => (\n (file.name && toFile.name === file.name) || (file.raw && toFile.raw === file.raw)\n ));\n return {\n ...fileInfo,\n ...file,\n status: res.status,\n response,\n };\n });\n } else {\n // 一个请求上传并返回一个文件\n toUploadFiles.forEach((file) => {\n file.status = res.status;\n file.response = response;\n file.url = response.url;\n file.percent = res.status === 'success' ? 100 : 0;\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n resultFiles = toUploadFiles;\n }\n const result = {\n response,\n file: resultFiles[0],\n files: resultFiles,\n };\n if (res.status === 'success') {\n params.onResponseSuccess?.(result);\n } else if (res.status === 'fail') {\n params.onResponseError?.(result);\n }\n resolve({\n status: res.status,\n data: result,\n });\n });\n } else {\n const xhrReq = xhr({\n action: params.action,\n files: params.toUploadFiles,\n useMockProgress: params.useMockProgress,\n mockProgressDuration: params.mockProgressDuration,\n onError: (p: ErrorContext) => {\n const r = handleError({ ...p, formatResponse: params.formatResponse });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n },\n onProgress: params.onResponseProgress,\n onSuccess: (p: SuccessContext) => {\n const { formatResponse } = params;\n let res = p.response;\n if (isFunction(formatResponse)) {\n res = formatResponse(p.response, {\n file: p.file,\n currentFiles: p.files,\n });\n }\n if (res.error) {\n const r = handleError({ ...p, response: res });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n } else {\n p.file.response = res;\n p.files[0].response = res;\n const r = handleSuccess({ ...p, response: res });\n params.onResponseSuccess?.(r);\n resolve({ status: 'success', data: r });\n }\n },\n formatRequest: params.formatRequest,\n data: params.data,\n name: params.name,\n headers: params.headers,\n withCredentials: params.withCredentials,\n method: params.method,\n });\n params.setXhrObject?.({\n files: params.toUploadFiles,\n xhrReq,\n });\n }\n });\n}\n\nfunction updateUploadedFiles(uploadFiles: UploadFile[], resultFiles: UploadFile[]) {\n const existFiles = uploadFiles.filter((t) => t.url);\n const newFiles = existFiles;\n for (let i = 0, len = resultFiles.length; i < len; i++) {\n const file = resultFiles[i];\n const index = uploadFiles.findIndex((item) => (\n (item.raw && item.raw === file.raw) || (item.name && item.name === file.name)\n ));\n const tmpFile = index >= 0 ? { ...uploadFiles[index], ...file } : file;\n newFiles.push(tmpFile);\n }\n return newFiles;\n}\n\n/**\n * 可能单个文件上传,也可能批量文件一次性上传\n * 返回上传成功或上传失败的文件列表\n */\nexport function upload(params: HandleUploadParams):\nPromise {\n const { uploadAllFilesInOneRequest, toUploadFiles, uploadedFiles, isBatchUpload } = params;\n // 一批文件上传,部分文件失败,重新上传失败的文件\n const thisUploadFiles = toUploadFiles.filter((t) => (\n !t.response || (t.response && !t.response.error)\n ));\n return new Promise((resolve) => {\n // 所有文件一次性上传\n if (uploadAllFilesInOneRequest || !params.multiple) {\n uploadOneRequest(params).then((r) => {\n if (r.status === 'success') {\n r.data.files = isBatchUpload || !params.multiple\n ? r.data.files\n : updateUploadedFiles(uploadedFiles, r.data.files);\n }\n const failedFiles = r.status === 'fail' ? r.data.files : [];\n resolve({ ...r, failedFiles });\n });\n return;\n }\n // 一个文件一个文件上传\n const list = thisUploadFiles.map((file) => (\n uploadOneRequest({ ...params, toUploadFiles: [file] })\n ));\n Promise.all(list).then((arr) => {\n const files: UploadFile[] = [];\n const failedFiles: UploadFile[] = [];\n arr.forEach((one) => {\n if (one.status === 'success') {\n files.push(one.data.files[0]);\n } else if (one.status === 'fail') {\n failedFiles.push(one.data.files[0]);\n }\n });\n const tFiles = params.autoUpload\n ? uploadedFiles.concat(files)\n : uploadedFiles;\n const newFiles = isBatchUpload || !params.multiple ? files : tFiles;\n resolve({\n status: files.length ? 'success' : 'fail',\n data: {\n files: newFiles,\n },\n // 上传失败的文件,需等待继续上传\n failedFiles,\n list: arr,\n });\n });\n });\n}\n\nexport function formatToUploadFile(\n files: File[],\n format: FileChangeParams['format'],\n status: UploadFile['status'] = undefined,\n percent = 0,\n) {\n return files.map((fileRaw: File) => {\n let file: UploadFile = fileRaw;\n if (isFunction(format)) {\n file = format(fileRaw);\n }\n const uploadFile: UploadFile = {\n raw: fileRaw,\n lastModified: fileRaw.lastModified,\n name: fileRaw.name,\n size: fileRaw.size,\n type: fileRaw.type,\n percent,\n status,\n ...file,\n };\n return uploadFile;\n });\n}\n\nexport function validateFile(\n params: FileChangeParams\n): Promise {\n const { files, uploadValue, max, allowUploadDuplicateFile } = params;\n return new Promise((resolve) => {\n // 是否允许相同的文件名存在\n let tmpFiles = files.filter((file) => {\n const sameNameFile = uploadValue.find((t) => t.name === file.name);\n return allowUploadDuplicateFile || !sameNameFile;\n });\n\n let hasSameNameFile = false;\n if (tmpFiles.length < files.length) {\n hasSameNameFile = true;\n }\n if (!tmpFiles.length) {\n const tFiles = formatToUploadFile(files, params.format, params.autoUpload ? 'progress' : 'waiting');\n resolve({ hasSameNameFile, file: tFiles?.[0], files: tFiles, validateResult: { type: 'FILTER_FILE_SAME_NAME' } });\n return;\n }\n // 上传文件数量限制\n let lengthOverLimit = false;\n if (max && tmpFiles.length && !params.isBatchUpload) {\n const tmpFilesLenToBeAdded = tmpFiles.length;\n tmpFiles = tmpFiles.slice(0, max - uploadValue.length);\n if (tmpFilesLenToBeAdded + uploadValue.length > max) {\n lengthOverLimit = true;\n }\n }\n\n // 格式化文件对象\n const formattedFiles = formatToUploadFile(tmpFiles, params.format, params.autoUpload ? 'progress' : 'waiting');\n\n // 全量文件,一波校验,整体上传 或 终止上传\n let allFileValidatePromise;\n if (params.beforeAllFilesUpload) {\n const r = params.beforeAllFilesUpload?.(formattedFiles);\n allFileValidatePromise = r instanceof Promise ? r : new Promise((resolve) => resolve(r));\n }\n\n // 单文件合法性校验,一个文件校验不通过其他文件可继续上传\n const promiseList = formattedFiles.map((file: UploadFile) => new Promise((resolve) => {\n handleBeforeUpload(\n file,\n { beforeUpload: params.beforeUpload, sizeLimit: params.sizeLimit },\n ).then(([sizeResult, customResult]) => {\n if (sizeResult) {\n resolve({ file, validateResult: { type: 'FILE_OVER_SIZE_LIMIT', extra: sizeResult } });\n } else if (customResult === false) {\n resolve({ file, validateResult: { type: 'CUSTOM_BEFORE_UPLOAD' } });\n }\n resolve({ file });\n });\n }));\n Promise.all([allFileValidatePromise].concat(promiseList)).then((results) => {\n const [allFilesResult, ...others] = results;\n // 如果 beforeAllFilesUpload 校验未通过\n if (allFilesResult === false) {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n validateResult: { type: 'BEFORE_ALL_FILES_UPLOAD' },\n files: formattedFiles,\n });\n } else {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n fileValidateList: others,\n files: formattedFiles,\n });\n }\n });\n });\n}\n\nexport function getFilesAndErrors(fileValidateList: FileChangeReturn[], getError: (p: {[key: string]: any }) => string) {\n const sizeLimitErrors: FileChangeReturn[] = [];\n const beforeUploadErrorFiles: UploadFile[] = [];\n const toFiles: UploadFile[] = [];\n fileValidateList.forEach((oneFile) => {\n if (oneFile.validateResult?.type === 'CUSTOM_BEFORE_UPLOAD') {\n beforeUploadErrorFiles.push(oneFile.file);\n return;\n }\n if (oneFile.validateResult?.type === 'FILE_OVER_SIZE_LIMIT') {\n if (!oneFile.file.response) {\n oneFile.file.response = {};\n }\n oneFile.file.response.error = oneFile.file.response.error\n || getError(oneFile.validateResult.extra);\n sizeLimitErrors.push(oneFile);\n return;\n }\n toFiles.push(oneFile.file);\n });\n\n return { sizeLimitErrors, beforeUploadErrorFiles, toFiles };\n}\n\n/**\n * 获取文件上传触发元素文本 在全局配置中的字段\n */\nexport function getTriggerTextField(p: {\n status: 'success' | 'fail' | 'progress' | 'waiting',\n multiple: boolean,\n autoUpload: boolean;\n isBatchUpload: boolean;\n}): keyof UploadTriggerUploadText {\n if (p.isBatchUpload && p.status) return 'reupload';\n if (p.status === 'fail') return 'reupload';\n if (p.status === 'progress') return 'uploading';\n if (p.status === 'success' || (!p.autoUpload && p.status === 'waiting')) {\n return p.multiple ? 'continueUpload' : 'reupload';\n }\n return 'fileInput';\n}\n\nexport interface GetDisplayFilesParams {\n multiple: boolean;\n autoUpload: boolean;\n isBatchUpload: boolean;\n uploadValue: UploadFile[];\n toUploadFiles: UploadFile[];\n}\n\n/**\n * 获取文件列表显示\n */\nexport function getDisplayFiles(params: GetDisplayFilesParams) {\n const { multiple, uploadValue, toUploadFiles, autoUpload } = params;\n const waitingUploadFiles = autoUpload\n ? toUploadFiles\n : toUploadFiles.filter((file) => file.status !== 'success');\n if (multiple && !params.isBatchUpload) {\n if (!autoUpload) return uploadValue;\n return (waitingUploadFiles.length ? uploadValue.concat(waitingUploadFiles) : uploadValue) || [];\n }\n return (waitingUploadFiles.length ? waitingUploadFiles : uploadValue) || [];\n}\n","import { isFunction } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport log from '../log/log';\nimport { UploadFile, XhrOptions } from './types';\nimport { getCurrentDate } from './utils';\n\nexport default function xhr({\n method = 'POST',\n action,\n withCredentials = false,\n headers = {},\n data = {},\n file,\n files = [],\n name = 'file',\n useMockProgress = true,\n mockProgressDuration = 300,\n formatRequest,\n onError,\n onProgress,\n onSuccess,\n}: XhrOptions) {\n // support files\n const innerFiles: UploadFile[] = files || [];\n let percent = 0;\n\n // eslint-disable-next-line no-shadow\n const xhr = new XMLHttpRequest();\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n let timer1: NodeJS.Timeout;\n let timer2: NodeJS.Timeout;\n if (useMockProgress && files[0]?.status === 'progress') {\n // 超过 500 毫秒再开启虚拟进度\n const timer2 = setTimeout(() => {\n // 只有真实进度一直不存在时才需要模拟进度\n timer1 = setInterval(() => {\n if (percent + 10 < 100) {\n percent = Math.max(percent + 10, percent);\n if (files[0] && percent !== files[0].percent) {\n files[0].percent = percent;\n onProgress({\n percent,\n file: file || innerFiles[0],\n files: innerFiles.map((file) => ({ ...file, percent })),\n type: 'mock',\n XMLHttpRequest: xhr,\n });\n }\n } else {\n clearInterval(timer1);\n }\n }, mockProgressDuration);\n clearTimeout(timer2);\n }, mockProgressDuration);\n }\n\n let requestData: { [key: string]: any } = {};\n if (data) {\n const extraData = isFunction(data) ? data(innerFiles) : data;\n Object.assign(requestData, extraData);\n }\n innerFiles.forEach((file, index) => {\n const fileField = innerFiles.length > 1 ? `${name}[${index}]` : name;\n requestData[fileField] = file.raw;\n });\n if (innerFiles.length === 1) {\n requestData[name] = innerFiles[0].raw;\n } else {\n requestData[name] = innerFiles.map((file) => file.raw);\n }\n requestData.length = innerFiles.length;\n\n if (formatRequest) {\n requestData = formatRequest(requestData);\n }\n\n // set send data\n const formData = new FormData();\n Object.keys(requestData).forEach((key) => {\n formData.append(key, requestData[key]);\n });\n\n xhr.open(method, action, true);\n // custom request headers\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n\n xhr.onerror = (event: ProgressEvent) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n clearInterval(timer1);\n clearTimeout(timer2);\n };\n\n xhr.ontimeout = (event) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n };\n\n if (xhr.upload) {\n xhr.upload.onprogress = (event: ProgressEvent) => {\n let realPercent = 0;\n if (event.total > 0) {\n realPercent = Math.round((event.loaded / event.total) * 100);\n }\n percent = Math.max(realPercent, percent);\n if (percent !== realPercent && innerFiles[0]?.percent !== percent) {\n const progressFiles = innerFiles.map((item) => ({ ...item, percent }));\n onProgress({\n event,\n percent,\n file: file || progressFiles[0],\n files: progressFiles,\n type: 'real',\n XMLHttpRequest: xhr,\n });\n }\n };\n }\n\n // eslint-disable-next-line consistent-return\n xhr.onload = (event: ProgressEvent) => {\n let response: { [key: string]: any } = {};\n response.XMLHttpRequest = xhr;\n const isFail = xhr.status < 200 || xhr.status >= 300;\n if (isFail) {\n return onError({\n event,\n file,\n files: innerFiles,\n response,\n XMLHttpRequest: xhr,\n });\n }\n const text = xhr.responseText || xhr.response;\n try {\n response = JSON.parse(text);\n } catch (e) {\n response = text;\n log.error('Upload', 'response does not a valid json');\n }\n clearInterval(timer1);\n clearTimeout(timer2);\n innerFiles.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n if (typeof response === 'object') {\n response.XMLHttpRequest = xhr;\n }\n onSuccess({\n event,\n file: file || innerFiles[0],\n files: [...innerFiles],\n XMLHttpRequest: xhr,\n response,\n });\n };\n\n xhr.send(formData);\n // @ts-ignore\n xhr.upload.requestParams = requestData;\n // @ts-ignore\n xhr.upload.requestHeaders = headers;\n\n return xhr;\n}\n","import { ref, computed, toRefs } from 'vue';\nimport { merge } from 'lodash-es';\nimport { SizeLimitObj, TdUploadProps, UploadChangeContext, UploadFile, UploadRemoveContext } from '../type';\nimport {\n getFilesAndErrors,\n validateFile,\n upload,\n getTriggerTextField,\n getDisplayFiles,\n formatToUploadFile,\n} from '@tdesign/common-js/upload/main';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport useVModel from '../../hooks/useVModel';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport type ValidateParams = Parameters[0];\n\n/**\n * 上传组件全部逻辑,方便脱离 UI,自定义 UI 组件\n */\nexport default function useUpload(props: TdUploadProps) {\n const inputRef = ref();\n // TODO: Form 表单控制上传组件是否禁用\n const { disabled, autoUpload, isBatchUpload, multiple, files, modelValue, defaultFiles } = toRefs(props);\n const { globalConfig, t, classPrefix } = useConfig('upload');\n const [uploadValue, setUploadValue] = useVModel(files, modelValue, defaultFiles.value, props.onChange, 'files');\n const xhrReq = ref<{ files: UploadFile[]; xhrReq: XMLHttpRequest }[]>([]);\n const toUploadFiles = ref([]);\n const sizeOverLimitMessage = ref('');\n\n const locale = computed(() => merge({}, globalConfig.value, props.locale));\n\n const tipsClasses = `${classPrefix.value}-upload__tips ${classPrefix.value}-size-s`;\n const errorClasses = [tipsClasses].concat(`${classPrefix.value}-upload__tips-error`);\n const placeholderClass = `${classPrefix.value}-upload__placeholder`;\n\n // 单文件场景:触发元素文本\n const triggerUploadText = computed(() => {\n const field = getTriggerTextField({\n isBatchUpload: isBatchUpload.value,\n multiple: multiple.value,\n status: uploadValue.value?.[0]?.status,\n autoUpload: autoUpload.value,\n }) as keyof typeof locale.value.triggerUploadText;\n return locale.value.triggerUploadText[field];\n });\n\n const uploading = ref(false);\n\n // 文件列表显示的内容(自动上传和非自动上传有所不同)\n const displayFiles = computed(() => {\n return getDisplayFiles({\n multiple: props.multiple,\n toUploadFiles: toUploadFiles.value,\n uploadValue: uploadValue.value,\n autoUpload: autoUpload.value,\n isBatchUpload: isBatchUpload.value,\n });\n });\n\n const uploadFilePercent = (params: { file: UploadFile; percent: number }) => {\n const { file, percent } = params;\n const operationUploadFiles = autoUpload.value ? toUploadFiles : uploadValue;\n const index = operationUploadFiles.value.findIndex((item) => file.raw === item.raw);\n operationUploadFiles.value[index] = { ...operationUploadFiles.value[index], percent };\n };\n\n const updateFilesProgress = () => {\n if (props.autoUpload) {\n toUploadFiles.value = [...toUploadFiles.value];\n }\n };\n\n const onResponseError = (p: OnResponseErrorContext) => {\n if (!p || !p.files || !p.files[0]) return;\n const { response, event, files } = p;\n updateFilesProgress();\n props.onOneFileFail?.({\n e: event,\n file: files?.[0],\n currentFiles: files,\n failedFiles: files,\n response,\n });\n // 单选或多文件替换,需要清空上一次上传成功的文件\n if (!props.multiple || props.isBatchUpload) {\n setUploadValue([], {\n trigger: 'progress-fail',\n e: p.event,\n file: p.files[0],\n });\n }\n };\n\n // 多文件上传场景,单个文件进度\n const onResponseProgress = (p: InnerProgressContext) => {\n updateFilesProgress();\n props.onProgress?.({\n e: p.event,\n file: p.file,\n currentFiles: p.files,\n percent: p.percent,\n type: p.type,\n XMLHttpRequest: p.XMLHttpRequest,\n });\n };\n\n // 多文件上传场景,单个文件上传成功后\n const onResponseSuccess = (p: SuccessContext) => {\n // 只有多个上传请求同时触发时才需 onOneFileSuccess\n if (props.multiple && !props.uploadAllFilesInOneRequest) {\n updateFilesProgress();\n props.onOneFileSuccess?.({\n e: p.event,\n file: p.files[0],\n response: p.response,\n });\n }\n };\n\n function getSizeLimitError(sizeLimitObj: SizeLimitObj) {\n const limit = sizeLimitObj;\n return limit.message\n ? t(limit.message, { sizeLimit: limit.size })\n : `${t(locale.value.sizeLimitMessage, { sizeLimit: limit.size })} ${limit.unit}`;\n }\n\n const handleNotAutoUpload = (toFiles: UploadFile[]) => {\n const tmpFiles = props.multiple && !isBatchUpload.value ? uploadValue.value.concat(toFiles) : toFiles;\n if (!tmpFiles.length) return;\n setUploadValue(tmpFiles, {\n trigger: 'add',\n index: uploadValue.value.length,\n file: toFiles[0],\n files: toFiles,\n });\n toUploadFiles.value = [];\n };\n\n const onFileChange = (files: File[]) => {\n if (disabled.value) return;\n const params = { currentSelectedFiles: formatToUploadFile([...files], props.format) };\n props.onSelectChange?.([...files], params);\n validateFile({\n uploadValue: uploadValue.value,\n // @ts-ignore\n files: [...files],\n allowUploadDuplicateFile: props.allowUploadDuplicateFile,\n max: props.multiple ? props.max : 0,\n sizeLimit: props.sizeLimit,\n isBatchUpload: isBatchUpload.value,\n autoUpload: autoUpload.value,\n format: props.format,\n beforeUpload: props.beforeUpload,\n beforeAllFilesUpload: props.beforeAllFilesUpload,\n }).then((args) => {\n // 自定义全文件校验不通过\n if (args.validateResult?.type === 'BEFORE_ALL_FILES_UPLOAD') {\n const params: ValidateParams = { type: 'BEFORE_ALL_FILES_UPLOAD', files: args.files };\n props.onValidate?.(params);\n return;\n }\n // 文件数量校验不通过\n if (args.lengthOverLimit) {\n const params: ValidateParams = { type: 'FILES_OVER_LENGTH_LIMIT', files: args.files };\n props.onValidate?.(params);\n if (!args.files.length) return;\n }\n // 过滤相同的文件名\n if (args.hasSameNameFile) {\n const params: ValidateParams = { type: 'FILTER_FILE_SAME_NAME', files: args.files };\n props.onValidate?.(params);\n }\n // 文件大小校验结果处理(已过滤超出限制的文件)\n if (args.fileValidateList instanceof Array) {\n const { sizeLimitErrors, beforeUploadErrorFiles, toFiles } = getFilesAndErrors(\n args.fileValidateList,\n getSizeLimitError,\n );\n const tmpWaitingFiles = autoUpload.value ? toFiles : toUploadFiles.value.concat(toFiles);\n toUploadFiles.value = tmpWaitingFiles;\n props.onWaitingUploadFilesChange?.({ files: tmpWaitingFiles, trigger: 'validate' });\n // 文件大小处理\n if (sizeLimitErrors[0]) {\n sizeOverLimitMessage.value = sizeLimitErrors[0].file.response.error;\n props.onValidate?.({ type: 'FILE_OVER_SIZE_LIMIT', files: sizeLimitErrors.map((t) => t.file) });\n } else {\n sizeOverLimitMessage.value = '';\n // 自定义方法 beforeUpload 拦截的文件\n if (beforeUploadErrorFiles.length) {\n const params: ValidateParams = { type: 'CUSTOM_BEFORE_UPLOAD', files: beforeUploadErrorFiles };\n props.onValidate?.(params);\n }\n }\n // 如果是自动上传\n if (autoUpload.value) {\n uploadFiles(tmpWaitingFiles);\n } else {\n handleNotAutoUpload(tmpWaitingFiles);\n }\n }\n });\n\n // 清空 元素的文件,避免出现重复文件无法选择的情况\n inputRef.value.value = null;\n };\n\n const onNormalFileChange = (e: InputEvent) => {\n const fileList = getFileList((e.target as HTMLInputElement).files);\n onFileChange?.(fileList);\n };\n\n function onDragFileChange(files: File[]) {\n onFileChange?.(files);\n }\n\n function onPasteFileChange(e: ClipboardEvent) {\n onFileChange?.([...e.clipboardData.files]);\n }\n\n /**\n * 上传文件。对外暴露方法,修改时需谨慎\n * @param toFiles 本地上传的文件列表\n */\n function uploadFiles(toFiles?: UploadFile[]) {\n const notUploadedFiles = uploadValue.value.filter((t) => t.status !== 'success');\n const files = autoUpload.value ? toFiles || toUploadFiles.value : notUploadedFiles;\n if (!files || !files.length) return;\n uploading.value = true;\n xhrReq.value = [];\n upload({\n action: props.action,\n headers: props.headers,\n method: props.method,\n name: props.name,\n withCredentials: props.withCredentials,\n uploadedFiles: uploadValue.value,\n toUploadFiles: files,\n multiple: props.multiple,\n isBatchUpload: isBatchUpload.value,\n autoUpload: props.autoUpload,\n uploadAllFilesInOneRequest: props.uploadAllFilesInOneRequest,\n useMockProgress: props.useMockProgress,\n data: props.data,\n mockProgressDuration: props.mockProgressDuration,\n requestMethod: props.requestMethod,\n formatRequest: props.formatRequest,\n formatResponse: props.formatResponse,\n onResponseProgress,\n onResponseSuccess,\n onResponseError,\n setXhrObject: (xhr) => {\n if (xhr.files[0]?.raw && xhrReq.value.find((item) => item.files[0]?.raw === xhr.files[0].raw)) return;\n xhrReq.value = xhrReq.value.concat(xhr);\n },\n }).then(\n // 多文件场景时,全量文件完成后\n ({ status, data, list, failedFiles }) => {\n uploading.value = false;\n if (status === 'success') {\n setUploadValue([...data.files], {\n trigger: 'add',\n file: data.files[0],\n });\n xhrReq.value = [];\n props.onSuccess?.({\n fileList: data.files,\n currentFiles: files,\n file: files[0],\n // 只有全部请求完成后,才会存在该字段\n results: list?.map((t) => t.data),\n // 单文件单请求有一个 response,多文件多请求有多个 response\n response: data.response || list.map((t) => t.data.response),\n XMLHttpRequest: data.XMLHttpRequest,\n });\n } else if (failedFiles?.[0]) {\n props.onFail?.({\n e: data.event,\n file: failedFiles[0],\n failedFiles,\n currentFiles: files,\n response: data.response,\n XMLHttpRequest: data.XMLHttpRequest,\n });\n }\n\n // 非自动上传,文件都在 uploadValue,不涉及 toUploadFiles\n if (autoUpload.value) {\n toUploadFiles.value = failedFiles;\n props.onWaitingUploadFilesChange?.({ files: failedFiles, trigger: 'uploaded' });\n }\n },\n );\n }\n\n function onInnerRemove(p: UploadRemoveContext) {\n sizeOverLimitMessage.value = '';\n p.e.stopPropagation?.();\n const changePrams: UploadChangeContext = {\n e: p.e,\n trigger: 'remove',\n index: p.index,\n file: p.file,\n };\n // remove all files for batchUpload\n if (props.isBatchUpload || !props.multiple) {\n toUploadFiles.value = [];\n props.onWaitingUploadFilesChange?.({ files: [], trigger: 'remove' });\n setUploadValue([], changePrams);\n } else if (!props.autoUpload) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n // autoUpload 场景下, p.index < uploadValue.length 表示移除已经上传成功的文件;反之表示移除待上传列表文件\n // eslint-disable-next-line\n if (p.index < uploadValue.value.length) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n toUploadFiles.value.splice(p.index - uploadValue.value.length, 1);\n toUploadFiles.value = [...toUploadFiles.value];\n props.onWaitingUploadFilesChange?.({ files: [...toUploadFiles.value], trigger: 'remove' });\n }\n }\n props.onRemove?.(p);\n }\n\n const triggerUpload = (e?: MouseEvent) => {\n if (disabled.value || !inputRef.value) return;\n e?.stopPropagation?.();\n (inputRef.value as HTMLInputElement).click();\n };\n\n const cancelUpload = (context?: { file?: UploadFile; e?: MouseEvent }) => {\n xhrReq.value?.forEach((item) => {\n item.xhrReq?.abort();\n });\n uploading.value = false;\n\n // autoUpload do not need to reset to waiting state\n if (autoUpload.value) {\n toUploadFiles.value = [];\n } else {\n setUploadValue(\n uploadValue.value.map((item) => {\n if (item.status !== 'success') {\n return { ...item, status: 'waiting' };\n }\n return item;\n }),\n { trigger: 'abort' },\n );\n }\n\n if (context?.file && !autoUpload.value) {\n onInnerRemove?.({ file: context.file, e: context.e, index: 0 });\n }\n\n props.onCancelUpload?.();\n };\n\n return {\n t,\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n uploadValue,\n displayFiles,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n disabled,\n xhrReq,\n uploadFilePercent,\n uploadFiles,\n onFileChange,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n onInnerRemove,\n triggerUpload,\n cancelUpload,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport { UploadIcon as TdUploadIcon } from 'tdesign-icons-vue-next';\nimport props from './props';\nimport NormalFile from './components/normal-file';\nimport DraggerFile from './components/dragger-file';\nimport ImageCard from './components/image-card';\nimport MultipleFlowList from './components/multiple-flow-list';\nimport Button from '../button';\nimport { CommonDisplayFileProps, UploadProps } from './types';\nimport CustomFile from './components/custom-file';\n\nimport { UploadDragEvents } from './hooks/useDrag';\nimport useUpload from './hooks/useUpload';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\n\nexport default defineComponent({\n name: 'TUpload',\n props,\n setup(props: UploadProps, { slots, expose }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const {\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n displayFiles,\n uploadValue,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n onInnerRemove,\n uploadFiles,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n triggerUpload,\n cancelUpload,\n uploadFilePercent,\n } = useUpload(props);\n const disabled = useDisabled();\n\n const { UploadIcon } = useGlobalIcon({\n UploadIcon: TdUploadIcon,\n });\n\n const triggerUploadButtonText = computed(\n () => props.triggerButtonProps?.default || props.triggerButtonProps?.content || triggerUploadText.value,\n );\n\n expose({\n upload: inputRef.value,\n uploading,\n triggerUpload,\n uploadFiles,\n cancelUpload,\n uploadFilePercent,\n });\n\n const renderTrigger = () => {\n const getDefaultTrigger = () => {\n if (props.theme === 'file-input') {\n return (\n \n );\n }\n return (\n \n );\n };\n return (\n renderContent('default', 'trigger', {\n params: { dragActive: false, files: uploadValue.value },\n }) || getDefaultTrigger()\n );\n };\n\n const commonDisplayFileProps = computed(() => ({\n accept: props.accept,\n files: uploadValue.value,\n toUploadFiles: toUploadFiles.value,\n displayFiles: displayFiles.value,\n theme: props.theme,\n placeholder: props.placeholder,\n disabled: disabled.value,\n tips: props.tips,\n status: props.status,\n sizeOverLimitMessage: sizeOverLimitMessage.value,\n uploading: uploading.value,\n classPrefix: classPrefix.value,\n tipsClasses,\n errorClasses,\n placeholderClass,\n locale: locale.value,\n autoUpload: props.autoUpload,\n abridgeName: props.abridgeName,\n showUploadProgress: props.showUploadProgress,\n fileListDisplay: props.fileListDisplay,\n onRemove: onInnerRemove,\n uploadPastedFiles: props.uploadPastedFiles,\n onPasteFileChange: onPasteFileChange,\n imageViewerProps: props.imageViewerProps,\n }));\n\n const dragProps: UploadDragEvents = {\n onDragFileChange,\n onDragenter: props.onDragenter,\n onDragleave: props.onDragleave,\n onDrop: props.onDrop,\n };\n\n const uploadClasses = computed(() => [\n `${classPrefix.value}-upload`,\n {\n [`${classPrefix.value}-upload--theme-${props.theme}`]: props.theme === 'file-input',\n },\n ]);\n\n const getNormalFileNode = () => (\n \n
    \n {renderTrigger()}\n
    \n \n );\n\n const getSingleFileDraggerUploadNode = () => (\n \n );\n\n const getImageCardUploadNode = () => (\n \n );\n\n const getFlowListNode = () => (\n \n
    \n {!props.draggable && renderTrigger()}\n
    \n \n );\n\n const getCustomFile = () => (\n \n {renderTrigger()}\n \n );\n\n return () => (\n
    \n \n {['file', 'file-input'].includes(props.theme) && !props.draggable && getNormalFileNode()}\n {['file', 'image'].includes(props.theme) && props.draggable && getSingleFileDraggerUploadNode()}\n {props.theme === 'image' && !props.draggable && getImageCardUploadNode()}\n {['image-flow', 'file-flow'].includes(props.theme) && getFlowListNode()}\n {props.theme === 'custom' && getCustomFile()}\n\n {Boolean(props.tips || slots.tips) && (\n \n {renderTNodeJSX('tips')}\n \n )}\n {sizeOverLimitMessage.value && {sizeOverLimitMessage.value}}\n
    \n );\n },\n});\n","import _Upload from './upload';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './types';\n\nexport const Upload = withInstall(_Upload);\nexport default Upload;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdConfigProviderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 全局配置 */\n globalConfig: {\n type: Object as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { provideConfig } from './hooks/useConfig';\n\nexport default defineComponent({\n name: 'TConfigProvider',\n props,\n setup(props) {\n provideConfig(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n return () => <>{renderTNodeJSX('default')};\n },\n});\n","import withInstall from '../utils/withInstall';\nimport _ConfigProvider from './config-provider';\nimport { TdConfigProviderProps } from './type';\n\nexport * from './type';\nexport type ConfigProviderProps = TdConfigProviderProps;\n\nexport const ConfigProvider = withInstall(_ConfigProvider);\nexport default ConfigProvider;\n","import { App } from 'vue';\nimport * as components from './components';\n\nexport function install(app: App, config?: Record): void {\n Object.keys(components).forEach((key) => {\n if (/directive/i.test(key)) return;\n // @ts-ignore\n /plugin/i.test(key) ? app.use(components[key]) : app.use(components[key], config);\n });\n}\n\nexport * from './components';\nexport * from './common';\nexport default {\n install,\n version: typeof PKG_VERSION === 'undefined' ? '' : PKG_VERSION, // eslint-disable-line\n};\n"],"names":["_arrayLikeToArray","arr","len","length","i","arr2","Array","_iterableToArray","iter","Symbol","iterator","from","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","test","_toConsumableArray","isArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","TypeError","nonIterableSpread","_typeof","_toPropertyKey","arg","key","input","hint","prim","toPrimitive","undefined","res","String","Number","_defineProperty","obj","value","toPropertyKey","defineProperty","enumerable","configurable","writable","freeGlobal","global","freeSelf","self","root","Function","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","toStringTag","baseGetTag","isOwn","tag","unmasked","e","result","getRawTag","objectToString","isObjectLike","isSymbol","arrayMap","array","iteratee","index","isArray$1","symbolProto","symbolToString","baseToString","reWhitespace","reTrimStart","baseTrim","string","charAt","trimmedEndIndex","replace","isObject","type","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","INFINITY","toFinite","toInteger","remainder","identity","isFunction","uid","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","toSource","func","reIsHostCtor","funcProto","reIsNative","RegExp","baseIsNative","getNative","object","getValue","WeakMap","objectCreate","create","baseCreate","proto","copyArray","source","nativeNow","Date","now","count","lastCalled","baseSetToString","setToString","stamp","remaining","arguments","apply","baseIsNaN","arrayIncludes","fromIndex","strictIndexOf","predicate","fromRight","baseFindIndex","baseIndexOf","reIsUint","isIndex","baseAssignValue","eq","assignValue","objValue","copyObject","props","customizer","isNew","newValue","nativeMax","Math","max","overRest","start","transform","args","otherArgs","thisArg","this","baseRest","isLength","isArrayLike","isIterateeCall","createAssigner","assigner","sources","guard","isPrototype","Ctor","baseIsArguments","propertyIsEnumerable","isArguments","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer","typedArrayTags","baseUnary","freeProcess","process","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","push","overArg","nativeKeys","baseKeys","baseKeysIn","nativeKeysIn","isProto","keysIn","reIsDeepProp","reIsPlainProp","isKey","nativeCreate","Hash","entries","clear","entry","set","assocIndexOf","__data__","size","has","get","data","splice","ListCache","pop","Map","getMapData","map","MapCache","hash","memoize","resolver","memoized","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","charCodeAt","match","number","quote","subString","stringToPath$1","castPath","toKey","baseGet","path","defaultValue","arrayPush","values","offset","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","depth","isStrict","flatten","flatRest","getPrototype","getPrototypeOf","objectCtorString","isPlainObject","baseSlice","end","castSlice","reHasUnicode","hasUnicode","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","stringToArray","unicodeToArray","split","asciiToArray","methodName","upperFirst$1","strSymbols","chr","trailing","deburrLetter","reLatin","reComboMark","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","words","pattern","hasUnicodeWord","unicodeWords","asciiWords","reApos","createCompounder","callback","accumulator","initAccum","arrayReduce","deburr","camelCase","word","toLowerCase","upperFirst","camelCase$1","nativeCeil","ceil","chunk","resIndex","Stack","pairs","LARGE_ARRAY_SIZE","allocUnsafe","cloneBuffer","buffer","isDeep","copy","arrayFilter","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","getSymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","DataView","Promise","Set","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","getTag$1","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","reFlags","symbolValueOf","cloneTypedArray","typedArray","byteOffset","initCloneByTag","regexp","dataView","cloneDataView","lastIndex","initCloneObject","nodeIsMap","isMap","nodeIsSet","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","initCloneArray","isFunc","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","stacked","forEach","subValue","add","arrayEach","cloneDeep","CLONE_DEEP_FLAG","SetCache","arraySome","cacheHas","equalArrays","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","message","convert","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsEqual","isStrictComparable","matchesStrictComparable","srcValue","baseMatches","matchData","getMatchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsMatch","baseHasIn","hasIn","hasFunc","hasPath","baseProperty","property","basePropertyDeep","baseIteratee","baseFor","iterable","baseForOwn","baseEach","eachFunc","collection","createBaseEach","now$2","nativeMin","min","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","assignMergeValue","isArrayLikeObject","safeGet","baseMergeDeep","srcIndex","mergeFunc","isCommon","isTyped","baseMerge","mergeWith","_mergeWith","arrayIncludesWith","comparator","baseDifference","includes","valuesLength","outer","computed","valuesIndex","difference$1","last","reRegExpChar","reHasRegExpChar","escapeRegExp","baseFilter","baseGt","isString","castArrayLikeObject","intersection","arrays","mapped","caches","maxLength","Infinity","baseIntersection","intersection$1","isBoolean","nodeIsDate","isDate","isDate$3","isEmpty","isEqual","isNumber","isNil","isNull","isUndefined","kebabCase","kebabCase$1","baseLt","baseExtremum","current","merge","merge$2","baseUnset","parent","customOmitClone","omit","paths","omit$1","baseSet","nested","basePickBy","nativeFloor","floor","baseRepeat","asciiSize","stringSize","unicodeSize","padStart","chars","strLength","charsLength","createPadding","pick","basePick","pick$1","range","step","baseRange","createRange","range$1","remove","indexes","previous","basePullAt","sum","baseSum","throttle","createSet","baseUniq","seenIndex","idCounter","upperCase","toUpperCase","upperCase$1","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","r","l","t","u","a","f","next","done","iterableToArrayLimit","nonIterableRest","s","c","h","d","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","p","w","D","ms","Q","g","S","_","O","b","locale","$L","utc","$u","x","$x","$offset","parse","$d","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","extend","$i","isDayjs","en","Ls","default","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","ll","lll","llll","relativeTime","future","past","mm","hh","dd","MM","yy","require$$0","EAnimationType","defaultGlobalConfig","classPrefix","animation","include","exclude","attach","calendar","firstDayOfWeek","fillWithZero","controllerConfig","icon","autocomplete","dialog","closeOnEscKeydown","closeOnOverlayClick","confirmBtnTheme","info","warning","danger","success","popconfirm","table","expandIcon","sortIcon","filterIcon","treeExpandAndFoldIcon","hideSortTips","select","clearIcon","filterable","drawer","tree","folderIcon","datePicker","steps","checkIcon","errorIcon","closeIcon","form","requiredMark","empty","titleText","maintenance","fail","networkError","image","autoComplete","pagination","itemsPerPage","jumpTo","page","total","cascader","loadingText","placeholder","yearSelection","monthSelection","yearRadio","monthRadio","hideWeekend","showWeekend","today","thisMonth","week","cellMonth","transfer","title","timePicker","dayjsLocale","confirm","anteMeridiem","postMeridiem","content","loadingMoreText","filterInputPlaceholder","sortAscendingOperationText","sortCancelOperationText","sortDescendingOperationText","clearFilterResultButtonText","columnConfigButtonText","columnConfigTitleText","columnConfigDescriptionText","confirmText","cancelText","resetText","selectAllText","searchResultText","treeSelect","quarter","quarters","rangeSeparator","direction","dayAriaLabel","weekAbbreviation","yearAriaLabel","monthAriaLabel","selectTime","selectDate","nextYear","preYear","nextMonth","preMonth","preDecade","nextDecade","upload","sizeLimitMessage","cancelUploadText","triggerUploadText","fileInput","normal","reupload","continueUpload","delete","uploading","dragger","dragDropText","draggingText","clickAndDragText","file","fileNameText","fileSizeText","fileStatusText","fileOperationText","fileOperationDateText","progress","uploadingText","waitingText","failText","successText","errorMessage","url","required","whitespace","enum","idcard","telnumber","validator","boolean","colonText","list","alert","expandText","collapseText","anchor","copySuccessText","copyText","colorPicker","swatchColorTitle","recentColorTitle","clearConfirmText","singleColor","gradientColor","guide","finishButtonProps","theme","nextButtonProps","skipButtonProps","prevButtonProps","errorText","imageViewer","mirrorTipText","rotateTipText","originalSizeTipText","typography","copiedText","rate","rateText","descriptions","chat","stopBtnText","refreshTipText","copyTipText","likeTipText","dislikeTipText","copyCodeBtnText","copyCodeSuccessText","clearHistoryBtnText","copyTextSuccess","copyTextFail","confirmClearHistory","loadingEndText","configProviderInjectKey","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","getCurrentInstance","inject","mergedGlobalConfig","globalConfig","assign","_len","_key","translated","provideConfig","defaultData","injectConfig","provide","usePrefixClass","concat","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","error","selected","active","checked","hidden","visible","expanded","indeterminate","setStyle","el","styles","style","_objectWithoutProperties","excluded","target","sourceKeys","indexOf","objectWithoutPropertiesLoose","sourceSymbolKeys","getValidAttrs","newObj","getBackgroundColor","color","unshift","to","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","GradientIcon","defineComponent","setup","circleRef","onMounted","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","window","_window$getComputedSt","getComputedStyle","fontSize","ua","isSafari","isIosWechat","transformOrigin","matched","endColor","_objectSpread","background","circleAdapter","classes","_createVNode","class","viewBox","version","width","height","xmlns","createVNode","performance","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","hr","upTime","uptime","moduleLoadTime","loadTime","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","handle","rafModule","fn","raf$2","raf_1","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","element","event","handler","attachEvent","off","removeEventListener","detachEvent","hasClass","cls","Error","classList","contains","className","addClass","curClass","j","clsName","removeClass","getAttach","node","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","getScroll","isLeft","method","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","fnc","nextScrollTop","pageXOffset","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","requestSubmit","HTMLFormElement","submitter","createElement","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getPropertyValue","isFixed","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","hasOwn","val","getPropertyValFromObj","getDefaultNode","defaultNode","isVNode","getChildren","childList","innerGetChildren","item","children","Fragment","getParams","params","handleSlots","instance","_instance$$slots$came","_instance$$slots","_instance$$slots$keba","_instance$$slots2","$slots","renderTNodeJSX","propsNode","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","slots","filter","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","vProps","vnode","isPropExplicitlySet","useTNodeDefault","useContent","name1","name2","toParams","node1","node2","useTeleport","innerTriggerNode","getElement","watch","props$1x","delay","fullscreen","Boolean","indicator","inheritColor","preventScrollThrough","showOverlay","text","zIndex","_Loading","inheritAttrs","_ref","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","timer","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","Teleport","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","component","loadingOptions","reactive","render","LoadingComponent","app","createApp","mount","parentRelativeClass","console","hide","unmount","produceLoading","_fullScreenLoadingIns","LoadingPlugin","install","config","globalProperties","$loading","INSTANCE_KEY","createInstance","_binding$modifiers","modifiers","mapKeys","vLoading","mounted","updated","_value$loading","oldValue","unmounted","_el$INSTANCE_KEY","withInstall","comp","alias","directive","componentPlugin","Loading","props$1w","ghost","href","loadingProps","shape","variant","onClick","expand","ripple","fade","useRipple","fixedRippleColor","keepAnimation","rippleContainer","keepRipple","keepExpand","_animationConfig$excl","_animationConfig$incl","animationConfig","keepFade","handleAddRipple","dom","rippleColor","_el$dataset","dataset","cssVariable","getRippleColor","button","elStyle","elBorder","borderWidth","border","offsetWidth","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","child","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","TButton","COMPONENT_NAME","_useCommonClassName","btnRef","isDisabled","mergeTheme","buttonClass","buttonContent","TLoading","iconOnly","buttonAttrs","tabindex","Button","_Button","renderFn","kebabAttrs","reduce","camelString","camel2Kebab","DEFAULT_CLASS_PREFIX","ConfigContext","COMMON_SIZE_CLASS_NAMES","fill","addRectangle","useSizeProps","_useSizeProps","finalCls","finalStyle","finalProps","_props$onClick","arrowTriangleDownFilled","arrowTriangleUpFilled","backtop","browseOff","clipPath","browse","caretRightSmall","checkCircleFilled","check","chevronDown","chevronLeftDouble","chevronLeft","chevronRightCircle","chevronRightDouble","chevronRight","chevronUp","closeCircleFilled","close","_delete","download","edit1","ellipsis","errorCircleFilled","fileCopy","fileExcel","filePdf","filePowerpoint","fileWord","helpCircleFilled","imageError","infoCircleFilled","minusRectangle","mirror","pageFirst","pageLast","rotation","search","setting","starFilled","timeFilled","video","zoomIn","zoomOut","loadDefaultIcons","Icon","props2","propsSize","sizeClassName","sizeStyle","finalUrl","classNames","querySelectorAll","svg","setAttribute","_props2$onClick","props$1u","hover","prefixIcon","suffixIcon","underline","_Link","emits","emit","linkClass","handleClick","linkContent","prefix","Link","props$1t","align","gutter","justify","calcSize","useListener","listener","onBeforeUnmount","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1s","flex","lg","md","order","pull","sm","span","xxl","_Col","rowContext","colClasses","ColSizeClasses","acc","currSize","sizeProp","sizeObject","getColClasses","colStyle","paddingObj","getPaddingStyle","parseFlex","rowGutter","paddingLeft","paddingRight","Row","Col","_Layout","hasSide","props$1r","_Header","props$1q","_Footer","props$1p","_Aside","props$1o","_Content","Aside","Layout","Header","Footer","Content","props$1n","dashed","layout","_Divider","dividerClassNames","Divider","props$1m","breakLine","separator","useChildComponentSlots","childComponentName","_slots","_slots$default","_item$type$name","endsWith","useChildSlots","_slots$default2","Comment","flat","sizeMap","defaultNeedPolyfill","_chromeMatch$","_safariMatch$","_fireFoxMatch$","chromeMatch","safariMatch","fireFoxMatch","getFlexGapPolyFill","_Space","forceFlexGapPolyfill","getChildSlots","needPolyfill","renderStyle","renderGap","_renderGap$split2","columnGap","gap","separatorContent","spaceClassNames","renderChildren","showSeparator","_Fragment","Space","props$1l","bordered","colon","column","contentStyle","itemLayout","items","labelStyle","tableLayout","descriptionsKey","ItemsType","renderCustomNode","renderVNodeTNode","_node$props","prop","slot","itemTypeIsProps","itemsType","DescriptionsRow","row","itemType","descriptionsProps","layoutIsHorizontal","itemLayoutIsHorizontal","label","labelClass","labelSpan","colspan","contentClass","contentSpan","_Descriptions","getChildByName","getRows","temp","reset","_item$props","tableClass","props$1k","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","gen","reject","_next","_throw","then","_asyncToGenerator","err","__esModule","_regeneratorRuntime","asyncIterator","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","prev","stop","rval","complete","finish","catch","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","props$1j","offsetBottom","offsetTop","onFixedChange","_Affix","_document","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","handleScroll","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","_context","unbindScroll","onActivated","onDeactivated","expose","Affix","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","execCommand","actions_cut","selectedText","fakeCopyAction","fakeElement","isRTL","getAttribute","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","_defineProperties","descriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getAttributeValue","attribute","Clipboard","_Emitter","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","trigger","_this","_classCallCheck","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","delegateTarget","currentTarget","clearSelection","focus","getSelection","removeAllRanges","selector","destroy","actions","support","queryCommandSupported","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","__unused_webpack_exports","closest","_delegate","useCapture","listenerFn","elements","bind","nodeList","is","listenNode","listenNodeList","listenSelector","isReadOnly","setSelectionRange","selection","selectNodeContents","addRange","E","ctx","once","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","definition","ANCHOR_SHARP_REGEXP","getOffsetTop","clientTop","props$1i","affixProps","bounds","cursor","targetOffset","onChange","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_ref2","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_ref3","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","immediate","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1g","closeBtn","onClose","onCloseBtnClick","onDurationEnd","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","ANIMATION_OPTION","fadeIn","placement","fadeInKeyframes","getFadeInKeyframes","setDomStyleAfterAnimation","animate","fadeOut","onFinish","fadeOutKeyframes","marginOffset","getFadeOutKeyframes","styleAfterFadeOut","onfinish","styleAfterAnimation","_Message","_useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","renderTNode","msgRef","status","_props2$onClose","_props2$onCloseBtnCli","clearTimer","setTimer","_props2$onClose2","_props2$onDurationEnd","renderIcon","question","onBeforeMount","onMouseenter","onMouseleave","defaultClose","DEFAULT_Z_INDEX","getUniqueId","MessageList","messageList","getOffset","msgStyles","addChild","msg","mg","removeAll","TMessage","getProps","instanceMap","MessageFunction","handleParams","attachDom","mgKey","wrapper","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","MessagePlugin","$message","funcName","props$1f","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","state","attributes","effect","initialStyles","strategy","arrow","reference","requires","getBasePlacement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetLeft","getLayoutRect","rootNode","getRootNode","isSameNode","host","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","arrow$1","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","passive","getOppositePlacement","getOppositeVariationPlacement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","clientLeft","getInnerBoundingClientRect","winScroll","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getHTMLElementScroll","visited","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","merged","orderModifiers","existing","_ref$options","cleanupFn","noopFn","update","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","sizeClassNames","statusClassNames","useDefaultValue","propsName","_getCurrentInstance","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useVModel","modelValue","isVM","isVMP","_len3","_key3","logSet","log","warn","msgContent","IMAGE_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","getCurrentDate","needTime","abridgeName","inputName","leftCount","rightCount","leftLength","rightLength","isCn","escape","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","trim","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","fileRaw","reader","FileReader","readAsDataURL","onload","_event$target","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","unobserve","disconnect","observe","addObserver","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","contentRect","_props2$forwardRef","newContentRect","newRect","oldRect","rect1","rect2","_children$","Container","triggerEl","mountContent","emitResize","unmountContent","onResize","onVnodeMounted","POPUP_ATTR_NAME","POPUP_PARENT_ATTR_NAME","getPopperTree","upwards","selectors","recurse","childId","parentKey","_Popup","expandAnimation","_process$env","showTimeout","hideTimeout","_toRefs","_useVModel2","setVisible","overlayEl","popperEl","containerRef","isOverlayHover","env","TEST","assertMouseLeave","onMouseLeave","offs","prefixCls","commonCls","_props2$delay","_delay2$","show","clean","getOverlayStyle","updateOverlayInnerStyle","updatePopper","parentElement","getTriggerType","destroyPopper","_popper","_containerRef$value","ev","clearAllTimeout","onDocumentMouseDown","_popperEl$value","_triggerEl$value","activedPopper","_props2$onOverlayClic","preventDefault","handlerFn","handleEvent","evt","_process$env2","code","getOverlay","getOverlayState","updateScrollTop","handleOnScroll","_props2$onScroll","_e$target","debounceOnScrollBottom","_props2$onScrollToBot","hidePopup","overlay","_withDirectives","withDirectives","mergeProps","visibility","_vShow","Popup","_AnchorTarget","_useConfig","FileCopyIcon","TdFileCopyIcon","toCopyText","div","clip","Message","iconClassName","Anchor","AnchorItem","AnchorTarget","props$1e","itemsAfterCollapse","itemsBeforeCollapse","maxItemWidth","maxItems","props$1d","maxWidth","router","props$1c","_Tooltip","popupRef","innerVisible","setInnerVisible","innerTooltipVisible","_useMouse","onMouseMove","clientX","clientY","useMouse","offsetX","onTipVisibleChange","tooltipOverlayClassName","offsetStyle","popupEl","_popupRef$value","_popupRef$value$updat","Tooltip","localTBreadcrumbOrigin","_BreadcrumbItem","isEllipsisItem","breadcrumbText","localTBreadcrumb","themeClassName","isCutOff","separatorClass","disableClass","maxLengthClass","textFlowClass","maxWithStyle","maxWith","proxy","onBeforeUpdate","bindEvent","open","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","valueIsZeroOrUndefined","_Breadcrumb","_useBreadcrumbOptions","getChildComponentSlots","breadcrumbOptions","_props$options","breadcrumbItems","currentIndex","option","itemsSlots","getSlotOrProp","slotName","_child$props","_children$slotName","slotContent","useBreadcrumbOptions","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","ellipsisContent","ellipsisItems","_useEllipsis","getBreadcrumbItems","shouldShowEllipsis","_maxItems$value","currentMaxItems","totalItems","itemsCollapseSum","getDisplayItems","beforeItems","afterItems","getEllipsisItems","sliceItems","isLast","useEllipsis","BreadcrumbItem","Breadcrumb","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1b","hideAfterItemClick","maxHeight","panelBottomContent","panelTopContent","_DropdownMenu","dropdownClass","dropdownMenuClass","scrollTopMap","itemHeight","menuRef","isOverMaxHeight","deep","getContent","renderOptions","_data$forEach","menu","idx","optionItem","onViewIdx","renderIdx","DropdownItem","TDivider","_data$onClick","getOptionsFromChildren","menuNode","_menuNode$","_menuNode$3","_menuNode$4","_menuNode$2","_menuNode$2$default","groupChildren","_item$children","_item$children$conten","_item$children2","_item$children2$prefi","_item$children3","_item$children3$prefi","_item$children4","_item$children4$defau","_groupChildren$filter","_groupChildren$filter2","slotPrefixIcon","contentCtx","_v$type","childrenCtx","_v$type2","itemProps","_item$type","_Dropdown","popupElem","isPopupVisible","manualCloseTimeout","_props2$popupProps","_delay$","handleMenuClick","_props2$popupProps2","_props2$popupProps2$o","_props2$popupProps3","_props2$popupProps3$o","handleVisibleChange","_props2$popupProps4","_props2$popupProps4$o","_props2$popupProps5","_props2$popupProps5$o","_renderTNodeJSX","_props2$popupProps6","_getChildComponentSlo","_getChildComponentSlo2","_instance$slots$dropd","menuSlot","dropdown","useDropdownOptions","popupParams","_options$value","DropdownMenu","Dropdown","props$1a","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","_createClass","getTreePaths","ans","getTreeSameParentNodes","DFS","VMenu","isMutex","expandValues","v2","pNode","activeValues","sameParentNodes","sameLevelSubmenuValues","_node$children","_Menu","onCollapsed","mode","menuClass","innerClasses","expandWidth","activeValue","setActiveValue","_useDefaultValue2","setExpand","_props2$onCollapsed","vMenu","isHead","tmp","props$19","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$18","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","removeBtnClick","onClickNav","navItemClass","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","traversalTabNavs","tabNavs","_step","_iterator","_createForOfIteratorHelper","itemNode","handleTarget","resultTarget","TTabNav","resizeObserver","panels","ChevronLeftIcon","TdChevronLeftIcon","AddIcon","TdAddIcon","navsContainerRef","navsWrapRef","leftOperationsRef","rightOperationsRef","toRightBtnRef","activeTabRef","maxScrollLeft","showAction","_props$placement","getRefs","navsContainer","navsWrap","leftOperations","rightOperations","toRightBtn","activeTab","isVerticalPlacement","canToLeft","canToRight","wrapTransformStyle","navsContainerStyle","iconBaseClass","leftIconClass","rightIconClass","addIconClass","navContainerClass","navScrollContainerClass","navsWrapClass","setOffset","calcValidOffset","navsContainerWidth","activeTabWidth","diffWidth","calcPrevOrNextOffset","handleWheel","deltaX","deltaY","handleActiveTabScroll","depElement","tabWidth","tabOffset","rightOperationsWidth","leftOperationsWidth","calculateOffset","getMaxScrollLeft","observer","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","$el","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","endIndex","setNavsWrap","useDragSort","renderNavsContent","_panel$children","nav","tabClick","Transition","appear","navContent","onWheel","_Tabs","tabValue","setTabValue","onTabAdd","_props2$onAdd","onTabChange","onTabRemove","_props2$onRemove","getSlotPanels","flatContent","ct","renderHeader","_props2$list","actionContent","panelsData","selfItem","tabNavProps","_props2$list2","TTabPanel","Tabs","TabPanel","props$17","FakeArrow","stroke","_Submenu","submenu","setSubPopup","closeParentPopup","menuItems","popupVisible","isCursorInPopup","isOpen","_expandValues$value","isNested","popupWrapperRef","subPopupRef","submenuRef","transitionClass","submenuClass","arrowClass","addMenuItem","related","relatedTarget","loopInPopup","handleMouseLeavePopup","passSubPopupRefToParent","handleMouseEnter","targetInPopup","handleMouseLeave","inPopup","toElement","handleEnterPopup","handleSubmenuItemClick","renderPopup","popupWrapper","realPopup","_menu$vMenu","_node","_node2","_node3","normalSubmenu","needRotate","events","silent","$options","_useCollapseAnimation","beforeEnter","oldPaddingTop","paddingTop","oldPaddingBottom","paddingBottom","enter","oldOverflow","afterEnter","beforeLeave","leave","afterLeave","onEnter","onAfterEnter","onBeforeLeave","onLeave","vShow","renderSubmenu","_HeadMenu","_ctx$slots$default2","_ctx$slots3","_ctx$slots$content2","_ctx$slots4","setExpanded","handleTabChange","handleClickSubMenuItem","handleSubmenuExpand","getChild","_activeMenuItem$onCli","activeMenuItem","innerRef","logoRef","operationRef","initVMenu","parentValue","_node$type","_node$type2","nodeValue","_props2$logo","_ctx$slots$logo","_ctx$slots5","_props2$operations","_ctx$slots$operations","_ctx$slots6","_ctx$slots$options","_ctx$slots7","_ctx$slots$default3","_ctx$slots8","_ctx$slots$content3","_ctx$slots9","_item$vnode$","props$16","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$15","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$14","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","readonly","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useCLASSNAMES","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","extra","help","successBorder","ValidateStatus","FormInjectionKey","FormItemInjectionKey","useLengthLimit","limitNumber","_params$value2","innerStatus","_limitNumber$value$sp2","tStatus","onValidateChange","_params$value$onValid","_params$value3","getValueByLimitNumber","inputValue","oldStr","_params$value","getOutputValue","useInput","isComposition","compositionValue","clearIconRef","innerClickElement","innerValue","setInnerValue","isHover","renderType","inputRef","_useLengthLimit","showClear","_inputRef$value","setInputElValue","inputEl","sV","inputValueChangeHandle","_innerValue$value","_inputRef$value4","oldVal","isNumberType","newVal","blur","_inputRef$value2","emitFocus","_props$onFocus","formatAndEmitBlur","_props$onBlur","_clearIconRef$value","tagName","_clearIconRef$value2","isClearIcon","handleBlur","onHandleCompositionend","_props$onCompositione","onHandleCompositionstart","_props$onCompositions","onRootClick","_inputRef$value3","emitPassword","toggleType","handleInput","checkInputType","inputType","emitClear","_props$onClear","onClearIconMousedown","useInputWidth","inputPreRef","observerTimer","updateInputWidth","_Input","showInput","keepWrapperWidth","BrowseIcon","TdBrowseIcon","BrowseOffIcon","TdBrowseOffIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","INPUT_WRAP_CLASS","INPUT_TIPS_CLASS","_useInput","inputHandle","inputEventHandler","mouseEvent","handleKeydown","_props$onEnter","_props$onKeydown","tmpValue","handleKeyUp","_props$onKeyup","handleKeypress","_props$onKeypress","onHandlePaste","_props$onPaste","clipData","clipboardData","pasteValue","getData","onHandleMousewheel","_props$onWheel","onInputMouseenter","_props$onMouseenter","onInputMouseleave","_props$onMouseleave","useInputEventHandler","tPlaceholder","_props2$placeholder","inputAttrs","_props2$autocomplete","unselectable","spellcheck","wrapClasses","inputEvents","_compositionValue$val","_inputValue$value","_compositionValue$val2","passwordIcon","limitNode","labelContent","suffixContent","passwordClass","onMousedown","tipsClasses","inputGroupProps","separate","_InputGroup","CLASS","Input","InputGroup","props$13","allowInputOverLimit","decimalPlaces","inputProps","largeNumber","fillZero","isInputNumber","num","eCount","negativeCount","dotCount","removeInvalidZero","decimal","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","minIndex","largePositiveNumberAdd","_num1$split2","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","compareLargeIntegerNumber","compareLargeDecimalNumber","formatENumber","_num$split2","_num$split4","integer","_num$split4$","initDecimal","zeroCount","multipleZero","n1","d2","isInfinity","isSafeNumber","MIN_SAFE_INTEGER","compareNumber","isSafeNumberCompare","isInfinityCompare","_formatENumber$split2","integer1","decimal1","_formatENumber$split4","integer2","decimal2","integer1IsNegative","integer2IsNegative","compareLargeNumber","largeIntegerNumberSubtract","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split2","_maxNumber$split2$","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","formatDecimal","places","toFixed","_num$toString$split2","largeNumberToFixed","_decimalPlaces$enable2","_decimalPlaces$enable","enableRound","decimalPlacesToFixedNum","_number$split2","_decimalNumber$match","leadZeroNum","leadNineNum","needAdded","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","getStepValue","op","lastValue","tStep","isFirstNegative","isSecondNegative","largeNumberAdd","largeNumberSubtract","putInRangeNumber","getMaxOrMinValidateResult","specialCode","formatUnCompleteNumber","isToFixed","useInputNumber","tValue","setTValue","userInput","tDisabled","isReadonly","isError","disabledReduce","canReduceNumber","disabledAdd","canAddNumber","reduceClasses","addClasses","getUserInput","inputStr","activeElement","fixedNumber","completeValue","_props$onValidate","handleStepValue","overLimit","handleReduce","handleAdd","_props$onBlur3","_props$onBlur2","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","tmpMatched","canInputNumber","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","TInput","InputNumber","props$12","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$11","excessTagsDisplayType","trimLeft","trimRight","tinycolor","opts","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","q","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","_splitcomplement","_analogous","results","slices","part","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$10","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$$","defaultChecked","checkedProps","uncheckedProps","ARROW_DOWN_REG","ARROW_UP_REG","ARROW_LEFT_REG","ARROW_RIGHT_REG","ESCAPE_REG","SPACE_REG","ENTER_REG","SHIFT_REG","CLEAR_REG","ALL_REG","CHECKED_CODE_REG","_CheckTag","innerChecked","setInnerChecked","checkTagProps","keyboardEventListener","_e$key","onCheckboxFocus","onCheckboxBlur","Tag","props$_","_CheckTagGroup","checkTagGroupClasses","onCheckTagChange","getTagContent","CheckTag","CheckTagGroup","_TagInput","NAME_CLASS","CLEAR_CLASS","BREAK_LINE_CLASS","_useDefault2","useDefault","tInputValue","setTInputValue","_toRefs2","_useHover","addHover","cancelHover","useHover","isFocused","_useDragSorter","sortOnDraggable","onDragOverCheck","draggingIndex","dragStartData","isDropped","startInfo","nodeX","nodeWidth","mouseX","onDragOver","record","targetClassNameRegExp","_target$getBoundingCl","targetNodeMiddleX","draggingNodeLeft","draggingNodeRight","onDragStart","_target$getBoundingCl2","onDrop","onDragEnd","getDragProps","onDragstart","onDragover","onDragend","dragging","useDragSorter","_useTagScroll","tagInputRef","scrollDistance","scrollElement","mouseEnterTimer","isScrollable","updateScrollElement","inputElement","updateScrollDistance","_scrollElement$value","behavior","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","tagValue","setTagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","_tagValue$value","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","_newList$map","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","_props$valueDisplayOp2","valueDisplayOptions","usePlaceholder","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp3","_props$valueDisplayOp4","renderPlaceholder","_props$valueDisplayOp5","_props$valueDisplayOp6","singleInputValue","renderSelectSingle","_context$attrs","iKeys","getInputValue","prefixContent","_context$slots","inputClassProps","overlayState","_popupRef$value2","_SelectInput","BASE_CLASS_BORDERLESS","BASE_CLASS_MULTIPLE","BASE_CLASS_POPUP_VISIBLE","BASE_CLASS_EMPTY","selectInputRef","_useOverlayInnerStyle","_useSingle","_useMultiple","isMultipleFocus","tags","onTagInputChange","_props$onTagChange","tagInputValue","multipleInputValue","renderSelectMultiple","useMultiple","isFocus","_popupVisible$value","addKeyboardEventListener","_props2$onPopupVisibl","_selectInputRef$value","_ctx$e","_tagInputRef$value$fo","tabIndex","_popupVisible$value2","visibleProps","mainContent","tipsNode","SelectInput","props$Z","checkAll","props$Y","lazyLoad","CheckboxGroupInjectionKey","marginBottom","IntersectionObserver","io","isIntersecting","rootMargin","_Checkbox","needRipple","stopLabelTrigger","labelRef","checkboxGroupData","tName","tChecked","_checkboxGroupData$va","isCheckAll","checkedValues","maxExceeded","tIndeterminate","labelClasses","handleChange","handleCheckboxChange","onCheckedChange","handleLabelClick","_useCheckboxLazyLoad","ioObserver","showCheckbox","handleLazyLoad","useCheckboxLazyLoad","_useKeyboardEvent","useKeyboardEvent","props$X","_Group$1","optionList","intersectionLen","optionItems","onCheckAllChange","getAllCheckboxValue","currentValue","_props2$options","_optionList$value","Checkbox","nodes","getOptionListBySlots","role","CheckboxGroup","_Group","getSingleContent","optionsMap","getNewMultipleValue","optionValue","valueIndex","isCheck","selectInjectKey","_Option","createAble","rowIndex","trs","scrollType","isVirtual","bufferSize","selectProvider","isReachMax","selectValue","isSelected","selectName","liRef","isIndeterminate","hoverIndex","labelText","handleCheckboxClick","_selectProvider$value","_selectProvider$value2","handleCreate","handleValueChange","selectedOptions","getSelectedOptions","handlePopupVisibleChange","emitBlur","_selectProvider$value3","currentOption","optionChild","props$W","_OptionGroup","_props2$label","props$V","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","threshold","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","visibleData","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","translateY","firstRow","updateVisibleData","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","_container$value","refreshContainer","ob","intersectionRatio","_container$value2","handleRowMounted","useVirtualScroll","popupContentRef","isFixedRowHeight","rowHeight","_ref$trs","_ref$visibleData","_ref$handleScroll","handleVirtualScroll","_ref$scrollHeight","_ref$translateY","_ref$handleRowMounted","lastScrollY","onInnerVirtualScroll","_props$popupContentRe","_props$popupContentRe2","cursorStyle","panelStyle","SelectPanel","TdSelectProps","renderDefaultTNode","tSelect","showCreateOption","displayOptions","_usePanelVirtualScrol","renderOptionsContent","OptionGroup","group","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","_useSelectOptions","optionsCache","dynamicIndex","innerOptions","getFormatOption","_keys$value","optionsSlots","groupSlots","_group$props","groupOption","_step2","_iterator2","_step3","_iterator3","optionsList","getOptionsList","_step4","_iterator4","filterMethods","_option$label","_option$label$toLower","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","displayText","resLabel","getMultipleContent","valueDisplayParams","_val$slice","_optionsMap$value$get","removeTag","displayValue","isFilterable","isRemoteSearch","_props2$onRemove2","_ref4$trigger","_props2$onCreate","optionalList","lockedValues","formattedOrgValue","_useKeyboardControl","filteredOptions","virtualFilteredOptions","_selectPanelRef$value","handleKeyDown","_optionsList$value$ne","_optionsList$value$ne2","optionsListLength","newIndex","finalOptions","_finalOptions$hoverIn","useKeyboardControl","SelectProvider","handlerInputChange","handleOptionEmitBlur","checkValueInvalid","handleSearch","_props2$onSearch","_selectPanelRef$value2","handlerPopupVisibleChange","handlerPopupScrollToBottom","_ref6","_popupProps$onScroll","_popupProps$onScrollT","newCache","addCache","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref7","restPopupProps","onkeydown","_ref8","_ref9","_props2$onEnter","_ref10","_props2$onBlur2","_ref11","picker","Select","props$U","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$T","defaultCurrent","foldedMaxPageBtn","maxPageBtn","pageEllipsisMode","pageSize","defaultPageSize","pageSizeOptions","selectProps","showFirstAndLastPageBtn","showJumper","showPageNumber","showPageSize","showPreviousAndNextBtn","totalContent","onCurrentChange","onPageSizeChange","_Pagination","innerCurrent","setInnerCurrent","innerPageSize","setInnerPageSize","PageFirstIcon","TdPageFirstIcon","PageLastIcon","TdPageLastIcon","ChevronLeftDoubleIcon","TdChevronLeftDoubleIcon","ChevronRightDoubleIcon","TdChevronRightDoubleIcon","_usePaginationClasses","pageCount","paginationClass","totalClass","sizerClass","preBtnClass","nextBtnClass","btnWrapClass","btnMoreClass","jumperClass","jumperInputClass","simpleClass","getButtonClass","usePaginationClasses","CLASS_MAP","_useMoreAction","prevMore","nextMore","curPageLeftCount","curPageRightCount","isPrevMoreShow","isNextMoreShow","useMoreAction","jumpIndex","isFolded","sizeOptions","isMidEllipsis","pages","foldedStart","foldedEnd","toPage","pageIndex","pageInfo","handlePageChange","prevPage","nextPage","prevMorePage","nextMorePage","onSelectorChange","isIndexChange","_props2$onChange2","onJumperChange","trunc","Jumper","TInputAdornment","$event","onMouseover","onMouseout","props$S","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","_props2$onChange3","Pagination","PaginationMini","props$R","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$Q","onHover","stickyItemProps","popup","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$P","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$O","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","optionClasses","tOptions","onOptionClick","liNode","onKeyInnerPress","_tOptions$value$newIn","findIndex","_tOptions$value$_newI","addKeyboardListener","removeKeyboardListener","labelNode","_slots$option","HighlightOption","_AutoComplete","optionListRef","triggerWidth","popupClasses","popupInnerClasses","innerInputProps","_optionListRef$value","onInnerCompositionend","_props2$onComposition","onInnerCompositionstart","_props2$onComposition2","onInnerSelect","_props2$onSelect","listContent","topContent","bottomContent","panelContent","AutoComplete","getFakeArrowIconClass","cascaderContext","getNodeStatusClass","checkStrictly","expandedActive","isLeaf","treeStore","showAllLevels","getNodes","getPath","at","getPanels","treeNodes","getFullPathLabel","getTreeValue","treeValue","isEmptyValues","handleRemoveTagEffect","setValue","setChecked","isChecked","getNode","getModel","Item","getCascaderItemClass","getCascaderItemIconClass","RenderLabelInner","inputVal","texts","doms","RenderLabelContent","RenderCheckBox","checkProps","isOptionChildAndMultiple","props$M","load","valueMode","Panel","CascaderProps","renderTNodeJSXDefault","handleExpand","propsTrigger","setTreeNodes","setExpend","refreshNodes","replaceExpanded","resetChecked","expendClickEffect","renderItem","getExpanded","isSelectAll","valueChangeEffect","renderList","isFilter","segment","_props$cascaderContex","nodeKey","TreeNodeModel","actived","getLevel","getIndex","isFirst","newData","insertAfter","_node$parent","getParents","getRoot","getSiblings","childrenModel","walk","shift","pnode","syncAttrs","cleanData","attr","dataAttrValue","settableStatus","activable","checkable","settableProps","syncableProps","privateKey","TreeNode","propChildren","propLabel","propDisabled","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","expandAll","uniqueId","nodeMap","privateMap","initActived","initExpanded","loadChildren","initChecked","updateChecked","reflow","checkedMap","expandLevel","expandedMap","isActivable","activedMap","appendTo","updateRelated","_this3","targetPosNode","siblings","prevLength","prevIndex","sibling","insert","updateParents","filterMap","_loadChildren","_this4","setDisabled","parents","_this$tree","hasFilter","nodeModel","_this$tree2","allowFoldNodeOnFilter","expandVisible","disableCheck","isDisabledState","_tree$config","isCheckable","childChecked","lockState","isExpanded","isVisible","updateChildren","directly","shouldExpandNodes","expandParent","_tree$config2","isExpandMutex","snode","afterExpanded","setActived","isActived","isAction","getActived","prevKeys","activeMultiple","hasEnableUnCheckedChild","expectState","getChecked","spreadChildrenChecked","spreadParentChecked","getRelatedNodes","isRest","_this5","spreadChildren","_this6","spreadParents","TreeStore","onLoad","onReflow","onUpdate","updatedMap","prevFilter","updateTick","shouldReflow","emitter","all","hasChanged","refreshState","getParent","conf","para","spec","parseNodeData","pm","lockFilterPathNodes","stateId","updatedNodes","nodePrivateKey","resetActived","added","difference","removed","setExpandedDirectly","updateExpanded","withParents","_this$config","childNode","relatedNodes","relatedNode","allNodes","lock","currentFilter","useCascaderContext","setPopupVisible","_useContext","statusContext","scopeVal","expend","setInputVal","useContext","updatedTreeNodes","_cascaderContext$valu","treeNodesEffect","updateExpend","_cascaderContext$valu2","tn","expandedArr","treeStoreExpendEffect","replaceChecked","_props$keys","reload","store","JSON","stringify","treeProps","setConfig","_cascaderContext$valu3","isValueInvalid","getCascaderValue","getCascaderItems","_statusContext$treeSt","_Cascader","_useCascaderContext","_node2$","inputPlaceholder","arrayValue","renderValueDisplay","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr10","_props2$selectInputPr11","_props2$selectInputPr12","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","dayjs","TIME_FORMAT","extractTimeFormat","parseToDayjs","timeOfDay","dateText","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValidDate","formatDate","newDate","targetFormat","_ref3$dayjsLocale","autoSwap","dayjsDateList","da","formatRange","dayJsDate","formatSingle","calcFormatTime","timeFormat","timeArr","timeFormatArr","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","useSingleValue","_value$value","_value$value2","_value$value3","_value$value4","formatRef","cacheValue","_extends","isBetween","weeks","weekYear","longDateFormat","localeData","isoWeekYear","isoWeek","offsetName","zone","A","afternoon","milliseconds","SS","SSS","ss","H","HH","DD","Do","MMM","MMMM","Y","YY","YYYY","Z","ZZ","regex","parser","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","getDaysInMonth","isSameYear","date1","date2","isSameQuarter","isSameMonth","isSameWeek","isSameDate","compareAsc","d1","outOfRanges","getToday","subtractMonth","addMonth","getWeeks","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","getFirstDayOfMonth","appendDay","getLastDayOfMonth","maxDays","daysArr","currentDay","firstDayOfMonth","lastDayOfMonth","dayjsObj","setDate","additional","dataList","flagActive","_objectDestructuringEmpty","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","_item","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","_value$some","extractTimeObj","matchedMeridiem","_matchedTimeStr$0$spl2","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","weekOfYear","quarterOfYear","advancedFormat","dayJsIsBetween","datePickerProps","needConfirm","presets","presetsPlacement","timePickerProps","onConfirm","onPick","onPresetClick","TDateHeader","onMonthChange","onYearChange","onJumperClick","yearOptions","initOptions","showMonthPicker","nearestYear","_yearOptions$value$fi","monthOptions","extraYear","maxYear","loadMoreYear","labelMap","handlePanelTopClick","handlePanelBottomClick","_e$stopPropagation","_e$stopPropagation2","_props$onMonthChange","TSelect","_props$onYearChange","createTextVNode","TDatePickerCell","Dayjs","cellClass","_extractTimeObj","nextHours","setHours","setMinutes","setSeconds","setMilliseconds","_props$onMouseEnter","_extractTimeObj2","TDateTable","onCellClick","onCellMouseEnter","onCellMouseLeave","weekArr","wi","showThead","activeRowCss","targetValue","_value$map3","targetDayjs","isSomeYearWeek","_startObj$locale","_startObj$locale$week","_endObj$locale","_endObj$locale$week","_value$map2","startObj","endObj","startYear","startWeek","endYear","endWeek","targetObj","targetYear","targetWeek","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$L","disableTime","hideDisabledTime","onInput","onOpen","BooleanType","validateInputValue","formatInputValue","hour","minute","second","milliSecond","panelOffset","SinglePanel","panelColProps","cols","Props","localeMeridiems","triggerScroll","resetTriggerScroll","isShowPanel","bodyRef","maskRef","colsRef","dayjsValue","isStepsSet","updateTimeScrollPos","renderCol","getPickerCols","getItemHeight","_maskRef$value","maskDom","timeItemCanUsed","colIdx","_props$disableTime","millisecond","partial","getColList","colStep","colList","_props$disableTime2","getScrollDistance","itemIdx","_getItemHeight","timeItemTotalHeight","_colsRef$idx","_props$onChange","formattedVal","_getItemHeight2","availableArr","calcVal","closestLookup","_dayjsValue$value$col","_dayjsValue$value","currentHour","_scrollCtrl$scrollTo","scrollCtrl","scrollToTime","_scrollCtrl$scrollTo2","isAutoScroll","_dayjsValue$value$col2","_dayjsValue$value2","_getColList","isCurrent","colItem","_dayjsValue$value$col3","_dayjsValue$value3","colVal","_cols$value$map","_cols$value","_cols$value$map2","_cols$value2","_props$onChange2","_props$onChange3","handleTimeItemClick","_TimePickerPanel","panelProps","activeIndex","isFooterDisplay","handleConfirmClick","panelRef","showNowTimeBtn","formattedValue","panelColUpdate","renderFooter","presetValue","presetVal","_props$handleConfirmC","TPanelContent","tableData","onTimePickerChange","defaultTimeValue","_props$onJumperClick","_props$onCellClick","_props$onCellMouseEnt","TTimePickerPanel","_isSlot","TDateFooter","selectedValue","onConfirmClick","presetsClass","footerClass","_props$onPresetClick","preset","_props$onConfirmClick","TExtraContent","showPanelFooter","useDisableDate","availableMode","isEnabled","before","after","compareMin","compareMax","isEnabledDate","useRangeValue","isFirstValueSelected","PARTIAL_MAP","first","useTableData","_props$firstDayOfWeek","monthLocal","quarterLocal","_ref6$disableDate","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getQuarters","_params$disableDate","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","getMonths","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","yearArr","getYears","TSinglePanel","onPanelClick","_getDefaultFormat","disableDateOptions","panelContentProps","extraProps","_props$onPanelClick","_DatePicker","_useSingleValue","isHoverCell","defaultInputProps","newMonth","newYear","newTime","_props$popupProps$ove","_props$popupProps","_props$popupProps2","_props$popupProps3","_props$popupProps3$on","_props$popupProps4","_props$popupProps4$on","CalendarIcon","TdCalendarIcon","_props2$onPick","processDate","onTagRemoveClick","removeDate","onTagClearClick","monthCount","_props2$onPick2","nextDate","_props2$onConfirm","nextValue","_formatRef$value","dateValue","covertToDate","_inputRef$value$focus","datePickerPanelProps","onTimeChange","_DatePickerPanel","triggerMap","_props$onTimeChange","_props$onConfirm","_props$onYearChange2","_props$onMonthChange2","panelClick","dateRangePickerProps","panelPreselection","rangeInputProps","props$K","calcArrayValue","_RangeInput","_innerValue$value2","isShowClearIcon","inputRefs","firstInputRef","secondInputRef","handleClear","handleEnter","rangeValue","handleFocus","_props2$onMouseenter","_props2$onMouseleave","firstInputElement","secondInputElement","_inputRefs$value","_ref3$position","_inputRefs$value2","_ref4$position","_inputRefs$value3","_ref5$position","_innerValue$value3","_innerValue$value8","prefixIconContent","suffixIconContent","RangeInputContent","_innerValue$value4","_innerValue$value5","_innerValue$value6","_ref12","_innerValue$value7","_ref14","_props2$onClick2","_ref15","_innerValue$value9","_ref16","_innerValue$value10","_ref17","_innerValue$value11","_ref18","_innerValue$value12","props$J","_RangeInputPopup","RangeInput","RangeInputPopup","TRangePanel","hoverValue","hidePreselection","startTableData","endTableData","dateCorrection","partialIndex","onlyYearSelect","_DateRangePicker","_useRange","isMountedRef","_useRangeValue","useRange","notValidIndex","nextIndex","correctedDate","nextInputValue","changedInputValue","currentDate","nextTime","_props2$onPresetClick","nextVal","_year$value","_year$value2","_year$value3","_year$value4","_initYearMonthTime","defaultYear","defaultMonth","TRangeInputPopup","dateRangePickerPanelProps","_DateRangePickerPanel","DatePicker","DatePickerPanel","DateRangePicker","DateRangePickerPanel","defaults","_merge","default_date_options","isValidFormat","strictMode","formatDelimiter","delimiters","delimiter","dateDelimiter","dateAndFormat","zippedArr","zip","dateObj","_n","F","_step$value","_iterableToArrayLimit","dateWord","formatWord","fullYear","startsWith","parsedYear","getUTCDate","isFinite","invalidType","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","parts","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","require$$1","isIP","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","defaultMaxEmailLength","domain","lower_domain","host_blacklist","_checkHost","host_whitelist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","blacklisted_chars","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","require$$2","require$$3","require$$4","require$$5","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","allow_query_components","protocol","auth","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","wrapped_ipv6","require_port","VALIDATE_MAP","email","isEmail","strs","validate","validateOneRule","_validateOneRule","rule","validateResult","vOptions","vValidateFun","validateRule","_x3","_x4","_validate","rules","props$I","for","labelAlign","labelWidth","showErrorMessage","statusIcon","getFormItemClassName","_FormItem","CLASS_NAMES","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","requiredMarkPosition","_form$requiredMarkPos","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","resetHandler","resetField","resetType","_args","lodashSet","emptyValue","lodashGet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","validateOnly","_callee4","_yield$analysisValida2","_context4","setValidateMessage","validateMessage","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","props$H","formControlledComponents","preventSubmitDefault","scrollToFirstError","submitWithWarningMessage","onReset","onSubmit","_Form","formRef","formClass","FORM_ITEM_CLASS_PREFIX","getFirstError","firstKey","tmpClassName","resArr","getElementsByClassName","scrollIntoView","needValidate","fields","formatValidateResult","validateResultList","_props2$onValidate","showErrorMessage2","firstError","_ref6$trigger","submitParams","submit","resetParams","clearValidate","_props2$onSubmit","_props2$onReset","_resetParams$value","_resetParams$value2","Form","FormItem","props$G","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$F","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","MutationObserver","getCurrentScope","onScopeDispose","radioGroupRef","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","mutation","characterData","subtree","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$E","inputNumberProps","marks","showStep","tooltipProps","onChangeEnd","getStopStyle","formatSliderValue","initialProps","useSliderTooltip","tooltipConfig","tooltipRef","showTooltip","normalizeProps","validProps","_tooltipConfig$value","vertical","formatLabel","toggleTooltip","toState","sliderPropsInjectKey","_SliderButton","_useSliderTooltip","parentProps","buttonRef","slideButtonProps","isClick","startX","startY","startPos","newPos","rangeDiff","currentPos","wrapperStyle","toggleDragging","setPosition","pos","perStepLen","precision","_tooltipRef$value$upd","_tooltipRef$value","onDragging","resetSize","parentSliderSize","sliderSize","touch","touches","onButtonDown","onKeyDown","stepLength","onNativeKeyDown","onTouchstart","TTooltip","TSliderMark","point","onClickMarkPoint","changeValue","_props$onClickMarkPoi","hiddenTextarea","_Slider","sliderValue","setSliderValue","sliderContainerRef","sliderRef","firstButtonRef","secondButtonRef","firstValue","secondValue","containerClass","sliderClass","sliderRailClass","runwayStyle","barStart","minValue","currentDiff","maxValue","barSize","stepCount","stepWidth","precisions","decimalArr","setValues","maxLimit","minLimit","preValue","emitChange","fixValue","isAlreadyMount","valuetext","percent","getFixValue","onSliderClick","_props2$onChangeEnd","sliderOffsetLeft","_props2$onChangeEnd2","_newVal","newStates","prevStates","markList","markConfig","prefixName","renderMask","markProps","legalMarks","marksList","onChangeFn","renderInputNumber","sliderInputState","_config$value$step$to","initialState","_inputProps$inputNumb","inputTheme","sliderNumberClass","changeFn","_config$value","_config$value$onChang","useSliderInput","TSliderButton","onMouseup","_props2$onChangeEnd3","_props2$onChangeEnd4","firstInputVal","secondInputVal","Slider","SliderButton","props$D","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","SIZING_PROPS","calcTextareaHeight","targetElement","minRows","maxRows","_calculateNodeStyling","boxSizing","paddingSize","borderSize","sizingStyle","calculateNodeStyling","singleRowHeight","minHeight","props$C","autosize","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","rows","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","startIndex","paginationProps","handleDataChange","dragoverIndex","dragoverPos","currentDraggingIndex","currentDragoverIndex","sourceItem","targetItem","sourceIndex","currentElement","elemHeight","dragY","insertAreaHeight","onDragLeave","isAllChecked","allValue","totalCount","lastPage","handlePaginationChange","_props2$onPageChange","handleCheckedChange","_props2$onCheckedChan","handleCheckedAllChange","query","_slot4","_slot2","isDraggable","TCheckboxGroup","_slot3","renderEmpty","TCheckbox","titleNode","props$A","operation","showCheckAll","targetDraggable","targetSort","TransferOperations","leftDisabled","rightDisabled","moveToRight","moveToLeft","getIconRight","getIconLeft","getIcon","renderButton","_props2$operation","_Transfer","valueList","leftButtonDisabled","rightButtonDisabled","transferData","sourceList","targetList","hasFooter","showPagination","showSearch","footerOption","emptyOption","searchOption","disabledOption","titleOption","paginationOption","sourceChecked","targetChecked","transferTo","toDirection","newTargetValue","oldTargetValue","selfCheckedValue","movedValue","transferToRight","transferToLeft","renderTransferList","scopedSlots","bottomDistance","onMoveToRight","onMoveToLeft","Transfer","_TimePicker","TimeIcon","TdTimeIcon","inputClasses","handleShowPopup","_props2$onOpen","handleInputChange","handleInputBlur","handleClickConfirm","handlePanelChange","TSelectInput","TimePickerPanel","props$z","_TimeRangePicker","currentPanelIdx","handleTimeChange","_currentValue$value$","_currentValue$value$2","handleOnPick","_currentValue$value$3","_currentValue$value$4","_props2$onInput","autoSwapTime","_currentValue$value","endTime","startDayjs","endDayjs","pickValue","pickedRangeValue","_currentValue$value$5","_currentValue$value$6","TimePicker","TimeRangePicker","_params$value$data","_params$value$scroll","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","fixedRows","isVirtualScroll","getVisibleRangeConfig","_container$value$scro","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","_getVisibleRangeConfi","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","_ref3$top","preventResizeRefresh","addIndexToData","initHeightList","rowData","_rowData$ref$value","trHeight","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","TreeItemDefinition","onDrag","getCreateElement","Vue","refsProps","defaultPropName","eventPropName","tdUseVModel","tdUseDefaultValue","DragPosition","useDraggable","treeItemRef","dragStates","isDragOver","isDragging","dropPosition","setDragStatus","dragEvent","_drag$handleDragStart","_drag$handleDragEnd","_drag$handleDragOver","_drag$handleDragLeave","_drag$handleDrop","drag","treeScope","handleDragStart","throttleUpdateDropPosition","handleDragEnd","handleDragOver","handleDragLeave","handleDrop","_rootNode$getBounding","offsetY","pageY","gapHeight","updateDropPosition","_evt$dataTransfer","dataTransfer","setData","emitEvent","evtName","apiName","getParentsToRoot","getMark","getParentMarks","getTNode","_conf$node","tnode","isTreeNodeValue","useTreeAction","treeState","_state$vmValue","vmValue","_state$vmActived","vmActived","tActived","setTActived","_state$vmExpanded","vmExpanded","tExpanded","setTExpanded","evtCtx","pathMatchClass","replaceActived","toggleExpanded","toggleActived","toggleChecked","useItemEvents","clicked","evtContext","Event","_srcTarget$className","_srcTarget$className$","_treeScope$treeProps","expandOnClickNode","srcTarget","isBranchTrigger","useRenderIcon","handleMousedown","CaretRightSmallIcon","isDefaultIcon","iconNode","TdCaretRightSmallIcon","ignore","onmousedown","useRenderLabel","shouldStopLabelTrigger","isNormalBranchNode","isLazyLoadChildBranchNode","checkboxDisabled","itemCheckProps","_labelNode","TCheckBox","inner","useTreeItem","virtualConfig","treeContentRef","scrollProps","_useRenderLine","renderLine","line","iconVisible","lineNode","lineClasses","shadowStyles","useRenderLine","_useRenderOperations","renderOperations","opNode","useRenderOperations","_useDraggable","_useLazyLoad","childRef","tRowHeight","isInit","hasLazyLoadHolder","cb","useLazyLoad","tryNotifyVirtualScrollRowUpdate","itemNodes","renderItemNode","levelStyle","getItemStyles","getItemClassList","onDragleave","treeItemProps","itemKey","TreeItem","_useItemState","refProps","useItemState","useTreeNodes","scope","_useTreeEvents","_useTreeAction","evtState","shouldExpand","shouldActive","markName","markValue","useTreeEvents","nodesEmpty","cacheMap","refreshVisibleNodes","hasVisibleNode","refreshVirtualNodes","renderTreeNodes","treeNodeViews","nodeUniqueId","useTreeScroll","isScrolling","virtualScrollParams","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$y","defaultActived","allowDrop","onActive","_TdTree","_useTreeState","setStore","useTreeState","_useTreeStore","updateStoreConfig","storeProps","filterChanged","prevExpanded","expandFilterPath","pathValues","checkFilterExpand","newFilter","previousFilter","handleLoad","nVal","previousVal","rebuild","useTreeStore","dragNode","_props$allowDrop","dropNode","Inside","Before","useDragHandle","_useTreeScroll","_useTreeNodes","_useTreeStyles","treeClasses","treeContentStyles","scrollStyles","cursorStyles","translate","useTreeStyles","setItem","setupMethod","getItem","getItems","appendNodes","getNodeIndex","pathNodes","getTreeData","itemData","parentData","_allNodes$value$filte","_refProps$scroll$valu","_refProps$scroll$valu2","cname","emptyNode","emptyContent","treeNodeList","$props","TransitionGroup","topValue","placeholderStyles","placeholderEl","Tree","tdWithInstall","props$x","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","_treeSelectValue$valu","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$w","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","useBaseClassName","baseClassName","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","PanelHeader","togglePopup","onModeChange","modeValue","handleModeChange","_props2$colorModes","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","HEX","CMYK","cmyk","RGB","RGBA","HSL","HSLA","HSV","HSVA","CSS","HEX8","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","DELETE_KEYS","LinearGradient","refSlider","sliderRect","isMoved","payload","addUsedColor","handleDegreeChange","handleSelectedIdChange","handleColorsChange","isEnded","handleMove","percentLeft","updateActiveThumbLeft","handleEnd","handleKeyup","toLocaleLowerCase","handleThumbBarClick","newPoint","_props$color","thumbBackground","handleStart","TInputNumber","SaturationPanel","refPanel","refThumb","dragInstance","panelRect","saturation","handleDrag","_getSaturationAndValu","getSaturationAndValueByCoordinate","panelBackground","ColorSlider","railStyle","paddingStyle","HueSlider","AlphaSlider","isDragEnd","alpha","FORMAT_INPUT_CONFIG","FormatInputs","inputConfigs","configs","lastModelValue","getFormatColorMap","object2color","updateModelValue","throttleUpdate","_props2$color","FormatPanel","formatModel","newProps","TOption","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","_props2$colorModes2","defaultEmptyColor","updateColor","recentlyUsedColors","setRecentlyUsedColors","formatValue","colorMap","getFormatsColorMap","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","handleFormatModeChange","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","_systemColors","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","onTriggerClear","_props$onTriggerClear","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$v","alt","hideOnLoadFailed","imageProps","onError","props$u","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","triggerHandleLoad","handleLoadImage","imageStrSrc","replaceImageSrc","tmpUrl","hasError","isLoaded","shouldLoad","_props2$onLoad","loadEvent","handleError","_props2$onError","hasMouseEvent","imageClasses","shouldShowOverlay","handleToggleOverlay","renderImage","renderTNodDefault","ImageIcon","Image","_Avatar","avatarGroup","avatar","avatarChild","isImgExist","scale","sizeValue","isCustomSize","customAvatarSize","customImageSize","customCharacterSize","handleImgLoadError","setScaleParams","$avatar","$avatarChild","avatarWidth","avatarChildWidth","isIconOnly","avatarClass","props$t","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$s","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$r","cell","cellAppend","head","isShowWeekendDefault","preventCellContextmenu","onCellDoubleClick","onCellRightClick","onControllerChange","MIN_YEAR","DAY_CN_MAP","dt","addDate","days","createMonthCellsData","curSelectedYear","curSelectedMonth","realFirstDayOfWeek","curDate","curDateList","begin","beginDateColIndex","getCellColIndex","createCellData","belongTo","weekOrder","formattedDate","filterDate","formattedFilterDate","isShowWeekend","judgeIsCurrent","nextMonthCellNum","createDefaultCurDate","useState","curSelectedMode","controlSize","setCurrentDate","toToday","checkDayVisible","re","getDefaultControllerConfigData","radioGroupProps","weekend","showWeekendButtonProps","hideWeekendButtonProps","currentDayButtonProps","currentMonthButtonProps","useColHeaders","weekDisplayText","getWeekDisplay","weekNum","numStr","weekText","cellColHeaders","clickTypeEmitEventMap","dblclick","contextmenu","CalendarCellItem","prefixClass","tableBodyCell","tableBodyCell4Now","tableBodyCellDisplay","tableBodyCellCsontent","_props$fillWithZero","dateNum","allowSlot","cellCls","_props$item","isNow","clickCell","emitName","onDblclick","onContextmenu","_Calendar","_useState","control","controlSection","controlSectionCell","controlTag","tableHead","tableHeadRow","tableHeadCell","tableBody","tableBodyRow","useCalendarClass","controller","dayJsFilterDate","configData","_props$controllerConf","checkControllerVisible","checkControllerDisabled","emitControllerChange","userController","rangeFromTo","_props2$range","v1","checkMonthAndYearSelectedDisabled","beginYear","dateSelect","yearSelectOptionList","isYearSelectVisible","isYearSelectDisabled","monthSelectOptionList","_rangeFromTo$value","_rangeFromTo$value2","beginMon","adjustMonth","isMonthSelectVisible","isMonthSelectDisabled","modeSelect","weekendBtn","vBind","currentBtn","cellClickEmit","eventPropsName","cellData","doubleClickCell","rightClickCell","monthCellsData","utils","yearCellsData","monthsArr","rowCount","TRadioGroup","TCheckTag","weekIndex","itemIndex","onRightclick","cellIndex","Calendar","props$q","cover","description","header","headerBordered","hoverShadow","shadow","subtitle","_Card","baseCls","defaultClass","headerCls","headerWrapperCls","headerAvatarCls","headerTitleCls","headerSubTitleCls","headerDescriptionCls","actionsCls","bodyCls","coverCls","footerCls","footerWrapperCls","isPoster2","showTitle","showHeader","showSubtitle","showAvatar","showDescription","showStatus","showActions","showFooter","showCover","showLoading","showContent","isHeaderRender","isFooterRender","textCover","Card","props$p","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","props$o","imageStyle","MaintenanceSvg","NetworkErrorSvg","EmptySvg","FailSvg","SuccessSvg","_Empty","components","TImage","propsImage","propsDescription","propsTitle","defaultMaps","emptyClasses","titleClasses","descriptionClasses","actionClass","typeImageProps","_defaultMaps$type$val","showImage","_slots$image","_typeImageProps$value","_slots$title","_typeImageProps$value2","_slots$description","Empty","popupManager","PopupManager","popupStack","getNextZIndex","usePopupManager","runOnMounted","isLastDialog","useDrag","initTransform","mouseDownHandler","pageX","_transform$value","translateX","mouseMoveHandler","mouseUpHandler","resetTransform","TImageItem","rotate","placementSrc","isSvg","imageReferrerpolicy","loaded","_useDrag","svgElRef","imgStyle","placementImgStyle","boxStyle","createSvgShadow","_element$classList","response","svgText","shadowRoot","svgElement","svgViewBox","viewBoxValues","svgViewBoxWidth","bbox","calculatedViewBox","fetch","statusText","innerHTML","attachShadow","getBBox","mainImagePreviewUrl","placementImagePreviewUrl","ImageErrorIcon","TImageViewerIcon","wrapClass","props$n","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","newOptions","getConfirmBtn","globalConfirm","globalConfirmBtnTheme","confirmBtnAction","getDefaultConfirmBtnProps","getCancelBtn","globalCancel","cancelBtnAction","getDefaultCancelBtnProps","getScrollbarWidth","getCSSValue","dialogCardProps","mousePosition","_DialogCard","directives","windowInnerWidth","windowInnerHeight","targetEvent","disX","disY","dialogW","dialogH","mouseMoverHandler","documentEvent","dialogProps","rootRef","_useAction","_props$onCancel","isModeLess","isFullScreen","closeBtnAction","_props$onCloseBtnClic","onStopDown","resetPosition","dialogClass","confirmBtnLoading","_confirmBtn$value","defaultFooter","footerContent","headerClassName","closeClassName","bodyClassName","footerClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","dialogComponent","setConfirmLoading","DialogPlugin","$dialog","Dialog","DialogCard","props$m","closeOnOverlay","imageScale","images","defaultIndex","navigationArrow","viewerScale","onDownload","onIndexChange","TImageViewerUtils","onRotate","onZoomIn","onZoomOut","onMirror","currentImage","mainImage","TToolTip","MirrorIcon","RotationIcon","ZoomOutIcon","ZoomInIcon","DownloadIcon","TImageViewerModal","renderJSX","TDialog","thumbnail","EVENT_CODE","formatImages","File","isImageInfo","_ImageViewer","_props2$defaultIndex","isExpand","showOverlayValue","indexValue","setIndexValue","visibleValue","setVisibleValue","animationEnd","animationTimer","headerClass","zIndexValue","_props2$zIndex","toggleExpand","_useMirror","resetMirror","useMirror","_useScale","defaultScale","setScale","resetScale","newScale","useScale","_useRotate","resetRotate","useRotate","onRest","_images$value$indexVa","prevImage","nextImage","onDownloadClick","imgSrc","_imgSrc$split","_imgSrc$split$split","_imgSrc$split$split$s","canvas","getContext","drawImage","toBlob","blob","URL","createObjectURL","revokeObjectURL","downloadFile","openHandler","clickOverlayHandler","keydownHandler","up","down","esc","_divRef$value","_divRef$value$focus","transStyle","onImgClick","renderNavigationArrow","rotateDeg","renderCloseBtn","ImageViewer","props$l","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$k","asyncLoading","stripe","onLoadMore","LOAD_MORE","_List","listRef","listItems","computedListItems","listItemSlots","_useListVirtualScroll","listStyle","useListVirtualScroll","listClass","listElement","scrollBottom","loadingClass","renderLoading","handleLoadMore","_props2$onLoadMore","propsHeaderContent","propsFooterContent","TListItem","props$j","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$i","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","SMALL","LARGE","MEDIUM","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getLabelContent","CIRCLE_ICONS","NORMAL_ICONS","separateClasses","cx","cy","Progress","props$h","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$g","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$f","autoplay","loop","navigation","stopOnHover","cardScale","swiperItemProps","isSwitching","getWrapAttribute","swiperItemLength","itemWidth","_SwiperItem","disposeIndex","translateIndex","isActivity","inStage","itemStyle","defaultNavigation","showSlideBtn","_Swiper","swiperTimer","swiperSwitchingTimer","isBeginToEnd","isEndToBegin","navActiveIndex","isHovering","swiperWrap","navigationConfig","propsToUpdateSetTimer","swiperWrapClass","containerStyle","swiperItems","swiperItemList","swiperItem","TSwiperItem","cloneVNode","swiperTo","goNext","goPrevious","_swiperWrap$value","renderNavigation","fractionIndex","navigationSlot","renderPagination","onMouseEnterNavigationItem","onClickNavigationItem","renderSwiperItems","Swiper","SwiperItem","baseTableProps","activeRowKeys","defaultActiveRowKeys","activeRowType","allowResizeColumnWidth","cellEmptyContent","columns","disableDataPage","disableSpaceInactiveRow","firstFullRow","footData","footerAffixProps","footerAffixedBottom","footerSummary","headerAffixProps","headerAffixedTop","horizontalScrollAffixedBottom","keyboardRowHover","lastFullRow","paginationAffixedBottom","resizable","rowAttributes","rowClassName","rowKey","rowspanAndColspan","rowspanAndColspanInFooter","tableContentWidth","verticalAlign","onActiveChange","onActiveRowAction","onColumnResizeChange","onRowClick","onRowDblclick","onRowMousedown","onRowMouseenter","onRowMouseleave","onRowMouseover","onRowMouseup","onScrollX","onScrollY","getNodeDepth","depthMap","maxDepth","_col$children","getChildrenNodeWidth","countNew","childrenList","getThRowspanAndColspan","columnsDepth","rowspanAndColspanMap","leafColumns","_col$children2","rowspan","useClassName","tableBaseClass","columnResizableTable","overflowVisible","paginationWrap","tdLastRow","tdFirstCol","thCellInner","tableRowEdit","cellEditable","cellEditWrap","striped","emptyRow","headerFixed","columnFixed","widthOverflow","multipleHeader","footerAffixed","horizontalBarAffixed","affixedHeader","affixedHeaderElm","affixedFooterElm","affixedFooterWrap","scrollbarDivider","fullHeight","resizeLine","obviousScrollbar","affixedHeaderWrap","tdAlignClasses","tableHeaderClasses","thBordered","fixed","tableFooterClasses","tableAlignClasses","middle","tableRowFixedClasses","firstBottom","withoutBorderBottom","tableColFixedClasses","lastLeft","firstRight","leftShadow","rightShadow","tableLayoutClasses","tdEllipsisClass","tableFullRowClasses","base","innerFullRow","innerFullElement","tableExpandClasses","iconBox","iconCell","rowExpanded","rowFolded","rowInner","tableSortClasses","sortable","sortColumn","doubleIcon","iconDirection","asc","desc","iconActive","iconDefault","tableSelectedClasses","checkCell","tableFilterClasses","popupContent","bottomButtons","contentInner","iconWrap","asyncLoadingClass","isFocusClass","isLoadingClass","isLoadMoreClass","tableTreeClasses","inlineCol","leafNode","tableDraggableClasses","rowDraggable","rowHandlerDraggable","colDraggable","chosen","dragSortTh","virtualScrollClasses","positiveRotate90","negativeRotate180","TEllipsis","tooltipContent","flag","isOverflow","ellipsisClasses","innerEllipsisClassName","onMouseAround","cellNode","rProps","colIndex","useTableHeader","_useClassName","spansAndLeafNodes","thList","thRows","_children","thRowData","isMultipleHeader","renderTitleWidthIcon","ellipsisTitle","isEllipsis","ellipsisOverlayClassName","useColumnResize","originalSelectStart","originalDragStart","isWidthOverflow","tableContentRef","showColumnShadow","getThWidthList","updateThWidthList","setTableElmWidth","updateTableAfterColumnResize","resizeLineRef","effectColMap","hasDocument","onselectstart","ondragstart","getSiblingResizableCol","setEffectColMap","prevNode","nextNode","parentPrevCol","colKey","parentNextCol","prevSibling","nextSibling","resizeLineParams","draggingCol","draggingStart","effectCol","resizeLineStyle","isColRightFixActive","getMinMaxColWidth","targetCol","_targetCol$resize","_targetCol$resize2","propMinWidth","minColWidth","maxColWidth","getOtherResizeInfo","effectPrevCol","targetBoundRect","tableBoundRect","resizeLinePos","colLeft","_getMinMaxColWidth","minResizeLineLeft","maxResizeLineLeft","getNormalResizeInfo","getFixedToLeftResizeInfo","onColumnMouseover","_col$resizable","thRightCursor","thLeftCursor","isFixedToRight","prevEl","previousElementSibling","_effectColMap$value$c","_effectPrevCol$resiza","onColumnMousedown","_tableContentRef$valu","_effectColMap$value$c2","_effectColMap$value$c3","effectNextCol","colkey","_getMinMaxColWidth2","getFixedToRightResizeInfo","_effectColMap$value$c4","moveDistance","thWidthList","currentCol","currentSibling","newThWidthList","tmpCurrentCol","canResizeSiblingColWidth","isWidthAbnormal","_getMinMaxColWidth3","targetNextColWidth","getSiblingColCanResizable","tableWidth","getTotalTableWidth","columnsWidth","getColumnFixedStyles","rowAndColFixedPosition","fixedPos","thClasses","lastLeftFixedCol","firstRightFixedCol","useFixed","finalColumns","tableRef","isFixedHeader","tableElmRef","scrollbarWidth","virtualScrollHeaderPos","tableElmWidth","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","_allowResizeColumnWid","notNeedThWidthList","getColumnMap","levelNodes","columnInfo","newColumnsMap","shadowLastScrollLeft","setFixedLeftPos","initialColumnMap","colInfo","lastColIndex","lastCol","lastColInfo","setFixedRightPos","_col$children3","updateRowAndColFixedPosition","tableContentElm","thead","trList","thLen","_obj$col","th","innerText","setFixedColPosition","tbody","tfoot","fixedTopRows","fixedBottomRows","_props$rowKey","rowId","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","setFixedRowPosition","updateColumnFixedShadow","skipScrollLimit","isShowRight","isShowLeft","updateFixedStatus","_getColumnMap","colMapInfo","nextColMapInfo","lastColMapInfo","setIsLastOrFirstFixedCol","_fixedRows$value","updateFixedHeader","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","HTMLCollection","updateThWidthListHandler","_tableContentRef$valu2","_tableElmRef$value","reduceWidth","elmRect","updateTableWidth","_tableContentRef$valu3","preFinalColumns","finalColKeys","preColKeys","reduceKeys","rootThWidthList","oldTotalWidth","contentWidth","widthToReserve","refreshTable","scrollDiv","getScrollbarWidthWithCSS","isWatchResize","hasResizeObserver","_resizeObserver2","_props$onScrollX","_props$onScrollY","setUseFixedTableElmRef","addTableResizeObserver","tableElement","usePagination","innerPagination","isPaginateData","updateDataSourceAndPaginate","_pagination$value","_pagination$value2","_pagination$value3","_innerPagination$valu","_innerPagination$valu2","_props$pagination","_props$pagination$onC","_props$onPageChange","useAffix","affixHeaderRef","affixFooterRef","horizontalScrollbarRef","paginationRef","showAffixHeader","showAffixFooter","showAffixPagination","isMousedown","isMouseInScrollableArea","isAffixed","lastScrollLeft","onHorizontalScroll","toUpdateScrollElement","isAffixedBottomElementShow","elementRect","tableRect","headerHeight","updateAffixHeaderOrFooter","_affixFooterRef$value","headerRect","footerRect","footerHeight","horizontalScrollbarRect","pageRect","onDocumentScroll","onFootScroll","onHeaderScroll","horizontalScrollbarScroll","onTableContentScroll","onFootMouseEnter","onFootMouseLeave","onHeaderMouseEnter","onMouseEnterScrollableArea","onHeaderMouseLeave","onMouseLeaveScrollableArea","onScrollbarMouseEnter","onScrollbarMouseLeave","onTableContentMouseEnter","onTableContentMouseLeave","activatingTouchScrollListenerCleanups","setupElementTouchScrollListener","debounceOffScrollListener","onElementTouchScroll","onElementTouchStart","composedPath","removeElementTouchScrollListener","elementTouchScrollCleanups","removeHorizontalScrollListeners","addVerticalScrollListener","addHorizontalScrollListeners","setTableContentRef","tableContent","formatRowAttributes","attrList","attrItem","attrProperty","formatRowClassNames","rowClassNames","rowClassList","customClasses","rName","tClass","formatClassNames","getCurrentRowByKey","_columns$i","_columns$i2","getAffixProps","mainAffixProps","subAffixProps","getCellKey","rowValue","useRowspanAndColspan","skipSpansMap","onTrRowspanOrColspan","skipSpansValue","maxRowIndex","maxColIndex","cellKey","skipped","_skipSpansMap$value","colLen","updateSkipSpansMap","TABLE_PROPS","ROW_LISTENERS","renderCell","tCurrent","tPageSize","TrElement","dataLength","tableElm","trRef","trStyles","rowLength","virtualTranslateY","fixedBottom","firstFixedBottomRow","getRowFixedStyles","trAttributes","_trStyles$value","notifyVirtualSizeUpdate","_props$virtualConfig","renderEllipsisCell","cellParams","_trStyles$value2","columVNodeList","cellSpans","spanState","_spanState","_spanState2","tdStyles","normalAttrs","renderTd","columnLength","trListeners","_props","getTrListeners","extendTableProps","TBody","renderExpandedRow","activeRow","hoverRow","tbodyClasses","_this$data","_this$data2","_this$virtualConfig","_this$virtualConfig2","getFullRow","tType","fullRowNode","isFixedToLeft","trNodeList","properties","renderData","_this$activeRow","trProps","trNode","onRowMounted","expandedContent","posStyle","useStyle","tableSize","_size$value","tableClasses","tableContentStyles","tableElementStyles","THead","thDraggable","columnResizeParams","theadRef","classnames","theadClasses","colspanSkipMap","processColumns","getTableNode","_parent","thBorderMap","thRowspanAndColspan","renderThNodeList","thRow","thStyles","colParams","thCustomClasses","thClassName","isLeftFixedActive","isRightFixedActive","canDragSort","withoutChildren","innerTh","resizeColumnListener","_this$columnResizePar","_this$columnResizePar2","_thList$index","onMousemove","_this$columnResizePar3","_this$columnResizePar4","TFoot","virtualScroll","renderTFootCell","foot","_this$footData","footerDomList","_this$thWidthList","useRowHighlight","currentOperationRowIndex","isShiftPressed","shiftSelectionState","areaSelectionStartIndex","tActiveRow","setTActiveRow","getActiveRowList","onHighlightRow","newActiveRowData","newActiveRowKeys","activeRowList","currentRowData","handleShiftActive","handleInactive","handleActive","clearShiftAreaSelection","keyboardDownListener","_props$onActiveRowAct2","activeKeys","_props$onActiveRowAct","_props$onActiveRowAct3","_props$onActiveRowAct4","keyboardUpListener","_e$key2","addHighlightKeyboardListener","removeHighlightKeyboardListener","_BaseTable","onLeafColumnsChange","tableBodyRef","bottomContentRef","tableFootHeight","_useStyle","_useTableHeader","_spansAndLeafNodes$va","_props2$size","_useElementLazyRender","showElement","_ioObserver$value","_ioObserver$value$uno","useElementLazyRender","_useFixed","_useAffix","_usePagination","dynamicBaseTableClasses","tableElmClasses","showRightDivider","dividerBottom","_bottomContentRef$val","_paginationRef$value","bottomRect","paginationRect","_useRowHighlight","_useHoverKeyboardEven","currentHoverRowIndex","tableRefTabIndex","needKeyboardRowHover","onHoverRow","ctrlKey","metaKey","clearHoverRow","addRowHoverKeyboardListener","removeRowHoverKeyboardListener","useHoverKeyboardEvent","_props2$onLeafColumns","syncThWidthList","useVirtualScrollNew","getTFootHeight","_tableElmRef$value$qu","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","_this$spansAndLeafNod","_this$allowResizeColu","_this$affixHeaderRef","_this$tableFootHeight","_this$tableFootHeight2","_affixHeaderHeight$va","_this$tableContentRef","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_this$affixHeaderRef2","affixHeaderWrapHeight","headerOpacity","affixHeaderWrapHeightStyle","affixedLeftBorder","affixHeaderWithWrap","marginScrollbarWidth","affixedFooter","virtualStyle","tableBodyProps","getCustomLoadingText","primaryTableProps","columnController","columnControllerVisible","defaultColumnControllerVisible","displayColumns","defaultDisplayColumns","dragSortOptions","editableCellState","editableRowKeys","expandOnRowClick","expandedRow","expandedRowKeys","defaultExpandedRowKeys","filterRow","defaultFilterValue","indeterminateSelectedRowKeys","multipleSort","reserveSelectedRowOnPaginate","rowSelectionAllowUncheck","rowSelectionType","selectOnRowClick","selectedRowKeys","defaultSelectedRowKeys","showSortColumnBgColor","defaultSort","sortOnRowDraggable","onAsyncLoadingClick","onColumnChange","onColumnControllerVisibleChange","onDisplayColumnsChange","onExpandChange","onFilterChange","onRowEdit","onRowValidate","onSelectChange","onSortChange","ColumnCheckboxGroup","uniqueKey","allCheckedColumnKeys","allCheckedKeys","intersectionKeys","isCheckedAll","onCheckAllColumnsChange","changeParams","newKeys","handleCheckChange","getColumnKeys","useColumnController","SettingIcon","TdSettingIcon","dialogInstance","enabledColKeys","_columnController$val","tDisplayColumns","setTDisplayColumns","columnCheckboxKeys","checkboxGroupList","_columnController$val2","groupColumns","_columnController$val3","groupList","_column$children","oneItem","getOneColumnItem","len1","_groupList$j","getCheckboxGroupOptions","getCheckboxOptions","_columnController$val4","_props$onColumnChange","currentColumn","handleToggleColumnController","_columnController$val8","_columnController$val5","widthMode","displayType","columnControllerTopContent","columnControllerBottomContent","_columnController$val6","_columnController$val7","_props$onColumnContro","_props$onColumnContro2","renderColumnController","_props$columnControll","isColumnController","hideTriggerButton","buttonProps","isRowSelectedDisabled","selectColumn","getColumnDataByKey","_columns$i$children","getColumnIndexByKey","_columns$i$children2","getColumnsResetValue","resetValue","useRowSelect","currentPaginateData","selectedRowClassNames","tSelectedRowKeys","setTSelectedRowKeys","selectedRowDataMap","selectionType","_selectColumn$value","canSelectedRows","_selectColumn$value2","_selectColumn$value3","getRowSelectDisabledData","handleSelectChange","selectedRowIndex","isExisted","selectedRowData","currentRowKey","handleSelectAll","_selectedRowKeys$valu","reRowKey","canSelectedRowKeys","disabledSelectedRowKeys","allIds","_selectColumn$value4","disabledRowClass","selectedRowClass","showRowSelect","formatToRowSelectColumn","_p$row","_getRowSelectDisabled","selectBoxProps","_e$e","_props$indeterminateS","renderSelectCell","onInnerSelectRowClick","_getRowSelectDisabled2","selectedColIndex","handleRowSelectWithAreaSelection","validAreaSelection","areaSelectionKeys","toCheck","clearedKeys","newSelectedRowKeys","SorterButton","sortType","sortOrder","allowSortTypes","getSortIcon","activeClass","sortClassName","descending","onSortIconClick","tooltips","sortButton","_this$hideSortTips","cancelTips","useSorter","originalData","tSortInfo","setTSortInfo","tData","setTData","sorterFuncMap","getSorterFuncMap","innerSort","sortArray","sortMap","sortBy","sorter","handleDataSort","sortInfo","isEmptyArraySort","isEmptyObjectSort","formatedSort","sortResult","sortFunc","handleSortHeaderClick","getSingleNextSort","getMultipleNextSort","currentData","currentDataSource","getSortOrder","tmpSortInfo","tmpInnerSortInfo","_ret","isSortInfoSame","renderSortIcon","_sortMap$value$col$co","sorterButtonsProps","TableFilterController","tFilterValue","innerFilterValue","primaryTableElement","triggerElementRef","FilterIcon","TdFilterIcon","filterPopupVisible","renderComponent","filterComponentProps","isVueComponent","tProps","getFilterContent","_column$filter","_column$filter2","_column$filter3","_props$innerFilterVal","single","_column$filter$props","_column$filter4","_column$filter$props$","_column$filter$props2","confirmEvents","getBottomButtons","showConfirmAndReset","onFilterPopupVisibleChange","_props$onVisibleChang","_this$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","isFilterValueExist","isArrayTrue","useFilter","primaryTableRef","isTableOverflowHidden","setTFilterValue","hasEmptyCondition","newFilterValue","getFilterResultContent","getAllColumns","_col$filter","_col$filter2","onInnerFilterChange","emitFilterChange","_column$filter$resetV","onResetAll","renderFilterIcon","_primaryTableRef$valu","renderFirstFilterRow","_props$data","filterContent","setFilterPrimaryTableRef","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutPropertiesLoose","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","toggleClass","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","childNum","includeDragEl","currentChild","Sortable","lastChild","lastElementChild","getRelativeScrollOffset","winScroller","includeSelf","elem","gotSelf","elemCSS","isRectEqual","Polymer","jQuery","Zepto","getChildContainingRectFromElement","ghostEl","_rect$left","_rect$top","_rect$right","_rect$bottom","animated","childRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animationResetTimer","currentRect","animatingX","animatingY","forRepaintDummy","repaint","plugins","initializeByDefault","PluginManager","plugin","pluginName","pluginEvent","eventCanceled","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","originalEvent","dragEl","parentEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","oldIndex","oldDraggableIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","targetEl","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","inputs","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","lastElRect","childContainingRect","spacer","_ghostIsLast","changed","firstElRect","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","toArray","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","swapDragArrayElement","removeNode","insertNodeAt","fatherNode","refNode","dragCol","isRowDraggable","isRowHandlerDraggable","isColDraggable","getDataPageIndex","_pagination$current","_pagination$pageSize","registerOneLevelColDragEvent","recover","onEnd","_props$onDragSort2","oldElement","newElement","registerColDragEvent","primaryTableCmp","timerA","_element$children","dragContainer","baseOptions","registerRowDragEvent","$refs","setDragSortPrimaryTableRef","setDragSortColumns","_toArray","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditableCell","oldCell","errors","onRuleChange","onEditableChange","_props$col$edit","isKeepEditMode","_col$value$edit","edit","keepEditMode","isEdit","defaultEditable","editValue","Edit1Icon","TdEdit1Icon","updateEditedCellValue","isUpdateCurrentRow","editOnListeners","_col$value$edit2","_col$value$edit2$on","editedRow","currentRow","restKeys","newRow","editProps","componentProps","_edit$abortEditOnEven","tmpProps","abortEditOnEvent","isAbortEditOnChange","_edit$abortEditOnEven2","validateEdit","_props$onValidate2","updateAndSaveAbort","outsideAbortEvent","_editOnListeners$valu","_editOnListeners$valu2","_props$onEditableChan","_edit$abortEditOnEven3","isCellEditable","tListeners","onEdited","itemEvent","newRowData","onEditChange","_editProps$value","_editProps$value$onCh","_props$onRuleChange","_editOnListeners$valu3","_editOnListeners$valu4","_col$value$edit4","_col$value$edit3","validateTrigger","documentClickHandler","_e$composedPath","_node2$classList","enterEdit","_props$onEditableChan2","_props$col$edit2","cellValue","_props$onRuleChange2","_col$value$edit6","_errorList$value","_col$value$edit7","_errorList$value2","_col$value$edit5","showEditIcon","Component","tmpEditOnListeners","onEventName","useRowEdit","cellRuleMap","errorListMap","editableKeysMap","getEditableKeysMap","editingCells","editedFormData","getErrorListMapByErrors","errorMap","validateOneRowData","rowRules","_t$errorList","validateTableCellData","cellKeys","existKeys","_v$props$rowKey","promiseList","_cellKey$split","allErrorListMap","_editableRowKeys$valu","keyStr","validateTableData","rList","validateRowData","_props$onRowValidate","tTrigger","clearValidateData","onUpdateEditedCell","lastRowData","getEditRowData","_props$editableRowKey","editedRowData","tmpRow","onPrimaryTableCellEditChange","OMIT_PROPS","_PrimaryTable","_props$size","_useColumnController","_useRowExpand","ChevronRightCircleIcon","TdChevronRightCircleIcon","tExpandedRowKeys","setTExpandedRowKeys","showExpandedRow","showExpandIconColumn","isFirstColumnFixed","_props$columns","onToggleExpand","currentId","expandedRowData","renderExpandIcon","getExpandColumn","isFixedLeft","onInnerExpandRowClick","getExpandedRowClass","_tExpandedRowKeys$val","useRowExpand","_useRowSelect","_useFilter","dragSortParams","_useAsyncLoading","onLoadClick","_props$onAsyncLoading","renderAsyncLoading","asyncLoadingNode","useAsyncLoading","_useEditableRow","useEditableRow","innerKeyboardRowHover","innerDisableSpaceInactiveRow","primaryTableClasses","tRowClassNames","tRowAttributes","tAttributes","baseTableRef","onEditableCellChange","_props$onRowEdit","getColumns","parentDisplay","_tDisplayColumns$valu","_item$edit","_tDisplayColumns$valu2","titleContent","cellProps","_errorListMap$value","tColumns","onInnerPageChange","onInnerActiveRowAction","onSingleRowClick","onShowElementChange","formatNode","api","renderInnerNode","condition","innerNode","_props$keyboardRowHov","_props$disableSpaceIn","isBottomController","BaseTable","enhancedTableProps","beforeDragSort","expandedTreeNodes","defaultExpandedTreeNodes","onAbnormalDragSort","onExpandedTreeNodesChange","onTreeExpandChange","TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL","getUniqueRowValue","TableTreeStore","treeDataMap","_this$treeDataMap","initialTreeDataMap","childrenKey","getAllUniqueKeys","getExpandedChildrenKeys","rowList","rowState","toggleExpandData","_r$rowIndex","updateExpandRow","changeRow","childrenNodes","updateChildrenRowState","updateRowExpandLength","expandChildrenLength","updateRowIndex","minRowIndex","newRowValue","updateRowData","oldChildren","currentRowIndex","removeNumber","validateDataExist","isShowNewNode","tmpData","newChildrenData","firstNewChildrenIndex","oneData","mapState","validateDataDoubleExist","newState","newChildrenCount","newDataSource","tmpNewData","dataSourceLen","dataIndex","childrenIndex","startRowValue","endRowValue","startState","endState","reason","startLastIndex","endLastIndex","startRowList","endRowList","middleRowList","allSwapList","expandAllRowIndex","expandLoop","tmpParent","_tmpParent","foldAll","treeData","updateDisabledState","_state$parent","expandLen","clearRowExpandLength","kidRowIndex","useTreeDataExpand","rowDataKeys","isDefaultExpandAllExecute","isDefaultExpandedTreeNodesExecute","tExpandedTreeNode","setTExpandedTreeNode","changedExpandTreeNode","expandedNode","updateExpandState","_diffExpandedTreeNode","newExpandedNode","oldExpandedNode","removedList","addedList","newExpandedNodeMap","oldExpandedNodeMap","diffExpandedTreeNode","expandTreeNode","foldTreeNode","oldExpandedTreeNode","onExpandFoldIconClick","_props$onTreeExpandCh","expandedNodes","expandedChildrenKeys","updateExpandOnDataChange","_tree$value","_tExpandedTreeNode$va","defaultExpandAll","useTreeData","AddRectangleIcon","TdAddRectangleIcon","MinusRectangleIcon","TdMinusRectangleIcon","treeNodeCol","shallowRef","_props$tree","_useTreeDataExpand","checkedColumn","resetData","initialTreeStore","defaultNeedExpand","needExpandAll","_store$value$treeData","_props$tree2","treeNodeColumnIndex","_props$tree5","_columns2$treeNodeCol","_columns2$treeNodeCol2","getTreeNodeColumnCol","swapData","_props$onAbnormalDrag","updateData","removeChildren","appendToRoot","formatTreeColumn","newCol","defaultFoldIcon","cellInfo","currentState","_props$tree3","_props$tree4","indent","getTreeNodeStyle","_store$value$treeData2","defaultExpandIcon","_store$value","getTreeExpandedRow","childrenMap","getChildrenData","allChildren","allChildrenKeys","leafNodeKeys","selectableChildren","_treeDataMap$get","tItem","nextLevelData","useTreeSelect","tIndeterminateSelectedRowKeys","parentMap","parentTmp","checkedLength","parentTmpIndex","updateIndeterminateState","onInnerSelectChange","rowKeys","extraData","newRowKeys","newExtraData","removeKeys","removeChildrenKeys","selectedKeys","checkedChildrenKeys","updateParentCheckedState","getRowDataByKeys","handleSelect","_EnhancedTable","_useTreeData","treeInstanceFunctions","_useTreeSelect","onDragSortChange","onEnhancedTableRowClick","_props$onRowClick","expandTreeNodeOnClick","getScrollRowIndex","rowStateData","enhancedProps","PrimaryTable","EnhancedTable","Table","TimeLineProps","DefaultAlign","horizontal","TimelineInjectKey","DEFAULT_PROVIDER","itemsStatus","renderAlign","props$e","dotColor","DEFAULT_THEME","_TimelineItem","TimelineProvider","getPositionClassName","_props2$labelAlign","_TimelineProvider$val","timelineItemAlign","_TimelineProvider$val2","dotElement","dotContentClass","_dotElement$props","_Timeline","TimeLineProvide","globalAlign","timelineItems","hasLabelItem","TimelineItem","Timeline","props$d","expandIconPlacement","_Collapse","borderlessClass","collapseValue","setCollapseValue","getUniqId","props$c","destroyOnCollapse","headerRightContent","_CollapsePanel","clickableClass","updateCollapseValue","_inject","disableAll","renderParentTNode","iconRef","panelExpandIcon","handleHeaderRightContentClick","tNodeRender","renderBody","Collapse","CollapsePanel","props$b","isRepeat","lineSpace","movable","moveInterval","watermarkContent","_Watermark","backgroundImage","watermarkRef","watermarkContentRef","gapX","gapY","backgroundRepeat","bgImageOptions","injectWaterMark","ratio","canvasWidth","canvasHeight","globalAlpha","markWidth","markHeight","fillStyle","fillRect","contents","_item$isGrayscale","isGrayscale","img","crossOrigin","referrerPolicy","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_item$fontColor","fontColor","_item$fontSize","_item$fontFamily","fontFamily","_item$fontWeight","fontWeight","markSize","font","textAlign","textBaseline","fillText","generateBase64Url","base64Url","_watermarkRef$value","backgroundSize","keyframesStyle","p1","styleElement","styleSheet","sheet","insertRule","cssRules","isRemoved","removedNodes","isModified","Watermark","props$a","allowHalf","_Rate","activeColor","defaultColor","starValue","setStarValue","displayTexts","RateIcon","iconProps","StarFilledIcon","getStarValue","starMiddle","mouseLeaveHandler","getStarCls","clickHandler","mouseEnterHandler","Rate","props$9","copyable","italic","keyboard","strong","reselectPrevious","rangeCount","ranges","getRangeAt","deselectCurrent","whiteSpace","webkitUserSelect","userSelect","clearData","onCopy","copyKey","prompt","removeRange","props$8","Ellipsis","ellipsisState","expandable","ellipsisStyles","def","WebkitLineClamp","WebkitBoxOrient","_props2$ellipsis$onEx","_props2$ellipsis","onCollapse","_props2$ellipsis$onEx2","_props2$ellipsis2","renderEllipsisExpand","moreNode","_ellipsisState$value","collapsible","_Text","isCopied","wrapperDecorations","del","currentContent","needed","_currentContent","tooltipText","_copyable$tooltipProp","renderCopy","CopyIcon","tooltipConf","onCopyClick","_Typography","props$7","_Title","_Paragraph","Typography","Title","Paragraph","props$6","maxLine","_Alert","renderIconTNode","iconType","defaultIcons","iconContent","alertRef","descriptionRef","descHeight","renderClose","closeContent","handleClose","renderDescription","_descriptionRef$value","messageContent","contentLength","hasCollapse","handleCloseEnd","isTransitionTarget","propertyName","operationContent","Alert","props$5","drawerClassName","sizeDraggable","onSizeDragEnd","calcSizeRange","isSizeDragging","draggedSizeValue","handleMouseup","handleMousemove","_props$onSizeDragEnd","limit","_getSizeDraggable","allowSizeDraggable","limitMax","limitMin","moveSize","calcMoveSize","draggableLineStyles","isHorizontal","draggingStyles","enableDrag","_Drawer","destroyOnCloseVisible","styleTimer","closeDrawer","drawerEle","drawerClasses","defaultSize","wrapperStyles","wrapperClasses","modeAndPlacement","footerStyle","justifyContent","handleEscKeydown","clearStyleFunc","_styleEl$value","_styleEl$value$remove","handleCloseBtnClick","handleWrapperClick","marginStr","updatePushMode","headerContent","createDrawer","updateStyle","drawerOptions","_drawerOptions$value","DrawerComponent","drawerComponent","DrawerPlugin","$drawer","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","notify","_notify$$","NotificationFunction","NotificationPlugin","$notify","props$2","_Popconfirm","innerPopupProps","renderTNodeDefault","Popconfirm","props$1","allowUploadDuplicateFile","autoUpload","beforeAllFilesUpload","beforeUpload","cancelUploadButton","dragContent","fileListDisplay","defaultFiles","formatRequest","formatResponse","headers","imageViewerProps","inputAttributes","isBatchUpload","mockProgressDuration","requestMethod","showImageFileName","showThumbnail","showUploadProgress","sizeLimit","triggerButtonProps","uploadAllFilesInOneRequest","uploadButton","uploadPastedFiles","useMockProgress","withCredentials","onCancelUpload","onDragenter","onFail","onOneFileFail","onOneFileSuccess","onPreview","onProgress","onSuccess","onWaitingUploadFilesChange","commonProps","toUploadFiles","displayFiles","sizeOverLimitMessage","onPasteFileChange","placeholderClass","NormalFile","TimeFilledIcon","TdTimeFilledIcon","uploadPrefix","renderProgress","renderFilePreviewAsInput","_props$abridgeName","inputTextClass","disabledClass","_displayFiles$","_displayFiles$0$respo","_files$","dragActive","_props$onDrop","_props$onDragFileChan","dragFiles","onDragFileChange","handleDragenter","_props$onDragenter","handleDragleave","_props$onDragleave","handleDragover","DraggerFile","triggerUpload","uploadFiles","cancelUpload","dragEvents","draggerFileRef","_displayFiles$value$","_file$response","raw","renderUploading","_locale$value$trigger","unActiveElement","_locale$value","fileInfo","uploadTime","_props$cancelUpload","_props$uploadFiles","renderMainPreview","_props$trigger","ImageCard","showTrigger","_displayFiles$value","renderMainContent","_props$onPreview","_props$onRemove","renderProgressFile","loadCard","renderFailFile","_locale$value2","_props$onRemove2","_displayFiles$value2","_locale$value3","customList","cardItemClasses","fileNameClassName","MultipleFlowList","FileExcelIcon","TdFileExcelIcon","FilePdfIcon","TdFilePdfIcon","FileWordIcon","TdFileWordIcon","FilePowerpointIcon","TdFilePowerpointIcon","FileIcon","TdFileIcon","VideoIcon","TdVideoIcon","currentPreviewFile","previewIndex","uploadText","innerDragEvents","getStatusMap","iconMap","waiting","textMap","renderStatus","_file$response2","_file$response3","_getStatusMap2","getFileThumbnailIcon","renderFileThumbnail","_props$onPreview2","renderFileList","_locale$value$file","_locale$value$file2","_locale$value$file3","_locale$value$file4","deleteNode","renderBatchActionCol","renderNormalActionCol","thumbnailNode","fileNameNode","returnFileSize","renderImageList","_getStatusMap","renderImgItem","_locale$value4","cardClassName","cancelUploadDisabled","hasCancelUploadTNode","uploadButtonDisabled","hasUploadButtonTNode","CustomFile","childrenNode","_props$childrenNode2","_props$childrenNode","handleBeforeUpload","sizePromise","sizeLimitObj","fileSize","units","isOverSizeLimit","XMLHttpRequest","currentFiles","uploadOneRequest","handleRequestMethodResponse","resultFiles","toFile","_response","_params$onResponseSuc","onResponseSuccess","_params$onResponseErr","onResponseError","_params$setXhrObject","xhrReq","timer1","timer2","_ref$method","_ref$withCredentials","_ref$headers","_ref$data","_ref$files","_ref$name","_ref$useMockProgress","_ref$mockProgressDura","innerFiles","xhr","requestData","fileField","formData","FormData","setRequestHeader","onerror","ontimeout","onprogress","_innerFiles$","realPercent","progressFiles","responseText","send","requestParams","requestHeaders","_params$onResponseErr2","onResponseProgress","_params$onResponseErr3","_params$onResponseSuc2","handleSuccess","setXhrObject","uploadedFiles","thisUploadFiles","failedFiles","one","tFiles","newFiles","tmpFile","updateUploadedFiles","formatToUploadFile","lastModified","useUpload","uploadValue","setUploadValue","_uploadValue$value","field","waitingUploadFiles","getDisplayFiles","updateFilesProgress","_props$onOneFileFail","_props$onProgress","_props$onOneFileSucce","getSizeLimitError","onFileChange","_props$onSelectChange","currentSelectedFiles","tmpFiles","sameNameFile","hasSameNameFile","lengthOverLimit","tmpFilesLenToBeAdded","allFileValidatePromise","formattedFiles","_params$beforeAllFile","sizeResult","customResult","_results","allFilesResult","others","fileValidateList","validateFile","_args$validateResult","_props$onValidate3","_props$onWaitingUploa","_props$onValidate4","_getFilesAndErrors","getError","sizeLimitErrors","beforeUploadErrorFiles","toFiles","oneFile","_oneFile$validateResu","_oneFile$validateResu2","getFilesAndErrors","tmpWaitingFiles","_props$onValidate5","handleNotAutoUpload","notUploadedFiles","_xhr$files$","_item$files$","_props$onSuccess","_props$onWaitingUploa2","_props$onFail","onInnerRemove","_p$e$stopPropagation","_p$e","_props$onWaitingUploa3","changePrams","_props$onWaitingUploa4","uploadFilePercent","operationUploadFiles","onNormalFileChange","_xhrReq$value","_props$onCancelUpload","_item$xhrReq","abort","_Upload","_useUpload","UploadIcon","TdUploadIcon","triggerUploadButtonText","_props2$triggerButton","_props2$triggerButton2","renderTrigger","commonDisplayFileProps","dragProps","uploadClasses","Upload","_ConfigProvider","ConfigProvider","use","tdesign","PKG_VERSION"],"mappings":"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AAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,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"} \ No newline at end of file +{"version":3,"file":"tdesign.min.js","sources":["../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toFinite.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toInteger.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castSlice.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/upperFirst.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCaseFirst.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_deburrLetter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/deburr.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiWords.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicodeWord.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeWords.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/words.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCompounder.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayReduce.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/camelCase.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/capitalize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/chunk.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mergeWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludesWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseDifference.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/difference.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/escapeRegExp.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFilter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIntersection.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/intersection.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBoolean.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isDate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsDate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNumber.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNull.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/kebabCase.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseLt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseExtremum.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnset.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_parent.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_customOmitClone.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/omit.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRepeat.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiSize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeSize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringSize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createPadding.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/padStart.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePullAt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/range.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/remove.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/sum.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSum.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/throttle.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqueId.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/xorWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseXor.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../common/js/global-config/default-config.ts","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/dayjs.min.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/locale/zh-cn.js","../../common/js/global-config/locale/zh_CN.ts","../../components/config-provider/utils/context.ts","../../components/config-provider/hooks/useConfig.ts","../../components/hooks/useConfig.ts","../../common/js/utils/setStyle.ts","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../common/js/utils/helper.ts","../../components/loading/icon/gradient.tsx","../../common/js/loading/circle-adapter.ts","../../../node_modules/.pnpm/performance-now@2.1.0/node_modules/performance-now/lib/performance-now.js","../../../node_modules/.pnpm/raf@3.4.1/node_modules/raf/index.js","../../common/js/utils/easing.ts","../../components/utils/dom.ts","../../common/js/utils/general.ts","../../components/utils/render-tnode.ts","../../components/hooks/tnode.ts","../../components/hooks/useTeleport.ts","../../components/loading/props.ts","../../components/loading/loading.tsx","../../components/loading/plugin.tsx","../../components/loading/directive.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mapKeys.js","../../components/utils/withInstall.ts","../../components/loading/index.ts","../../components/button/props.ts","../../components/hooks/useKeepAnimation.ts","../../components/hooks/useRipple.ts","../../components/hooks/useDisabled.ts","../../components/button/button.tsx","../../components/button/index.ts","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/_chunks/dep-931ef437.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/utils/render-fn.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/utils/config-context.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/utils/use-size-props.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/utils/use-common-classname.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/add-rectangle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/add.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/arrow-triangle-down-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/arrow-triangle-up-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/backtop.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/browse-off.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/browse.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/calendar.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/caret-right-small.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/check-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/check.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-down.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-left-double.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-left.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right-circle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right-double.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-up.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/close-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/close.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/copy.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/delete.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/download.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/edit-1.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/ellipsis.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/error-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/error.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/file-copy.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/file-excel.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/file-pdf.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/file-powerpoint.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/file-word.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/file.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/filter.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/help-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/image-error.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/image.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/info-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/minus-rectangle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/mirror.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/page-first.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/page-last.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/remove.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/rotation.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/round.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/search.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/setting.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/star-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/time-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/time.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/upload.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/video.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/zoom-in.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/components/zoom-out.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/utils/check-url-and-load.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/svg-sprite/props/props.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.7.3_/node_modules/tdesign-icons-vue-next/esm/svg-sprite/svg-sprite.js","../../components/icon/index.ts","../../components/link/props.ts","../../components/link/link.tsx","../../components/link/index.ts","../../components/grid/row-props.ts","../../common/js/utils/responsive.ts","../../components/hooks/useListener.tsx","../../components/grid/hooks/index.ts","../../components/grid/row.tsx","../../components/grid/utils/index.ts","../../components/grid/col-props.ts","../../components/grid/col.tsx","../../components/grid/index.ts","../../components/layout/layout.tsx","../../components/layout/header-props.ts","../../components/layout/header.tsx","../../components/layout/footer-props.ts","../../components/layout/footer.tsx","../../components/layout/aside-props.ts","../../components/layout/aside.tsx","../../components/layout/content-props.ts","../../components/layout/content.tsx","../../components/layout/index.ts","../../components/divider/props.ts","../../components/divider/divider.tsx","../../components/divider/index.ts","../../components/space/props.ts","../../components/hooks/slot.ts","../../components/space/space.tsx","../../components/space/index.ts","../../components/descriptions/props.ts","../../components/descriptions/consts/index.ts","../../components/descriptions/types.ts","../../components/descriptions/utils/index.ts","../../components/descriptions/descriptions-row.tsx","../../components/descriptions/descriptions.tsx","../../components/descriptions/descriptions-item-props.ts","../../components/descriptions/descriptions-item.tsx","../../components/descriptions/index.ts","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/regenerator/index.js","../../components/affix/props.ts","../../components/affix/affix.tsx","../../components/affix/index.ts","../../../node_modules/.pnpm/clipboard@2.0.11/node_modules/clipboard/dist/clipboard.js","../../components/anchor/utils/index.ts","../../components/anchor/props.ts","../../components/anchor/consts/index.ts","../../components/anchor/anchor.tsx","../../components/anchor/anchor-item.tsx","../../components/anchor/anchor-item-props.ts","../../components/message/consts/index.ts","../../components/message/props.ts","../../components/hooks/useGlobalIcon.ts","../../components/message/utils/animation.ts","../../components/message/message.tsx","../../components/message/message-list.tsx","../../components/message/plugin.tsx","../../components/anchor/anchor-target-props.ts","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../components/hooks/useCommonClassName.ts","../../components/hooks/useDefaultValue.ts","../../components/hooks/useDestroyOnClose.ts","../../components/hooks/useVModel.ts","../../common/js/log/log.ts","../../common/js/upload/utils.ts","../../components/hooks/useImagePreviewUrl.ts","../../components/popup/props.ts","../../components/hooks/useResizeObserver.ts","../../components/popup/container.tsx","../../components/popup/popup.tsx","../../components/popup/index.ts","../../components/anchor/anchor-target.tsx","../../components/anchor/index.ts","../../components/breadcrumb/props.ts","../../components/breadcrumb/breadcrumb-item-props.ts","../../components/tooltip/props.ts","../../components/tooltip/tooltip.tsx","../../components/tooltip/utils/index.ts","../../components/tooltip/index.ts","../../components/breadcrumb/breadcrumb-item.tsx","../../components/breadcrumb/hooks/useEllipsis.ts","../../components/breadcrumb/hooks/useBreadcrumbOptions.ts","../../components/breadcrumb/breadcrumb.tsx","../../components/breadcrumb/index.ts","../../components/dropdown/dropdown-item-props.ts","../../components/dropdown/dropdown-item.tsx","../../components/dropdown/props.ts","../../components/dropdown/dropdown-menu.tsx","../../components/dropdown/hooks/useDropdownOptions.ts","../../components/dropdown/dropdown.tsx","../../components/dropdown/index.ts","../../components/menu/props.ts","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/createClass.js","../../components/menu/utils/v-menu.ts","../../components/menu/menu.tsx","../../components/menu/head-menu-props.ts","../../components/tabs/tab-panel-props.ts","../../components/tabs/tab-panel.tsx","../../components/tabs/props.ts","../../common/js/tabs/base.ts","../../components/tabs/tab-nav-item.tsx","../../components/tabs/tab-nav-bar.tsx","../../components/hooks/useDragSort.tsx","../../components/tabs/tab-nav.tsx","../../components/tabs/tabs.tsx","../../components/tabs/index.ts","../../components/menu/submenu-props.ts","../../components/common-components/fake-arrow.tsx","../../components/menu/submenu.tsx","../../components/hooks/useCollapseAnimation.ts","../../components/menu/head-menu.tsx","../../components/menu/menu-item-props.ts","../../components/menu/menu-item.tsx","../../components/menu/menu-group-props.ts","../../components/menu/menu-group.tsx","../../components/menu/index.ts","../../components/input/props.ts","../../components/hooks/useReadonly.ts","../../components/form/consts/index.ts","../../components/input/hooks/useLengthLimit.tsx","../../components/input/hooks/useInput.ts","../../components/input/hooks/useInputWidth.ts","../../components/input/input.tsx","../../components/input/hooks/useInputEventHandler.ts","../../components/input/input-group-props.ts","../../components/input/input-group.tsx","../../components/input/index.ts","../../components/input-number/props.ts","../../common/js/input-number/large-number.ts","../../common/js/input-number/number.ts","../../components/input-number/hooks/useInputNumber.tsx","../../components/input-number/input-number.tsx","../../components/input-number/index.ts","../../components/select-input/props.ts","../../components/tag-input/props.ts","../../../node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","../../components/tag/props.ts","../../components/tag/tag.tsx","../../components/tag/check-tag-props.ts","../../common/js/common.ts","../../components/tag/check-tag.tsx","../../components/tag/check-tag-group-props.ts","../../components/tag/check-tag-group.tsx","../../components/tag/index.ts","../../components/tag-input/tag-input.tsx","../../components/tag-input/hooks/useHover.ts","../../components/tag-input/hooks/useDragSorter.ts","../../components/tag-input/hooks/useTagScroll.ts","../../components/tag-input/hooks/useTagList.tsx","../../components/tag-input/index.ts","../../components/select-input/hooks/useMultiple.tsx","../../components/select-input/hooks/useOverlayInnerStyle.ts","../../components/select-input/hooks/useSingle.tsx","../../components/select-input/select-input.tsx","../../components/select-input/index.ts","../../components/select/option-props.ts","../../components/checkbox/props.ts","../../components/checkbox/consts/index.ts","../../common/js/utils/observe.ts","../../components/checkbox/checkbox.tsx","../../components/checkbox/hooks/useCheckboxLazyLoad.ts","../../components/checkbox/hooks/useKeyboardEvent.ts","../../components/checkbox/checkbox-group-props.ts","../../components/checkbox/group.tsx","../../components/checkbox/index.ts","../../components/select/utils/index.ts","../../components/select/consts/index.ts","../../components/select/option.tsx","../../components/select/option-group-props.ts","../../components/select/option-group.tsx","../../components/select/props.ts","../../components/select/hooks/usePanelVirtualScroll.ts","../../components/hooks/useVirtualScroll.ts","../../components/select/select-panel.tsx","../../components/select/hooks/useSelectOptions.ts","../../components/select/select.tsx","../../components/select/hooks/useKeyboardControl.ts","../../components/select/index.ts","../../components/input-adornment/props.ts","../../components/input-adornment/input-adornment.tsx","../../components/input-adornment/index.ts","../../components/pagination/props.ts","../../components/pagination/pagination.tsx","../../components/pagination/hooks/usePaginationClasses.ts","../../components/pagination/hooks/useMoreAction.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNaN.js","../../components/pagination/pagination-mini-props.ts","../../components/pagination/pagination-mini.tsx","../../components/pagination/index.ts","../../components/steps/props.ts","../../components/steps/step-item-props.ts","../../components/steps/step-item.tsx","../../components/steps/steps.tsx","../../components/steps/index.ts","../../components/sticky-tool/props.ts","../../components/sticky-tool/sticky-item-props.ts","../../components/sticky-tool/sticky-item.tsx","../../components/sticky-tool/sticky-tool.tsx","../../components/sticky-tool/index.ts","../../components/back-top/props.ts","../../components/back-top/back-top.tsx","../../components/back-top/index.ts","../../components/auto-complete/props.ts","../../components/auto-complete/highlight-option.tsx","../../components/auto-complete/option-list.tsx","../../components/auto-complete/auto-complete.tsx","../../components/auto-complete/index.ts","../../components/cascader/utils/className.ts","../../components/cascader/utils/helper.ts","../../components/cascader/utils/effect.ts","../../components/cascader/components/Item.tsx","../../components/cascader/props.ts","../../components/cascader/components/Panel.tsx","../../common/js/tree/tree-node-model.ts","../../common/js/tree/tree-node.ts","../../common/js/tree/tree-store.ts","../../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs","../../components/cascader/hooks/index.ts","../../components/cascader/cascader.tsx","../../components/cascader/cascader-panel.tsx","../../components/cascader/index.ts","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isoWeeksInYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isLeapYear.js","../../common/js/date-picker/format.ts","../../components/date-picker/hooks/useSingleValue.tsx","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isBetween.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/weekOfYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/weekYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/quarterOfYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/advancedFormat.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.js","../../common/js/date-picker/utils.ts","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../../components/date-picker/props.ts","../../components/date-picker/components/base/Header.tsx","../../components/date-picker/components/base/Cell.tsx","../../components/date-picker/components/base/Table.tsx","../../common/js/time-picker/const.ts","../../components/time-picker/props.ts","../../components/time-picker/panel/props.ts","../../common/js/time-picker/utils.ts","../../components/time-picker/panel/single-panel.tsx","../../components/time-picker/panel/time-picker-panel.tsx","../../components/date-picker/components/panel/PanelContent.tsx","../../components/date-picker/components/base/Footer.tsx","../../components/date-picker/components/panel/ExtraContent.tsx","../../components/date-picker/hooks/useDisableDate.ts","../../components/date-picker/hooks/useRangeValue.ts","../../components/date-picker/hooks/useRange.tsx","../../components/date-picker/hooks/useTableData.tsx","../../components/date-picker/components/panel/SinglePanel.tsx","../../components/date-picker/DatePicker.tsx","../../components/date-picker/hooks/useSingle.tsx","../../components/date-picker/date-picker-panel-props.ts","../../components/date-picker/DatePickerPanel.tsx","../../components/date-picker/date-range-picker-props.ts","../../components/range-input/props.ts","../../components/range-input/range-input.tsx","../../components/range-input/range-input-popup-props.ts","../../components/range-input/range-input-popup.tsx","../../components/range-input/index.ts","../../components/date-picker/components/panel/RangePanel.tsx","../../components/date-picker/utils/index.ts","../../components/date-picker/DateRangePicker.tsx","../../components/date-picker/date-range-picker-panel-props.ts","../../components/date-picker/DateRangePickerPanel.tsx","../../components/date-picker/index.ts","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/util/merge.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/isDate.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/util/assertString.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/util/checkHost.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/isByteLength.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/isFQDN.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/isIP.js","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/isEmail.js","../../components/form/utils/form-model.ts","../../../node_modules/.pnpm/validator@13.15.0/node_modules/validator/lib/isURL.js","../../components/form/form-item-props.ts","../../components/form/form-item.tsx","../../common/js/utils/stringTemplate.ts","../../components/form/props.ts","../../components/form/form.tsx","../../components/form/index.ts","../../components/radio/props.ts","../../components/radio/consts/index.ts","../../components/radio/radio.tsx","../../components/radio/radio-group-props.ts","../../components/radio/radio-button.tsx","../../components/watermark/hooks/index.ts","../../components/radio/group.tsx","../../components/radio/hooks/useKeyboard.ts","../../components/radio/index.ts","../../components/slider/props.ts","../../components/slider/utils/index.ts","../../components/slider/hooks/useSliderTooltip.tsx","../../components/slider/consts/index.ts","../../components/slider/slider-button.tsx","../../components/slider/slider-mark.tsx","../../components/slider/hooks/useSliderInput.tsx","../../common/js/utils/calcTextareaHeight.ts","../../components/slider/slider.tsx","../../components/slider/hooks/useSliderMark.tsx","../../components/slider/index.ts","../../components/switch/props.ts","../../components/switch/switch.tsx","../../components/switch/index.ts","../../components/textarea/props.ts","../../components/textarea/textarea.tsx","../../components/textarea/index.ts","../../components/transfer/utils/index.ts","../../components/transfer/components/transfer-search.tsx","../../components/transfer/components/transfer-list.tsx","../../components/transfer/hooks/useDragSort.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/filter.js","../../components/transfer/props.ts","../../components/transfer/components/transfer-operations.tsx","../../components/transfer/transfer.tsx","../../components/transfer/index.ts","../../components/time-picker/time-picker.tsx","../../components/time-picker/time-range-picker-props.ts","../../components/time-picker/time-range-picker.tsx","../../components/time-picker/index.ts","../../components/hooks/useVirtualScrollNew.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/max.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/min.js","../../components/tree/adapt.ts","../../components/tree/hooks/useDraggable.ts","../../components/tree/util.ts","../../components/tree/hooks/useTreeAction.ts","../../components/tree/hooks/useItemEvents.ts","../../components/tree/hooks/useRenderIcon.tsx","../../components/tree/hooks/useRenderLabel.tsx","../../components/tree/hooks/useTreeItem.tsx","../../components/tree/hooks/useRenderLine.tsx","../../components/tree/hooks/useRenderOperations.tsx","../../components/hooks/useLazyLoad.ts","../../components/tree/tree-item.tsx","../../components/tree/hooks/useItemState.ts","../../components/tree/hooks/useTreeNodes.tsx","../../components/tree/hooks/useTreeEvents.ts","../../components/tree/hooks/useTreeScroll.ts","../../components/tree/hooks/useTreeStyles.ts","../../components/tree/props.ts","../../components/tree/tree.tsx","../../components/tree/hooks/useTreeState.ts","../../components/tree/hooks/useTreeStore.ts","../../components/tree/hooks/useDragHandle.ts","../../components/tree/index.ts","../../components/tree-select/props.ts","../../components/tree-select/tree-select.tsx","../../common/js/color-picker/gradient.ts","../../common/js/tree-select/utils.ts","../../components/tree-select/index.ts","../../components/color-picker/props.ts","../../common/js/color-picker/cmyk.ts","../../common/js/color-picker/constants.ts","../../common/js/color-picker/color.ts","../../common/js/color-picker/draggable.ts","../../common/js/color-picker/format.ts","../../components/color-picker/hooks/index.ts","../../components/color-picker/components/panel/header.tsx","../../components/color-picker/components/panel/base-props.ts","../../components/color-picker/components/panel/linear-gradient.tsx","../../components/color-picker/components/panel/saturation.tsx","../../components/color-picker/components/panel/slider.tsx","../../components/color-picker/components/panel/hue.tsx","../../components/color-picker/components/panel/alpha.tsx","../../components/color-picker/components/format/inputs.tsx","../../components/color-picker/components/format/index.tsx","../../components/color-picker/components/panel/swatches.tsx","../../components/color-picker/components/panel/index.tsx","../../components/color-picker/color-picker-panel.tsx","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pickBy.js","../../components/color-picker/components/trigger/index.tsx","../../components/color-picker/color-picker.tsx","../../components/color-picker/index.ts","../../components/avatar/props.ts","../../components/image/props.ts","../../components/image/image.tsx","../../components/image/index.ts","../../components/avatar/avatar.tsx","../../components/avatar/avatar-group-props.ts","../../components/avatar/group.tsx","../../components/avatar/index.ts","../../components/badge/props.ts","../../components/badge/badge.tsx","../../components/badge/index.ts","../../components/calendar/props.ts","../../components/calendar/consts/index.ts","../../components/calendar/utils/index.ts","../../components/calendar/hooks/useState.ts","../../components/calendar/hooks/useController.ts","../../components/calendar/hooks/useColHeaders.ts","../../components/calendar/calendar-cell.tsx","../../components/calendar/hooks/useCalendarClass.ts","../../components/calendar/calendar.tsx","../../components/calendar/index.ts","../../components/card/props.ts","../../components/card/card.tsx","../../components/card/index.ts","../../components/comment/props.ts","../../components/comment/comment.tsx","../../components/comment/index.ts","../../components/empty/props.ts","../../components/empty/components/MaintenanceSvg.tsx","../../components/empty/components/NetworkErrorSvg.tsx","../../components/empty/components/EmptySvg.tsx","../../components/empty/components/FailSvg.tsx","../../components/empty/components/SuccessSvg.tsx","../../components/empty/empty.tsx","../../components/empty/index.ts","../../components/hooks/usePopupManager.ts","../../components/image-viewer/hooks/index.ts","../../components/image-viewer/base/ImageItem.tsx","../../components/image-viewer/base/ImageModalIcon.tsx","../../components/dialog/props.ts","../../components/dialog/hooks/useAction.tsx","../../common/js/utils/getScrollbarWidth.ts","../../components/dialog/utils/index.ts","../../components/dialog/dialog-card-props.ts","../../components/dialog/dialog-card.tsx","../../components/dialog/dialog.tsx","../../components/dialog/hooks/useSameTarget.ts","../../components/dialog/plugin.tsx","../../components/dialog/index.ts","../../components/image-viewer/props.ts","../../components/image-viewer/base/ImageViewerUtils.tsx","../../components/image-viewer/base/ImageViewerModal.tsx","../../components/image-viewer/consts/index.ts","../../components/image-viewer/utils/index.ts","../../components/image-viewer/image-viewer.tsx","../../components/image-viewer/index.ts","../../components/list/list-item-props.ts","../../components/list/list-item.tsx","../../components/list/props.ts","../../components/list/consts/index.ts","../../components/list/hooks/useListVirtualScroll.ts","../../components/list/list.tsx","../../components/list/hooks/useListItems.ts","../../components/list/list-item-meta-props.ts","../../components/list/list-item-meta.tsx","../../components/list/index.ts","../../components/progress/consts/index.ts","../../components/progress/props.ts","../../components/progress/progress.tsx","../../components/progress/index.ts","../../components/skeleton/props.ts","../../components/skeleton/skeleton.tsx","../../components/skeleton/index.ts","../../components/statistic/props.ts","../../common/js/statistic/tween.ts","../../common/js/statistic/utils.ts","../../components/statistic/statistic.tsx","../../components/statistic/index.ts","../../components/swiper/props.ts","../../components/swiper/swiper-item.tsx","../../components/swiper/swiper.tsx","../../components/swiper/index.ts","../../components/table/base-table-props.ts","../../components/table/hooks/useMultiHeader.ts","../../components/table/hooks/useClassName.ts","../../components/table/ellipsis.tsx","../../components/table/hooks/useTableHeader.tsx","../../components/table/hooks/useColumnResize.ts","../../components/table/hooks/useFixed.ts","../../components/table/hooks/usePagination.tsx","../../components/table/hooks/useAffix.ts","../../components/table/utils.ts","../../components/table/hooks/useRowspanAndColspan.ts","../../components/table/tr.tsx","../../components/table/hooks/useLazyLoad.ts","../../components/table/tbody.tsx","../../components/table/hooks/useStyle.ts","../../components/table/thead.tsx","../../components/table/tfoot.tsx","../../components/table/hooks/useRowHighlight.ts","../../components/table/base-table.tsx","../../components/hooks/useElementLazyRender.ts","../../components/table/hooks/useHoverKeyboardEvent.ts","../../components/table/primary-table-props.ts","../../components/table/column-checkbox-group.tsx","../../components/table/hooks/useColumnController.tsx","../../common/js/table/utils.ts","../../components/table/hooks/useRowSelect.tsx","../../components/table/sorter-button.tsx","../../components/table/hooks/useSorter.tsx","../../components/table/filter-controller.tsx","../../components/table/hooks/useFilter.tsx","../../../node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.js","../../common/js/utils/swapDragArrayElement.ts","../../components/table/hooks/useDragSort.ts","../../../node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toArray.js","../../components/table/editable-cell.tsx","../../components/table/hooks/useEditableRow.ts","../../components/table/primary-table.tsx","../../components/table/hooks/useRowExpand.tsx","../../components/table/hooks/useAsyncLoading.tsx","../../components/table/enhanced-table-props.ts","../../common/js/table/tree-store.ts","../../components/table/hooks/useTreeDataExpand.ts","../../components/table/hooks/useTreeData.tsx","../../components/table/hooks/useTreeSelect.tsx","../../components/table/enhanced-table.tsx","../../components/table/index.ts","../../components/timeline/props.ts","../../components/timeline/hooks/index.ts","../../components/timeline/timeline-item-props.ts","../../components/timeline/timeline-item.tsx","../../components/timeline/timeline.tsx","../../components/timeline/index.ts","../../components/collapse/props.ts","../../components/collapse/collapse.tsx","../../components/collapse/collapse-panel-props.ts","../../components/collapse/collapse-panel.tsx","../../components/collapse/index.ts","../../components/watermark/props.ts","../../components/watermark/watermark.tsx","../../common/js/watermark/generateBase64Url.ts","../../common/js/watermark/randomMovingStyle.ts","../../common/js/utils/injectStyle.ts","../../components/watermark/index.ts","../../components/rate/props.ts","../../components/rate/rate.tsx","../../components/rate/index.ts","../../components/typography/text-props.ts","../../components/typography/utils/copy-to-clipboard/index.ts","../../components/typography/paragraph-props.ts","../../components/typography/ellipsis.tsx","../../components/typography/text.tsx","../../components/typography/typography.tsx","../../components/typography/title-props.ts","../../components/typography/title.tsx","../../components/typography/paragraph.tsx","../../components/typography/index.ts","../../components/alert/props.ts","../../components/alert/alert.tsx","../../components/hooks/icon.tsx","../../components/alert/index.ts","../../components/drawer/props.ts","../../common/js/drawer/utils.ts","../../components/drawer/hooks/index.ts","../../components/drawer/drawer.tsx","../../components/drawer/plugin.tsx","../../components/drawer/index.ts","../../components/guide/props.ts","../../components/guide/utils/getScrollParent.ts","../../components/guide/utils/scrollToElm.ts","../../components/guide/guide.tsx","../../components/guide/utils/getRelativePosition.ts","../../components/guide/utils/getTargetElm.ts","../../components/guide/index.ts","../../components/message/index.ts","../../components/notification/props.ts","../../components/notification/consts/index.ts","../../components/notification/utils/animate.ts","../../components/notification/notification.tsx","../../components/notification/notification-list.tsx","../../components/notification/plugin.ts","../../components/notification/index.ts","../../components/popconfirm/props.ts","../../components/popconfirm/popconfirm.tsx","../../components/popconfirm/index.ts","../../components/upload/props.ts","../../components/upload/consts/index.ts","../../components/upload/components/normal-file.tsx","../../components/upload/hooks/useDrag.ts","../../components/upload/components/dragger-file.tsx","../../components/upload/components/image-card.tsx","../../components/upload/components/multiple-flow-list.tsx","../../components/upload/components/custom-file.tsx","../../common/js/upload/main.ts","../../common/js/upload/xhr.ts","../../components/upload/hooks/useUpload.ts","../../components/upload/upload.tsx","../../components/upload/index.ts","../../components/config-provider/props.ts","../../components/config-provider/config-provider.tsx","../../components/config-provider/index.ts","../../components/index.ts"],"sourcesContent":["export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export type AnimationType = 'ripple' | 'expand' | 'fade';\n\nexport default {\n classPrefix: 't',\n animation: {\n include: ['ripple', 'expand', 'fade'],\n exclude: [],\n } as Record<'include' | 'exclude', Array>,\n attach: null,\n calendar: {\n firstDayOfWeek: 1,\n fillWithZero: true,\n controllerConfig: undefined,\n },\n icon: {},\n input: {\n autocomplete: '',\n },\n dialog: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n confirmBtnTheme: {\n default: 'primary',\n info: 'primary',\n warning: 'primary',\n danger: 'primary',\n success: 'primary',\n },\n },\n message: {},\n popconfirm: {\n confirmBtnTheme: {\n default: 'primary',\n warning: 'primary',\n danger: 'primary',\n },\n },\n table: {\n // 展开和收起图标(使用收起图标)\n expandIcon: undefined,\n // 排序图标(使用降序图标)\n sortIcon: undefined,\n // 过滤图标\n filterIcon: undefined,\n // 树形结构展开图标\n treeExpandAndFoldIcon: undefined,\n // 是否隐藏排序图标的文本提示\n hideSortTips: false,\n // 全局表格尺寸配置\n size: 'medium',\n },\n select: {\n // 清除按钮\n clearIcon: undefined,\n filterable: false,\n },\n drawer: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n size: 'small',\n },\n tree: {\n // 目录层级图标\n folderIcon: undefined,\n },\n datePicker: {\n firstDayOfWeek: 1,\n },\n steps: {\n checkIcon: undefined,\n errorIcon: undefined,\n },\n tag: {\n closeIcon: undefined,\n },\n form: {\n requiredMark: undefined,\n },\n empty: {\n titleText: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n },\n image: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n }\n },\n} as const;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)> = Symbol('configProvide');\n\nexport const mergeWith = (defaultGlobalConfig: GlobalConfigProvider, injectConfig: GlobalConfigProvider) =>\n _mergeWith(defaultGlobalConfig, injectConfig, (objValue, srcValue) => {\n if (isArray(objValue)) {\n return srcValue;\n }\n });\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction, isString } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\n// 这是为了解决在非component里调用useConfig hook时发出的警告\n// https://github.com/Tencent/tdesign-vue-next/issues/2025\nconst globalConfigCopy = ref();\n\nexport * from '../type';\n\n/**\n * component globalConfig\n * @param componentName\n * @returns {t, globalConfig}\n * useConfig('pagination')\n */\nexport function useConfig(\n componentName: T = undefined,\n componentLocale?: GlobalConfigProvider[T],\n) {\n const injectGlobalConfig = getCurrentInstance() ? inject(configProviderInjectKey, null) : globalConfigCopy;\n const mergedGlobalConfig = computed(() => injectGlobalConfig?.value || defaultGlobalConfig);\n const globalConfig = computed(() => Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale));\n\n const classPrefix = computed(() => {\n return mergedGlobalConfig.value.classPrefix;\n });\n\n // 处理正则表达式\n const t = function (pattern: T, ...args: any[]) {\n const [data] = args;\n if (isString(pattern)) {\n if (!data) return pattern;\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n const translated = pattern.replace(regular, (match, key) => {\n if (data) {\n return String(data[key]);\n }\n return '';\n });\n return translated;\n }\n if (isFunction(pattern)) {\n // 重要:组件的渲染必须存在参数 h,不能移除\n if (!args.length) return pattern(h);\n return pattern(...args);\n }\n return '';\n };\n\n return {\n t,\n global: globalConfig,\n globalConfig,\n classPrefix,\n };\n}\n\n/**\n * provide globalConfig\n * @param {TdConfigProviderProps} props\n * @returns {ComputedRef}\n */\nexport const provideConfig = (props: TdConfigProviderProps) => {\n const defaultData = cloneDeep(defaultGlobalConfig);\n const mergedGlobalConfig = computed(() =>\n Object.assign({}, mergeWith(defaultData as unknown as GlobalConfigProvider, props.globalConfig)),\n );\n\n provide(configProviderInjectKey, mergedGlobalConfig);\n\n if (!globalConfigCopy.value) {\n globalConfigCopy.value = mergedGlobalConfig.value;\n }\n\n return mergedGlobalConfig;\n};\n","import { computed } from 'vue';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nexport function usePrefixClass(componentName?: string) {\n const { classPrefix } = useConfig('classPrefix');\n return computed(() => {\n return componentName ? `${classPrefix.value}-${componentName}` : classPrefix.value;\n });\n}\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n SIZE: computed(() => ({\n small: `${classPrefix.value}-size-s`,\n medium: `${classPrefix.value}-size-m`,\n large: `${classPrefix.value}-size-l`,\n default: '',\n xs: `${classPrefix.value}-size-xs`,\n xl: `${classPrefix.value}-size-xl`,\n block: `${classPrefix.value}-size-full-width`,\n })),\n STATUS: computed(() => ({\n loading: `${classPrefix.value}-is-loading`,\n loadMore: `${classPrefix.value}-is-load-more`,\n disabled: `${classPrefix.value}-is-disabled`,\n focused: `${classPrefix.value}-is-focused`,\n success: `${classPrefix.value}-is-success`,\n error: `${classPrefix.value}-is-error`,\n warning: `${classPrefix.value}-is-warning`,\n selected: `${classPrefix.value}-is-selected`,\n active: `${classPrefix.value}-is-active`,\n checked: `${classPrefix.value}-is-checked`,\n current: `${classPrefix.value}-is-current`,\n hidden: `${classPrefix.value}-is-hidden`,\n visible: `${classPrefix.value}-is-visible`,\n expanded: `${classPrefix.value}-is-expanded`,\n indeterminate: `${classPrefix.value}-is-indeterminate`,\n })),\n };\n}\n\nexport { useConfig };\n","import { Styles } from '../common';\n\n/**\n * 用于为节点增加styles\n * @param el HTMLElement\n * @param style Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n const keys = Object.keys(styles);\n keys.forEach((key) => {\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n el.style[key] = styles[key];\n });\n // TODO: 这个怎么样\n // Object.assign(el.style, styles);\n}\n\nexport default setStyle;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import { isString, isNull, isUndefined, isNumber, isArray } from 'lodash-es';\n\nexport function omit(obj: Record, fields: string[]) {\n const shallowCopy = {\n ...obj,\n };\n for (let i = 0; i < fields.length; i++) {\n const key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport function getValidAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function removeEmptyAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function getTabElementByValue(tabs: [] = [], value: string): object {\n const [result] = tabs.filter((item) => {\n const { id } = item as any;\n return id === value;\n });\n return result || null;\n}\n\nexport function firstUpperCase(str: string): string {\n return str.toLowerCase().replace(/( |^)[a-z]/g, (char: string) => char.toUpperCase());\n}\n\nexport type Gradients = { [percent: string]: string };\nexport type FromTo = { from: string; to: string };\nexport type LinearGradient = { direction?: string } & (Gradients | FromTo);\nexport function getBackgroundColor(color: string | string[] | LinearGradient): string {\n if (isString(color)) {\n return color;\n }\n if (isArray(color)) {\n if (color[0] && color[0][0] === '#') {\n color.unshift('90deg');\n }\n return `linear-gradient( ${color.join(',')} )`;\n }\n const {\n from, to, direction = 'to right', ...rest\n } = color;\n let keys = Object.keys(rest);\n if (keys.length) {\n keys = keys.sort((a, b) => {\n const c = parseFloat(a.substr(0, a.length - 1)) - parseFloat(b.substr(0, b.length - 1));\n return c;\n });\n const tempArr = keys.map((key: any) => `${rest[key as keyof typeof rest]} ${key}`);\n return `linear-gradient(${direction}, ${tempArr.join(',')})`;\n }\n return `linear-gradient(${direction}, ${from}, ${to})`;\n}\n\n/**\n *\n * @returns 获取 ie 浏览器版本\n */\nexport function getIEVersion() {\n if (typeof navigator === 'undefined' || !navigator) return Number.MAX_SAFE_INTEGER;\n\n const { userAgent } = navigator;\n // 判断是否IE<11浏览器\n const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;\n // 判断是否IE11浏览器\n const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;\n if (isIE) {\n const reIE = new RegExp('MSIE (\\\\d+\\\\.\\\\d+);');\n const match = userAgent.match(reIE);\n if (!match) return -1;\n const fIEVersion = parseFloat(match[1]);\n return fIEVersion < 7 ? 6 : fIEVersion;\n }\n if (isIE11) {\n // IE11\n return 11;\n }\n // 不是ie浏览器\n return Number.MAX_SAFE_INTEGER;\n}\n\n/**\n * Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15\n * FireFox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0\n * Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36\n * Chrome 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.3\n * 搜狗 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.\n * 360 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.9 Safari/537.36 QIHU 360EE\n */\nexport function getFlexGapPolyFill() {\n if (typeof navigator === 'undefined' || !navigator) return false;\n const ua = navigator.userAgent;\n const chromeMatch = ua.match(/AppleWebKit.+Chrome\\/(.+) Safari\\/.+/i);\n if (Number(chromeMatch?.[1]?.split('.')[0]) < 100) return true;\n const safariMatch = ua.match(/AppleWebKit.+Version\\/(.+) Safari\\/.+/i);\n if (Number(safariMatch?.[1]?.split('.')[0]) < 12) return true;\n const ieVersion = getIEVersion();\n if (ieVersion <= 11) return true;\n const fireFoxMatch = ua.match(/Firefox\\/(.+)/i);\n if (Number(fireFoxMatch?.[1]?.split('.')[0]) < 100) return true;\n return false;\n}\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度,当传入maxCharacter时返回截取之后的字符串和长度。\n */\nexport function getCharacterLength(str: string): number;\nexport function getCharacterLength(str: string, maxCharacter?: number): { length: number; characters: string }\nexport function getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n/**\n * 返回 Unicode 字符长度\n * '👨'.length === 2\n * getUnicodeLength('👨') === 1\n * @param str\n * @returns {number}\n */\nexport function getUnicodeLength(str?: string): number {\n return [...(str ?? '')].length;\n}\n\n/**\n * 修正 Unicode 最大字符长度\n * '👨👨👨'.slice(0, 2) === '👨'\n * limitUnicodeMaxLength('👨👨👨', 2) === '👨👨'\n * @param str\n * @param maxLength\n * @param oldStr\n * @returns {string}\n */\nexport function limitUnicodeMaxLength(\n str?: string,\n maxLength?: number,\n oldStr?: string\n): string {\n // 旧字符满足字数要求则返回\n if ([...(oldStr ?? '')].slice().length === maxLength) return oldStr || '';\n return [...(str ?? '')].slice(0, maxLength).join('');\n}\n\n/**\n * 兼容样式中支持number/string类型的传值 得出最后的结果。\n * @param param number或string类型的可用于样式上的值\n * @returns 可使用的样式值。\n */\nexport function pxCompat(param: string | number) {\n return isNumber(param) ? `${param}px` : param;\n}\n\n/**\n * 计算dom元素盒模型尺寸\n * @param targetElement 需要计算盒模型尺寸的元素\n * @returns 计算出各维度尺寸。\n */\nconst DOM_STYLE_PROPS = [\n 'padding-top',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'border-width',\n 'box-sizing',\n 'line-height',\n 'letter-spacing',\n];\n\nexport function calculateNodeSize(targetElement: HTMLElement) {\n if (typeof window === 'undefined') {\n return {\n paddingSize: 0,\n borderSize: 0,\n boxSizing: 0,\n sizingStyle: '',\n };\n }\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing')\n || style.getPropertyValue('-moz-box-sizing')\n || style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize = (\n parseFloat(style.getPropertyValue('padding-bottom'))\n + parseFloat(style.getPropertyValue('padding-top'))\n );\n\n const borderSize = (\n parseFloat(style.getPropertyValue('border-bottom-width'))\n + parseFloat(style.getPropertyValue('border-top-width'))\n );\n\n const sizingStyle = DOM_STYLE_PROPS\n .map((name) => `${name}:${style.getPropertyValue(name)}`)\n .join(';');\n\n return {\n paddingSize, borderSize, boxSizing, sizingStyle,\n };\n}\n","import { defineComponent, onMounted, nextTick, ref } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport circleAdapter from '@tdesign/common-js/loading/circle-adapter';\n\nexport default defineComponent({\n name: 'TLoadingGradient',\n setup() {\n const classPrefix = usePrefixClass();\n const circleRef = ref();\n\n onMounted(() => {\n nextTick(() => {\n circleAdapter(circleRef.value);\n });\n });\n\n return () => {\n const name = `${classPrefix.value}-loading__gradient`;\n const classes = [name, `${classPrefix.value}-icon-loading`];\n\n return (\n \n \n
    \n \n \n );\n };\n },\n});\n","import setStyle from '../utils/setStyle';\nimport { getIEVersion } from '../utils/helper';\n\nexport default function circleAdapter(circleElem: HTMLElement) {\n let basicStyle = {};\n\n if (!circleElem || typeof window === 'undefined') {\n return;\n }\n\n const { color, fontSize } = window?.getComputedStyle?.(circleElem);\n\n // to fix the browser compat of foreignObject in Safari,\n // https://bugs.webkit.org/show_bug.cgi?id=23113\n const ua = window?.navigator?.userAgent;\n const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iOS 下的微信和企业微信\n const isIosWechat = /(?=.*iPhone)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat) {\n basicStyle = {\n transformOrigin: '0px 0px',\n transform: `scale(${parseInt(fontSize, 10) / 12})`,\n };\n }\n // 添加:判断是否为IE浏览器\n if (color && getIEVersion() > 11) {\n const matched = color.match(/[\\d.]+/g);\n const endColor = matched ? `rgba(${matched[0]}, ${matched[1]}, ${matched[2]}, 0)` : '';\n setStyle(circleElem, {\n ...basicStyle,\n background: `conic-gradient(from 90deg at 50% 50%,${endColor} 0deg, ${color} 360deg)`,\n });\n } else {\n setStyle(circleElem, {\n ...basicStyle,\n background: '',\n });\n }\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n const change = end - start;\n const offset = (change * current) / duration;\n return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n const change = (end - start) / 2;\n let time = current / (duration / 2);\n if (time < 1) {\n return change * time * time * time + start;\n }\n time -= 2;\n // eslint-disable-next-line no-return-assign\n return change * (time * time * time + 2) + start;\n};\n","/**\n * Thanks to https://spothero.com/static/main/uniform/docs-js/module-DOMUtils.html\n */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-undef */\nimport { ComponentPublicInstance, VNode } from 'vue';\nimport raf from 'raf';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n if (!isServer && document.addEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event && handler) {\n element.addEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event && handler) {\n (element as any).attachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport const off = ((): any => {\n if (!isServer && document.removeEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event) {\n element.removeEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event) {\n (element as any).detachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport function once(\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) {\n const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n const callback = (evt: any) => {\n handlerFn(evt);\n off(element, event, callback, options);\n };\n\n on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || '').split(' ');\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n if (!el || !cls) return;\n const classes = cls.split(' ');\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n const attachNode = isFunction(node) ? node(triggerNode) : node;\n if (!attachNode) {\n return document.body;\n }\n if (isString(attachNode)) {\n return document.querySelector(attachNode);\n }\n if (attachNode instanceof HTMLElement) {\n return attachNode;\n }\n return document.body;\n};\n\n/**\n * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n if (isString(container)) {\n return document.querySelector(container) as HTMLElement;\n }\n if (isFunction(container)) {\n return container();\n }\n return container;\n};\n\n/**\n * 返回是否window对象\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n * 获取滚动距离\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n // node环境或者target为空\n if (isServer || !target) {\n return 0;\n }\n const method = isLeft ? 'scrollLeft' : 'scrollTop';\n let result = 0;\n if (isWindow(target)) {\n result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = (target as HTMLElement)[method];\n }\n return result;\n}\ninterface ScrollTopOptions {\n container?: ScrollTarget;\n duration?: number;\n easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise {\n const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n return new Promise((res) => {\n const fnc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n if (isWindow(container)) {\n (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n (container as Document).documentElement.scrollTop = nextScrollTop;\n } else {\n (container as HTMLElement).scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(fnc);\n } else {\n // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n // 此时应该在下一帧再执行res\n raf(res);\n }\n };\n raf(fnc);\n });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable | ArrayLike, child: any): boolean {\n if (parent && child) {\n let pNode = child;\n while (pNode) {\n if (parent === pNode) {\n return true;\n }\n const { parentNode } = pNode;\n pNode = parentNode;\n }\n }\n return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable | ArrayLike, cb: () => void): void => {\n on(document, 'click', (event: { target: Element }) => {\n if (isArray(els)) {\n const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n return isFlag && cb && cb();\n }\n if (containerDom(els, event.target)) {\n return false;\n }\n return cb && cb();\n });\n};\n\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\n ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n return scrollWidth > clientWidth;\n};\n\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n // 服务端不处理\n if (isServer) return;\n // selected不存在或selected父元素不为parentEle则不处理\n if (!selected || selected.offsetParent !== parentEle) {\n parentEle.scrollTop = 0;\n return;\n }\n const selectedTop = selected.offsetTop;\n const selectedBottom = selectedTop + selected.offsetHeight;\n const parentScrollTop = parentEle.scrollTop;\n const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n if (selectedTop < parentScrollTop) {\n // selected元素滚动过了,则将其向下滚动到可视范围顶部\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n // selected元素未滚动到,则将其向上滚动到可视范围底部\n parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\n/**\n * 检查元素是否在父元素视图\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n const rect = elm.getBoundingClientRect();\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n return (\n rect.top >= parentRect.top &&\n rect.left >= parentRect.left &&\n rect.bottom <= parentRect.bottom &&\n rect.right <= parentRect.right\n );\n }\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * 获取元素某个 css 对应的值\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n let propValue = '';\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n }\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n }\n\n return propValue;\n}\n\n/**\n * 判断元素是否处在 position fixed 中\n * @param element 元素\n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n const p = element.parentNode as HTMLElement;\n\n if (!p || p.nodeName === 'HTML') {\n return false;\n }\n\n if (getElmCssPropValue(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(p);\n}\n\n/**\n * 获取当前视图滑动的距离\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n const { body } = document;\n const docElm = document.documentElement;\n const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n return { scrollTop, scrollLeft };\n}\n\n/**\n * 获取当前视图的大小\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n if (window.innerWidth !== undefined) {\n return { width: window.innerWidth, height: window.innerHeight };\n }\n const doc = document.documentElement;\n return { width: doc.clientWidth, height: doc.clientHeight };\n}\n","import { isFunction, isObject } from 'lodash-es';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport const hasOwn = (val: T, key: string | symbol | number): key is keyof T => hasOwnProperty.call(val, key);\nexport const getPropertyValFromObj = (\n val: T,\n key: string | symbol | number,\n): T[keyof T] | undefined => (hasOwn(val, key) ? val[key] : undefined);\n\nconst objectToString: typeof Object.prototype.toString = Object.prototype.toString;\nconst toTypeString = (value: unknown): string => objectToString.call(value);\nexport const isPlainObject = (val: unknown): val is T => toTypeString(val) === '[object Object]';\nexport const isPromise = (val: unknown): val is Promise => (isObject(val) || isFunction(val))\n && isFunction((val as any).then)\n && isFunction((val as any).catch);\n","import { h, ComponentPublicInstance, VNode, isVNode, Fragment } from 'vue';\nimport { isEmpty } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { camelCase } from 'lodash-es';\nimport { kebabCase } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport interface JSXRenderContext {\n defaultNode?: VNode | string;\n params?: Record;\n slotFirst?: boolean;\n // 是否不打印 LOG\n silent?: boolean;\n}\n\nexport type OptionsType = VNode | JSXRenderContext | string;\n\nexport function getDefaultNode(options?: OptionsType) {\n let defaultNode;\n if (isObject(options) && 'defaultNode' in options) {\n defaultNode = options.defaultNode;\n } else if (isVNode(options) || isString(options)) {\n defaultNode = options;\n }\n\n return defaultNode;\n}\n\nexport function getChildren(content: VNode[]) {\n const childList: VNode[] = [];\n const innerGetChildren = (content: VNode[]) => {\n if (!isArray(content)) return;\n content.forEach((item: VNode) => {\n if (item.children && isArray(item.children)) {\n if (item.type !== Fragment) return;\n innerGetChildren(item.children as VNode[]);\n } else {\n childList.push(item);\n }\n });\n return childList;\n };\n\n return innerGetChildren(content);\n}\n\nexport function getParams(options?: OptionsType) {\n return isObject(options) && 'params' in options ? options.params : {};\n}\n\nexport function getSlotFirst(options?: OptionsType) {\n return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n\n// 同时支持驼峰命名和中划线命名的插槽,示例:value-display 和 valueDisplay\nexport function handleSlots(instance: ComponentPublicInstance, params: Record, name: string) {\n // 检查是否存在 驼峰命名 的插槽\n let node = instance.$slots[camelCase(name)]?.(params);\n if (node) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.$slots[kebabCase(name)]?.(params);\n if (node) return node;\n return null;\n}\n\n/**\n * 通过JSX的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * @param vm 组件实例\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX(this, 'closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX(this, 'closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX(this, 'closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const renderTNodeJSX = (instance: ComponentPublicInstance, name: string, options?: OptionsType) => {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n // 处理 props 类型的Node\n let propsNode;\n if (name in instance) {\n propsNode = instance[name];\n }\n\n // 是否静默日志\n // const isSilent = Boolean(isObject(options) && 'silent' in options && options.silent);\n // // 同名插槽和属性同时存在,则提醒用户只需要选择一种方式即可\n // if (instance.$slots[name] && propsNode && propsNode !== true && !isSilent) {\n // console.warn(`Both $slots.${name} and $props.${name} exist, $props.${name} is preferred`);\n // }\n\n // propsNode 为 false 不渲染\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true && defaultNode) {\n return handleSlots(instance, params, name) || defaultNode;\n }\n\n // 同名 props 和 slot 优先处理 props\n if (isFunction(propsNode)) return propsNode(h, params);\n const isPropsEmpty = [undefined, params, ''].includes(propsNode);\n // Props 为空,但插槽存在\n if (isPropsEmpty && (instance.$slots[camelCase(name)] || instance.$slots[kebabCase(name)])) {\n return handleSlots(instance, params, name);\n }\n return propsNode;\n};\n\n/**\n * 通过JSX的方式渲染 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于 属性值为 undefined 时会渲染默认节点\n * @param vm 组件实例\n * @param name 插槽和属性名称\n * @example renderTNodeJSX(this, 'closeBtn')\n * @example renderTNodeJSX(this, 'closeBtn', )。this.closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSX(this, 'closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const renderTNodeJSXDefault = (vm: ComponentPublicInstance, name: string, options?: OptionsType) => {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(vm, name, options) || defaultNode;\n};\n\n/**\n * 用于处理相同名称的 TNode 渲染\n * @param vm 组件实例\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent(this, 'default', 'content')\n * @example renderContent(this, 'default', 'content', '我是默认内容')\n * @example renderContent(this, 'default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const renderContent = (vm: ComponentPublicInstance, name1: string, name2: string, options?: OptionsType) => {\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(vm, name1, toParams);\n const node2 = renderTNodeJSX(vm, name2, toParams);\n\n const res = isEmpty(node1) ? node2 : node1;\n return isEmpty(res) ? defaultNode : res;\n};\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { camelCase } from 'lodash-es';\nimport { kebabCase } from 'lodash-es';\nimport { getDefaultNode, getParams, OptionsType, JSXRenderContext, getSlotFirst } from '../utils/render-tnode';\nimport { hasOwn } from '@tdesign/common-js/utils/general';\n\n// 兼容处理插槽名称,同时支持驼峰命名和中划线命名,示例:value-display 和 valueDisplay\nfunction handleSlots(instance: ComponentInternalInstance, name: string, params: Record) {\n // 2023-08 new Function 触发部分使用场景安全策略问题(Chrome插件/eletron等)\n // // 每个 slots 需要单独的 h 函数 否则直接assign会重复把不同 slots 的 params 都注入\n // const finalParams = new Function('return ' + h.toString())();\n // if (params) {\n // Object.assign(finalParams, params);\n // }\n\n // 检查是否存在 驼峰命名 的插槽(过滤注释节点)\n let node = instance.slots[camelCase(name)]?.(params);\n if (node && node.filter((t) => t.type.toString() !== 'Symbol(v-cmt)').length) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.slots[kebabCase(name)]?.(params);\n if (node && node.filter((t) => t.type.toString() !== 'Symbol(v-cmt)').length) return node;\n return null;\n}\n\n/**\n * 是否为空节点,需要过滤掉注释节点。注释节点也会被认为是空节点\n */\nfunction isEmptyNode(node: any) {\n if ([undefined, null, ''].includes(node)) return true;\n const innerNodes = node instanceof Array ? node : [node];\n const r = innerNodes.filter((node) => node?.type?.toString() !== 'Symbol(Comment)');\n return !r.length;\n}\n\n// TODO 可以把这里移动到 utils 中\n/**\n * 检查用户是否有主动传 prop\n * @param instance 组件实例\n * @param propName prop 名称\n * @returns boolean\n */\nfunction isPropExplicitlySet(instance: ComponentInternalInstance, propName: string) {\n const vProps = instance?.vnode.props || {};\n return hasOwn(vProps, camelCase(propName)) || hasOwn(vProps, kebabCase(propName));\n}\n\n/**\n/**\n * 通过 JSX 的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * 优先级:用户注入的 props 值 > slot > 默认 props 值\n * 如果 props 值为 true ,则使用插槽渲染。如果也没有插槽的情况下,则使用 defaultNode 渲染\n * @example const renderTNodeJSX = useTNodeJSX()\n * @return () => {}\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX('closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX('closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX('closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const useTNodeJSX = () => {\n const instance = getCurrentInstance();\n return function (name: string, options?: OptionsType) {\n // 渲染节点时所需的参数\n const renderParams = getParams(options);\n // 默认渲染节点\n // TODO 这里需要讨论,这里的默认节点规则是什么呢? pp test:unit image-viewer pp test:unit Collapse\n const defaultNode = getDefaultNode(options);\n // 是否显示设置 slot 优先\n const isSlotFirst = getSlotFirst(options);\n // 插槽\n const renderSlot = instance.slots[camelCase(name)] || instance.slots[kebabCase(name)];\n\n if (isSlotFirst && renderSlot) {\n // 1. 如果显示设置了 slot 优先,并且存在 slot,那么优先使用 slot\n return handleSlots(instance, name, renderParams);\n } else {\n // 2. 否者按照 用户主动传入的 props 值 > slot > 默认 props 值\n // 2.1 处理主动传入的 prop\n if (isPropExplicitlySet(instance, name)) {\n // 2.1.1 如果有传,那么优先使用 prop 的值\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n // 2.1.2 如果 prop 的值为 false 或者 null,那么直接不渲染\n if (propsNode === false || propsNode === null) return;\n // 2.1.3 如果 prop 的值为 true,那么使用 slot 渲染\n if (propsNode === true) {\n return handleSlots(instance, name, renderParams) || defaultNode;\n }\n // 2.1.4 如果 prop 的值为函数,那么执行函数\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n // 2.1.5 如果 prop 的值为 undefined、'',那么使用插槽渲染\n const isPropsEmpty = [undefined, ''].includes(propsNode as any);\n if (isPropsEmpty && renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.1.6 如果 prop 的值为其他值,那么直接返回\n return propsNode;\n }\n // 2.2 如果未主动传入 prop,那么渲染 slot,当然前提是存在 slot\n if (renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.3 如果未主动传入 prop,也没有 slot,那么就走 prop\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true) {\n return defaultNode;\n }\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n return propsNode;\n }\n };\n};\n\n/**\n * 在setup中,通过JSX的方式 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于属性值为 undefined 时会渲染默认节点\n * @example const renderTNodeJSXDefault = useTNodeDefault()\n * @return () => {}\n * @param name 插槽和属性名称\n * @example renderTNodeJSXDefault('closeBtn')\n * @example renderTNodeJSXDefault('closeBtn', ) closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSXDefault('closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const useTNodeDefault = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name: string, options?: VNode | JSXRenderContext) {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(name, options) || defaultNode;\n };\n};\n\n/**\n * 在setup中,用于处理相同名称的 TNode 渲染\n * @example const renderContent = useContent()\n * @return () => {}\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent('default', 'content')\n * @example renderContent('default', 'content', '我是默认内容')\n * @example renderContent('default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const useContent = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name1: string, name2: string, options?: VNode | JSXRenderContext) {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(name1, toParams);\n const node2 = renderTNodeJSX(name2, toParams);\n\n const res = isEmptyNode(node1) ? node2 : node1;\n return isEmptyNode(res) ? defaultNode : res;\n };\n};\n","import { getAttach } from '../utils/dom';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\nimport { AttachNode } from '../common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nconst useTeleport = (\n attach: (() => AttachNode) | Ref,\n triggerNode?: (() => any) | Ref,\n): Ref => {\n // 如果是函数, 则使用computed包裹 否则直接使用ref\n const to = isFunction(attach) ? computed(attach) : ref(attach);\n const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n const element = ref();\n\n const getElement = () => {\n element.value = getAttach(to.value, innerTriggerNode.value);\n };\n\n onMounted(() => getElement());\n\n watch([to, innerTriggerNode], () => getElement());\n\n return element;\n};\n\nexport default useTeleport;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdLoadingProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 挂载元素,默认挂载到组件本身所在的位置。仅全屏加载模式下有效。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒 */\n delay: {\n type: Number,\n default: 0,\n },\n /** 是否显示为全屏加载 */\n fullscreen: Boolean,\n /** 加载指示符,值为 true 显示默认指示符,值为 false 则不显示,也可以自定义指示符 */\n indicator: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 是否继承父元素颜色 */\n inheritColor: Boolean,\n /** 是否处于加载状态 */\n loading: {\n type: Boolean,\n default: true,\n },\n /** 防止滚动穿透,全屏加载模式有效 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 是否需要遮罩层,遮罩层对包裹元素才有效 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,示例:small/medium/large/12px/56px/0.3em */\n size: {\n type: String,\n default: 'medium',\n },\n /** 加载提示文案 */\n text: {\n type: [String, Function] as PropType,\n },\n /** 消息通知层级,样式默认为 3500 */\n zIndex: {\n type: Number,\n },\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs, CSSProperties, Teleport } from 'vue';\nimport GradientIcon from './icon/gradient';\nimport { addClass, removeClass } from '../utils/dom';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useTeleport from '../hooks/useTeleport';\nimport props from './props';\n\nconst useComponentClassName = () => {\n return {\n name: usePrefixClass('loading'),\n centerClass: usePrefixClass('loading--center'),\n fullscreenClass: usePrefixClass('loading__fullscreen'),\n lockClass: usePrefixClass('loading--lock'),\n overlayClass: usePrefixClass('loading__overlay'),\n relativeClass: usePrefixClass('loading__parent'),\n fullClass: usePrefixClass('loading--full'),\n inheritColorClass: usePrefixClass('loading--inherit-color'),\n };\n};\n\nexport default defineComponent({\n name: 'TLoading',\n inheritAttrs: false,\n props,\n setup(props, { slots, attrs }) {\n const delayShowLoading = ref(false);\n\n const { name, centerClass, fullscreenClass, lockClass, overlayClass, relativeClass, fullClass, inheritColorClass } =\n useComponentClassName();\n\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n\n const countDelay = () => {\n delayShowLoading.value = false;\n const timer = setTimeout(() => {\n delayShowLoading.value = true;\n clearTimeout(timer);\n }, props.delay);\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n // 延时计时是否完成。用于控制延时计时结束前不能显示加载态\n const delayCounted = computed(() => Boolean(!props.delay || (props.delay && delayShowLoading.value)));\n\n // loading style\n const styles = computed(() => {\n const styles: CSSProperties = {};\n if (props.zIndex !== undefined) {\n styles.zIndex = props.zIndex;\n }\n if (!['small', 'medium', 'large'].includes(props.size)) {\n styles['font-size'] = props.size;\n }\n return styles;\n });\n\n const hasContent = computed(() => Boolean(props.default || slots.default || props.content || slots.content));\n const lockFullscreen = computed(() => props.preventScrollThrough && props.fullscreen);\n const showText = computed(() => Boolean(props.text || slots.text));\n const showWrapLoading = computed(() => hasContent.value && props.loading && delayCounted.value);\n const showFullScreenLoading = computed(() => props.fullscreen && props.loading && delayCounted.value);\n const showAttachedLoading = computed(() => props.attach && props.loading && delayCounted.value);\n const classes = computed(() => {\n const baseClasses = [\n centerClass.value,\n getPropertyValFromObj(SIZE.value, props.size),\n { [inheritColorClass.value]: props.inheritColor },\n ];\n const fullScreenClasses = [name.value, fullscreenClass.value, centerClass.value, overlayClass.value];\n\n return {\n baseClasses,\n attachClasses: baseClasses.concat([name.value, fullClass.value, { [overlayClass.value]: props.showOverlay }]),\n withContentClasses: baseClasses.concat([\n name.value,\n fullClass.value,\n {\n [overlayClass.value]: props.showOverlay,\n },\n ]),\n fullScreenClasses,\n normalClasses: baseClasses.concat([name.value]),\n };\n });\n\n const { loading } = toRefs(props);\n\n watch([loading], ([isLoading]) => {\n if (isLoading) {\n countDelay();\n lockFullscreen.value && addClass(document.body, lockClass.value);\n } else {\n lockFullscreen.value && removeClass(document.body, lockClass.value);\n }\n });\n\n onMounted(() => {\n props.delay && countDelay();\n });\n\n return () => {\n const { fullScreenClasses, baseClasses, withContentClasses, attachClasses, normalClasses } = classes.value;\n\n const defaultIndicator = ;\n const indicator = loading.value && renderTNodeJSX('indicator', defaultIndicator);\n const text = showText.value &&
    {renderTNodeJSX('text')}
    ;\n\n // full screen loading\n if (props.fullscreen) {\n if (!showFullScreenLoading.value || !props.loading) return null;\n return (\n \n
    \n
    \n {indicator}\n {text}\n
    \n
    \n
    \n );\n }\n\n // Loading is wrapping a HTMLElement.\n if (hasContent.value) {\n return (\n
    \n {renderContent('default', 'content')}\n {showWrapLoading.value && (\n
    \n {indicator}\n {text}\n
    \n )}\n
    \n );\n }\n\n // transfer parent node\n if (props.attach) {\n if (!showAttachedLoading.value || !loading.value) return null;\n return (\n \n
    \n {indicator}\n {text}\n
    \n
    \n );\n }\n\n // Normal Loading without overlay or content\n return loading.value ? (\n
    \n {indicator}\n {text}\n
    \n ) : null;\n };\n },\n});\n","import { App, Plugin, createApp, defineComponent, h, reactive } from 'vue';\nimport { merge } from 'lodash-es';\nimport LoadingComponent from './loading';\nimport { getAttach, removeClass, addClass } from '../utils/dom';\nimport { TdLoadingProps, LoadingInstance, LoadingMethod } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nlet fullScreenLoadingInstance: LoadingInstance = null;\n\nfunction mergeDefaultProps(props: TdLoadingProps): TdLoadingProps {\n const options: TdLoadingProps = merge(\n {\n fullscreen: false,\n attach: 'body',\n loading: true,\n preventScrollThrough: true,\n },\n props,\n );\n\n return options;\n}\n\nfunction createLoading(props: TdLoadingProps): LoadingInstance {\n const mergedProps = mergeDefaultProps(props);\n\n if (mergedProps.fullscreen && fullScreenLoadingInstance) {\n return fullScreenLoadingInstance;\n }\n\n const component = defineComponent({\n setup() {\n const loadingOptions = reactive(mergedProps);\n return {\n loadingOptions,\n };\n },\n render() {\n return h(LoadingComponent, {\n ...this.loadingOptions,\n });\n },\n });\n\n const attach = getAttach(mergedProps.fullscreen ? 'body' : mergedProps.attach);\n\n const app = createApp(component);\n const loading = app.mount(document.createElement('div'));\n const parentRelativeClass = usePrefixClass('loading__parent--relative').value;\n const lockClass = usePrefixClass('loading--lock');\n const lockFullscreen = mergedProps.preventScrollThrough && mergedProps.fullscreen;\n\n if (lockFullscreen) {\n addClass(document.body, lockClass.value);\n }\n\n if (attach) {\n addClass(attach, parentRelativeClass);\n } else {\n console.error('attach is not exist');\n }\n\n const loadingInstance: LoadingInstance = {\n hide: () => {\n loading.loading = false;\n removeClass(attach, parentRelativeClass);\n removeClass(document.body, lockClass.value);\n app.unmount();\n },\n };\n return loadingInstance;\n}\n\nfunction produceLoading(props: boolean | TdLoadingProps): LoadingInstance {\n // 全屏加载\n if (props === true) {\n fullScreenLoadingInstance = createLoading({\n fullscreen: true,\n loading: true,\n attach: 'body',\n preventScrollThrough: true,\n });\n return fullScreenLoadingInstance;\n }\n\n if (props === false) {\n // 销毁全屏实例\n fullScreenLoadingInstance?.hide();\n fullScreenLoadingInstance = null;\n return;\n }\n return createLoading(props);\n}\n\nexport type LoadingPluginType = Plugin & LoadingMethod;\n\nexport const LoadingPlugin: LoadingPluginType = produceLoading as LoadingPluginType;\n\nLoadingPlugin.install = (app: App) => {\n // eslint-disable-next-line no-param-reassign\n app.config.globalProperties.$loading = produceLoading;\n};\n\nexport default LoadingPlugin;\n","import type { Directive, DirectiveBinding } from 'vue';\nimport { mapKeys, isObject } from 'lodash-es';\nimport { isEqual } from 'lodash-es';\nimport { TdLoadingProps } from './type';\nimport produceLoading from './plugin';\n\nconst INSTANCE_KEY = Symbol('TdLoading');\n\nconst createInstance = (el: HTMLElement, binding: DirectiveBinding) => {\n const { fullscreen, inheritColor } = binding.modifiers;\n const options: TdLoadingProps = {\n attach: () => el,\n fullscreen: fullscreen ?? false,\n inheritColor: inheritColor ?? false,\n loading: binding.value,\n };\n\n if (isObject(binding.value)) {\n mapKeys(binding.value, (value, key: keyof typeof options) => {\n options[key] = value;\n });\n }\n\n // @ts-ignore\n // TODO: unique symbol' can't be used to index type 'HTMLElement'\n el[INSTANCE_KEY] = {\n options,\n instance: produceLoading(options),\n };\n};\n\nexport const vLoading: Directive = {\n mounted(el, binding) {\n if (binding.value) {\n createInstance(el, binding);\n }\n },\n updated(el, binding) {\n const instance = el[INSTANCE_KEY];\n const { value, oldValue } = binding;\n if (!isEqual(value, oldValue)) {\n const loading = value?.loading ?? value;\n if (loading) {\n createInstance(el, binding);\n } else {\n instance?.instance.hide();\n }\n }\n },\n unmounted(el) {\n el[INSTANCE_KEY]?.instance.hide();\n },\n};\n\nexport default vLoading;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import { App, Plugin, Component, Directive } from 'vue';\n\nfunction withInstall(\n comp: T,\n alias?: string,\n directive?: { name: string; comp: Directive },\n): T & Plugin {\n const componentPlugin = comp as T & Component & Plugin;\n\n componentPlugin.install = (app: App, name?: string) => {\n app.component(alias || name || componentPlugin.name, comp);\n directive && app.directive(directive.name, directive.comp);\n };\n\n return componentPlugin as T & Plugin;\n}\n\nexport default withInstall;\n","import { vLoading } from './directive';\nimport _Loading from './loading';\nimport withInstall from '../utils/withInstall';\nimport { TdLoadingProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\n\nexport type LoadingProps = TdLoadingProps;\n\nexport { default as LoadingPlugin } from './plugin';\nexport { default as LoadingDirective } from './directive';\n\nexport const Loading = withInstall(_Loading, _Loading.name, { name: 'loading', comp: vLoading });\nexport default Loading;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdButtonProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否为块级元素 */\n block: Boolean,\n /** 按钮内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 按钮内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 禁用状态。优先级:Button.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 原生的form属性,支持用于通过form属性对于id的form的表单事件 */\n form: {\n type: String,\n default: undefined,\n },\n /** 是否为幽灵按钮(镂空按钮) */\n ghost: Boolean,\n /** 跳转地址。href 存在时,按钮标签默认使用 `` 渲染;如果指定了 `tag` 则使用指定的标签渲染 */\n href: {\n type: String,\n default: '',\n },\n /** 按钮内部图标,可完全自定义 */\n icon: {\n type: Function as PropType,\n },\n /** 是否显示为加载状态 */\n loading: Boolean,\n /** 透传加载组件(Loading)全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'rectangle' as TdButtonProps['shape'],\n validator(val: TdButtonProps['shape']): boolean {\n if (!val) return true;\n return ['rectangle', 'square', 'round', 'circle'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdButtonProps['size'],\n validator(val: TdButtonProps['size']): boolean {\n if (!val) return true;\n return ['extra-small', 'small', 'medium', 'large'].includes(val);\n },\n },\n /** 右侧内容,可用于定义右侧图标 */\n suffix: {\n type: Function as PropType,\n },\n /** 渲染按钮的 HTML 标签,默认使用标签 `
    \n );\n };\n\n return () => {\n return props.theme === 'card' ? renderCardItem() : renderNormalItem();\n };\n },\n});\n","import { defineComponent, PropType, computed, VNode, nextTick, ref, watch, onMounted } from 'vue';\nimport tabProps from './props';\n\n// hooks\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useResizeObserver from '../hooks/useResizeObserver';\nimport { debounce } from 'lodash-es';\n\nexport default defineComponent({\n props: {\n navs: {\n type: Array as PropType,\n },\n placement: tabProps.placement,\n value: tabProps.value,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const barRef = ref();\n const navBarClass = computed(() => {\n return [`${COMPONENT_NAME.value}__bar`, `${classPrefix.value}-is-${props.placement}`];\n });\n const navBarStyle = ref(null);\n const getStyle = () => {\n const isVertical = ['left', 'right'].includes(props.placement.toLowerCase());\n const [sizePropName, offsetPropName] = isVertical ? ['height', 'top'] : ['width', 'left'];\n let offset = 0;\n let i = 0;\n for (; i < props.navs.length; i++) {\n if (props.navs[i].props.value === props.value) {\n break;\n }\n if (props.navs[i]?.el) {\n const sizeWithUnit = getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left'];\n const size = parseFloat(sizeWithUnit);\n offset += size;\n }\n }\n if (!props.navs[i]) return {};\n return {\n [offsetPropName]: `${offset}px`,\n [sizePropName]: props.navs[i].el\n ? getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left']\n : '0px',\n };\n };\n const update = () => (navBarStyle.value = getStyle());\n\n onMounted(() => {\n nextTick(() => {\n update();\n });\n });\n\n watch([() => props.navs, () => props.value, () => props.placement], () => {\n nextTick(() => {\n update();\n });\n });\n\n useResizeObserver(\n barRef,\n debounce(() => {\n update();\n // 数值大了动画不流畅,小了会频繁触发,所以在合适区间里选择一个值\n }, 35),\n );\n return () => {\n return
    ;\n };\n },\n});\n","import { onUnmounted } from 'vue';\n\nconst traversalTabNavs = (tabNavs: HTMLCollection, fn: { (itemNode: any): void; (tabNav: HTMLDivElement): void }) => {\n for (const itemNode of tabNavs) {\n if (itemNode.getAttribute('draggable')) {\n fn(itemNode);\n }\n }\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): any => {\n let resultTarget;\n traversalTabNavs(tabNavs, (itemNode) => {\n if (itemNode.contains(target)) {\n resultTarget = itemNode;\n }\n });\n return resultTarget;\n};\n\nexport default function useDragSort(props: any) {\n let navsWrap: HTMLDivElement = null;\n\n // 获取当前正在拖动的tabNav节点\n let dragged: HTMLDivElement;\n const enterTargets: HTMLDivElement[] = [];\n\n const dragstart = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // const { target } = event;\n // 保存拖动元素的引用(ref.)\n dragged = target;\n // 使其半透明\n target.style.opacity = '0.5';\n };\n const dragend = (event: DragEvent) => {\n // 重置透明度\n (event.target as HTMLDivElement).style.opacity = '';\n };\n /* 放置目标元素时触发事件 */\n const dragover = (event: DragEvent) => {\n // 阻止默认动作以启用drop\n event.preventDefault();\n };\n // 当可拖动的元素进入可放置的目标时\n const dragenter = (event: DragEvent) => {\n // 高亮目标节点\n const target = handleTarget(event.target, navsWrap.children);\n if (target && target !== dragged && target.draggable) {\n target.firstChild.style.outline = '1px dashed #0052d9';\n // 进入的节点全部记录下来\n if (!enterTargets.includes(target)) {\n enterTargets.push(target);\n }\n }\n };\n // 当拖动元素离开可放置目标节点\n const dragleave = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // 重置其边框\n // const { target } = event;\n for (const enterTarget of enterTargets) {\n // 目标不在需要放入的节点内,则重置边框\n if (!enterTarget.contains(target)) {\n // 记录过的节点全部重置边框\n (enterTarget.firstChild as HTMLDivElement).style.outline = 'none';\n }\n }\n };\n const drop = (event: DragEvent) => {\n // 阻止默认动作(如打开一些元素的链接)\n event.preventDefault();\n\n traversalTabNavs(navsWrap.children, (tabNav) => {\n tabNav.firstChild.style.outline = 'none';\n });\n // 将拖动的元素到所选择的放置目标节点中\n let target = handleTarget(event.target, navsWrap.children);\n if (target && target.parentNode !== dragged && target.draggable) {\n // 获取拖拽元素index\n const dragIndex = [].indexOf.call(navsWrap.children, dragged);\n // 获取放入元素index\n const targetIndex = [].indexOf.call(navsWrap.children, target);\n if (targetIndex > dragIndex) {\n target = navsWrap.children[targetIndex + 1];\n }\n\n // 当props.theme === \"normal\" 会多出一个指示条为第一个dom节点,所以需要减1\n const currentIndex = props.theme === 'card' ? dragIndex : dragIndex - 1;\n const endIndex = props.theme === 'card' ? targetIndex : targetIndex - 1;\n props.onDragSort?.({\n currentIndex,\n current: props.panels[currentIndex].value,\n targetIndex: endIndex,\n target: props.panels[endIndex].value,\n });\n }\n };\n function setNavsWrap(val: HTMLDivElement) {\n navsWrap = val;\n navsWrap.addEventListener('dragstart', dragstart, false);\n navsWrap.addEventListener('dragend', dragend, false);\n navsWrap.addEventListener('dragover', dragover, false);\n navsWrap.addEventListener('dragenter', dragenter, false);\n document.addEventListener('dragleave', dragleave, false);\n document.addEventListener('mousemove', dragleave, false);\n navsWrap.addEventListener('drop', drop, false);\n }\n\n onUnmounted(() => {\n if (navsWrap) {\n navsWrap.removeEventListener('dragstart', dragstart);\n navsWrap.removeEventListener('dragend', dragend);\n navsWrap.removeEventListener('dragover', dragover);\n navsWrap.removeEventListener('dragenter', dragenter);\n document.removeEventListener('dragleave', dragleave);\n document.removeEventListener('mousemove', dragleave);\n navsWrap.removeEventListener('drop', drop);\n }\n });\n return { setNavsWrap };\n}\n","import { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n AddIcon as TdAddIcon,\n} from 'tdesign-icons-vue-next';\nimport { TdTabsProps } from './type';\nimport tabProps from './props';\nimport { calcMaxOffset, calcValidOffset, calculateOffset, calcPrevOrNextOffset } from '@tdesign/common-js/tabs/base';\n\n// 子组件\nimport TTabPanel from './tab-panel';\nimport TTabNavItem from './tab-nav-item';\nimport TTabNavBar from './tab-nav-bar';\n\n// hooks\nimport { useResize } from '../hooks/useListener';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport useDragSort from '../hooks/useDragSort';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTabNav',\n resizeObserver: null,\n props: {\n theme: tabProps.theme,\n panels: {\n type: Array as { new (): Array> },\n default: (): Array> => [] as Array>,\n },\n action: Array,\n value: tabProps.value,\n placement: tabProps.placement,\n scrollPosition: tabProps.scrollPosition,\n size: tabProps.size,\n disabled: tabProps.disabled,\n addable: tabProps.addable,\n onChange: tabProps.onChange,\n onAdd: tabProps.onAdd,\n onRemove: tabProps.onRemove,\n dragSort: tabProps.dragSort,\n onDragSort: tabProps.onDragSort,\n },\n setup(props) {\n const componentName = usePrefixClass('tabs');\n const { ChevronLeftIcon, ChevronRightIcon, AddIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n AddIcon: TdAddIcon,\n });\n const classPrefix = usePrefixClass();\n\n const { SIZE } = useCommonClassName();\n\n const scrollLeft = ref(0);\n\n // refs\n const navsContainerRef = ref();\n const navsWrapRef = ref();\n const leftOperationsRef = ref();\n const rightOperationsRef = ref();\n const toRightBtnRef = ref();\n const activeTabRef = ref();\n const maxScrollLeft = ref(0);\n const showAction = computed(() => {\n return ['top', 'bottom'].includes(props?.placement?.toLowerCase());\n });\n\n const getRefs = () => ({\n navsContainer: navsContainerRef.value,\n navsWrap: navsWrapRef.value,\n leftOperations: leftOperationsRef.value,\n rightOperations: rightOperationsRef.value,\n toRightBtn: toRightBtnRef.value,\n activeTab: activeTabRef.value,\n });\n\n // left right位置 选项卡的位置是在左右侧垂直方向铺开的\n const isVerticalPlacement = computed(() => ['left', 'right'].includes(props.placement.toLowerCase()));\n\n // 展示操作按钮\n const canToLeft = computed(() => scrollLeft.value > 1);\n const canToRight = computed(() => scrollLeft.value < maxScrollLeft.value - 1);\n\n // style\n const wrapTransformStyle = computed(() => {\n if (isVerticalPlacement.value) return {};\n return {\n transform: `translate3d(${-scrollLeft.value}px, 0, 0)`,\n };\n });\n const navsContainerStyle = computed(() => {\n return props.addable ? { 'min-height': '48px' } : null;\n });\n\n // class\n const iconBaseClass = computed(() => {\n return {\n [`${componentName.value}__btn`]: true,\n [SIZE.value.medium]: props.size === 'medium',\n [SIZE.value.large]: props.size === 'large',\n };\n });\n const leftIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--left`]: true,\n ...iconBaseClass.value,\n };\n });\n const rightIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--right`]: true,\n ...iconBaseClass.value,\n };\n });\n const addIconClass = computed(() => {\n return {\n [`${componentName.value}__add-btn`]: true,\n ...iconBaseClass.value,\n };\n });\n const navContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-container`]: true,\n [`${componentName.value}__nav--card`]: props.theme === 'card',\n [`${classPrefix.value}-is-${props.placement}`]: true,\n [`${classPrefix.value}-is-addable`]: props.addable,\n };\n });\n const navScrollContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-scroll`]: true,\n [`${classPrefix.value}-is-scrollable`]: canToLeft.value || canToRight.value,\n };\n });\n\n const navsWrapClass = computed(() => {\n return [\n `${componentName.value}__nav-wrap`,\n `${classPrefix.value}-is-smooth`,\n { [`${classPrefix.value}-is-vertical`]: isVerticalPlacement.value },\n ];\n });\n\n const setOffset = (offset: number) => {\n scrollLeft.value = calcValidOffset(offset, maxScrollLeft.value);\n };\n\n const handleScroll = (action: 'prev' | 'next') => {\n setOffset(calcPrevOrNextOffset(getRefs(), scrollLeft.value, action));\n };\n\n const handleWheel = (event: WheelEvent) => {\n if (!canToLeft.value && !canToRight.value) return;\n\n event.preventDefault();\n const { deltaX, deltaY } = event;\n\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n setOffset(scrollLeft.value + deltaX);\n } else {\n setOffset(scrollLeft.value + deltaY);\n }\n };\n\n const handleActiveTabScroll = () => {\n setTimeout(() => {\n setOffset(calculateOffset(getRefs(), scrollLeft.value, props.scrollPosition));\n }, 0);\n };\n\n const getMaxScrollLeft = () => {\n nextTick(() => {\n maxScrollLeft.value = calcMaxOffset(getRefs());\n });\n };\n\n // watch\n watch([() => props.placement, () => props.panels], getMaxScrollLeft);\n watch([() => props.scrollPosition], handleActiveTabScroll);\n\n // life times\n useResize(debounce(getMaxScrollLeft), navsContainerRef.value);\n\n const handleAddTab = (e: MouseEvent) => {\n props.onAdd?.({ e });\n };\n\n const tabClick = (event: MouseEvent, nav: Partial>) => {\n const { value, disabled } = nav;\n if (disabled || props.value === value) {\n return false;\n }\n props.onChange(value);\n };\n const removeBtnClick = ({ e, value, index }: Parameters[0]) => {\n props.onRemove({ e, value, index });\n };\n const setActiveTab = (ref: any) => {\n if (!ref?.$el) return;\n if (ref?.value === props.value && activeTabRef.value !== ref.$el) {\n activeTabRef.value = ref.$el;\n handleActiveTabScroll();\n }\n };\n\n const { setNavsWrap } = useDragSort(props);\n\n onMounted(() => {\n setNavsWrap(navsWrapRef.value);\n getMaxScrollLeft();\n handleActiveTabScroll();\n });\n // renders\n const renderNavsContent = () => {\n return props.panels.map((panel, index) => {\n let label;\n if (panel?.children?.label) {\n label = panel.children.label();\n } else if (isFunction(panel.label)) {\n label = panel.label(h);\n } else {\n label = panel.label || `选项卡${index + 1}`;\n }\n let draggable = props.dragSort;\n if (draggable && panel.draggable === false) {\n draggable = panel.draggable;\n }\n return (\n tabClick(e, panel)}\n onRemove={removeBtnClick}\n />\n );\n });\n };\n const renderArrows = () => {\n return [\n \n \n {canToLeft.value ? (\n
    handleScroll('prev')}>\n \n
    \n ) : null}\n
    \n ,\n \n \n {canToRight.value ? (\n
    handleScroll('next')}>\n \n
    \n ) : null}\n
    \n {props.addable ? (\n
    \n \n
    \n ) : null}\n {showAction.value && props.action}\n ,\n ];\n };\n const renderNavs = () => {\n const navContent = renderNavsContent();\n return (\n
    \n
    \n
    \n {props.theme !== 'card' && (\n \n )}\n {navContent}\n
    \n
    \n
    \n );\n };\n\n return () => {\n return (\n
    \n {renderArrows()}\n {renderNavs()}\n
    \n );\n };\n },\n});\n","import { ComponentPublicInstance, defineComponent, provide, Ref, toRefs } from 'vue';\nimport TTabPanel from './tab-panel';\nimport TTabNav from './tab-nav';\nimport { TabValue, TdTabsProps } from './type';\nimport props from './props';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nexport interface InjectTabs {\n value: Ref;\n}\n\nexport default defineComponent({\n name: 'TTabs',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { value, modelValue } = toRefs(props);\n const [tabValue, setTabValue] = useVModel(value, modelValue, props.defaultValue || '', props.onChange);\n\n provide('tabs', { value: tabValue });\n\n // methods\n const onTabAdd = (context: { e: MouseEvent }) => {\n props.onAdd?.({ e: context.e });\n };\n const onTabChange = (value: TabValue) => {\n setTabValue(value);\n };\n const onTabRemove = ({ e, value, index }: Parameters[0]) => {\n props.onRemove?.({ value, index, e });\n };\n\n // render\n const getSlotPanels = () => {\n const content = renderTNodeJSX('default');\n if (!content) return [];\n\n const flatContent = (ct: any) => {\n return ct\n .map((item: ComponentPublicInstance) => {\n if (item.children && isArray(item.children)) return flatContent(item.children);\n return item;\n })\n .flat()\n .filter((item: ComponentPublicInstance) => {\n return item.type.name === 'TTabPanel';\n });\n };\n\n return flatContent(content);\n };\n const renderHeader = () => {\n const panels = (props.list?.length ? props.list : getSlotPanels()) || [];\n const actionContent = renderTNodeJSX('action');\n const panelsData = panels.map((item: ComponentPublicInstance) => {\n const selfItem = item;\n\n if (item.props) {\n Object.keys(item.props).forEach((key) => {\n selfItem[key] = item.props[key];\n });\n }\n\n return selfItem;\n });\n const tabNavProps = {\n theme: props.theme,\n value: tabValue.value,\n size: props.size,\n disabled: props.disabled,\n placement: props.placement,\n scrollPosition: props.scrollPosition,\n addable: props.addable,\n panels: panelsData,\n dragSort: props.dragSort,\n action: actionContent,\n };\n return (\n \n \n \n );\n };\n const renderContent = () => {\n const panels = getSlotPanels();\n if (props.list?.length) {\n return props.list.map((item) => );\n }\n if (panels && panels.length) {\n return
    {panels}
    ;\n }\n };\n\n return () => {\n return (\n
    \n {props.placement !== 'bottom' ? [renderHeader(), renderContent()] : [renderContent(), renderHeader()]}\n
    \n );\n };\n },\n});\n","import _Tabs from './tabs';\nimport _TabPanel from './tab-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdTabsProps, TdTabPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TabsProps = TdTabsProps;\nexport type TabPanelProps = TdTabPanelProps;\n\nexport const Tabs = withInstall(_Tabs);\nexport const TabPanel = withInstall(_TabPanel);\nexport default Tabs;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSubmenuProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 菜单项图标 */\n icon: {\n type: Function as PropType,\n },\n /** 透传 Popup 组件全部特性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 二级菜单内容 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, PropType, computed, CSSProperties } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\n\n// 统一使用的翻转箭头组件\nexport default defineComponent({\n name: 'TFakeArrow',\n props: {\n // 是否active状态 active状态下箭头向上翻转\n isActive: {\n type: Boolean as PropType,\n },\n overlayClassName: {\n type: [String, Object, Array],\n },\n overlayStyle: {\n type: Object || (String as PropType),\n },\n },\n\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('fake-arrow');\n const classes = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--active`]: props.isActive,\n },\n props.overlayClassName,\n ]);\n\n return () => (\n \n \n \n );\n },\n});\n","import {\n defineComponent,\n computed,\n inject,\n ref,\n provide,\n onMounted,\n getCurrentInstance,\n watch,\n Slots,\n toRefs,\n reactive,\n nextTick,\n Transition,\n} from 'vue';\nimport props from './submenu-props';\nimport { TdMenuInterface, TdSubMenuInterface, TdMenuItem } from './types';\nimport FakeArrow from '../common-components/fake-arrow';\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\nimport useCollapseAnimation from '../hooks/useCollapseAnimation';\n\nexport default defineComponent({\n name: 'TSubmenu',\n props,\n setup(props: TdSubmenuProps, { attrs, slots }) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const instance = getCurrentInstance();\n const menu = inject('TdMenu');\n const { value } = toRefs(props);\n const { theme, activeValues, expandValues, isHead, open } = menu;\n const submenu = inject('TdSubmenu', {});\n const { setSubPopup, closeParentPopup } = submenu;\n const mode = computed(() => attrs.expandType || menu.mode.value);\n\n const menuItems = ref([]); // 因composition-api的缺陷,不用reactive, 详见:https://github.com/vuejs/composition-api/issues/637\n const isActive = computed(() => activeValues.value.indexOf(props.value) > -1);\n const popupVisible = ref(false);\n const isCursorInPopup = ref(false);\n const rippleColor = computed(() => (theme.value === 'light' ? '#E7E7E7' : '#383838'));\n const isOpen = computed(() => {\n if (mode.value === 'popup') {\n return popupVisible.value;\n }\n return expandValues ? expandValues.value?.includes(props.value) : false;\n });\n const isNested = ref(false); // 是否嵌套\n\n const popupWrapperRef = ref();\n const subPopupRef = ref();\n const submenuRef = ref();\n const transitionClass = usePrefixClass('slide-down');\n useRipple(submenuRef, rippleColor);\n\n const classes = computed(() => [\n `${classPrefix.value}-submenu`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const overlayInnerClassName = computed(() => [\n `${classPrefix.value}-menu__popup`,\n `${classPrefix.value}-is-${isHead ? 'horizontal' : 'vertical'}`,\n {\n [`${classPrefix.value}-is-opened`]: popupVisible.value,\n },\n props.popupProps?.overlayInnerClassName,\n ]);\n const overlayClassName = computed(() => [\n `${classPrefix.value}-menu--${theme.value}`,\n isHead && `${classPrefix.value}-is-head-menu`,\n { [`${classPrefix.value}-menu-is-nested`]: isNested.value },\n props.popupProps?.overlayClassName,\n ]);\n const submenuClass = computed(() => [\n `${classPrefix.value}-menu__item`,\n `${classPrefix.value}-menu__item-spacer`,\n `${classPrefix.value}-menu__item-spacer--${isHead && !isNested.value ? 'bottom' : 'right'}`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n [`${classPrefix.value}-is-active`]: isActive.value,\n },\n ]);\n const subClass = computed(() => [\n `${classPrefix.value}-menu__sub`,\n {\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const arrowClass = computed(() => [\n {\n [`${classPrefix.value}-fake-arrow--active`]: isOpen.value,\n },\n ]);\n\n provide(\n 'TdSubmenu',\n reactive({\n value,\n addMenuItem: (item: TdMenuItem) => {\n menuItems.value.push(item);\n if (submenu) {\n submenu.addMenuItem(item);\n }\n },\n setSubPopup: (ref: HTMLElement) => {\n subPopupRef.value = ref;\n },\n closeParentPopup: (e: MouseEvent) => {\n const related = e.relatedTarget as HTMLElement;\n if (loopInPopup(related)) return;\n handleMouseLeavePopup(e);\n },\n }),\n );\n\n const passSubPopupRefToParent = (val: HTMLElement) => {\n if (isFunction(setSubPopup)) {\n setSubPopup(val);\n }\n };\n\n // methods\n const handleMouseEnter = () => {\n if (props.disabled) return;\n setTimeout(() => {\n if (!popupVisible.value) {\n open(props.value);\n\n // popupVisible设置为TRUE之后打开popup,因此需要在nextTick中确保可以拿到ref值\n nextTick().then(() => {\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n }\n popupVisible.value = true;\n }, 0);\n };\n\n const targetInPopup = (el: HTMLElement) => el?.classList.contains(`${classPrefix.value}-menu__popup`);\n const loopInPopup = (el: HTMLElement): boolean => {\n if (!el) return false;\n return targetInPopup(el) || loopInPopup(el.parentElement);\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n setTimeout(() => {\n const inPopup = targetInPopup(e.relatedTarget as HTMLElement);\n\n if (isCursorInPopup.value || inPopup) return;\n popupVisible.value = false;\n }, 0);\n };\n\n const handleMouseLeavePopup = (e: any) => {\n const { toElement, relatedTarget } = e;\n let target = toElement || relatedTarget;\n\n if (target === subPopupRef.value) return;\n\n const isSubmenu = (el: Element) => el === submenuRef.value;\n while (target !== null && target !== document && !isSubmenu(target)) {\n target = target.parentNode;\n }\n\n isCursorInPopup.value = false;\n\n if (!isSubmenu(target)) {\n popupVisible.value = false;\n }\n\n closeParentPopup?.(e);\n };\n const handleEnterPopup = () => {\n isCursorInPopup.value = true;\n };\n\n const handleSubmenuItemClick = () => {\n if (props.disabled) return;\n open(props.value);\n };\n\n const renderPopup = (triggerElement: Slots[]) => {\n let placement: PopupPlacement = 'right-top';\n if (!isNested.value && isHead) {\n placement = 'bottom-left';\n }\n\n const popupWrapper = (\n \n
      {renderContent('default', 'content')}
    \n \n );\n\n const slots = {\n content: () => popupWrapper,\n };\n\n const realPopup = (\n \n
    \n {triggerElement}\n
    \n \n );\n\n return realPopup;\n };\n\n const renderHeadSubmenu = () => {\n const icon = renderTNodeJSX('icon');\n const normalSubmenu = [\n
    \n {icon}\n {renderTNodeJSX('title', { silent: true })}\n
    ,\n
      {renderContent('default', 'content')}
    ,\n ];\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n const renderSubmenu = () => {\n const hasContent = slots.content || slots.default;\n const icon = renderTNodeJSX('icon');\n const child = renderContent('default', 'content');\n let parent = instance.parent;\n let paddingLeft = 44;\n\n while (parent && parent.type.name !== 'TMenu') {\n if (parent.type.name === 'TSubmenu') {\n paddingLeft += 16;\n }\n parent = parent.parent;\n }\n\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const normalSubmenu = [\n
    \n {icon}\n {renderTNodeJSX('title', { silent: true })}\n {hasContent && (\n \n )}\n
    ,\n \n
      \n {child}\n
    \n ,\n ];\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n watch(popupVisible, (visible) => {\n menu.open(props.value, visible ? 'add' : 'remove');\n });\n\n watch(popupWrapperRef, () => {\n // 第一次触发nextTick会取空值,导致subPopupRef拿不到对应的DOM\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: slots.default });\n let node = instance.parent;\n\n while (node && !/^t(head)?menu/i.test(node?.type.name)) {\n if (/submenu/i.test(node?.type.name)) {\n isNested.value = true;\n break;\n }\n node = node?.parent;\n }\n });\n\n return () => {\n let child = null;\n let events = {};\n\n if (mode.value === 'popup') {\n events = {\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n };\n }\n if (Object.keys(slots).length > 0) {\n child = isHead ? renderHeadSubmenu() : renderSubmenu();\n }\n\n return (\n
  • \n {child}\n
  • \n );\n };\n },\n});\n","export default function useCollapseAnimation() {\n const beforeEnter = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n };\n const enter = (el: HTMLElement) => {\n el.dataset.oldOverflow = el.style.overflow;\n el.style.height = `${el.scrollHeight}px`;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n el.style.overflow = 'hidden';\n };\n const afterEnter = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n };\n const beforeLeave = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n\n el.style.height = `${el.scrollHeight}px`;\n el.style.overflow = 'hidden';\n };\n const leave = (el: HTMLElement) => {\n if (el.scrollHeight !== 0) {\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n }\n };\n const afterLeave = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n };\n\n return {\n beforeEnter,\n enter,\n afterEnter,\n beforeLeave,\n leave,\n afterLeave,\n };\n}\n","import {\n defineComponent,\n computed,\n provide,\n ref,\n reactive,\n watch,\n onMounted,\n watchEffect,\n toRefs,\n h,\n VNode,\n Component,\n getCurrentInstance,\n} from 'vue';\nimport { EllipsisIcon } from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport log from '@tdesign/common-js/log/log';\nimport props from './head-menu-props';\nimport { MenuValue } from './type';\nimport { TdMenuInterface, TdOpenType } from './types';\nimport { Tabs, TabPanel } from '../tabs';\nimport Submenu from './submenu';\nimport { VMenu } from './utils';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'THeadMenu',\n props,\n setup(props, ctx) {\n const classPrefix = usePrefixClass();\n const { proxy } = getCurrentInstance();\n watchEffect(() => {\n if (ctx.slots.options) {\n log.warnOnce('TMenu', '`options` slot is going to be deprecated, please use `operations` for slot instead.');\n }\n });\n const { value, modelValue, expanded } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [expandValues, setExpanded] = useDefaultValue(expanded, props.defaultExpanded, props.onExpand, 'expanded');\n const activeValues = ref([]);\n const theme = computed(() => props.theme);\n const menuClass = computed(() => [\n `${classPrefix.value}-menu`,\n `${classPrefix.value}-head-menu`,\n `${classPrefix.value}-menu--${props.theme}`,\n ]);\n const mode = ref(props.expandType);\n const submenu = reactive([]);\n const vMenu = new VMenu({ isMutex: true, expandValues: expandValues.value });\n\n provide('TdMenu', {\n mode,\n theme,\n vMenu,\n isHead: true,\n expandValues,\n activeValue,\n activeValues,\n select: (value: MenuValue) => {\n setActiveValue(value);\n },\n open: (value: MenuValue, type: TdOpenType) => {\n const expanded = [...expandValues.value];\n const index = expanded.indexOf(value);\n\n if (mode.value === 'popup') {\n if (type === 'add') {\n if (index === -1) {\n // 可能初始expanded里包含了该value\n expanded.push(value);\n }\n } else if (type === 'remove') {\n expanded.splice(index, 1);\n }\n } else if (mode.value === 'normal' && value !== undefined) {\n expanded.splice(0, 1);\n if (index === -1) {\n expanded.push(value);\n }\n }\n setExpanded(expanded);\n },\n });\n\n // methods\n const handleTabChange = (value: MenuValue) => {\n setActiveValue(value);\n handleClickSubMenuItem(value);\n };\n\n const handleSubmenuExpand = (value: MenuValue) => {\n const ans = vMenu.getChild(value);\n submenu.length = 0;\n submenu.push(...ans);\n };\n\n // watch\n watch(expandValues, (value) => {\n if (mode.value === 'normal') {\n handleSubmenuExpand(value[0]);\n }\n });\n const updateActiveValues = (value: MenuValue) => {\n activeValues.value = vMenu.select(value);\n };\n watch(activeValue, updateActiveValues);\n watch(\n () => props.expandType,\n (value) => {\n mode.value = value;\n },\n );\n\n onMounted(() => {\n activeValues.value = vMenu.select(activeValue.value);\n if (expandValues.value?.length > 0) {\n handleSubmenuExpand(expandValues.value[0]); // 顶部导航只能同时展开一个子菜单\n }\n });\n\n const handleClickSubMenuItem = (value: MenuValue) => {\n const activeMenuItem = submenu.find((v) => v.value === value);\n activeMenuItem.onClick?.({ value });\n const { to, href, replace } = activeMenuItem;\n if (href) {\n window.location.href = activeMenuItem.href;\n }\n const router = activeMenuItem.router || proxy.$router;\n if (to && router) {\n replace ? router.replace(to) : router.push(to);\n }\n };\n // setup返回的render函数中无法访问methods属性中的类容,移动此方法到setup中\n const renderNormalSubmenu = () => {\n if (submenu.length === 0) return null;\n return (\n
      \n {\n \n {submenu.map((item) => (\n \n ))}\n \n }\n
    \n );\n };\n\n const menuRef = ref();\n const innerRef = ref();\n const logoRef = ref();\n const operationRef = ref();\n\n const getComputedCss = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n getComputedStyle(el)[cssProperty] ?? '';\n\n const getComputedCssValue = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n Number.parseInt(String(getComputedCss(el, cssProperty)), 10);\n\n const calcMenuWidth = () => {\n const menuPaddingLeft = getComputedCssValue(menuRef.value, 'paddingLeft');\n const menuPaddingRight = getComputedCssValue(menuRef.value, 'paddingRight');\n let totalWidth = innerRef.value.clientWidth;\n if (logoRef.value) {\n const logoMarginLeft = getComputedCssValue(logoRef.value, 'marginLeft');\n const logoMarginRight = getComputedCssValue(logoRef.value, 'marginRight');\n totalWidth = totalWidth - logoRef.value.offsetWidth - logoMarginLeft - logoMarginRight;\n }\n\n if (operationRef.value) {\n const operationMarginLeft = getComputedCssValue(operationRef.value, 'marginLeft');\n const operationMarginRight = getComputedCssValue(operationRef.value, 'marginRight');\n totalWidth = totalWidth - operationRef.value.offsetWidth - operationMarginLeft - operationMarginRight;\n }\n\n return totalWidth - menuPaddingLeft - menuPaddingRight;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const formatContent = () => {\n let slot = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n if (menuRef.value && innerRef.value) {\n const validNodes = Array.from(menuRef.value.childNodes ?? []).filter(\n (item) => item.nodeName !== '#text' || item.nodeValue,\n ) as HTMLElement[];\n\n const menuWidth = calcMenuWidth();\n const menuItemMinWidth = 104;\n\n let remainWidth = menuWidth;\n let sliceIndex = validNodes.length;\n\n for (let index = 0; index < validNodes.length; index++) {\n const element = validNodes[index];\n remainWidth -= element.offsetWidth || 0;\n if (remainWidth < menuItemMinWidth) {\n sliceIndex = index;\n break;\n }\n }\n\n const defaultSlot = slot.slice(0, sliceIndex);\n const subMore = slot.slice(sliceIndex);\n\n if (subMore.length) {\n slot = defaultSlot.concat(\n }>\n {subMore}\n ,\n );\n }\n }\n return slot;\n };\n\n const initVMenu = (slots: VNode[], parentValue?: string) => {\n slots.forEach((node) => {\n const nodeValue = node.props?.value;\n if ((node.type as Component)?.name === 'TSubmenu' || (node.type as Component)?.name === 'TMenuItem') {\n vMenu.add({ value: nodeValue, parent: parentValue, vnode: (node.children as any).default, ...node.props });\n }\n if (isFunction((node.children as any)?.default)) {\n initVMenu((node.children as any).default(), nodeValue);\n return;\n }\n if (isArray(node.children)) {\n initVMenu(node.children as VNode[], nodeValue);\n }\n });\n };\n initVMenu(ctx.slots.default?.() || ctx.slots.content?.() || []);\n\n return () => {\n const logo = props.logo?.(h) || ctx.slots.logo?.();\n const operations = props.operations?.(h) || ctx.slots.operations?.() || ctx.slots.options?.();\n\n // TODO: 判断逻辑不够完善 影响封装组件的子菜单样式渲染 暂时先不执行 待调整实现方案\n // const content = formatContent();\n const content = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n return (\n
    \n
    \n {logo && (\n
    \n {logo}\n
    \n )}\n
      \n {content}\n
    \n {operations && (\n
    \n {operations}\n
    \n )}\n
    \n {mode.value === 'normal' && renderNormalSubmenu()}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuItemProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 跳转链接,菜单项渲染为a标签,当routerLink为true时将使用Router进行路由跳转 */\n href: {\n type: String,\n default: '',\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 路由跳转是否采用覆盖的方式(覆盖后将没有浏览器历史记录) */\n replace: Boolean,\n /** 路由对象。如果项目存在 Router,则默认使用 Router。 */\n router: {\n type: Object as PropType,\n },\n /**\n * 菜单项内容是否渲染为使用Router进行跳转的a标签,当且仅当 Router 存在时,该 API 有效\n */\n routerLink: Boolean,\n /** 链接或路由跳转方式 */\n target: {\n type: String as PropType,\n default: '_self' as TdMenuItemProps['target'],\n validator(val: TdMenuItemProps['target']): boolean {\n if (!val) return true;\n return ['_blank', '_self', '_parent', '_top'].includes(val);\n },\n },\n /** 路由跳转目标,当且仅当 Router 存在时,该 API 有效 */\n to: {\n type: [String, Object] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, inject, onMounted, ref, toRefs, getCurrentInstance } from 'vue';\nimport props from './menu-item-props';\nimport { TdMenuInterface, TdSubMenuInterface } from './types';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport Tooltip from '../tooltip';\nimport type { TdMenuItemProps } from './type';\n\nexport default defineComponent({\n name: 'TMenuItem',\n props,\n emits: ['click'],\n setup(props: TdMenuItemProps, ctx) {\n const { href, target, to, disabled, value, onClick, routerLink, replace } = toRefs(props);\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const menu = inject('TdMenu');\n const itemRef = ref();\n const instance = getCurrentInstance();\n\n useRipple(itemRef);\n const submenu = inject('TdSubmenu', null);\n const active = computed(() => menu.activeValue.value === props.value);\n const collapsed = computed(() => menu.collapsed?.value);\n const classes = computed(() => [\n `${classPrefix.value}-menu__item`,\n {\n [`${classPrefix.value}-is-active`]: active.value,\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-menu__item--plain`]: !ctx.slots.icon && !props.icon,\n [`${classPrefix.value}-submenu__item`]: !!submenu && !menu.isHead,\n },\n ]);\n const router = computed(() => props.router || instance?.proxy.$router);\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n if (disabled.value) return;\n menu.select(value.value);\n onClick.value?.({ e, value: value.value });\n if (to.value || (routerLink.value && href.value)) {\n const methods = replace.value ? 'replace' : 'push';\n router.value[methods](to.value || href.value).catch((err: Error) => {\n // vue-router 3.1.0+ push/replace cause NavigationDuplicated error\n // https://github.com/vuejs/vue-router/issues/2872\n // 当前path和目标path相同时,会抛出NavigationDuplicated的错误\n if (\n err.name !== 'NavigationDuplicated' &&\n !err.message.includes('Avoided redundant navigation to current location')\n ) {\n throw err;\n }\n });\n }\n submenu?.closeParentPopup?.(e);\n };\n\n // lifetimes\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: ctx.slots.default, ...props });\n });\n\n return () => {\n const liContent = (\n
  • \n {renderTNodeJSX('icon')}\n {routerLink.value ? (\n e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : href.value ? (\n disabled.value && e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : (\n {renderContent('default', 'content')}\n )}\n
  • \n );\n\n const node = instance?.parent;\n // 菜单收起,且只有本身为一级菜单才需要显示 tooltip\n if (collapsed.value && /tmenu/i.test(node?.type.name)) {\n return (\n renderContent('default', 'content')} placement=\"right\">\n {liContent}\n \n );\n }\n return liContent;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuGroupProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单组标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './menu-group-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TMenuGroup',\n props,\n setup() {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n return () => (\n
    \n
    {renderTNodeJSX('title', { silent: false })}
    \n {renderTNodeJSX('default')}\n
    \n );\n },\n});\n","import _Menu from './menu';\nimport _HeadMenu from './head-menu';\nimport _Submenu from './submenu';\nimport _MenuItem from './menu-item';\nimport _MenuGroup from './menu-group';\nimport withInstall from '../utils/withInstall';\nimport { TdMenuProps, TdHeadMenuProps, TdSubmenuProps, TdMenuItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type MenuProps = TdMenuProps;\nexport type HeadMenuProps = TdHeadMenuProps;\nexport type SubmenuProps = TdSubmenuProps;\nexport type MenuItemProps = TdMenuItemProps;\n\nexport const Menu = withInstall(_Menu);\nexport const HeadMenu = withInstall(_HeadMenu);\nexport const Submenu = withInstall(_Submenu);\nexport const MenuItem = withInstall(_MenuItem);\nexport const MenuGroup = withInstall(_MenuGroup);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n default: 'left' as TdInputProps['align'],\n validator(val: TdInputProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 超出 `maxlength` 或 `maxcharacter` 之后是否允许继续输入 */\n allowInputOverMax: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否开启自动填充功能,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) */\n autocomplete: {\n type: String,\n default: undefined,\n },\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 是否开启无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式。注意 `type=number` 时请勿使用,此功能建议更为使用 `InputNumber` 组件 */\n format: {\n type: Function as PropType,\n },\n /** t-input 同级类名,示例:'name1 name2 name3' 或 `['name1', 'name2']` 或 `[{ 'name1': true }]` */\n inputClass: {\n type: [String, Object, Array] as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的文本长度,一个中文等于一个计数长度。默认为空,不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 是否在输入框右侧显示字数统计 */\n showLimitNumber: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputProps['size'],\n validator(val: TdInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否开启拼写检查,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/spellcheck) */\n spellCheck: Boolean,\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputProps['status'],\n validator(val: TdInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框类型。`type=number` 仅支持最基础的数字输入功能,更多功能建议使用 `InputNumber` 组件 */\n type: {\n type: String as PropType,\n default: 'text' as TdInputProps['type'],\n validator(val: TdInputProps['type']): boolean {\n if (!val) return true;\n return ['text', 'number', 'url', 'tel', 'password', 'search', 'submit', 'hidden'].includes(val);\n },\n },\n /** 输入框的值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n /** 输入框的值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发。参数 `trigger=initial` 表示传入的数据不符合预期,组件自动处理后触发 change 告知父组件。如:初始值长度超过 `maxlength` 限制 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n /** 输入框中滚动鼠标时触发 */\n onWheel: Function as PropType,\n};\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\nimport { TdFormProps } from '../form/type';\n\nexport interface FormReadonlyProvider {\n readonly: Ref;\n}\n\nexport interface ReadonlyContext {\n beforeReadonly?: Ref;\n afterReadonly?: Ref;\n}\n\n/**\n * 用于实现组件全局只读状态的hook\n * 优先级:(beforeReadonly) > Component.readonly > ComponentGroup.readonly(afterReadonly) > Form.readonly\n * @returns\n */\nexport function useReadonly(context?: ReadonlyContext) {\n const currentInstance = getCurrentInstance();\n const componentReadonly = computed(() => currentInstance.props.readonly as boolean);\n\n const formReadonly = inject('formReadonly', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value;\n // Component\n if (isBoolean(componentReadonly?.value)) return componentReadonly.value;\n // ComponentGroup\n if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value;\n // Form\n if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value;\n\n return false;\n });\n}\n","import { computed, InjectionKey } from 'vue';\nimport { FormItemValidateResult } from '../form-item';\nimport {\n AllValidateResult,\n Data,\n FormItemValidateMessage,\n FormRule,\n TdFormItemProps,\n TdFormProps,\n ValidateResultType,\n ValidateTriggerType,\n} from '../type';\nimport { usePrefixClass, useTNodeJSX } from '../../hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n 'TInput',\n 'TInputNumber',\n 'TTextarea',\n 'TCascader',\n 'TSelect',\n 'TOption',\n 'TSwitch',\n 'TCheckbox',\n 'TCheckboxGroup',\n 'TRadio',\n 'TRadioGroup',\n 'TTreeSelect',\n 'TDatePicker',\n 'TTimePicker',\n 'TUpload',\n 'TTransfer',\n 'TSlider',\n];\n\nexport const useCLASSNAMES = () => {\n const classPrefix = usePrefixClass();\n\n return computed(() => {\n const form = `${classPrefix.value}-form`;\n const input = `${classPrefix.value}-input`;\n const is = `${classPrefix.value}-is`;\n\n return {\n form,\n label: `${form}__label`,\n labelTop: `${form}__label--top`,\n inline: `${form}-inline`,\n formItem: `${form}__item`,\n formItemWithHelp: `${form}__item-with-help`,\n formItemWithExtra: `${form}__item-with-extra`,\n controls: `${form}__controls`,\n controlsContent: `${form}__controls-content`,\n status: `${form}__status`,\n extra: `${input}__extra`,\n help: `${input}__help`,\n success: `${is}-success`,\n successBorder: `${form}--success-border`,\n error: `${is}-error`,\n warning: `${is}-warning`,\n };\n });\n};\n\nexport const enum ValidateStatus {\n TO_BE_VALIDATED = 'not',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type ErrorListType =\n | {\n result: false;\n message: string;\n type: 'error' | 'warning';\n }\n | ValidateResultType;\n\nexport type SuccessListType =\n | {\n result: true;\n message: string;\n type: 'success';\n }\n | ValidateResultType;\n\nexport interface AnalysisValidateResult {\n successList?: SuccessListType[];\n errorList?: ErrorListType[];\n rules: FormRule[];\n resultList: AllValidateResult[];\n allowSetValue: boolean;\n}\n\nexport interface FormItemContext {\n name: TdFormItemProps['name'];\n resetHandler: () => void;\n resetField: (resetType?: 'initial' | 'empty') => Promise;\n validate: (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ) => Promise>;\n validateOnly: (trigger: ValidateTriggerType) => Promise>;\n setValidateMessage: (validateMessage: FormItemValidateMessage[]) => void;\n}\n\nexport const FormInjectionKey: InjectionKey<{\n showErrorMessage: TdFormProps['showErrorMessage'];\n labelWidth: TdFormProps['labelWidth'];\n labelAlign: TdFormProps['labelAlign'];\n data: TdFormProps['data'];\n colon: TdFormProps['colon'];\n requiredMark: TdFormProps['requiredMark'];\n requiredMarkPosition: TdFormProps['requiredMarkPosition'];\n rules: TdFormProps['rules'];\n errorMessage: TdFormProps['errorMessage'];\n resetType: TdFormProps['resetType'];\n children: FormItemContext[];\n renderContent: ReturnType;\n}> = Symbol('FormProvide');\n\nexport const FormItemInjectionKey: InjectionKey<{\n handleBlur: () => Promise;\n}> = Symbol('FormItemProvide');\n","import { computed, ComputedRef, onMounted, watch } from 'vue';\nimport { TdInputProps } from './../type';\nimport log from '@tdesign/common-js/log/index';\nimport { getCharacterLength, getUnicodeLength, limitUnicodeMaxLength } from '@tdesign/common-js/utils/helper';\nimport { isNumber, isObject } from 'lodash-es';\n\nexport interface UseLengthLimitParams {\n value: string;\n maxlength: number;\n maxcharacter: number;\n allowInputOverMax: boolean;\n status: TdInputProps['status'];\n onValidate: TdInputProps['onValidate'];\n}\n\nexport function useLengthLimit(params: ComputedRef) {\n // 文本超出数量限制时,是否允许继续输入\n const getValueByLimitNumber = (inputValue: string) => {\n const { allowInputOverMax, maxlength, maxcharacter } = params.value;\n if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;\n if (maxlength) {\n // input value could be unicode 😊\n return limitUnicodeMaxLength(inputValue, maxlength);\n }\n if (maxcharacter) {\n const r = getCharacterLength(inputValue, maxcharacter);\n if (isObject(r)) {\n return r.characters;\n }\n }\n };\n\n const limitNumber = computed(() => {\n const { maxlength, maxcharacter, value } = params.value;\n if (isNumber(value)) return String(value);\n if (maxlength && maxcharacter) {\n log.warn('Input', 'Pick one of maxlength and maxcharacter please.');\n }\n if (maxlength) {\n const length = value?.length ? getUnicodeLength(value) : 0;\n return `${length}/${maxlength}`;\n }\n if (maxcharacter) {\n return `${getCharacterLength(value || '')}/${maxcharacter}`;\n }\n return '';\n });\n\n const innerStatus = computed(() => {\n if (limitNumber.value) {\n const [current, total] = limitNumber.value.split('/');\n return Number(current) > Number(total) ? 'error' : '';\n }\n return '';\n });\n\n const tStatus = computed(() => {\n const { status } = params.value;\n return status || innerStatus.value;\n });\n\n const onValidateChange = () => {\n params.value.onValidate?.({\n error: innerStatus.value ? 'exceed-maximum' : undefined,\n });\n };\n\n watch(innerStatus, onValidateChange);\n\n onMounted(() => {\n innerStatus.value && onValidateChange();\n });\n\n return {\n tStatus,\n limitNumber,\n getValueByLimitNumber,\n };\n}\n","import { ref, computed, watch, nextTick, toRefs, inject } from 'vue';\nimport { InputValue, TdInputProps } from './../type';\nimport { FormItemInjectionKey } from '../../form/consts';\nimport useVModel from '../../hooks/useVModel';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useLengthLimit } from './useLengthLimit';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport function getOutputValue(val: InputValue, type: TdInputProps['type']) {\n if (type === 'number') {\n return val || val === 0 ? Number(val) : undefined;\n }\n return val;\n}\n\nexport interface ExtendsTdInputProps extends TdInputProps {\n showInput: boolean;\n keepWrapperWidth: boolean;\n}\n\nexport function useInput(props: ExtendsTdInputProps, expose: (exposed: Record) => void) {\n const { value, modelValue } = toRefs(props);\n const inputValue = ref();\n const isComposition = ref(false);\n const compositionValue = ref();\n const clearIconRef = ref(null);\n const innerClickElement = ref();\n const disabled = useDisabled();\n const readonly = useReadonly();\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const isHover = ref(false);\n const focused = ref(false);\n const renderType = ref(props.type);\n const inputRef = ref(null);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { limitNumber, getValueByLimitNumber, tStatus } = useLengthLimit(limitParams);\n\n const showClear = computed(() => {\n return (\n ((innerValue.value && !disabled.value && props.clearable && !readonly.value) || props.showClearIconOnEmpty) &&\n isHover.value\n );\n });\n\n const focus = () => {\n focused.value = true;\n inputRef.value?.focus();\n };\n\n const blur = () => {\n focused.value = false;\n inputRef.value?.blur();\n };\n\n const emitFocus = (e: FocusEvent) => {\n if (isHover.value && focused.value) return;\n inputValue.value = innerValue.value;\n if (props.disabled) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const emitClear = ({ e }: { e: MouseEvent }) => {\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val, { e, trigger: 'clear' });\n props.onClear?.({ e });\n };\n\n const onClearIconMousedown = (e: MouseEvent) => {\n innerClickElement.value = e.target;\n };\n\n const emitPassword = () => {\n if (disabled.value) return;\n const toggleType = renderType.value === 'password' ? 'text' : 'password';\n renderType.value = toggleType;\n };\n\n const setInputElValue = (v: InputValue = '') => {\n const inputEl = inputRef.value as HTMLInputElement;\n if (!inputEl) return;\n const sV = String(v);\n if (!inputEl.value) {\n return;\n }\n if (inputEl.value !== sV) {\n inputEl.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent | CompositionEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n // over length: allow delete; not add\n if (props.type !== 'number' && typeof innerValue.value === 'string' && val.length > innerValue.value?.length) {\n val = getValueByLimitNumber(val);\n }\n setInnerValue(getOutputValue(val, props.type), { e, trigger: 'input' });\n // 受控\n nextTick(() => {\n // type = 'number'时, 解决小数点后面有 0 自动删除的问题\n if (props.type === 'number' && /\\.(\\d+)?0$/.test(val)) {\n setInputElValue(val);\n } else {\n setInputElValue(innerValue.value);\n }\n });\n };\n\n const handleInput = (e: InputEvent) => {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n const {\n currentTarget: { value: val },\n }: any = e;\n if (checkInputType || isComposition.value) {\n compositionValue.value = val;\n return;\n }\n inputValueChangeHandle(e);\n };\n\n const isClearIcon = () => {\n let tmp = innerClickElement.value;\n if (!tmp || !tmp.tagName || !clearIconRef.value?.$el || !['path', 'svg'].includes(tmp.tagName)) return false;\n while (tmp) {\n if (clearIconRef.value?.$el === tmp) {\n return true;\n }\n tmp = tmp.parentNode;\n }\n return false;\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const formatAndEmitBlur = (e: FocusEvent) => {\n if (!isClearIcon()) {\n if (props.format) {\n inputValue.value =\n typeof innerValue.value === 'number' || props.type === 'number'\n ? innerValue.value\n : props.format(innerValue.value);\n }\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n } else {\n focus();\n }\n };\n\n const onHandleCompositionend = (e: CompositionEvent) => {\n isComposition.value = false;\n compositionValue.value = '';\n inputValueChangeHandle(e);\n props.onCompositionend?.(String(innerValue.value), { e });\n };\n\n const onHandleCompositionstart = (e: CompositionEvent) => {\n isComposition.value = true;\n const {\n currentTarget: { value },\n }: any = e;\n compositionValue.value = value;\n props.onCompositionstart?.(String(innerValue.value), { e });\n };\n\n const onRootClick = (e: MouseEvent) => {\n inputRef.value?.focus();\n props.onClick?.({ e });\n };\n\n watch(\n () => props.autofocus,\n (value) => {\n if (value === true) {\n nextTick(() => {\n inputRef.value?.focus();\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n (val, oldVal) => {\n const isNumberType = props.type === 'number';\n // 初始化时,如果有 format 函数,需要对 value 进行格式化\n if (oldVal === undefined && props.format && typeof val !== 'number' && !isNumberType) {\n inputValue.value = props.format(val);\n } else {\n inputValue.value = val;\n }\n // limit props value\n const newVal = typeof val === 'number' ? val : getValueByLimitNumber(val);\n if (newVal !== val && !isNumberType) {\n setInnerValue(newVal, { trigger: 'initial' });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.type,\n (v) => {\n renderType.value = v;\n },\n { immediate: true },\n );\n\n expose({\n inputRef,\n focus,\n blur,\n });\n\n return {\n isHover,\n focused,\n renderType,\n showClear,\n inputRef,\n clearIconRef,\n inputValue,\n isComposition,\n compositionValue,\n limitNumber,\n tStatus,\n emitFocus,\n formatAndEmitBlur,\n onHandleCompositionend,\n onHandleCompositionstart,\n onRootClick,\n emitPassword,\n handleInput,\n emitClear,\n onClearIconMousedown,\n innerValue,\n };\n}\n","import { onMounted, Ref, ref, watch, nextTick, onBeforeUnmount, toRefs } from 'vue';\nimport useResizeObserver from '../../hooks/useResizeObserver';\nimport { InputValue, TdInputProps } from './../type';\n\nconst ANIMATION_TIME = 100;\n\nexport function useInputWidth(props: TdInputProps, inputRef: Ref, innerValue: Ref) {\n const { autoWidth, placeholder } = toRefs(props);\n const inputPreRef = ref(null);\n const observerTimer = ref(null);\n\n const updateInputWidth = () => {\n if (!inputPreRef.value || !inputRef.value) return;\n // 使用 getComputedStyle 规避 transform 带来的影响\n inputRef.value.style.width = getComputedStyle(inputPreRef.value).width;\n };\n\n useResizeObserver(inputPreRef, () => {\n if (autoWidth.value) {\n observerTimer.value = setTimeout(() => {\n updateInputWidth();\n clearTimeout(observerTimer.value);\n }, ANIMATION_TIME);\n }\n });\n\n onBeforeUnmount(() => {\n clearTimeout(observerTimer.value);\n });\n\n const addListeners = () => {\n watch(\n [innerValue, placeholder],\n () => {\n if (!autoWidth.value) return;\n nextTick(() => {\n updateInputWidth();\n });\n },\n { immediate: true },\n );\n };\n\n onMounted(() => {\n if (autoWidth.value) {\n addListeners();\n }\n });\n\n return {\n inputPreRef,\n };\n}\n","import { defineComponent, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n BrowseOffIcon as TdBrowseOffIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport props from './props';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useInput, useInputEventHandler, useInputWidth } from './hooks';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TInput',\n props: {\n ...props,\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传readonly同时是否展示input 默认保留 因为正常Input需要撑开宽度\n */\n showInput: {\n type: Boolean,\n default: true,\n },\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传autoWidth之后是否容器宽度也自适应 多选等组件需要用到自适应但也需要保留宽度\n */\n keepWrapperWidth: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { expose }) {\n const { globalConfig } = useConfig('input');\n const { BrowseIcon, BrowseOffIcon, CloseCircleFilledIcon } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n BrowseOffIcon: TdBrowseOffIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n const readonly = useReadonly();\n const disabled = useDisabled();\n\n const COMPONENT_NAME = usePrefixClass('input');\n const INPUT_WRAP_CLASS = usePrefixClass('input__wrap');\n const INPUT_TIPS_CLASS = usePrefixClass('input__tips');\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const {\n isHover,\n tStatus,\n inputRef,\n renderType,\n showClear,\n focused,\n inputValue,\n isComposition,\n compositionValue,\n innerValue,\n limitNumber,\n ...inputHandle\n } = useInput(props, expose);\n\n const { inputPreRef } = useInputWidth(props, inputRef, innerValue);\n\n const inputEventHandler = useInputEventHandler(props, isHover);\n\n const tPlaceholder = computed(() => props.placeholder ?? globalConfig.value.placeholder);\n const inputAttrs = computed(() => {\n const value = {\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: readonly.value,\n placeholder: tPlaceholder.value,\n name: props.name || undefined,\n type: renderType.value,\n autocomplete: props.autocomplete ?? (globalConfig.value.autocomplete || undefined),\n unselectable: readonly.value ? 'on' : 'off',\n spellcheck: props.spellCheck,\n // 不要传给 input 原生元素 maxlength,浏览器默认行为会按照 unicode 进行限制,与 maxLength API 违背\n // https://github.com/Tencent/tdesign-vue-next/issues/4413\n // 参见: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/maxlength,提到了字符串长度的计算方法,就是 str.length\n } as const;\n return getValidAttrs(value);\n });\n\n const wrapClasses = computed(() => [\n INPUT_WRAP_CLASS.value,\n {\n [`${COMPONENT_NAME.value}--auto-width`]: props.autoWidth && !props.keepWrapperWidth,\n },\n ]);\n\n const inputEvents = getValidAttrs({\n onFocus: inputHandle.emitFocus,\n onBlur: inputHandle.formatAndEmitBlur,\n onKeydown: inputEventHandler.handleKeydown,\n onKeyup: inputEventHandler.handleKeyUp,\n onKeypress: inputEventHandler.handleKeypress,\n onPaste: inputEventHandler.onHandlePaste,\n onCompositionend: inputHandle.onHandleCompositionend,\n onCompositionstart: inputHandle.onHandleCompositionstart,\n });\n\n return () => {\n const prefixIcon = renderTNodeJSX('prefixIcon');\n let suffixIcon = renderTNodeJSX('suffixIcon');\n let passwordIcon = renderTNodeJSX('passwordIcon');\n const label = renderTNodeJSX('label', { silent: true });\n const suffix = renderTNodeJSX('suffix');\n const limitNode =\n limitNumber.value && props.showLimitNumber ? (\n \n {limitNumber.value}\n \n ) : null;\n\n const labelContent = label ?
    {label}
    : null;\n const suffixContent =\n suffix || limitNode ? (\n
    \n {suffix}\n {limitNode}\n
    \n ) : null;\n\n if (props.type === 'password') {\n const passwordClass = [{ [`${COMPONENT_NAME.value}__suffix-clear`]: !disabled.value }];\n if (renderType.value === 'password') {\n suffixIcon = ;\n } else if (renderType.value === 'text') {\n suffixIcon = ;\n }\n }\n\n if (showClear.value) {\n // 如果类型为 password 则使用 passwordIcon 显示 clear\n if (props.type === 'password') {\n passwordIcon = (\n \n );\n } else {\n suffixIcon = (\n \n );\n }\n }\n\n const classes = [\n COMPONENT_NAME.value,\n props.inputClass,\n {\n [SIZE.value[props.size]]: props.size !== 'medium',\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: disabled.value ? false : focused.value,\n [`${classPrefix.value}-is-${tStatus.value}`]: tStatus.value && tStatus.value !== 'default',\n [`${classPrefix.value}-align-${props.align}`]: props.align !== 'left',\n [`${classPrefix.value}-is-readonly`]: readonly.value,\n [`${COMPONENT_NAME.value}--prefix`]: prefixIcon || labelContent,\n [`${COMPONENT_NAME.value}--suffix`]: suffixIcon || suffixContent,\n [`${COMPONENT_NAME.value}--borderless`]: props.borderless,\n [`${COMPONENT_NAME.value}--focused`]: focused.value,\n },\n ];\n\n const tips = renderTNodeJSX('tips');\n\n const tipsClasses = [\n INPUT_TIPS_CLASS.value,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${tStatus.value || 'default'}`,\n ];\n\n return (\n
    \n \n {prefixIcon ? (\n \n {prefixIcon}\n \n ) : null}\n {labelContent}\n {/* input element must exist, or other select components can not focus by keyboard operation */}\n inputHandle.handleInput(e as InputEvent)}\n />\n {props.autoWidth && (\n \n {isComposition.value ? compositionValue.value ?? '' : innerValue.value || tPlaceholder.value}\n \n )}\n {suffixContent}\n {passwordIcon ? (\n \n {passwordIcon}\n \n ) : null}\n {suffixIcon ? (\n \n {suffixIcon}\n \n ) : null}\n
    \n {tips &&
    {tips}
    }\n \n );\n };\n },\n});\n","import { Ref } from 'vue';\nimport { TdInputProps } from './../type';\nimport { getOutputValue } from './useInput';\n\nexport function useInputEventHandler(props: TdInputProps, isHover: Ref) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const { code } = e;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n if (/enter/i.test(code) || /enter/i.test(e.key)) {\n props.onEnter?.(tmpValue, { e });\n } else {\n props.onKeydown?.(tmpValue, { e });\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n props.onKeyup?.(tmpValue, { e });\n };\n\n const handleKeypress = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n props.onKeypress?.(tmpValue, { e });\n };\n\n const onHandlePaste = (e: ClipboardEvent) => {\n if (props.disabled) return;\n // @ts-ignore\n const clipData = e.clipboardData || window.clipboardData;\n props.onPaste?.({ e, pasteValue: clipData?.getData('text/plain') });\n };\n\n const mouseEvent = (v: boolean) => (isHover.value = v);\n\n const onHandleMousewheel = (e: WheelEvent) => props.onWheel?.({ e });\n\n const onInputMouseenter = (e: MouseEvent) => {\n mouseEvent(true);\n props.onMouseenter?.({ e });\n };\n\n const onInputMouseleave = (e: MouseEvent) => {\n mouseEvent(false);\n props.onMouseleave?.({ e });\n };\n\n return {\n isHover,\n handleKeydown,\n handleKeyUp,\n handleKeypress,\n onHandlePaste,\n onHandleMousewheel,\n onInputMouseenter,\n onInputMouseleave,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 多个输入框之间是否需要间隔 */\n separate: Boolean,\n};\n","import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport inputGroupProps from './input-group-props';\n\nexport default defineComponent({\n name: 'TInputGroup',\n props: inputGroupProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('input-group');\n const renderTNodeJSX = useTNodeJSX();\n const CLASS = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--separate`]: props.separate,\n },\n ]);\n return () =>
    {renderTNodeJSX('default')}
    ;\n },\n});\n","import _Input from './input';\nimport _InputGroup from './input-group';\nimport withInstall from '../utils/withInstall';\nimport { InputValue, TdInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputProps = TdInputProps;\nexport type InputBlurEventParams = Parameters;\nexport type InputFocusEventParams = Parameters;\nexport type StrInputProps = TdInputProps;\nexport type NumberInputProps = TdInputProps;\n\nexport const Input = withInstall(_Input);\nexport const InputGroup = withInstall(_InputGroup);\n\nexport default Input;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputNumberProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n validator(val: TdInputNumberProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 是否允许输入超过 `max` `min` 范围外的数字。为保障用户体验,仅在失去焦点时进行数字范围矫正。默认允许超出,数字超出范围时,输入框变红提醒 */\n allowInputOverLimit: {\n type: Boolean,\n default: true,\n },\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** [小数位数](https://en.wiktionary.org/wiki/decimal_place) */\n decimalPlaces: {\n type: [Number, Object] as PropType,\n default: undefined as TdInputNumberProps['decimalPlaces'],\n },\n /** 禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 格式化输入框展示值。第二个事件参数 `context.fixedNumber` 表示处理过小数位数 `decimalPlaces` 的数字 */\n format: {\n type: Function as PropType,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否作为大数使用。JS 支持的最大数字位数是 16 位,超过 16 位的数字需作为字符串大数处理。此时,数据类型必须保持为字符串,否则会丢失数据 */\n largeNumber: Boolean,\n /** 最大值。如果是大数,请传入字符串 */\n max: {\n type: [String, Number] as PropType,\n default: Infinity as TdInputNumberProps['max'],\n },\n /** 最小值。如果是大数,请传入字符串 */\n min: {\n type: [String, Number] as PropType,\n default: -Infinity as TdInputNumberProps['min'],\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputNumberProps['size'],\n validator(val: TdInputNumberProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputNumberProps['status'],\n validator(val: TdInputNumberProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 数值改变步数,可以是小数。如果是大数,请保证数据类型为字符串 */\n step: {\n type: [String, Number] as PropType,\n default: 1 as TdInputNumberProps['step'],\n },\n /** 后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 按钮布局 */\n theme: {\n type: String as PropType,\n default: 'row' as TdInputNumberProps['theme'],\n validator(val: TdInputNumberProps['theme']): boolean {\n if (!val) return true;\n return ['column', 'row', 'normal'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,`type` 表示触发本次变化的来源 */\n onChange: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获取焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 最大值或最小值校验结束后触发,`exceed-maximum` 表示超出最大值,`below-minimum` 表示小于最小值 */\n onValidate: Function as PropType,\n};\n","import { isString, isNumber, isObject } from 'lodash-es';\nimport log from '../log/log';\n\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean, places: number };\n\nexport function fillZero(length: number) {\n return new Array(length).fill(0).join('');\n}\n\n/**\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\n */\nexport function isInputNumber(num: number | string): boolean {\n if (!num) return true;\n if (isNumber(num)) return !Number.isNaN(num);\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\n if (!r) return false;\n // only allow one [.e] and two [-]\n let eCount = 0;\n let negativeCount = 0;\n let dotCount = 0;\n for (let i = 0, len = num.length; i < len; i++) {\n if (num[i] === '.') {\n dotCount += 1;\n if (dotCount > 1) return false;\n }\n if (/(e|E)+/.test(num[i])) {\n eCount += 1;\n if (eCount > 1) return false;\n }\n if (num[i] === '-') {\n negativeCount += 1;\n if (negativeCount > 2) return false;\n }\n }\n return true;\n}\n\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\nexport function removeInvalidZero(num: string, decimal = false) {\n if (num.indexOf('.') !== -1) {\n log.error('InputNumber', 'num is not a integer number.');\n return num;\n }\n if (!num || (num === '0' && decimal)) return '';\n if (num === '0') return num;\n return (decimal ? num.replace(/0+$/, '') : num.replace(/^0+/, '')) || '0';\n}\n\n/**\n * 大数加法,仅支持正整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\n const number1 = removeInvalidZero(num1, decimal);\n const number2 = removeInvalidZero(num2, decimal);\n const isFirstLarger = number1.length > number2.length;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,加第二个数,加进位\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\n if (count >= 10) {\n step[i - 1] = 1;\n }\n newNumber.unshift(String(count % 10));\n }\n // 999 + 1 = 1000,之类的进位\n if (step[-1]) {\n newNumber.unshift('1');\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n return newNumber.join('');\n}\n\n/**\n * 大数加法,支持小数和整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\n const [intNumber1 = '0', decimalNumber1 = '0'] = num1.split('.');\n const [intNumber2 = '0', decimalNumber2 = '0'] = num2.split('.');\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') return integerSum;\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\n // 小数点相加\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\n // 组合整数部分和小数部分\n const decimalLength = decimalNumberSum.length;\n // 如果小数相加进位\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\n return [\n removeInvalidZero(largeIntNumberAdd(integerSum, '1')),\n removeInvalidZero(decimalNumberSum.slice(1), true),\n ].filter((v: string) => v).join('.');\n }\n return [\n removeInvalidZero(integerSum),\n removeInvalidZero(decimalNumberSum, true)\n ].filter((v: string) => v).join('.');\n}\n\n/**\n * 比较两个大数的大小,仅正整数有效\n */\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n if (number1.length === number2.length) {\n for (let i = 0, len = number1.length; i < len; i++) {\n if (number1[i] > number2[i]) return 1;\n if (number1[i] < number2[i]) return -1;\n }\n return 0;\n }\n return number1.length > number2.length ? 1 : -1;\n}\n\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\n const number1 = num1 && num1 !== '0' ? num1.replace(/0+$/, '') : '0';\n const number2 = num2 && num2 !== '0' ? num2.replace(/0+$/, '') : '0';\n const maxLength = Math.max(number1.length, number2.length);\n for (let i = 0, len = maxLength; i < len; i++) {\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\n }\n return 0;\n}\n\n/**\n * 2e3 => 2000\n * 0.2e3 => 200\n */\nexport function formatENumber(num: string): string {\n const [num1, num2] = num.split('e');\n if (!num2) return num;\n const [integer, initDecimal = ''] = num.split('.');\n const zeroCount = Number(num2);\n const [decimal] = initDecimal.split('e');\n if (zeroCount > decimal.length) {\n const multipleZero = fillZero(zeroCount - decimal.length);\n return num1.replace(/(^0+|\\.)/g, '') + multipleZero;\n }\n const n1 = integer.replace(/^0+/, '') + decimal.slice(0, zeroCount);\n const d2 = decimal.slice(zeroCount);\n return d2 ? [n1, d2].join('.') : n1;\n}\n\n/**\n * 比较两个大数的大小\n */\nexport function compareLargeNumber(\n num1: string,\n num2: string,\n): 1 | -1 | 0 {\n const [integer1, decimal1] = formatENumber(num1).split('.');\n const [integer2, decimal2] = formatENumber(num2).split('.');\n const result = compareLargeIntegerNumber(integer1.replace('-', ''), integer2.replace('-', ''));\n const integer1IsNegative = integer1.includes('-');\n const integer2IsNegative = integer2.includes('-');\n if (integer1IsNegative && !integer2IsNegative) return -1;\n if (!integer1IsNegative && integer2IsNegative) return 1;\n if (integer1IsNegative && integer2IsNegative) {\n if (result === 0) return 0;\n return result > 0 ? -1 : 1;\n }\n if (result === 0) {\n return compareLargeDecimalNumber(decimal1, decimal2);\n }\n return result;\n}\n\n// 确认是否为无限大/小\nexport function isInfinity(num: number| string) {\n return [-Infinity, Infinity].includes(Number(num));\n}\n\n// 确认是否是大数\nexport function isSafeNumber(num: string | number) {\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * 比较两个数的大小\n */\nexport function compareNumber(\n num1: string | number,\n num2: string | number,\n largeNumber?: boolean,\n) {\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\n if (isSafeNumberCompare || isInfinityCompare) {\n // 比较两个非大数或涉及无穷的大小\n if (Number(num1) === Number(num2)) return 0;\n return Number(num1) > Number(num2) ? 1 : -1;\n }\n // 比较两个大数的大小\n return compareLargeNumber(String(num1), String(num2));\n}\n\n/**\n * 大数减法,仅支持整数\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largeIntegerNumberSubtract(\n num1: string, num2: string, p?: { decimal?: boolean, stayZero?: boolean }\n): string {\n if (num1 === num2) return '0';\n const { decimal, stayZero } = p || {};\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n // step 存储借位信息\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,减第二个数,减借位\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\n if (count < 0) {\n step[i - 1] = 1;\n count += 10;\n }\n newNumber.unshift(String(count));\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n let finalNumber = newNumber.join('');\n if (!stayZero) {\n finalNumber = finalNumber.replace(/^0+/, '');\n }\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\n}\n\n/**\n * 大数减法,支持整数和小数(无精度问题)\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\n if (num1 === num2) return '0';\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\n const maxNumber = isFirstLarger ? num1 : num2;\n const minNumber = isFirstLarger ? num2 : num1;\n // 整数部分和小数部分分开处理\n const [intNumber1, decimalNumber1 = '0'] = maxNumber.split('.');\n const [intNumber2, decimalNumber2 = '0'] = minNumber.split('.');\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') {\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\n }\n // 小数点相减\n let decimalNumber = '';\n let addOneNumber = decimalNumber1;\n // 第一个数字的小数位数比第二个少,需补足 0\n if (decimalNumber1.length < decimalNumber2.length) {\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\n }\n // 第一个小数位更小,是否需要借位\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\n } else {\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === '0') {\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\n } else {\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\n }\n integerNumber = largeIntegerNumberSubtract(integerNumber, '1');\n }\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join('.') : integerNumber;\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\n}\n\n/**\n * -0.6 - 0.8 => -(0.6 + 0.8)\n * -0.6 - (-0.8) => 0.8 - 0.6\n * 0.6 - (-0.8) => 0.6 + 0.8\n * 0.6 - 0.8 => 0.6 - 0.8\n */\nexport function largeNumberSubtract(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n const r = largePositiveNumberAdd(num1.slice(1), num2);\n return `-${r}`;\n }\n if (isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberAdd(num1, num2.slice(1));\n }\n return largePositiveNumberSubtract(num1, num2);\n}\n\n/**\n * -0.6 + 0.8 => 0.8 - 0.6\n * -0.6 + (-0.8) => -(0.6 + 0.8)\n * 0.6 + (-0.8) => 0.6 - 0.8\n * 0.6 + 0.8 => 0.6 + 0.8\n */\nexport function largeNumberAdd(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n return largePositiveNumberSubtract(num2, num1.slice(1));\n }\n if (isFirstNegative && isSecondNegative) {\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\n return `-${r}`;\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num1, num2.slice(1));\n }\n return largePositiveNumberAdd(num1, num2);\n}\n\n/**\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\n *\n * @param {number} num - 要格式化的数字。\n * @param {number} places - 小数点后的位数。\n * @param {boolean} rounding - 是否进行四舍五入。\n * @returns {string} 格式化后的数字字符串。\n */\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\n // 开启四舍五入 直接用 toFixed\n if (enableRound) {\n return num.toFixed(places);\n }\n\n const [integer, decimal] = num.toString().split('.');\n // 保留 0 位小数\n if (places === 0) {\n return integer;\n }\n // 补足小数位数\n if (decimal) {\n let decimalNumber = decimal.slice(0, places);\n if (decimal.length < places) {\n decimalNumber += fillZero(places - decimal.length);\n }\n return [integer, decimalNumber].join('.');\n }\n\n return [integer, fillZero(places)].join('.');\n}\n\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\n if (isObject(decimalPlaces)) {\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\n }\n return formatDecimal(num, decimalPlaces, true);\n}\n\n/**\n * 大数保留 N 位小数(没有精度问题)\n * @param {String} number 大数(只能使用字符串表示)\n * @param {Number} decimalPlaces 保留的小数位数\n * @param {Boolean} largeNumber 是否为大数\n */\nexport function largeNumberToFixed(\n number: string | number,\n decimalPlaces: InputNumberDecimalPlaces = 0,\n largeNumber: boolean = true,\n): string {\n if (Number.isNaN(Number(number))) return '';\n if (!largeNumber) {\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\n }\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\n const enableRound = isObject(decimalPlaces) ? (decimalPlaces.enableRound ?? true) : true;\n if (!isString(number)) return String(number);\n // eslint-disable-next-line prefer-const\n let [num1, num2] = number.split('.');\n // 如果不存在小数点,则补足位数\n if (!num2) {\n return (places > 0 && enableRound) ? [number, (fillZero(places))].join('.') : number;\n }\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\n if (places === 0) {\n return (enableRound && Number(num2[0]) >= 5) ? largePositiveNumberAdd(num1, '1') : num1;\n }\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\n let decimalNumber = num2.slice(0, places);\n if (num2.length < places) {\n decimalNumber += (fillZero(places - num2.length));\n } else if (enableRound) {\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\n const leadNineNum = decimalNumber.match(/^9+/);\n // 决定是否需要四舍五入\n const needAdded = Number(num2[places]) >= 5;\n\n // 四舍五入后的结果\n decimalNumber = needAdded\n ? largePositiveNumberAdd(decimalNumber, '1')\n : decimalNumber;\n\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\n if (\n leadZeroNum\n && needAdded\n && leadZeroNum + decimalNumber.length >= places\n ) {\n decimalNumber = `${fillZero(\n places - decimalNumber.length\n )}${decimalNumber}`;\n }\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\n if (leadNineNum && decimalNumber.length > places) {\n num1 = (Number(num1) + 1).toString();\n decimalNumber = fillZero(places);\n }\n }\n return [num1, decimalNumber].join('.');\n}\n","import { isUndefined, isString, isNumber } from 'lodash-es';\n/** 普通数相关方法 */\nimport {\n compareNumber,\n formatENumber,\n largeNumberToFixed,\n isInputNumber,\n largeNumberAdd,\n largeNumberSubtract,\n} from './large-number';\nimport log from '../log';\nimport type { InputNumberDecimalPlaces } from './large-number';\n\nexport * from './large-number';\n\nexport type NumberType = number | string;\n\n// 小于最大值,才允许继续添加\nexport function canAddNumber(\n num: NumberType,\n max: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, max, largeNumber) < 0;\n }\n return num < max;\n}\n\n// 大于最小值,才允许继续减少\nexport function canReduceNumber(\n num: NumberType,\n min: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, min, largeNumber) > 0;\n }\n return num > min;\n}\n\n/**\n * 将数字控制在 max 和 min 之间\n */\nexport function putInRangeNumber(\n val: NumberType,\n params: {\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n }\n) {\n if (val === '') return undefined;\n const { max, min, lastValue, largeNumber } = params;\n if (!isInputNumber(val)) return lastValue;\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\n if (compareNumber(max, val, largeNumber) < 0) return max;\n if (compareNumber(min, val, largeNumber) > 0) return min;\n return val;\n }\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\n}\n\n/**\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveAdd(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n // 整数不存在精度问题,直接返回\n if (!r1 && !r2) return num1 + num2;\n let newNumber1 = num1;\n let newNumber2 = num2;\n const diff = Math.abs(r1 - r2);\n const digit = 10 ** Math.max(r1, r2);\n if (diff > 0) {\n const cm = 10 ** diff;\n if (r1 > r2) {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', '')) * cm;\n } else {\n newNumber1 = Number(num1.toString().replace('.', '')) * cm;\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n } else {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n return (newNumber1 + newNumber2) / digit;\n}\n\n/**\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveSubtract(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n const digit = 10 ** Math.max(r1, r2);\n const n = r1 >= r2 ? r1 : r2;\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\n}\n\n/**\n * 支持正数、负数、小数等全部数字的加法\n * -0.766 + 1 => 1 - 0.766\n * -1 + (-0.766) => - (1 + 0.766)\n * 1 + (-0.766) => 1 - 0.766\n * 1 + 0.766 => 1 + 0.766\n */\nexport function add(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\n return positiveAdd(num1, num2);\n}\n\n/**\n * 支持正数、负数、小数等全部数字的减法\n * -0.766 - 1 => - (1 + 0.766)\n * -1 - (-0.766) => 0.766 - 1\n * 1 - (-0.766) => 1 + 0.766\n * 1 - 0.766 => 1 - 0.766\n */\nexport function subtract(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\n return positiveSubtract(num1, num2);\n}\n\nexport function getStepValue(p: {\n op: 'add' | 'reduce';\n step: NumberType;\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n}) {\n const { op, step, lastValue, max, min, largeNumber } = p;\n if (Number(step) <= 0) {\n log.error('InputNumber', 'step must be larger than 0.');\n return lastValue;\n }\n const tStep = isNumber(step) ? String(step) : step;\n let newVal;\n if (op === 'add') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberAdd(String(lastValue), String(tStep));\n } else {\n newVal = add(Number(lastValue || 0), Number(step));\n }\n } else if (op === 'reduce') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\n } else {\n newVal = subtract(Number(lastValue || 0), Number(step));\n }\n }\n if (isUndefined(lastValue)) {\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\n }\n return largeNumber ? newVal : Number(newVal);\n}\n\nexport type InputNumberErrorType =\n | 'exceed-maximum'\n | 'below-minimum'\n | undefined;\n\n/**\n * 最大值和最小值校验\n */\nexport function getMaxOrMinValidateResult(p: {\n largeNumber: boolean;\n value: NumberType;\n max: NumberType;\n min: NumberType;\n}): InputNumberErrorType {\n const { largeNumber, value, max, min } = p;\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\n if (largeNumber && isNumber(value)) {\n log.warn('InputNumber', 'largeNumber value must be a string.');\n }\n let error: InputNumberErrorType;\n if (compareNumber(value, max, largeNumber) > 0) {\n error = 'exceed-maximum';\n } else if (compareNumber(value, min, largeNumber) < 0) {\n error = 'below-minimum';\n } else {\n error = undefined;\n }\n return error;\n}\n\nexport const specialCode = ['-', '.', 'e', 'E', '+'];\n\n/**\n * 是否允许输入当前字符,输入字符校验\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\n * 2e3 表示 2 乘 10 的 3 次方\n */\nexport function canInputNumber(number: string | undefined | null, largeNumber?: boolean) {\n if (['', null, undefined].includes(number)) return true;\n // 数字最前方不允许出现连续的两个 0\n if (number.slice(0, 2) === '00') return false;\n // 不能出现空格\n if (number.match(/\\s/g)) return false;\n // 只能出现一个点(.)\n if (number.match(/\\./g)?.length > 1) return false;\n // 只能出现一个e(e)\n if (number.match(/e/g)?.length > 1) return false;\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\n const tmpNumber = number.slice(1);\n const tmpMatched = tmpNumber.match(/(\\+|-)/g);\n if (tmpMatched && (!/e(\\+|-)/i.test(tmpNumber) || tmpMatched.length > 1)) return false;\n // 允许输入数字字符\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\n if (/e/i.test(number) && (!/\\de/i.test(number) || /e\\./.test(number))) return false;\n return true;\n}\n\n/**\n * 是否允许设置组件新值,触发 onChange 事件\n */\nexport function canSetValue(number: string, lastNumber: number) {\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\n}\n\n/**\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\n * 2. 处理小数点 decimalPlaces\n * 3. 格式化大数字 formatENumber\n */\nexport function formatUnCompleteNumber(\n number: string,\n extra: {\n decimalPlaces?: InputNumberDecimalPlaces;\n largeNumber?: boolean;\n isToFixed?: boolean;\n } = {}\n): number | string {\n if (['', null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\n const { decimalPlaces, largeNumber, isToFixed } = extra;\n let newNumber = number.replace(/[.|+|\\-|e]$/, '');\n if (largeNumber) {\n newNumber = formatENumber(newNumber);\n }\n if (decimalPlaces !== undefined) {\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\n }\n if (largeNumber) return newNumber;\n return isToFixed ? newNumber : parseFloat(newNumber);\n}\n\n/**\n * 对千分位进行处理 111,111,222 -> 111111222\n */\nexport function formatThousandths(number: string) {\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, '');\n return number;\n}\n","import { computed, ref, toRefs, watch } from 'vue';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport useVModel from '../../hooks/useVModel';\nimport { InputNumberValue, TdInputNumberProps } from '../type';\nimport { useReadonly } from '../../hooks/useReadonly';\n\n// 计算逻辑,统一到 common 中,方便各框架复用(如超过 16 位的大数处理)\nimport {\n canAddNumber,\n canInputNumber,\n canReduceNumber,\n getMaxOrMinValidateResult,\n getStepValue,\n formatThousandths,\n canSetValue,\n formatUnCompleteNumber,\n largeNumberToFixed,\n} from '@tdesign/common-js/input-number/number';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, sizeClassNames, statusClassNames } = useCommonClassName();\n const { value, modelValue, max, min } = toRefs(props);\n // 统一处理受控、非受控、语法糖 v-model 等\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const inputRef = ref();\n const userInput = ref('');\n\n const tDisabled = useDisabled();\n\n const isReadonly = useReadonly();\n\n const isError = ref<'exceed-maximum' | 'below-minimum'>();\n\n const disabledReduce = computed(\n () => tDisabled.value || !canReduceNumber(tValue.value, props.min, props.largeNumber),\n );\n\n const disabledAdd = computed(() => tDisabled.value || !canAddNumber(tValue.value, props.max, props.largeNumber));\n\n const wrapClasses = computed(() => [\n `${classPrefix.value}-input-number`,\n sizeClassNames[props.size],\n {\n [statusClassNames.disabled]: tDisabled.value,\n [`${classPrefix.value}-is-controls-right`]: props.theme === 'column',\n [`${classPrefix.value}-input-number--${props.theme}`]: props.theme,\n [`${classPrefix.value}-input-number--auto-width`]: props.autoWidth,\n },\n ]);\n\n const reduceClasses = computed(() => [\n `${classPrefix.value}-input-number__decrease`,\n { [statusClassNames.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [statusClassNames.disabled]: disabledAdd.value },\n ]);\n\n const getUserInput = (value: InputNumberValue) => {\n if (!value && value !== 0) return '';\n let inputStr = value || value === 0 ? String(value) : '';\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n const num = formatUnCompleteNumber(inputStr, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n });\n inputStr = num || num === 0 ? String(num) : '';\n if (props.format) {\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\n }\n }\n return inputStr;\n };\n\n watch(\n tValue,\n (val) => {\n const { largeNumber, decimalPlaces } = props;\n const inputValue = [undefined, null].includes(val) ? '' : String(val);\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\n if (!largeNumber && !Number.isNaN(userInput.value)) {\n if (parseFloat(userInput.value) !== val) {\n userInput.value = getUserInput(inputValue);\n }\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\n if (\n decimalPlaces !== undefined &&\n ![undefined, null].includes(val) &&\n Number(fixedNumber) !== Number(tValue.value)\n ) {\n setTValue(fixedNumber, { type: 'props', e: undefined });\n }\n }\n if (largeNumber) {\n userInput.value = getUserInput(inputValue);\n\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== val) {\n let completeValue = inputValue;\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n // isToFixed为true 只可能是string\n completeValue = formatUnCompleteNumber(completeValue, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n }) as string;\n }\n setTValue(completeValue, { type: 'props', e: undefined });\n }\n }\n },\n { immediate: true },\n );\n\n watch(\n [tValue, max, min],\n () => {\n // @ts-ignore 没有输入完成,则无需校验\n if ([undefined, '', null].includes(tValue.value)) return;\n const { max, min, largeNumber } = props;\n const error = getMaxOrMinValidateResult({\n value: tValue.value,\n largeNumber,\n max,\n min,\n });\n isError.value = error;\n props.onValidate?.({ error });\n },\n { immediate: true },\n );\n\n const handleStepValue = (op: 'add' | 'reduce') => {\n const newValue = getStepValue({\n op,\n step: props.step,\n max: props.max,\n min: props.min,\n lastValue: tValue.value,\n largeNumber: props.largeNumber,\n });\n const { largeNumber, max, min } = props;\n const overLimit = getMaxOrMinValidateResult({\n value: newValue,\n largeNumber,\n max,\n min,\n });\n return {\n overLimit,\n newValue,\n };\n };\n\n const handleReduce = (e: KeyboardEvent | MouseEvent) => {\n if (disabledReduce.value || isReadonly.value) return;\n const r = handleStepValue('reduce');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'reduce', e });\n };\n\n const handleAdd = (e: KeyboardEvent | MouseEvent) => {\n if (disabledAdd.value || isReadonly.value) return;\n const r = handleStepValue('add');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'add', e });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (inputValue, { e }) => {\n // 千分位处理\n const val = formatThousandths(inputValue);\n if (!canInputNumber(val, props.largeNumber)) return;\n\n userInput.value = val;\n\n if (props.largeNumber) {\n setTValue(val, { type: 'input', e });\n return;\n }\n\n if (canSetValue(String(val), Number(tValue.value))) {\n const newVal = val === '' ? undefined : Number(val);\n setTValue(newVal, { type: 'input', e });\n }\n };\n\n const handleBlur = (value: string, ctx: { e: FocusEvent }) => {\n const { largeNumber, max, min, decimalPlaces } = props;\n if (!props.allowInputOverLimit && tValue.value !== undefined) {\n const r = getMaxOrMinValidateResult({ value: tValue.value, largeNumber, max, min });\n if (r === 'below-minimum') {\n setTValue(min, { type: 'blur', e: ctx.e });\n props.onBlur?.(min, ctx);\n return;\n }\n if (r === 'exceed-maximum') {\n setTValue(max, { type: 'blur', e: ctx.e });\n props.onBlur?.(max, ctx);\n return;\n }\n }\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces,\n largeNumber,\n });\n userInput.value = getUserInput(newValue);\n\n if (newValue !== tValue.value) {\n setTValue(newValue, { type: 'blur', e: ctx.e });\n }\n props.onBlur?.(newValue, ctx);\n };\n\n const handleFocus = (value: string, ctx: { e: FocusEvent }) => {\n userInput.value = tValue.value || tValue.value === 0 ? String(tValue.value) : '';\n props.onFocus?.(value, ctx);\n };\n\n const handleKeydown = (value: string, ctx: { e: KeyboardEvent }) => {\n if (tDisabled.value) return;\n const { e } = ctx;\n const keyEvent = {\n ArrowUp: handleAdd,\n ArrowDown: handleReduce,\n };\n const code = (e.code || e.key) as keyof typeof keyEvent;\n if (keyEvent[code] !== undefined) {\n keyEvent[code](e);\n }\n props.onKeydown?.(value, ctx);\n };\n\n const handleKeyup = (value: string, ctx: { e: KeyboardEvent }) => {\n props.onKeyup?.(value, ctx);\n };\n\n const handleKeypress = (value: string, ctx: { e: KeyboardEvent }) => {\n props.onKeypress?.(value, ctx);\n };\n\n const handleEnter = (value: string, ctx: { e: KeyboardEvent }) => {\n userInput.value = getUserInput(value);\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n });\n if (newValue !== value && String(newValue) !== value) {\n setTValue(newValue, { type: 'enter', e: ctx.e });\n }\n props.onEnter?.(newValue, ctx);\n };\n\n const focus = () => {\n if (tDisabled.value || isReadonly.value) return;\n (inputRef.value as any).focus();\n };\n\n const blur = () => {\n (inputRef.value as any).blur();\n };\n\n const listeners = {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeydown: handleKeydown,\n onKeyup: handleKeyup,\n onKeypress: handleKeypress,\n onEnter: handleEnter,\n onClick: focus,\n };\n\n return {\n classPrefix,\n wrapClasses,\n reduceClasses,\n addClasses,\n tDisabled,\n isError,\n listeners,\n userInput,\n tValue,\n inputRef,\n focus,\n blur,\n handleReduce,\n handleAdd,\n onInnerInputChange,\n isReadonly,\n };\n}\n","import { defineComponent, SetupContext } from 'vue';\nimport {\n AddIcon as TdAddIcon,\n RemoveIcon as TdRemoveIcon,\n ChevronDownIcon as TdChevronDownIcon,\n ChevronUpIcon as TdChevronUpIcon,\n} from 'tdesign-icons-vue-next';\nimport TButton from '../button';\nimport TInput from '../input';\nimport props from './props';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { TdInputNumberProps } from './type';\nimport useInputNumber from './hooks/useInputNumber';\n\nexport default defineComponent({\n name: 'TInputNumber',\n props,\n // 保持纯净(逻辑和节点渲染分开)\n setup(props: TdInputNumberProps, context: SetupContext) {\n const { AddIcon, RemoveIcon, ChevronDownIcon, ChevronUpIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n RemoveIcon: TdRemoveIcon,\n ChevronDownIcon: TdChevronDownIcon,\n ChevronUpIcon: TdChevronUpIcon,\n });\n const p = useInputNumber(props);\n const { inputRef } = p;\n context.expose({ ...p });\n\n return () => {\n const reduceIcon =\n props.theme === 'column' ? : ;\n const addIcon = props.theme === 'column' ? : ;\n const status = p.isError.value ? 'error' : props.status;\n\n return (\n
    \n {props.theme !== 'normal' && (\n reduceIcon}\n />\n )}\n \n {props.theme !== 'normal' && (\n addIcon}\n />\n )}\n
    \n );\n };\n },\n});\n","import _InputNumber from './input-number';\nimport withInstall from '../utils/withInstall';\nimport { TdInputNumberProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputNumberProps = TdInputNumberProps;\n\nexport const InputNumber = withInstall(_InputNumber);\nexport default InputNumber;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入 */\n allowInput: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 `collapsedItems` 自定义。`value` 表示所有标签值,`collapsedSelectedItems` 表示折叠标签值,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 定义字段别名,示例:`{ label: 'text', value: 'id', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否处于加载状态 */\n loading: Boolean,\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否为多选模式,默认为单选 */\n multiple: Boolean,\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: '',\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectInputProps['size'],\n validator(val: TdSelectInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectInputProps['status'],\n validator(val: TdSelectInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 多选场景下,自定义选中标签的内部内容。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 TagInput 组件全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 全部标签值。值为数组表示多个标签,值为非数组表示单个数值 */\n value: {\n type: [String, Number, Boolean, Object, Array, Date] as PropType,\n default: undefined as TdSelectInputProps['value'],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发,`context.inputValue` 表示输入框的值;`context.tagInputValue` 表示标签输入框的值 */\n onBlur: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onTagChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用标签输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 拖拽调整标签顺序 */\n dragSort: Boolean,\n /** 标签超出时的呈现方式,有两种:横向滚动显示 和 换行显示 */\n excessTagsDisplayType: {\n type: String as PropType,\n default: 'break-line' as TdTagInputProps['excessTagsDisplayType'],\n validator(val: TdTagInputProps['excessTagsDisplayType']): boolean {\n if (!val) return true;\n return ['scroll', 'break-line'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTagInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n default: '' as TdTagInputProps['defaultInputValue'],\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 最大允许输入的标签数量 */\n max: {\n type: Number,\n },\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏标签移除按钮和输入框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagInputProps['size'],\n validator(val: TdTagInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n validator(val: TdTagInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 自定义标签的内部内容,每一个标签的当前值。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 Tag 组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n /** 值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTagInputProps['defaultValue'] => [],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 【开发中】拖拽排序时触发 */\n onDragSort: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、回车键触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 移除单个标签时触发 */\n onRemove: Function as PropType,\n};\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签是否可关闭 */\n closable: Boolean,\n /** 自定义标签颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 组件子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 组件子元素,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签中的图标,可自定义图标呈现 */\n icon: {\n type: Function as PropType,\n default: undefined,\n },\n /** 标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80 */\n maxWidth: {\n type: [String, Number] as PropType,\n },\n /** 标签类型,有三种:方形、圆角方形、标记型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdTagProps['shape'],\n validator(val: TdTagProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round', 'mark'].includes(val);\n },\n },\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagProps['size'],\n validator(val: TdTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格,用于描述组件不同的应用场景 */\n theme: {\n type: String as PropType,\n default: 'default' as TdTagProps['theme'],\n validator(val: TdTagProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'primary', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 标签标题,在标签hover时展示,默认为标签内容 */\n title: {\n type: String,\n default: '',\n },\n /** 标签风格变体 */\n variant: {\n type: String as PropType,\n default: 'dark' as TdTagProps['variant'],\n validator(val: TdTagProps['variant']): boolean {\n if (!val) return true;\n return ['dark', 'light', 'outline', 'light-outline'].includes(val);\n },\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发 */\n onClose: Function as PropType,\n};\n","import { computed, defineComponent, getCurrentInstance, h, VNode } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { isString } from 'lodash-es';\nimport tinycolor from 'tinycolor2';\n\nimport props from './props';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","export type PlainObject = { [key: string]: any };\n\nexport type OptionData = {\n label?: string;\n value?: string | number;\n} & PlainObject;\n\nexport type TreeOptionData = {\n children?: Array> | boolean;\n /** option label content */\n label?: any;\n /** option search text */\n text?: string;\n /** option value */\n value?: T;\n} & PlainObject;\n\nexport type SizeEnum = 'small' | 'medium' | 'large';\n\nexport type HorizontalAlignEnum = 'left' | 'center' | 'right';\n\nexport type VerticalAlignEnum = 'top' | 'middle' | 'bottom';\n\nexport type ClassName = { [className: string]: any } | ClassName[] | string;\n\nexport type CSSSelector = string;\n\nexport interface Styles {\n [css: string]: string | number;\n}\n\nexport enum EKeyboardDirection {\n left = 37,\n up = 38,\n right = 39,\n down = 40,\n}\n\nexport const ARROW_DOWN_REG = /^ArrowDown$/i;\nexport const ARROW_UP_REG = /^ArrowUp$/i;\nexport const ARROW_LEFT_REG = /^ArrowLeft$/i;\nexport const ARROW_RIGHT_REG = /^ArrowRight$/i;\nexport const ESCAPE_REG = /^Escape$/i;\nexport const SPACE_REG = /^Space$/i;\nexport const ENTER_REG = /^Enter$/i;\nexport const SHIFT_REG = /^(Shift|ShiftLeft|ShiftRight)$/i;\nexport const CLEAR_REG = /^KeyC$/i;\nexport const ALL_REG = /^(KeyA|KeyL)$/i;\nexport const CHECKED_CODE_REG = /^(Enter|Space)$/i;\n","import { defineComponent, computed, toRefs } from 'vue';\nimport props from './check-tag-props';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useContent } from '../hooks/tnode';\nimport Tag from './tag';\nimport { TdCheckTagProps, TdTagProps } from './type';\nimport { ENTER_REG, SPACE_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'TCheckTag',\n props,\n setup(props: TdCheckTagProps) {\n const componentName = usePrefixClass('tag');\n const { SIZE } = useCommonClassName();\n const renderContent = useContent();\n\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const tagClass = computed(() => {\n return [\n `${componentName.value}`,\n `${componentName.value}--check`,\n SIZE.value[props.size],\n {\n [`${componentName.value}--checked`]: innerChecked.value,\n [`${componentName.value}--disabled`]: props.disabled,\n },\n ];\n });\n\n const checkTagProps = computed(() => {\n const checkedProps: TdTagProps = { theme: 'primary', ...props.checkedProps };\n const uncheckedProps: TdTagProps = { ...props.uncheckedProps };\n return innerChecked.value ? checkedProps : uncheckedProps;\n });\n\n const handleClick = ({ e }: { e: MouseEvent }) => {\n if (!props.disabled) {\n props.onClick?.({ e });\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const keyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n const isCheckedCode = SPACE_REG.test(code) || ENTER_REG.test(code);\n if (isCheckedCode) {\n e.preventDefault();\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return () => {\n const tagContent = renderContent('default', 'content');\n return (\n \n {tagContent}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagGroupProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 是否支持选中多个标签 */\n multiple: Boolean,\n /** 标签选项列表 */\n options: {\n type: Array as PropType,\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 选中标签值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n /** 选中标签值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckTagGroupProps['defaultValue'] => [],\n },\n /** null */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, toRefs, h } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\nimport useVModel from '../hooks/useVModel';\nimport { CheckTagGroupOption, CheckTagGroupValue, TdCheckTagProps } from './type';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TCheckTagGroup',\n props,\n setup(props, context) {\n const { value, modelValue, options } = toRefs(props);\n const componentName = usePrefixClass('check-tag-group');\n const checkTagGroupClasses = computed(() => [componentName.value]);\n\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const onCheckTagChange: TdCheckTagProps['onChange'] = (checked, ctx) => {\n const value = ctx.value;\n if (checked) {\n if (props.multiple) {\n setInnerValue(innerValue.value.concat(value), { e: ctx.e, type: 'check', value });\n } else {\n setInnerValue([value], { e: ctx.e, type: 'check', value });\n }\n } else {\n let newValue: CheckTagGroupValue = [];\n if (props.multiple) {\n newValue = innerValue.value.filter((t) => t !== value);\n }\n setInnerValue(newValue, { e: ctx.e, type: 'uncheck', value });\n }\n };\n\n const getTagContent = (option: CheckTagGroupOption) => {\n if (context.slots.option) return context.slots.option(option);\n if (context.slots.label) return context.slots.label(option);\n if (option.label) {\n return isFunction(option.label) ? option.label(h) : option.label;\n }\n if (option.content && isFunction(option.content)) return option.content(h);\n if (option.default && isFunction(option.default)) return option.default(h);\n return option.value;\n };\n\n return () => {\n return (\n
    \n {(options.value || []).map((option) => (\n \n {getTagContent(option)}\n \n ))}\n
    \n );\n };\n },\n});\n","import _Tag from './tag';\nimport _CheckTag from './check-tag';\nimport _CheckTagGroup from './check-tag-group';\nimport withInstall from '../utils/withInstall';\nimport { TdTagProps, TdCheckTagProps, TdCheckTagGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagProps = TdTagProps;\nexport type CheckTagProps = TdCheckTagProps;\nexport type CheckTagGroupProps = TdCheckTagGroupProps;\n\nexport const Tag = withInstall(_Tag);\nexport const CheckTag = withInstall(_CheckTag);\nexport const CheckTagGroup = withInstall(_CheckTagGroup);\n\nexport default Tag;\n","import { defineComponent, computed, toRefs, ref, nextTick, reactive, watch } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport TInput, { InputProps, StrInputProps, TdInputProps } from '../input';\nimport { TdTagInputProps } from './type';\nimport props from './props';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\nimport useDefault from '../hooks/useDefaultValue';\nimport { isArray } from 'lodash-es';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('tag-input'),\n CLEAR_CLASS: usePrefixClass('tag-input__suffix-clear'),\n BREAK_LINE_CLASS: usePrefixClass('tag-input--break-line'),\n };\n};\n\nexport default defineComponent({\n name: 'TTagInput',\n props,\n setup(props: TdTagInputProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { NAME_CLASS, CLEAR_CLASS, BREAK_LINE_CLASS } = useComponentClassName();\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n const { inputValue, inputProps, borderless, size, tips, status, suffix, autoWidth, onPaste } = toRefs(props);\n const [tInputValue, setTInputValue] = useDefault(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n [`${classPrefix.value}-tag-input--drag-sort`]: props.dragSort && !isReadonly.value && !isDisabled.value,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { computed, ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport useVModel from '../../hooks/useVModel';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [_tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const tagValue = computed(() => _tagValue.value || []);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value.concat(String(valueStr));\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList.map((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== tagValue.value.length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport withInstall from '../utils/withInstall';\nimport { TdTagInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagInputProps = TdTagInputProps;\n\nexport const TagInput = withInstall(_TagInput);\n\nexport default TagInput;\n","import { SetupContext, computed, ref, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { TdSelectInputProps, SelectInputChangeContext, SelectInputKeys } from '../type';\nimport { SelectInputCommonProperties } from '../types';\nimport TagInput, { TagInputValue, TagInputProps } from '../../tag-input';\nimport Loading from '../../loading';\nimport useDefault from '../../hooks/useDefaultValue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\nimport { PopupInstanceFunctions } from '../../popup';\n\nexport interface RenderSelectMultipleParams {\n commonInputProps: SelectInputCommonProperties;\n onInnerClear: (context: { e: MouseEvent }) => void;\n popupVisible: boolean;\n allowInput: boolean;\n}\n\nconst DEFAULT_KEYS = {\n label: 'label',\n key: 'key',\n children: 'children',\n};\n\nexport function useMultiple(props: TdSelectInputProps, context: SetupContext, popupRef: Ref) {\n const { inputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const tagInputRef = ref();\n const isMultipleFocus = ref(props.autofocus);\n const [tInputValue, setTInputValue] = useDefault(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const iKeys = computed(() => ({ ...DEFAULT_KEYS, ...props.keys }));\n const tags = computed(() => {\n if (!(props.value instanceof Array)) {\n // TODO: replace isObject as isPlainObject\n return isObject(props.value) ? [(props.value as Record)[iKeys.value.label]] : [props.value];\n }\n return props.value.map((item) => (isObject(item) ? (item as Record)[iKeys.value.label] : item));\n });\n\n const tPlaceholder = computed(() => (!tags.value || !tags.value.length ? props.placeholder : ''));\n\n const onTagInputChange = (val: TagInputValue, context: SelectInputChangeContext) => {\n // 避免触发浮层的显示或隐藏\n if (context.trigger === 'tag-remove') {\n context.e?.stopPropagation();\n }\n props.onTagChange?.(val, context);\n };\n\n const onInputChange: TagInputProps['onInputChange'] = (val, ctx) => {\n if (ctx.trigger === 'enter' || ctx.trigger === 'blur') return;\n setTInputValue(val, { trigger: ctx.trigger, e: ctx.e });\n };\n\n /**\n * 筛选器统一特性:\n * 1. 筛选器按下回车时不清空输入框;\n * 2. SelectInput 的失焦不等于 TagInput。如点击下拉面板时,TagInput 失去焦点,但 SelectInput 依旧保持聚焦,允许继续选择。\n */\n const onBlur: TagInputProps['onBlur'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (overlayState?.hover) return;\n isMultipleFocus.value = false;\n props.onBlur?.(props.value, { ...ctx, tagInputValue: val });\n };\n\n const onFocus: TagInputProps['onFocus'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isMultipleFocus.value || overlayState?.hover) return;\n isMultipleFocus.value = true;\n const params = { ...ctx, tagInputValue: val };\n props.onFocus?.(props.value, params);\n };\n\n const onEnter: TagInputProps['onEnter'] = (val, ctx) => {\n const params = { ...ctx, tagInputValue: val };\n props.onEnter?.(props.value, params);\n };\n\n const renderSelectMultiple = (p: RenderSelectMultipleParams) => {\n const tagInputProps = {\n ...p.commonInputProps,\n tagProps: props.tagProps,\n label: props.label,\n autoWidth: props.autoWidth,\n readonly: isReadonly.value,\n placeholder: tPlaceholder.value,\n minCollapsedNum: props.minCollapsedNum,\n collapsedItems: props.collapsedItems,\n tag: props.tag,\n value: tags.value,\n valueDisplay: props.valueDisplay,\n inputValue: p.popupVisible && p.allowInput ? tInputValue.value : '',\n inputProps: {\n readonly: !props.allowInput || isReadonly.value,\n inputClass: {\n [`${classPrefix.value}-input--focused`]: p.popupVisible,\n },\n ...props.inputProps,\n },\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n ...props.tagInputProps,\n };\n\n const { tips: _tips, ...slots } = context.slots;\n return (\n \n );\n };\n\n return {\n tags,\n tPlaceholder,\n tagInputRef,\n isMultipleFocus,\n multipleInputValue: tInputValue,\n renderSelectMultiple,\n };\n}\n","import { ref, toRefs, computed, CSSProperties } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport type overlayInnerStyleProps = Pick<\n TdSelectInputProps,\n 'popupProps' | 'autoWidth' | 'readonly' | 'onPopupVisibleChange' | 'disabled' | 'allowInput' | 'popupVisible'\n>;\n\n// 单位:px\nconst MAX_POPUP_WIDTH = 1000;\n// 避免因滚动条出现文本省略,预留宽度 8\nconst RESERVE_WIDTH = 0;\n\nexport function useOverlayInnerStyle(props: overlayInnerStyleProps) {\n const { popupProps, autoWidth } = toRefs(props);\n const innerPopupVisible = ref(false);\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const matchWidthFunc = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n const SCROLLBAR_WIDTH = popupElement.scrollHeight > popupElement.offsetHeight ? RESERVE_WIDTH : 0;\n const width =\n popupElement.offsetWidth + SCROLLBAR_WIDTH >= triggerElement.offsetWidth\n ? popupElement.offsetWidth\n : triggerElement.offsetWidth;\n let otherOverlayInnerStyle: CSSProperties = {};\n if (\n popupProps.value &&\n typeof popupProps.value.overlayInnerStyle === 'object' &&\n !popupProps.value.overlayInnerStyle.width\n ) {\n otherOverlayInnerStyle = popupProps.value.overlayInnerStyle;\n }\n return {\n width: `${Math.min(width, MAX_POPUP_WIDTH)}px`,\n ...otherOverlayInnerStyle,\n };\n };\n\n const onInnerPopupVisibleChange = (visible: boolean, ctx: PopupVisibleChangeContext) => {\n if (disable.value || isReadonly.value) return;\n // 如果点击触发元素(输入框)且为可输入状态,则继续显示下拉框\n const newVisible = ctx.trigger === 'trigger-element-click' && props.allowInput ? true : visible;\n // 重复点击触发元素时,下拉框展示状态不变,不重复触发事件\n if (props.popupVisible !== newVisible) {\n innerPopupVisible.value = newVisible;\n props.onPopupVisibleChange?.(newVisible, ctx);\n }\n };\n\n const getAutoWidthPopupStyleWidth = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n return {\n width: `${Math.max(triggerElement.offsetWidth, popupElement.offsetWidth)}px`,\n ...popupProps.value?.overlayInnerStyle,\n };\n };\n\n const tOverlayInnerStyle = computed(() => {\n let result: TdPopupProps['overlayInnerStyle'] = {};\n const overlayInnerStyle = popupProps.value?.overlayInnerStyle || {};\n if (isFunction(overlayInnerStyle) || (isObject(overlayInnerStyle) && overlayInnerStyle.width)) {\n result = overlayInnerStyle;\n } else {\n if (autoWidth.value) {\n result = getAutoWidthPopupStyleWidth;\n } else {\n result = matchWidthFunc;\n }\n }\n return result;\n });\n\n return {\n tOverlayInnerStyle,\n innerPopupVisible,\n onInnerPopupVisibleChange,\n };\n}\n","import { SetupContext, ref, computed, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\nimport { PopupInstanceFunctions } from '../../popup';\nimport { TdSelectInputProps } from '../type';\nimport { SelectInputCommonProperties } from '../types';\n\n// single 和 multiple 共有特性\nconst COMMON_PROPERTIES = [\n 'status',\n 'clearable',\n 'disabled',\n 'label',\n 'placeholder',\n 'readonly',\n 'prefixIcon',\n 'suffix',\n 'suffixIcon',\n 'onPaste',\n 'onMouseenter',\n 'onMouseleave',\n 'size',\n 'autofocus',\n];\n\nconst DEFAULT_KEYS = {\n label: 'label',\n value: 'value',\n children: 'children',\n};\n\nexport interface SelectInputValueDisplayOptions {\n useInputDisplay: boolean;\n usePlaceholder: boolean;\n}\n\nfunction getInputValue(value: TdSelectInputProps['value'], keys: TdSelectInputProps['keys']) {\n const iKeys = { ...DEFAULT_KEYS, ...keys };\n // TODO: replace isObject as isPlainObject\n return isObject(value) ? (value as Record)[iKeys.label] : value;\n}\n\nexport function useSingle(\n props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions },\n context: SetupContext,\n popupRef: Ref,\n) {\n const { value, keys, inputValue: propsInputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const isSingleFocus = ref(props.autofocus);\n const inputRef = ref();\n const [inputValue, setInputValue] = useDefaultValue(\n propsInputValue,\n props.defaultInputValue ?? '',\n props.onInputChange,\n 'inputValue',\n );\n const renderTNode = useTNodeJSX();\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const commonInputProps = computed(() => ({\n ...pick(props, COMMON_PROPERTIES),\n disabled: disable.value,\n readonly: isReadonly.value,\n }));\n\n const onInnerClear = (context: { e: MouseEvent }) => {\n context?.e?.stopPropagation();\n props.onClear?.(context);\n setInputValue('', { trigger: 'clear' });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (value, context) => {\n if (props.allowInput) {\n setInputValue(value, { ...context, trigger: context.trigger || 'input' });\n }\n };\n\n const renderSelectSingle = (popupVisible: boolean) => {\n const singleValueDisplay = renderTNode('valueDisplay');\n const displayedValue = popupVisible && props.allowInput ? inputValue.value : getInputValue(value.value, keys.value);\n const prefixContent = renderPrefixContent(singleValueDisplay, popupVisible);\n const inputProps = {\n ...commonInputProps.value,\n value: renderInputDisplay(singleValueDisplay, displayedValue, popupVisible),\n label: prefixContent.length ? () => prefixContent : undefined,\n autoWidth: props.autoWidth,\n readonly: !props.allowInput || isReadonly.value,\n placeholder: renderPlaceholder(singleValueDisplay),\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n showClearIconOnEmpty: Boolean(\n props.clearable && (inputValue.value || displayedValue) && !disable.value && !isReadonly.value,\n ),\n ...props.inputProps,\n };\n\n // eslint-disable-next-line\n const { tips, ...slots } = context.slots;\n\n const inputClassProps = popupVisible\n ? [`${classPrefix.value}-input--focused`, `${classPrefix.value}-is-focused`, inputProps?.inputClass]\n : inputProps?.inputClass;\n\n const onEnter: StrInputProps['onEnter'] = (val, context) => {\n props.onEnter?.(value.value, { ...context, inputValue: val });\n };\n\n const onFocus: StrInputProps['onFocus'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isSingleFocus.value || overlayState?.hover) return;\n isSingleFocus.value = true;\n props.onFocus?.(value.value, { ...context, inputValue: val });\n };\n\n const onBlur: StrInputProps['onBlur'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n isSingleFocus.value = false;\n if (overlayState?.hover) return;\n props.onBlur?.(value.value, { ...context, inputValue: val });\n };\n\n return (\n \n );\n };\n\n const renderPrefixContent = (singleValueDisplay: any, popupVisible: boolean) => {\n // 需要隐藏valueDisplay的两个情况\n // 1 用户传入usePlaceholder希望使用自带占位符实现,则应在未选择值时隐藏valueDisplay,只展示占位符\n // 2 用户传入useInputDisplay希望使用自带输入回显实现,激活选择器浮层时只展示input值(待讨论是否修改为激活后真的输入字符再隐藏valueDisplay,此处实现效果与不使用valueDisplay只使用filterable时不同)\n const label = renderTNode('label');\n\n if (!label && !singleValueDisplay) {\n return [];\n }\n\n if (singleValueDisplay) {\n if (\n (props.valueDisplayOptions?.usePlaceholder && !value.value) ||\n (props.valueDisplayOptions?.useInputDisplay && popupVisible)\n ) {\n return [label];\n }\n }\n return [label, singleValueDisplay];\n };\n\n const renderInputDisplay = (singleValueDisplay: any, displayedValue: any, popupVisible: boolean) => {\n // 使用valueDisplay插槽时,如用户传入useInputDisplay使用自带输入回显实现,未传则认为用户自行实现。\n if (singleValueDisplay)\n if (\n !props.valueDisplayOptions?.useInputDisplay ||\n (props.valueDisplayOptions?.useInputDisplay && !popupVisible)\n ) {\n return undefined;\n }\n return displayedValue;\n };\n\n const renderPlaceholder = (singleValueDisplay: any) => {\n // 使用valueDisplay插槽时,如用户传入usePlaceholder使用自带占位符实现,未传则认为用户自行实现。\n // 如果当前存在value(对应直接使用组件和select组件调用时),不显示占位符。\n if (singleValueDisplay) {\n if (!props.valueDisplayOptions?.usePlaceholder || (props.valueDisplayOptions?.usePlaceholder && value.value)) {\n return '';\n }\n }\n return props.placeholder;\n };\n\n return {\n inputRef,\n isSingleFocus,\n commonInputProps,\n singleInputValue: inputValue,\n onInnerClear,\n renderSelectSingle,\n };\n}\n","import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, ref, SetupContext, toRefs, watch } from 'vue';\nimport Popup, { PopupInstanceFunctions, PopupProps, PopupVisibleChangeContext } from '../popup';\nimport props from './props';\nimport { TdSelectInputProps } from './type';\nimport { useMultiple, useSingle, useOverlayInnerStyle } from './hooks';\nimport type { SelectInputValueDisplayOptions } from './hooks';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('select-input'),\n BASE_CLASS_BORDERLESS: usePrefixClass('select-input--borderless'),\n BASE_CLASS_MULTIPLE: usePrefixClass('select-input--multiple'),\n BASE_CLASS_POPUP_VISIBLE: usePrefixClass('select-input--popup-visible'),\n BASE_CLASS_EMPTY: usePrefixClass('select-input--empty'),\n };\n};\n\nexport default defineComponent({\n name: 'TSelectInput',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n * 自定义值呈现的选项\n * useInputDisplay 表示在使用时仍然使用组件自带的输入回显实现,\n * usePlaceholder 表示在使用时仍然使用自带的占位符实现\n * */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n\n setup(props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, context: SetupContext) {\n const { NAME_CLASS, BASE_CLASS_BORDERLESS, BASE_CLASS_MULTIPLE, BASE_CLASS_POPUP_VISIBLE, BASE_CLASS_EMPTY } =\n useComponentClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const selectInputRef = ref();\n const popupRef = ref();\n const { multiple, value, popupVisible, borderless, popupProps, panel, allowInput, status } = toRefs(props);\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const { isSingleFocus, commonInputProps, onInnerClear, renderSelectSingle } = useSingle(props, context, popupRef);\n\n const { isMultipleFocus, tagInputRef, renderSelectMultiple } = useMultiple(props, context, popupRef);\n\n const isFocus = computed(() => (props.multiple ? isMultipleFocus.value : isSingleFocus.value));\n\n const classes = computed(() => [\n `${NAME_CLASS.value}`,\n {\n [BASE_CLASS_MULTIPLE.value]: multiple.value,\n [BASE_CLASS_BORDERLESS.value]: borderless.value,\n [BASE_CLASS_POPUP_VISIBLE.value]: popupVisible.value ?? innerPopupVisible.value,\n [BASE_CLASS_EMPTY.value]: value.value instanceof Array ? !value.value.length : !value.value,\n },\n ]);\n\n const addKeyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n if (/(ArrowDown|ArrowUp)/.test(code) && !popupVisible.value) {\n const ctx: PopupVisibleChangeContext = { ...context, trigger: 'trigger-element-focus' };\n props.onPopupVisibleChange?.(true, ctx);\n }\n };\n\n watch([isFocus], ([isFocus]) => {\n if (popupVisible.value) return;\n if (isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n } else {\n selectInputRef.value.removeEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onMounted(() => {\n if (!popupVisible.value && isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onBeforeUnmount(() => {\n selectInputRef.value?.removeEventListener('keydown', addKeyboardEventListener);\n });\n\n const onOverlayClick: PopupProps['onOverlayClick'] = (ctx) => {\n ctx.e?.stopPropagation();\n // do not set focus if target can be focused\n if ((ctx.e.target as HTMLElement).tabIndex >= 0) return;\n if (props.multiple) tagInputRef.value?.focus?.();\n };\n\n context.expose({\n popupRef,\n allowInput,\n });\n\n return () => {\n // 浮层显示的受控与非受控\n const visibleProps = { visible: popupVisible.value ?? innerPopupVisible.value };\n\n const mainContent = (\n \n {multiple.value\n ? renderSelectMultiple({\n commonInputProps: commonInputProps.value,\n onInnerClear: onInnerClear,\n popupVisible: visibleProps.visible,\n allowInput: allowInput.value,\n })\n : renderSelectSingle(visibleProps.visible)}\n \n );\n\n const tipsNode = renderTNodeJSX('tips');\n\n const tipsClasses = [\n `${classPrefix.value}-input__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${status.value}`,\n ];\n\n return (\n
    \n {mainContent}\n {tipsNode &&
    {tipsNode}
    }\n
    \n );\n };\n },\n});\n","import _SelectInput from './select-input';\nimport withInstall from '../utils/withInstall';\nimport { TdSelectInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectInputProps = TdSelectInputProps;\n\nexport const SelectInput = withInstall(_SelectInput);\n\nexport default SelectInput;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdOptionProps } from '../select/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前选项是否为全选,全选可以在顶部,也可以在底部。点击当前选项会选中禁用态除外的全部选项,即使是分组选择器也会选中全部选项 */\n checkAll: Boolean,\n /** 用于定义复杂的选项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 用于定义复杂的选项内容。同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用该选项 */\n disabled: Boolean,\n /** 选项名称 */\n label: {\n type: String,\n default: '',\n },\n /** 选项标题,在选项过长时hover选项展示 */\n title: {\n type: String,\n default: '',\n },\n /** 选项值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用 */\n checkAll: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 多选框内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用组件。如果父组件存在 CheckboxGroup,默认值由 CheckboxGroup.disabled 控制。优先级:Checkbox.disabled > CheckboxGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否为半选 */\n indeterminate: Boolean,\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否启用懒加载。数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 原生属性 */\n title: {\n type: String,\n default: '',\n },\n /** 多选框的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 值变化时触发 */\n onChange: Function as PropType,\n};\n","import { ComputedRef, InjectionKey } from 'vue';\nimport { TdCheckboxGroupProps, TdCheckboxProps } from '../type';\n\nexport interface CheckboxGroupInjectData {\n name?: string;\n isCheckAll: boolean;\n maxExceeded: boolean;\n disabled: boolean;\n readonly: boolean;\n indeterminate: boolean;\n checkedValues: TdCheckboxGroupProps['value'];\n handleCheckboxChange: (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => void;\n onCheckedChange: (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => void;\n}\n\nexport const CheckboxGroupInjectionKey: InjectionKey> =\n Symbol('CheckboxGroupProvide');\n","export default function observe(\n element: HTMLElement,\n root: HTMLElement,\n callback: Function,\n marginBottom: number,\n): IntersectionObserver {\n if (typeof window === 'undefined') return null;\n if (!window || !window.IntersectionObserver) {\n callback();\n return null;\n }\n let io: IntersectionObserver = null;\n try {\n io = new window.IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n callback();\n io.unobserve(element);\n }\n },\n {\n rootMargin: `0px 0px ${marginBottom}px 0px`,\n root,\n },\n );\n io.observe(element);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n callback();\n }\n return io;\n}\n","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport useVModel from '../hooks/useVModel';\nimport useRipple from '../hooks/useRipple';\nimport { useContent } from '../hooks/tnode';\nimport { useCommonClassName, usePrefixClass } from '../hooks/useConfig';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TCheckbox',\n props: {\n ...props,\n needRipple: Boolean,\n stopLabelTrigger: Boolean,\n index: Number,\n // 传递给 Checkbox 组件额外的数据\n data: Object,\n },\n setup(props) {\n const labelRef = ref();\n if (props.needRipple) {\n useRipple(labelRef);\n }\n const { STATUS } = useCommonClassName();\n\n const { checked, modelValue, lazyLoad } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const checkboxGroupData = inject(CheckboxGroupInjectionKey, undefined);\n\n /**\n * Warn: Do not use computed to set tName,\n * otherwise checkbox group will render all checkbox items on every checked or unchecked.\n */\n const tName = ref();\n watch(\n () => [props.name, checkboxGroupData?.value.name].join('_'),\n () => {\n const name = props.name || checkboxGroupData?.value.name;\n if (name) {\n tName.value = name;\n }\n },\n { immediate: true },\n );\n\n // checked\n const tChecked = ref(false);\n const getChecked = () => {\n const { value, checkAll } = props;\n if (checkAll) return checkboxGroupData?.value.isCheckAll;\n return checkboxGroupData?.value ? checkboxGroupData.value.checkedValues.includes(value) : innerChecked.value;\n };\n watch(\n () => [\n innerChecked.value,\n checkboxGroupData?.value.isCheckAll,\n checkboxGroupData?.value.checkedValues?.join(','),\n ],\n () => {\n tChecked.value = getChecked();\n },\n { immediate: true },\n );\n\n // Checkbox.disabled > CheckboxGroup.disabled > Form.disabled\n const beforeDisabled = computed(() => {\n if (!props.checkAll && !tChecked.value && checkboxGroupData?.value.maxExceeded) {\n return true;\n }\n return null;\n });\n const afterDisabled = computed(() => {\n return checkboxGroupData?.value.disabled;\n });\n const isDisabled = useDisabled({ beforeDisabled, afterDisabled });\n\n // Checkbox.readonly > CheckboxGroup.readonly > Form.readonly\n const afterReadonly = computed(() => {\n return checkboxGroupData?.value.readonly;\n });\n const isReadonly = useReadonly({ afterReadonly });\n\n const tIndeterminate = ref(false);\n watch(\n () => [props.checkAll, props.indeterminate, checkboxGroupData?.value.indeterminate],\n () => {\n tIndeterminate.value = props.checkAll ? checkboxGroupData?.value.indeterminate : props.indeterminate;\n },\n { immediate: true },\n );\n\n /** update labelClasses, do not use computed to get labelClasses */\n const COMPONENT_NAME = usePrefixClass('checkbox');\n const labelClasses = ref({});\n watch(\n [tChecked, isDisabled, tIndeterminate],\n () => {\n labelClasses.value = [\n `${COMPONENT_NAME.value}`,\n {\n [STATUS.value.checked]: tChecked.value,\n [STATUS.value.disabled]: isDisabled.value,\n [STATUS.value.indeterminate]: tIndeterminate.value,\n },\n ];\n },\n { immediate: true },\n );\n\n const handleChange = (e: Event) => {\n if (isReadonly.value) return;\n const checked = !tChecked.value;\n setInnerChecked(checked, { e });\n if (checkboxGroupData?.value.handleCheckboxChange) {\n checkboxGroupData.value.onCheckedChange({ checked, checkAll: props.checkAll, e, option: props });\n }\n };\n\n const renderContent = useContent();\n\n const handleLabelClick = (e: MouseEvent) => {\n // 在tree等组件中使用 阻止label触发checked 与expand冲突\n if (props.stopLabelTrigger) e.preventDefault();\n };\n\n const { showCheckbox } = useCheckboxLazyLoad(labelRef, lazyLoad);\n const { onCheckboxFocus, onCheckboxBlur } = useKeyboardEvent(handleChange);\n\n return () => {\n const titleAttr = isString(props.title) && props.title ? props.title : null;\n return (\n \n {!showCheckbox.value\n ? null\n : [\n ,\n ,\n \n {renderContent('default', 'label')}\n ,\n ]}\n \n );\n };\n },\n});\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useCheckboxLazyLoad(labelRef: Ref, lazyLoad: Ref) {\n const ioObserver = ref();\n const showCheckbox = ref(true);\n const handleLazyLoad = () => {\n if (!lazyLoad.value) return;\n showCheckbox.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showCheckbox.value = true;\n },\n 0,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n watch([lazyLoad, labelRef], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value.unobserve(labelRef.value);\n });\n\n return {\n showCheckbox,\n };\n}\n\nexport default useCheckboxLazyLoad;\n","import { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\nexport function useKeyboardEvent(handleChange: (e: Event) => void) {\n const keyboardEventListener = (e: KeyboardEvent) => {\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n const { disabled } = (e.currentTarget as HTMLElement).querySelector('input');\n !disabled && handleChange(e);\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return {\n onCheckboxFocus,\n onCheckboxBlur,\n };\n}\n\nexport default useKeyboardEvent;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxGroupProps } from '../checkbox/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件。优先级:Form.disabled < CheckboxGroup.disabled < Checkbox.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否启用懒加载。子组件 Checkbox 数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** 支持最多选中的数量 */\n max: {\n type: Number,\n default: undefined,\n },\n /** 统一设置内部复选框 HTML 属性 */\n name: {\n type: String,\n default: '',\n },\n /** 以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckboxGroupProps['defaultValue'] => [],\n },\n /** 值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项 */\n onChange: Function as PropType,\n};\n","import { defineComponent, provide, computed, watchEffect, ref, toRefs } from 'vue';\nimport { intersection } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { isUndefined } from 'lodash-es';\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useChildComponentSlots } from '../hooks/slot';\n\nexport default defineComponent({\n name: 'TCheckboxGroup',\n props,\n setup(props) {\n /** 样式 */\n const COMPONENT_NAME = usePrefixClass('checkbox-group');\n const renderTNodeJSX = useTNodeJSX();\n\n const { isArray } = Array;\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const optionList = ref>([]);\n\n const intersectionLen = computed(() => {\n if (!isArray(innerValue.value)) return 0;\n const values = optionList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n /**\n * 计算是否所有选项都被选中。\n * 此函数不接受参数,但依赖于外部的 `optionList` 和 `innerValue` 变量。\n *\n * @returns {boolean} 如果所有符合条件的选项都被选中,则返回 `true`;否则返回 `false`。\n */\n const isCheckAll = computed(() => {\n // 筛选出非禁用、非只读且不设置为“全选”的选项,并提取其值\n const optionItems = optionList.value\n .filter((item) => !item.disabled && !item.readonly && !item.checkAll)\n .map((t) => t.value);\n\n // 计算当前选中值与筛选后的选项值的交集\n const intersectionValues = intersection(optionItems, innerValue.value);\n\n // 判断交集的长度是否等于所有选项值的长度,以确定是否所有选项都被选中\n return intersectionValues.length === optionItems.length;\n });\n\n const indeterminate = computed(\n () => !isCheckAll.value && intersectionLen.value < optionList.value.length && intersectionLen.value !== 0,\n );\n\n const maxExceeded = computed(() => !isUndefined(props.max) && innerValue.value.length === props.max);\n\n watchEffect(() => {\n if (!props.options) return [];\n optionList.value = props.options.map((item) => {\n return isObject(item) ? item : { label: String(item), value: item };\n });\n });\n\n /**\n * 获取所有复选框的值。\n * 此函数遍历 `optionList` 中的项,忽略被标记为 `checkAll`、`disabled` 或 `readonly` 的项,\n * 并收集非这些状态的项的值到一个 Set 集合中。如果达到最大限制 `maxExceeded`,则停止遍历。\n *\n * @returns {CheckboxGroupValue} 返回一个数组,包含所有非 `checkAll`、`disabled`、`readonly` 状态复选框的值。\n */\n const getAllCheckboxValue = (): CheckboxGroupValue => {\n const val = new Set();\n\n // 遍历选项列表,忽略特定状态的项,并收集有效值\n for (let i = 0, len = optionList.value.length; i < len; i++) {\n const item = optionList.value[i];\n\n // 如果项被标记为检查所有、禁用或只读,则跳过当前循环迭代\n if (item.checkAll) continue;\n if (item.disabled) continue;\n if (item.readonly) continue;\n\n val.add(item.value); // 添加非排除状态项的值到集合中\n\n // 如果已达到最大限制,则终止循环\n if (maxExceeded.value) break;\n }\n\n return [...val]; // 从 Set 集合转换为数组并返回\n };\n\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const value: CheckboxGroupValue = checked ? getAllCheckboxValue() : [];\n setInnerValue(value, {\n e: context.e,\n type: checked ? 'check' : 'uncheck',\n current: undefined,\n option: undefined,\n });\n };\n\n const handleCheckboxChange = (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => {\n const currentValue = data.option.value;\n if (!isArray(innerValue.value)) {\n console.warn(`TDesign CheckboxGroup Warn: \\`value\\` must be an array, instead of ${typeof innerValue.value}`);\n return;\n }\n const val = [...innerValue.value];\n if (data.checked) {\n val.push(currentValue);\n } else {\n const i = val.indexOf(currentValue);\n val.splice(i, 1);\n }\n setInnerValue(val, {\n e: data.e,\n current: data.option.value,\n option: data.option,\n type: data.checked ? 'check' : 'uncheck',\n });\n };\n\n const onCheckedChange = (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => {\n const { checked, checkAll, e } = p;\n if (checkAll) {\n onCheckAllChange(checked, { e });\n } else {\n handleCheckboxChange(p);\n }\n };\n\n const getChildComponentSlots = useChildComponentSlots();\n\n const getOptionListBySlots = () => {\n const nodes = getChildComponentSlots('Checkbox');\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node.props as CheckboxOptionObj;\n if (!option) return;\n // @ts-ignore types only declare checkAll not declare check-all\n if (option['check-all'] === '' || option['check-all'] === true) {\n option.checkAll = true;\n }\n arr.push(option);\n });\n return arr;\n };\n\n provide(\n CheckboxGroupInjectionKey,\n computed(() => ({\n name: props.name,\n isCheckAll: isCheckAll.value,\n checkedValues: innerValue.value || [],\n maxExceeded: maxExceeded.value,\n disabled: props.disabled,\n readonly: props.readonly,\n indeterminate: indeterminate.value,\n handleCheckboxChange,\n onCheckedChange,\n })),\n );\n\n return () => {\n let children = null;\n if (props.options?.length) {\n children = optionList.value?.map((option, index) => (\n
    \n ));\n } else {\n const nodes = renderTNodeJSX('default');\n optionList.value = getOptionListBySlots();\n children = nodes;\n }\n return (\n
    \n {children}\n
    \n );\n };\n },\n});\n","import _Checkbox from './checkbox';\nimport _Group from './group';\nimport withInstall from '../utils/withInstall';\nimport { TdCheckboxProps, TdCheckboxGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CheckboxProps = TdCheckboxProps;\nexport type CheckboxGroupProps = TdCheckboxGroupProps;\n\nexport const Checkbox = withInstall(_Checkbox);\nexport const CheckboxGroup = withInstall(_Group);\n\nexport default Checkbox;\n","import { ComputedRef } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { TdSelectProps, TdOptionProps, SelectValue, SelectOption } from '../type';\n\nexport const getSingleContent = (\n value: TdSelectProps['value'],\n optionsMap: ComputedRef, TdOptionProps>>,\n): string => {\n const option = optionsMap.value.get(value);\n return option?.label || value?.toString();\n};\n\nexport const getMultipleContent = (\n value: SelectValue[],\n optionsMap: ComputedRef, TdOptionProps>>,\n) => {\n const res = [];\n for (const iterator of value) {\n const resLabel = getSingleContent(iterator, optionsMap);\n if (resLabel) {\n res.push(resLabel);\n }\n }\n return res;\n};\n\nexport const getNewMultipleValue = (innerValue: SelectValue[], optionValue: SelectValue) => {\n const value = cloneDeep(innerValue) as SelectValue[];\n const valueIndex = value.indexOf(optionValue);\n if (valueIndex < 0) {\n value.push(optionValue);\n } else {\n value.splice(valueIndex, 1);\n }\n return {\n value,\n isCheck: valueIndex < 0,\n };\n};\n","import { InjectionKey, ComputedRef } from 'vue';\nimport { TdSelectProps, TdOptionProps, SelectValue } from '../type';\n\nexport const selectInjectKey: InjectionKey<\n ComputedRef<{\n hoverIndex: number;\n selectValue: TdSelectProps['value'];\n size: TdSelectProps['size'];\n max: TdSelectProps['max'];\n reserveKeyword: TdSelectProps['reserveKeyword'];\n multiple: TdSelectProps['multiple'];\n handleValueChange: TdSelectProps['onChange'];\n handleCreate: TdSelectProps['onCreate'];\n handlerInputChange: TdSelectProps['onInputChange'];\n handlePopupVisibleChange: TdSelectProps['onPopupVisibleChange'];\n popupContentRef: ComputedRef;\n indeterminate: boolean;\n isCheckAll: boolean;\n onCheckAllChange: (checked: boolean) => void;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n displayOptions: TdSelectProps['options'];\n emitBlur: (e: MouseEvent | KeyboardEvent) => void;\n }>\n> = Symbol('selectProvide');\n","import { defineComponent, ref, computed, inject, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue';\n\nimport props from './option-props';\nimport Checkbox from '../checkbox/index';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport useRipple from '../hooks/useRipple';\nimport { useContent } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { getNewMultipleValue } from './utils';\nimport { selectInjectKey } from './consts';\nimport { SelectValue } from './type';\n\nexport default defineComponent({\n name: 'TOption',\n props: {\n ...props,\n createAble: Boolean,\n multiple: Boolean,\n index: Number,\n rowIndex: Number,\n trs: Map,\n scrollType: String,\n isVirtual: Boolean,\n bufferSize: Number,\n checkAll: Boolean,\n },\n emits: ['row-mounted'],\n\n setup(props, context) {\n const selectProvider = inject(selectInjectKey);\n const formDisabled = useDisabled();\n const { vnode } = getCurrentInstance();\n\n const isReachMax = computed(\n () =>\n selectProvider.value.max !== 0 &&\n selectProvider.value.max <= (selectProvider.value.selectValue as SelectValue[]).length,\n );\n const disabled = computed(\n () =>\n formDisabled.value ||\n (props.multiple && isReachMax.value && !isSelected.value && !selectProvider.value.isCheckAll),\n );\n\n const renderContent = useContent();\n\n const selectName = usePrefixClass('select');\n const { STATUS, SIZE } = useCommonClassName();\n const liRef = ref();\n\n const isHover = ref(false);\n\n const isSelected = computed(() => {\n if (selectProvider.value.isCheckAll && !props.disabled) return true;\n return !props.multiple\n ? selectProvider.value.selectValue === props.value\n : (selectProvider.value.selectValue as SelectValue[]).includes(props.value);\n });\n\n const isIndeterminate = computed(() => {\n if (!props.checkAll) return false;\n return selectProvider.value.indeterminate;\n });\n\n const classes = computed(() => [\n `${selectName.value}-option`,\n [SIZE.value[selectProvider.value.size]],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.selected]: isSelected.value,\n [`${selectName.value}-option__hover`]:\n (isHover.value || selectProvider.value.hoverIndex === props.index) && !disabled.value,\n },\n ]);\n\n const labelText = computed(() => props.label || props.value);\n\n const handleClick = (e: MouseEvent | KeyboardEvent) => {\n if (props.disabled || disabled.value) return;\n if (props.multiple) {\n handleCheckboxClick(!isSelected.value, { e });\n e.preventDefault();\n return;\n }\n\n if (props.createAble) {\n selectProvider.value.handleCreate?.(props.value);\n if (selectProvider.value.multiple) {\n selectProvider.value.handleValueChange(\n [...(selectProvider.value.selectValue as SelectValue[]), props.value],\n {\n selectedOptions: selectProvider.value.getSelectedOptions(),\n trigger: 'check',\n e,\n },\n );\n return;\n }\n }\n const selectedOptions = selectProvider.value.getSelectedOptions(props.value);\n selectProvider.value.handleValueChange(props.value, {\n option: selectedOptions?.[0],\n selectedOptions: selectedOptions,\n trigger: 'check',\n e,\n });\n selectProvider.value.handlePopupVisibleChange(false, { e });\n selectProvider.value.emitBlur(e);\n };\n\n const handleCheckboxClick = (val: boolean, context: { e: MouseEvent | KeyboardEvent }) => {\n if (props.checkAll) {\n selectProvider.value.onCheckAllChange(val);\n return;\n }\n const newValue = getNewMultipleValue(selectProvider.value.selectValue as SelectValue[], props.value);\n const selectedOptions = selectProvider.value.getSelectedOptions(newValue.value);\n\n const currentOption = selectProvider.value.getSelectedOptions(props.value)?.[0];\n selectProvider.value.handleValueChange(newValue.value, {\n option: currentOption,\n selectedOptions,\n trigger: val ? 'check' : 'uncheck',\n e: context.e,\n });\n };\n\n const renderTitle = () => {\n const vProps = vnode.props || {};\n // 如果设置了title 说明希望自己控制title的展示\n if (Reflect.has(vProps, 'title')) {\n return props.title;\n }\n if (typeof labelText.value === 'string') return labelText.value;\n\n return null;\n };\n\n // 处理虚拟滚动节点挂载\n onMounted(() => {\n const { trs, rowIndex, isVirtual } = props;\n if (isVirtual) {\n trs.set(rowIndex, liRef.value);\n context.emit('row-mounted');\n }\n });\n\n // 处理虚拟滚动节点移除\n onBeforeUnmount(() => {\n if (props.isVirtual) {\n const { trs, rowIndex } = props;\n trs.delete(rowIndex);\n }\n });\n\n useRipple(liRef);\n\n return () => {\n const optionChild = renderContent('default', 'content') || labelText.value;\n\n return (\n (isHover.value = true)}\n onMouseleave={() => (isHover.value = false)}\n onClick={handleClick}\n >\n {selectProvider && props.multiple ? (\n \n {optionChild}\n \n ) : (\n {optionChild}\n )}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 是否显示分隔线 */\n divider: {\n type: Boolean,\n default: true,\n },\n /** 分组别名 */\n label: {\n type: String,\n },\n};\n","import { defineComponent, inject, computed } from 'vue';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './option-group-props';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TOptionGroup',\n props,\n setup(props) {\n const selectProvider = inject(selectInjectKey);\n const COMPONENT_NAME = usePrefixClass('select-option-group');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const classes = computed(() => [\n COMPONENT_NAME.value,\n SIZE.value[selectProvider.value.size],\n {\n [`${COMPONENT_NAME.value}__divider`]: props.divider,\n },\n ]);\n\n return () => (\n
  • \n {(props.label ?? false) &&
    {props.label}
    }\n {renderTNodeJSX('default')}\n
  • \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可以清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedTags` 表示折叠的标签,泛型 `T` 继承 `SelectOption`,表示选项数据;`count` 表示折叠的数量, `onClose` 表示移除标签 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否允许用户创建新条目,需配合 filterable 使用 */\n creatable: Boolean,\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义搜索规则,用于对现有数据进行搜索,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索,默认搜索规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 数据化配置选项内容 */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否显示右侧箭头,默认显示 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectProps['size'],\n validator(val: TdSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectProps['status'],\n validator(val: TdSelectProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined,\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据。 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdSelectProps['valueType'],\n validator(val: TdSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 当选择新创建的条目时触发 */\n onCreate: Function as PropType,\n /** 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 */\n onEnter: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { Ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport useVirtualScroll from '../../hooks/useVirtualScroll';\nimport { TdSelectProps } from '../type';\nimport { Styles } from '../../common';\n\nexport const usePanelVirtualScroll = (props: {\n scroll: TdSelectProps['scroll'];\n popupContentRef: Ref;\n options: Ref;\n}) => {\n const isVirtual = computed(\n () => props.scroll?.type === 'virtual' && props.options.value?.length > (props.scroll?.threshold || 100),\n );\n\n const {\n trs = null,\n visibleData = null,\n handleScroll: handleVirtualScroll = null,\n scrollHeight = null,\n translateY = null,\n handleRowMounted = null,\n } = props.scroll?.type === 'virtual'\n ? useVirtualScroll({\n container: props.popupContentRef,\n data: props.options,\n fixedHeight: props.scroll?.isFixedRowHeight || false,\n lineHeight: props.scroll?.rowHeight || 28, // 默认每行高度28\n bufferSize: props.scroll?.bufferSize || 20,\n threshold: props.scroll?.threshold || 100,\n })\n : {};\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n if (!isVirtual.value) {\n return;\n }\n const target = e.target as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (Math.abs(lastScrollY - top) > 5) {\n handleVirtualScroll();\n lastScrollY = top;\n } else {\n lastScrollY = -1;\n }\n };\n\n // 监听popup滚动 处理虚拟滚动时的virtualData变化\n onMounted(() => {\n props.popupContentRef.value?.addEventListener('scroll', onInnerVirtualScroll);\n });\n\n // 卸载时取消监听\n onBeforeUnmount(() => {\n props.popupContentRef.value?.removeEventListener('scroll', onInnerVirtualScroll);\n });\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${scrollHeight.value}px)`,\n } as Styles),\n );\n\n const panelStyle = computed(\n () =>\n ({\n transform: `translate(0, ${translateY.value}px)`,\n '-ms-transform': `translate(0, ${translateY.value}px)`,\n '-moz-transform': `translate(0, ${translateY.value}px)`,\n '-webkit-transform': `translate(0, ${translateY.value}px)`,\n } as Styles),\n );\n\n return {\n trs,\n scrollHeight,\n translateY,\n visibleData,\n handleRowMounted,\n isVirtual,\n cursorStyle,\n panelStyle,\n };\n};\n","/* eslint-disable */\n/**\n * 当前虚拟滚动存在的问题\n * 1. 反复拖动滚动条,底部会出现奇怪的高度\n * 2. 表格高度发生变化时,底部也会出现奇怪的高度\n * 3. 无法直接定位滚动到某个元素,进而无法实现 Select 组件直接滚动到选中项\n */\nimport { ref, toRefs, reactive, onMounted, computed, watch, nextTick } from 'vue';\n\n// 虚拟滚动Hooks的完整实现,只所以封装成hooks,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nconst useVirtualScroll = ({\n data,\n container,\n fixedHeight = false,\n lineHeight = 30,\n bufferSize = 20,\n threshold = 100,\n}: {\n data: any;\n container: any;\n fixedHeight: boolean;\n lineHeight: number;\n bufferSize: number;\n threshold: number;\n}) => {\n const state = reactive({\n visibleData: [],\n cachedHeight: [],\n cachedScrollY: [],\n });\n const isVirtual = computed(() => data.value.length > threshold);\n const updateId = ref(0);\n const trs = new Map(); // 当前展示的行元素和数据\n\n let visibleCount = 0; // 可见的节点数量\n let beforeScrollTop = 0; // 上一次的滚动条位置\n let index = 0; // 偏移行数\n let offset = 0; // 少于一行行高的偏移量\n let start = 0; // 第一条显示的行\n let last = 0; // 最后一条显示的行\n // let revising = false; // 是否正在修正滚动条\n\n const reset = () => {\n data.value.forEach((item: any, i: number) => {\n item.$index = i;\n if (fixedHeight) {\n state.cachedScrollY[i] = i * lineHeight;\n }\n });\n if (!fixedHeight) {\n state.cachedScrollY[data.value.length - 1] = undefined; // 初始化cachedScrollY数组的长度\n }\n };\n reset();\n\n // 计算虚拟滚动列表总高度,需要动态修正\n const scrollHeight = computed(() => {\n const { cachedHeight } = state;\n const { length } = cachedHeight;\n if (length) {\n const maxScrollY = cachedHeight.reduce((sum, v) => sum + v || lineHeight, 0); // 当前总高度\n if (cachedHeight.length === data.value.length) {\n return maxScrollY;\n }\n const average = maxScrollY / cachedHeight.length; // 平均高度\n return maxScrollY + (data.value.length - cachedHeight.length) * average; // 预估总高度\n }\n return isVirtual.value ? data.value.length * lineHeight : 0;\n });\n const translateY = computed(() => {\n const { visibleData } = state;\n const firstRow = visibleData[0];\n if (firstRow) {\n // 修复只有一个元素时存在偏移的问题\n return visibleData.length === 1 ? 0 : state.cachedScrollY[firstRow.$index];\n }\n return 0;\n });\n\n // 更新可视区域的节点数据\n const updateVisibleData = () => {\n last = Math.min(start + visibleCount + bufferSize * 2, data.value.length);\n state.visibleData = data.value.slice(start, last);\n };\n // 计算每行对应的scrollTop值\n const calculateScrollY = () => {\n const anchorDom = trs.get(index); // 获取锚点元素\n if (!anchorDom) {\n return; // 快速调整高度时,新的元素可能来不及加载,暂时跳过更新\n }\n const anchorDomHeight = anchorDom?.getBoundingClientRect()?.height; // 获取锚点元素的高\n state.cachedScrollY[index] = container.value.scrollTop - offset; // 锚点元素scrollY= 容器滚动高度 - 锚点元素的offset\n state.cachedHeight[index] = anchorDomHeight;\n\n for (let i = index + 1; i <= state.visibleData[state.visibleData.length - 1]?.$index; i++) {\n // 计算锚点后面的元素scrollY\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i - 1] + state.cachedHeight[i - 1]; // 当前元素的y 是前一个元素的y+前一个元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY); // 兼容vue2的composition api\n }\n\n for (let i = index - 1; i >= state.visibleData[0]?.$index; i--) {\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i + 1] - state.cachedHeight[i]; // 当前元素的y是下一个元素y - 当前元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY);\n }\n if (state.cachedScrollY[0] > 0) {\n // 修正滚动过快时,滚动到顶部时,滚动条多余的问题\n // revising = true;\n const distance = state.cachedScrollY[0]; // 第一个元素scrollY即为多出的量\n const length = Math.min(last, data.value.length);\n for (let i = 0; i < length; i++) {\n // state.cachedScrollY[i] -= distance;\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i] - distance);\n }\n\n const scrollTop = state.cachedScrollY[index - 1] ? state.cachedScrollY[index - 1] + offset : offset;\n container.value.scrollTop = scrollTop;\n beforeScrollTop = scrollTop;\n // revising = false;\n }\n // 修正拖动过快时,滚动到顶端时,滚动条不足的偏差\n if (state.cachedScrollY[start] < 0) {\n // revising = true;\n const s = state.cachedHeight.slice(0, Math.max(0, index)).reduce((sum, v) => sum + v, 0) + offset;\n container.value.scrollTop = s;\n beforeScrollTop = s;\n if (s === 0) {\n index = 0;\n offset = 0;\n }\n // revising = false;\n }\n nextTick(() => {\n // setTimeout是为了保证快速拖动到底部时,以下逻辑能够正常执行\n const { scrollTop, scrollHeight, clientHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动到底部时,修正底部有空余的问题\n // revising = true;\n for (let i = last - 1; i >= start; i--) {\n if (i === last - 1) {\n // state.cachedScrollY[i] = scrollHeight.value - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, scrollHeight.value - state.cachedHeight[i]);\n } else {\n // state.cachedScrollY[i] = state.cachedScrollY[i + 1] - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i + 1] - state.cachedHeight[i]);\n }\n }\n // revising = false;\n }\n });\n };\n\n // 滚动时动态计算和渲染\n const handleScroll = () => {\n if (!isVirtual.value) return;\n // if (revising) {\n // return false; // 修正滚动条时,暂停滚动逻辑\n // }\n const { scrollTop } = container.value;\n let distance = scrollTop - beforeScrollTop; // 滚动差值\n beforeScrollTop = scrollTop;\n distance += offset;\n let lastIndex = index;\n // !disatance 可能为横向滚动,不做任何计算\n if (!distance) return;\n if (distance >= 0) {\n // 向下滚动\n while (lastIndex < data.value.length && distance > (state.cachedHeight[lastIndex] || lineHeight)) {\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance -= state.cachedHeight[lastIndex];\n lastIndex++;\n }\n if (lastIndex >= data.value.length) {\n index = data.value.length - 1;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n const { clientHeight, scrollHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动条到底了\n index = data.value.length - visibleCount + 1;\n // calculateScrollY();\n }\n if (start <= index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.min(data.value.length - visibleCount, index - bufferSize);\n if (start < 0) {\n start = 0;\n }\n }\n } else {\n // 向上滚动\n while (distance < 0) {\n lastIndex--;\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance += state.cachedHeight[lastIndex];\n }\n if (lastIndex < 0) {\n index = 0;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n calculateScrollY();\n if (start > index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.max(0, index - bufferSize);\n }\n }\n updateVisibleData();\n };\n\n !fixedHeight && watch(updateId, calculateScrollY, { flush: 'post' });\n const handleRowMounted = () => {\n if (!isVirtual.value) return;\n updateId.value++;\n };\n watch(data, () => {\n reset();\n state.visibleData = [];\n state.cachedScrollY = [];\n state.cachedHeight = [];\n beforeScrollTop = 0;\n index = 0;\n offset = 0;\n start = 0;\n // revising = false;\n trs.clear();\n if (data.value.length <= threshold) {\n state.visibleData = data.value;\n } else {\n updateVisibleData();\n }\n\n container.value && (container.value.scrollTop = 0);\n });\n let mounted = false;\n const refreshContainer = () => {\n if (mounted) {\n visibleCount = Math.ceil(container.value.offsetHeight / lineHeight);\n updateVisibleData();\n }\n };\n onMounted(() => {\n if (!window || !window.IntersectionObserver) {\n return;\n }\n const ob = new window.IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting || entry.intersectionRatio) {\n mounted = true;\n isVirtual.value && refreshContainer();\n ob.unobserve(container.value);\n }\n });\n container.value && ob.observe(container.value);\n });\n return {\n trs,\n scrollHeight,\n ...toRefs(state),\n translateY,\n handleScroll,\n handleRowMounted,\n refreshContainer,\n fixedHeight,\n calculateScrollY,\n };\n};\nexport default useVirtualScroll;\n","import { computed, defineComponent, inject, Slots, ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { Styles } from '../common';\n\nimport { SelectOption, SelectOptionGroup, TdOptionProps } from './type';\nimport Option from './option';\nimport OptionGroup from './option-group';\nimport TdSelectProps from './props';\n\nimport { useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { usePanelVirtualScroll } from './hooks/usePanelVirtualScroll';\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSelectPanel',\n props: {\n inputValue: TdSelectProps.inputValue,\n panelTopContent: TdSelectProps.panelTopContent,\n panelBottomContent: TdSelectProps.panelBottomContent,\n empty: TdSelectProps.empty,\n creatable: TdSelectProps.creatable,\n loading: TdSelectProps.loading,\n loadingText: TdSelectProps.loadingText,\n multiple: TdSelectProps.multiple,\n filterable: TdSelectProps.filterable,\n filter: TdSelectProps.filter,\n scroll: TdSelectProps.scroll,\n size: TdSelectProps.size,\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('select');\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('select');\n const tSelect = inject(selectInjectKey);\n const innerRef = ref(null);\n\n const popupContentRef = computed(() => tSelect.value.popupContentRef.value);\n const showCreateOption = computed(() => props.creatable && props.filterable && props.inputValue);\n const displayOptions = computed(() => tSelect.value.displayOptions);\n\n const { trs, visibleData, handleRowMounted, isVirtual, panelStyle, cursorStyle } = usePanelVirtualScroll({\n scroll: props.scroll,\n popupContentRef,\n options: displayOptions,\n });\n\n const isEmpty = computed(() => !displayOptions.value.length);\n\n const renderCreateOption = () => (\n
      \n \n
    \n );\n\n // 递归render options\n const renderOptionsContent = (options: SelectOption[]) => {\n return (\n
      \n {options.map((item: SelectOptionGroup & TdOptionProps & { slots: Slots } & { $index: number }, index) => {\n if (item.children) {\n return (\n \n {renderOptionsContent(item.children)}\n \n );\n }\n return (\n \n );\n })}\n
    \n );\n };\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[tSelect.value.size];\n });\n\n expose({\n innerRef,\n visibleData, // 虚拟滚动的展示数据\n isVirtual,\n displayOptions, // 非虚拟滚动的展示数据\n });\n\n const renderPanel = (options: SelectOption[], extraStyle?: Styles) => (\n \n {/* create option */}\n {showCreateOption.value && renderCreateOption()}\n {/* loading状态 */}\n {props.loading &&\n renderDefaultTNode('loadingText', {\n defaultNode:
    {t(globalConfig.value.loadingText)}
    ,\n })}\n {/* 空状态 */}\n {!props.loading && isEmpty.value && !showCreateOption.value && (\n
    {renderTNodeJSX('empty') || t(globalConfig.value.empty)}
    \n )}\n {!isEmpty.value && renderOptionsContent(options)}\n \n );\n return {\n renderPanel,\n panelStyle,\n cursorStyle,\n isVirtual,\n displayOptions,\n visibleData,\n renderTNodeJSX,\n };\n },\n render() {\n return this.isVirtual ? (\n <>\n {this.renderTNodeJSX('panelTopContent')}\n
    \n
    \n {this.renderPanel(this.visibleData, this.panelStyle)}\n
    \n {this.renderTNodeJSX('panelBottomContent')}\n \n ) : (\n <>\n {this.renderTNodeJSX('panelTopContent')}\n {this.renderPanel(this.displayOptions)}\n {this.renderTNodeJSX('panelBottomContent')}\n \n );\n },\n});\n","import { computed, Slots, Ref, ref } from 'vue';\nimport { isArray, omit } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\n\nimport { useChildComponentSlots } from '../../hooks/slot';\nimport { TdSelectProps, TdOptionProps, SelectOptionGroup, SelectValue, SelectOption } from '../type';\nimport { KeysType } from '../../common';\n\ntype UniOption = (TdOptionProps | SelectOptionGroup) & {\n index?: number;\n slots?: Slots;\n};\n\nexport const useSelectOptions = (props: TdSelectProps, keys: Ref, inputValue: Ref) => {\n const getChildComponentSlots = useChildComponentSlots();\n const optionsCache = ref([]);\n\n const options = computed(() => {\n let dynamicIndex = 0;\n // 统一处理 keys,处理通用数据\n const innerOptions: UniOption[] =\n props.options?.map((option) => {\n const getFormatOption = (option: TdOptionProps) => {\n const { value, label, disabled } = keys.value;\n const restOption = omit(option, [value, label, disabled]) as Partial;\n const res = {\n ...restOption,\n index: dynamicIndex,\n label: get(option, label),\n value: get(option, value),\n disabled: get(option, disabled) || false,\n };\n dynamicIndex++;\n return res;\n };\n if ((option as SelectOptionGroup).children) {\n return {\n ...option,\n children: (option as SelectOptionGroup).children.map((child) => getFormatOption(child)),\n };\n }\n return getFormatOption(option);\n }) || [];\n\n // 处理 slots\n const optionsSlots = getChildComponentSlots('Option');\n const groupSlots = getChildComponentSlots('OptionGroup');\n\n if (isArray(groupSlots)) {\n for (const group of groupSlots) {\n const groupOption = {\n group: group.props?.label,\n ...group.props,\n children: [] as TdOptionProps[],\n };\n const res = getChildComponentSlots('Option', group.children as Slots);\n if (!isArray(res)) continue;\n for (const child of res) {\n groupOption.children.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n\n innerOptions.push(groupOption);\n }\n }\n if (isArray(optionsSlots)) {\n for (const child of optionsSlots) {\n innerOptions.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n }\n return innerOptions;\n });\n\n const optionsList = computed(() => {\n const res: TdOptionProps[] = [];\n const getOptionsList = (options: TdOptionProps[]) => {\n for (const option of options) {\n if ((option as SelectOptionGroup).children) {\n getOptionsList((option as SelectOptionGroup).children);\n } else {\n res.push(option);\n }\n }\n };\n getOptionsList(options.value);\n return res;\n });\n\n const optionsMap = computed(() => {\n const res = new Map();\n // map以最新的为主 避免存在重复value更新的场景 https://github.com/Tencent/tdesign-vue-next/issues/2646\n optionsCache.value.concat(optionsList.value).forEach((option: TdOptionProps) => {\n res.set(option.value, option);\n });\n return res;\n });\n\n const filterMethods = (option: SelectOption) => {\n if (isFunction(props.filter)) {\n return props.filter(`${inputValue.value}`, option);\n }\n return option.label?.toLowerCase?.().indexOf(`${inputValue.value}`.toLowerCase()) > -1;\n };\n\n const displayOptions = computed(() => {\n if (props.onSearch && props.filterable) return options.value; // 远程搜索时,不执行内部的过滤,不干预用户的自行处理,如输入首字母搜索中文的场景等\n\n if (!inputValue.value || !(props.filterable || isFunction(props.filter))) return options.value;\n\n let checkAllOption: SelectOption;\n\n let res: SelectOption[] = [];\n\n options.value.forEach((option) => {\n if ((option as SelectOptionGroup).children) {\n res.push({\n ...option,\n children: (option as SelectOptionGroup).children.filter(filterMethods),\n });\n }\n\n if ((option as TdOptionProps)?.checkAll === true) checkAllOption = option;\n\n if (filterMethods(option)) {\n res.push(option);\n }\n });\n\n if (!isFunction(props.filter)) {\n // 使用默认 filter,增加表现,调整全等项到首尾,避免全等项位于最后\n // inputValue: ab\n // options abcde, abcd, abc, ab\n const exactMatch = res.filter((item) => item.label === inputValue.value);\n const fuzzyMatch = res.filter((item) => item.label !== inputValue.value);\n res = exactMatch.concat(fuzzyMatch);\n }\n\n return res.length && checkAllOption ? [checkAllOption, ...res] : res;\n });\n\n return {\n options,\n optionsMap,\n optionsList,\n optionsCache,\n displayOptions,\n filterMethods,\n };\n};\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { pick as picker } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { debounce } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { intersection } from 'lodash-es';\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './select-panel';\nimport props from './props';\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { getSingleContent, getMultipleContent } from './utils';\nimport { selectInjectKey } from './consts';\nimport { useSelectOptions, useKeyboardControl } from './hooks';\nimport type { PopupProps, PopupVisibleChangeContext } from '../popup';\nimport type { SelectInputChangeContext, SelectInputValueChangeContext } from '../select-input';\nimport type { TdSelectProps, SelectValue } from './type';\nimport { SelectInputValueDisplayOptions } from '../select-input/hooks/useSingle';\nimport { TagInputTriggerSource } from '../tag-input';\n\nexport default defineComponent({\n name: 'TSelect',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n setup(props: TdSelectProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, { slots }) {\n const classPrefix = usePrefixClass();\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('select');\n const { globalConfig, t } = useConfig('select');\n const { popupVisible, inputValue, modelValue, value } = toRefs(props);\n const [innerInputValue, setInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const [orgValue, setOrgValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const selectPanelRef = ref(null);\n const selectInputRef = ref(null);\n const keys = computed(() => ({\n label: props.keys?.label || 'label',\n value: props.keys?.value || 'value',\n disabled: props.keys?.disabled || 'disabled',\n }));\n const { optionsMap, optionsList, optionsCache, displayOptions, filterMethods } = useSelectOptions(\n props,\n keys,\n innerInputValue,\n );\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (props.valueType === 'object') {\n return !props.multiple\n ? // @ts-ignore\n // TODO optimize SelectValue\n orgValue.value[keys.value.value]\n : // @ts-ignore\n // TODO optimize SelectValue\n (orgValue.value as SelectValue[]).map((option) => option[keys.value.value]);\n }\n return orgValue.value;\n });\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (props.valueType === 'object') {\n const { value, label } = keys.value;\n const getOption = (val: SelectValue) => {\n if (val === undefined) {\n return undefined;\n }\n const option = optionsMap.value.get(val);\n return {\n [value]: get(option, 'value'),\n [label]: get(option, 'label'),\n };\n };\n newVal = props.multiple ? (newVal as SelectValue[]).map((val) => getOption(val)) : getOption(newVal);\n }\n if (newVal === orgValue.value) return;\n\n // 多选场景下 在选中值时,且不保留reserveKeyword 的情况下 ,需要清空输入(筛选)值\n if (props.multiple && !props.reserveKeyword && context.trigger == 'check') setInputValue('');\n\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\n });\n if (props.multiple && context.trigger === 'uncheck' && context.option) {\n props.onRemove?.({\n value: get(context.option, keys.value.value),\n data: context.option,\n e: context.e,\n });\n }\n };\n\n const [innerPopupVisible, setInnerPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n (visible: boolean, context: PopupVisibleChangeContext) => {\n props.onPopupVisibleChange?.(visible, context);\n },\n 'popupVisible',\n );\n\n const placeholderText = computed(\n () =>\n ((!props.multiple && innerPopupVisible.value && getSingleContent(innerValue.value, optionsMap)) ||\n props.placeholder) ??\n t(globalConfig.value.placeholder),\n );\n\n // selectInput 展示值\n const displayText = computed(() =>\n props.multiple\n ? getMultipleContent(innerValue.value as SelectValue[], optionsMap)\n : getSingleContent(innerValue.value, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n const val =\n props.multiple && isArray(innerValue.value)\n ? (innerValue.value as SelectValue[]).map((value) => ({\n value,\n label: optionsMap.value.get(value)?.label,\n }))\n : innerValue.value;\n\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (!props.multiple) Object.assign(params, { label: displayText.value });\n\n if (props.minCollapsedNum && props.multiple) {\n return {\n ...params,\n displayValue: val?.slice?.(0, props.minCollapsedNum),\n };\n }\n return params;\n });\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || globalConfig.value.filterable || isFunction(props.filter));\n });\n\n const isRemoteSearch = computed(() => {\n return Boolean((props.filterable || globalConfig.value.filterable) && isFunction(props.onSearch));\n });\n\n // 移除tag\n const removeTag = (index: number, context?: SelectInputChangeContext) => {\n const { e, trigger = 'tag-remove' } =\n (context as SelectInputChangeContext & {\n trigger: Exclude;\n }) || {};\n\n e && e.stopPropagation();\n\n const selectValue = cloneDeep(innerValue.value) as SelectValue[];\n const value = selectValue[index];\n\n selectValue.splice(index, 1);\n\n if (trigger !== 'clear') {\n setInnerValue(selectValue, { selectedOptions: getSelectedOptions(selectValue), trigger, e });\n }\n\n props.onRemove?.({\n value: value as string | number,\n data: optionsMap.value.get(value),\n e,\n });\n };\n\n const handleCreate = () => {\n if (!innerInputValue.value) return;\n props.onCreate?.(innerInputValue.value);\n // only clean input value when reopen popup\n if (!innerPopupVisible.value) setInputValue('');\n };\n\n const popupContentRef = computed(() => selectInputRef.value?.popupRef.getOverlay() as HTMLElement);\n\n /**\n * 可选选项的列表\n * 排除已禁用和全选的选项,考虑过滤情况\n */\n const optionalList = computed(() =>\n optionsList.value.filter((item) => {\n return (\n !item.disabled &&\n // @ts-ignore types only declare checkAll not declare check-all\n !(item['check-all'] || item['check-all'] === '') &&\n !item.checkAll &&\n filterMethods(item)\n );\n }),\n );\n\n const getSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n return optionsList.value.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n /*\n * 全选逻辑:\n * 根据 checked 的值计算最终选中的值:\n * - 如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的 disabled 选项。\n * - 如果 checked 为 false,则只保留已选中的 disabled 选项。\n * - 过滤条件下,如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的选项。\n * - 过滤条件下,如果 checked 为 false,则只保留已选中的 disabled 选项。\n */\n const onCheckAllChange = (checked: boolean) => {\n if (!props.multiple) return;\n const { value } = keys.value;\n // disabled状态的选项,不参与全选的计算,始终保留\n const lockedValues = innerValue.value.filter((value: string | number | boolean) => {\n return optionsList.value.find((item) => item.value === value && item.disabled);\n });\n\n const activeValues = optionalList.value.map((option) => option.value);\n const formattedOrgValue =\n props.valueType === 'object'\n ? (orgValue.value as Array).map((v) => get(v, value))\n : orgValue.value;\n\n const values = checked\n ? [...new Set([...(formattedOrgValue as Array), ...activeValues, ...lockedValues])]\n : [...lockedValues];\n setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });\n };\n\n // 全选\n const isCheckAll = computed(() => {\n if (intersectionLen.value === 0) return false;\n return intersectionLen.value === optionalList.value.length;\n });\n\n const { hoverIndex, virtualFilteredOptions, handleKeyDown, filteredOptions } = useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n isCheckAll,\n innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\n });\n\n // 已选的长度\n const intersectionLen = computed(() => {\n const values = optionalList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n // 半选\n const indeterminate = computed(() => !isCheckAll.value && intersectionLen.value !== 0);\n\n const SelectProvider = computed(() => ({\n max: props.max,\n multiple: props.multiple,\n hoverIndex: hoverIndex.value,\n selectValue: innerValue.value,\n reserveKeyword: props.reserveKeyword,\n handleValueChange: setInnerValue,\n handlerInputChange: setInputValue,\n handlePopupVisibleChange: setInnerPopupVisible,\n handleCreate,\n size: props.size,\n popupContentRef,\n indeterminate: indeterminate.value,\n isCheckAll: isCheckAll.value,\n onCheckAllChange,\n getSelectedOptions,\n displayOptions: displayOptions.value,\n emitBlur: handleOptionEmitBlur,\n }));\n\n provide(selectInjectKey, SelectProvider);\n\n const checkValueInvalid = () => {\n // 参数类型检测与修复\n if (!props.multiple && isArray(orgValue.value)) {\n setOrgValue(undefined, { selectedOptions: [], trigger: 'default' });\n }\n if (props.multiple && !isArray(orgValue.value)) {\n setOrgValue([], { selectedOptions: [], trigger: 'default' });\n }\n };\n\n const handleSearch = debounce((value: string, { e }: { e: KeyboardEvent }) => {\n props.onSearch?.(`${value}`, { e });\n }, 300);\n\n const handlerInputChange = (value: string, context: SelectInputValueChangeContext) => {\n if (value) {\n !innerPopupVisible.value && setInnerPopupVisible(true, { e: context.e as KeyboardEvent });\n }\n setInputValue(value);\n handleSearch(`${value}`, { e: context.e as KeyboardEvent });\n nextTick(() => {\n virtualFilteredOptions.value = selectPanelRef.value?.visibleData;\n filteredOptions.value = selectPanelRef.value?.displayOptions;\n });\n };\n\n const handleOptionEmitBlur = (e: MouseEvent | KeyboardEvent) => {\n props.onBlur?.({ e, value: innerValue.value });\n };\n\n const handlerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerPopupVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInputValue('');\n };\n\n const handlerPopupScrollToBottom: PopupProps['onScrollToBottom'] = async (context) => {\n const { popupProps } = props;\n if (props.loading) {\n return;\n }\n // @ts-ignore types 中只有 onScrollToBottom,但 Vue 会自动转换 on-scroll-to-bottom 并支持,故此处都进行调用\n popupProps?.['on-scroll-to-bottom']?.(context);\n popupProps?.onScrollToBottom?.(context);\n };\n\n const addCache = (val: SelectValue) => {\n if (props.multiple) {\n const newCache = [];\n for (const item of (val as SelectValue[]) || []) {\n const option = optionsMap.value.get(item);\n if (option) {\n newCache.push(option);\n }\n }\n optionsCache.value = Array.from(new Set([...newCache, ...optionsCache.value]));\n } else {\n const option = optionsMap.value.get(val);\n if (option) {\n optionsCache.value = Array.from(new Set([option, ...optionsCache.value]));\n }\n }\n };\n\n watch(\n orgValue,\n (val) => {\n checkValueInvalid();\n nextTick(() => {\n addCache(val);\n });\n },\n {\n immediate: true,\n },\n );\n watch(\n () => props.multiple,\n () => {\n checkValueInvalid();\n },\n );\n\n // 列表展开时定位置选中项\n const updateScrollTop = (content: HTMLDivElement) => {\n if (!selectPanelRef.value) {\n return;\n }\n const firstSelectedNode: HTMLDivElement = (selectPanelRef.value?.innerRef as HTMLDivElement)?.querySelector(\n `.${classPrefix.value}-is-selected`,\n );\n // 此处需要等待渲染后进行计算\n nextTick(() => {\n if (firstSelectedNode && content) {\n const { paddingBottom } = getComputedStyle(firstSelectedNode);\n const { marginBottom } = getComputedStyle(content);\n const elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);\n // 小于0时不需要特殊处理,会被设为0\n const updateValue =\n firstSelectedNode.offsetTop -\n content.offsetTop -\n (content.clientHeight - firstSelectedNode.clientHeight) +\n elementBottomHeight;\n // eslint-disable-next-line no-param-reassign\n content.scrollTop = updateValue;\n }\n });\n };\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n
    \n {\n removeTag(ctx.index, ctx);\n }}\n tagProps={{ ...(props.tagProps as TdSelectProps['tagProps']) }}\n popupProps={{\n overlayClassName: [`${COMPONENT_NAME.value}__dropdown`, overlayClassName],\n ...restPopupProps,\n onScrollToBottom: handlerPopupScrollToBottom,\n }}\n label={props.label}\n prefixIcon={props.prefixIcon}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return (\n props.showArrow && (\n \n )\n );\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n })\n }\n onPopupVisibleChange={handlerPopupVisibleChange}\n onInputChange={handlerInputChange}\n onClear={({ e }) => {\n setInnerValue(props.multiple ? [] : undefined, {\n option: null,\n selectedOptions: getSelectedOptions(props.multiple ? [] : undefined),\n trigger: 'clear',\n e,\n });\n props.onClear?.({ e });\n }}\n onEnter={(inputValue, { e }) => {\n // onEnter和handleKeyDown的Enter事件同时触发,需要通过setTimeout设置先后\n setTimeout(() => {\n props.onEnter?.({ inputValue: `${innerInputValue.value}`, e, value: innerValue.value });\n handleCreate();\n }, 0);\n }}\n onBlur={(inputValue, { e }) => {\n props.onBlur?.({ e, value: innerValue.value });\n }}\n onFocus={(inputValue, { e }) => {\n props.onFocus?.({ e, value: innerValue.value });\n }}\n {...(props.selectInputProps as TdSelectProps['selectInputProps'])}\n v-slots={{\n label: slots.label,\n prefixIcon: slots.prefixIcon,\n suffix: slots.suffix,\n panel: () => (\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n />\n
    \n );\n };\n },\n});\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '../../hooks/useVModel';\nimport type { PopupVisibleChangeContext } from '../../popup';\n\nexport type useKeyboardControlType = {\n displayOptions: ComputedRef;\n optionsList: ComputedRef;\n innerPopupVisible: Ref;\n setInnerPopupVisible: ChangeHandler;\n selectPanelRef: Ref<{ isVirtual: boolean; innerRef: HTMLDivElement }>;\n isFilterable: ComputedRef;\n isRemoteSearch: ComputedRef;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n setInnerValue: Function;\n onCheckAllChange: Function;\n isCheckAll: ComputedRef;\n innerValue: Ref;\n popupContentRef: ComputedRef;\n multiple: boolean;\n max: number;\n};\n\n// 统一处理键盘控制的hooks\nexport function useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n innerValue,\n popupContentRef,\n multiple,\n max,\n isCheckAll,\n}: useKeyboardControlType) {\n const hoverIndex = ref(-1);\n const filteredOptions = ref([]); // 处理普通场景选项过滤键盘选中的问题\n const virtualFilteredOptions = ref([]); // 处理虚拟滚动下选项过滤通过键盘选择的问题\n const classPrefix = usePrefixClass();\n const handleKeyDown = (e: KeyboardEvent) => {\n const optionsListLength = displayOptions.value.length;\n let newIndex = hoverIndex.value;\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n if (hoverIndex.value === -1) {\n newIndex = 0;\n } else if (hoverIndex.value === 0 || hoverIndex.value > displayOptions.value.length - 1) {\n newIndex = optionsListLength - 1;\n } else {\n newIndex--;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex--;\n }\n hoverIndex.value = newIndex;\n break;\n case 'ArrowDown':\n e.preventDefault();\n\n if (hoverIndex.value === -1 || hoverIndex.value >= optionsListLength - 1) {\n newIndex = 0;\n } else {\n newIndex++;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex++;\n }\n hoverIndex.value = newIndex;\n break;\n case 'Enter':\n if (hoverIndex.value === -1) break;\n\n let finalOptions =\n selectPanelRef.value.isVirtual && isFilterable.value && virtualFilteredOptions.value.length\n ? virtualFilteredOptions.value\n : isRemoteSearch.value\n ? optionsList.value\n : filteredOptions.value;\n\n if (!finalOptions.length) finalOptions = optionsList.value;\n if (!innerPopupVisible.value) {\n setInnerPopupVisible(true, { e });\n break;\n }\n\n if (!multiple) {\n const selectedOptions = getSelectedOptions(finalOptions[hoverIndex.value].value);\n setInnerValue(finalOptions[hoverIndex.value].value, {\n option: selectedOptions?.[0],\n selectedOptions: getSelectedOptions(finalOptions[hoverIndex.value].value),\n trigger: 'check',\n e,\n });\n setInnerPopupVisible(false, { e });\n } else {\n if (hoverIndex.value === -1) return;\n\n if (finalOptions[hoverIndex.value].checkAll) {\n onCheckAllChange(!isCheckAll.value);\n return;\n }\n\n const optionValue = finalOptions[hoverIndex.value]?.value;\n\n if (!optionValue) return;\n const newValue = getNewMultipleValue(innerValue.value, optionValue);\n\n if (max > 0 && newValue.value.length > max) return; // 如果已选达到最大值 则不处理\n const selectedOptions = getSelectedOptions(newValue.value);\n setInnerValue(newValue.value, {\n option: selectedOptions.find((v) => v.value == optionValue),\n selectedOptions,\n trigger: newValue.isCheck ? 'check' : 'uncheck',\n e,\n });\n filteredOptions.value = [];\n }\n break;\n case 'Escape':\n setInnerPopupVisible(false, { e });\n break;\n }\n };\n\n watch(innerPopupVisible, (value) => {\n if (value) {\n // 展开重新恢复初始值\n hoverIndex.value = -1;\n virtualFilteredOptions.value = [];\n filteredOptions.value = [];\n }\n });\n\n // 处理键盘操作滚动 超出视图时继续自动滚动到键盘所在元素\n watch(hoverIndex, (index) => {\n const optionHeight = selectPanelRef.value?.innerRef?.querySelector(\n `.${classPrefix.value}-select-option`,\n )?.clientHeight;\n\n const scrollHeight = optionHeight * index;\n\n popupContentRef.value.scrollTo({\n top: scrollHeight,\n behavior: 'smooth',\n });\n });\n\n return {\n hoverIndex,\n handleKeyDown,\n virtualFilteredOptions,\n filteredOptions,\n };\n}\n","import _Select from './select';\nimport _Option from './option';\nimport _OptionGroup from './option-group';\nimport withInstall from '../utils/withInstall';\nimport { TdSelectProps, TdOptionProps, TdOptionGroupProps, SelectOption } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectProps = TdSelectProps;\nexport type OptionProps = TdOptionProps;\nexport type OptionGroupProps = TdOptionGroupProps;\n\nexport const Select = withInstall(_Select);\nexport const Option = withInstall(_Option);\nexport const OptionGroup = withInstall(_OptionGroup);\n\nexport default Select;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputAdornmentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 后缀装饰 */\n append: {\n type: [String, Function] as PropType,\n },\n /** 前缀装饰 */\n prepend: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, h, VNodeChild } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TInputAdornment',\n inheritAttrs: false,\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('input-adornment');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAddon = (h: any, type: string, addon: string | Function | VNodeChild | undefined): VNodeChild => {\n let addonNode: VNodeChild;\n const isContentNode = isString(addon) || isNumber(addon);\n if (!slots[type] && isString(addon) && !addon) return null;\n if (slots[type]) {\n if (slots[type](null).length === 1 && typeof slots[type](null)[0].children === 'string') {\n addonNode = {slots[type](null)};\n } else {\n addonNode = slots[type](null);\n }\n } else if (isFunction(addon)) {\n addonNode = addon(h);\n } else {\n addonNode = isContentNode ? (\n {addon}\n ) : (\n (addon as VNodeChild)\n );\n }\n return addonNode ? {addonNode} : addonNode;\n };\n return () => {\n const prepend = renderAddon(h, 'prepend', props.prepend);\n const append = renderAddon(h, 'append', props.append);\n const defaultSlot: VNodeChild[] = renderTNodeJSX('default') || [null];\n const className = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--prepend`]: prepend,\n [`${COMPONENT_NAME.value}--append`]: append,\n },\n ];\n\n if (!prepend && !append) {\n return defaultSlot[0];\n }\n\n return (\n
    \n {prepend}\n {defaultSlot[0]}\n {append}\n
    \n );\n };\n },\n});\n","import _InputAdornment from './input-adornment';\nimport withInstall from '../utils/withInstall';\nimport { TdInputAdornmentProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type InputAdornmentProps = TdInputAdornmentProps;\nexport const InputAdornment = withInstall(_InputAdornment);\n\nexport default InputAdornment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前页 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前页,非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 1,\n },\n /** 是否禁用分页组件 */\n disabled: Boolean,\n /** 折叠时最多显示页码按钮数 */\n foldedMaxPageBtn: {\n type: Number,\n default: 5,\n },\n /** 最多显示页码按钮数 */\n maxPageBtn: {\n type: Number,\n default: 10,\n },\n /** 页码数量超出时,前后省略模式, `mid`表示中间省略, `both-ends` 表示两端省略 */\n pageEllipsisMode: {\n type: String as PropType,\n default: 'mid' as TdPaginationProps['pageEllipsisMode'],\n validator(val: TdPaginationProps['pageEllipsisMode']): boolean {\n if (!val) return true;\n return ['mid', 'both-ends'].includes(val);\n },\n },\n /** 每一页的数据量 */\n pageSize: {\n type: Number,\n default: undefined,\n },\n /** 每一页的数据量,非受控属性 */\n defaultPageSize: {\n type: Number,\n default: 10,\n },\n /** 分页大小控制器,值为 [] 则不显示 */\n pageSizeOptions: {\n type: Array as PropType,\n default: (): TdPaginationProps['pageSizeOptions'] => [5, 10, 20, 50],\n },\n /** 透传全部属性到 Select 组件,也可使用 `selectProps.popupProps` 透传全部 Popup 组件 */\n selectProps: {\n type: Object as PropType,\n },\n /** 是否显示跳转首页尾页页码控制器 */\n showFirstAndLastPageBtn: Boolean,\n /** 是否显示跳转页码控制器 */\n showJumper: Boolean,\n /** 是否显示页码控制器 */\n showPageNumber: {\n type: Boolean,\n default: true,\n },\n /** 是否显示分页数量控制器 */\n showPageSize: {\n type: Boolean,\n default: true,\n },\n /** 是否显示跳转前后页页码控制器 */\n showPreviousAndNextBtn: {\n type: Boolean,\n default: true,\n },\n /** 分页组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationProps['size'],\n validator(val: TdPaginationProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium'].includes(val);\n },\n },\n /** 分页组件风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdPaginationProps['theme'],\n validator(val: TdPaginationProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'simple'].includes(val);\n },\n },\n /** 数据总条数 */\n total: {\n type: Number,\n default: 0,\n },\n /** 用于自定义总条数呈现内容。默认显示总条数,值为 false 则不显示 */\n totalContent: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 当前页或分页大小发生变化时触发 */\n onChange: Function as PropType,\n /** 当前页发生变化时触发 */\n onCurrentChange: Function as PropType,\n /** 分页大小发生变化时触发 */\n onPageSizeChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, watch, toRefs, getCurrentInstance } from 'vue';\nimport { isNaN } from 'lodash-es';\nimport {\n PageFirstIcon as TdPageFirstIcon,\n PageLastIcon as TdPageLastIcon,\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronLeftDoubleIcon as TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon as TdChevronRightDoubleIcon,\n EllipsisIcon as TdEllipsisIcon,\n} from 'tdesign-icons-vue-next';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isObject } from 'lodash-es';\n\nimport type { PageInfo, TdPaginationProps } from '../pagination/type';\n\nconst min = 1;\n\ntype PageChangeType = 'prevPage' | 'nextPage' | 'prevMorePage' | 'nextMorePage';\n\nexport default defineComponent({\n name: 'TPagination',\n props,\n\n setup(props: TdPaginationProps) {\n const { emit } = getCurrentInstance();\n\n const { modelValue, pageSize, current } = toRefs(props);\n const renderTNodeJSX = useTNodeJSX();\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onCurrentChange,\n 'current',\n );\n\n const [innerPageSize, setInnerPageSize] = useDefaultValue(\n pageSize,\n props.defaultPageSize,\n props.onPageSizeChange,\n 'pageSize',\n );\n\n const { t, globalConfig } = useConfig('pagination');\n const COMPONENT_NAME = usePrefixClass('pagination');\n const {\n PageFirstIcon,\n PageLastIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronLeftDoubleIcon,\n ChevronRightDoubleIcon,\n EllipsisIcon,\n } = useGlobalIcon({\n PageFirstIcon: TdPageFirstIcon,\n PageLastIcon: TdPageLastIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftDoubleIcon: TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon: TdChevronRightDoubleIcon,\n EllipsisIcon: TdEllipsisIcon,\n });\n\n const { pageCount, ...CLASS_MAP } = usePaginationClasses(props, innerCurrent, innerPageSize, COMPONENT_NAME);\n\n const { prevMore, isPrevMoreShow, curPageLeftCount, nextMore, isNextMoreShow, curPageRightCount } = useMoreAction(\n props,\n pageCount,\n innerCurrent,\n );\n\n const jumpIndex = ref(innerCurrent.value);\n\n const isFolded = computed(() => pageCount.value > props.maxPageBtn);\n\n const sizeOptions = computed>(() => {\n const pageSizeOptions = props.pageSizeOptions as TdPaginationProps['pageSizeOptions'];\n const options = pageSizeOptions.map((option) =>\n isObject(option)\n ? option\n : {\n label: t(globalConfig.value.itemsPerPage, { size: option }),\n value: Number(option),\n },\n );\n return options.sort((a, b) => a.value - b.value);\n });\n\n const isMidEllipsis = computed(() => {\n return props.pageEllipsisMode === 'mid';\n });\n\n const pages = computed(() => {\n const array = [];\n let start;\n let end;\n\n if (isFolded.value) {\n if (isPrevMoreShow.value && isNextMoreShow.value) {\n start = innerCurrent.value - curPageLeftCount.value;\n end = innerCurrent.value + curPageRightCount.value;\n } else {\n const foldedStart = isMidEllipsis.value ? 2 : 1;\n const foldedEnd = isMidEllipsis.value ? pageCount.value - 1 : pageCount.value;\n if (isPrevMoreShow.value) {\n // 保证前面还有一页展示\n start = Math.min(innerCurrent.value - 1, pageCount.value - props.foldedMaxPageBtn + 1);\n } else {\n start = foldedStart;\n }\n\n if (isNextMoreShow.value) {\n // 保证后面还有一页展示\n end = Math.max(innerCurrent.value + 1, props.foldedMaxPageBtn);\n } else {\n end = foldedEnd;\n }\n }\n } else {\n start = 1;\n end = pageCount.value;\n }\n\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n });\n\n // 如果页面总数发生变化并当前页数大于总页数则重置为1\n watch(\n () => pageCount.value,\n () => {\n if (innerCurrent.value > pageCount.value) innerCurrent.value = 1;\n },\n );\n watch(\n () => innerCurrent.value,\n (val) => (jumpIndex.value = val),\n );\n\n const toPage: (pageIndex: number, pageInfo?: PageInfo) => void = (pageIndex, pageInfo) => {\n if (props.disabled) {\n return;\n }\n let current = pageIndex;\n if (pageIndex < min) {\n current = min;\n } else if (pageIndex > pageCount.value) {\n current = pageCount.value;\n }\n if (innerCurrent.value !== current) {\n const prev = innerCurrent.value;\n pageInfo = pageInfo || {\n current,\n previous: prev,\n pageSize: innerPageSize.value,\n };\n if (pageInfo) {\n setInnerCurrent(current, pageInfo);\n props.onChange?.(pageInfo);\n } else {\n // 非主动更改时应仅更新modelValue不触发onCurrentChange事件\n emit('update:modelValue', current);\n }\n }\n };\n\n const handlePageChange = (type: PageChangeType) => {\n const pageChangeMap = {\n prevPage: () => toPage(innerCurrent.value - 1),\n nextPage: () => toPage(innerCurrent.value + 1),\n prevMorePage: () => toPage(Math.max(2, innerCurrent.value - props.foldedMaxPageBtn)),\n nextMorePage: () => toPage(Math.min(innerCurrent.value + props.foldedMaxPageBtn, pageCount.value - 1)),\n };\n pageChangeMap[type]();\n };\n\n const onSelectorChange: (e: string) => void = (e) => {\n if (props.disabled) {\n return;\n }\n const pageSize: number = parseInt(e, 10);\n let pageCount = 1;\n if (pageSize > 0) {\n pageCount = Math.max(Math.ceil(props.total / pageSize), 1);\n }\n\n let isIndexChange = false;\n\n if (innerCurrent.value > pageCount) {\n isIndexChange = true;\n }\n\n /**\n * 分页大小变化事件\n * @param {Number} pageSize 分页大小\n * @param {Number} index 当前页\n */\n const pageInfo = {\n current: isIndexChange ? pageCount : innerCurrent.value,\n previous: innerCurrent.value,\n pageSize,\n };\n setInnerPageSize(pageSize, pageInfo);\n if (isIndexChange) {\n toPage(pageCount, pageInfo);\n } else {\n props.onChange?.(pageInfo);\n }\n };\n\n const onJumperChange = (val: number) => {\n const currentIndex = Math.trunc(+val);\n if (isNaN(currentIndex)) return;\n jumpIndex.value = currentIndex;\n toPage(currentIndex);\n };\n\n return () => {\n const { total, pageSizeOptions, size, disabled, showPageSize } = props;\n if (pageCount.value < 1) return null;\n\n const Jumper = (\n
    \n {t(globalConfig.value.jumpTo)}\n \n \n \n
    \n );\n\n return (\n
    \n {/* 数据统计区 */}\n {renderTNodeJSX(\n 'totalContent',\n
    {t(globalConfig.value.total, { total })}
    ,\n )}\n {/* 分页器 */}\n {showPageSize && pageSizeOptions.length > 0 && (\n \n )}\n {/* 首页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(1)}>\n \n
    \n ) : null}\n {/* 向前按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('prevPage')}>\n \n
    \n ) : null}\n {/* 常规版 */}\n {props.showPageNumber && props.theme === 'default' ? (\n
      \n {isFolded.value && isMidEllipsis.value && (\n
    • toPage(min)}>\n {min}\n
    • \n )}\n {isFolded.value && isPrevMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('prevMorePage')}\n onMouseover={() => (prevMore.value = true)}\n onMouseout={() => (prevMore.value = false)}\n >\n {prevMore.value ? : }\n \n ) : null}\n {pages.value.map((i) => (\n
    • toPage(i)}>\n {i}\n
    • \n ))}\n {isFolded.value && isNextMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('nextMorePage')}\n onMouseover={() => (nextMore.value = true)}\n onMouseout={() => (nextMore.value = false)}\n >\n {nextMore.value ? : }\n \n ) : null}\n {isFolded.value && isMidEllipsis.value ? (\n
    • toPage(pageCount.value)}>\n {pageCount.value}\n
    • \n ) : null}\n
    \n ) : null}\n {/* 极简版 */}\n {props.theme === 'simple' && Jumper}\n {/* 向后按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('nextPage')}>\n \n
    \n ) : null}\n {/* 尾页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(pageCount.value)}>\n \n
    \n ) : null}\n {/* 快速跳转 */}\n {props.theme === 'default' && props.showJumper && Jumper}\n
    \n );\n };\n },\n});\n","import { computed, Ref } from 'vue';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { useCommonClassName } from '../../hooks/useConfig';\nimport { TdPaginationProps } from '../type';\n\nexport function usePaginationClasses(\n props: TdPaginationProps,\n innerCurrent: Ref,\n innerPageSize: Ref,\n name: Ref,\n) {\n const { SIZE, STATUS } = useCommonClassName();\n\n const pageCount = computed(() => {\n const c: number = Math.ceil(props.total / innerPageSize.value);\n return c > 0 ? c : 1;\n });\n\n const paginationClass = computed(() => [\n `${name.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: props.disabled,\n [`${name.value}-ie`]: getIEVersion() < 11,\n },\n props.theme === 'simple' ? `${name.value}--simple` : ``,\n ]);\n\n const totalClass = computed(() => [`${name.value}__total`]);\n\n const sizerClass = computed(() => [`${name.value}__select`]);\n\n const preBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-prev`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === 1,\n },\n ]);\n\n const nextBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-next`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === pageCount.value,\n },\n ]);\n\n const btnWrapClass = computed(() => [`${name.value}__pager`]);\n\n const btnMoreClass = computed(() => [\n `${name.value}__number`,\n `${name.value}__number--more`,\n {\n [STATUS.value.disabled]: props.disabled,\n },\n ]);\n\n const jumperClass = computed(() => [`${name.value}__jump`]);\n\n const jumperInputClass = computed(() => [`${name.value}__input`]);\n\n const simpleClass = computed(() => [`${name.value}__select`]);\n\n const getButtonClass = (index: number) => [\n `${name.value}__number`,\n {\n [STATUS.value.disabled]: props.disabled,\n [STATUS.value.current]: innerCurrent.value === index,\n },\n ];\n\n return {\n pageCount,\n paginationClass,\n totalClass,\n sizerClass,\n preBtnClass,\n nextBtnClass,\n btnWrapClass,\n btnMoreClass,\n jumperClass,\n jumperInputClass,\n simpleClass,\n getButtonClass,\n };\n}\n","import { computed, ref, Ref } from 'vue';\nimport { TdPaginationProps } from '../type';\n\nexport function useMoreAction(props: TdPaginationProps, pageCount: Ref, innerCurrent: Ref) {\n const prevMore = ref(false);\n\n const nextMore = ref(false);\n\n const curPageLeftCount = computed(() => Math.ceil((props.foldedMaxPageBtn - 1) / 2));\n\n const curPageRightCount = computed(() => Math.floor((props.foldedMaxPageBtn - 1) / 2));\n\n const isPrevMoreShow = computed(() => 2 + curPageLeftCount.value < innerCurrent.value);\n\n const isNextMoreShow = computed(() => pageCount.value - 1 - curPageRightCount.value > innerCurrent.value);\n\n return {\n prevMore,\n nextMore,\n curPageLeftCount,\n curPageRightCount,\n isPrevMoreShow,\n isNextMoreShow,\n };\n}\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationMiniProps } from '../pagination/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 按钮禁用配置 */\n disabled: {\n type: [Boolean, Object] as PropType,\n },\n /** 按钮方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdPaginationMiniProps['layout'],\n validator(val: TdPaginationMiniProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 是否展示当前按钮 */\n showCurrent: {\n type: Boolean,\n default: true,\n },\n /** 按钮尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationMiniProps['size'],\n validator(val: TdPaginationMiniProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 提示文案配置,值为 `true` 显示默认文案;值为 `false` 不显示提示文案;值类型为对象则单独配置文案内容 */\n tips: {\n type: Object as PropType,\n },\n /** 按钮形式 */\n variant: {\n type: String as PropType,\n default: 'text' as TdPaginationMiniProps['variant'],\n validator(val: TdPaginationMiniProps['variant']): boolean {\n if (!val) return true;\n return ['text', 'outline'].includes(val);\n },\n },\n /** 按钮点击事件回调 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport { isObject } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n RoundIcon as TdRoundIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronUpIcon as TdChevronUpIcon,\n ChevronDownIcon as TdChevronDownIcon,\n} from 'tdesign-icons-vue-next';\n\nimport props from './pagination-mini-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport TButton from '../button';\n\nexport default defineComponent({\n name: 'TPaginationMini',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('pagination-mini');\n const { ChevronLeftIcon, RoundIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n RoundIcon: TdRoundIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronUpIcon: TdChevronUpIcon,\n ChevronDownIcon: TdChevronDownIcon,\n });\n\n const titleConfig = computed<{\n prev?: string;\n current?: string;\n next?: string;\n }>(() => {\n if (isObject(props.tips)) return props.tips;\n if (props.tips === true) return { prev: '上一页', current: '当前', next: '下一页' };\n return {};\n });\n\n const disabledConfig = computed<{\n prev?: boolean;\n current?: boolean;\n next?: boolean;\n }>(() => {\n if (isObject(props.disabled)) return props.disabled;\n if (props.disabled === true) return { prev: true, current: true, next: true };\n return { prev: false, current: false, next: false };\n });\n\n return () => {\n const jumperClass = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--outline`]: props.variant === 'outline',\n },\n ];\n\n return (\n
    \n props.onChange?.({ e, trigger: 'prev' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__prev`}\n disabled={disabledConfig.value.prev}\n />\n\n {props.showCurrent && (\n props.onChange?.({ e, trigger: 'current' })}\n icon={() => }\n class={`${COMPONENT_NAME.value}__current`}\n disabled={disabledConfig.value.current}\n />\n )}\n\n props.onChange?.({ e, trigger: 'next' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__next`}\n disabled={disabledConfig.value.next}\n />\n
    \n );\n };\n },\n});\n","import _Pagination from './pagination';\nimport _PaginationMini from './pagination-mini';\nimport withInstall from '../utils/withInstall';\nimport { TdPaginationProps, TdPaginationMiniProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type PaginationProps = TdPaginationProps;\nexport type PaginationMiniProps = TdPaginationMiniProps;\n\nexport const Pagination = withInstall(_Pagination);\nexport const PaginationMini = withInstall(_PaginationMini);\n\nexport default Pagination;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepsProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成 */\n current: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成,非受控属性 */\n defaultCurrent: {\n type: [String, Number] as PropType,\n },\n /** 步骤条方向,有两种:横向和纵向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdStepsProps['layout'],\n validator(val: TdStepsProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 步骤条数据列表(作用和 StepItem 效果一样) */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 步骤条分割符 */\n separator: {\n type: String as PropType,\n default: 'line' as TdStepsProps['separator'],\n validator(val: TdStepsProps['separator']): boolean {\n if (!val) return true;\n return ['line', 'dashed', 'arrow'].includes(val);\n },\n },\n /** 步骤条顺序 */\n sequence: {\n type: String as PropType,\n default: 'positive' as TdStepsProps['sequence'],\n validator(val: TdStepsProps['sequence']): boolean {\n if (!val) return true;\n return ['positive', 'reverse'].includes(val);\n },\n },\n /** 步骤条风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdStepsProps['theme'],\n validator(val: TdStepsProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'dot'].includes(val);\n },\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepItemProps } from '../steps/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 步骤描述 */\n content: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['content'],\n },\n /** 步骤描述,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 显示在步骤描述下方的额外内容,比如:操作项 */\n extra: {\n type: [String, Function] as PropType,\n },\n /** 图标,默认显示内置图标,也可以自定义图标,值为 false 则不显示图标。优先级大于 `status` 定义的图标 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdStepItemProps['icon'],\n },\n /** 当前步骤的状态:默认状态(未开始)、进行中状态、完成状态、错误状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdStepItemProps['status'],\n validator(val: TdStepItemProps['status']): boolean {\n if (!val) return true;\n return ['default', 'process', 'finish', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['title'],\n },\n /** 当前步骤标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { computed, defineComponent, h, inject } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { CheckIcon as TdCheckIcon, CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\n\nimport props from './step-item-props';\nimport { SlotReturnValue } from '../common';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX, useContent } from '../hooks';\n\nexport default defineComponent({\n name: 'TStepItem',\n props: { ...props, index: Number },\n setup(props) {\n const stepsState = inject('StepsState', undefined);\n const stepsProps = inject('StepsProps', undefined);\n\n const { globalConfig } = useConfig('steps');\n const { CheckIcon, CloseIcon } = useGlobalIcon({ CheckIcon: TdCheckIcon, CloseIcon: TdCloseIcon });\n const canClick = computed(() => {\n return props.status !== 'process' && !stepsProps?.readonly;\n });\n\n // when props.value is undefined\n const onStepClick = (e: MouseEvent) => {\n if (!canClick.value) return;\n const val = props.value === undefined ? props.index : props.value;\n stepsState.setCurrent(val, stepsState.current, { e });\n };\n\n // class\n const COMPONENT_NAME = usePrefixClass('steps-item');\n const statusClass = computed(() => ({ [`${COMPONENT_NAME.value}--${props.status}`]: props.status }));\n const baseClass = computed(() => [COMPONENT_NAME.value, statusClass.value]);\n const iconClass = computed(() => [`${COMPONENT_NAME.value}__icon`, statusClass.value]);\n\n // render\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const renderIcon = () => {\n let defaultIcon;\n if (stepsProps.theme === 'default') {\n let icon: SlotReturnValue = '';\n switch (props.status) {\n case 'finish':\n if (isFunction(globalConfig.value.checkIcon)) {\n icon = globalConfig.value.checkIcon(h);\n } else {\n icon = ;\n }\n break;\n case 'error':\n if (isFunction(globalConfig.value.errorIcon)) {\n icon = globalConfig.value.errorIcon(h);\n } else {\n icon = ;\n }\n break;\n default:\n icon = String(props.index + 1);\n break;\n }\n defaultIcon = {icon};\n }\n return renderTNodeJSX('icon', defaultIcon);\n };\n\n return () => (\n
    \n \n
    {renderIcon()}
    \n
    \n
    {renderTNodeJSX('title')}
    \n
    {renderContent('default', 'content')}
    \n
    {renderTNodeJSX('extra')}
    \n
    \n
    \n \n );\n },\n});\n","import { computed, defineComponent, provide, reactive, ref, toRefs, VNode } from 'vue';\nimport { isObject } from 'lodash-es';\nimport props from './props';\nimport stepItemProps from './step-item-props';\nimport { TdStepItemProps } from './type';\nimport StepItem from './step-item';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useChildComponentSlots } from '../hooks';\n\nexport default defineComponent({\n name: 'TSteps',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('steps');\n\n const { current, modelValue } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n provide(\n 'StepsState',\n reactive({\n current: innerCurrent,\n setCurrent: setInnerCurrent,\n }),\n );\n\n provide('StepsProps', props);\n\n const indexMap = ref>({});\n\n const handleStatus = (itemProps: TdStepItemProps, index: number) => {\n if (itemProps.status && itemProps.status !== 'default') return itemProps.status;\n if (innerCurrent.value === 'FINISH') return 'finish';\n // value 不存在时,使用 index 进行区分每一个步骤\n if (itemProps.value === undefined && index < Number(innerCurrent.value)) return 'finish';\n // value 存在,找匹配位置\n if (itemProps.value !== undefined) {\n const matchIndex = Number(indexMap.value[innerCurrent.value]);\n if (matchIndex === undefined) {\n console.warn('TDesign Steps Warn: The current `value` is not exist.');\n return 'default';\n }\n if (props.sequence === 'positive' && index < matchIndex) return 'finish';\n if (props.sequence === 'reverse' && index > matchIndex) return 'finish';\n }\n const key = itemProps.value === undefined ? index : itemProps.value;\n if (key === innerCurrent.value) return 'process';\n return 'default';\n };\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getOptionListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node?.props || {};\n const children = node?.children;\n if (!option && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stepItemProps && !option[key]) {\n option[key] = (children as Record)[key];\n }\n }\n }\n props.sequence === 'reverse' ? arr.unshift(option as TdStepItemProps) : arr.push(option as TdStepItemProps);\n });\n return arr;\n };\n const getOptions = () => {\n let options: Array;\n if (props.options?.length) {\n options = props.sequence === 'reverse' ? props.options.slice().reverse() : props.options;\n } else {\n const nodes: VNode[] = getChildComponentByName('StepItem') as VNode[];\n options = getOptionListBySlots(nodes);\n }\n\n (options || []).forEach((item, index) => {\n if (item.value !== undefined) indexMap.value[item.value] = index;\n });\n return options;\n };\n\n const renderContent = () => {\n const options = getOptions();\n\n return options.map((item, index) => {\n const stepIndex = props.sequence === 'reverse' ? options.length - index - 1 : index;\n index = item.value !== undefined ? index : stepIndex;\n\n return ;\n });\n };\n\n /** class calculate */\n const handleTheme = () => {\n let { theme } = props;\n const options = getOptions();\n options.forEach((item) => {\n if (item?.icon !== undefined) {\n // icon > theme\n theme = 'default';\n }\n });\n return theme;\n };\n const baseClass = computed(() => {\n return [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.layout}`,\n `${COMPONENT_NAME.value}--${handleTheme()}-anchor`,\n `${COMPONENT_NAME.value}--${props.sequence}`,\n `${COMPONENT_NAME.value}--${props.separator}-separator`,\n ];\n });\n /** class calculate END */\n\n return () =>
    {renderContent()}
    ;\n },\n});\n","import _Steps from './steps';\nimport _StepItem from './step-item';\nimport withInstall from '../utils/withInstall';\nimport { TdStepsProps, TdStepItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StepsProps = TdStepsProps;\nexport type StepItemProps = TdStepItemProps;\n\nexport const Steps = withInstall(_Steps);\nexport const StepItem = withInstall(_StepItem);\nexport default Steps;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyToolProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 列表 */\n list: {\n type: Array as PropType,\n default: (): TdStickyToolProps['list'] => [],\n },\n /** 相对于 placement 的偏移量,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 固定位置 */\n placement: {\n type: String as PropType,\n default: 'right-bottom' as TdStickyToolProps['placement'],\n validator(val: TdStickyToolProps['placement']): boolean {\n if (!val) return true;\n return ['right-top', 'right-center', 'right-bottom', 'left-top', 'left-center', 'left-bottom'].includes(val);\n },\n },\n /** 透传 Popup 组件全部特性,优先级低于 StickyItem.popupProps */\n popupProps: {\n type: Object as PropType,\n },\n /** 侧边栏菜单形状,有 2 种:方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'square' as TdStickyToolProps['shape'],\n validator(val: TdStickyToolProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round'].includes(val);\n },\n },\n /** 侧边栏菜单类型,有 2 种:常规型和紧凑型 */\n type: {\n type: String as PropType,\n default: 'normal' as TdStickyToolProps['type'],\n validator(val: TdStickyToolProps['type']): boolean {\n if (!val) return true;\n return ['normal', 'compact'].includes(val);\n },\n },\n /** 宽度 */\n width: {\n type: [String, Number] as PropType,\n },\n /** 点击某一项时触发 */\n onClick: Function as PropType,\n /** 悬浮到某一项时触发 */\n onHover: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyItemProps } from '../sticky-tool/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 名称 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 浮层内容 */\n popup: {\n type: [String, Function] as PropType,\n },\n /** 透传浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 触发浮层显示的方式 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdStickyItemProps['trigger'],\n validator(val: TdStickyItemProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport baseProps from './sticky-item-props';\nimport TdStickyToolProps from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\nimport { useTNodeJSX } from '../hooks';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'TStickyItem',\n props: {\n ...baseProps,\n type: TdStickyToolProps.type,\n shape: TdStickyToolProps.shape,\n placement: TdStickyToolProps.placement,\n basePopupProps: Object as PropType,\n baseWidth: TdStickyToolProps.width,\n onClick: TdStickyToolProps.onClick,\n onHover: TdStickyToolProps.onHover,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-item');\n const baseClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.type}`,\n `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const labelClass = computed(() => {\n return [`${COMPONENT_NAME.value}__label`];\n });\n const popupPlacement = computed(() => {\n return props.placement.indexOf('right') !== -1 ? 'left' : 'right';\n });\n const styles = computed(() => {\n const styles: Styles = {};\n if (props.baseWidth) {\n const selfWidth = props.type === 'normal' ? '56px' : '40px';\n styles.margin = `calc((${props.baseWidth} - ${selfWidth})/2)`;\n }\n return styles;\n });\n const handleClickItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onHover({ e, item });\n };\n const renderTNodeJSX = useTNodeJSX();\n const popupProps = Object.assign({ hideEmptyPopup: true }, props.basePopupProps, props.popupProps);\n return () => (\n renderTNodeJSX('popup')}\n {...popupProps}\n >\n
    \n {renderTNodeJSX('icon')}\n {props.type === 'normal' ?
    {renderTNodeJSX('label')}
    : null}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, VNode } from 'vue';\nimport props from './props';\nimport { isObject } from 'lodash-es';\nimport StickyItem from './sticky-item';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useChildComponentSlots } from '../hooks';\n\nimport stickyItemProps from './sticky-item-props';\n\nimport type { TdStickyItemProps } from './type';\nimport type { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TStickyTool',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-tool');\n const classes = computed(() => {\n return [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.shape}`];\n });\n const styles = computed(() => {\n const styles = getOffset();\n if (props.width) styles.width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return styles;\n });\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getList = () => {\n let list: Array;\n if (props.list?.length) {\n list = props.list;\n } else {\n const nodes: VNode[] = getChildComponentByName('StickyItem') as VNode[];\n list = getListBySlots(nodes);\n }\n return list;\n };\n const getListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const list = node?.props || {};\n const children = node?.children;\n if (!list && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stickyItemProps && !list[key]) {\n list[key] = (children as Record)[key];\n }\n }\n }\n arr.push(list as TdStickyItemProps);\n });\n return arr;\n };\n const getOffset = (): Styles => {\n // 默认偏移位置\n const position: Array = props.offset ? [80, 24] : ['80px', '24px'];\n props.offset?.forEach((item, index) => {\n position[index] = isNaN(Number(item))\n ? `calc( ${position[index]}px + ${item})`\n : `${(position[index] as number) + (item as number)}px`;\n });\n const offsetStyle: Styles = {};\n props.placement.split('-').forEach((item, index) => {\n if (item !== 'center') {\n offsetStyle[item] = position[index];\n } else {\n offsetStyle.top = '50%';\n offsetStyle.transform = 'translate(0, -50%)';\n }\n });\n return offsetStyle;\n };\n const handleClick = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onClick?.(context);\n };\n const handleHover = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onHover?.(context);\n };\n const renderContent = () => {\n const list = getList();\n const content = list.map((item, index) => {\n const { type, shape, placement, popupProps } = props;\n const itemProps = {\n ...item,\n type,\n shape,\n placement,\n basePopupProps: popupProps,\n baseWidth: styles.value.width,\n onClick: handleClick,\n onHover: handleHover,\n };\n return ;\n });\n return content;\n };\n return () => (\n
    \n {renderContent()}\n
    \n );\n },\n});\n","import _StickyTool from './sticky-tool';\nimport _StickyItem from './sticky-item';\nimport withInstall from '../utils/withInstall';\nimport { TdStickyToolProps, TdStickyItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type StickyToolProps = TdStickyToolProps;\nexport type StickyItemProps = TdStickyItemProps;\n\nexport const StickyItem = withInstall(_StickyItem);\n\nexport const StickyTool = withInstall(_StickyTool);\n\nexport default StickyTool;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdBackTopProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 监听滚动的容器。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n container: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['container'],\n },\n /** 回到顶部内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部内容,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部的耗时单位:毫秒 */\n duration: {\n type: Number,\n default: 200,\n },\n /** 回到顶部相对右下角的位置偏移,示例:[10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n default: (): TdBackTopProps['offset'] => ['24px', '80px'],\n },\n /** 回到顶部的形状 */\n shape: {\n type: String as PropType,\n default: 'square' as TdBackTopProps['shape'],\n validator(val: TdBackTopProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'square'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBackTopProps['size'],\n validator(val: TdBackTopProps['size']): boolean {\n if (!val) return true;\n return ['medium', 'small'].includes(val);\n },\n },\n /** 指定回到该对象。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n target: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['target'],\n },\n /** 组件主题风格,浅色、主色、深色 */\n theme: {\n type: String as PropType,\n default: 'light' as TdBackTopProps['theme'],\n validator(val: TdBackTopProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'primary', 'dark'].includes(val);\n },\n },\n /** 滚动高度达到此参数值才出现 */\n visibleHeight: {\n type: [String, Number] as PropType,\n default: '200px' as TdBackTopProps['visibleHeight'],\n },\n /** 点击回到顶部时触发 */\n onClick: Function as PropType,\n};\n","import { computed, defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { BacktopIcon as TdBackTopIcon } from 'tdesign-icons-vue-next';\n\nimport { scrollTo } from '../utils/dom';\nimport { useChildSlots, usePrefixClass, useContent, useConfig } from '../hooks';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport props from './props';\n\nimport type { TdBackTopProps } from './type';\n\nexport default defineComponent({\n name: 'TBackTop',\n props,\n setup(props: TdBackTopProps) {\n const visible = ref(false);\n const containerRef = ref(null);\n const componentName = usePrefixClass('back-top');\n const { classPrefix } = useConfig('alert');\n\n const { BacktopIcon } = useGlobalIcon({\n BacktopIcon: TdBackTopIcon,\n });\n const renderContent = useContent();\n const getContainer = (container: TdBackTopProps['container']) => {\n if (typeof container === 'string' && typeof document !== undefined) {\n if (container === 'body') {\n return document;\n }\n return document.querySelector(container);\n }\n if (typeof container === 'function') {\n return container();\n }\n return null;\n };\n onMounted(() => {\n containerRef.value = getContainer(props.container) as HTMLElement;\n let visibleHeight: number;\n if (typeof props.visibleHeight === 'string') {\n visibleHeight = Number(props.visibleHeight.replace('px', ''));\n } else {\n visibleHeight = props.visibleHeight;\n }\n if (visibleHeight === 0) {\n visible.value = true;\n return;\n }\n let scrollDOM: HTMLElement;\n if (containerRef.value.scrollTop === undefined) {\n scrollDOM = document.documentElement;\n } else {\n scrollDOM = containerRef.value;\n }\n containerRef.value.onscroll = () => {\n const scrollTop = scrollDOM?.scrollTop;\n if (scrollTop >= visibleHeight) {\n visible.value = true;\n }\n if (scrollTop < visibleHeight && visible.value) {\n visible.value = false;\n }\n };\n });\n\n onBeforeUnmount(() => {\n containerRef.value.onscroll = null;\n });\n\n return () => {\n const { theme, shape, size, target, duration, offset, container } = props;\n const getChild = useChildSlots();\n let children = getChild();\n if (children.length < 1) children = null;\n const cls = computed(() => {\n return {\n [componentName.value]: true,\n [`${componentName.value}--theme-${theme}`]: true,\n [`${componentName.value}--${shape}`]: true,\n [`${componentName.value}--show`]: visible.value,\n [`${classPrefix.value}-size-s`]: size === 'small',\n [`${classPrefix.value}-size-m`]: size === 'medium',\n };\n });\n const defaultContent = (\n <>\n \n TOP\n \n );\n const getBackTo = () => {\n if (target === container) return 0;\n if (target === 'body') return 0;\n if (!target) return 0;\n const targetNode = getContainer(target);\n if (!targetNode) return 0;\n const y = (targetNode as HTMLElement).getBoundingClientRect().y;\n return y;\n };\n const handleClick = (e: MouseEvent) => {\n const y = getBackTo();\n scrollTo(y, { container: containerRef.value, duration });\n props.onClick?.({ e });\n };\n const positionStyle = computed(() => {\n return {\n insetInlineEnd: offset[0],\n insetBlockEnd: offset[1],\n };\n });\n return (\n \n );\n };\n },\n});\n","import withInstall from '../utils/withInstall';\nimport _BackTop from './back-top';\nimport { TdBackTopProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type BackTopProps = TdBackTopProps;\n\nexport const BackTop = withInstall(_BackTop);\n\nexport default BackTop;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAutoCompleteProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动获取焦点 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 触发显示联想词下拉框的元素,同 `triggerElement` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉联想词列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤规则,用于对现有数据进行搜索过滤,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否根据输入内容过滤联想词。默认过滤规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则。部分场景下输入关键词和下拉联想词完全不同,此时可以设置为 `false` */\n filterable: {\n type: Boolean,\n default: true,\n },\n /** 是否高亮联想词中和输入值的相同部分 */\n highlightKeyword: {\n type: Boolean,\n default: true,\n },\n /** 透传 Input 组件全部特性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 下拉联想词列表。示例一:`['联想词一', '联想词二']`。示例二:`{ label: () =>
    联想词元素
    , text: '用于搜索的纯联想词' }` */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 输入框为空时的占位提示。组件本身默认值为 `undefined`,但全局配置存在默认值,不同语言全局默认值不同 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdAutoCompleteProps['size'],\n validator(val: TdAutoCompleteProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdAutoCompleteProps['status'],\n validator(val: TdAutoCompleteProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 透传 Textarea 组件全部特性 */\n textareaProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 触发显示联想词下拉框的元素,默认为 Input 组件,可以使用 `trigger` 自定义为 Textarea 组件或其他组件 */\n triggerElement: {\n type: [String, Function] as PropType,\n },\n /** 输入框的值,即当前指定的联想词 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 输入框的值,即当前指定的联想词,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 选中联想词时触发 */\n onSelect: Function as PropType,\n};\n","import { computed, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { isString } from 'lodash-es';\nimport { escapeRegExp } from 'lodash-es';\n\nexport interface HighlightOptionProps {\n content: string;\n keyword: string;\n}\n\nexport default defineComponent({\n name: 'HighlightOption',\n props: {\n /** 联想词 */\n content: String as PropType,\n /** 搜索词 */\n keyword: String as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const words = computed<{ list: string[]; keyword?: string }>(() => {\n const { content, keyword } = props;\n if (!content) return { list: [] };\n if (!isString(content) || !keyword) return { list: [content] };\n const regExp = new RegExp(escapeRegExp(keyword), 'i');\n const splitKeyword = content.match(regExp)?.[0];\n return {\n list: content.split(splitKeyword),\n keyword: splitKeyword,\n };\n });\n\n return () => {\n const { list, keyword } = words.value;\n return (\n
    \n {list.map((item, index) => {\n if (!index) return item;\n return [\n \n {keyword}\n ,\n item,\n ];\n })}\n
    \n );\n };\n },\n});\n","import { ref, computed, defineComponent, PropType, h, watch, onBeforeUnmount } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { CommonClassNameType } from '../hooks/useCommonClassName';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from './type';\nimport log from '@tdesign/common-js/log/index';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { on, off } from '../utils/dom';\nimport { isString } from 'lodash-es';\nimport { escapeRegExp } from 'lodash-es';\nimport { ARROW_UP_REG, ARROW_DOWN_REG, ENTER_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'AutoCompleteOptionList',\n\n props: {\n sizeClassNames: Object as PropType,\n value: String,\n size: String as PropType,\n options: Array as PropType,\n popupVisible: Boolean,\n highlightKeyword: Boolean,\n filterable: Boolean,\n filter: Function as PropType,\n empty: [String, Function] as PropType,\n },\n\n emits: ['select'],\n\n setup(props, { emit, slots, expose }) {\n const active = ref('');\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('autoComplete');\n\n const classes = computed(() => `${classPrefix.value}-select__list`);\n const optionClasses = computed(() => [\n `${classPrefix.value}-select-option`,\n {\n [props.sizeClassNames[props.size]]: props.size,\n },\n ]);\n\n // 整理数据格式\n const tOptions = computed(() => {\n let options = (props.options || []).map((item) => {\n let option: AutoCompleteOptionObj = {};\n if (isString(item)) {\n option = { text: item, label: item };\n } else {\n if (item.text && !isString(item.text)) {\n log.warn('AutoComplete', '`text` must be a string.');\n }\n if (!item.text) {\n if (isString(item.label)) {\n option = { ...item, text: item.label };\n } else {\n log.warn('AutoComplete', 'one of `label` and `text` must be a existed string.');\n }\n } else {\n option = item;\n }\n }\n return option;\n });\n // 自定义过滤规则\n if (props.filter) {\n options = options.filter((option) => props.filter(props.value, option));\n } else if (props.filterable) {\n // 默认过滤规则\n const regExp = new RegExp(escapeRegExp(props.value), 'i');\n options = options.filter((item) => regExp.test(item.text));\n }\n return options;\n });\n\n const onOptionClick = (e: MouseEvent) => {\n let liNode = e.target as HTMLElement;\n while (liNode && liNode.tagName !== 'LI') {\n liNode = liNode.parentNode as HTMLElement;\n }\n const keyword = liNode.getAttribute('title');\n active.value = keyword;\n emit('select', keyword, { e });\n };\n\n // 键盘事件,上下选择\n const onKeyInnerPress = (e: KeyboardEvent) => {\n if (ARROW_UP_REG.test(e.code) || ARROW_UP_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index - 1 < 0 ? tOptions.value.length - 1 : index - 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ARROW_DOWN_REG.test(e.code) || ARROW_DOWN_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index + 1 >= tOptions.value.length ? 0 : index + 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ENTER_REG.test(e.code) || ENTER_REG.test(e.key)) {\n if (active.value) {\n emit('select', active.value, { e });\n }\n }\n };\n\n const addKeyboardListener = () => {\n on(document, 'keydown', onKeyInnerPress);\n };\n\n const removeKeyboardListener = () => {\n off(document, 'keydown', onKeyInnerPress);\n };\n\n expose({\n addKeyboardListener,\n removeKeyboardListener,\n });\n\n watch(\n () => props.popupVisible,\n () => {\n if (props.popupVisible) {\n addKeyboardListener();\n } else {\n removeKeyboardListener();\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.value,\n () => {\n if (!props.value) {\n active.value = '';\n }\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n removeKeyboardListener();\n });\n\n return () => {\n if (!tOptions.value.length) {\n return (\n
    \n {props.empty || globalConfig.value.empty}\n
    \n );\n }\n\n return (\n
      \n {tOptions.value.map((item) => {\n const cls = [...optionClasses.value];\n if (item.text === active.value) {\n cls.push(`${classPrefix.value}-select-option--hover`);\n }\n let labelNode: any = item.label;\n if (isFunction(item.label)) {\n labelNode = item.label(h);\n } else if (slots.option) {\n labelNode = slots.option?.({ option: item });\n }\n const content = labelNode || item.text;\n return (\n
    • \n {isString(content) && props.highlightKeyword ? (\n \n ) : (\n content\n )}\n
    • \n );\n })}\n
    \n );\n };\n },\n});\n","import { computed, ref, defineComponent, toRefs, nextTick } from 'vue';\nimport props from './props';\nimport { TdAutoCompleteProps } from './type';\nimport TInput, { InputProps, StrInputProps } from '../input';\nimport Popup, { PopupProps } from '../popup';\nimport useCommonClassName from '../hooks/useCommonClassName';\nimport AutoCompleteOptionList from './option-list';\nimport useVModel from '../hooks/useVModel';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\nimport { useContent, useTNodeJSX } from '../hooks';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TAutoComplete',\n props,\n setup(props: TdAutoCompleteProps, { slots }) {\n const { value, modelValue } = toRefs(props);\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { classPrefix, sizeClassNames } = useCommonClassName();\n const { globalConfig: global } = useConfig('input');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const popupVisible = ref();\n const optionListRef = ref();\n\n const getOverlayStyle = (trigger: HTMLElement, popupElement: HTMLElement) => {\n const triggerWidth = trigger.getBoundingClientRect().width || trigger.offsetWidth || trigger.clientWidth;\n const popupWidth =\n popupElement.getBoundingClientRect().width || popupElement.offsetWidth || popupElement.clientWidth;\n return {\n width: triggerWidth >= popupWidth ? `${triggerWidth}px` : 'auto',\n ...props.popupProps?.overlayInnerStyle,\n };\n };\n\n const classes = computed(() => [`${classPrefix.value}-auto-complete`]);\n const popupClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown`];\n if (props.popupProps?.overlayClassName) {\n classes = classes.concat(props.popupProps.overlayClassName);\n }\n return classes;\n });\n const popupInnerClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown-inner`];\n if (props.popupProps?.overlayInnerClassName) {\n classes = classes.concat(props.popupProps.overlayInnerClassName);\n }\n return classes;\n });\n\n const onInputChange: StrInputProps['onChange'] = (value, context) => {\n setTValue(value, context);\n };\n\n const innerInputProps = computed(() => {\n const tProps: InputProps = {\n value: tValue.value,\n size: props.size,\n ...props.inputProps,\n };\n return tProps;\n });\n\n const onInnerFocus: StrInputProps['onFocus'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = true;\n props.onFocus?.({ ...context, value });\n nextTick(() => {\n optionListRef.value?.addKeyboardListener();\n });\n };\n\n const onInnerBlur: StrInputProps['onBlur'] = (value, context) => {\n props.onBlur?.({ ...context, value });\n };\n\n const onInnerCompositionend: InputProps['onCompositionend'] = (value, context) => {\n props.onCompositionend?.({ ...context, value });\n };\n\n const onInnerCompositionstart: InputProps['onCompositionstart'] = (value, context) => {\n props.onCompositionstart?.({ ...context, value });\n };\n\n const onInnerEnter: StrInputProps['onEnter'] = (value, context) => {\n props.onEnter?.({ ...context, value });\n };\n\n const onInnerSelect: TdAutoCompleteProps['onSelect'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = false;\n setTValue(value, context);\n props.onSelect?.(value, context);\n };\n\n const onPopupVisibleChange: PopupProps['onVisibleChange'] = (visible, { trigger }) => {\n if (isReadonly.value || isDisabled.value) return;\n if (trigger !== 'trigger-element-click') {\n popupVisible.value = visible;\n }\n };\n\n return () => {\n // 触发元素\n const triggerNode = renderContent('default', 'triggerElement') || (\n \n );\n // 联想词列表\n const listContent = Array.isArray(props.options) && (\n \n );\n\n const topContent = renderTNodeJSX('panelTopContent');\n const bottomContent = renderTNodeJSX('panelBottomContent');\n const panelContent =\n topContent || listContent || bottomContent ? (\n
    \n {topContent}\n {listContent}\n {bottomContent}\n
    \n ) : null;\n const popupProps = {\n ...props.popupProps,\n overlayInnerStyle: getOverlayStyle,\n overlayInnerClassName: popupInnerClasses.value,\n overlayClassName: popupClasses.value,\n };\n return (\n
    \n panelContent : null}\n {...popupProps}\n >\n {triggerNode}\n \n
    \n );\n };\n },\n});\n","import _AutoComplete from './auto-complete';\nimport _HighlightOption from './highlight-option';\nimport withInstall from '../utils/withInstall';\nimport { AutoCompleteOption, TdAutoCompleteProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type AutoCompleteProps = TdAutoCompleteProps;\n\nexport const AutoComplete = withInstall(_AutoComplete);\nexport const HighlightOption = withInstall(_HighlightOption);\n\nexport default AutoComplete;\n","import { CascaderContextType, TreeNode, TreeNodeValue } from '../types';\n\n/**\n * icon Class\n * @param prefix\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getFakeArrowIconClass(\n prefix: string,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { disabled } = cascaderContext;\n return [\n `${prefix}-cascader__icon`,\n {\n [STATUS.disabled]: disabled,\n },\n ];\n}\n\n/**\n * 通用状态\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getNodeStatusClass(\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, value, max } = cascaderContext;\n const expandedActive =\n (!checkStrictly && node.expanded && (multiple ? !node.isLeaf() : true)) || (checkStrictly && node.expanded);\n\n const isLeaf = node.isLeaf();\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n let isSelected = node.checked || (multiple && !checkStrictly && node.expanded && !isLeaf);\n // 处理单选非叶子节点的选中逻辑\n if (!multiple && !checkStrictly && !isLeaf) {\n isSelected = node.expanded;\n }\n\n return [\n {\n [STATUS.selected]: !isDisabled && isSelected,\n [STATUS.expanded]: !isDisabled && expandedActive,\n [STATUS.disabled]: isDisabled,\n },\n ];\n}\n\n/**\n * 子节点状态\n * @param prefix\n * @param node\n * @param SIZE\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemClass(\n prefix: string,\n node: TreeNode,\n SIZE: Record,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { size } = cascaderContext;\n return [\n `${prefix}-cascader__item`,\n ...getNodeStatusClass(node, STATUS, cascaderContext),\n SIZE[size],\n {\n [`${prefix}-cascader__item--with-icon`]: !!node.children,\n [`${prefix}-cascader__item--leaf`]: node.isLeaf(),\n },\n ];\n}\n\n/**\n * 子节点icon状态\n * @param prefix\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemIconClass(\n prefix: string,\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n return [`${prefix}-cascader__item-icon`, `${prefix}-icon`, ...getNodeStatusClass(node, STATUS, cascaderContext)];\n}\n","import { isNumber } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isEmpty } from 'lodash-es';\nimport { TreeNode, CascaderContextType, TdCascaderProps, CascaderValue, TreeNodeValue, TreeOptionData } from '../types';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n if (multiple || (value !== 0 && !value)) return '';\n\n if (isArray(value)) return '';\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!(node && node.length)) {\n return value as string;\n }\n const path = node && node[0].getPath();\n if (path && path.length) {\n return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path.at(-1).label;\n }\n return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n if (!multiple) return [];\n if (multiple && !isArray(value)) return [];\n\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!node) return [];\n\n return (value as TreeNodeValue[])\n .map((item: TreeNodeValue) => {\n const node = treeStore.getNodes(item);\n return showAllLevels ? getFullPathLabel(node[0]) : node[0]?.label;\n })\n .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n const panels: TreeNode[][] = [];\n treeNodes.forEach((node: TreeNode) => {\n if (panels[node.level]) {\n panels[node.level].push(node);\n } else {\n panels[node.level] = [node];\n }\n });\n return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n return node\n ?.getPath()\n .map((node: TreeNode) => node.label)\n .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n let treeValue: TreeNodeValue[] = [];\n if (isArray(value)) {\n if (value.length > 0 && isObject(value[0])) {\n treeValue = (value as TreeOptionData[]).map((val) => val.value);\n } else if (value.length) {\n treeValue = value as TreeNodeValue[];\n }\n } else if (!isEmptyValues(value)) {\n if (isObject(value)) {\n treeValue = [(value as TreeOptionData).value];\n } else {\n treeValue = [value];\n }\n }\n return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n if (valueType === 'single') {\n return value;\n }\n const val = value as Array;\n if (multiple) {\n return val.map((item: TreeNodeValue[]) => item.at(-1));\n }\n return val.at(-1);\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑,排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n if (isNumber(value) && !isNaN(value)) return false;\n return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n const { multiple, showAllLevels, valueType } = cascaderContext;\n return (multiple && !isArray(value)) || (!multiple && isArray(value) && valueType === 'single' && !showAllLevels);\n}\n","import { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\n\nimport type { TreeNode, CascaderContextType, TdCascaderProps, TreeNodeValue, TreeNodeModel } from '../types';\nimport { getFullPathLabel, getTreeValue, isEmptyValues } from './helper';\n\n/**\n * 点击item的副作用\n * @param propsTrigger\n * @param trigger\n * @param node\n * @param cascaderContext\n */\nexport function expendClickEffect(\n propsTrigger: TdCascaderProps['trigger'],\n trigger: TdCascaderProps['trigger'],\n node: TreeNode,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, treeStore, setVisible, setValue, setTreeNodes, setExpend, value, max, valueType } =\n cascaderContext;\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n if (isDisabled) return;\n // 点击展开节点,设置展开状态\n if (propsTrigger === trigger) {\n const expanded = node.setExpanded(true);\n treeStore.refreshNodes();\n treeStore.replaceExpanded(expanded);\n const nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n setTreeNodes(nodes);\n\n // 多选条件下手动维护expend\n if (multiple) {\n setExpend(expanded);\n }\n }\n\n if (!multiple && (node.isLeaf() || checkStrictly) && trigger === 'click') {\n treeStore.resetChecked();\n const checked = node.setChecked(!node.checked);\n const [value] = checked;\n\n // 非受控状态下更新状态\n setValue(valueType === 'single' ? value : node.getPath().map((item) => item.value), 'check', node.getModel());\n\n // 当 trigger 为 hover 时 ,点击节点一定是关闭 panel 的操作\n if (!checkStrictly || propsTrigger === 'hover') {\n setVisible(false, {});\n }\n }\n}\n\n/**\n * 多选状态下选中状态数据变化的副作用\n * @param node\n * @param cascaderContext\n * @returns\n */\nexport function valueChangeEffect(node: TreeNode, cascaderContext: CascaderContextType) {\n const { disabled, max, inputVal, multiple, setVisible, setValue, treeNodes, treeStore, valueType } = cascaderContext;\n\n if (!node || disabled || node.disabled) {\n return;\n }\n const checked = node.setChecked(!node.isChecked());\n\n if (isNumber(max) && max < 0) {\n console.warn('TDesign Warn:', 'max should > 0');\n }\n\n if (checked.length > max && isNumber(max) && max > 0) {\n return;\n }\n\n if (checked.length === 0) {\n const expanded = treeStore.getExpanded();\n setTimeout(() => {\n treeStore.replaceExpanded(expanded);\n treeStore.refreshNodes();\n }, 0);\n }\n\n if (!multiple) {\n setVisible(false, {});\n }\n\n const isSelectAll = treeNodes.every((item) => checked.indexOf(item.value) > -1);\n\n if (inputVal && isSelectAll) {\n setVisible(false, {});\n }\n\n // 处理不同数据类型\n const resValue =\n valueType === 'single'\n ? checked\n : checked.map((val) =>\n treeStore\n .getNode(val)\n .getPath()\n .map((item) => item.value),\n );\n\n setValue(resValue, node.checked ? 'uncheck' : 'check', node.getModel());\n}\n\n/**\n * closeIcon点击副作用\n * @param cascaderContext\n */\nexport function closeIconClickEffect(cascaderContext: CascaderContextType) {\n const { setVisible, multiple, setValue } = cascaderContext;\n\n setVisible(false, {});\n\n setValue(multiple ? [] : '', 'clear');\n}\n\n/**\n * tag 关闭按钮点击副作用\n * @param cascaderContext\n */\nexport function handleRemoveTagEffect(\n cascaderContext: CascaderContextType,\n index: number,\n onRemove: TdCascaderProps['onRemove'],\n) {\n const { disabled, setValue, value, valueType, treeStore } = cascaderContext;\n if (disabled) return;\n\n // index equal to undefined means to click clear button\n if (index !== undefined) {\n const newValue = cloneDeep(value) as [];\n const res = newValue.splice(index, 1);\n const node = treeStore.getNodes(res[0])[0];\n\n const checked = node.setChecked(!node.isChecked());\n // 处理不同数据类型\n const resValue =\n valueType === 'single'\n ? checked\n : checked.map((val) =>\n treeStore\n .getNode(val)\n .getPath()\n .map((item) => item.value),\n );\n setValue(resValue, 'uncheck', node.getModel());\n if (isFunction(onRemove)) {\n onRemove({ value: checked, node: node as any });\n }\n } else {\n if (isFunction(onRemove)) {\n onRemove({ value, node: undefined });\n }\n }\n}\n\n/**\n * input和treeStore变化的副作用\n * @param inputVal\n * @param treeStore\n * @param setTreeNodes\n * @returns\n */\nexport const treeNodesEffect = (\n inputVal: CascaderContextType['inputVal'],\n treeStore: CascaderContextType['treeStore'],\n setTreeNodes: CascaderContextType['setTreeNodes'],\n filter: CascaderContextType['filter'],\n) => {\n if (!treeStore) return;\n let nodes = [];\n if (inputVal) {\n const filterMethods = (node: TreeNode) => {\n if (!node.isLeaf()) return;\n if (isFunction(filter)) {\n return filter(`${inputVal}`, node as TreeNodeModel & TreeNode);\n }\n const fullPathLabel = getFullPathLabel(node, '');\n return fullPathLabel.indexOf(`${inputVal}`) > -1;\n };\n\n nodes = treeStore.nodes.filter(filterMethods);\n } else {\n nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n }\n setTreeNodes(nodes);\n};\n\n/**\n * 初始化展开阶段与展开状态副作用\n * @param treeStore\n * @param treeValue\n * @param expend\n */\nexport const treeStoreExpendEffect = (\n treeStore: CascaderContextType['treeStore'],\n value: CascaderContextType['value'],\n expend: TreeNodeValue[],\n) => {\n const treeValue = getTreeValue(value);\n\n if (!treeStore) return;\n // init expanded, 无expend状态时设置\n if (isArray(treeValue) && expend.length === 0) {\n const expandedMap = new Map();\n const [val] = treeValue;\n if (!isEmptyValues(val)) {\n expandedMap.set(val, true);\n const node = treeStore.getNode(val);\n if (!node) {\n treeStore.refreshNodes();\n return;\n }\n node.getParents().forEach((tn: TreeNode) => {\n expandedMap.set(tn.value, true);\n });\n const expandedArr = Array.from(expandedMap.keys());\n treeStore.replaceExpanded(expandedArr);\n }\n }\n // 本地维护 expend,更加可控,不需要依赖于 tree 的状态\n if (treeStore.getExpanded() && expend.length) {\n treeStore.replaceExpanded(expend);\n }\n treeStore.refreshNodes();\n};\n","import { defineComponent, PropType, computed, ref } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { getFullPathLabel, getCascaderItemClass, getCascaderItemIconClass } from '../utils';\n\nimport Checkbox from '../../checkbox/index';\nimport TLoading from '../../loading';\n\nimport { CascaderContextType, TreeNodeValue, TreeNode, TdCascaderProps } from '../types';\nimport { usePrefixClass, useCommonClassName } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport useRipple from '../../hooks/useRipple';\n\nconst props = {\n node: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n optionChild: {\n type: [Object, Array] as PropType,\n },\n cascaderContext: {\n type: Object as PropType,\n },\n onChange: Function as PropType<() => void>,\n onClick: Function as PropType<() => void>,\n onMouseenter: Function as PropType<() => void>,\n};\n\nexport default defineComponent({\n name: 'TCascaderItem',\n props,\n setup(props) {\n const liRef = ref();\n useRipple(liRef);\n\n const COMPONENT_NAME = usePrefixClass('cascader__item');\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon } = useGlobalIcon({ ChevronRightIcon: TdChevronRightIcon });\n const { STATUS, SIZE } = useCommonClassName();\n\n const itemClass = computed(() => {\n return getCascaderItemClass(classPrefix.value, props.node, SIZE.value, STATUS.value, props.cascaderContext);\n });\n\n const iconClass = computed(() => {\n return getCascaderItemIconClass(classPrefix.value, props.node, STATUS.value, props.cascaderContext);\n });\n\n function RenderLabelInner(node: TreeNode, cascaderContext: CascaderContextType) {\n const { inputVal } = cascaderContext;\n const labelText = inputVal ? getFullPathLabel(node) : node.label;\n if (inputVal) {\n const texts = labelText.split(inputVal as string);\n const doms = [];\n for (let index = 0; index < texts.length; index++) {\n doms.push({texts[index]});\n if (index === texts.length - 1) break;\n doms.push(\n \n {inputVal}\n ,\n );\n }\n return doms;\n }\n return labelText;\n }\n\n const renderTitle = (node: TreeNode) => {\n if (typeof node.label === 'string') return node.label;\n\n return null;\n };\n\n function RenderLabelContent(node: TreeNode, cascaderContext: CascaderContextType) {\n const label = RenderLabelInner(node, cascaderContext);\n\n const labelCont = (\n \n {label}\n \n );\n\n return labelCont;\n }\n\n function RenderCheckBox(node: TreeNode, cascaderContext: CascaderContextType) {\n const { checkProps, value, max, inputVal } = cascaderContext;\n const label = RenderLabelInner(node, cascaderContext);\n return (\n = max && max !== 0)}\n // node.value maybe string or number\n name={String(node.value)}\n stopLabelTrigger={!!node.children}\n title={inputVal ? getFullPathLabel(node) : renderTitle(node)}\n onChange={() => {\n props.onChange();\n }}\n {...checkProps}\n >\n {label}\n \n );\n }\n\n return () => {\n const { cascaderContext, node, optionChild } = props;\n const isOptionChildAndMultiple = optionChild && cascaderContext.multiple;\n return (\n (isOptionChildAndMultiple ? props.onChange() : props.onClick())}\n onMouseenter={props.onMouseenter}\n >\n {optionChild ||\n (cascaderContext.multiple\n ? RenderCheckBox(node, cascaderContext)\n : RenderLabelContent(node, cascaderContext))}\n {node.children &&\n (node.loading ? (\n \n ) : (\n \n ))}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCascaderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 是否支持清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 无匹配选项时的内容,默认全局配置为 '暂无数据' */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 用来定义 value / label / children / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 延迟加载 children 为 true 的子节点,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 加载子树数据的方法(仅当节点 children 为 true 时生效) */\n load: {\n type: Function as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 自定义单个级联选项 */\n option: {\n type: Function as PropType,\n },\n /** 可选项数据源 */\n options: {\n type: Array as PropType,\n default: (): TdCascaderProps['options'] => [],\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 参考 popup 组件 API */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 选中值使用完整路径,输入框在单选时也显示完整路径 */\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCascaderProps['size'],\n validator(val: TdCascaderProps['size']): boolean {\n if (!val) return true;\n return ['large', 'medium', 'small'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdCascaderProps['status'],\n validator(val: TdCascaderProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 展开下一层级的方式 */\n trigger: {\n type: String as PropType,\n default: 'click' as TdCascaderProps['trigger'],\n validator(val: TdCascaderProps['trigger']): boolean {\n if (!val) return true;\n return ['click', 'hover'].includes(val);\n },\n },\n /** 选中项的值 */\n value: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n modelValue: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n /** 选中项的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array] as PropType,\n default: (): TdCascaderProps['defaultValue'] => [] as TdCascaderProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdCascaderProps['valueMode'],\n validator(val: TdCascaderProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 用于控制选中值的类型。single 表示输入输出值为 叶子结点值, full 表示输入输出值为全路径 */\n valueType: {\n type: String as PropType,\n default: 'single' as TdCascaderProps['valueType'],\n validator(val: TdCascaderProps['valueType']): boolean {\n if (!val) return true;\n return ['single', 'full'].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发。TreeNodeModel 从树组件中导出。`context.node` 表示触发事件的节点,`context.source` 表示触发事件的来源 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n};\n","import { defineComponent, PropType, computed, h } from 'vue';\n\nimport Item from './Item';\nimport { TreeNode, CascaderContextType } from '../types';\nimport CascaderProps from '../props';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useTNodeDefault } from '../../hooks/tnode';\nimport { getDefaultNode } from '../../utils/render-tnode';\nimport { getPanels, expendClickEffect, valueChangeEffect } from '../utils';\n\nexport default defineComponent({\n name: 'TCascaderSubPanel',\n props: {\n option: CascaderProps.option,\n empty: CascaderProps.empty,\n trigger: CascaderProps.trigger,\n onChange: CascaderProps.onChange,\n loading: CascaderProps.loading,\n loadingText: CascaderProps.loadingText,\n cascaderContext: {\n type: Object as PropType,\n },\n },\n\n setup(props) {\n const renderTNodeJSXDefault = useTNodeDefault();\n const COMPONENT_NAME = usePrefixClass('cascader');\n const { globalConfig } = useConfig('cascader');\n\n const panels = computed(() => getPanels(props.cascaderContext.treeNodes));\n\n const handleExpand = (node: TreeNode, trigger: 'hover' | 'click') => {\n const { trigger: propsTrigger, cascaderContext } = props;\n expendClickEffect(propsTrigger, trigger, node, cascaderContext);\n };\n\n const renderItem = (node: TreeNode, index: number) => {\n const optionChild = node.data.content\n ? getDefaultNode(node.data.content(h))\n : renderTNodeJSXDefault('option', {\n params: { item: node.data, index },\n });\n return (\n {\n handleExpand(node, 'click');\n }}\n onMouseenter={() => {\n handleExpand(node, 'hover');\n }}\n onChange={() => {\n valueChangeEffect(node, props.cascaderContext);\n }}\n />\n );\n };\n\n const renderList = (treeNodes: TreeNode[], isFilter = false, segment = true, index = 1) => (\n \n {treeNodes.map((node: TreeNode) => renderItem(node, index))}\n \n );\n\n const renderPanels = () => {\n const { inputVal, treeNodes } = props.cascaderContext;\n return inputVal\n ? renderList(treeNodes, true)\n : panels.value.map((treeNodes, index: number) =>\n renderList(treeNodes, false, index !== panels.value.length - 1, index),\n );\n };\n\n return () => {\n let content;\n if (props.loading) {\n content = renderTNodeJSXDefault(\n 'loadingText',\n
    {globalConfig.value.loadingText}
    ,\n );\n } else {\n content = panels.value.length\n ? renderPanels()\n : renderTNodeJSXDefault(\n 'empty',\n
    {globalConfig.value.empty}
    ,\n );\n }\n return (\n \n {content}\n \n );\n };\n },\n});\n","import { isUndefined, isBoolean, omit, get } from 'lodash-es';\nimport { TreeNode } from './tree-node';\nimport { OptionData } from '../common';\nimport {\n TreeNodeValue,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeItem,\n} from './types';\nimport log from '../log/log';\n\nexport const nodeKey = '__tdesign_tree-node__';\n\nexport class TreeNodeModel {\n private [nodeKey]: TreeNode;\n\n constructor(node: TreeNode) {\n this[nodeKey] = node;\n }\n\n public get value() {\n const node = this[nodeKey];\n return node.value;\n }\n\n public get label() {\n const node = this[nodeKey];\n return node.label;\n }\n\n public get data() {\n const node = this[nodeKey];\n return node.data;\n }\n\n public get actived() {\n const node = this[nodeKey];\n return node.actived;\n }\n\n public get expanded() {\n const node = this[nodeKey];\n return node.expanded;\n }\n\n public get checked() {\n const node = this[nodeKey];\n return node.checked;\n }\n\n public get indeterminate() {\n const node = this[nodeKey];\n return node.indeterminate;\n }\n\n public get loading() {\n const node = this[nodeKey];\n return node.loading;\n }\n\n public get disabled() {\n const node = this[nodeKey];\n return node.isDisabled();\n }\n\n /**\n * 获取节点所处层级\n * @return number 节点层级序号\n */\n public getLevel() {\n const node = this[nodeKey];\n return node.getLevel();\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex() {\n const node = this[nodeKey];\n return node.getIndex();\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst() {\n const node = this[nodeKey];\n return node.isFirst();\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast() {\n const node = this[nodeKey];\n return node.isLast();\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf() {\n const node = this[nodeKey];\n return node.isLeaf();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertBefore(newData);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertAfter(newData);\n }\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public appendData(data: TypeTreeNodeData | TypeTreeNodeData[]) {\n const node = this[nodeKey];\n return node.append(data);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNodeModel[] 路径节点数组\n */\n public getPath(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getPath();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的父节点\n * @return TreeNodeModel 父节点\n */\n public getParent(): TypeTreeNodeModel {\n const node = this[nodeKey];\n return node.parent?.getModel();\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNodeModel[] 父级节点数组\n */\n public getParents(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getParents();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNodeModel 根节点\n */\n public getRoot(): TypeTreeNodeModel {\n const node = this[nodeKey];\n const root = node.getRoot();\n return root?.getModel();\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNodeModel[] 兄弟节点数组\n */\n public getSiblings(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getSiblings();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n const node = this[nodeKey];\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = node;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = node.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 移除节点\n * - 提供 value 参数,移除本节点子节点中的节点\n * - 不提供 value 参数,移除自己\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TreeNodeValue) {\n const node = this[nodeKey];\n if (!value) {\n node.remove();\n return;\n }\n\n const { tree } = node;\n const targetNode = tree.getNode(value);\n if (!targetNode) {\n log.warnOnce('Tree', `\\`${value}\\` is not exist`);\n return;\n }\n\n const parents = targetNode.getParents();\n const parentValues = parents.map((pnode) => (pnode.value));\n if (parentValues.indexOf(node.value) < 0) {\n log.warnOnce('Tree', `\\`${value}\\` is not a childNode of current node`);\n return;\n }\n targetNode.remove();\n }\n\n /**\n * 设置本节点携带的元数据\n * @param {object} data 节点数据\n * @return void\n */\n public setData(data: OptionData) {\n const node = this[nodeKey];\n // syncAttrs 列举的属性,key 名称可被 tree.config.keys 定义\n // 因此同步状态时需要读取被定义的 key 名称\n // 详细细节可见 https://github.com/Tencent/tdesign-common/issues/655\n const syncAttrs = [\n 'value',\n 'label',\n 'disabled',\n ];\n const cleanData = omit(data, ['children', ...syncAttrs]) as Partial;\n const { keys } = node.tree.config;\n syncAttrs.forEach((attr: string) => {\n const dataAttrValue = get(data, keys?.[attr as keyof typeof keys] || attr);\n if (!isUndefined(dataAttrValue)) cleanData[attr as keyof typeof keys] = dataAttrValue;\n });\n Object.assign(node.data, cleanData);\n Object.assign(node, cleanData);\n node.update();\n }\n}\n\n// 封装对外暴露的对象\nexport function createNodeModel(node: TreeNode): TypeTreeNodeModel {\n const model = new TreeNodeModel(node);\n return model as TypeTreeNodeModel;\n}\n","import { isNull, isFunction, isNumber, uniqueId, isBoolean, isNil, get } from 'lodash-es';\nimport { TreeStore } from './tree-store';\nimport {\n TreeNodeValue,\n TreeNodeState,\n TypeIdMap,\n TypeTreeItem,\n TypeSettingOptions,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeStoreOptions,\n TypeFnOperation,\n} from './types';\nimport {\n createNodeModel,\n} from './tree-node-model';\nimport log from '../log';\n\nconst { hasOwnProperty } = Object.prototype;\n\n// 这里的属性为 data 中属性可以同步到 treeNode 实例属性的白名单\n// 仅 label 属性和在列表中的属性可以通过 set 方法配置到 treeNode 实例上\nexport const settableStatus: Record = {\n expandMutex: null,\n activable: null,\n checkable: null,\n draggable: null,\n loading: false,\n};\n\nexport const settableProps = Object.keys(settableStatus);\n\nexport const syncableProps = [...settableProps, 'actived', 'expanded', 'checked'];\n\nexport const privateKey = '__tdesign_id__';\n\n// vm 开头为视图属性,不可以外部设置\n// 用于触发视图更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 节点数据模型\n * @class TreeNode\n * @param {TreeStore} tree TreeStore 实例\n * @param {object} [data] 节点数据\n * @param {TreeNode} parent 指定的当前 TreeStore 实例中的父节点\n */\nexport class TreeNode {\n // 节点隶属的树实例\n public tree: TreeStore;\n\n // 节点私有 id,不接受外部传入,确保唯一性\n public [privateKey]: string;\n\n // 节点 id ,唯一标志\n public value: string;\n\n // 节点文本\n public label: string;\n\n // 节点数据\n public data: TypeTreeNodeData;\n\n // 父节点\n public parent: TreeNode;\n\n // 子节点列表\n public children: TreeNode[] | boolean;\n\n // 暴露的 treeNodeModel,这个对象的属性和 api 提供给用户使用\n public model: TypeTreeNodeModel;\n\n // 是否为叶节点\n public vmIsLeaf: boolean;\n\n // 是否为子节点中的第一个\n public vmIsFirst: boolean;\n\n // 是否为子节点中的最后\n public vmIsLast: boolean;\n\n // 节点是否是经过过滤剩下的\n public vmIsRest: boolean;\n\n // 节点是否展示为锁定状态\n public vmIsLocked: boolean;\n\n // 节点在视图上实际的展开状态\n public expanded: boolean;\n\n // 展开时是否收起同级节点,对子节点生效\n public expandMutex: null | boolean;\n\n // 节点在视图上实际的激活状态\n public actived: boolean;\n\n // 是否可激活\n public activable: null | boolean;\n\n // 是否可选中\n public checkable: null | boolean;\n\n // 是否可选中的视图呈现\n public vmCheckable: boolean;\n\n // 节点在视图上实际的选中态\n public checked: boolean;\n\n // 节点实际是否为半选状态\n public indeterminate: boolean;\n\n // 节点是否已禁用\n public disabled: null | boolean;\n\n // 节点是否可拖动\n public draggable: null | boolean;\n\n // 节点是否可视\n public visible: boolean;\n\n // 节点在树中的层级\n public level: number;\n\n // 节点是否正在加载数据\n public loading: boolean;\n\n public constructor(\n tree: TreeStore,\n data?: TypeTreeNodeData,\n parent?: TreeNode,\n ) {\n this.data = data;\n this.tree = tree;\n\n const config = tree.config || {};\n const prefix = config.prefix || 't';\n const keys = config.keys || {};\n const propChildren = keys.children || 'children';\n const propLabel = keys.label || 'label';\n const propValue = keys.value || 'value';\n const propDisabled = keys.disabled || 'disabled';\n\n // 节点自身初始化数据\n this.model = null;\n this.children = null;\n this.level = 0;\n\n // vm 开头为视图属性,不可以外部设置\n this.vmCheckable = false;\n this.vmIsLeaf = false;\n this.vmIsFirst = false;\n this.vmIsLast = false;\n this.vmIsRest = false;\n this.vmIsLocked = false;\n\n // 初始化节点基本状态\n this.visible = false;\n this.actived = false;\n this.checked = false;\n this.indeterminate = false;\n this.loading = false;\n this.expanded = config.expandAll;\n\n // 下面几个属性,节点初始化的时候,可以设置与 treeStore.config 不同的值\n // 初始化默认值为 null, 则在方法判断时,默认以 treeStore.config 为准\n // 传递或者设置属性为 boolean 类型的值,则以节点属性值为准\n // 这种处理方式主要是解决 treeStore.setConfig 方法配置全局属性导致的状态切换与保留的问题\n this.activable = null;\n this.checkable = null;\n this.expandMutex = null;\n this.draggable = null;\n\n // 为节点设置唯一 id\n // tree 数据替换时,value 相同有可能导致节点状态渲染冲突\n // 用这个 唯一 id 来解决,用于类似 vue 组件的唯一 key 指定场景\n this[privateKey] = uniqueId(prefix);\n\n // 设置 value\n // 没有 value 的时候,value 默认使用自动生成的 唯一 id\n this.value = isNil(get(data, propValue))\n ? this[privateKey]\n : get(data, propValue);\n const { nodeMap, privateMap } = tree;\n if (nodeMap.get(this.value)) {\n log.warn('Tree', `Dulplicate value: ${this.value}`);\n }\n nodeMap.set(this.value, this);\n privateMap.set(this[privateKey], this);\n\n // 设置标签\n this.label = get(data, propLabel) || '';\n // 设置是否禁用\n this.disabled = get(data, propDisabled) || false;\n\n // 设置子节点\n const children = data[propChildren];\n // 子节点为 true 的状态逻辑需要放到状态计算之前\n // 初始化加载逻辑需要依据这个来进行\n if (children === true) {\n this.children = children;\n }\n\n // 设置父节点\n if (parent && parent instanceof TreeNode) {\n this.parent = parent;\n } else {\n this.parent = null;\n }\n\n // 同步数据属性到节点属性\n // 仅 syncableStatus 列举的属性被同步到 treeNode 实例属性\n syncableProps.forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n // @ts-ignore\n // TODO: 待移除\n this[prop] = data[prop];\n }\n });\n\n // 初始化节点激活状态\n this.initActived();\n // 展开状态影响了子节点的显示状态,所以要在子节点插入之前初始化展开状态\n this.initExpanded();\n\n // 这里的子节点加载逻辑不能放到状态初始化之前\n // 因为子节点状态计算依赖父节点初始化状态\n if (Array.isArray(children)) {\n this.append(children);\n } else if (children === true && !config.lazy) {\n this.loadChildren();\n }\n\n // 节点的选中状态同时依赖于子节点状态与父节点状态\n // 因此在子节点插入之后再更新选中状态\n this.initChecked();\n this.updateChecked();\n\n // 标记节点更新\n this.update();\n // 创建节点需要回流操作\n tree.reflow(this);\n }\n\n /* ------ 状态初始化 ------ */\n\n /**\n * 初始化选中态\n * @return void\n */\n private initChecked(): void {\n const { tree, value, parent } = this;\n const { checkedMap } = tree;\n const { checkStrictly } = tree.config;\n if (this.checked) {\n checkedMap.set(value, true);\n }\n // 这里不可以使用 parent.isChecked 方法\n // 因为当前节点创建时尚未插入父节点的 children 数组,可能父节点选中态仅受到之前子节点状态的影响\n // 这会导致父节点状态计算错误,进而引发子节点变更了选中状态\n if (!checkStrictly && parent?.checked) {\n checkedMap.set(value, true);\n }\n }\n\n /**\n * 初始化节点展开状态\n * @return void\n */\n private initExpanded(): void {\n const { tree } = this;\n let { expanded } = this;\n const { config } = tree;\n if (isNumber(config.expandLevel) && this.getLevel() < config.expandLevel) {\n tree.expandedMap.set(this.value, true);\n expanded = true;\n }\n if (this.children === true && config.lazy) {\n expanded = false;\n }\n if (expanded) {\n tree.expandedMap.set(this.value, true);\n } else {\n tree.expandedMap.delete(this.value);\n }\n this.expanded = expanded;\n }\n\n /**\n * 初始化节点激活状态\n * @return void\n */\n private initActived(): void {\n const { tree, actived } = this;\n if (actived && this.isActivable()) {\n tree.activedMap.set(this.value, true);\n }\n }\n\n /* ------ 节点操作 ------ */\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public append(data: TypeTreeNodeData | TypeTreeNodeData[]): void {\n const list = [];\n if (!Array.isArray(data)) {\n list.push(data);\n } else {\n list.push(...data);\n }\n if (list.length <= 0) {\n return;\n }\n if (!Array.isArray(this.children)) {\n this.children = [];\n }\n const { children, tree } = this;\n list.forEach((item) => {\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(this.tree, this);\n } else {\n node = new TreeNode(this.tree, item, this);\n children.push(node);\n }\n });\n tree.reflow(this);\n this.updateRelated();\n }\n\n /**\n * 将当前节点追加到某个父节点的子节点列表中\n * @param {TreeStore} tree 目标树\n * @param {TreeNode} [parent] 目标父节点\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n public appendTo(tree: TreeStore, parent?: TreeNode, index?: number): void {\n const parentNode = parent;\n let targetIndex = -1;\n if (isNumber(index)) {\n targetIndex = index;\n }\n\n const targetParents = parentNode?.getParents() || [];\n const includeCurrent = targetParents.some((pnode) => pnode === this);\n if (includeCurrent) {\n throw new Error('无法将父节点插入到子节点');\n }\n\n if (parentNode === this) {\n throw new Error('无法将节点插入到本节点');\n }\n\n if (Array.isArray(parentNode?.children)) {\n const targetPosNode = parentNode?.children[targetIndex];\n if (targetPosNode && targetPosNode === this) {\n // 无需将节点插入到原位置\n return;\n }\n }\n\n // 先要取得 siblings\n // 因为要应对节点在同一个 siblings 中变换位置的情况\n let siblings = null;\n if (parentNode instanceof TreeNode) {\n if (!Array.isArray(parentNode?.children)) {\n parentNode.children = [];\n }\n siblings = parent.children;\n } else {\n siblings = tree.children;\n }\n\n // 上面的逻辑其实已经覆盖了所有业务情况\n // 这里的逻辑报错仅用于极限兜底,防止 treeStore 被误使用\n if (!Array.isArray(siblings)) {\n throw new Error('无法插入到目标位置,可插入的节点列表不存在');\n }\n\n const prevLength = siblings.length;\n const prevIndex = this.getIndex();\n\n this.remove();\n\n if (isNumber(index)) {\n let targetIndex = index;\n if (parentNode === this.parent) {\n // 前置节点被拔出后再插入到同一个 siblings 时,会引起目标 index 的变化\n // 因此要相应的变更插入位置\n // 后置节点被拔出时,目标 index 是不变的\n const curLength = siblings.length;\n if (curLength < prevLength && prevIndex <= targetIndex) {\n targetIndex -= 1;\n }\n }\n siblings.splice(targetIndex, 0, this);\n } else {\n siblings.push(this);\n }\n\n this.parent = parentNode;\n\n // 插入节点应当继承展开状态\n // 但不要继承选中状态和高亮状态\n const nodes = this.walk();\n nodes.forEach((item) => {\n const node = item;\n node.tree = tree;\n tree.nodeMap.set(node.value, node);\n tree.privateMap.set(node[privateKey], node);\n if (node.expanded) {\n tree.expandedMap.set(node.value, true);\n }\n });\n\n const updateNodes = parentNode?.walk() || tree.children.map((item) => item.walk()).flat();\n updateNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n\n tree.reflow();\n }\n\n /**\n * 插入一个节点或者数据到到同级节点的目标位置\n * @param {TreeNode | object} item 要插入的节点或者数据\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n private insert(item: TypeTreeItem, index?: number): void {\n const { tree, parent } = this;\n const siblings = this.getSiblings();\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(tree, parent, index);\n } else if (item) {\n node = new TreeNode(tree, item, parent);\n if (isNumber(index)) {\n siblings.splice(index, 0, node);\n }\n siblings.forEach((sibling) => {\n sibling.update();\n });\n }\n tree.reflow();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index + 1);\n }\n\n /**\n * 从当前树中移除本节点\n * @return void\n */\n public remove(): void {\n const { tree } = this;\n\n const nodes = this.walk();\n const siblings = this.getSiblings();\n const index = this.getIndex();\n // 从父节点的子节点列表中移除自己\n // 但不要将自己的父节点移除,避免渲染与判断失败\n if (Array.isArray(siblings)) {\n siblings.splice(index, 1);\n }\n // 清理与树的关系,但不清理自身状态\n nodes.forEach((node) => {\n node.clean();\n });\n // 同级节点的连线状态会受到影响\n siblings.forEach((node) => {\n node.update();\n });\n // 父节点选中态会受到影响\n this.updateParents();\n tree.reflow();\n }\n\n /**\n * 清除本节点与当前树的关系\n * @return void\n */\n private clean(): void {\n const { tree, value } = this;\n tree.activedMap.delete(value);\n tree.checkedMap.delete(value);\n tree.expandedMap.delete(value);\n tree.nodeMap.delete(value);\n tree.filterMap.delete(value);\n tree.privateMap.delete(this[privateKey]);\n }\n\n /**\n * 异步加载子节点\n * @return Promise\n */\n private async loadChildren(): Promise {\n const config: TypeTreeStoreOptions = get(this, 'tree.config') || {};\n if (this.children === true && !this.loading) {\n if (isFunction(config.load)) {\n this.loading = true;\n this.update();\n let list = [];\n list = await config.load(this);\n this.tree.emit('load', {\n node: this,\n data: list,\n });\n this.loading = false;\n if (Array.isArray(list) && list.length > 0) {\n this.append(list);\n } else {\n this.children = false;\n }\n this.update();\n }\n }\n }\n\n /**\n * 设置节点状态\n * - 为节点设置独立于配置的 disabled 状态: set({ disabled: true })\n * - 清除独立于配置的 disabled 状态: set({ disabled: null })\n * @param {object} item 节点状态对象\n * @return void\n */\n public set(item: TreeNodeState): void {\n const { tree } = this;\n const keys = Object.keys(item);\n keys.forEach((key) => {\n // key, disabled 字段可被 tree.config.keys 定义\n if (hasOwnProperty.call(settableStatus, key) || key === 'label') {\n // @ts-ignore\n // TODO: 待移除\n this[key] = item[key];\n }\n if (key === 'disabled') {\n this.setDisabled(item[key]);\n }\n });\n tree.updated(this);\n }\n\n /* ------ 节点获取 ------- */\n\n /**\n * 获取本节点的父节点\n * @return TreeNode 父节点\n */\n public getParent(): TreeNode {\n return this.parent;\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNode[] 父级节点数组\n */\n public getParents(): TreeNode[] {\n const parents = [];\n let node = this.parent;\n while (node) {\n parents.push(node);\n node = node.parent;\n }\n return parents;\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNode[] 兄弟节点数组\n */\n public getSiblings(): TreeNode[] {\n const { parent, tree } = this;\n let list: TreeNode[] = [];\n if (parent) {\n if (Array.isArray(parent.children)) {\n list = parent.children;\n }\n } else if (tree) {\n list = tree.children;\n }\n return list;\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = this;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = this.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNode 根节点\n */\n public getRoot(): TreeNode {\n const parents = this.getParents();\n return parents[parents.length - 1] || null;\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex(): number {\n const list = this.getSiblings();\n return list.indexOf(this);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNode[] 路径节点数组\n */\n public getPath(): TreeNode[] {\n const nodes = this.getParents();\n nodes.unshift(this);\n return nodes.reverse();\n }\n\n /**\n * 获取节点所在层级\n * @return number 层级序号\n */\n public getLevel(): number {\n const parents = this.getParents();\n return parents.length;\n }\n\n /* ------ 节点状态判断 ------ */\n\n /**\n * 判断节点是否被过滤\n * @return boolean 是否被过滤方法命中\n */\n public isRest(): boolean {\n const { config, filterMap, hasFilter } = this.tree;\n\n let rest = false;\n if (hasFilter) {\n // 仅在存在过滤条件时,过滤命中才有效\n const nodeModel = this.getModel();\n rest = config.filter(nodeModel);\n }\n\n if (rest) {\n filterMap.set(this.value, true);\n } else if (filterMap.get(this.value)) {\n filterMap.delete(this.value);\n }\n\n return rest;\n }\n\n /**\n * 判断节点是否可见\n * @return boolean 是否可见\n */\n public isVisible(): boolean {\n const { nodeMap, hasFilter, config } = this.tree;\n const { allowFoldNodeOnFilter } = config;\n\n let visible = true;\n\n if (!nodeMap.get(this.value)) {\n // 节点不在当前树上,所以不可见\n return false;\n }\n\n if (hasFilter && !allowFoldNodeOnFilter) {\n // 如果存在过滤条件\n // 锁定状态和过滤命中状态,直接呈现\n visible = this.vmIsLocked || this.vmIsRest;\n return visible;\n }\n\n // 标志所有父节点展开导致的可见状态\n let expandVisible = true;\n const parents = this.getParents();\n if (parents.length > 0) {\n expandVisible = parents.every((node: TreeNode) => node.expanded);\n }\n\n if (hasFilter) {\n visible = expandVisible && (this.vmIsRest || this.vmIsLocked);\n } else {\n visible = expandVisible;\n }\n return visible;\n }\n\n /**\n * 判断节点为逻辑禁用状态,不包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabledState(): boolean {\n const { tree, parent } = this;\n const { config } = tree;\n const { disabled, disableCheck, checkStrictly } = config;\n let state = disabled || false;\n if (this.disabled) {\n // 整个树被禁用,则节点为禁用状态\n state = true;\n }\n if (!checkStrictly && parent?.isDisabledState()) {\n // 如果 checkStrictly 为 false\n // 父节点被禁用,则子节点也为禁用状态\n state = true;\n }\n if (typeof disableCheck === 'boolean') {\n if (disableCheck) {\n state = true;\n }\n } else if (typeof disableCheck === 'function') {\n // disableCheck 视为禁用节点的过滤函数\n if (disableCheck(this.getModel())) {\n state = true;\n }\n }\n return state;\n }\n\n /**\n * 判断节点是否呈现为禁用态,包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabled(): boolean {\n const { tree } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && this.vmIsLocked && !this.vmIsRest) {\n // 当前树存在过滤条件,允许节点过滤后被折叠,当前节点为锁定节点,并且不是筛选后剩下的节点\n // 则该节点应当呈现禁用状态\n return true;\n }\n return this.isDisabledState();\n }\n\n /**\n * 判断节点是否能拖拽\n * @return boolean 是否能拖拽\n */\n public isDraggable(): boolean {\n let state = !!get(this, 'tree.config.draggable');\n if (typeof this.draggable === 'boolean') {\n state = this.draggable;\n }\n return state;\n }\n\n /**\n * 判断子节点是否互斥展开\n * @return boolean 子节点是否互斥展开\n */\n public isExpandMutex(): boolean {\n let state = !!get(this, 'tree.config.expandMutex');\n if (typeof this.expandMutex === 'boolean') {\n state = this.expandMutex;\n }\n return state;\n }\n\n /**\n * 节点是否可被激活\n * @return boolean 是否可被激活\n */\n public isActivable() {\n let state = !!get(this, 'tree.config.activable');\n if (typeof this.activable === 'boolean') {\n state = this.activable;\n }\n return state;\n }\n\n /**\n * 节点是否可选\n * @return boolean 是否可选\n */\n public isCheckable() {\n let state = !!get(this, 'tree.config.checkable');\n if (typeof this.checkable === 'boolean') {\n state = this.checkable;\n }\n return state;\n }\n\n /**\n * 节点是否被激活\n * @param {Map} [map] 预设激活节点 map, 用于计算节点在预期环境中的激活状态\n * @return boolean 是否被激活\n */\n public isActived(map?: Map): boolean {\n const { tree, value } = this;\n const activedMap = map || tree.activedMap;\n return !!(tree.nodeMap.get(value) && activedMap.get(value));\n }\n\n /**\n * 节点是否已展开\n * @param {Map} [map] 预设展开节点 map, 用于计算节点在预期环境中的展开状态\n * @return boolean 是否已展开\n */\n public isExpanded(map?: Map): boolean {\n const { tree, value, vmIsLocked } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && vmIsLocked) return true;\n const expandedMap = map || tree.expandedMap;\n return !!(tree.nodeMap.get(value) && expandedMap.get(value));\n }\n\n /**\n * 节点是否被选中\n * @param {Map} [map] 预设选中节点 map, 用于计算节点在预期环境中的选中态\n * @return boolean 是否被选中\n */\n public isChecked(map?: TypeIdMap): boolean {\n const { children, tree, value } = this;\n const { checkStrictly, valueMode } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n const checkedMap = map || tree.checkedMap;\n // 严格模式,则已经可以判定选中状态\n if (checkStrictly) {\n return !!checkedMap.get(value);\n }\n let checked = false;\n // 在 checkedMap 中,则根据 valueMode 的值进行判断\n if (checkedMap.get(value)\n && (\n // 如果 valueMode 为 all、parentFirst,则视为选中\n valueMode !== 'onlyLeaf'\n // 如果 valueMode 为 onlyLeaf 并且当前节点是叶子节点,则视为选中\n || this.isLeaf()\n )\n ) {\n return true;\n }\n // 如果 valueMode 为 onlyLeaf 并且当前节点是父节点,则进一步判断\n if (Array.isArray(children) && children.length > 0) {\n // 子节点全部选中,则当前节点选中\n checked = children.every((node) => {\n const childIsChecked = node.isChecked(checkedMap);\n return childIsChecked;\n });\n } else {\n // 从父节点状态推断子节点状态\n // 这里再调用 isChecked 会导致死循环\n const parents = this.getParents();\n checked = parents.some((node) => checkedMap.get(node.value));\n }\n return checked;\n }\n\n /**\n * 是否为半选状态\n * @return boolean 是否为半选状态\n */\n public isIndeterminate(): boolean {\n const { children, tree, value } = this;\n const { checkStrictly } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n // 严格模式没有半选状态\n if (checkStrictly) return false;\n // 叶节点不存在半选状态\n if (!Array.isArray(children)) return false;\n\n let childChecked: null | boolean = null;\n const indeterminate = children.some((node: TreeNode) => {\n if (node.isIndeterminate()) {\n // 子节点有任意一个半选,则其为半选状态\n return true;\n }\n if (isNull(childChecked)) {\n childChecked = node.isChecked();\n }\n if (childChecked !== node.isChecked()) {\n // 子节点选中状态不一致,则其为半选状态\n return true;\n }\n return false;\n });\n\n return indeterminate;\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst(): boolean {\n const siblings = this.getSiblings();\n return siblings[0] === this;\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast(): boolean {\n const siblings = this.getSiblings();\n return siblings[siblings.length - 1] === this;\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf(): boolean {\n let isLeaf = false;\n if (Array.isArray(this.children)) {\n isLeaf = this.children.length <= 0;\n } else {\n isLeaf = !this.children;\n }\n return isLeaf;\n }\n\n /* ------ 节点状态切换 ------ */\n\n /**\n * 锁定节点,解锁节点\n * - 搜索过滤节点时,路径节点需要固定呈现,视其为锁定态\n * @param {boolean} lockState 锁定状态\n * @return void\n */\n public lock(lockState: boolean): void {\n this.vmIsLocked = lockState;\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n }\n\n /**\n * 节点展开关闭后需要调用的状态检查函数\n * @return void\n */\n public afterExpanded(): void {\n this.update();\n // 节点展开时检查延迟加载的数据\n if (this.expanded && this.children === true) {\n this.loadChildren();\n }\n this.updateChildren();\n }\n\n /**\n * 切换节点展开状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树展开的节点值数组\n */\n public toggleExpanded(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setExpanded(!this.isExpanded(), opts);\n }\n\n /**\n * 设置节点展开状态\n * @param {boolean} expanded 节点展开状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树展开的节点值数组\n */\n public setExpanded(\n expanded: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const { config } = tree;\n const options = {\n directly: false,\n ...opts,\n };\n\n let map = tree.expandedMap;\n if (!options.directly) {\n map = new Map(tree.expandedMap);\n }\n\n // 手风琴效果,先折叠同级节点\n if (expanded) {\n // 列举需要展开的节点\n const shouldExpandNodes = [];\n // 自己一定在展开列表中\n shouldExpandNodes.push(this);\n if (config.expandParent) {\n // expandParent 为 true,则父节点都要展开\n this.getParents().forEach((node) => {\n shouldExpandNodes.push(node);\n });\n }\n shouldExpandNodes.forEach((node) => {\n let isExpandMutex = false;\n // 对于每一个节点,都需要判断是否启用手风琴效果\n if (node.parent) {\n isExpandMutex = node.parent.isExpandMutex();\n } else {\n isExpandMutex = tree?.config?.expandMutex;\n }\n if (isExpandMutex) {\n // 折叠列表中,先移除同级节点\n const siblings = node.getSiblings();\n siblings.forEach((snode) => {\n map.delete(snode.value);\n // 同级节点相关状态更新\n snode.update();\n snode.updateChildren();\n });\n }\n // 最后设置自己的折叠状态\n map.set(node.value, true);\n node.update();\n node.updateChildren();\n });\n } else {\n map.delete(this.value);\n }\n\n if (options.directly) {\n this.afterExpanded();\n }\n\n return tree.getExpanded(map);\n }\n\n /**\n * 切换节点激活状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树激活的节点值数组\n */\n public toggleActived(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setActived(!this.isActived(), opts);\n }\n\n /**\n * 设置节点激活状态\n * @param {boolean} actived 节点激活状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树激活的节点值数组\n */\n public setActived(\n actived: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n const config = tree.config || {};\n let map = tree.activedMap;\n if (!options.directly) {\n map = new Map(tree.activedMap);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换激活状态\n return tree.getActived(map);\n }\n if (this.isActivable()) {\n if (actived) {\n const prevKeys = Array.from(map.keys());\n if (!config.activeMultiple) {\n map.clear();\n }\n prevKeys.forEach((value) => {\n const node = tree.getNode(value);\n node?.update();\n });\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n }\n this.update();\n return tree.getActived(map);\n }\n\n /**\n * 是否存在未选中的未禁用子节点\n * @return boolean 未选中的未禁用子节点存在与否\n */\n public hasEnableUnCheckedChild(): boolean {\n const { children } = this;\n if (!Array.isArray(children) || children.length <= 0) {\n // 没有子节点\n return false;\n }\n let state = false;\n children.some((child) => {\n // 不理会禁用节点\n if (child.isDisabledState()) return false;\n // 不理会选中节点\n if (child.isChecked()) return false;\n if (child.isIndeterminate()) {\n // 为半选节点则进行递归检查\n if (child.hasEnableUnCheckedChild()) {\n state = true;\n return true;\n }\n // 都尽可能选中了,则检查之后的节点\n return false;\n }\n // 子节点为未选中状态,且非半选状态\n // 则直接返回 true\n state = true;\n return true;\n });\n return state;\n }\n\n /**\n * 切换节点选中状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树选中的节点值数组\n */\n public toggleChecked(opts?: TypeSettingOptions): TreeNodeValue[] {\n if (this.isIndeterminate()) {\n // 当前节点为半选情况下需要判断子节点是否尽可能全部选中\n // 存在可操作的未选中的子节点,则应当尽可能选中子节点\n // 不存在可操作的未选中的子节点,则应取消选中子节点\n const expectState = this.hasEnableUnCheckedChild();\n return this.setChecked(expectState, opts);\n }\n return this.setChecked(!this.isChecked(), opts);\n }\n\n /**\n * 设置节点选中状态\n * - 节点 UI 操作时调用这个方法\n * - 节点设置自身状态时调用这个方法\n * @param {boolean} checked 节点选中状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.isAction=true] 是否为 UI 动作\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树选中的节点值数组\n */\n public setChecked(\n checked: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const config = tree.config || {};\n const options: TypeSettingOptions = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n let map = tree.checkedMap;\n if (!options.directly) {\n map = new Map(tree.checkedMap);\n }\n if (!this.isCheckable()) {\n // 当前节点非可选节点,则不可设置选中态\n return tree.getChecked(map);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换选中态\n return tree.getChecked(map);\n }\n\n if (checked === this.isChecked()) {\n const shouldSet = this.isIndeterminate() && !this.hasEnableUnCheckedChild();\n if (!shouldSet) {\n // 值没有变更, 则选中态无变化\n return tree.getChecked(map);\n }\n }\n\n if (checked) {\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n\n if (config.checkStrictly) {\n // 严格模式下,选中态不扩散,仅操作节点自身\n if (options.directly) {\n // 严格模式值更新节点自身\n this.updateChecked();\n }\n } else {\n // 先向下游扩散选中态\n this.spreadChildrenChecked(checked, map, options);\n // 再计算上游选中态\n this.spreadParentChecked(checked, map, options);\n // 状态更新务必放到扩散动作之后\n // 过早的状态更新会导致后续计算出错\n if (options.directly) {\n const relatedNodes = tree.getRelatedNodes([this.value], {\n reverse: true,\n });\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n return tree.getChecked(map);\n }\n\n // 选中态向上游扩散\n private spreadParentChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n }\n\n const { parent } = this;\n if (!parent) return;\n parent.spreadParentChecked(checked, map, options);\n }\n\n // 选中态向下游扩散\n private spreadChildrenChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n // 对于 UI 动作操作,节点禁用,中断扩散\n if (options.isAction && this.isDisabledState()) return;\n\n const { children } = this;\n if (!Array.isArray(children)) return;\n if (children.length <= 0) return;\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n children.forEach((node) => {\n // 对于 UI 动作,向下扩散时,禁用状态会阻止状态切换\n if (options.isAction && node.isDisabledState()) return;\n if (checked) {\n map.set(node.value, true);\n } else {\n map.delete(node.value);\n }\n node.spreadChildrenChecked(checked, map, options);\n });\n }\n\n /**\n * 设置节点禁用状态\n * @return void\n */\n public setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.update();\n this.updateChildren();\n }\n\n /* ------ 节点状态更新 ------ */\n\n /**\n * 更新节点当前状态,将节点放到延时更新检查队列\n * @return void\n */\n public update(): void {\n this.level = this.getLevel();\n this.vmIsFirst = this.isFirst();\n this.vmIsLast = this.isLast();\n this.vmIsLeaf = this.isLeaf();\n this.vmCheckable = this.isCheckable();\n this.vmIsRest = this.isRest();\n this.actived = this.isActived();\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n this.tree.updated(this);\n }\n\n /**\n * 更新节点选中态\n * @return void\n */\n public updateChecked(): void {\n const { tree, value } = this;\n const { checkedMap } = tree;\n this.checked = this.isChecked();\n this.indeterminate = this.isIndeterminate();\n if (this.checked) {\n checkedMap.set(value, true);\n }\n tree.updated(this);\n }\n\n /**\n * 更新所有子节点状态\n * - 不包含自己\n * @return void\n */\n public updateChildren(): void {\n this.spreadChildren((node) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有父级节点状态\n * - 不包含自己\n * @return void\n */\n public updateParents(): void {\n this.spreadParents((node: TreeNode) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新上下游相关节点状态\n * - 包含自己\n * @return void\n */\n public updateRelated(): void {\n const { tree } = this;\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /* ------ 节点遍历 ------ */\n\n /**\n * 获取包含自己在内所有的子节点\n * - 包含自己\n * @return TreeNode[] 遍历结果节点数组\n */\n public walk(): TreeNode[] {\n const list: TreeNode[] = [];\n this.spreadChildren((node: TreeNode) => {\n list.push(node);\n });\n return list;\n }\n\n /**\n * 向下遍历操作\n * - 包含自己\n * @return void\n */\n private spreadChildren(fn: TypeFnOperation) {\n fn(this);\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n children.forEach((node) => {\n node?.spreadChildren(fn);\n });\n }\n }\n\n /**\n * 向上遍历操作\n * - 包含自己\n * @return void\n */\n private spreadParents(fn: TypeFnOperation) {\n fn(this);\n const { parent } = this;\n if (!parent) return;\n parent?.spreadParents(fn);\n }\n\n /**\n * 获取节点封装对象\n * - TreeNode 对象 => TypeTreeNodeModel 对象\n * - TypeTreeNodeModel 用于封装 treeNode 对外暴露的 api\n * - 用户仅可操作经过封装的对象,减少了对外暴露的 api,利于代码重构\n * @return TypeTreeNodeModel 节点封装对象\n */\n public getModel(): TypeTreeNodeModel {\n let { model } = this;\n if (!model) {\n model = createNodeModel(this);\n this.model = model;\n }\n return model;\n }\n}\n\nexport default TreeNode;\n","import { isArray, isFunction, isNumber, isString, difference, camelCase, isPlainObject } from 'lodash-es';\nimport mitt from 'mitt';\n\nimport { TreeNode, privateKey } from './tree-node';\nimport {\n TreeNodeValue,\n TypeIdMap,\n TypeTargetNode,\n TypeTreeNodeData,\n TypeTreeItem,\n TypeTreeStoreOptions,\n TypeTreeFilter,\n TypeTreeFilterOptions,\n TypeRelatedNodesOptions,\n TypeTreeEventState,\n TypeUpdatedMap,\n} from './types';\n\nfunction nextTick(fn: () => void): Promise {\n const pm = Promise.resolve();\n pm.then(fn);\n return pm;\n}\n\n// 构建一个树的数据模型\n// 基本设计思想:写入时更新,减少读取消耗,以减少未来实现虚拟滚动所需的计算量\n// 任何一次数据写入,会触发相应节点的状态更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 数据模型\n * @class TreeStore\n * @param {object} options tree 组件选项\n * @param {string} [options.prefix=\"t\"] tree 组件内部属性前缀\n * @param {object} options.keys 取值映射对象,部分属性按照其 key/value 来取 treeNode 属性值\n * @param {string} [options.keys.label=\"label\"] 从 data 种取 label 值时读取的属性名称\n * @param {string} [options.keys.value=\"value\"] 从 data 种取 value 值时读取的属性名称\n * @param {string} [options.keys.children=\"children\"] 从 data 种取 children 值时读取的属性名称\n * @param {boolean} [options.expandAll=false] 初始化节点时,是否自动展开\n * @param {number} [options.expandLevel=0] 初始化节点时,自动展开的级别\n * @param {boolean} [options.expandMutex=false] 展开时,是否使用手风琴模式\n * @param {boolean} [options.expandParent=false] 展开节点时,是否自动展开父节点\n * @param {boolean} [options.activable=false] 是否可以激活节点\n * @param {boolean} [options.activeMultiple=false] 激活节点是否使用多选模式\n * @param {boolean} [options.checkable=false] 节点是否可选中\n * @param {boolean} [options.checkStrictly=false] 节点选中是否使用严格模式\n * @param {boolean} [options.disabled=false] 节点是否禁用\n * @param {boolean|function} [options.disableCheck=false] 节点被禁用的条件\n * @param {boolean} [options.draggable=false] 节点是否可拖动\n * @param {function} [options.load=null] 节点延迟加载函数\n * @param {boolean} [options.lazy=false] 节点是否使用延迟加载模式\n * @param {string} [options.valueMode=\"onlyLeaf\"] 节点选中取值模式\n * @param {function} [options.filter=null] 节点过滤函数\n * @param {function} [options.onLoad=null] 节点延迟加载完成时的回调函数\n * @param {function} [options.onReflow=null] 节点触发回流后的回调\n * @param {function} [options.onUpdate=null] 节点触发更新后的后调\n * @param {boolean} [options.allowFoldNodeOnFilter=false] 过滤时,是否允许折叠节点\n */\nexport class TreeStore {\n // 根节点集合\n public children: TreeNode[];\n\n // 所有节点集合\n public nodes: TreeNode[];\n\n // 所有节点映射\n public nodeMap: Map;\n\n // 节点 私有 ID 映射\n public privateMap: Map;\n\n // 配置选项\n public config: TypeTreeStoreOptions;\n\n // 活动节点集合\n public activedMap: TypeIdMap;\n\n // 数据被更新的节点集合\n public updatedMap: TypeUpdatedMap;\n\n // 选中节点集合\n public checkedMap: TypeIdMap;\n\n // 展开节点的集合\n public expandedMap: TypeIdMap;\n\n // 符合过滤条件的节点的集合\n public filterMap: TypeIdMap;\n\n // 存在过滤器标志\n public hasFilter: boolean;\n\n // 事件派发器\n public emitter: ReturnType;\n\n // 数据更新计时器\n private updateTick: Promise;\n\n // 识别是否需要重排\n private shouldReflow: boolean;\n\n // 树节点过滤器\n private prevFilter: TypeTreeFilter;\n\n public constructor(options: TypeTreeStoreOptions) {\n const config: TypeTreeStoreOptions = {\n prefix: 't',\n keys: {},\n expandAll: false,\n expandLevel: 0,\n expandMutex: false,\n expandParent: false,\n activable: false,\n activeMultiple: false,\n checkable: false,\n checkStrictly: false,\n disabled: false,\n disableCheck: false,\n draggable: false,\n load: null,\n lazy: false,\n valueMode: 'onlyLeaf',\n filter: null,\n // 每次搜索条件变更,重置展开状态,路径节点展开,显示命中节点\n // allowFoldNodeOnFilter 为 true 时,搜索条件不变的情况下,允许折叠路径节点\n // 默认状态,allowFoldNodeOnFilter 为 false 时,路径节点无法折叠\n allowFoldNodeOnFilter: false,\n onLoad: null,\n onReflow: null,\n onUpdate: null,\n ...options,\n };\n this.config = config;\n this.nodes = [];\n this.children = [];\n this.nodeMap = new Map();\n this.privateMap = new Map();\n this.activedMap = new Map();\n this.expandedMap = new Map();\n this.checkedMap = new Map();\n this.updatedMap = new Map();\n this.filterMap = new Map();\n this.prevFilter = null;\n // 这个计时器确保频繁的 update 事件被归纳为1次完整数据更新后的触发\n this.updateTick = null;\n // 在子节点增删改查时,将此属性设置为 true,来触发视图更新\n this.shouldReflow = false;\n // 这个标志会被大量用到\n this.hasFilter = isFunction(config.filter);\n this.emitter = mitt();\n }\n\n /**\n * 配置选项\n * @param {object} options tree 组件选项\n * @return void\n */\n public setConfig(options: TypeTreeStoreOptions) {\n const { config } = this;\n let hasChanged = false;\n (Object.keys(options) as (keyof TypeTreeStoreOptions)[]).forEach((key) => {\n const val = options[key];\n if (val !== config[key]) {\n hasChanged = true;\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n config[key] = val;\n }\n });\n this.hasFilter = isFunction(config.filter);\n if (hasChanged) {\n // 在 td-tree 的 render 方法中调用 setConfig\n // 这样减少了 watch 属性\n // 仅在属性变更后刷新状态\n // 这样可以避免触发渲染死循环\n this.refreshState();\n }\n }\n\n /**\n * 获取根节点列表\n * @return TreeNode[] 根节点对象数组\n */\n public getChildren(): TreeNode[] {\n return this.children;\n }\n\n /**\n * 获取指定节点对象\n * @param {string|number|TreeNode} item 获取节点对象的条件,可以是节点 value,也可以是节点本身\n * @return TreeNode 节点对象,如果判断树中没有符合条件的节点,返回 null\n */\n public getNode(item: TypeTargetNode): TreeNode {\n let node = null;\n if (isString(item) || isNumber(item)) {\n node = this.nodeMap.get(item);\n } else if (item instanceof TreeNode) {\n node = this.nodeMap.get(item.value);\n }\n if (!node) node = null;\n return node;\n }\n\n /**\n * 获取节点在总节点列表中的位置\n * @param {TreeNode} node 节点对象\n * @return number 节点在总节点列表中的位置序号\n */\n public getIndex(node: TreeNode): number {\n return this.nodes.indexOf(node);\n }\n\n /**\n * 获取指定节点的父节点\n * @param {string} value 节点值\n * @return TreeNode 节点对象\n */\n public getParent(value: TypeTargetNode): TreeNode {\n let parent = null;\n const node = this.getNode(value);\n if (node) {\n parent = node.getParent();\n }\n return parent;\n }\n\n /**\n * 获取指定节点的所有父节点\n * @param {string} value 节点值\n * @return TreeNode[] 父节点数组\n */\n public getParents(value: TypeTargetNode): TreeNode[] {\n const node = this.getNode(value);\n let parents: TreeNode[] = [];\n if (node) {\n parents = node.getParents();\n }\n return parents;\n }\n\n /**\n * 获取指定节点在其所在 children 中的位置\n * @param {string} value 节点值\n * @return number 节点在 children 中的位置序号\n */\n public getNodeIndex(value: TypeTargetNode): number {\n const node = this.getNode(value);\n let index = -1;\n if (node) {\n index = node.getIndex();\n }\n return index;\n }\n\n /**\n * 获取所有符合条件的节点,按回流排序后的顺序给出\n * 以这些字段作为示例:\n * - value: 节点值(ID)\n * - TreeNode: 节点实例\n * - level: 节点层级\n * - filter: 节点过滤函数\n * 支持下列使用方式\n * - getNodes() 获取所有节点\n * - getNodes(value) 获取节点值对应的目标节点下,包含自己在内的所有子节点\n * - getNodes(TreeNode) 获取目标节点下,包含自己在内的所有子节点\n * - getNodes(value, { level: 2 }) 获取目标节点下,层级在 2 以内的子节点\n * - getNodes(value, { filter: node => (!node.checked) }) 获取目标节点下,未选中的节点\n * - getNodes(value, { props: { actived: true } }) 获取目标节点下,已激活的节点\n * @param {string | TreeNode} [item] 节点值,节点对象\n * @param {object} [options] 节点过滤条件,可传递节点属性,过滤出属性一致的节点\n * @param {number} [options.level=Infinity] 节点层级\n * @param {function} [options.filter=null] 节点过滤条件函数\n * @param {object} [options.props] 节点属性对象,作为过滤条件\n * @return TreeNode[] 符合条件的节点数组\n */\n public getNodes(\n item?: TypeTargetNode,\n options?: TypeTreeFilterOptions,\n ): TreeNode[] {\n let nodes: TreeNode[] = [];\n let val: TreeNodeValue = '';\n if (isString(item) || isNumber(item)) {\n val = item;\n } else if (item instanceof TreeNode) {\n val = item.value;\n }\n if (!val && val !== 0) {\n nodes = this.nodes.slice(0);\n } else {\n const node = this.getNode(val);\n if (node) {\n nodes = node.walk();\n }\n }\n\n if (options) {\n const conf: TypeTreeFilterOptions = {\n filter: null,\n level: Infinity,\n ...options,\n };\n if (isNumber(conf.level) && conf.level !== Infinity) {\n nodes = nodes.filter((node) => node.level <= conf.level);\n }\n if (isFunction(conf.filter)) {\n nodes = nodes.filter((node) => {\n const nodeModel = node.getModel();\n return conf.filter(nodeModel);\n });\n }\n if (isPlainObject(conf.props)) {\n nodes = nodes.filter((node) => {\n const result = Object.keys(conf.props).every((key) => {\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n const propEqual = node[key] === conf.props[key];\n return propEqual;\n });\n return result;\n });\n }\n }\n return nodes;\n }\n\n /**\n * 添加新节点数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public append(list: TypeTreeNodeData[]): void {\n list.forEach((item) => {\n const node = new TreeNode(this, item);\n this.children.push(node);\n });\n this.reflow();\n }\n\n /**\n * 清空当前树的数据,重新加载数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public reload(list: TypeTreeNodeData[]): void {\n this.removeAll();\n this.append(list);\n }\n\n /**\n * 解析节点数据,适配多种节点类型\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} item 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return spec 解析完成的数据结构\n * - {TreeNode} spec.node 目标树节点\n * - {object} spec.data 节点构造数据\n */\n private parseNodeData(\n para: TreeNodeValue | TreeNode | TypeTreeNodeData,\n item: TypeTreeNodeData | TreeNode,\n ) {\n let value: TreeNodeValue = '';\n let node = null;\n let data = null;\n\n if (isString(para) || isNumber(para)) {\n value = para;\n node = this.getNode(value);\n data = item;\n } else if (para instanceof TreeNode) {\n if (item) {\n node = para;\n data = item;\n } else {\n data = para;\n }\n } else {\n data = para;\n }\n const spec = {\n node,\n data,\n };\n return spec;\n }\n\n /**\n * 向指定节点追加节点或者数据\n * 以这些字段作为示例: item: 节点数据, TreeNode: 节点实例, value: 节点值(ID)\n * 支持下列使用方式\n * - appendNodes(item) 直接传递节点构造数据,新增节点\n * - appendNodes(TreeNode) 传递别的树的树节点,新增节点\n * - appendNodes(value, item) 以节点值查找指定节点,并新增节点构造数据\n * - appendNodes(value, TreeNode) 以节点值查找指定节点,并新增树节点\n * - appendNodes(TreeNode, item) 向指定节点新增节点构造数据\n * - appendNodes(TreeNode, TreeNode) 向指定节点新增树节点\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} [item] 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return void\n */\n public appendNodes(\n para: TypeTargetNode | TypeTreeNodeData,\n item?: TypeTreeNodeData | TreeNode,\n ): void {\n const spec = this.parseNodeData(para, item);\n if (spec.data) {\n if (!spec.node) {\n // 在根节点插入\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this);\n } else if (Array.isArray(spec.data)) {\n this.append(spec.data);\n } else {\n this.append([spec.data]);\n }\n } else {\n // 插入到目标节点之下\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this, spec.node);\n } else if (isArray(spec.data)) {\n spec.node.append(spec.data);\n } else {\n spec.node.append([spec.data]);\n }\n spec.node.updateRelated();\n }\n }\n }\n\n /**\n * 在目标节点之前插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertBefore(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertBefore(item);\n }\n }\n\n /**\n * 在目标节点之后插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertAfter(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertAfter(item);\n }\n }\n\n /**\n * 更新树结构\n * - 清空 nodes 数组,然后遍历所有根节点重新插入 node\n * - 这个操作将会为树结构数据提供一个一纬数组索引\n * @return void\n */\n public refreshNodes(): void {\n const { children, nodes } = this;\n nodes.length = 0;\n children.forEach((node) => {\n const list = node.walk();\n Array.prototype.push.apply(nodes, list);\n });\n }\n\n /**\n * 标记节点重排\n * - 应该仅在树节点增删改查时调用\n * - 节点重排会在延时后触发 refreshNodes 方法的调用\n * @param {TreeNode} [node] 触发重排的树节点\n * @return void\n */\n public reflow(node?: TreeNode): void {\n this.shouldReflow = true;\n this.updated(node);\n }\n\n /**\n * 触发更新事件\n * - 节点属性变更时调用\n * - 统一延时后,处理需要在其他节点状态更新后再处理的逻辑,减少这类逻辑的重复调用开销\n * - 统一延时后,派发事件,通知树已更新完毕,以及回流完毕,触发 vue 视图渲染操作\n * @param {TreeNode} [node] 触发更新的树节点\n * @return void\n */\n public updated(node?: TreeNode): void {\n const { updatedMap } = this;\n if (node) {\n // 传入节点,则为指定节点的更新\n updatedMap.set(node[privateKey], 'changed');\n } else {\n // reflow 流程不传入节点,需要更新所有节点\n this.getNodes().forEach((itemNode) => {\n updatedMap.set(itemNode[privateKey], 'changed');\n });\n }\n\n if (this.updateTick) return;\n this.updateTick = nextTick(() => {\n this.updateTick = null;\n\n // 检查节点是否需要回流,重排数组\n if (this.shouldReflow) {\n this.refreshNodes();\n this.emit('reflow');\n }\n\n // 检查节点是否有被过滤,锁定路径节点\n // 在此之前要遍历节点生成一个经过排序的节点数组\n // 以便于优化锁定检查算法\n this.lockFilterPathNodes();\n\n // stateId 用于单个节点状态监控\n const stateId = `t${new Date().getTime()}`;\n const updatedList = Array.from(updatedMap.keys());\n const updatedNodes = updatedList.map((nodePrivateKey) => {\n updatedMap.set(nodePrivateKey, stateId);\n return this.privateMap.get(nodePrivateKey);\n });\n\n // 统计需要更新状态的节点,派发更新事件\n this.emit('update', {\n nodes: updatedNodes,\n map: updatedMap,\n });\n\n // 每次回流检查完毕,还原检查状态\n this.shouldReflow = false;\n updatedMap.clear();\n });\n }\n\n /**\n * 获取激活节点集合\n * @param {Map} [map] 预设激活节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 激活节点值数组\n */\n public getActived(map?: TypeIdMap): TreeNodeValue[] {\n const activedMap = map || this.activedMap;\n return Array.from(activedMap.keys());\n }\n\n /**\n * 获取指定范围的激活节点\n * - 范围是目标节点在内所有子节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点本身\n * @return TreeNode[] 激活节点数组\n */\n public getActivedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isActived());\n return nodes;\n }\n\n /**\n * 替换激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceActived(list: TreeNodeValue[]): void {\n this.resetActived();\n this.setActived(list);\n }\n\n /**\n * 设置激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setActived(actived: TreeNodeValue[]): void {\n const { activeMultiple } = this.config;\n const list = actived.slice(0);\n if (!activeMultiple) {\n list.length = 1;\n }\n list.forEach((val) => {\n this.activedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.update();\n }\n });\n }\n\n /**\n * 清空所有节点的激活状态\n * @return void\n */\n public resetActived(): void {\n const actived = this.getActived();\n this.activedMap.clear();\n const relatedNodes = this.getRelatedNodes(actived);\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取展开节点集合\n * @param {Map} [map] 预设展开节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return void\n */\n public getExpanded(map?: TypeIdMap): TreeNodeValue[] {\n const expandedMap = map || this.expandedMap;\n return Array.from(expandedMap.keys());\n }\n\n /**\n * 替换展开节点\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceExpanded(list: TreeNodeValue[]): void {\n const expanded = this.getExpanded();\n const added = difference(list, expanded);\n const removed = difference(expanded, list);\n this.setExpandedDirectly(removed, false);\n this.updateExpanded(removed);\n this.setExpanded(added);\n }\n\n /**\n * 批量设置展开节点\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setExpanded(list: TreeNodeValue[]): void {\n this.setExpandedDirectly(list);\n this.updateExpanded(list);\n }\n\n /**\n * 直接设置节点展开状态\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @param {boolean} [expanded=true] 展开状态\n * @return void\n */\n public setExpandedDirectly(list: TreeNodeValue[], expanded = true): void {\n list.forEach((val) => {\n if (expanded) {\n this.expandedMap.set(val, true);\n } else {\n this.expandedMap.delete(val);\n }\n const node = this.getNode(val);\n if (node) {\n node.afterExpanded();\n }\n });\n }\n\n /**\n * 清除所有节点的展开状态\n * @return void\n */\n public resetExpanded(): void {\n const expanded = this.getExpanded();\n this.expandedMap.clear();\n this.updateExpanded(expanded);\n }\n\n /**\n * 更新展开节点相关节点的状态\n * - 节点展开状态变更后,上下游节点可能存在状态变更,统一纳入待更新队列\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public updateExpanded(list: TreeNodeValue[]): void {\n const relatedNodes = this.getRelatedNodes(list, {\n withParents: false,\n });\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取选中态节点值数组\n * @param {Map} [map] 预设选中节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 选中态节点 value 数组\n */\n public getChecked(map?: TypeIdMap): TreeNodeValue[] {\n const { nodeMap, config } = this;\n const { valueMode, checkStrictly } = config;\n const list: TreeNodeValue[] = [];\n const checkedMap = map || this.checkedMap;\n nodeMap.forEach((node) => {\n // 判断未选中,直接忽略\n if (!node.isChecked(checkedMap)) return;\n if (valueMode === 'parentFirst' && !checkStrictly) {\n // valueMode 为 parentFirst\n // 仅取值父节点\n if (!node.parent || !node.parent.isChecked(checkedMap)) {\n list.push(node.value);\n }\n } else if (valueMode === 'onlyLeaf' && !checkStrictly) {\n // valueMode 为 onlyLeaf\n // 仅取值叶子节点\n if (node.isLeaf()) {\n list.push(node.value);\n }\n } else {\n // valueMode 为 all\n // 取值所有选中节点\n list.push(node.value);\n }\n });\n return list;\n }\n\n /**\n * 获取指定节点下的选中节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点\n * @return TreeNode[] 选中节点数组\n */\n public getCheckedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isChecked());\n return nodes;\n }\n\n /**\n * 替换选中态列表\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceChecked(list: TreeNodeValue[]): void {\n this.resetChecked();\n this.setChecked(list);\n }\n\n /**\n * 批量设置选中态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setChecked(list: TreeNodeValue[]): void {\n const { checkStrictly, checkable } = this.config;\n if (!checkable) return;\n list.forEach((val: TreeNodeValue) => {\n const node = this.getNode(val);\n if (!node) return;\n if (checkStrictly) {\n this.checkedMap.set(val, true);\n node.updateChecked();\n } else {\n const childrenNodes = node.walk();\n childrenNodes.forEach((childNode) => {\n this.checkedMap.set(childNode.value, true);\n });\n }\n });\n if (!checkStrictly) {\n const checkedValues = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checkedValues);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n /**\n * 清除所有节点选中态\n * @return void\n */\n public resetChecked(): void {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n this.checkedMap.clear();\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有树节点状态,但不更新选中态\n * 用于不影响选中态时候的更新,减少递归循环造成的时间消耗\n * @return void\n */\n public refreshState(): void {\n const { nodeMap } = this;\n // 树在初始化未回流时,nodes 数组为空\n // 所以遍历 nodeMap 确保初始化阶段 refreshState 方法也可以触发全部节点的更新\n nodeMap.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 更新全部节点状态\n * @return void\n */\n public updateAll(): void {\n const { nodeMap } = this;\n nodeMap.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 移除指定节点\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TypeTargetNode): void {\n const node = this.getNode(value);\n if (node) {\n node.remove();\n }\n }\n\n /**\n * 移除所有节点\n * @return void\n */\n public removeAll(): void {\n this.expandedMap.clear();\n this.checkedMap.clear();\n this.activedMap.clear();\n this.filterMap.clear();\n this.nodeMap.clear();\n this.privateMap.clear();\n this.updatedMap.clear();\n this.nodes = [];\n this.children = [];\n this.reflow();\n }\n\n /**\n * 获取节点状态变化可能影响的关联节点\n * - 用于实现最小遍历集合\n * @param {string[]} list 目标节点值数组\n * @param {object} [options] 操作选项\n * @oaran {boolean} [options.reverse=false] 倒序排列遍历节点\n * @param {boolean} [options.withParents=true] 包含所有父节点\n * @return TreeNode[] 关联节点数组\n */\n public getRelatedNodes(\n list: TreeNodeValue[],\n options?: TypeRelatedNodesOptions,\n ): TreeNode[] {\n const conf = {\n // 默认倒序排列,从底层节点开始遍历\n reverse: false,\n // 默认遍历父节点\n withParents: true,\n ...options,\n };\n const map = new Map();\n list.forEach((value) => {\n if (map.get(value)) return;\n const node = this.getNode(value);\n if (node) {\n const parents = node.getParents().reverse();\n const children = node.walk();\n let related = [];\n if (conf.withParents) {\n related = parents.concat(children);\n } else {\n related = children;\n }\n // 用 map 实现节点去重\n related.forEach((relatedNode) => {\n map.set(relatedNode.value, relatedNode);\n });\n }\n });\n let relatedNodes = Array.from(map.values());\n if (conf.reverse) {\n relatedNodes = relatedNodes.reverse();\n }\n return relatedNodes;\n }\n\n /**\n * 触发绑定的事件\n * - store.emitter 可以绑定事件回调,用于多个组件共同监听事件\n * @param {string} name 事件名称\n * @param {Event} [state] 事件对象\n * @param {TreeNode} [state.node] 事件关联节点\n * @param {TreeNode[]} [state.nodes] 事件关联节点数组\n * @param {Map} [state.map] 事件关联节点映射\n * @param {object[]} [state.data] 事件关联节点数据\n * @return void\n */\n public emit(name: string, state?: TypeTreeEventState): void {\n const { config, emitter } = this;\n const methodName = camelCase(`on-${name}`);\n const method = config[methodName as keyof TypeTreeStoreOptions];\n if (isFunction(method)) {\n // @ts-ignore\n // TODO: 待移除\n method(state);\n }\n emitter.emit(name, state);\n }\n\n /**\n * 锁定过滤节点的路径节点\n * - 使得路径节点自动展开\n * @return void\n */\n private lockFilterPathNodes(): void {\n const { config } = this;\n const allNodes = this.getNodes();\n\n if (this.prevFilter) {\n // 过滤条件清空时,也需要清理锁定节点\n // 所在判断过滤条件是否存在之前,就要调用这里的清理逻辑\n // 不想在每次渲染时都做这个清空判断\n // 所以判断一下之前是否有进行过滤\n allNodes.forEach((node: TreeNode) => {\n // 先清空所有锁定状态\n if (node.vmIsLocked) {\n // lock 方法内部有状态计算\n // 所以要减少 lock 方法调用次数\n node.lock(false);\n }\n });\n }\n\n const currentFilter = config.filter;\n // 当前没有过滤器\n // 则无需处理锁定节点\n if (!currentFilter || !isFunction(currentFilter)) return;\n this.prevFilter = config.filter;\n\n // 全部节点要经过排序,才能使用这个遍历\n // 比起每个过滤节点调用 getParents 方法检查父节点状态\n // 复杂度 O(N*log(N)) => O(N)\n allNodes.reverse().forEach((node: TreeNode) => {\n // 数组颠倒后,等于是从每个节点的子节点开始判断\n // 想象为从展开树的最底部向上遍历\n const parent = node.getParent();\n if (!parent) return;\n if (node.vmIsRest || node.vmIsLocked) {\n // 当前节点被过滤条件命中\n // 或者当前节点被锁定\n // 则需要判定父节点状态\n if (!parent.vmIsLocked) {\n // 父节点已被锁定,则忽略动作\n // lock 方法有内置状态判断\n parent.lock(true);\n }\n }\n });\n }\n}\n\nexport default TreeStore;\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import { Ref, reactive, computed, toRefs, watch, nextTick } from 'vue';\nimport { isEqual } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport useVModel from '../../hooks/useVModel';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport {\n getTreeValue,\n getCascaderValue,\n isEmptyValues,\n isValueInvalid,\n treeNodesEffect,\n treeStoreExpendEffect,\n} from '../utils';\n\nimport {\n TreeNode,\n TreeNodeValue,\n TdCascaderProps,\n TreeNodeModel,\n CascaderChangeSource,\n CascaderValue,\n TreeOptionData,\n} from '../types';\n\n// 全局状态\nexport const useContext = (\n props: TdCascaderProps,\n setInnerValue: TdCascaderProps['onChange'],\n innerPopupVisible: Ref,\n setPopupVisible: TdCascaderProps['onPopupVisibleChange'],\n) => {\n const statusContext = reactive({\n treeStore: null,\n inputVal: null,\n scopeVal: undefined,\n treeNodes: [],\n expend: [],\n });\n\n return {\n statusContext,\n cascaderContext: computed(() => {\n const {\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n modelValue,\n } = props;\n return {\n value: statusContext.scopeVal,\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n visible: innerPopupVisible.value,\n ...statusContext,\n setTreeNodes: (nodes: TreeNode[]) => {\n statusContext.treeNodes = nodes;\n },\n setValue: (val: CascaderValue, source: CascaderChangeSource, node?: TreeNodeModel) => {\n if (isEqual(val, modelValue)) return;\n setInnerValue(val, { source, node });\n },\n setVisible: setPopupVisible,\n setInputVal: (val: string) => {\n statusContext.inputVal = val;\n },\n setExpend: (val: TreeNodeValue[]) => {\n statusContext.expend = val;\n },\n };\n }),\n };\n};\n\n// 内聚组件核心的副作用与状态处理\nexport const useCascaderContext = (props: TdCascaderProps) => {\n const disabled = useDisabled();\n const { value, modelValue, popupVisible } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerPopupVisible, setPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const { cascaderContext, statusContext } = useContext(props, setInnerValue, innerPopupVisible, setPopupVisible);\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || isFunction(props.filter));\n });\n\n // 更新treeNodes\n const updatedTreeNodes = () => {\n const { inputVal, treeStore, setTreeNodes } = cascaderContext.value;\n treeNodesEffect(inputVal, treeStore, setTreeNodes, props.filter);\n };\n\n // 更新节点展开状态\n const updateExpend = () => {\n const { value, treeStore } = cascaderContext.value;\n const { expend } = statusContext;\n treeStoreExpendEffect(treeStore, value, expend);\n treeStore.replaceChecked(getTreeValue(value));\n };\n\n watch(\n () => props.options,\n () => {\n const { options, keys = {}, checkStrictly, lazy, load, valueMode } = props;\n const { treeStore } = statusContext;\n\n if (!options.length && !treeStore) return;\n\n if (!treeStore) {\n const store = new TreeStore({\n keys: {\n ...keys,\n children: isString(keys.children) ? keys.children : 'children',\n },\n checkable: true,\n expandMutex: true,\n expandParent: true,\n lazy,\n load,\n valueMode,\n checkStrictly,\n onLoad: () => {\n nextTick(() => {\n store.refreshNodes();\n updatedTreeNodes();\n });\n },\n });\n store.append(options);\n statusContext.treeStore = store;\n } else {\n treeStore.reload(options);\n treeStore.refreshNodes();\n }\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true, deep: true },\n );\n\n // tree插件配置变化\n watch(\n () => {\n const { checkStrictly, lazy, load, valueMode } = props;\n return JSON.stringify({\n valueMode,\n checkStrictly,\n lazy,\n load,\n });\n },\n () => {\n const { treeStore } = statusContext;\n if (!treeStore) return;\n const { checkStrictly, lazy, load, valueMode } = props;\n const treeProps = {\n checkStrictly,\n disabled,\n load,\n lazy,\n valueMode,\n };\n treeStore.setConfig(treeProps);\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n () => {\n // 初始化判断 value 逻辑\n const { setValue, multiple, valueType } = cascaderContext.value;\n\n if (isValueInvalid(innerValue.value, cascaderContext.value)) {\n setValue(multiple ? [] : '', 'invalid-value');\n } else {\n statusContext.scopeVal = multiple ? [] : '';\n }\n\n if (!isEmptyValues(innerValue)) {\n statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n }\n\n if (!statusContext.treeStore) return;\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true },\n );\n\n watch(\n () => innerPopupVisible.value && isFilterable.value,\n (visible) => {\n const { setInputVal } = cascaderContext.value;\n if (visible) {\n setInputVal('');\n }\n },\n );\n\n watch(\n () => statusContext.inputVal,\n () => {\n updatedTreeNodes();\n },\n );\n\n const getCascaderItems = (arrValue: CascaderValue[]) => {\n const options: TreeOptionData[] = [];\n arrValue.forEach((value) => {\n const nodes = statusContext.treeStore?.getNodes(value);\n nodes && nodes[0] && options.push(nodes[0].data);\n });\n return options;\n };\n\n return {\n cascaderContext,\n isFilterable,\n innerValue,\n getCascaderItems,\n };\n};\n","import { defineComponent, computed } from 'vue';\nimport { omit } from 'lodash-es';\nimport Panel from './components/Panel';\nimport SelectInput from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport props from './props';\n\nimport { CascaderValue, TdSelectInputProps, TdCascaderProps } from './types';\nimport {\n closeIconClickEffect,\n handleRemoveTagEffect,\n getFakeArrowIconClass,\n getPanels,\n getSingleContent,\n getMultipleContent,\n} from './utils';\n\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useCascaderContext } from './hooks';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TCascader',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('cascader');\n const classPrefix = usePrefixClass();\n const { STATUS } = useCommonClassName();\n const overlayClassName = usePrefixClass('cascader__popup');\n const { globalConfig } = useConfig('cascader');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n\n // 拿到全局状态的上下文\n const { cascaderContext, innerValue, isFilterable, getCascaderItems } = useCascaderContext(props);\n\n const displayValue = computed(() =>\n props.multiple ? getMultipleContent(cascaderContext.value) : getSingleContent(cascaderContext.value),\n );\n\n const panels = computed(() => getPanels(cascaderContext.value.treeNodes));\n\n const inputPlaceholder = computed(\n () =>\n (cascaderContext.value.visible && !props.multiple && getSingleContent(cascaderContext.value)) ||\n (props.placeholder ?? globalConfig.value.placeholder),\n );\n\n const renderSuffixIcon = () => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n const { visible, disabled } = cascaderContext.value;\n return (\n \n );\n };\n\n const valueDisplayParams = computed(() => {\n const arrayValue = innerValue.value instanceof Array ? innerValue.value : [innerValue.value];\n const displayValue =\n props.multiple && props.minCollapsedNum ? arrayValue.slice(0, props.minCollapsedNum) : innerValue.value;\n const options = getCascaderItems(arrayValue);\n return {\n value: innerValue.value,\n selectedOptions: options,\n onClose: (index: number) => {\n handleRemoveTagEffect(cascaderContext.value, index, props.onRemove);\n },\n displayValue,\n };\n });\n\n const renderValueDisplay = () => {\n return renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n });\n };\n\n const renderLabel = () => {\n const label = renderTNodeJSX('label');\n if (props.multiple) return label;\n if (!label) return null;\n return
    {label}
    ;\n };\n\n const cascaderClassNames = computed(() => [\n COMPONENT_NAME.value,\n props.multiple ? `${COMPONENT_NAME.value}--multiple` : `${COMPONENT_NAME.value}--single`,\n ]);\n\n return () => {\n const { setVisible, visible, inputVal, setInputVal } = cascaderContext.value;\n\n return (\n renderSuffixIcon()}\n popupProps={{\n ...(props.popupProps as TdCascaderProps['popupProps']),\n overlayInnerStyle: panels.value.length && !props.loading ? { width: 'auto' } : '',\n overlayClassName: [\n overlayClassName.value,\n (props.popupProps as TdCascaderProps['popupProps'])?.overlayClassName,\n ],\n }}\n inputProps={{ size: props.size, ...(props.inputProps as TdCascaderProps['inputProps']) }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdCascaderProps['tagInputProps']),\n }}\n tagProps={{ ...(props.tagProps as TdCascaderProps['tagProps']) }}\n onInputChange={(value, ctx) => {\n if (!isFilterable.value) return;\n setInputVal(`${value}`);\n (props?.selectInputProps as TdSelectInputProps)?.onInputChange?.(value, ctx);\n }}\n onTagChange={(val: CascaderValue, ctx) => {\n // 按 enter 键不处理\n if (ctx.trigger === 'enter') return;\n handleRemoveTagEffect(cascaderContext.value, ctx.index, props.onRemove);\n // @ts-ignore TODO: fix bug\n (props?.selectInputProps as TdSelectInputProps)?.onTagChange?.(val, ctx);\n }}\n onPopupVisibleChange={(val: boolean, context) => {\n if (isDisabled.value) return;\n setVisible(val, context);\n (props?.selectInputProps as TdSelectInputProps)?.onPopupVisibleChange?.(val, context);\n }}\n onBlur={(val, context) => {\n props.onBlur?.({\n value: cascaderContext.value.value,\n inputValue: context.inputValue || '',\n e: context.e as FocusEvent,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onBlur?.(val, context);\n }}\n onFocus={(val, context) => {\n props.onFocus?.({\n value: cascaderContext.value.value,\n e: context.e,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onFocus?.(val, context);\n }}\n onClear={(context: { e: MouseEvent }) => {\n closeIconClickEffect(cascaderContext.value);\n (props?.selectInputProps as TdSelectInputProps)?.onClear?.(context);\n }}\n v-slots={{\n label: slots.label,\n suffix: slots.suffix,\n prefixIcon: slots.prefixIcon,\n panel: () => (\n <>\n {renderTNodeJSX('panelTopContent')}\n \n {renderTNodeJSX('panelBottomContent')}\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n {...omit(props.selectInputProps as TdSelectInputProps, [\n 'onTagChange',\n 'onInputChange',\n 'onPopupVisibleChange',\n 'onBlur',\n 'onFocus',\n 'onClear',\n ])}\n />\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport Panel from './components/Panel';\nimport props from './props';\n\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascaderPanel',\n props,\n setup(props, { slots }) {\n const { cascaderContext } = useCascaderContext(props);\n\n return () => (\n \n );\n },\n});\n","import _Cascader from './cascader';\nimport _CascaderPanel from './cascader-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdCascaderProps } from './type';\nimport { TreeOptionData } from '../common';\n\nimport './style';\n\nexport * from './type';\n\nexport type CascaderProps = TdCascaderProps;\nexport type CascaderPanelProps = TdCascaderProps;\n\nexport const Cascader = withInstall(_Cascader);\nexport const CascaderPanel = withInstall(_CascaderPanel);\n\nexport default Cascader;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","import { isString } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\n\nexport const TIME_FORMAT = 'HH:mm:ss';\n\n// extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm'\nexport function extractTimeFormat(dateFormat: string = '') {\n return dateFormat\n .replace(/\\W?Y{2,4}|\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '')\n .trim();\n}\n\n// 统一解析日期格式字符串成 Dayjs 对象\nexport function parseToDayjs(\n value: string | Date | number,\n format: string,\n timeOfDay?: string,\n dayjsLocale?: string,\n) {\n if (value === '' || value === null) return dayjs();\n\n let dateText = value;\n // format week\n if (/[w|W]/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const weekStr = dateText.split(/[-/.\\s]/)[1];\n const weekFormatStr = format.split(/[-/.\\s]/)[1];\n\n let firstWeek = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').startOf('year');\n // 第一周ISO定义: 本年度第一个星期四所在的星期\n // 如果第一年第一天在星期四后, 直接跳到下一周, 下一周必定是第一周\n // 否则本周即为第一周\n if (firstWeek.day() > 4 || firstWeek.day() === 0) firstWeek = firstWeek.add(1, 'week');\n\n // 一年有52或者53周, 引入IsoWeeksInYear辅助查询\n const weekCounts = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').isoWeeksInYear();\n for (let i = 0; i <= weekCounts; i += 1) {\n let nextWeek = firstWeek.add(i, 'week');\n // 重置为周的第一天\n if (timeOfDay === 'start') nextWeek = nextWeek.subtract(5, 'day');\n if (nextWeek.format(weekFormatStr) === weekStr) {\n return nextWeek;\n }\n }\n }\n\n // format quarter\n if (/Q/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const quarterStr = dateText.split(/[-/.\\s]/)[1];\n const quarterFormatStr = format.split(/[-/.\\s]/)[1];\n const firstQuarter = dayjs(yearStr, 'YYYY').startOf('year');\n for (let i = 0; i < 4; i += 1) {\n const nextQuarter = firstQuarter.add(i, 'quarter');\n if (nextQuarter.format(quarterFormatStr) === quarterStr) {\n return nextQuarter;\n }\n }\n }\n\n // 兼容数据格式不标准场景 YYYY-MM-D\n const result = dayjs(dateText, format).isValid()\n ? dayjs(dateText, format)\n : dayjs(dateText);\n\n // 兼容数据异常情况\n if (!result.isValid()) {\n log.error('DatePicker', `Check whether the format、value format is valid.\\n value: '${value}', format: '${format}'`);\n return dayjs();\n }\n\n return result;\n}\n\n// 格式化 range\nfunction formatRange({\n newDate,\n format,\n dayjsLocale,\n targetFormat,\n autoSwap,\n}: {\n newDate: any;\n format: string;\n dayjsLocale?: string;\n targetFormat?: string;\n autoSwap?: boolean;\n}) {\n if (!newDate || !Array.isArray(newDate)) return [];\n\n let dayjsDateList = newDate.map((d) => d && parseToDayjs(d, format).locale(dayjsLocale));\n\n // 保证后面的时间大于前面的时间\n if (\n autoSwap\n && dayjsDateList[0]\n && dayjsDateList[1]\n && dayjsDateList[0].toDate().getTime() > dayjsDateList[1].toDate().getTime()\n ) {\n // 数据兼容规则\n dayjsDateList = [dayjsDateList[1], dayjsDateList[0]];\n }\n\n // 格式化失败提示\n if (dayjsDateList.some((r) => r && !r.isValid())) {\n log.error(\n 'DatePicker',\n `Check whether the value、format、valueType format is valid.\\nformat: '${format}' value: '${newDate}' valueType: '${targetFormat}'`\n );\n return [];\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayjsDateList.map((da) => da && da.toDate().getTime());\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayjsDateList.map((da) => da && da.toDate());\n\n return dayjsDateList.map((da) => da && da.format(targetFormat || format));\n}\n\n// 格式化单选\nfunction formatSingle({\n newDate,\n format,\n targetFormat,\n dayjsLocale,\n}: {\n newDate: any;\n format: string;\n targetFormat?: string;\n dayjsLocale?: string;\n}) {\n if (!newDate) return '';\n\n const dayJsDate = parseToDayjs(newDate, format).locale(dayjsLocale);\n\n // 格式化失败提示\n if (!dayJsDate.isValid()) {\n log.error(\n 'DatePicker',\n `Check whether the format、value format is valid.\\nformat: '${format}' value: '${newDate}'`\n );\n return '';\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayJsDate.toDate().getTime();\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayJsDate.toDate();\n\n return dayJsDate.format(targetFormat || format);\n}\n\n// 检测日期是否合法\nexport function isValidDate(value: DateValue | DateValue[], format: string) {\n if (Array.isArray(value)) {\n return value.every((v) => {\n if (v === '') return true;\n return dayjs(v, format).isValid() || dayjs(v).isValid();\n });\n }\n\n if (value === '') return true;\n return dayjs(value, format).isValid() || dayjs(value).isValid();\n}\n\n// 日期格式化\nexport function formatDate(\n newDate: DateValue | DateValue[],\n {\n format,\n targetFormat,\n dayjsLocale = 'zh-cn',\n autoSwap,\n }: { format: string; dayjsLocale?: string, targetFormat?: string; autoSwap?: boolean }\n) {\n let result;\n\n if (Array.isArray(newDate)) {\n result = formatRange({ newDate, format, dayjsLocale, targetFormat, autoSwap });\n } else {\n result = formatSingle({ newDate, format, dayjsLocale, targetFormat });\n }\n\n return result;\n}\n\n// 对齐格式化时间\nexport function calcFormatTime(time: string, timeFormat: string) {\n if (time && timeFormat) {\n const timeArr = time.split(':');\n const timeFormatArr = timeFormat.split(':');\n return timeArr.slice(0, timeFormatArr.length).join(':');\n }\n return time;\n}\n\n// TODO 细化 value 类型\n// 格式化时间\nexport function formatTime(value: any, format: string, timeFormat: string, defaultTime: string | string[]) {\n // 无论参数是不是数组,统一转成数组处理\n let result = Array.isArray(value) ? value : [value];\n // eslint-disable-next-line no-param-reassign\n defaultTime = Array.isArray(defaultTime) ? defaultTime : [defaultTime, defaultTime];\n result = result.map((v, i) => {\n // string格式需要用format去解析,其他诸如Date、time-stamp格式则直接dayjs\n if (v) return dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n return calcFormatTime(defaultTime[i], timeFormat);\n });\n result = result.length ? result : defaultTime.map((t) => calcFormatTime(t, timeFormat));\n // value是数组就输出数组,不是数组就输出第一个即可\n return Array.isArray(value) ? result : result?.[0];\n}\n\n// 根据不同 mode 给出格式化默认值\nexport function getDefaultFormat({\n mode = 'date',\n format,\n valueType,\n enableTimePicker,\n}: {\n mode?: string;\n format?: string;\n valueType?: string;\n enableTimePicker?: boolean;\n}) {\n if (mode === 'year') {\n return {\n format: format || 'YYYY',\n valueType: valueType || format || 'YYYY',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'month') {\n return {\n format: format || 'YYYY-MM',\n valueType: valueType || format || 'YYYY-MM',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'quarter') {\n return {\n format: format || 'YYYY-[Q]Q',\n valueType: valueType || format || 'YYYY-[Q]Q',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'week') {\n return {\n format: format || 'gggg-wo',\n valueType: valueType || format || 'gggg-wo',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'date') {\n return {\n format: format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n valueType: valueType || format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n timeFormat: extractTimeFormat(format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`) || TIME_FORMAT,\n };\n }\n log.error('DatePicker', `Invalid mode: ${mode}`);\n return {};\n}\n\n// 初始化面板年份月份\nexport function initYearMonthTime({\n value,\n mode = 'date',\n format,\n timeFormat = 'HH:mm:ss',\n enableTimePicker,\n}: {\n value: Array;\n mode: string;\n format: string;\n timeFormat?: string;\n enableTimePicker?: boolean;\n}) {\n const defaultYearMonthTime = {\n year: [dayjs().year(), dayjs().year()],\n month: [dayjs().month(), dayjs().month()],\n time: [dayjs().format(timeFormat), dayjs().format(timeFormat)],\n };\n if (mode === 'year') {\n defaultYearMonthTime.year[1] += 10;\n } else if (mode === 'month' || mode === 'quarter') {\n defaultYearMonthTime.year[1] += 1;\n } else if ((mode === 'date' || mode === 'week') && !enableTimePicker) {\n // 切换至下一年\n if (defaultYearMonthTime.month[0] === 11) {\n defaultYearMonthTime.year[1] += 1;\n defaultYearMonthTime.month[1] = 0;\n } else {\n defaultYearMonthTime.month[1] += 1;\n }\n }\n\n if (!value || !Array.isArray(value) || !value.length) {\n return defaultYearMonthTime;\n }\n\n return {\n year: value.map((v) => parseToDayjs(v, format).year()),\n month: value.map((v) => parseToDayjs(v, format).month()),\n time: value.map((v) => parseToDayjs(v, format).format(timeFormat)),\n };\n}\n","import { toRefs, watchEffect, ref, computed } from 'vue';\nimport {\n formatDate,\n formatTime,\n isValidDate,\n getDefaultFormat,\n parseToDayjs,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\nimport useVModel from '../../hooks/useVModel';\nimport { TdDatePickerProps, DateMultipleValue, DateValue } from '../type';\n\nexport function useSingleValue(props: TdDatePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n const time = ref(\n formatTime(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ),\n );\n const month = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).month(),\n );\n const year = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).year(),\n );\n const cacheValue = ref(\n formatDate(props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value, {\n format: formatRef.value.format,\n }),\n ); // 缓存选中值,panel 点击时更改\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = '';\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n });\n\n return {\n year,\n month,\n value,\n time,\n cacheValue,\n onChange,\n };\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import { isFunction, chunk } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n if (!str) return str;\n return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n year: number;\n month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n const d1 = date1.getTime();\n const d2 = date2.getTime();\n\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型,默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n const func = {\n isSameYear,\n isSameQuarter,\n isSameMonth,\n isSameWeek,\n isSameDate,\n } as Record boolean>;\n return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n let tempDate = date;\n if (!(date instanceof Date)) {\n tempDate = getToday();\n }\n return {\n year: tempDate.getFullYear(),\n month: tempDate.getMonth(),\n date: tempDate.getDate(),\n hours: tempDate.getHours(),\n minutes: tempDate.getMinutes(),\n seconds: tempDate.getSeconds(),\n milliseconds: tempDate.getMilliseconds(),\n meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n date: Date,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds?: number\n): Date {\n return dayjs(date)\n .hour(hours)\n .minute(minutes)\n .second(seconds)\n .millisecond(milliseconds)\n .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n firstDayOfWeek: number;\n disableDate: DisableDate;\n minDate: Date;\n maxDate: Date;\n showWeekOfYear?: Boolean;\n dayjsLocale?: string;\n monthLocal?: string[];\n quarterLocal?: string[];\n cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n { year, month }: { year: number; month: number },\n {\n firstDayOfWeek,\n showWeekOfYear = false,\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const prependDay = getFirstDayOfMonth({ year, month });\n const appendDay = getLastDayOfMonth({ year, month });\n const maxDays = getDaysInMonth({ year, month });\n const daysArr = [];\n let i = 1;\n const today = getToday();\n for (i; i <= maxDays; i++) {\n const currentDay = new Date(year, month, i);\n daysArr.push({\n text: i,\n active: false,\n value: currentDay,\n disabled: (isFunction(disableDate) && disableDate(currentDay))\n || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n now: isSame(today, currentDay),\n firstDayOfMonth: i === 1,\n lastDayOfMonth: i === maxDays,\n type: 'current-month',\n dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n });\n }\n\n if (prependDay.getDay() !== firstDayOfWeek) {\n prependDay.setDate(0); // 上一月\n while (true) {\n daysArr.unshift({\n text: prependDay.getDate().toString(),\n active: false,\n value: new Date(prependDay),\n disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'prev-month',\n dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n });\n prependDay.setDate(prependDay.getDate() - 1);\n if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n }\n }\n\n const LEN = 42; // 显示6周\n while (daysArr.length < LEN) {\n appendDay.setDate(appendDay.getDate() + 1);\n daysArr.push({\n text: appendDay.getDate(),\n active: false,\n value: new Date(appendDay),\n disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'next-month',\n dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n });\n }\n\n const dataList = chunk(daysArr, 7);\n // 显示周数\n if (showWeekOfYear) {\n dataList.forEach((d) => {\n d.unshift({\n ...d[0],\n active: false,\n value: d[0].value,\n text: dayjs(d[0].value).locale(dayjsLocale).week(),\n dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n });\n });\n }\n\n return dataList;\n}\n\nexport function getQuarters(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n quarterLocal,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const quarterArr = [];\n const today = getToday();\n\n for (let i = 1; i <= 4; i++) {\n const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n quarterArr.push({\n value: date,\n now: isSame(date, today, 'quarter'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: quarterLocal[i - 1],\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const startYear = parseInt((year / 10).toString(), 10) * 10;\n const endYear = startYear + 9;\n\n const yearArr = [];\n\n const today = getToday();\n\n for (let i = startYear; i <= endYear; i++) {\n const date = new Date(i, 0);\n\n yearArr.push({\n value: date,\n now: isSame(date, today, 'year'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: `${date.getFullYear()}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n const {\n disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n } = params;\n const MonthArr = [];\n const today = getToday();\n\n for (let i = 0; i <= 11; i++) {\n const date = new Date(year, i);\n\n MonthArr.push({\n value: date,\n now: isSame(date, today, 'month'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n additional: boolean;\n active: boolean;\n highlight: boolean;\n hoverHighlight: boolean;\n startOfRange: boolean;\n endOfRange: boolean;\n hoverStartOfRange: boolean;\n hoverEndOfRange: boolean;\n value: Date;\n}\n\ninterface FlagActiveOptions {\n start: Date;\n end: Date;\n hoverStart: Date;\n hoverEnd: Date;\n type: any;\n isRange: boolean;\n value: DateValue | DateValue[];\n multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n const {\n start,\n end,\n hoverStart,\n hoverEnd,\n type = 'date',\n isRange = false,\n value,\n multiple = false,\n } = args;\n\n // 周选择器不更改 cell 样式\n if (type === 'week') return data;\n\n if (!isRange) {\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n\n if (multiple) {\n _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n } else {\n _item.active = start && isSame(item.value, start, type) && !_item.additional;\n }\n\n return _item;\n }));\n }\n\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n const date = item.value;\n\n const isStart = start && isSame(start, date, type);\n const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n const isEnd = end && isSame(end, date, type);\n const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n _item.active = (isStart || isEnd) && !_item.additional;\n\n if (start && end) {\n _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n _item.startOfRange = isStart;\n _item.endOfRange = isEnd;\n }\n\n if (hoverStart && hoverEnd) {\n _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n _item.hoverStartOfRange = isHoverStart;\n _item.hoverEndOfRange = isHoverEnd;\n }\n return _item;\n }));\n}\n\n/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n return {\n hours: +hours,\n minutes: +minutes,\n seconds: +seconds,\n milliseconds: +milliseconds,\n meridiem: matchedMeridiem[0],\n };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n value,\n disableDate,\n mode,\n format,\n}: {\n value: Date;\n mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n format: string;\n disableDate: any;\n}): boolean {\n if (!disableDate) return true;\n\n const availableMode = mode === 'quarter' ? 'date' : mode;\n\n let isEnabled = true;\n // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n if (isFunction(disableDate)) {\n return !disableDate(value);\n }\n\n // 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n if (Array.isArray(disableDate)) {\n const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n // eslint-disable-next-line\n const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n return !isIncludes;\n }\n\n // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用(包括A和B)。\n // eslint-disable-next-line\n const { from, to, before, after } = disableDate;\n\n if (from && to) {\n const compareMin = dayjs(from).startOf('day');\n const compareMax = dayjs(to).endOf('day');\n return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n }\n\n // 最小时间与最大时间的边界,防止正负时区出现禁用时间不一致的情况\n const min = before ? new Date(dayjs(before).startOf('day').format()) : null;\n const max = after ? new Date(dayjs(after).endOf('day').format()) : null;\n\n // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n if (max && min) {\n const compareMin = dayjs(new Date(min));\n const compareMax = dayjs(new Date(max));\n\n isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n } else if (min) {\n const compareMin = dayjs(new Date(min));\n isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n } else if (max) {\n const compareMax = dayjs(new Date(max));\n isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n }\n return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参,部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n return valueType === 'time-stamp'\n ? new Date(value)\n : dayjs(value, valueType).toDate();\n}\n","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。`{ from: 'A', to: 'B' }` 表示在 A 到 B 之间的日期会被禁用。`{ before: 'A', after: 'B' }` 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDatePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 仅用于格式化日期显示的格式,不影响日期值。注意和 `valueType` 的区别,`valueType`会直接决定日期值 `value` 的格式。全局配置默认为:'YYYY-MM-DD',[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: undefined,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDatePickerProps['mode'],\n validator(val: TdDatePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 支持多选日期,但不支持在range-picker中,或与enableTimePicker、allowInput 一起使用 */\n multiple: Boolean,\n /** 决定在日期时间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为`true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdDatePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 用于自定义组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:`{ '元旦': '2021-01-01', '昨天': dayjs().subtract(1, 'day').format('YYYY-MM-DD'), '特定日期': () => ['2021-02-01'] }` */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDatePickerProps['presetsPlacement'],\n validator(val: TdDatePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 是否只读,优先级大于 allowInput */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDatePickerProps['size'],\n validator(val: TdDatePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDatePickerProps['status'],\n validator(val: TdDatePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 用于自定义组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n modelValue: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array, Date] as PropType,\n default: '' as TdDatePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式。`ValueTypeEnum` 即将废弃,请更为使用 `DatePickerValueType` */\n valueType: {\n type: String as PropType,\n default: '' as TdDatePickerProps['valueType'],\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","import { defineComponent, PropType, ref, computed, watch } from 'vue';\nimport { PaginationMini, JumperTrigger } from '../../../pagination';\nimport TSelect from '../../../select';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerHeader',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n year: Number,\n month: Number,\n onMonthChange: Function,\n onYearChange: Function,\n onJumperClick: Function as PropType<(context: { e: MouseEvent; trigger: JumperTrigger }) => {}>,\n },\n setup(props) {\n const { classPrefix } = useConfig('classPrefix');\n const COMPONENT_NAME = usePrefixClass('date-picker__header');\n const { globalConfig } = useConfig('datePicker');\n\n const yearOptions = ref(initOptions(props.year));\n const showMonthPicker = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 年份选择展示区间\n const nearestYear = computed(\n () =>\n yearOptions.value.find((option) => option.value - props.year <= 9 && option.value - props.year >= 0)?.value ||\n props.year,\n );\n\n const monthOptions = computed(() =>\n globalConfig.value.months.map((item: string, index: number) => ({ label: item, value: index })),\n );\n\n function initOptions(year: number) {\n const options = [];\n if (props.mode === 'year') {\n const extraYear = year % 10;\n const minYear = year - extraYear - 100;\n const maxYear = year - extraYear + 100;\n\n for (let i = minYear; i <= maxYear; i += 10) {\n options.push({ label: `${i} - ${i + 9}`, value: i + 9 });\n }\n } else {\n options.push({ label: `${year}`, value: year });\n\n for (let i = 1; i <= 10; i++) {\n options.push({ label: `${year + i}`, value: year + i });\n options.unshift({ label: `${year - i}`, value: year - i });\n }\n }\n\n return options;\n }\n\n function loadMoreYear(year: number, type?: 'add' | 'reduce') {\n const options = [];\n if (props.mode === 'year') {\n const extraYear = year % 10;\n if (type === 'add') {\n for (let i = year - extraYear + 10; i <= year - extraYear + 50; i += 10) {\n options.push({ label: `${i} - ${i + 9}`, value: i });\n }\n } else {\n for (let i = year - extraYear - 1; i > year - extraYear - 50; i -= 10) {\n options.unshift({ label: `${i - 9} - ${i}`, value: i });\n }\n }\n } else if (type === 'add') {\n for (let i = year + 1; i <= year + 10; i++) {\n options.push({ label: `${i}`, value: i });\n }\n } else {\n for (let i = year - 1; i > year - 10; i--) {\n options.unshift({ label: `${i}`, value: i });\n }\n }\n\n return options;\n }\n\n // hover title\n const labelMap = computed(() => {\n return {\n year: {\n prev: globalConfig.value.preDecade,\n current: globalConfig.value.now,\n next: globalConfig.value.nextDecade,\n },\n month: {\n prev: globalConfig.value.preYear,\n current: globalConfig.value.now,\n next: globalConfig.value.nextYear,\n },\n date: {\n prev: globalConfig.value.preMonth,\n current: globalConfig.value.now,\n next: globalConfig.value.nextMonth,\n },\n quarter: {\n prev: globalConfig.value.preYear,\n current: globalConfig.value.now,\n next: globalConfig.value.nextYear,\n },\n week: {\n prev: globalConfig.value.preMonth,\n current: globalConfig.value.now,\n next: globalConfig.value.nextMonth,\n },\n };\n });\n\n // 滚动顶部底部自动加载\n function handleScroll({ e }: any) {\n if (e.target.scrollTop === 0) {\n handlePanelTopClick(e);\n } else if (e.target.scrollTop === e.target.scrollHeight - e.target.clientHeight) {\n handlePanelBottomClick(e);\n }\n }\n\n function handlePanelTopClick(e: MouseEvent) {\n e?.stopPropagation?.();\n\n const firstYear = yearOptions.value[0].value;\n const options = loadMoreYear(firstYear, 'reduce');\n yearOptions.value = [...options, ...yearOptions.value];\n }\n\n function handlePanelBottomClick(e: MouseEvent) {\n e?.stopPropagation?.();\n\n const lastYear = yearOptions.value.slice(-1)[0].value;\n const options = loadMoreYear(lastYear, 'add');\n yearOptions.value = [...yearOptions.value, ...options];\n }\n\n watch(\n () => props.mode,\n () => {\n yearOptions.value = initOptions(props.year);\n },\n );\n\n return () => (\n
    \n
    \n {showMonthPicker.value && (\n props.onMonthChange?.(val)}\n popupProps={{\n attach: (triggerElement: HTMLElement) => triggerElement.parentNode,\n overlayClassName: `${COMPONENT_NAME.value}-controller-month-popup`,\n }}\n />\n )}\n props.onYearChange?.(val)}\n popupProps={{\n onScroll: handleScroll,\n attach: (triggerElement: HTMLElement) => triggerElement.parentNode,\n overlayClassName: `${COMPONENT_NAME.value}-controller-year-popup`,\n }}\n panelTopContent={() => (\n
    \n ...\n
    \n )}\n panelBottomContent={() => (\n
    \n ...\n
    \n )}\n />\n
    \n\n \n
    \n );\n },\n});\n","import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../../../hooks/useConfig';\nimport { extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { Dayjs } from 'dayjs';\n\nexport default defineComponent({\n name: 'TDatePickerCell',\n props: {\n time: String,\n text: [String, Number],\n value: Date,\n active: Boolean,\n highlight: Boolean,\n disabled: Boolean,\n startOfRange: Boolean,\n endOfRange: Boolean,\n hoverHighlight: Boolean,\n hoverStartOfRange: Boolean,\n hoverEndOfRange: Boolean,\n additional: Boolean,\n now: Boolean,\n firstDayOfMonth: Boolean,\n lastDayOfMonth: Boolean,\n onClick: Function,\n onMouseEnter: Function,\n dayjsObj: Dayjs,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__cell');\n\n const cellClass = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--now`]: props.now,\n [`${COMPONENT_NAME.value}--active`]: props.active,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [`${COMPONENT_NAME.value}--highlight`]: props.highlight,\n [`${COMPONENT_NAME.value}--hover-highlight`]: props.hoverHighlight,\n [`${COMPONENT_NAME.value}--active-start`]: props.startOfRange,\n [`${COMPONENT_NAME.value}--active-end`]: props.endOfRange,\n [`${COMPONENT_NAME.value}--hover-start`]: props.hoverStartOfRange,\n [`${COMPONENT_NAME.value}--hover-end`]: props.hoverEndOfRange,\n [`${COMPONENT_NAME.value}--additional`]: props.additional,\n [`${COMPONENT_NAME.value}--first-day-of-month`]: props.firstDayOfMonth,\n [`${COMPONENT_NAME.value}--last-day-of-month`]: props.lastDayOfMonth,\n },\n ]);\n\n function handleClick(e: MouseEvent) {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onClick?.(props.value, { e });\n }\n\n function handleMouseEnter() {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onMouseEnter?.(props.value);\n }\n\n return () => (\n \n
    {props.text}
    \n \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\n\nimport TDatePickerCell from './Cell';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport { parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { isArray } from 'lodash-es';\n\nimport type { TdDatePickerProps, DateMultipleValue } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n value: [String, Number, Array, Date],\n format: String,\n firstDayOfWeek: Number,\n multiple: Boolean,\n data: Array,\n time: String,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__table');\n const { globalConfig } = useConfig('datePicker');\n const { dayjsLocale } = globalConfig.value;\n\n const weekArr = computed(() => {\n const weekArr = [];\n let wi = props.firstDayOfWeek - 1;\n const len = globalConfig.value.weekdays.length;\n while (weekArr.length < len) {\n weekArr.push(globalConfig.value.weekdays[wi]);\n wi = (wi + len + 1) % len;\n }\n\n if (props.mode === 'week') weekArr.unshift(globalConfig.value.weekAbbreviation);\n\n return weekArr;\n });\n\n const showThead = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 高亮周区间\n const weekRowClass = (value: any, targetValue: Date) => {\n if (props.mode !== 'week' || !value) return {};\n\n if (isArray(value)) {\n if (!value.length) return {};\n const [startObj, endObj] = value.map((v) => v && parseToDayjs(v, props.format));\n const startYear = startObj && startObj.year();\n const startWeek = startObj?.locale?.(dayjsLocale)?.week?.();\n const endYear = endObj && endObj.year();\n const endWeek = endObj?.locale?.(dayjsLocale)?.week?.();\n\n const targetObj = parseToDayjs(targetValue, props.format);\n const targetYear = targetObj.year();\n const targetWeek = targetObj.week();\n const isActive =\n (targetYear === startYear && targetWeek === startWeek) || (targetYear === endYear && targetWeek === endWeek);\n const isRange =\n targetYear >= startYear && targetYear <= endYear && targetWeek > startWeek && targetWeek < endWeek;\n return {\n // 同年同周\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isActive,\n [`${COMPONENT_NAME.value}-${props.mode}-row--range`]: isRange,\n };\n }\n\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n parseToDayjs(value, props.format).locale(dayjsLocale).week() ===\n parseToDayjs(targetValue, props.format).locale(dayjsLocale).week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 点击清空按钮时触发 */\n onClear: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { range } from 'lodash-es';\nimport { padStart } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { panelColProps } from './props';\nimport { EPickerCols, TWELVE_HOUR_FORMAT, AM, PM, MERIDIEM_LIST } from '@tdesign/common-js/time-picker/const';\nimport { closestLookup, getPickerCols } from '@tdesign/common-js/time-picker/utils';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../../hooks/useConfig';\n\ndayjs.extend(customParseFormat);\n\nconst timeArr = [EPickerCols.hour, EPickerCols.minute, EPickerCols.second, EPickerCols.milliSecond];\n\nconst panelOffset = {\n top: 15,\n bottom: 21,\n};\n\nexport default defineComponent({\n name: 'TTimePickerPanelCol',\n props: {\n ...panelColProps(),\n position: String,\n triggerScroll: Boolean,\n onChange: Function,\n resetTriggerScroll: Function,\n isShowPanel: Boolean,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { STATUS } = useCommonClassName();\n\n const { steps, value, format, position, triggerScroll } = toRefs(props);\n\n const cols = ref>([]);\n const bodyRef = ref();\n const maskRef = ref(null);\n // 每个滚动列的ref 顺序不定 所以只要有5列标识即可\n const colsRef = reactive>({\n 0: null,\n 1: null,\n 2: null,\n 3: null,\n 4: null,\n 5: null,\n });\n\n const dayjsValue = computed(() => {\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n\n if (value.value) return dayjs(value.value, format.value);\n\n if (isStepsSet) return dayjs().hour(0).minute(0).second(0);\n\n return dayjs();\n });\n\n // 面板打开时 触发滚动 初始化面板\n watch(\n () => dayjsValue.value,\n () => {\n if (dayjsValue.value && value.value) updateTimeScrollPos(true);\n },\n );\n\n // 时间通过外部触发时 同样触发滚动\n watch(\n () => triggerScroll.value,\n () => {\n if (triggerScroll.value) {\n updateTimeScrollPos(true);\n }\n },\n );\n\n onMounted(() => {\n cols.value = getPickerCols(format.value);\n });\n\n // 获取每个时间的高度\n const getItemHeight = () => {\n const maskDom = maskRef.value?.querySelector('div');\n if (!maskDom) {\n return {\n offsetHeight: 0,\n margin: 0,\n };\n }\n return {\n offsetHeight: parseFloat(getComputedStyle(maskDom).height),\n margin: parseFloat(getComputedStyle(maskDom).marginTop),\n };\n };\n\n const timeItemCanUsed = (col: EPickerCols, el: string | number) => {\n const colIdx = timeArr.indexOf(col);\n if (colIdx !== -1) {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(el);\n return !props.disableTime?.(...params, { partial: position.value || 'start' })?.[col]?.includes(Number(el));\n }\n return true;\n };\n\n // 获取需要渲染的column\n const getColList = (col: EPickerCols) => {\n let count = 0;\n\n if (timeArr.includes(col)) {\n // hour、minute and second columns\n const colIdx = timeArr.indexOf(col);\n const colStep = steps.value[colIdx] || 1;\n\n if (col === EPickerCols.hour)\n count = TWELVE_HOUR_FORMAT.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) count = 999; // 毫秒最大为999\n else count = 59;\n\n const colList = range(0, count + 1, Number(colStep)).map((v) => padStart(String(v), 2, '0')) || [];\n return props.hideDisabledTime && !!props.disableTime\n ? colList.filter((t) => {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(t);\n return !props\n .disableTime?.(...params, { partial: position.value || 'start' })\n ?.[col]?.includes(Number(t));\n })\n : colList;\n }\n // meridiem column\n return MERIDIEM_LIST;\n };\n\n const getScrollDistance = (col: EPickerCols, time: number | string) => {\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value))\n // eslint-disable-next-line no-param-reassign\n (time as number) %= 12; // 一定是数字,直接cast\n\n const itemIdx = getColList(col).indexOf(padStart(String(time), 2, '0'));\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n const distance = Math.abs(Math.max(0, itemIdx) * timeItemTotalHeight);\n return distance;\n };\n\n const handleScroll = (col: EPickerCols, idx: number, e: MouseEvent) => {\n let val: number | string;\n let formattedVal: string;\n if (!props.isShowPanel) return;\n\n const scrollTop = (colsRef[idx]?.scrollTop || 0) + panelOffset.top;\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n let colStep = Math.abs(Math.round(scrollTop / timeItemTotalHeight + 0.5));\n\n const meridiem = MERIDIEM_LIST[Math.min(colStep - 1, 1)].toLowerCase(); // 处理PM、AM与am、pm\n\n if (Number.isNaN(colStep)) colStep = 1;\n if (timeArr.includes(col)) {\n // hour、minute、 second and milliSecond\n let max = 59;\n if (col === EPickerCols.hour) max = /[h]{1}/.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) max = 999; // 毫秒最大为999\n\n const colIdx = timeArr.indexOf(col);\n const availableArr = range(0, max + 1, Number(steps.value[colIdx]) || 1);\n val = closestLookup(\n availableArr,\n Number(getColList(col)[Math.min(colStep - 1, max + 1, availableArr.length - 1)]),\n Number(steps.value[colIdx]) || 1,\n );\n if (Number.isNaN(val)) val = availableArr[availableArr.length - 1];\n if (col === EPickerCols.hour && cols.value.includes(EPickerCols.meridiem) && dayjsValue.value.hour() >= 12) {\n // 如果是十二小时制需要再判断\n val = Number(val) + 12;\n }\n }\n // meridiem columns\n else val = meridiem;\n\n const distance = getScrollDistance(col, val);\n if (!dayjs(dayjsValue.value).isValid() || (value.value && !dayjs(value.value, format.value, true).isValid()))\n return;\n\n if (timeArr.includes(col)) {\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n if (timeItemCanUsed(col, val)) formattedVal = dayjsValue.value[col]?.(val).format(format.value);\n else formattedVal = dayjsValue.value.format(format.value);\n } else {\n const currentHour = dayjsValue.value.hour();\n if (meridiem === AM && currentHour >= 12) {\n formattedVal = dayjsValue.value.hour(currentHour - 12).format(format.value);\n } else if (meridiem === PM && currentHour < 12) {\n formattedVal = dayjsValue.value.hour(currentHour + 12).format(format.value);\n } else {\n formattedVal = dayjsValue.value.format(format.value);\n }\n }\n if (formattedVal !== value.value) props.onChange?.(formattedVal, e);\n\n if (distance !== scrollTop) {\n const scrollCtrl = colsRef[cols.value.indexOf(col)];\n\n if (!scrollCtrl || scrollCtrl.scrollTop === distance) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior: 'smooth',\n });\n }\n };\n\n const scrollToTime = (\n col: EPickerCols,\n time: number | string,\n idx: number,\n behavior: 'auto' | 'smooth' = 'auto',\n ) => {\n const distance = getScrollDistance(col, time);\n const scrollCtrl = colsRef[idx];\n if (!scrollCtrl || scrollCtrl.scrollTop === distance || !timeItemCanUsed(col, time)) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior,\n });\n };\n\n const handleTimeItemClick = (col: EPickerCols, el: string | number, idx: number, e: MouseEvent) => {\n if (!timeItemCanUsed(col, el)) return;\n if (timeArr.includes(col)) {\n if (\n col === EPickerCols.hour &&\n dayjsValue.value.format('a') === PM &&\n cols.value.includes(EPickerCols.meridiem)\n ) {\n // eslint-disable-next-line no-param-reassign\n el = Number(el) + 12;\n }\n scrollToTime(col, el, idx, 'smooth');\n } else {\n const currentHour = dayjsValue.value.hour();\n if (el === AM && currentHour >= 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour - 12).format(format.value), e);\n } else if (el === PM && currentHour < 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour + 12).format(format.value), e);\n }\n }\n };\n\n // update each columns scroll distance\n const updateTimeScrollPos = (isAutoScroll = false) => {\n const behavior = value.value && !isAutoScroll ? 'smooth' : 'auto';\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n nextTick(() => {\n cols.value.forEach((col: EPickerCols, idx: number) => {\n if (!isStepsSet || (isStepsSet && value.value)) {\n // 如果没有设置大于1的steps或设置了大于1的step 正常处理滚动\n scrollToTime(\n col,\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n timeArr.includes(col) ? dayjsValue.value[col]?.() : dayjsValue.value.format('a'),\n idx,\n behavior,\n );\n } else {\n // 否则初始化到每列第一个选项\n scrollToTime(col, getColList(col)?.[0], idx, behavior);\n }\n });\n });\n\n props.resetTriggerScroll();\n };\n\n const isCurrent = (col: EPickerCols, colItem: string | number) => {\n let colVal: number;\n if (col === EPickerCols.meridiem) {\n const currentMeridiem = dayjsValue.value.format('a');\n return currentMeridiem === colItem;\n }\n colVal = dayjsValue.value[col]?.();\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value)) {\n colVal %= 12;\n }\n return colVal === Number(colItem);\n };\n\n return () => (\n
    \n
    \n {/* 渲染遮罩层 */}\n {cols.value.map?.((col, idx) => (\n
    \n ))}\n
    \n {/* 渲染实际滚动列 */}\n {cols.value.map?.((col, idx) => (\n (colsRef[idx] = el as HTMLElement)}\n class={`${COMPONENT_NAME.value}-body-scroll`}\n onScroll={debounce((e) => handleScroll(col, idx, e), 50)}\n >\n {getColList(col).map((el) => (\n handleTimeItemClick(col, el, idx, e)}\n >\n {/* eslint-disable-next-line no-nested-ternary */}\n {timeArr.includes(col)\n ? TWELVE_HOUR_FORMAT.test(format.value) && col === EPickerCols.hour && el === '00'\n ? '12'\n : el\n : globalConfig.value[el === AM ? 'anteMeridiem' : 'postMeridiem']}\n \n ))}\n \n ))}\n
    \n );\n },\n});\n","import { defineComponent, toRefs, computed, ref, onMounted, nextTick, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isUndefined } from 'lodash-es';\n\nimport { DEFAULT_STEPS, DEFAULT_FORMAT } from '@tdesign/common-js/time-picker/const';\nimport { panelProps } from './props';\nimport SinglePanel from './single-panel';\nimport TButton from '../../button/button';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { TimePickerValue, TimeRangeValue } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePickerPanel',\n props: {\n ...panelProps(),\n isFooterDisplay: Boolean,\n handleConfirmClick: Function,\n onChange: Function,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { steps, isFooterDisplay, isShowPanel } = toRefs(props);\n const triggerScroll = ref(false);\n const panelRef = ref();\n const showNowTimeBtn = computed(() => !!steps.value.filter((step) => Number(step) > 1).length);\n\n const defaultValue = computed(() => {\n const isStepsSet = showNowTimeBtn.value;\n const formattedValue = dayjs(props.value, props.format);\n if (props.value && formattedValue.isValid()) {\n return formattedValue.format(props.format);\n }\n\n if (isStepsSet) {\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n }\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n });\n\n const panelColUpdate = () => {\n nextTick(() => {\n triggerScroll.value = true;\n });\n };\n\n const resetTriggerScroll = () => {\n triggerScroll.value = false;\n };\n const handlePresetClick = (\n presetValue: TimePickerValue | (() => TimePickerValue) | TimeRangeValue | (() => TimeRangeValue),\n ) => {\n const presetVal = typeof presetValue === 'function' ? presetValue() : presetValue;\n if (typeof props.activeIndex === 'number') {\n if (Array.isArray(presetVal)) {\n props.onChange?.(presetVal[props.activeIndex]);\n } else {\n log.error('TimePicker', `preset: ${props.presets} 预设值必须是数组!`);\n }\n } else {\n props.onChange?.(presetVal);\n }\n };\n\n const renderFooter = () => {\n if (!isUndefined(props.presets))\n return Object.keys(props.presets || []).map((key: string) => (\n handlePresetClick(props.presets[key])}\n >\n {key}\n \n ));\n return !showNowTimeBtn.value ? (\n props.onChange?.(dayjs().format(props.format))}\n >\n {globalConfig.value.now}\n \n ) : null;\n };\n\n // 渲染后执行update 使面板滚动至当前时间位置\n onMounted(() => {\n panelColUpdate();\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n panelColUpdate();\n },\n );\n\n return () => (\n
    \n
    \n \n
    \n {isFooterDisplay.value ? (\n \n ) : null}\n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '../../../hooks/useConfig';\nimport type { TdDatePickerProps } from '../../type';\n\nimport TDateHeader from '../base/Header';\nimport TDateTable from '../base/Table';\nimport TTimePickerPanel from '../../../time-picker/panel/time-picker-panel';\nimport { getDefaultFormat } from '@tdesign/common-js/date-picker/format';\n\nexport default defineComponent({\n name: 'TPanelContent',\n props: {\n mode: String as PropType,\n format: String as PropType,\n enableTimePicker: Boolean as PropType,\n timePickerProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n year: Number,\n month: Number,\n tableData: Array,\n time: String,\n multiple: Boolean,\n firstDayOfWeek: Number,\n partial: String,\n popupVisible: Boolean,\n onYearChange: Function,\n onMonthChange: Function,\n onJumperClick: Function,\n onCellMouseEnter: Function,\n onCellClick: Function,\n onCellMouseLeave: Function,\n onTimePickerChange: Function,\n value: [String, Number, Array, Date],\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n\n const { timeFormat } = getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n });\n\n const defaultTimeValue = '00:00:00';\n\n return () => (\n
    \n
    \n props.onMonthChange?.(val, { partial: props.partial })}\n onYearChange={(val: number) => props.onYearChange?.(val, { partial: props.partial })}\n onJumperClick={({ trigger }: { trigger: string }) =>\n props.onJumperClick?.({ trigger, partial: props.partial })\n }\n />\n\n \n props.onCellClick?.(date, { e, partial: props.partial })\n }\n onCellMouseEnter={(date: Date) => props.onCellMouseEnter?.(date, { partial: props.partial })}\n onCellMouseLeave={props.onCellMouseLeave}\n />\n
    \n\n {props.enableTimePicker && (\n
    \n
    {props.time || defaultTimeValue}
    \n \n
    \n )}\n
    \n );\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TButton from '../../../button';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n enableTimePicker: Boolean,\n presetsPlacement: String,\n presets: Object,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n selectedValue: [String, Number, Array, Date] as PropType,\n onPresetClick: Function,\n onConfirmClick: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__footer');\n const presetsClass = usePrefixClass('date-picker__presets');\n const { t, globalConfig } = useConfig('datePicker');\n\n const footerClass = computed(() => [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.presetsPlacement}`]);\n\n return () => (\n
    \n {\n
    \n {props.presets &&\n Object.keys(props.presets).map((key: string) => (\n \n props.onPresetClick?.(props.presets[key], { e, preset: { [key]: props.presets[key] } })\n }\n >\n {key}\n \n ))}\n
    \n }\n {props.enableTimePicker && props.needConfirm && (\n props.onConfirmClick?.({ e })}\n >\n {t(globalConfig.value.confirm)}\n \n )}\n
    \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\nimport TDateFooter from '../base/Footer';\n\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TExtraContent',\n props: {\n presets: Object as PropType,\n enableTimePicker: Boolean as PropType,\n presetsPlacement: String as PropType,\n needConfirm: { type: Boolean, default: true },\n onPresetClick: Function,\n onConfirmClick: Function,\n selectedValue: [String, Number, Array, Date] as PropType,\n },\n setup(props) {\n // 默认为 true\n const showPanelFooter = computed(() => (props.enableTimePicker && props.needConfirm) || props.presets);\n\n return () =>\n showPanelFooter.value ? (\n \n ) : null;\n },\n});\n","import { isObject } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../type';\nimport { isEnabledDate } from '@tdesign/common-js/date-picker/utils';\n\nexport interface disableDateProps {\n disableDate?: TdDatePickerProps['disableDate'] | TdDateRangePickerProps['disableDate'];\n format?: TdDatePickerProps['format'];\n mode?: TdDatePickerProps['mode'];\n start?: Date;\n end?: Date;\n}\n\nexport function useDisableDate(props: disableDateProps) {\n const { disableDate, format, mode, start, end } = props;\n\n return {\n disableDate: (value: Date) => !isEnabledDate({ disableDate, format, mode, value }),\n minDate:\n isObject(disableDate) && 'before' in disableDate\n ? new Date(dayjs(disableDate.before).startOf('day').format())\n : start,\n maxDate:\n isObject(disableDate) && 'after' in disableDate ? new Date(dayjs(disableDate.after).endOf('day').format()) : end,\n };\n}\n","import { ref, toRefs, watchEffect, computed } from 'vue';\nimport useVModel from '../../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n initYearMonthTime,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n // warning invalid value\n if (!isArray(value.value)) {\n console.error(`typeof value: ${value.value} must be Array!`);\n } else if (!isValidDate(value.value, formatRef.value.format)) {\n console.error(\n `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n );\n }\n\n const isFirstValueSelected = ref(false); // 记录面板点击次数,两次后才自动关闭\n const time = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n timeFormat: formatRef.value.timeFormat,\n }).time,\n );\n const month = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n }).month,\n );\n const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = [];\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n time.value = formatTime(\n value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n });\n\n return {\n year,\n month,\n value,\n time,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { ref, computed, watch } from 'vue';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\nimport { omit } from 'lodash-es';\n\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nimport { TdDateRangePickerProps, DateValue, DateRangePickerPartial } from '../type';\nimport { isValidDate, formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useRangeValue } from './useRangeValue';\n\nexport const PARTIAL_MAP: Record<'first' | 'second', DateRangePickerPartial> = { first: 'start', second: 'end' };\n\nexport function useRange(props: TdDateRangePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n const { globalConfig } = useConfig('datePicker');\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isMountedRef = ref(false);\n const inputRef = ref();\n\n const { value, onChange, time, month, year, cacheValue, isFirstValueSelected } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n const activeIndex = ref<0 | 1>(0); // 确定当前选中的输入框序号\n const inputValue = ref(formatDate(props.value, { format: formatRef.value.format })); // 未真正选中前可能不断变更输入框的内容\n const isReadOnly = useReadonly();\n\n // input 设置\n const rangeInputProps = computed(() => ({\n ...props.rangeInputProps,\n size: props.size,\n ref: inputRef,\n borderless: props.borderless,\n clearable: props.clearable && !isReadOnly.value,\n prefixIcon: () => renderTNodeJSX('prefixIcon'),\n readonly: isReadOnly.value || !props.allowInput,\n separator: props.separator || globalConfig.value.rangeSeparator,\n placeholder:\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode],\n activeIndex: popupVisible.value ? activeIndex.value : undefined,\n suffixIcon: () => {\n return renderTNodeJSX('suffixIcon') || ;\n },\n class: {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n onClick: ({ position }: any) => {\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n onClear: ({ e }: { e: MouseEvent }) => {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: [], trigger: 'clear' });\n },\n onBlur: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onBlur?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n },\n onFocus: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onFocus?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n inputValue.value = newVal;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(newVal, formatRef.value.format)) return;\n cacheValue.value = newVal;\n const newYear: Array = [];\n const newMonth: Array = [];\n const newTime: Array = [];\n newVal.forEach((v) => {\n newYear.push(parseToDayjs(v, formatRef.value.format).year());\n newMonth.push(parseToDayjs(v, formatRef.value.format).month());\n newTime.push(parseToDayjs(v, formatRef.value.format).format(formatRef.value.timeFormat));\n });\n year.value = newYear;\n month.value = newMonth;\n time.value = newTime;\n },\n onEnter: (newVal: string[]) => {\n if (!isValidDate(newVal, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(newVal, formatRef.value.format)) {\n onChange?.(\n formatDate(newVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: newVal.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = [];\n }\n },\n }));\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value.focus({ position: indexMap[activeIndex.value] });\n popupVisible.value = true;\n return;\n }\n\n popupVisible.value = visible;\n },\n }));\n\n // 输入框响应 value 变化\n watch(\n value,\n (value) => {\n if (!value) {\n inputValue.value = [];\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n },\n {\n immediate: true,\n },\n );\n\n // activeIndex 变化自动 focus 对应输入框\n watch(\n activeIndex,\n (index) => {\n if (!isMountedRef.value) {\n isMountedRef.value = true;\n return;\n }\n if (!popupVisible.value) return;\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value?.focus?.({ position: indexMap[index] });\n },\n {\n immediate: true,\n },\n );\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n isHoverCell,\n activeIndex,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { useConfig } from '../../hooks/useConfig';\n\nimport { getWeeks, getYears, getMonths, getQuarters, flagActive } from '@tdesign/common-js/date-picker/utils';\n\nexport function useTableData(props: any) {\n // 国际化文本初始化\n const { globalConfig } = useConfig('datePicker');\n\n const options = {\n minDate: props.minDate,\n maxDate: props.maxDate,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek,\n monthLocal: globalConfig.value.months as string[],\n quarterLocal: globalConfig.value.quarters as string[],\n showWeekOfYear: props.mode === 'week',\n dayjsLocale: globalConfig.value.dayjsLocale,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n };\n\n let data: Array = [];\n if (props.mode === 'date') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'week') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'quarter') {\n data = getQuarters(props.year, options);\n } else if (props.mode === 'month') {\n data = getMonths(props.year, options);\n } else if (props.mode === 'year') {\n data = getYears(props.year, options);\n }\n return flagActive(data, {\n start: props.start,\n end: props.end,\n hoverStart: props.hoverStart,\n hoverEnd: props.hoverEnd,\n type: props.mode,\n isRange: props.isRange,\n value: props.value,\n multiple: props.multiple,\n });\n}\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from '../../type';\n\nexport default defineComponent({\n name: 'TSinglePanel',\n props: {\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: [String, Number, Array, Date] as PropType,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n enableTimePicker: Boolean,\n firstDayOfWeek: Number,\n year: Number,\n month: Number,\n time: String,\n popupVisible: Boolean,\n multiple: Boolean,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n onPanelClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n }),\n );\n const tableData = computed(() =>\n useTableData({\n year: props.year,\n month: props.month,\n mode: props.mode,\n start: props.value\n ? parseToDayjs(\n props.multiple ? (props.value as DateMultipleValue)[0] : (props.value as DateValue),\n format.value,\n ).toDate()\n : undefined,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n multiple: props.multiple,\n value: props.value,\n ...disableDateOptions.value,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n value: props.value,\n mode: props.mode,\n year: props.year,\n month: props.month,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n tableData: tableData.value,\n popupVisible: props.popupVisible,\n multiple: props.multiple,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n time: props.time,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n const extraProps = computed(() => ({\n presets: props.presets,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n onPresetClick: props.onPresetClick,\n onConfirmClick: props.onConfirmClick,\n selectedValue: props.value,\n needConfirm: props.needConfirm,\n }));\n\n return () => (\n props.onPanelClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? : null}\n \n {['bottom', 'right'].includes(props.presetsPlacement) ? : null}\n
    \n );\n },\n});\n","import { defineComponent, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction, isDate } from 'lodash-es';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useSingle } from './hooks/useSingle';\nimport { parseToDayjs, getDefaultFormat, formatTime, formatDate } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj, covertToDate, isSame } from '@tdesign/common-js/date-picker/utils';\nimport props from './props';\nimport TSelectInput from '../select-input';\nimport TSinglePanel from './components/panel/SinglePanel';\nimport { useReadonly } from '../hooks/useReadonly';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from './type';\nimport type { TagInputRemoveContext } from '../tag-input';\n\nexport default defineComponent({\n name: 'TDatePicker',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n\n const {\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n isHoverCell,\n cacheValue,\n value,\n year,\n month,\n time,\n inputRef,\n onChange,\n } = useSingle(props);\n\n const disabled = useDisabled();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('datePicker');\n const isReadOnly = useReadonly();\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n const valueDisplayParams = computed(() => {\n return {\n value: value.value,\n displayValue: inputValue.value,\n };\n });\n\n watch(popupVisible, (visible) => {\n // 多选不考虑输入情况\n if (props.multiple) return;\n // 如果不需要确认,直接保存当前值\n if (!props.needConfirm && props.enableTimePicker && !visible) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n }\n\n // 格式化 input 值\n const dateValue =\n // Date 属性、季度和周不再 parse,避免 dayjs 处理成 Invalid\n value.value && !isDate(value.value) && !['week', 'quarter'].includes(props.mode)\n ? covertToDate(value.value as string, formatRef.value?.valueType)\n : value.value;\n\n cacheValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n inputValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n\n // 面板展开重置数据\n if (visible) {\n year.value = parseToDayjs(value.value as DateValue, formatRef.value.valueType).year();\n month.value = parseToDayjs(value.value as DateValue, formatRef.value.format).month();\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n } else {\n isHoverCell.value = false;\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n if (props.multiple) return;\n\n isHoverCell.value = true;\n inputValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n if (props.multiple) return;\n\n isHoverCell.value = false;\n inputValue.value = formatDate(cacheValue.value, {\n format: formatRef.value.format,\n });\n }\n\n // 日期点击\n function onCellClick(date: Date) {\n isHoverCell.value = false;\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n } else {\n if (props.multiple) {\n const newDate = processDate(date);\n onChange(newDate, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n return;\n }\n\n onChange?.(\n formatDate(date, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n },\n );\n popupVisible.value = false;\n }\n\n props.onPick?.(date);\n }\n\n function processDate(date: Date) {\n let isSameDate: boolean;\n const currentValue = (value.value || []) as DateMultipleValue;\n const { dayjsLocale } = globalConfig.value;\n\n let currentDate: DateMultipleValue;\n if (props.mode !== 'week')\n isSameDate = currentValue.some((val) =>\n isSame(parseToDayjs(val, formatRef.value.format).toDate(), date, props.mode, dayjsLocale),\n );\n else {\n isSameDate = currentValue.some((val) => val === dayjs(date).locale(dayjsLocale).format(formatRef.value.format));\n }\n\n if (!isSameDate) {\n currentDate = currentValue.concat(\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n } else {\n currentDate = currentValue.filter(\n (val) =>\n formatDate(val, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }) !==\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n }\n return currentDate;\n }\n\n function onTagRemoveClick(ctx: TagInputRemoveContext) {\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('label')}\n status={props.status}\n tips={props.tips}\n clearable={props.clearable}\n readonly={isReadOnly.value}\n multiple={props.multiple}\n popupProps={popupProps.value}\n inputProps={inputProps.value}\n placeholder={\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode]\n }\n popupVisible={!isReadOnly.value && popupVisible.value}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { TdDatePickerProps, DateValue } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n parseToDayjs,\n} from '@tdesign/common-js/date-picker/format';\nimport { useSingleValue } from './useSingleValue';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport function useSingle(props: TdDatePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n const disabled = useDisabled();\n\n const inputRef = ref();\n const isReadOnly = useReadonly();\n\n const { value, onChange, time, month, year, cacheValue } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n // 未真正选中前可能不断变更输入框的内容\n const inputValue = ref(\n props.multiple\n ? formatDate(value.value, { format: formatRef.value.format }) || []\n : formatDate(value.value, { format: formatRef.value.format }),\n );\n\n // input 设置\n const inputProps = computed(() => {\n const defaultInputProps = {\n ...props.inputProps,\n size: props.size,\n ref: inputRef,\n readonly: isReadOnly.value || !props.allowInput,\n class: [\n {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n ],\n onClear: (context: { e: InputEvent }) => {\n context?.e?.stopPropagation();\n popupVisible.value = false;\n onChange?.('', { dayjsValue: dayjs(), trigger: 'clear' });\n },\n };\n return props.multiple\n ? defaultInputProps\n : {\n ...defaultInputProps,\n onBlur: (val: string, context: { e: FocusEvent }) => {\n props.onBlur?.({ value: val, e: context.e });\n },\n onFocus: (_: string, { e }: { e: FocusEvent }) => {\n props.onFocus?.({ value: value.value, e });\n },\n onChange: (val: string) => {\n // 输入事件\n inputValue.value = val;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(val, formatRef.value.format)) return;\n cacheValue.value = val;\n const newMonth = parseToDayjs(val, formatRef.value.format).month();\n const newYear = parseToDayjs(val, formatRef.value.format).year();\n const newTime = formatTime(val, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n !Number.isNaN(newYear) && (year.value = newYear);\n !Number.isNaN(newMonth) && (month.value = newMonth);\n !Number.isNaN(newTime) && (time.value = newTime);\n },\n onEnter: (val: string) => {\n if (!val) {\n onChange('', { dayjsValue: dayjs(), trigger: 'enter' });\n popupVisible.value = false;\n return;\n }\n\n if (!isValidDate(val, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(val, formatRef.value.format)) {\n onChange?.(\n formatDate(val, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(val, formatRef.value.format),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = '';\n }\n },\n };\n });\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n disabled: disabled.value,\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (disabled.value) return;\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n popupVisible.value = true;\n return;\n }\n popupVisible.value = visible;\n },\n }));\n\n watch(value, (value) => {\n if (!value) {\n inputValue.value = '';\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.format,\n });\n });\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n inputRef,\n cacheValue,\n isHoverCell,\n onChange,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { useSingleValue } from './hooks/useSingleValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport type {\n DateValue,\n TdDatePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport datePickerPanelProps from './date-picker-panel-props';\nimport datePickerProps from './props';\n\nimport TSinglePanel from './components/panel/SinglePanel';\n\nexport default defineComponent({\n name: 'TDatePickerPanel',\n props: {\n value: datePickerProps.value,\n defaultValue: datePickerProps.defaultValue,\n modelValue: datePickerProps.modelValue,\n disabled: datePickerProps.disabled,\n disableDate: datePickerProps.disableDate,\n enableTimePicker: datePickerProps.enableTimePicker,\n firstDayOfWeek: datePickerProps.firstDayOfWeek,\n format: datePickerProps.format,\n mode: datePickerProps.mode,\n presets: datePickerProps.presets,\n presetsPlacement: datePickerProps.presetsPlacement,\n timePickerProps: datePickerProps.timePickerProps,\n ...datePickerPanelProps,\n },\n\n setup(props: TdDatePickerPanelProps) {\n const { cacheValue, value, year, month, time, onChange } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({ date, e });\n\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, { format: formatRef.value.format });\n } else {\n onChange?.(formatDate(date, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: 'prev' | 'next' | 'current' }) {\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n if (year.value !== nextYear) {\n props.onYearChange?.({\n year: nextYear,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value !== nextMonth) {\n props.onMonthChange?.({\n month: nextMonth,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timepicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(cacheValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(cacheValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n cacheValue.value = formatDate(nextDate, { format: formatRef.value.format });\n\n props.onTimeChange?.({\n time: val,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n onChange?.(\n formatDate(cacheValue.value, {\n format: formatRef.value.format,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(cacheValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n props.onConfirm?.({ date: dayjs(cacheValue.value as string).toDate(), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n const presetVal = isFunction(preset) ? preset() : preset;\n onChange?.(formatDate(presetVal, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n });\n props.onPresetClick?.(context);\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n\n props.onYearChange?.({\n year: year.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n\n props.onMonthChange?.({\n month: month.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value as string,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 默认的日期选择交互是根据点击前后日期的顺序来决定并且会加以限制。比如:用户先点击开始时间输入框,选择了一个日期例如2020-05-15,紧接着交互会自动将焦点跳到结束日期输入框,等待用户选择结束时间。此时用户只能选择大于2020-05-15的日期(之前的日期会被灰态禁止点击,限制用户的点击)。当该值传递`true`时,则取消该限制 */\n cancelRangeSelectLimit: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。{ from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。{ before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDateRangePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: '',\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDateRangePickerProps['mode'],\n validator(val: TdDateRangePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 决定在日期时间区间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为 `true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 在开始日期选中之前,面板是否显示预选状态,即是否高亮预选日期 */\n panelPreselection: {\n type: Boolean,\n default: true,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:{ '特定日期范围': ['2021-01-01', '2022-01-01'], '本月': [dayjs().startOf('month'), dayjs().endOf('month')] } */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDateRangePickerProps['presetsPlacement'],\n validator(val: TdDateRangePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 日期分隔符,支持全局配置,默认为 '-' */\n separator: {\n type: String,\n default: '',\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDateRangePickerProps['size'],\n validator(val: TdDateRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDateRangePickerProps['status'],\n validator(val: TdDateRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultValue'] => [],\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式 */\n valueType: {\n type: String as PropType,\n validator(val: TdDateRangePickerProps['valueType']): boolean {\n if (!val) return true;\n return [\n 'time-stamp',\n 'Date',\n 'YYYY',\n 'YYYY-MM',\n 'YYYY-MM-DD',\n 'YYYY-MM-DD HH',\n 'YYYY-MM-DD HH:mm',\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DD HH:mm:ss:SSS',\n ].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框数据发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 选中日期时触发,可能是开始日期,也可能是结束日期,第二个参数可以区分是开始日期或是结束日期 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 输入框高亮状态序号 */\n activeIndex: {\n type: Number,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用范围输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式 */\n format: {\n type: [Array, Function] as PropType,\n },\n /** 透传 Input 输入框组件全部属性,数组第一项表示第一个输入框属性,第二项表示第二个输入框属性。示例:`[{ label: 'A', name: 'A-name' }, { label: 'B', name: 'B-name' }]` */\n inputProps: {\n type: [Object, Array] as PropType,\n },\n /** 左侧内容 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,示例:'请输入' 或者 ['开始日期', '结束日期'] */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 范围分隔符 */\n separator: {\n type: [String, Function] as PropType,\n default: '-' as TdRangeInputProps['separator'],\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRangeInputProps['size'],\n validator(val: TdRangeInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputProps['status'],\n validator(val: TdRangeInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 范围输入框的值 */\n value: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n /** 范围输入框的值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdRangeInputProps['defaultValue'] => [],\n },\n /** 范围输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 范围输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 范围输入框点击时触发 */\n onClick: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, computed, Fragment } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\n\nimport Input from '../input';\nimport props from './props';\nimport { RangeInputValue, RangeInputPosition } from './type';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isArray } from 'lodash-es';\n\nfunction calcArrayValue(value: unknown | Array) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nexport default defineComponent({\n name: 'TRangeInput',\n inheritAttrs: false,\n props,\n setup(props, { expose, attrs }) {\n const { value, modelValue } = toRefs(props);\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('range-input');\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const focused = ref(false);\n const isHover = ref(false);\n const format = computed(() => calcArrayValue(props.format));\n const inputProps = computed(() => calcArrayValue(props.inputProps));\n const placeholder = computed(() => calcArrayValue(props.placeholder));\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const inputValue = computed(() => String((innerValue.value?.[0] || innerValue.value?.[1]) ?? ''));\n\n const isShowClearIcon = computed(\n () =>\n ((props.clearable && inputValue.value?.length && !isDisabled.value) || props.showClearIconOnEmpty) &&\n isHover.value,\n );\n\n const inputRefs = {\n firstInputRef: ref(),\n secondInputRef: ref(),\n };\n\n function handleClear(context: { e: MouseEvent }) {\n props.onClear?.(context);\n setInnerValue(['', ''], { ...context, trigger: 'clear', position: 'all' });\n }\n\n function handleEnter(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n props.onEnter?.(rangeValue, context);\n }\n\n function handleFocus(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = true;\n props.onFocus?.(rangeValue, context);\n }\n\n function handleBlur(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = false;\n props.onBlur?.(rangeValue, context);\n }\n\n function handleMouseEnter(e: MouseEvent) {\n isHover.value = true;\n props?.onMouseenter?.({ e });\n }\n\n function handleMouseLeave(e: MouseEvent) {\n isHover.value = false;\n props?.onMouseleave?.({ e });\n }\n\n expose({\n firstInputElement: inputRefs.firstInputRef.value,\n secondInputElement: inputRefs.secondInputRef.value,\n focus: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.focus();\n },\n blur: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.blur();\n },\n select: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.select();\n },\n });\n\n return () => {\n const labelContent = renderTNodeJSX('label');\n const prefixIconContent = renderTNodeJSX('prefixIcon');\n const suffixContent = renderTNodeJSX('suffix');\n const suffixIconContent = renderTNodeJSX('suffixIcon');\n const tips = renderTNodeJSX('tips');\n const separator = renderTNodeJSX('separator');\n\n const RangeInputContent = (\n \n
    \n {prefixIconContent &&
    {prefixIconContent}
    }\n {labelContent ?
    {labelContent}
    : null}\n props.onClick?.({ e, position: 'first' })}\n onClear={() => setInnerValue([], { position: 'first', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([val, innerValue.value?.[1]], { e, position: 'first', trigger: 'input' })\n }\n {...inputProps.value[0]}\n />\n\n
    {separator}
    \n\n props.onClick?.({ e, position: 'second' })}\n onClear={() => setInnerValue([], { position: 'second', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([innerValue.value?.[0], val], { e, position: 'second', trigger: 'input' })\n }\n {...inputProps.value[1]}\n />\n {suffixContent ?
    {suffixContent}
    : null}\n {(suffixIconContent || isShowClearIcon.value) && (\n \n {isShowClearIcon.value ? (\n \n ) : (\n suffixIconContent\n )}\n \n )}\n
    \n \n );\n\n const tipsClasses = [\n `${COMPONENT_NAME.value}__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${props.status}`,\n ];\n return (\n \n {RangeInputContent}\n {tips &&
    {tips}
    }\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputPopupProps } from '../range-input/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否禁用范围输入框,值为数组表示可分别控制某一个输入框是否禁用 */\n disabled: Boolean,\n /** 输入框的值 */\n inputValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputPopupProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: Array as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 透传 RangeInput 组件全部属性 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputPopupProps['status'],\n validator(val: TdRangeInputPopupProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport Popup from '../popup';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport RangeInput from './range-input';\nimport props from './range-input-popup-props';\nimport { useOverlayInnerStyle } from '../select-input/hooks/useOverlayInnerStyle';\nimport { TdRangeInputPopupProps } from './type';\n\nexport default defineComponent({\n name: 'TRangeInputPopup',\n props,\n setup(props: TdRangeInputPopupProps) {\n const COMPONENT_NAME = usePrefixClass('range-input-popup');\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const popupClasses = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--visible`]: props.popupVisible || innerPopupVisible.value,\n },\n ]);\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import _RangeInput from './range-input';\nimport _RangeInputPopup from './range-input-popup';\nimport withInstall from '../utils/withInstall';\nimport { TdRangeInputProps, TdRangeInputPopupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type RangeInputProps = TdRangeInputProps;\nexport type RangeInputPopupProps = TdRangeInputPopupProps;\n\nexport const RangeInput = withInstall(_RangeInput);\nexport const RangeInputPopup = withInstall(_RangeInputPopup);\n\nexport default RangeInput;\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { TdDateRangePickerProps } from '../../type';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nexport default defineComponent({\n name: 'TRangePanel',\n props: {\n hoverValue: Array as PropType>,\n activeIndex: Number,\n isFirstValueSelected: Boolean,\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: Array as PropType>,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n popupVisible: Boolean,\n enableTimePicker: Boolean,\n panelPreselection: Boolean,\n firstDayOfWeek: Number,\n year: Array as PropType>,\n month: Array as PropType>,\n time: Array as PropType>,\n cancelRangeSelectLimit: Boolean,\n onClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n // 是否隐藏预选状态,只有 value 有值的时候需要隐藏\n const hidePreselection = !props.panelPreselection && props.value.length === 2;\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n start:\n props.isFirstValueSelected && props.activeIndex === 1\n ? new Date(parseToDayjs(props.value[0], format.value, 'start').toDate().setHours(0, 0, 0))\n : undefined,\n end:\n props.isFirstValueSelected && props.activeIndex === 0\n ? new Date(parseToDayjs(props.value[1], format.value).toDate().setHours(23, 59, 59))\n : undefined,\n }),\n );\n\n const startTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[0],\n month: props.month[0],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const endTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[1],\n month: props.month[1],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n\n popupVisible: props.popupVisible,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n return () => (\n props.onClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? (\n \n ) : null}\n
    \n {!props.enableTimePicker ? (\n [\n ,\n ,\n ]\n ) : (\n \n )}\n
    \n {['bottom', 'right'].includes(props.presetsPlacement) ? (\n \n ) : null}\n \n );\n },\n});\n","// 用于头部日期切换修正\nexport function dateCorrection(\n partialIndex: number,\n preYear: Array,\n preMonth: Array,\n onlyYearSelect: boolean,\n) {\n let nextYear = preYear;\n const nextMonth = preMonth;\n if (partialIndex === 0) {\n if (nextYear[1] <= nextYear[0]) {\n if (onlyYearSelect) nextYear[1] = nextYear[0] + 1;\n else {\n // eslint-disable-next-line prefer-destructuring\n nextYear[1] = nextYear[0];\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n nextYear = [nextYear[0], nextYear[1] + 1];\n }\n }\n }\n }\n }\n\n // 保证左侧时间不大于右侧\n if (partialIndex === 1) {\n if (nextYear[0] >= nextYear[1]) {\n // 年/季度/月份场景下,头部只有年选择器,直接 - 1\n if (onlyYearSelect) nextYear[0] = nextYear[1] - 1;\n else {\n // eslint-disable-next-line prefer-destructuring\n nextYear[0] = nextYear[1];\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] = nextMonth[1] - 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n nextYear = [nextYear[0] - 1, nextYear[1]];\n }\n }\n }\n }\n }\n return { nextYear, nextMonth };\n}\n","import { defineComponent, computed, ref, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport props from './date-range-picker-props';\nimport { DateValue, DateRangePickerPartial } from './type';\n\nimport { RangeInputPopup as TRangeInputPopup } from '../range-input';\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRange } from './hooks/useRange';\nimport {\n parseToDayjs,\n formatTime,\n formatDate,\n isValidDate,\n getDefaultFormat,\n initYearMonthTime,\n} from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TDateRangePicker',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n\n const {\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n value,\n year,\n month,\n time,\n cacheValue,\n activeIndex,\n isHoverCell,\n isFirstValueSelected,\n onChange,\n } = useRange(props);\n\n const disabled = useDisabled();\n const isReadOnly = useReadonly();\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n valueType: props.valueType,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n\n watch(popupVisible, (visible) => {\n // 面板展开重置数据\n if (visible) {\n isSelected.value = false;\n cacheValue.value = formatDate(value.value || [], {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n }) as string[];\n time.value = formatTime(\n value.value || [dayjs().format(formatRef.value.timeFormat), dayjs().format(formatRef.value.timeFormat)],\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n\n // 空数据重置为当前年月\n if (!value.value.length) {\n const { year: defaultYear, month: defaultMonth } = initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n });\n year.value = defaultYear;\n month.value = defaultMonth;\n } else if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if ((props.mode === 'month' || props.mode === 'quarter') && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n } else {\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).year());\n if (year.value.length === 1) year.value = [year.value[0], year.value[0]];\n\n month.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n if (month.value.length === 1) month.value = [month.value[0], Math.min(month.value[0] + 1, 11)];\n }\n } else {\n activeIndex.value = 0;\n isHoverCell.value = false;\n isFirstValueSelected.value = false;\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n inputValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n inputValue.value = cacheValue.value;\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent; partial: DateRangePickerPartial }) {\n props.onPick?.(date, { e, partial: activeIndex.value ? 'end' : 'start' });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 确保两端都是有效值\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else {\n popupVisible.value = false;\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger, partial }: { trigger: string; partial: DateRangePickerPartial }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n const nextInputValue = [...(inputValue.value as DateValue[])];\n const changedInputValue = nextInputValue[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n inputValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n props?.onConfirm?.({\n date: nextValue.map((v) => dayjs(v).toDate()),\n e,\n partial: activeIndex.value ? 'end' : 'start',\n });\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else if (nextValue.length === 2) {\n popupVisible.value = false;\n }\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n popupVisible.value = false;\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n let nextMonth = [...month.value];\n\n nextYear[partialIndex] = nextVal;\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? inputValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n isFirstValueSelected: isFirstValueSelected.value,\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n panelPreselection: props.panelPreselection,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => (\n
    \n }\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerPanelProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, onMounted } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport dateRangePickerPanelProps from './date-range-picker-panel-props';\nimport dateRangePickerProps from './date-range-picker-props';\nimport {\n DateValue,\n DateRangePickerPartial,\n TdDateRangePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRangeValue } from './hooks/useRangeValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePickerPanel',\n props: {\n value: dateRangePickerProps.value,\n defaultValue: dateRangePickerProps.defaultValue,\n modelValue: dateRangePickerProps.modelValue,\n disabled: dateRangePickerProps.disabled,\n disableDate: dateRangePickerProps.disableDate,\n enableTimePicker: dateRangePickerProps.enableTimePicker,\n firstDayOfWeek: dateRangePickerProps.firstDayOfWeek,\n format: dateRangePickerProps.format,\n mode: dateRangePickerProps.mode,\n presets: dateRangePickerProps.presets,\n presetsPlacement: dateRangePickerProps.presetsPlacement,\n timePickerProps: dateRangePickerProps.timePickerProps,\n panelPreselection: dateRangePickerProps.panelPreselection,\n ...dateRangePickerPanelProps,\n },\n\n setup(props: TdDateRangePickerPanelProps) {\n const { value, year, month, time, cacheValue, isFirstValueSelected, onChange } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n const isHoverCell = ref(false);\n const hoverValue = ref([]);\n const activeIndex = computed(() => (isFirstValueSelected.value ? 1 : 0));\n\n onMounted(() => {\n if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if (['month', 'quarter'].includes(props.mode) && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(hoverValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n hoverValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n hoverValue.value = cacheValue.value as string[];\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({\n e,\n partial: activeIndex.value ? 'end' : 'start',\n date: value.value.map((v) => dayjs(v).toDate()),\n });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(cacheValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n }\n\n // 头部快速切换\n function onJumperClick({\n trigger,\n partial,\n }: {\n trigger: 'prev' | 'next' | 'current';\n partial: DateRangePickerPartial;\n }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n if (year.value.some((y) => !nextYear.includes(y))) {\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value.some((m) => !nextMonth.includes(m))) {\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n const nextInputValue = [...(cacheValue.value as DateValue[])];\n // @ts-ignore\n const changedInputValue = cacheValue.value[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n\n props.onTimeChange?.({\n time: val,\n date: value.value.map((v) => parseToDayjs(v, formatRef.value.format).toDate()),\n partial: activeIndex.value ? 'end' : 'start',\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(cacheValue.value as string[])];\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n year.value = nextValue.map((v) => dayjs(v, formatRef.value.format).year());\n month.value = nextValue.map((v) => dayjs(v, formatRef.value.format).month());\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n\n props.onConfirm?.({ date: value.value.map((v) => dayjs(v).toDate()), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = nextVal;\n let nextMonth = [...month.value];\n // 年/季度/月份场景下,头部只有年选择器\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? hoverValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n panelPreselection: props.panelPreselection,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","import _DatePicker from './DatePicker';\nimport _DatePickerPanel from './DatePickerPanel';\nimport _DateRangePicker from './DateRangePicker';\nimport _DateRangePickerPanel from './DateRangePickerPanel';\nimport withInstall from '../utils/withInstall';\nimport { TdDatePickerProps, TdDateRangePickerProps, TdDatePickerPanelProps, TdDateRangePickerPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DatePickerProps = TdDatePickerProps;\n\nexport interface DatePickerPanelProps extends TdDatePickerPanelProps, Pick {}\n\nexport type DateRangePickerProps = TdDateRangePickerProps;\nexport interface DateRangePickerPanelProps\n extends TdDateRangePickerPanelProps,\n Pick {}\n\nexport const DatePicker = withInstall(_DatePicker);\nexport const DatePickerPanel = withInstall(_DatePickerPanel);\nexport const DateRangePicker = withInstall(_DateRangePicker);\nexport const DateRangePickerPanel = withInstall(_DateRangePickerPanel);\n\nexport default DatePicker;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.max(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n if (options.strictMode && input.length !== options.format.length) return false;\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (!dateWord || !formatWord || dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isBoolean } from 'lodash-es';\nimport { isObject } from 'lodash-es';\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\nimport { isEmpty } from 'lodash-es';\nimport isURL from 'validator/lib/isURL';\nimport { isNumber } from 'lodash-es';\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\nimport {\n CustomValidator,\n FormRule,\n ValueType,\n AllValidateResult,\n ValidateResultType,\n CustomValidateResolveType,\n} from '../type';\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空; 0 和 false 被认为是正常数据,部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n const type: string = Object.prototype.toString.call(val);\n const typeMap: Record = {\n Date: '[object Date]',\n };\n if (type === typeMap.Date) {\n return false;\n }\n return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n date: isDate,\n url: isURL,\n email: isEmail,\n required: (val: ValueType): boolean => !isValueEmpty(val),\n whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n boolean: (val: ValueType): boolean => isBoolean(val),\n max: (val: ValueType, num: number): boolean => (isNumber(val) ? val <= num : getCharacterLength(val) <= num),\n min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= num),\n len: (val: ValueType, num: number): boolean => getCharacterLength(String(val)) === num,\n number: (val: ValueType): boolean => isNumber(val),\n enum: (val: ValueType, strs: Array): boolean => strs.includes(val),\n idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n pattern: (val: ValueType, regexp: RegExp): boolean => regexp.test(val),\n // 自定义校验规则,可能是异步校验\n validator: (val: ValueType, validate: CustomValidator): ReturnType => validate(val),\n};\n\nexport type ValidateFuncType = typeof VALIDATE_MAP[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise {\n let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n const keys = Object.keys(rule) as (keyof FormRule)[];\n let vOptions: undefined | FormRule[keyof FormRule];\n let vValidateFun: ValidateFuncType;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // 非必填选项,值为空,非自定义规则:无需校验,直接返回 true\n if (!rule.required && isValueEmpty(value) && !rule.validator) {\n return validateResult;\n }\n\n const validateRule: ValidateFuncType = VALIDATE_MAP[key as keyof typeof VALIDATE_MAP];\n // 找到一个校验规则,则无需再找,因为参数只允许对一个规则进行校验\n if (validateRule && (rule[key] || rule[key] === 0)) {\n // rule 值为 true 则表示没有校验参数,只是对值进行默认规则校验\n vOptions = rule[key] === true ? undefined : rule[key];\n vValidateFun = validateRule;\n break;\n }\n }\n if (vValidateFun) {\n // @ts-ignore\n validateResult = await vValidateFun(value, vOptions);\n // 如果校验不通过,则返回校验不通过的规则\n if (isBoolean(validateResult)) {\n return { ...rule, result: validateResult };\n }\n // 校验结果为 CustomValidateObj,只有自定义校验规则会存在这种情况\n if (isObject(validateResult)) {\n return validateResult;\n }\n }\n return validateResult;\n}\n\n// 单个数据进行全规则校验,校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array): Promise {\n const all = rules.map((rule) => validateOneRule(value, rule));\n const r = await Promise.all(all);\n return r;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation\n max_allowed_length will be ignored if this is set as false\nmax_allowed_length - if set isURL will not allow URLs longer than max_allowed_length\n default is 2084 that IE maximum URL length\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true,\n max_allowed_length: 2084\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length > options.max_allowed_length) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return (0, _checkHost.default)(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormItemProps } from '../form/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** label 原生属性 */\n for: {\n type: String,\n default: '',\n },\n /** 表单项说明内容 */\n help: {\n type: [String, Function] as PropType,\n },\n /** 字段标签名称 */\n label: {\n type: [String, Function] as PropType,\n default: '' as TdFormItemProps['label'],\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐。默认使用 Form 的对齐方式,优先级高于 Form.labelAlign */\n labelAlign: {\n type: String as PropType,\n validator(val: TdFormItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置标签宽度,优先级高于 Form.labelWidth */\n labelWidth: {\n type: [String, Number] as PropType,\n },\n /** 表单字段名称 */\n name: {\n type: String,\n default: '',\n },\n /** 是否显示必填符号(*),优先级高于 Form.requiredMark */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单字段校验规则 */\n rules: {\n type: Array as PropType,\n },\n /** 校验不通过时,是否显示错误提示信息,优先级高于 `Form.showErrorMessage` */\n showErrorMessage: {\n type: Boolean,\n default: undefined,\n },\n /** 校验状态,可在需要完全自主控制校验状态时使用 */\n status: {\n type: String as PropType,\n default: '' as TdFormItemProps['status'],\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标。优先级高级 Form 的 statusIcon */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormItemProps['statusIcon'],\n },\n /** 是否显示校验成功的边框,默认不显示 */\n successBorder: Boolean,\n /** 自定义提示内容,样式跟随 `status` 变动,可在需要完全自主控制校验规则时使用 */\n tips: {\n type: [String, Function] as PropType,\n },\n};\n","import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n VNode,\n watch,\n} from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n GlobalIconType,\n} from 'tdesign-icons-vue-next';\nimport { isArray } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get as lodashGet } from 'lodash-es';\nimport { set as lodashSet } from 'lodash-es';\nimport { isNil } from 'lodash-es';\n\nimport { validate } from './utils/form-model';\nimport {\n AllValidateResult,\n Data,\n FormErrorMessage,\n FormItemValidateMessage,\n FormRule,\n ValidateTriggerType,\n ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n AnalysisValidateResult,\n ErrorListType,\n FormInjectionKey,\n FormItemContext,\n FormItemInjectionKey,\n SuccessListType,\n useCLASSNAMES,\n ValidateStatus,\n} from './consts';\n\nimport { useConfig, usePrefixClass, useTNodeJSX } from '../hooks';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]\\.)/g, '_');\n}\n\nexport default defineComponent({\n name: 'TFormItem',\n props,\n setup(props, { slots }) {\n const renderContent = useTNodeJSX();\n const CLASS_NAMES = useCLASSNAMES();\n const { globalConfig } = useConfig('form');\n const { CheckCircleFilledIcon, CloseCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const form = inject(FormInjectionKey, undefined);\n\n const classPrefix = usePrefixClass();\n const formItemClassPrefix = usePrefixClass('form-item');\n\n const needRequiredMark = computed(() => {\n const requiredMark = props.requiredMark ?? form?.requiredMark ?? globalConfig.value.requiredMark;\n const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n return requiredMark ?? isRequired;\n });\n\n const requiredMarkPosition = computed(() => {\n return form?.requiredMarkPosition ?? 'left';\n });\n\n const hasLabel = computed(() => slots.label || props.label);\n const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n const FROM_LABEL = usePrefixClass('form__label');\n const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n\n const labelClasses = computed(() => [\n CLASS_NAMES.value.label,\n {\n [`${FROM_LABEL.value}--required`]: needRequiredMark.value,\n [`${FROM_LABEL.value}--required-right`]: needRequiredMark.value && requiredMarkPosition.value === 'right',\n [`${FROM_LABEL.value}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n [`${FROM_LABEL.value}--left`]: labelAlign.value === 'left' && labelWidth.value,\n [`${FROM_LABEL.value}--right`]: labelAlign.value === 'right' && labelWidth.value,\n },\n ]);\n\n const statusClass = computed(\n () =>\n `${classPrefix.value}-is-${props.status || 'default'} ${\n props.status === 'success' ? CLASS_NAMES.value.successBorder : ''\n }`,\n );\n\n const renderLabel = () => {\n if (Number(labelWidth.value) === 0) return;\n\n let labelStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n labelStyle = { width: `${labelWidth.value}px` };\n } else {\n labelStyle = { width: labelWidth.value };\n }\n }\n\n return (\n
    \n \n {hasColon.value && globalConfig.value.colonText}\n
    \n );\n };\n\n /** Suffix Icon */\n const getDefaultIcon = (): VNode => {\n const resultIcon = (Icon: GlobalIconType) => (\n \n \n \n );\n const list = errorList.value;\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return resultIcon(CheckCircleFilledIcon);\n }\n if (list?.[0]) {\n const type = list[0].type || 'error';\n const icon =\n {\n error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n }[type] || CheckCircleFilledIcon;\n return resultIcon(icon);\n }\n return null;\n };\n const renderSuffixIcon = () => {\n const { statusIcon } = props;\n if (statusIcon === false) return;\n\n let resultIcon = renderContent('statusIcon', { defaultNode: getDefaultIcon() });\n if (resultIcon) return {resultIcon};\n if (resultIcon === false) return;\n\n resultIcon = form?.renderContent('statusIcon', { defaultNode: getDefaultIcon(), params: props });\n if (resultIcon) return resultIcon;\n };\n /** Suffix Icon END */\n\n /** Content Style */\n const errorClasses = computed(() => {\n if (!showErrorMessage.value) return '';\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return props.successBorder\n ? [CLASS_NAMES.value.success, CLASS_NAMES.value.successBorder].join(' ')\n : CLASS_NAMES.value.success;\n }\n if (!errorList.value.length) return;\n const type = errorList.value[0].type || 'error';\n if (props.status) return statusClass.value;\n return type === 'error' ? CLASS_NAMES.value.error : CLASS_NAMES.value.warning;\n });\n const contentClasses = computed(() => [CLASS_NAMES.value.controls, errorClasses.value]);\n const contentStyle = computed(() => {\n let contentStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n contentStyle = { marginLeft: `${labelWidth.value}px` };\n } else {\n contentStyle = { marginLeft: labelWidth.value };\n }\n }\n\n return contentStyle;\n });\n /** Content Style END */\n\n const errorList = ref([]);\n const successList = ref([]);\n const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n const resetValidating = ref(false);\n const needResetField = ref(false);\n\n const resetHandler = () => {\n needResetField.value = false;\n errorList.value = [];\n successList.value = [];\n verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n };\n const getEmptyValue = (): ValueType => {\n const type = Object.prototype.toString.call(lodashGet(form?.data, props.name));\n let emptyValue: ValueType;\n if (type === '[object String]') {\n emptyValue = '';\n }\n if (type === '[object Array]') {\n emptyValue = [];\n }\n if (type === '[object Object]') {\n emptyValue = {};\n }\n return emptyValue;\n };\n const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType) => {\n if (!props.name) return;\n\n if (resetType === 'empty') lodashSet(form?.data, props.name, getEmptyValue());\n else if (resetType === 'initial') lodashSet(form?.data, props.name, initialValue.value);\n\n await nextTick();\n if (resetValidating.value) {\n needResetField.value = true;\n } else {\n resetHandler();\n }\n };\n\n const errorMessages = computed(() => form?.errorMessage ?? globalConfig.value.errorMessage);\n const innerRules = computed(() => {\n if (props.rules?.length) return props.rules;\n if (!props.name) return [];\n const index = `${props.name}`.lastIndexOf('.') || -1;\n const pRuleName = `${props.name}`.slice(index + 1);\n return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n });\n\n const analysisValidateResult = async (trigger: ValidateTriggerType): Promise => {\n const result: AnalysisValidateResult = {\n successList: [],\n errorList: [],\n rules: [],\n resultList: [],\n allowSetValue: false,\n };\n result.rules =\n trigger === 'all'\n ? innerRules.value\n : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n if (innerRules.value.length && !result.rules?.length) {\n return result;\n }\n result.allowSetValue = true;\n result.resultList = await validate(value.value, result.rules);\n result.errorList = result.resultList\n .filter((item) => item.result !== true)\n .map((item: ErrorListType) => {\n Object.keys(item).forEach((key) => {\n // @ts-ignore\n if (!item.message && errorMessages.value[key]) {\n const name = isString(props.label) ? props.label : props.name;\n // @ts-ignore\n item.message = template(errorMessages.value[key], {\n name,\n // @ts-ignore\n validate: item[key],\n });\n }\n });\n return item;\n });\n // 仅有自定义校验方法才会存在 successList\n result.successList = result.resultList.filter(\n (item) => item.result === true && item.message && item.type === 'success',\n ) as SuccessListType[];\n\n return result;\n };\n const validateHandler = async (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ): Promise> => {\n resetValidating.value = true;\n // undefined | boolean\n freeShowErrorMessage.value = showErrorMessage;\n const {\n successList: innerSuccessList,\n errorList: innerErrorList,\n rules,\n resultList,\n allowSetValue,\n } = await analysisValidateResult(trigger);\n\n if (allowSetValue) {\n successList.value = innerSuccessList;\n errorList.value = innerErrorList;\n }\n // 根据校验结果设置校验状态\n if (rules.length) {\n verifyStatus.value = innerErrorList.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n }\n // 重置处理\n if (needResetField.value) {\n resetHandler();\n }\n resetValidating.value = false;\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n const validateOnly = async (trigger: ValidateTriggerType): Promise> => {\n const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n\n const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n if (!validateMessage && !isArray(validateMessage)) return;\n if (validateMessage.length === 0) {\n errorList.value = [];\n verifyStatus.value = ValidateStatus.SUCCESS;\n }\n errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n verifyStatus.value = ValidateStatus.FAIL;\n };\n\n const value = computed(() => form?.data && lodashGet(form?.data, props.name));\n const initialValue = ref(undefined);\n const { name } = toRefs(props);\n const context: FormItemContext = reactive({\n name,\n resetHandler,\n resetField,\n validate: validateHandler,\n validateOnly,\n setValidateMessage,\n });\n\n onMounted(() => {\n initialValue.value = cloneDeep(value.value);\n form?.children.push(context);\n });\n\n onBeforeUnmount(() => {\n if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n });\n\n watch(\n value,\n async () => {\n await validateHandler('change');\n },\n { deep: true },\n );\n\n watch(\n () => [props.name, JSON.stringify(props.rules)].join(','),\n () => {\n validateHandler('change');\n },\n );\n\n const freeShowErrorMessage = ref(undefined);\n const showErrorMessage = computed(() => {\n if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n return form?.showErrorMessage;\n });\n\n const classes = computed(() => [\n CLASS_NAMES.value.formItem,\n getFormItemClassName(formItemClassPrefix.value, props.name),\n {\n [CLASS_NAMES.value.formItemWithHelp]: helpNode.value,\n [CLASS_NAMES.value.formItemWithExtra]: extraNode.value,\n },\n ]);\n const helpNode = computed(() => {\n const help = renderContent('help');\n if (help) return
    {help}
    ;\n return null;\n });\n const extraNode = computed(() => {\n const getExtraNode = (content: string) => (\n
    \n {content}\n
    \n );\n const list = errorList.value;\n if (showErrorMessage.value && list?.[0]?.message) {\n return getExtraNode(list[0].message);\n }\n if (successList.value.length) {\n return getExtraNode(successList.value[0].message);\n }\n return null;\n });\n\n const tipsNode = computed(() => {\n const tmpTips = renderContent('tips');\n if (!tmpTips) return null;\n const tmpClasses = [`${formItemClassPrefix.value}-tips`, `${classPrefix.value}-tips`, statusClass.value];\n return
    {tmpTips}
    ;\n });\n\n const handleBlur = async () => {\n await validateHandler('blur');\n };\n provide(FormItemInjectionKey, {\n handleBlur,\n });\n\n return () => (\n
    \n {renderLabel()}\n
    \n
    \n {renderContent('default')}\n {renderSuffixIcon()}\n
    \n {helpNode.value}\n {tipsNode.value}\n {extraNode.value}\n
    \n
    \n );\n },\n});\n","/**\n * 用正则实现模板字符串功能\n * @param str 模板字符串\n * @param vars 取值的对象\n * @returns 替换后的字符串\n */\nexport function template>(str: string, vars: T): string {\n return str.replace(/\\${(.*?)}/g, (_, prop: string) => vars[prop.trim()] || '');\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否在表单标签字段右侧显示冒号 */\n colon: Boolean,\n /** 表单数据 */\n data: {\n type: Object as PropType,\n default: () => ({}),\n },\n /** 是否禁用整个表单 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 表单错误信息配置,示例:`{ idcard: '请输入正确的身份证号码', max: '字符长度不能超过 ${max}' }` */\n errorMessage: {\n type: Object as PropType,\n },\n /** 允许表单统一控制禁用状态的自定义组件名称列表。默认会有组件库的全部输入类组件:TInput、TInputNumber、TCascader、TSelect、TOption、TSwitch、TCheckbox、TCheckboxGroup、TRadio、TRadioGroup、TTreeSelect、TDatePicker、TTimePicker、TUpload、TTransfer、TSlider。对于自定义组件,组件内部需要包含可以控制表单禁用状态的变量 `formDisabled`。示例:`['CustomUpload', 'CustomInput']` */\n formControlledComponents: {\n type: Array as PropType,\n },\n /** 表单原生的id属性,支持用于配合非表单内的按钮通过form属性来触发表单事件 */\n id: {\n type: String,\n default: undefined,\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐 */\n labelAlign: {\n type: String as PropType,\n default: 'right' as TdFormProps['labelAlign'],\n validator(val: TdFormProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置label标签宽度,默认为100px */\n labelWidth: {\n type: [String, Number] as PropType,\n default: '100px' as TdFormProps['labelWidth'],\n },\n /** 表单布局,有两种方式:纵向布局 和 行内布局 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdFormProps['layout'],\n validator(val: TdFormProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'inline'].includes(val);\n },\n },\n /** 是否阻止表单提交默认事件(表单提交默认事件会刷新页面),设置为 `true` 可以避免刷新 */\n preventSubmitDefault: {\n type: Boolean,\n default: true,\n },\n /** 是否整个表单只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示必填符号(*),默认显示 */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单必填符号(*)显示位置 */\n requiredMarkPosition: {\n type: String as PropType,\n default: 'left' as TdFormProps['requiredMarkPosition'],\n validator(val: TdFormProps['requiredMarkPosition']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 重置表单的方式,值为 empty 表示重置表单为空,值为 initial 表示重置表单数据为初始值 */\n resetType: {\n type: String as PropType,\n default: 'empty' as TdFormProps['resetType'],\n validator(val: TdFormProps['resetType']): boolean {\n if (!val) return true;\n return ['empty', 'initial'].includes(val);\n },\n },\n /** 表单字段校验规则 */\n rules: {\n type: Object as PropType,\n },\n /** 表单校验不通过时,是否自动滚动到第一个校验不通过的字段,平滑滚动或是瞬间直达。值为空则表示不滚动 */\n scrollToFirstError: {\n type: String as PropType,\n validator(val: TdFormProps['scrollToFirstError']): boolean {\n if (!val) return true;\n return ['', 'smooth', 'auto'].includes(val);\n },\n },\n /** 校验不通过时,是否显示错误提示信息,统一控制全部表单项。如果希望控制单个表单项,请给 FormItem 设置该属性 */\n showErrorMessage: {\n type: Boolean,\n default: true,\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标 */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormProps['statusIcon'],\n },\n /** 【讨论中】当校验结果只有告警信息时,是否触发 `submit` 提交事件 */\n submitWithWarningMessage: Boolean,\n /** 表单重置时触发 */\n onReset: Function as PropType,\n /** 表单提交时触发。其中 `context.validateResult` 表示校验结果,`context.firstError` 表示校验不通过的第一个规则提醒。`context.validateResult` 值为 `true` 表示校验通过;如果校验不通过,`context.validateResult` 值为校验结果列表。
    【注意】⚠️ 默认情况,输入框按下 Enter 键会自动触发提交事件,如果希望禁用这个默认行为,可以给输入框添加 enter 事件,并在事件中设置 `e.preventDefault()` */\n onSubmit: Function as PropType,\n /** 校验结束后触发,result 值为 true 表示校验通过;如果校验不通过,result 值为校验结果列表 */\n onValidate: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { requestSubmit } from '../utils/dom';\nimport { FormItemValidateResult, getFormItemClassName } from './form-item';\nimport {\n Data,\n FormResetParams,\n FormValidateMessage,\n FormValidateParams,\n FormValidateResult,\n TdFormProps,\n ValidateResultList,\n} from './type';\nimport props from './props';\nimport { FormInjectionKey, FormItemContext, useCLASSNAMES } from './consts';\nimport { FormResetEvent, FormSubmitEvent } from '../common';\n\nimport { FormDisabledProvider, FormReadonlyProvider } from './hooks';\nimport { usePrefixClass, useTNodeJSX } from '../hooks';\n\ntype Result = FormValidateResult;\n\nexport default defineComponent({\n name: 'TForm',\n props,\n setup(props, { expose }) {\n const renderContent = useTNodeJSX();\n const { disabled, readonly } = toRefs(props);\n provide('formDisabled', {\n disabled,\n });\n provide('formReadonly', {\n readonly,\n });\n\n const formRef = ref(null);\n const children = ref([]);\n\n const {\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n } = toRefs(props);\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n children,\n renderContent,\n }),\n );\n\n const COMPONENT_NAME = usePrefixClass('form');\n const CLASS_NAMES = useCLASSNAMES();\n const formClass = computed(() => [\n CLASS_NAMES.value.form,\n { [`${COMPONENT_NAME.value}-inline`]: props.layout === 'inline' },\n ]);\n\n const FORM_ITEM_CLASS_PREFIX = usePrefixClass('form-item');\n\n const getFirstError = (result: Result) => {\n if (isBoolean(result)) return '';\n const [firstKey] = Object.keys(result);\n if (props.scrollToFirstError) {\n const tmpClassName = getFormItemClassName(FORM_ITEM_CLASS_PREFIX.value, firstKey);\n scrollTo(tmpClassName);\n }\n const resArr = result[firstKey] as ValidateResultList;\n if (!isArray(resArr)) return '';\n return resArr.filter((item) => !item.result)[0].message;\n };\n // 校验不通过时,滚动到第一个错误表单\n const scrollTo = (selector: string) => {\n const [dom] = formRef.value.getElementsByClassName(selector);\n const behavior = props.scrollToFirstError;\n if (behavior) {\n dom && dom.scrollIntoView({ behavior });\n }\n };\n\n const needValidate = (name: string | number, fields: string[] | undefined) => {\n if (!fields || !isArray(fields)) return true;\n return fields.indexOf(`${name}`) !== -1;\n };\n const formatValidateResult = (validateResultList: FormItemValidateResult[]) => {\n const result: Record = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n Object.keys(result).forEach((key) => {\n if (result[key] === true) {\n delete result[key];\n }\n });\n return isEmpty(result) ? true : result;\n };\n const validate = async (param?: FormValidateParams): Promise => {\n const { fields, trigger = 'all', showErrorMessage } = param || {};\n const list = children.value\n .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n .map((child) => child.validate(trigger, showErrorMessage));\n const arr = await Promise.all(list);\n const result = formatValidateResult(arr);\n const firstError = getFirstError(result);\n props.onValidate?.({\n validateResult: result,\n firstError,\n });\n return result;\n };\n const validateOnly = async (params?: Omit) => {\n const { fields, trigger = 'all' } = params || {};\n const list = children.value\n .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n .map((child) => child.validateOnly(trigger));\n const arr = await Promise.all(list);\n return formatValidateResult(arr);\n };\n const submitParams = ref>();\n const onSubmit = (e?: FormSubmitEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n validate(submitParams.value).then((r) => {\n props.onSubmit?.({ validateResult: r, firstError: getFirstError(r), e });\n });\n submitParams.value = undefined;\n };\n const submit = async (params?: Pick) => {\n submitParams.value = params;\n requestSubmit(formRef.value);\n };\n\n const resetParams = ref>();\n const onReset = (e?: FormResetEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n children.value\n .filter(\n (child) =>\n isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n )\n .forEach((child) => child.resetField(resetParams.value?.type));\n resetParams.value = undefined;\n props.onReset?.({ e });\n };\n const reset = (params?: FormResetParams) => {\n (resetParams.value as any) = params;\n formRef.value.reset();\n };\n\n const clearValidate = (fields?: Array) => {\n children.value.forEach((child) => {\n if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n child.resetHandler();\n }\n });\n };\n const setValidateMessage = (validateMessage: FormValidateMessage) => {\n const keys = Object.keys(validateMessage);\n if (!keys.length) return;\n const list = children.value\n .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n .map((child) => child.setValidateMessage(validateMessage[child.name as keyof FormData]));\n Promise.all(list);\n };\n\n expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n return () => (\n
    onSubmit(e)} onReset={(e) => onReset(e)}>\n {renderContent('default')}\n
    \n );\n },\n});\n","import _Form from './form';\nimport _FormItem from './form-item';\nimport withInstall from '../utils/withInstall';\nimport { TdFormProps, TdFormItemProps, Data } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type FormProps = TdFormProps;\nexport type FormItemProps = TdFormItemProps;\n\nexport const Form = withInstall(_Form);\nexport const FormItem = withInstall(_FormItem);\nexport default Form;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 单选按钮内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为禁用态。如果存在父组件 RadioGroup,默认值由 RadioGroup.disabled 控制。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 单选按钮的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioProps['value'],\n },\n /** 选中状态变化时触发 */\n onChange: Function as PropType,\n /** 点击时触发,一般用于外层阻止冒泡场景 */\n onClick: Function as PropType,\n};\n","import { InjectionKey } from 'vue';\nimport { RadioValue } from '../type';\n\nexport const RadioGroupInjectionKey: InjectionKey<{\n name: string;\n disabled: boolean;\n readonly: boolean;\n value: RadioValue;\n allowUncheck: boolean;\n setValue: (value: RadioValue, context: { e: Event; name?: string }) => void;\n}> = Symbol('RadioGroupProvide');\n\nexport const RadioButtonInjectionKey: InjectionKey<{}> = Symbol('RadioButtonProvide');\n","import { defineComponent, inject, toRefs, computed, ref } from 'vue';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { omit } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useVModel from '../hooks/useVModel';\nimport { useContent } from '../hooks/tnode';\nimport { isString } from 'lodash-es';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TRadio',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const inputRef = ref();\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const radioChecked = computed(() => (radioGroup ? props.value === radioGroup.value : innerChecked.value));\n\n const radioGroup = inject(RadioGroupInjectionKey, undefined);\n\n const allowUncheck = computed(() => Boolean(props.allowUncheck || radioGroup?.allowUncheck));\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n const onLabelClick = (e: MouseEvent) => {\n if (isDisabled.value || isReadonly.value) return;\n props.onClick?.({ e });\n\n if (radioChecked.value && !allowUncheck.value) return;\n\n if (radioGroup) {\n const value = radioChecked.value && allowUncheck.value ? undefined : props.value;\n radioGroup.setValue(value, { e, name: radioGroup.name });\n } else {\n const value = allowUncheck.value ? !radioChecked.value : true;\n setInnerChecked(value, { e });\n }\n };\n\n const inputEvents = computed(() =>\n getValidAttrs({\n focus: attrs.onFocus,\n blur: attrs.onBlur,\n keydown: attrs.onKeydown,\n keyup: attrs.onKeyup,\n keypresss: attrs.onKeypresss,\n }),\n );\n const wrapperAttrs = computed(() => {\n const events = [...Object.keys(inputEvents.value), 'input', 'change'].map(\n (str) => `on${str[0].toUpperCase()}${str.slice(1)}`,\n );\n return omit(attrs, events);\n });\n /** Event END */\n\n // extend radioGroup disabled props\n const groupDisabled = computed(() => radioGroup?.disabled);\n const groupReadonly = computed(() => radioGroup?.readonly);\n const isDisabled = useDisabled({ afterDisabled: groupDisabled });\n const isReadonly = useReadonly({ afterReadonly: groupReadonly });\n\n // attribute\n const inputProps = computed(() => ({\n name: radioGroup ? radioGroup.name : props.name,\n checked: radioChecked.value,\n disabled: isDisabled.value,\n readonly: isReadonly.value,\n value: props.value,\n }));\n\n /** Style */\n const { STATUS } = useCommonClassName();\n const radioButton = inject(RadioButtonInjectionKey, undefined);\n const radioBtnName = usePrefixClass('radio-button');\n const COMPONENT_NAME = usePrefixClass('radio');\n const prefixCls = computed(() => (radioButton ? radioBtnName.value : COMPONENT_NAME.value));\n const inputClass = computed(() => [\n `${prefixCls.value}`,\n {\n [STATUS.value.checked]: inputProps.value.checked,\n [STATUS.value.disabled]: inputProps.value.disabled,\n },\n ]);\n /** Style END */\n\n const renderContent = useContent();\n\n return () => (\n \n \n \n {renderContent('default', 'label')}\n \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioGroupProps } from '../radio/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否禁用全部子单选框。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸【讨论中】 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRadioGroupProps['size'],\n validator(val: TdRadioGroupProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'radio' as TdRadioGroupProps['theme'],\n validator(val: TdRadioGroupProps['theme']): boolean {\n if (!val) return true;\n return ['radio', 'button'].includes(val);\n },\n },\n /** 选中的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n /** 选中的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 单选组件按钮形式 */\n variant: {\n type: String as PropType,\n default: 'outline' as TdRadioGroupProps['variant'],\n validator(val: TdRadioGroupProps['variant']): boolean {\n if (!val) return true;\n return ['outline', 'primary-filled', 'default-filled'].includes(val);\n },\n },\n /** 选中值发生变化时触发, `context.name` 指 RadioGroup 的 name 属性 */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive } from 'vue';\nimport props from './props';\nimport Radio from './radio';\nimport { omit } from 'lodash-es';\nimport { RadioButtonInjectionKey } from './consts';\n\nimport { useContent } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TRadioButton',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n provide(RadioButtonInjectionKey, reactive({}));\n\n const radioProps = computed(() => {\n const res = {\n ...props,\n ...omit(\n attrs,\n Object.keys(attrs).filter((key) => key.startsWith('on')),\n ),\n };\n\n return res;\n });\n\n const renderContent = useContent();\n\n return () => {renderContent('default', 'label')};\n },\n});\n","import type { ComponentPublicInstance, Ref } from 'vue';\nimport { unref, watch, getCurrentScope, onScopeDispose } from 'vue';\n\nexport const defaultWindow = typeof window !== 'undefined' ? window : undefined;\nexport interface ConfigurableWindow {\n window?: Window;\n}\n// eslint-disable-next-line no-undef\nexport interface MutationObserverOptions extends MutationObserverInit, ConfigurableWindow {}\nexport type MaybeRef = T | Ref;\nexport type VueInstance = ComponentPublicInstance;\nexport type MaybeElementRef = MaybeRef;\nexport type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;\nexport type UnRefElementReturn = T extends VueInstance\n ? Exclude\n : T | undefined;\n\nexport type Fn = () => void;\n\nexport function unrefElement(elRef: MaybeElementRef): UnRefElementReturn {\n const plain = unref(elRef);\n return (plain as VueInstance)?.$el ?? plain;\n}\nexport function tryOnScopeDispose(fn: Fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nexport function useMutationObserver(\n target: MaybeElementRef,\n // eslint-disable-next-line no-undef\n callback: MutationCallback,\n options: MutationObserverOptions = {},\n) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer: MutationObserver | undefined;\n const isSupported = window && 'MutationObserver' in window;\n\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = undefined;\n }\n };\n\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n\n if (isSupported && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true },\n );\n\n const stop = () => {\n cleanup();\n stopWatch();\n };\n\n tryOnScopeDispose(stop);\n\n return {\n isSupported,\n stop,\n };\n}\n\nexport type UseMutationObserverReturn = ReturnType;\n","import {\n VNode,\n defineComponent,\n h,\n provide,\n reactive,\n ref,\n computed,\n onMounted,\n watch,\n nextTick,\n toRefs,\n onUnmounted,\n} from 'vue';\nimport { isEqual, isString } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { isNil } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport type { RadioOptionObj, RadioOption, TdRadioGroupProps } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { useKeyboard } from './hooks';\nimport { isFunction } from 'lodash-es';\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\nimport useResizeObserver from '../hooks/useResizeObserver';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n const updateInnerValue: TdRadioGroupProps['onChange'] = (value, context) => {\n if (isEqual(value, innerValue.value)) return;\n setInnerValue(value, context);\n };\n\n // 键盘操作\n useKeyboard(radioGroupRef, updateInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: updateInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '../../utils/dom';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport withInstall from '../utils/withInstall';\nimport { TdRadioProps, TdRadioGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type RadioProps = TdRadioProps;\nexport type RadioGroupProps = TdRadioGroupProps;\n\nexport const Radio = withInstall(_Radio);\nexport const RadioGroup = withInstall(_Group);\nexport const RadioButton = withInstall(_RadioButton);\n\nexport default Radio;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSliderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于控制数字输入框组件,值为 false 表示不显示数字输入框;值为 true 表示呈现默认数字输入框;值类型为 Object 表示透传属性到数字输入框组件 */\n inputNumberProps: {\n type: [Boolean, Object] as PropType,\n default: false as TdSliderProps['inputNumberProps'],\n },\n /** 滑块当前值文本。
    值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
    值为 `${value}%` 则表示组件会根据占位符渲染文案;
    值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdSliderProps['label'],\n },\n /** 滑块布局方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdSliderProps['layout'],\n validator(val: TdSliderProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'horizontal'].includes(val);\n },\n },\n /** 刻度标记,示例:[0, 10, 40, 200] 或者 `{ 10: (val) => val + '%', 50: (h) => }` */\n marks: {\n type: [Object, Array] as PropType,\n },\n /** 滑块范围最大值 */\n max: {\n type: Number,\n default: 100,\n },\n /** 滑块范围最小值 */\n min: {\n type: Number,\n default: 0,\n },\n /** 双游标滑块 */\n range: Boolean,\n /** 控制步长刻度值显示 */\n showStep: Boolean,\n /** 步长 */\n step: {\n type: Number,\n default: 1,\n },\n /** 透传提示组件属性 */\n tooltipProps: {\n type: Object as PropType,\n },\n /** 滑块值 */\n value: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n modelValue: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n /** 滑块值,非受控属性 */\n defaultValue: {\n type: [Number, Array] as PropType,\n default: 0 as TdSliderProps['defaultValue'],\n },\n /** 滑块值变化时触发 */\n onChange: Function as PropType,\n /** 松开拖动`mouseup` 或点击滑块条时触发,适合不希望在拖动滑块过程频繁触发回调的场景实用 */\n onChangeEnd: Function as PropType,\n};\n","import { isString } from 'lodash-es';\nimport { TNode } from '../../common';\n/**\n * 计算刻度区间值停止坐标\n * @param position 刻度坐标值 ;\n * @param isVertical 是否垂直方向\n * @returns {string} style内联样式值\n */\nexport const getStopStyle = (position: number, isVertical: boolean) => {\n return isVertical ? { top: `calc(${100 - position}% - 1px)` } : { left: `${position}%` };\n};\n\n/**\n * 格式化返回slider初始值\n * @param val slider传入的value\n * @param type 第一个滑块or第二个滑块值\n * @returns {number}\n */\nexport const formatSliderValue = (val: number | number[], type: 'first' | 'second') => {\n if (type === 'first') {\n if (val instanceof Array) {\n return val[0];\n }\n return val;\n }\n if (val instanceof Array) {\n return val[1];\n }\n return 0;\n};\n\n/**\n * 格式化label参数\n * @param label slider传入的label属性\n * @param val slider传入的value\n */\nexport const formatLabel = (label: TNode | string, val: number) => {\n if (Boolean(label) === false) {\n return String(val);\n }\n if (isString(label)) {\n let text = String(val);\n try {\n const rule = /\\${value}%/g;\n const enableToReplace = rule.test(label);\n if (enableToReplace) {\n text = label.replace(rule, String(val));\n } else {\n text = label;\n throw new Error();\n }\n } catch (e) {\n console.warn(`fail to parse label prop, please pass string such as '\\${value}%'`);\n }\n return text;\n }\n return label;\n};\n","import { TooltipProps } from '../../tooltip';\nimport { ref, computed, ComputedRef, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport { formatLabel } from '../utils';\nimport { useTNodeJSX } from '../../hooks';\n\nconst initialProps: TooltipProps & { overlayClassName: string } = {\n visible: false,\n trigger: 'hover',\n showArrow: true,\n overlayInnerStyle: undefined,\n overlayClassName: undefined,\n attach: 'body',\n theme: 'default',\n};\n\nexport interface TooltipConfig {\n tooltipProps: boolean | TooltipProps;\n vertical: boolean;\n value: number;\n label: TdSliderProps['label'];\n position: string;\n range: boolean;\n}\n\n/**\n * 聚合管理滑块tooltip内容hook\n * @param tooltipProps tooltip属性配置\n * @param vertical 是否垂直展示\n * @returns\n */\nexport const useSliderTooltip = (tooltipConfig: Ref) => {\n const tooltipRef = ref();\n const showTooltip = computed({\n get() {\n return !tooltipConfig.value.tooltipProps === false;\n },\n set(val) {\n return val;\n },\n });\n const normalizeProps = ref({ ...initialProps });\n /** 开关显示tooltip */\n const toggleTooltip = (toState: boolean) => {\n if (!showTooltip.value) return;\n normalizeProps.value.visible = toState;\n };\n\n const renderTNodeJSX = useTNodeJSX();\n\n /** 合并最终tooltip属性,以外部同名属性覆盖初始化属性 */\n const validProps = computed(() => {\n const { vertical, tooltipProps, label, value, position, range } = tooltipConfig.value;\n const placement = vertical ? 'right' : 'top';\n\n let content = (() => {\n if (label === true) {\n return String(value);\n }\n if (typeof label === 'string') {\n return formatLabel(label, value);\n }\n return renderTNodeJSX('label', {\n params: range\n ? {\n value,\n position,\n }\n : { value },\n });\n })();\n\n if (tooltipProps instanceof Object) {\n if (!tooltipProps?.placement) {\n normalizeProps.value.placement = placement;\n }\n if (tooltipProps.content) {\n content = tooltipProps.content;\n }\n // @ts-ignore\n return { ...normalizeProps.value, ...tooltipProps, content };\n }\n return { ...normalizeProps.value, placement, content };\n });\n\n return {\n tooltipRef,\n tooltipProps: validProps as ComputedRef,\n toggleTooltip,\n showTooltip,\n };\n};\n","import { InjectionKey } from 'vue';\n\ntype SliderPropsInjectKey = InjectionKey<{\n max: number;\n min: number;\n step: number;\n dragging: boolean;\n toggleDragging: (val: boolean) => void;\n precision: number;\n disabled: boolean;\n resetSize: () => void;\n sliderSize: number;\n}>;\nexport const sliderPropsInjectKey: SliderPropsInjectKey = Symbol('sliderProps');\n","import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n inject,\n nextTick,\n reactive,\n ref,\n watchEffect,\n} from 'vue';\nimport TTooltip from '../tooltip/index';\nimport { TdSliderProps } from './type';\n\nimport { isFunction } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useSliderTooltip } from './hooks/useSliderTooltip';\nimport { sliderPropsInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSliderButton',\n props: {\n value: {\n type: [Number],\n default: 0,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n tooltipProps: {\n type: [Boolean, Object],\n default: true,\n },\n label: {\n type: [String, Boolean, Function] as PropType,\n },\n range: {\n type: Boolean,\n default: false,\n },\n position: {\n type: String,\n },\n },\n emits: ['input', 'mouseup'],\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('slider__button');\n const tooltipConfig = computed(() => props);\n const { tooltipRef, tooltipProps, toggleTooltip, showTooltip } = useSliderTooltip(tooltipConfig);\n const parentProps = inject(sliderPropsInjectKey);\n const buttonRef = ref();\n const dragged = ref(false);\n\n /** --------------------- slide button 相关状态start ------------------- */\n const slideButtonProps = reactive({\n dragging: false,\n isClick: false,\n startX: 0,\n startY: 0,\n startPos: 0,\n newPos: null,\n });\n\n const rangeDiff = computed(() => {\n return Number(parentProps.max) - Number(parentProps.min);\n });\n\n const currentPos = computed(() => {\n return `${((props.value - parentProps.min) / rangeDiff.value) * 100}%`;\n });\n\n const step = computed(() => {\n return parentProps.step;\n });\n\n const wrapperStyle = computed(() => {\n return props.vertical ? { bottom: currentPos.value } : { left: currentPos.value };\n });\n\n watchEffect(() => {\n parentProps.toggleDragging(slideButtonProps.dragging);\n });\n /** --------------------- slide button 相关状态end ------------------- */\n\n /** --------------------- slide button 相关事件start ------------------- */\n /** 设置当前位置 */\n const setPosition = (pos: number) => {\n let newPos = pos;\n if (newPos === null || Number.isNaN(newPos)) {\n return;\n }\n\n if (newPos > 100) {\n newPos = 100;\n } else if (newPos < 0) {\n newPos = 0;\n }\n const perStepLen = (100 * step.value) / rangeDiff.value;\n const steps = Math.round(newPos / perStepLen);\n let value = steps * perStepLen * rangeDiff.value * 0.01;\n value += parentProps.min;\n value = Number(parseFloat(`${value}`).toFixed(parentProps.precision));\n ctx.emit('input', value);\n nextTick(() => {\n tooltipRef.value && tooltipRef.value.updatePopper?.();\n });\n };\n\n const handleMouseEnter = () => {\n (buttonRef.value as ComponentPublicInstance).focus();\n toggleTooltip(true);\n };\n const handleMouseLeave = () => {\n if (!slideButtonProps.dragging) {\n toggleTooltip(false);\n }\n };\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n slideButtonProps.dragging = true;\n slideButtonProps.isClick = true;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchstart') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n slideButtonProps.startY = clientY;\n } else {\n slideButtonProps.startX = clientX;\n }\n slideButtonProps.startPos = parseFloat(currentPos.value);\n slideButtonProps.newPos = slideButtonProps.startPos;\n };\n\n const onDragging = (e: MouseEvent | TouchEvent) => {\n const event = e;\n if (!slideButtonProps.dragging) {\n return;\n }\n dragged.value = true;\n slideButtonProps.isClick = false;\n if (parentProps?.resetSize && isFunction(parentProps?.resetSize)) {\n parentProps.resetSize();\n }\n let diff = 0;\n const parentSliderSize = parentProps.sliderSize;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchmove') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n diff = slideButtonProps.startY - clientY;\n } else {\n diff = clientX - slideButtonProps.startX;\n }\n diff = (diff / parentSliderSize) * 100;\n slideButtonProps.newPos = slideButtonProps.startPos + diff;\n setPosition(slideButtonProps.newPos);\n };\n\n const onDragEnd = () => {\n if (slideButtonProps.dragging) {\n setTimeout(() => {\n slideButtonProps.dragging = false;\n toggleTooltip(false);\n if (!slideButtonProps.isClick) {\n setPosition(slideButtonProps.newPos);\n }\n dragged.value && ctx.emit('mouseup');\n dragged.value = false;\n }, 0);\n window.removeEventListener('mousemove', onDragging);\n window.removeEventListener('touchmove', onDragging);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchend', onDragEnd);\n window.removeEventListener('contextmenu', onDragEnd);\n }\n };\n\n function onButtonDown(event: MouseEvent | TouchEvent) {\n if (parentProps.disabled) {\n return;\n }\n event.preventDefault();\n onDragStart(event);\n window.addEventListener('mousemove', onDragging);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragging);\n window.addEventListener('touchend', onDragEnd);\n window.addEventListener('contextmenu', onDragEnd);\n }\n\n const onKeyDown = (state: 'sub' | 'add') => {\n if (parentProps.disabled) {\n return;\n }\n let stepLength = (step.value / rangeDiff.value) * 100;\n if (state === 'sub') {\n stepLength = -stepLength;\n }\n slideButtonProps.newPos = parseFloat(currentPos.value) + stepLength;\n setPosition(slideButtonProps.newPos);\n };\n\n const onNativeKeyDown = (e: KeyboardEvent) => {\n const { code } = e;\n e.preventDefault();\n if (code === 'ArrowDown' || code === 'ArrowLeft') {\n onKeyDown('sub');\n }\n if (code === 'ArrowUp' || code === 'ArrowRight') {\n onKeyDown('add');\n }\n };\n /** --------------------- slide button 相关事件end ------------------- */\n\n /** 暴露设置按钮坐标方法供父组件调用 */\n ctx.expose({\n setPosition,\n });\n\n return () => (\n \n {/* hide tooltip with `hideEmptyPopup`, empty content won't show */}\n \n
    \n \n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { TdSliderProps } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TSliderMark',\n props: {\n mark: {\n type: [Object, Array, String, Number] as PropType,\n },\n point: {\n type: Number,\n },\n onClickMarkPoint: {\n type: Function,\n default: () => {},\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('slider__mark');\n const changeValue = (e: MouseEvent) => {\n e.stopPropagation();\n props?.onClickMarkPoint?.(props.point);\n };\n\n return () => (\n
    \n {props.mark}\n
    \n );\n },\n});\n","import { computed, Ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\nimport { isBoolean } from 'lodash-es';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","import { isNull } from 'lodash-es';\nimport { calculateNodeSize } from './helper';\n\ntype CalculateStyleType = {\n height?: string,\n minHeight?: string\n};\n\ntype LimitType = number | null;\n\nconst TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nfunction calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: LimitType = 1,\n maxRows: LimitType = null,\n): CalculateStyleType {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const {\n paddingSize,\n borderSize,\n boxSizing,\n sizingStyle,\n } = calculateNodeSize(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CalculateStyleType = {};\n const isBorderbox = boxSizing === 'border-box';\n const isContentbox = boxSizing === 'content-box';\n\n if (isBorderbox) {\n height += borderSize;\n } else if (isContentbox) {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n hiddenTextarea?.parentNode?.removeChild(hiddenTextarea);\n // @ts-ignore\n hiddenTextarea = null;\n\n const calcHeight = (rows: number) => {\n let rowsHeight = singleRowHeight * rows;\n if (isBorderbox) {\n rowsHeight = rowsHeight + paddingSize + borderSize;\n }\n return rowsHeight;\n };\n\n if (!isNull(minRows)) {\n const minHeight = calcHeight(minRows);\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (!isNull(maxRows)) {\n height = Math.min(calcHeight(maxRows), height);\n }\n result.height = `${height}px`;\n return result;\n}\n\nexport default calcTextareaHeight;\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\n\ninterface SliderButtonType {\n setPosition: (param: number) => {};\n}\nexport default defineComponent({\n name: 'TSlider',\n model: {\n prop: 'value',\n event: 'change',\n },\n props,\n setup(props) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('slider');\n const { STATUS } = useCommonClassName();\n const { value, modelValue } = toRefs(props) as any;\n const [sliderValue, setSliderValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const sliderContainerRef = ref();\n const sliderRef = ref();\n const firstButtonRef = ref();\n const secondButtonRef = ref();\n\n const firstValue = ref(formatSliderValue(sliderValue.value, 'first'));\n const secondValue = ref(formatSliderValue(sliderValue.value, 'second'));\n const dragging = ref(false);\n const sliderSize = ref(1);\n\n const vertical = computed(() => {\n return props.layout === 'vertical';\n });\n\n /** ----------------- 样式计算 start ------------- */\n const containerClass = computed(() => [`${COMPONENT_NAME.value}__container`, { 'is-vertical': vertical.value }]);\n const sliderClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n {\n 'is-vertical': vertical.value,\n [`${COMPONENT_NAME.value}--with-input`]: props.inputNumberProps,\n [`${COMPONENT_NAME.value}--vertical`]: vertical.value,\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n const sliderRailClass = computed(() => [\n `${COMPONENT_NAME.value}__rail`,\n { 'show-input': props.inputNumberProps, disabled: disabled.value },\n ]);\n const runwayStyle = computed(() => {\n return vertical.value ? { height: '100%' } : {};\n });\n const barStyle = computed(() => {\n const barStart = props.range ? `${(100 * (minValue.value - props.min)) / rangeDiff.value}%` : '0%';\n const currentDiff = props.range ? maxValue.value - minValue.value : firstValue.value - props.min;\n const barSize = `${(100 * currentDiff) / rangeDiff.value}%`;\n return vertical.value\n ? {\n height: barSize,\n bottom: barStart,\n }\n : {\n width: barSize,\n left: barStart,\n };\n });\n /** ----------------- 样式计算 end ------------- */\n\n // 差值范围\n const rangeDiff = computed(() => {\n return props.max - props.min;\n });\n const minValue = computed(() => {\n return Math.min(firstValue.value, secondValue.value);\n });\n const maxValue = computed(() => {\n return Math.max(firstValue.value, secondValue.value);\n });\n const steps = computed(() => {\n if (!props.showStep || props.min > props.max) return [];\n if (props.step === 0) {\n console.warn('[Element Warn][Slider]step should not be 0.');\n return [];\n }\n const stepCount = rangeDiff.value / props.step;\n const stepWidth = (100 * props.step) / rangeDiff.value;\n const result = [];\n for (let i = 1; i < stepCount; i++) {\n result.push(i * stepWidth);\n }\n if (props.range) {\n const r = result.filter(\n (step) =>\n step < (100 * (minValue.value - props.min)) / rangeDiff.value ||\n props.step > (100 * (maxValue.value - props.max)) / rangeDiff.value,\n );\n return r;\n }\n return result.filter((step) => step > (100 * (firstValue.value - props.min)) / rangeDiff.value);\n });\n const precision = computed(() => {\n const precisions = [props.min, props.max, props.step].map((item) => {\n const decimalArr = `${item}`.split('.');\n return decimalArr[1] ? decimalArr[1].length : 0;\n });\n return Math.max.apply(null, precisions);\n });\n // 防止值越级\n const setValues = (value: SliderValue): SliderValue => {\n const [min, max] = [props.min, props.max];\n if (min > max) {\n console.warn('[Slider] max should be greater than min.');\n return;\n }\n // 双向滑块\n if (props.range && isArray(value)) {\n let [maxLimit, minLimit] = [Math.min(...value), Math.max(...value)];\n if (maxLimit > max) {\n maxLimit = firstValue.value;\n }\n if (maxLimit < min) {\n maxLimit = min;\n }\n if (minLimit < min) {\n minLimit = secondValue.value;\n }\n if (minLimit > max) {\n minLimit = max;\n }\n [firstValue.value, secondValue.value] = [maxLimit, minLimit];\n return [maxLimit, minLimit];\n }\n let preValue = value as number;\n if (preValue < min) {\n preValue = min;\n }\n if (preValue > max) {\n preValue = max;\n }\n return preValue;\n };\n // 只要触发修改就要有这个方法抛出change事件\n const emitChange = (value: SliderValue) => {\n let changeValue = value;\n if (changeValue === undefined) {\n if (props.range) {\n changeValue = [firstValue.value, secondValue.value];\n } else {\n changeValue = firstValue.value;\n }\n }\n const fixValue: SliderValue = setValues(changeValue);\n setSliderValue(fixValue);\n };\n\n const resetSize = () => {\n if (sliderRef.value) {\n sliderSize.value = sliderRef.value[`client${vertical.value ? 'Height' : 'Width'}`];\n }\n };\n\n // 是否以完成挂载(部分组合组件如inputNumber依赖于首次init后的状态值进行渲染)\n const isAlreadyMount = ref(false);\n // 初始化传入的value\n const init = () => {\n let valuetext: string | number;\n if (props.range) {\n if (isArray(sliderValue.value)) {\n firstValue.value = Math.max(props.min || 0, sliderValue.value[0]);\n secondValue.value = Math.min(props.max || 100, sliderValue.value[1]);\n } else {\n firstValue.value = props.min || 0;\n secondValue.value = props.max || 100;\n }\n valuetext = `${firstValue.value}-${secondValue.value}`;\n } else {\n if (!isNumber(sliderValue.value)) {\n firstValue.value = props.min;\n } else {\n firstValue.value = Math.min(props.max, Math.max(props.min, sliderValue.value as number));\n }\n valuetext = String(firstValue.value);\n }\n if (sliderContainerRef.value) {\n sliderContainerRef.value.setAttribute('aria-valuetext', valuetext);\n }\n resetSize();\n window.addEventListener('resize', resetSize);\n };\n // 相应button的位置\n const setPosition = (percent: number): void => {\n let targetValue = (percent * rangeDiff.value) / 100;\n targetValue = props.min + targetValue;\n if (!props.range && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n return;\n }\n let button;\n if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) {\n button = firstValue.value < secondValue.value ? 'button1' : 'button2';\n } else {\n button = firstValue.value > secondValue.value ? 'button1' : 'button2';\n }\n if (button === 'button1' && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n }\n if (button === 'button2' && secondButtonRef.value) {\n secondButtonRef.value.setPosition(percent);\n }\n };\n\n const getFixValue = () => {\n const changeValue = props.range ? [firstValue.value, secondValue.value] : firstValue.value;\n return setValues(changeValue);\n };\n\n // 全局点击\n const onSliderClick = (event: MouseEvent): void => {\n if (disabled.value || dragging.value) {\n return;\n }\n if (!sliderRef.value) return;\n resetSize();\n let value = 0;\n if (vertical.value) {\n const sliderOffsetBottom = sliderRef.value.getBoundingClientRect().bottom;\n value = ((sliderOffsetBottom - event.clientY) / sliderSize.value) * 100;\n setPosition(value);\n } else {\n const sliderOffsetLeft = sliderRef.value.getBoundingClientRect().left;\n value = ((event.clientX - sliderOffsetLeft) / sliderSize.value) * 100;\n setPosition(value);\n }\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n // mark 点击触发修改事件\n const changeValue = (point: number) => {\n if (disabled.value || dragging.value) {\n return;\n }\n resetSize();\n const value = Number((point / rangeDiff.value) * 100);\n setPosition(value);\n emitChange(point);\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n /** 副作用监听 */\n watch(\n () => sliderValue.value,\n (newVal) => {\n if (dragging.value === true) return;\n if (isArray(newVal) && props.range) {\n [firstValue.value, secondValue.value] = newVal;\n } else {\n firstValue.value = newVal as number;\n }\n },\n );\n\n watch([firstValue, secondValue, dragging], (newStates, prevStates) => {\n if (newStates[0] !== prevStates[0]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n } else {\n emitChange(firstValue.value);\n }\n }\n if (newStates[1] !== prevStates[1]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n }\n }\n if (newStates[2] !== prevStates[2] && newStates[2] === false) {\n init();\n }\n });\n\n /** 挂载&卸载 */\n onMounted(() => {\n init();\n isAlreadyMount.value = true;\n });\n onBeforeUnmount(() => {\n window.removeEventListener('resize', resetSize);\n });\n\n /** -------------------------- 渲染相关逻辑 start -------------------------- */\n const markConfig = computed(() => ({\n max: props.max,\n min: props.min,\n marks: props.marks,\n vertical: vertical.value,\n prefixName: COMPONENT_NAME.value,\n }));\n const renderMask = useSliderMark(markConfig);\n\n const inputConfig = computed(() => ({\n max: props.max,\n min: props.min,\n inputNumberProps: props.inputNumberProps,\n step: props.step,\n prefixName: COMPONENT_NAME.value,\n vertical: vertical.value,\n disabled: disabled.value,\n }));\n const renderInputNumber = useSliderInput(inputConfig);\n\n const renderInputButton = (): VNode => {\n const firstInputVal = setValues(firstValue.value) as number;\n const firstInputOnChange = (v: number) => {\n firstValue.value = setValues(v) as number;\n };\n const secondInputVal = setValues(secondValue.value) as number;\n const secondInputOnChange = (v: number) => {\n secondValue.value = setValues(v) as number;\n };\n return (\n \n {renderInputNumber(firstInputVal, firstInputOnChange)}\n {props.range &&
    }\n {props.range && renderInputNumber(secondInputVal, secondInputOnChange)}\n
    \n );\n };\n /** -------------------------- 渲染相关逻辑 end -------------------------- */\n\n /** 父子共用状态&方法 */\n const toggleDragging = (toState: boolean) => {\n dragging.value = toState;\n };\n\n const { min, max, step } = toRefs(props);\n provide(\n sliderPropsInjectKey,\n reactive({\n min,\n max,\n step,\n dragging,\n toggleDragging,\n precision,\n disabled,\n resetSize,\n sliderSize,\n }),\n );\n\n return () => (\n
    \n \n
    \n
    \n {\n firstValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n {props.range && (\n {\n secondValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n )}\n {props.showStep && (\n
    \n {steps.value.map((item: any, key) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n
    \n );\n })}\n
    \n )}\n {renderMask(changeValue)}\n
    \n
    \n {isAlreadyMount.value && props.inputNumberProps && renderInputButton()}\n
    \n );\n },\n});\n","import { computed, VNode, Ref } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { SliderMarks } from '../type';\nimport { TNode } from '../../common';\nimport log from '@tdesign/common-js/log/log';\nimport { getStopStyle } from '../utils';\nimport TSliderMark from '../slider-mark';\nimport { isArray } from 'lodash-es';\n\ninterface MarkItem {\n point: number;\n position: number;\n mark: string | number | TNode<{ value: number }>;\n}\n\ninterface useSliderMarkProps {\n max: number;\n min: number;\n marks: number[] | SliderMarks;\n vertical: boolean;\n prefixName: string;\n}\n\n/**\n * 聚合管理刻度值渲染逻辑\n */\nexport const useSliderMark = (config: Ref) => {\n const name = config.value.prefixName;\n const markList = computed(() => {\n const markProps = config.value;\n if (!markProps.marks) {\n return [];\n }\n const legalMarks: Array = [];\n if (isArray(markProps.marks)) {\n const marksList = cloneDeep(markProps.marks).sort((a, b) => a - b);\n const maxLimit = Math.max(...marksList, markProps.max);\n const minLimit = Math.min(...marksList, markProps.min);\n if (minLimit < markProps.min) {\n log.errorOnce('TSlider', 'marks min value should >= props min');\n }\n if (maxLimit > markProps.max) {\n log.errorOnce('TSlider', 'marks max value should <= props max');\n }\n marksList.forEach((item) => {\n legalMarks.push({\n point: item,\n position: ((item - minLimit) / (maxLimit - minLimit)) * 100,\n mark: item,\n });\n });\n } else {\n Object.keys(markProps.marks)\n .map(parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= markProps.max && point >= markProps.min)\n .forEach((point) => {\n const item: MarkItem = {\n point,\n position: ((point - markProps.min) * 100) / (markProps.max - markProps.min),\n mark: markProps.marks[point],\n };\n legalMarks.push(item);\n });\n }\n return legalMarks;\n });\n\n const renderMask = (onChangeFn?: (point: number) => void): VNode => {\n if (!markList.value.length) return null;\n\n return (\n
    \n
    \n {markList.value.map((item, index) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n \n );\n })}\n
    \n
    \n {markList.value.map((item, key) => (\n \n ))}\n
    \n
    \n );\n };\n\n return renderMask;\n};\n","import _Slider from './slider';\nimport _SliderButton from './slider-button';\nimport withInstall from '../utils/withInstall';\nimport { TdSliderProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type SliderProps = TdSliderProps;\nexport const Slider = withInstall(_Slider);\nexport const SliderButton = withInstall(_SliderButton);\nexport default Slider;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSwitchProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** Switch 切换状态前的回调方法,常用于需要发起异步请求的场景,回调返回值支持布尔和 Promise 类型,返回`false`或 Promise reject不继续执行change,否则则继续执行。 */\n beforeChange: {\n type: Function as PropType,\n },\n /** 用于自定义开关的值,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]、['open', 'close'] */\n customValue: {\n type: Array as PropType,\n },\n /** 是否禁用组件。优先级:Switch.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 开关内容,[开启时内容,关闭时内容]。示例:['开', '关'] 或 (value) => value ? '开' : '关' */\n label: {\n type: [Array, Function] as PropType,\n default: (): TdSwitchProps['label'] => [] as TdSwitchProps['label'],\n },\n /** 是否处于加载中状态 */\n loading: Boolean,\n /** 开关尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSwitchProps['size'],\n validator(val: TdSwitchProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 开关值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n /** 开关值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 数据发生变化时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, h, VNodeChild, computed, watch, toRefs } from 'vue';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport useVModel from '../hooks/useVModel';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TSwitch',\n props,\n setup(props, { slots }) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('switch');\n const { STATUS, SIZE } = useCommonClassName();\n // values\n const { value, modelValue } = toRefs(props);\n const [innerValue, setSwitchVal] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const activeValue = computed(() => {\n if (props.customValue && props.customValue.length > 0) {\n return props.customValue[0];\n }\n return true;\n });\n const inactiveValue = computed(() => {\n if (props.customValue && props.customValue.length > 1) {\n return props.customValue[1];\n }\n return false;\n });\n\n // methods\n function handleToggle(e: MouseEvent) {\n const checked = innerValue.value === activeValue.value ? inactiveValue.value : activeValue.value;\n // emits\n setSwitchVal(checked, { e });\n }\n\n function toggle(e: MouseEvent) {\n if (disabled.value || props.loading) {\n return;\n }\n if (!props.beforeChange) {\n handleToggle(e);\n return;\n }\n Promise.resolve(props.beforeChange())\n .then((v) => {\n if (v) {\n handleToggle(e);\n }\n })\n .catch((e) => {\n throw new Error(`Switch: some error occurred: ${e}`);\n });\n }\n\n // classes\n const classes = computed(() => [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n [STATUS.value.checked]: innerValue.value === activeValue.value || props.modelValue === activeValue.value,\n },\n ]);\n const nodeClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__handle`,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n },\n ];\n });\n const contentClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n\n watch(\n innerValue,\n (val) => {\n if (props.customValue && props.customValue.length && !props.customValue.includes(val)) {\n throw new Error(`value is not in ${JSON.stringify(props.customValue)}`);\n }\n },\n {\n immediate: true,\n },\n );\n\n const content = computed(() => {\n if (isFunction(props.label)) {\n return props.label(h, { value: innerValue.value });\n }\n if (isString(props.label)) {\n return props.label;\n }\n if (isArray(props.label) && props.label.length) {\n const label = innerValue.value === activeValue.value ? props.label[0] : props.label[1];\n if (!label) return;\n if (isString(label)) {\n return label;\n }\n if (isFunction(label)) {\n return label(h);\n }\n }\n if (slots.label) {\n return slots.label({ value: innerValue.value });\n }\n return null;\n });\n return () => {\n let switchContent: VNodeChild;\n let loadingContent: TNodeReturnValue;\n if (props.loading) {\n loadingContent = ;\n } else if (content.value) {\n switchContent = content.value;\n }\n\n return (\n
    \n {loadingContent}\n
    {switchContent}
    \n
    \n );\n };\n },\n});\n","import _Switch from './switch';\nimport withInstall from '../utils/withInstall';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength, getValidAttrs } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport calcTextareaHeight from '@tdesign/common-js/utils/calcTextareaHeight';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n });\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n });\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\n !isComposing.value && setInnerValue(val, { e });\n nextTick(() => setInputValue(val));\n adjustTextareaHeight();\n };\n\n const handleInput = (e: InputEvent) => {\n inputValueChangeHandle(e);\n };\n\n const onCompositionstart = () => {\n isComposing.value = true;\n };\n\n const onCompositionend = (e: InputEvent | CompositionEvent) => {\n isComposing.value = false;\n inputValueChangeHandle(e as InputEvent);\n };\n\n const eventDeal = (name: T, e: KeyboardEvent) => {\n if (disabled.value) return;\n const eventName = `on${name[0].toUpperCase()}${name.slice(1)}` as `on${Capitalize}`;\n props[eventName]?.(innerValue.value, { e });\n };\n\n const emitKeyDown = (e: KeyboardEvent) => {\n eventDeal('keydown', e);\n };\n const emitKeyUp = (e: KeyboardEvent) => {\n eventDeal('keyup', e);\n };\n const emitKeypress = (e: KeyboardEvent) => {\n eventDeal('keypress', e);\n };\n\n const emitFocus = (e: FocusEvent) => {\n adjustTextareaHeight();\n if (disabled.value) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const emitBlur = (e: FocusEvent) => {\n if (!e.target) return;\n adjustTextareaHeight();\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n };\n\n // computed\n const textareaClasses = computed(() => {\n return [\n name.value,\n {\n [`${prefix.value}-is-disabled`]: disabled.value,\n [`${prefix.value}-is-readonly`]: isReadonly.value,\n },\n ];\n });\n const inputAttrs = computed>(() => {\n return getValidAttrs({\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: isReadonly.value,\n placeholder: props.placeholder,\n maxlength: (!props.allowInputOverMax && props.maxlength) || undefined,\n name: props.name || undefined,\n });\n });\n const characterNumber = computed(() => {\n const characterInfo = getCharacterLength(String(innerValue.value || ''));\n if (typeof characterInfo === 'object') {\n // @ts-ignore\n // TODO: 这里的写法本身就有问题,因为 getCharacterLength(String(innerValue.value || '')) 一定会返回 number,所以这个分支肯定是进不了的,除非 getCharacterLength 写得有问题\n return characterInfo.length;\n }\n return characterInfo;\n });\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { tStatus } = useLengthLimit(limitParams);\n\n // watch\n watch(\n () => innerValue.value,\n () => adjustTextareaHeight(),\n );\n\n watch(refTextareaElem, (el) => {\n if (!el) return;\n adjustTextareaHeight();\n if (props.autofocus) {\n el.focus();\n }\n });\n\n watch(textareaStyle, (val) => {\n const { style } = attrs as { style: StyleValue };\n if (isObject(style)) {\n setStyle(refTextareaElem.value, merge(style, val) as Record);\n } else {\n setStyle(refTextareaElem.value, val);\n }\n });\n\n watch(innerValue, () => {\n nextTick(() => adjustTextareaHeight());\n });\n\n watch(() => props.autosize, adjustTextareaHeight, { deep: true });\n\n expose({\n focus,\n blur,\n });\n\n onMounted(() => {\n adjustTextareaHeight();\n });\n\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n const inputEvents = getValidAttrs({\n onFocus: emitFocus,\n onBlur: emitBlur,\n onKeydown: emitKeyDown,\n onKeyup: emitKeyUp,\n onKeypress: emitKeypress,\n });\n const { STATUS } = useCommonClassName();\n const classes = computed(() => [\n `${name.value}__inner`,\n {\n [`${prefix.value}-is-${tStatus.value}`]: tStatus.value,\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: focused.value,\n [`${prefix.value}-resize-none`]: typeof props.autosize === 'object',\n },\n 'narrow-scrollbar',\n ]);\n\n const tips = renderTNodeJSX('tips');\n\n const textTips = tips && (\n
    {tips}
    \n );\n\n const limitText =\n (props.maxcharacter && (\n {`${characterNumber.value}/${props.maxcharacter}`}\n )) ||\n (!props.maxcharacter && props.maxlength && (\n {`${innerValue.value ? String(innerValue.value)?.length : 0}/${\n props.maxlength\n }`}\n ));\n\n return (\n
    \n \n {textTips || limitText ? (\n \n {textTips}\n {limitText}\n
    \n ) : null}\n
    \n );\n };\n },\n});\n","import _Textarea from './textarea';\nimport withInstall from '../utils/withInstall';\nimport { TdTextareaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TextareaProps = TdTextareaProps;\n\nexport const Textarea = withInstall(_Textarea);\nexport default Textarea;\n","import { ComponentPublicInstance } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { isUndefined } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { TransferListOptionBase, TransferItemOption, TdTransferProps, TransferValue, DataOption } from '../types';\n\nexport { emitEvent } from '../../utils/event';\n\nexport const TRANSFER_NAME = 'TTransfer';\n\nexport const SOURCE = 'source';\nexport const TARGET = 'target';\n\ninterface TreeNode {\n children?: Array;\n}\n\nfunction findTopNode(vm: ComponentPublicInstance): ComponentPublicInstance {\n // 找到t-transfer这层父节点\n if (vm.$options.name === 't-transfer') {\n return vm;\n }\n if (vm.$parent) {\n return findTopNode(vm.$parent);\n }\n return vm;\n}\n\nfunction getTransferListOption(prop: T | Array): TransferListOptionBase {\n if (isArray(prop)) {\n return {\n source: prop[0],\n target: prop[1],\n };\n }\n return {\n source: prop,\n target: prop,\n };\n}\n\nfunction getDataValues(\n data: Array,\n filterValues: Array,\n {\n isTreeMode = false,\n include = true, // true=保留filterValues,false=删除filterValues中元素\n remainValue = [] as Array,\n } = {},\n): Array {\n // 用于处理 tree 组件这种数据结构是树形的\n if (isTreeMode) {\n let result: Array = [];\n if (data) {\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n const isInclude = filterValues.includes(item.value) && !item.disabled;\n if (!include && isInclude) {\n continue; // 排除模式下子元素一律排除\n }\n\n // 只找叶子节点\n if (item.children && item.children.length > 0) {\n const childResult = getDataValues(item.children, filterValues, {\n isTreeMode,\n include,\n });\n result = result.concat(childResult);\n } else if ((include && isInclude) || (!include && !isInclude)) {\n result.push(item.value);\n }\n }\n }\n return result;\n }\n return data\n .filter((item) => {\n if (!item) return false;\n const isInclude = filterValues.includes(item.value);\n return (\n ((include && isInclude) || (!include && !isInclude)) && (!item.disabled || remainValue.includes(item.value))\n );\n })\n .map((item) => item.value);\n}\n\nfunction getTransferData(\n data: Array,\n keys: TdTransferProps['keys'],\n isTreeMode = false,\n): Array {\n const list: Array = data.map((transferDataItem, index): TransferItemOption => {\n const labelKey = keys?.label || 'label';\n const valueKey = keys?.value || 'value';\n const disabledKey = keys?.disabled || 'disabled';\n if (isUndefined(transferDataItem[labelKey])) {\n throw new Error(`${labelKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n if (isUndefined(transferDataItem[valueKey])) {\n throw new Error(`${valueKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n const result: TransferItemOption = {\n label: transferDataItem[labelKey] as string,\n value: transferDataItem[valueKey],\n key: `key__value_${transferDataItem[valueKey]}_index_${index}`,\n disabled: transferDataItem[disabledKey] ?? false,\n data: transferDataItem,\n };\n if (isTreeMode && transferDataItem.children) {\n result.children = getTransferData(transferDataItem.children, keys, true);\n }\n return result;\n });\n return list;\n}\n\nfunction isAllNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n return false;\n}\n\nfunction isTreeNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (!data) return !needMatch;\n\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n\n if (data.children?.length) {\n return data.children.some((item) => isTreeNodeValid(item, filterValues, needMatch));\n }\n return !needMatch;\n}\n\n// 复制树并过滤节点\nfunction cloneTreeWithFilter(\n sourceTree: TransferItemOption[],\n targetTree: TransferItemOption[],\n filterValues: Array,\n needMatch: boolean,\n) {\n sourceTree.forEach((item) => {\n let newNode: TransferItemOption;\n if (isAllNodeValid(item, filterValues, needMatch)) {\n // 如果当前节点直接命中,则复制所有子节点\n newNode = cloneDeep(item);\n targetTree.push(newNode);\n } else if (isTreeNodeValid(item, filterValues, needMatch)) {\n // 如果有合法子节点,就复制这个节点\n newNode = {\n ...item,\n };\n delete newNode.children;\n targetTree.push(newNode);\n if (item.children) {\n newNode.children = [];\n cloneTreeWithFilter(item.children, newNode.children, filterValues, needMatch);\n if (newNode.children.length === 0) {\n delete newNode.children;\n }\n }\n }\n });\n}\n\n// 过滤列表,如果是树的话需要保持树的结构\nfunction filterTransferData(\n data: Array,\n filterValues: Array,\n needMatch = true,\n isTreeMode = false,\n) {\n if (!isTreeMode) {\n if (needMatch) {\n // 正向过滤。要保持filterValues顺序\n return filterValues.map((value) => data.find((item) => item.value === value)).filter((item) => !!item);\n }\n // 反向过滤\n return data.filter((item) => {\n const isMatch = filterValues.includes(item.value);\n return !isMatch;\n });\n }\n\n const result: Array = [];\n cloneTreeWithFilter(data, result, filterValues, needMatch);\n return result;\n}\n\n// 获取树节点的叶子数量\nfunction getLefCount(nodes: Array): number {\n let total = 0;\n nodes.forEach((child) => {\n if (child.children && child.children.length > 0) {\n total += getLefCount(child.children);\n } else {\n total += 1;\n }\n });\n return total;\n}\n\nexport {\n findTopNode,\n getTransferListOption,\n getDataValues,\n getTransferData,\n cloneTreeWithFilter,\n filterTransferData,\n getLefCount,\n};\n","import { defineComponent, PropType } from 'vue';\nimport { SearchIcon as TdSearchIcon } from 'tdesign-icons-vue-next';\n\nimport { SearchOption } from '../types';\nimport TInput from '../../input';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\n\nexport default defineComponent({\n name: 'TTransferSearch',\n props: {\n value: {\n type: String,\n default: '',\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n onChange: Function,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const { SearchIcon } = useGlobalIcon({ SearchIcon: TdSearchIcon });\n const handleChange = (value: string, changeCtx: any) => {\n const { e, trigger } = changeCtx;\n props.onChange?.({\n value,\n e,\n trigger,\n });\n };\n const inputProps = typeof props.search === 'object' ? props.search : { clearable: true };\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n EmptyType,\n SearchEvent,\n SearchOption,\n TransferValue,\n TdTransferProps,\n TransferListType,\n TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useTNodeDefault } from '../../hooks/tnode';\n\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { isString } from 'lodash-es';\nimport { filter } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n checkboxProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n dataSource: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n listType: {\n type: String as PropType,\n default: 'target',\n },\n title: {\n type: [String, Function],\n },\n checkedValue: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n transferItem: Function as PropType,\n empty: {\n type: [Function, String] as PropType,\n },\n pagination: [Boolean, Object],\n footer: [Function, String],\n checkAll: Boolean,\n isTreeMode: {\n type: Boolean as PropType,\n default: false,\n },\n onCheckedChange: Function as PropType<(event: Array) => void>,\n onPageChange: Function,\n onScroll: Function,\n onSearch: Function,\n onDataChange: Function as PropType<(data: Array, movedValue: Array) => void>,\n draggable: Boolean,\n currentValue: {\n type: Array as PropType>,\n },\n};\n\nexport default defineComponent({\n name: 'TTransferList',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const { currentValue } = toRefs(props);\n const { t, globalConfig } = useConfig('transfer');\n // 搜索框输入内容\n const filterValue = ref('');\n // 用于兼容处理 Pagination 的非受控属性(非受控属性仅有 change 事件变化,无 props 变化,因此只需监听事件)\n const defaultCurrent = ref(1);\n // 用于兼容处理 Pagination 的非受控属性\n const defaultPageSize = ref(0);\n\n const currentPage = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n });\n const pageSize = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n });\n\n const filteredData = computed(() => {\n const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n if (!isTreeData) {\n return props.dataSource.filter((item: TransferItemOption) => {\n const label = item && item.label.toString();\n return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n });\n } else {\n return filteredTreeData(props.dataSource, filterValue.value);\n }\n });\n\n const pageTotal = computed(() => {\n return (filteredData.value && filteredData.value.length) || 0;\n });\n\n const curPageData = computed(() => {\n let pageData = filteredData.value;\n if (!props.pagination) return pageData;\n if (pageSize.value === 0) return pageData;\n const startIndex = (currentPage.value - 1) * pageSize.value;\n const endIndex = currentPage.value * pageSize.value;\n pageData = pageData.slice(startIndex, endIndex);\n return pageData;\n });\n const paginationProps = computed(() => {\n const defaultPaginationProps: TdPaginationProps = {\n totalContent: false,\n pageSizeOptions: [],\n };\n return typeof props.pagination === 'object'\n ? {\n ...defaultPaginationProps,\n ...props.pagination,\n size: 'small',\n theme: 'simple',\n current: currentPage.value,\n total: pageTotal.value,\n pageSize: pageSize.value,\n }\n : {};\n });\n const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n currentValue,\n curPageData,\n props.onDataChange,\n );\n const isAllChecked = computed(() => {\n const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n return (\n props.checkedValue.length > 0 &&\n (props.isTreeMode\n ? allValue.every((item) => props.checkedValue.includes(item))\n : (props.search ? filteredData.value : props.dataSource).every(\n (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n ))\n );\n });\n const indeterminate = computed(() => {\n return !isAllChecked.value && props.checkedValue.length > 0;\n });\n\n const totalCount = computed(() => {\n return getLefCount(props.dataSource);\n });\n\n watch(totalCount, (val) => {\n if (val <= (currentPage.value - 1) * pageSize.value) {\n const lastPage = Math.ceil(val / pageSize.value);\n defaultCurrent.value = lastPage;\n }\n });\n\n const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n const res = filter(cloneDeep(list), (node) => {\n if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n return true;\n }\n if (node.children && node.children.length > 0) {\n node.children = filteredTreeData(node.children, keyword);\n if (node.children.length > 0) {\n return true;\n }\n }\n return false;\n });\n return res;\n };\n\n const handlePaginationChange = (pageInfo: PageInfo) => {\n props.onPageChange?.(pageInfo);\n defaultCurrent.value = pageInfo.current;\n defaultPageSize.value = pageInfo.pageSize;\n };\n const handleCheckedChange = (val: Array) => {\n props.onCheckedChange?.(val);\n };\n const handleCheckedAllChange = (checked: boolean) => {\n if (checked) {\n const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n isTreeMode: props.isTreeMode,\n include: false,\n });\n handleCheckedChange(allValue);\n } else {\n handleCheckedChange([]);\n }\n };\n const handleScroll = (e: Event) => {\n props.onScroll?.(e);\n };\n const handleSearch = (e: any) => {\n const event: SearchEvent = {\n query: e.value,\n type: props.listType as TransferListType,\n e: e.e,\n trigger: e.trigger,\n };\n filterValue.value = e.value;\n props.onSearch?.(event);\n };\n const renderTNodeJSX = useTNodeDefault();\n const renderTitle = () => {\n const defaultNode = props.title && isString(props.title) ? : null;\n const titleNode = renderTNodeJSX('title', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n return {titleNode};\n };\n const renderContent = () => {\n const isDraggable = props.draggable && props.listType === TARGET;\n let defaultNode: JSX.Element = null;\n if (!isDraggable) {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n ))}\n \n );\n } else {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n
    \n ))}\n \n );\n }\n\n return (\n
    \n {renderTNodeJSX('tree', {\n defaultNode,\n params: {\n data: curPageData.value,\n value: props.checkedValue,\n onChange: handleCheckedChange,\n },\n })}\n
    \n );\n };\n const renderEmpty = () => {\n const empty = props.empty || t(globalConfig.value.empty);\n const defaultNode: VNode = isString(empty) ? {empty} : null;\n return (\n
    \n {renderTNodeJSX('empty', {\n defaultNode,\n params: {\n type: props.listType,\n },\n })}\n
    \n );\n };\n const renderFooter = () => {\n const defaultNode = isString(props.footer) ? (\n
    {props.footer}
    \n ) : null;\n return renderTNodeJSX('footer', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n };\n\n return () => (\n
    \n
    \n
    \n {props.checkAll && (\n \n )}\n \n {t(globalConfig.value.title, {\n checked: props.checkedValue.length,\n total: totalCount.value,\n })}\n \n
    \n {renderTitle()}\n
    \n \n {props.search && (\n \n )}\n {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n
    \n {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n
    \n \n
    \n )}\n {renderFooter()}\n \n );\n },\n});\n","import { ref, ComputedRef, Ref } from 'vue';\nimport type { TransferValue } from '../type';\nimport type { TransferItemOption } from '../types';\nexport default function useDragSort(\n currentValue: Ref>,\n curPageData: ComputedRef,\n handleDataChange: (data: Array, movedValue: Array) => void,\n) {\n const draggingIndex = ref(null);\n const dragoverIndex = ref(null);\n const dragoverPos = ref(null);\n\n const onDragStart = (e: DragEvent) => {\n const index = Number((e.target as HTMLElement).dataset.index);\n draggingIndex.value = index;\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (e.currentTarget) {\n const currentElement = e.currentTarget as HTMLElement;\n const index = Number(currentElement.dataset.index);\n const elemHeight = currentElement.offsetHeight;\n const dragY = e.clientY - currentElement.getBoundingClientRect().top;\n const insertAreaPercent = 0.3;\n const insertAreaHeight = elemHeight * insertAreaPercent;\n\n dragoverIndex.value = index;\n\n if (dragoverIndex.value === draggingIndex.value) {\n dragoverPos.value = '';\n return;\n }\n if (dragY < insertAreaHeight) {\n dragoverPos.value = 'top';\n } else if (dragY > elemHeight - insertAreaHeight) {\n dragoverPos.value = 'bottom';\n } else {\n dragoverPos.value = 'center';\n }\n }\n };\n\n const onDragLeave = () => {\n dragoverPos.value = '';\n dragoverIndex.value = null;\n };\n\n const onDragEnd = () => {\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n const currentDraggingIndex = draggingIndex.value;\n const currentDragoverIndex = dragoverIndex.value;\n\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n if (currentDraggingIndex === currentDragoverIndex) {\n return;\n }\n\n const newData = [...currentValue.value];\n\n const sourceItem = curPageData.value[currentDraggingIndex].value;\n const targetItem = curPageData.value[currentDragoverIndex].value;\n const sourceIndex = newData.indexOf(sourceItem);\n let targetIndex = newData.indexOf(targetItem);\n\n newData.splice(sourceIndex, 1);\n\n if (dragoverPos.value === 'bottom') {\n targetIndex += 1;\n }\n newData.splice(targetIndex, 0, sourceItem);\n handleDataChange?.(newData, [sourceItem, targetItem]);\n };\n\n return {\n onDragStart,\n onDragEnd,\n onDrop,\n onDragOver,\n onDragLeave,\n };\n}\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTransferProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于控制复选框属性 */\n checkboxProps: {\n type: Object as PropType,\n },\n /** 数据列表选中项 */\n checked: {\n type: Array as PropType,\n default: undefined as TdTransferProps['checked'],\n },\n /** 数据列表选中项,非受控属性 */\n defaultChecked: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultChecked'] => [],\n },\n /** 全量数据 */\n data: {\n type: Array as PropType,\n default: (): TdTransferProps['data'] => [],\n },\n /** 穿梭框可操作方向 */\n direction: {\n type: String as PropType,\n default: 'both' as TdTransferProps['direction'],\n validator(val: TdTransferProps['direction']): boolean {\n if (!val) return true;\n return ['left', 'right', 'both'].includes(val);\n },\n },\n /** 禁用全部操作:搜索、选中、移动、分页等。[源列表, 目标列表],示例:[true, false] 或者 true */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined,\n },\n /** 列表为空时呈现的内容。值类型为数组,则表示分别控制源列表和目标列表数据为空的呈现内容 */\n empty: {\n type: [String, Array, Function] as PropType,\n default: '' as TdTransferProps['empty'],\n },\n /** 穿梭框底部内容 */\n footer: {\n type: [Array, Function] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `data` 中对应的字段别名,示例:`{ label: 'text', value: 'id' }`,表示选项文本取 `text` 字段,选项值取 `id` 字段 */\n keys: {\n type: Object as PropType,\n },\n /** 方向操作按钮。默认显示组件内置操作图标。自定义操作图标示例:['向左', '向右'] 或者 `[() => , () => ]` 或者 `(h, direction) => direction === 'left' ? '《' : '》'` */\n operation: {\n type: [Array, Function] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。值类型为数组,表示可分别控制源列表和目标列表分页组件 */\n pagination: {\n type: [Object, Array] as PropType,\n },\n /** 搜索框配置,值为 false 表示不显示搜索框;值为 true 表示显示默认搜索框;值类型为对象,用于透传 Props 到 Input 组件;值类型为数组,则分别表示控制两侧搜索框 */\n search: {\n type: [Boolean, Object, Array] as PropType,\n default: false,\n },\n /** 是否显示全选,值类型为数组则表示分别控制源列表和目标列表 */\n showCheckAll: {\n type: [Boolean, Array] as PropType,\n default: true as TdTransferProps['showCheckAll'],\n },\n /** 是否允许通过拖拽对目标列表进行排序 */\n targetDraggable: Boolean,\n /** 目标数据列表排列顺序 */\n targetSort: {\n type: String as PropType,\n default: 'original' as TdTransferProps['targetSort'],\n validator(val: TdTransferProps['targetSort']): boolean {\n if (!val) return true;\n return ['original', 'push', 'unshift'].includes(val);\n },\n },\n /** 穿梭框标题,示例:['源列表', '目标列表'] 或者 `[() => 'A', () => 'B']` 或者 `({ type }) => type === 'source' ? '源' : '目标'` */\n title: {\n type: [Array, Function] as PropType,\n default: (): TdTransferProps['title'] => [] as TdTransferProps['title'],\n },\n /** 自定义渲染节点 */\n transferItem: {\n type: Function as PropType,\n },\n /** 目标数据列表数据 */\n value: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n /** 目标数据列表数据,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultValue'] => [],\n },\n /** 数据列表发生变化时触发,`type` 值为 `source`,表示源列表移动到目标列表,值为 `target` 表示目标列表移动到源列表,movedValue 则表示被移动的选项 */\n onChange: Function as PropType,\n /** 源数据列表或目标数据列表的选中项发生变化时触发,`context.type` 可以区分触发来源是目标列表,还是源列表 */\n onCheckedChange: Function as PropType,\n /** 分页发生变化时触发 */\n onPageChange: Function as PropType,\n /** 列表滚动时触发,bottomDistance 表示元素滚动到底部的距离 */\n onScroll: Function as PropType,\n /** 搜索时触发,options.query 表示用户输入的内容 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, createElementVNode, PropType, h } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { TNode } from '../../common';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport props from '../props';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTransferOperations',\n props: {\n // 控制左按钮的禁用与否\n leftDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n // 控制右按钮的禁用与否\n rightDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n operation: props.operation,\n },\n emits: ['moveToRight', 'moveToLeft'],\n setup(props, { slots, emit }) {\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon, ChevronLeftIcon } = useGlobalIcon({\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n });\n const moveToRight = () => {\n emit('moveToRight');\n };\n const moveToLeft = () => {\n emit('moveToLeft');\n };\n const getIconRight = () => {\n return ;\n };\n const getIconLeft = () => {\n return ;\n };\n const getIcon = (direction: 'left' | 'right') => {\n if (isFunction(props.operation)) {\n return null;\n }\n if (direction === 'right' && props.operation && isFunction(props.operation[0])) {\n return null;\n }\n if (direction === 'left' && props.operation && isFunction(props.operation[1])) {\n return null;\n }\n\n if (slots.operation) {\n return null;\n }\n\n return direction === 'left' ? getIconLeft : getIconRight;\n };\n // right:去右边,left:去左边\n const renderButton = (h: typeof createElementVNode, direction: 'left' | 'right') => {\n if (isFunction(slots.operation)) {\n return slots.operation({\n direction,\n });\n }\n if (isFunction(props.operation)) {\n const renderContent = props.operation;\n return renderContent(h as any, { direction });\n }\n let renderContent: string | TNode;\n if (isArray(props.operation)) {\n const [left, right] = props.operation;\n renderContent = direction === 'right' ? right : left;\n } else {\n renderContent = '';\n }\n return renderContent;\n };\n\n return () => (\n
    \n \n {slots.operation || (isArray(props.operation) && props.operation[1]) ? renderButton(h, 'right') : null}\n \n \n {slots.operation || (isArray(props.operation) && props.operation[0]) ? renderButton(h, 'left') : null}\n \n
    \n );\n },\n});\n","import { defineComponent, computed, toRefs } from 'vue';\nimport { pick } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\n\nimport TransferList from './components/transfer-list';\nimport TransferOperations from './components/transfer-operations';\nimport { TransferListType, CheckedOptions, TransferValue, EmptyType, TargetParams, SearchEvent } from './types';\n\nimport {\n getTransferListOption,\n getDataValues,\n getTransferData,\n filterTransferData,\n TRANSFER_NAME,\n SOURCE,\n TARGET,\n} from './utils';\nimport { PageInfo, TdPaginationProps } from '../pagination/type';\nimport props from './props';\nimport { TNode } from '../common';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: TRANSFER_NAME,\n props,\n\n setup(props, { slots }) {\n const disabled = useDisabled();\n const classPrefix = usePrefixClass();\n const { value, modelValue, checked } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n // @ts-ignore TODO\n const [innerChecked] = useDefaultValue(checked, props.defaultChecked, props.onCheckedChange, 'checked');\n const valueList = computed(() => innerValue.value);\n\n const isTreeMode = computed(() => {\n const treeSlot = slots.tree;\n return isFunction(treeSlot);\n });\n\n const leftButtonDisabled = computed(() => props.direction === 'right');\n const rightButtonDisabled = computed(() => props.direction === 'left');\n // props 传入的 data 格式化后的数据\n const transferData = computed(() => {\n return getTransferData(props.data, props.keys, isTreeMode.value);\n });\n const sourceList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], false, isTreeMode.value);\n });\n const targetList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], true, isTreeMode.value);\n });\n // 被选中的value\n const checkedValue = computed(() => {\n return {\n [SOURCE]: getDataValues(sourceList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n [TARGET]: getDataValues(targetList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n };\n });\n const hasFooter = computed(() => {\n return !!slots.footer || !!props.footer;\n });\n const showPagination = computed(() => {\n // 翻页在自定义列表无效\n return !!props.pagination && !slots.content;\n });\n const showSearch = computed(() => {\n // 翻页在自定义列表无效\n return !!props.search;\n });\n const footerOption = computed(() => {\n const footer = props.footer || '';\n return getTransferListOption(footer);\n });\n const emptyOption = computed(() => {\n return getTransferListOption(props.empty);\n });\n const searchOption = computed(() => {\n return getTransferListOption(props.search);\n });\n const checkAllOption = computed(() => {\n return getTransferListOption(props.showCheckAll);\n });\n const disabledOption = computed(() => {\n return getTransferListOption(disabled.value);\n });\n const titleOption = computed(() => {\n return getTransferListOption>(props.title);\n });\n const paginationOption = computed(() => {\n return getTransferListOption(props.pagination);\n });\n\n const handleCheckedChange = (val: Array, listType: TransferListType) => {\n const sourceChecked = listType === SOURCE ? val : checkedValue.value[SOURCE];\n const targetChecked = listType === TARGET ? val : checkedValue.value[TARGET];\n const checked = [...sourceChecked, ...targetChecked];\n const event: CheckedOptions = {\n checked,\n sourceChecked,\n targetChecked,\n type: listType,\n };\n // TODO onCheckedChange 参数有点不合理\n innerChecked.value = checked;\n props.onCheckedChange?.(event);\n };\n\n const transferTo = (toDirection: TransferListType) => {\n const oldTargetValue: Array = JSON.parse(JSON.stringify(valueList.value));\n let newTargetValue: Array;\n const selfCheckedValue = toDirection === TARGET ? checkedValue.value[SOURCE] : checkedValue.value[TARGET];\n // target->source\n if (toDirection === SOURCE) {\n newTargetValue = oldTargetValue.filter((v) => !selfCheckedValue.includes(v));\n } else if (props.targetSort === 'original') {\n // 按照原始顺序\n const remainValue = transferData.value.reduce((acc, data) => {\n if (oldTargetValue.includes(data.value) && data.disabled) {\n return acc.concat(data.value);\n }\n return acc;\n }, []);\n newTargetValue = getDataValues(transferData.value, oldTargetValue.concat(selfCheckedValue), {\n isTreeMode: isTreeMode.value,\n remainValue,\n });\n } else if (props.targetSort === 'unshift') {\n newTargetValue = selfCheckedValue.concat(oldTargetValue);\n } else {\n newTargetValue = oldTargetValue.concat(selfCheckedValue);\n }\n\n // 清空checked。与toDirection相反\n handleCheckedChange([], toDirection === SOURCE ? TARGET : SOURCE);\n\n const params: TargetParams = {\n type: toDirection,\n movedValue: selfCheckedValue,\n };\n setInnerValue(newTargetValue, params);\n };\n\n // 点击移到右边按钮触发的函数\n const transferToRight = () => {\n transferTo(TARGET);\n };\n // 点击移到左边按钮触发的函数\n const transferToLeft = () => {\n transferTo(SOURCE);\n };\n\n const handleScroll = (e: Event, listType: TransferListType) => {\n const target = e.target as HTMLElement;\n const bottomDistance = target.scrollHeight - target.scrollTop - target.clientHeight;\n const event: { e: Event; bottomDistance: number; type: TransferListType } = {\n e,\n bottomDistance,\n type: listType,\n };\n props.onScroll?.(event);\n };\n const handleSearch = (e: SearchEvent) => {\n props.onSearch?.(e);\n };\n const handlePageChange = (pageInfo: PageInfo, listType: TransferListType) => {\n props.onPageChange?.(pageInfo, { type: listType });\n };\n\n const handleDataChange = (data: Array, movedValue: Array) => {\n setInnerValue(data, {\n type: TARGET,\n movedValue,\n });\n };\n const renderTransferList = (listType: TransferListType) => {\n const scopedSlots = pick(slots, ['title', 'empty', 'footer', 'operation', 'transferItem', 'default', 'tree']);\n return (\n handleCheckedChange($event, listType)}\n onScroll={($event: any) => handleScroll($event, listType)}\n onSearch={handleSearch}\n onPageChange={($event: any) => handlePageChange($event, listType)}\n isTreeMode={isTreeMode.value}\n onDataChange={handleDataChange}\n currentValue={valueList.value}\n draggable={props.targetDraggable && listType === TARGET}\n >\n {scopedSlots}\n \n );\n };\n\n return () => (\n \n {renderTransferList(SOURCE)}\n \n {renderTransferList(TARGET)}\n \n );\n },\n});\n","import _Transfer from './transfer';\nimport withInstall from '../utils/withInstall';\nimport { TdTransferProps } from './type';\n\nimport './style';\n\nexport type TransferProps = TdTransferProps;\n\nexport const Transfer = withInstall(_Transfer);\n\nexport default Transfer;\n","import { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport TimePickerPanel from './panel/time-picker-panel';\nimport TSelectInput, { SelectInputBlurContext } from '../select-input';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { TdTimePickerProps } from './type';\nimport { useReadonly } from '../hooks/useReadonly';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n props?.onClear?.(context);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = (e: MouseEvent) => {\n props?.onConfirm?.({ e });\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimeRangePicker',\n props: { ...props, rangeInputProps: Object, popupProps: Object },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('time-range-picker');\n const { globalConfig } = useConfig('timePicker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const disabled = useDisabled();\n const currentPanelIdx = ref(undefined);\n const currentValue = ref>(TIME_PICKER_EMPTY);\n const isShowPanel = ref(false);\n const isReadOnly = useReadonly();\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n const { value, modelValue, allowInput, format } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange as any);\n\n const handleShowPopup = (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n isShowPanel.value = true;\n return;\n }\n isShowPanel.value = visible;\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = TIME_PICKER_EMPTY;\n setInnerValue(null);\n };\n\n const handleClick = ({ position }: { position: 'first' | 'second' }) => {\n currentPanelIdx.value = position === 'first' ? 0 : 1;\n };\n\n const handleTimeChange = (newValue: string | string[], e: MouseEvent) => {\n if (isArray(newValue)) {\n currentValue.value = newValue;\n } else if (currentPanelIdx.value === 0) {\n currentValue.value = [newValue, currentValue.value[1] ?? newValue];\n } else {\n currentValue.value = [currentValue.value[0] ?? newValue, newValue];\n }\n handleOnPick(newValue, e);\n };\n\n const handleInputBlur = (value: TimeRangeValue, { e }: { e: FocusEvent }) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value[currentPanelIdx.value], format.value);\n if (isValidTime) {\n const formattedVal = formatInputValue(currentValue.value[currentPanelIdx.value], format.value);\n currentPanelIdx.value === 0\n ? (currentValue.value = [formattedVal, currentValue.value[1] ?? formattedVal])\n : (currentValue.value = [currentValue.value[0] ?? formattedVal, formattedVal]);\n }\n }\n props.onBlur?.({ value, e });\n };\n\n const handleInputChange = (\n inputVal: TimeRangeValue,\n { e, position }: { e: InputEvent; position: RangeInputPosition },\n ) => {\n currentValue.value = inputVal;\n props.onInput?.({ value: innerValue.value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const handleClickConfirm = () => {\n const isValidTime = !currentValue.value.find((v) => !validateInputValue(v, format.value));\n if (isValidTime) setInnerValue(currentValue.value);\n if (props.autoSwap) autoSwapTime();\n isShowPanel.value = false;\n };\n\n const handleFocus = (value: TimeRangeValue, { e, position }: { e: FocusEvent; position: RangeInputPosition }) => {\n props.onFocus?.({ value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const autoSwapTime = () => {\n const [startTime, endTime] = currentValue.value;\n const startDayjs = dayjs(startTime, props.format);\n const endDayjs = dayjs(endTime, props.format);\n\n if (startDayjs.isAfter(endDayjs, 'second')) {\n setInnerValue([currentValue.value[1], currentValue.value[0]]);\n } else {\n setInnerValue([currentValue.value[0], currentValue.value[1]]);\n }\n };\n\n const handleOnPick = (pickValue: string | string[], e: MouseEvent) => {\n let pickedRangeValue = [];\n let context;\n if (isArray(pickValue)) {\n pickedRangeValue = pickValue;\n context = { e };\n } else if (currentPanelIdx.value === 0) {\n pickedRangeValue = [pickValue, currentValue.value[1] ?? pickValue];\n context = { e, position: 'start' as TimeRangePickerPartial };\n } else {\n pickedRangeValue = [currentValue.value[0] ?? pickValue, pickValue];\n context = { e, position: 'end' as TimeRangePickerPartial };\n }\n props.onPick?.(pickedRangeValue, context);\n };\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? TIME_PICKER_EMPTY : TIME_PICKER_EMPTY;\n if (!isShowPanel.value) currentPanelIdx.value = undefined;\n },\n );\n\n return () => (\n
    \n ,\n onClear: handleClear,\n onClick: handleClick,\n onFocus: handleFocus,\n onBlur: handleInputBlur,\n readonly: isReadOnly.value || !allowInput.value,\n activeIndex: currentPanelIdx.value,\n ...props.rangeInputProps,\n }}\n label={props.label}\n status={props.status}\n tips={props.tips}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","import _TimePicker from './time-picker';\nimport _TimeRangePicker from './time-range-picker';\nimport _TimePickerPanel from './panel/time-picker-panel';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from './type';\n\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './type';\nexport type TimePickerProps = TdTimePickerProps;\nexport type TimeRangePickerProps = TdTimeRangePickerProps;\nexport type TimePickerPanelProps = TdTimePickerProps;\n\nexport const TimePicker = withInstall(_TimePicker);\nexport const TimeRangePicker = withInstall(_TimeRangePicker);\nexport const TimePickerPanel = withInstall(_TimePickerPanel);\n\nexport default TimePicker;\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\nimport { TScroll } from '../common';\nimport useResizeObserver from './useResizeObserver';\nimport { max } from 'lodash-es';\nimport { min } from 'lodash-es';\nimport { sum } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nexport type UseVirtualScrollParams = Ref<{\n /** 列数据 */\n data: { [key: string]: any }[];\n scroll: TScroll & {\n /** 固定行(冻结行),示例:[M, N],表示冻结头 M 行和尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows?: Array;\n };\n preventResizeRefresh?: boolean;\n}>;\n\nexport interface ScrollToElementParams {\n /** 跳转元素下标 */\n index: number;\n /** 跳转元素距离顶部的距离 */\n top?: number;\n /** 单个元素高度非固定场景下,即 isFixedRowHeight = false。延迟设置元素位置,一般用于依赖不同高度异步渲染等场景,单位:毫秒 */\n time?: number;\n behavior?: 'auto' | 'smooth';\n}\n\nconst useVirtualScroll = (container: Ref, params: UseVirtualScrollParams) => {\n /** 注意测试:数据长度为空;数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n const visibleData = ref([]);\n // 用于显示表格列\n const translateY = ref((params.value.data?.length || 0) * (params.value.scroll?.rowHeight || 50));\n // 滚动高度,用于显示滚动条\n const scrollHeight = ref(0);\n // 已经通过节点渲染计算出来的各自行高\n // 不要使用响应式,数据量大时会产生卡顿\n let trHeightList: number[] = [];\n const containerHeight = ref(0);\n const containerWidth = ref(0);\n const startAndEndIndex = ref<[number, number]>([0, 15]);\n\n // 设置初始值\n const tScroll = computed(() => {\n const { scroll } = params.value;\n if (!scroll) return {};\n return {\n bufferSize: scroll.bufferSize || 10,\n isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n rowHeight: scroll.rowHeight || 47,\n threshold: scroll.threshold || 100,\n type: scroll.type,\n fixedRows: scroll.fixedRows ?? [0, 0],\n };\n });\n\n // 当前场景是否满足开启虚拟滚动的条件\n const isVirtualScroll = computed(() => {\n const { data } = params.value;\n return tScroll.value.type === 'virtual' && tScroll.value.threshold < data.length;\n });\n\n // 一次循环遍历中计算可视范围的相关信息,减少大数据量时的遍历开销\n function getVisibleRangeConfig() {\n const scrollTop = container.value?.scrollTop ?? 0;\n const fixedStart = tScroll.value.fixedRows[0];\n\n // 记录前置 buffer 的高度\n const prevBufferHeightList: number[] = [];\n // 没有被渲染的行的高度,用于设定容器的 translateY\n let hiddenHeight = 0;\n\n let visibleStart = -1;\n let visibleEnd = -1;\n\n let totalHeight = 0;\n\n for (let i = 0, len = params.value.data.length; i < len; i++) {\n const rowHeight = trHeightList[i] ?? tScroll.value.rowHeight;\n totalHeight = totalHeight + rowHeight;\n // 获取第一个可视范围内的元素\n if (totalHeight > scrollTop && visibleStart === -1) {\n visibleStart = i;\n if (visibleStart - tScroll.value.bufferSize > 0) {\n hiddenHeight = totalHeight - rowHeight - sum(prevBufferHeightList);\n }\n }\n if (visibleStart === -1) {\n prevBufferHeightList.push(rowHeight);\n if (prevBufferHeightList.length > tScroll.value.bufferSize) {\n prevBufferHeightList.shift();\n }\n }\n // 获取最后一个可视范围内的元素\n if (\n visibleEnd === -1 &&\n (totalHeight > containerHeight.value + scrollTop || i === params.value.data.length - 1)\n ) {\n visibleEnd = i;\n }\n\n if (visibleStart !== -1 && visibleEnd !== -1) {\n // 不再统计高度\n break;\n }\n }\n\n // 前后偏移 buffer\n const startIndex = max([visibleStart - tScroll.value.bufferSize, 0]);\n const endIndex = min([visibleEnd + tScroll.value.bufferSize, params.value.data.length]);\n\n // 以 sticky 定位渲染的固定行,会占据高度,影响整体高度\n const stickyHeight = sum(trHeightList.slice(0, Math.min(startIndex, fixedStart)));\n\n return {\n startIndex,\n endIndex,\n translateY: hiddenHeight - stickyHeight,\n };\n }\n\n const updateVisibleData = throttle(() => {\n // 计算前后的buffer偏移后的渲染数据\n const { startIndex, endIndex, translateY: translateYValue } = getVisibleRangeConfig();\n\n // 需要考虑固定行的情况\n const fixedRows = tScroll.value.fixedRows;\n const [fixedStart, fixedEnd] = fixedRows;\n let fixedStartData = fixedStart ? params.value.data.slice(0, fixedStart) : [];\n if (fixedStart && startIndex < fixedStart) {\n fixedStartData = fixedStartData.slice(0, startIndex);\n }\n let fixedEndData = fixedEnd ? params.value.data.slice(params.value.data.length - fixedEnd) : [];\n const bottomStartIndex = endIndex - params.value.data.length + 1 + (fixedEnd ?? 0);\n if (fixedEnd && bottomStartIndex > 0) {\n fixedEndData = fixedEndData.slice(bottomStartIndex);\n }\n\n if (startAndEndIndex.value.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n translateY.value = translateYValue;\n visibleData.value = fixedStartData.concat(params.value.data.slice(startIndex, endIndex), fixedEndData);\n startAndEndIndex.value = [startIndex, endIndex];\n }\n }, 100);\n\n // 固定高度场景,不需要通过行渲染获取高度(仅非固定高度场景需要)\n const handleRowMounted = (rowData: any) => {\n if (!isVirtualScroll.value || !rowData || tScroll.value.isFixedRowHeight || !container.value) return;\n const trHeight = rowData.ref.value?.getBoundingClientRect().height || tScroll.value.rowHeight;\n const rowIndex = rowData.data.VIRTUAL_SCROLL_INDEX;\n\n if (trHeightList[rowIndex] !== trHeight) {\n const diff = trHeight - trHeightList[rowIndex];\n trHeightList[rowIndex] = trHeight;\n // 采用 diff 的方式更新,不再遍历数组\n scrollHeight.value = scrollHeight.value + diff;\n }\n };\n\n const handleScroll = () => {\n if (!isVirtualScroll.value) return;\n updateVisibleData();\n };\n\n const refreshVirtualScroll = ([{ contentRect }]: [ResizeObserverEntry]) => {\n // 如果宽度发生变化,重置滚动位置\n if (params.value.preventResizeRefresh) return;\n const maxScrollbarWidth = 16;\n if (Math.abs(contentRect.width - containerWidth.value) > maxScrollbarWidth && !!container.value) {\n container.value.scrollTop = 0;\n translateY.value = 0;\n }\n containerWidth.value = contentRect.width;\n // 高度更新后,由 height 独立的 watch 触发可视区域的更新\n containerHeight.value = contentRect.height;\n };\n\n const addIndexToData = (data: any[]) => {\n data.forEach((item, index) => {\n // eslint-disable-next-line\n item['VIRTUAL_SCROLL_INDEX'] = index;\n });\n };\n\n const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n const scrollTop = sum(trHeightList.slice(0, index + 1)) - top;\n\n container.value.scrollTo({\n top: scrollTop,\n behavior: behavior || 'auto',\n });\n };\n\n /**\n * 滚动到指定元素(对外暴露的方法,谨慎修改)\n */\n const scrollToElement = (p: ScrollToElementParams) => {\n updateScrollTop(p);\n // 不同行高的表格需要异步计算\n if (!tScroll.value.isFixedRowHeight) {\n const duration = p.time ?? 60;\n const timer = setTimeout(() => {\n updateScrollTop(p);\n clearTimeout(timer);\n }, duration);\n }\n };\n\n // 如果初始化时 isVirtualScroll 为 false,undefined 的 ref 会导致无法监听元素高度变化\n useResizeObserver(\n computed(() => (isVirtualScroll.value ? container.value : undefined)),\n refreshVirtualScroll,\n );\n\n // 固定高度场景,可直接通过数据长度计算出最大滚动高度\n watch(\n () => [[...params.value.data], tScroll.value, isVirtualScroll.value, container.value],\n () => {\n if (!isVirtualScroll.value || !container.value) return;\n const { data } = params.value;\n addIndexToData(data);\n\n // 有可能初始化时,resize 监听没触发,尝试设置初始化容器高度\n containerHeight.value = container.value.getBoundingClientRect().height;\n\n if (trHeightList.length !== params.value.data.length) {\n // 暂时对于 table 和 tree 场景,信任之前缓存的行高\n // 后续优化可能提供一个参数,进行监听从而清除记录的行高会更好\n const initHeightList: number[] = Array.from(trHeightList);\n // 数据长度如果发生变化,裁剪高度记录的数组,避免算出异常的总高度\n initHeightList.length = params.value.data.length;\n initHeightList.fill(tScroll.value.rowHeight || 47);\n trHeightList = initHeightList;\n }\n\n scrollHeight.value = sum(trHeightList);\n\n // 清除记录的滚动顺序\n startAndEndIndex.value = [0, 0];\n updateVisibleData();\n },\n { immediate: true },\n );\n\n // 当容器高度变化后,重新计算可视区域数据\n watch(\n () => containerHeight.value,\n () => {\n updateVisibleData();\n },\n );\n\n return {\n visibleData,\n translateY,\n scrollHeight,\n isVirtualScroll,\n handleScroll,\n handleRowMounted,\n scrollToElement,\n };\n};\n\nexport type VirtualScrollConfig = ReturnType;\n\nexport default useVirtualScroll;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","// 在这个文件,解决 vue2/vue3 tree 组件依赖的差异问题\n// 除此文件之外的其他组件文件,可从 vue2 项目直接复制到 vue3 项目进行维护\nimport * as Vue from 'vue';\nimport { Ref, SetupContext, ToRefs, VNode, PropType, ComponentPublicInstance, UnwrapNestedRefs } from 'vue';\nimport { CheckboxProps } from '../checkbox';\nimport { ClassName, TScroll, Styles, TNode, TreeOptionData, TNodeReturnValue } from '../common';\nimport { TypeTreeEventState as TreeEventState } from '@tdesign/common-js/tree/types';\nimport { TdTreeProps, TreeInstanceFunctions } from './type';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport tdWithInstall from '../utils/withInstall';\nimport tdUseVModel from '../hooks/useVModel';\nimport tdUseDefaultValue from '../hooks/useDefaultValue';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\n\nexport { ref, reactive, computed, watch, onMounted, toRefs, defineComponent, TransitionGroup } from 'vue';\nexport { CaretRightSmallIcon as TdCaretRightSmallIcon } from 'tdesign-icons-vue-next';\nexport { Checkbox as TCheckBox } from '../checkbox';\nexport { Loading as TLoading } from '../loading';\nexport { useConfig, usePrefixClass } from '../hooks/useConfig';\nexport { useGlobalIcon } from '../hooks/useGlobalIcon';\nexport { default as useLazyLoad } from '../hooks/useLazyLoad';\nexport { default as useVirtualScroll } from '../hooks/useVirtualScrollNew';\nexport { TreeNode, privateKey } from '@tdesign/common-js/tree/tree-node';\nexport type TypeVModel = ReturnType;\n\nexport type TypeRef = Ref;\nexport type TypeSetupContext = SetupContext;\nexport type TypeCreateElement = typeof Vue.h;\nexport type TypeVNode = VNode;\nexport type TypePropType = PropType;\nexport type TypeCheckboxProps = CheckboxProps;\nexport type TypeClassName = ClassName;\nexport type TypeScroll = TScroll;\nexport type TypeStyles = Styles;\nexport type TypeTNode = TNode;\nexport type TypeTNodeReturnValue = TNodeReturnValue;\nexport type TypeTreeOptionData = TreeOptionData;\nexport type TypeTreeEventState = TreeEventState;\nexport type TypeVirtualScrollConfig = VirtualScrollConfig;\nexport type TypeToRefs = ToRefs;\nexport type TypeUnwrapNestedRefs = UnwrapNestedRefs;\nexport interface TypeTreeInstance extends ComponentPublicInstance, TreeInstanceFunctions {}\n\nexport type TreeProps = TdTreeProps & {\n treeStore?: TreeStore;\n};\n\nexport interface TypeOnDrag {\n default?: unknown;\n}\n\nconst onDrag: TypeOnDrag = {\n default: undefined,\n};\n\nexport const isVueNext = true;\n\nexport const TreeItemDefinition = {\n name: 'TTreeNode',\n inject: {\n onDrag,\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useRipple(el: unknown) {}\n\nexport function withInstall(construct: T) {\n return tdWithInstall(construct);\n}\n\nexport interface UseVModelParams {\n value: Ref;\n eventName?: string;\n propName?: string;\n}\n\nexport function getCreateElement(h?: TypeCreateElement) {\n if (h) {\n // do nothing, just for adapt\n }\n return Vue.h;\n}\n\nexport function getScopedSlots(instance: ComponentPublicInstance) {\n return instance.$slots;\n}\n\nexport function useVModel(\n props: TreeProps & Record,\n refsProps: ToRefs & Record,\n propName = 'value',\n defaultPropName = 'defaultValue',\n eventPropName = 'onChange',\n eventName = 'change',\n) {\n if (eventName) {\n // do nothing,just for adapt\n }\n const { modelValue } = refsProps;\n let vm;\n if (propName === 'value') {\n vm = tdUseVModel(refsProps[propName], modelValue, props[defaultPropName], props[eventPropName], propName);\n } else {\n vm = tdUseDefaultValue(refsProps[propName], props[defaultPropName], props[eventPropName], propName);\n }\n return vm;\n}\n","import { throttle } from 'lodash-es';\nimport { reactive } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\n\nexport interface TypeDragStates {\n isDragOver: boolean;\n isDragging: boolean;\n dropPosition: number;\n}\n\nexport enum DragPosition {\n Before = -1,\n Inside = 0,\n After = 1,\n}\n\ntype TypeDrag = 'dragStart' | 'dragOver' | 'dragLeave' | 'dragEnd' | 'drop';\n\nexport default function useDraggable(state: TypeTreeItemState) {\n const { treeItemRef } = state;\n const dragStates = reactive({\n isDragOver: false,\n isDragging: false,\n dropPosition: DragPosition.Inside,\n });\n\n const updateDropPosition = (dragEvent: DragEvent) => {\n const rootNode = treeItemRef.value;\n if (!rootNode) return;\n\n const rect = rootNode?.getBoundingClientRect?.();\n const offsetY = window.scrollY + rect.top;\n const { pageY } = dragEvent;\n const gapHeight = rect.height / 4;\n const diff = pageY - offsetY;\n\n if (diff < gapHeight) {\n dragStates.dropPosition = DragPosition.Before;\n } else if (diff < rect.height - gapHeight) {\n dragStates.dropPosition = DragPosition.Inside;\n } else {\n dragStates.dropPosition = DragPosition.After;\n }\n };\n\n const setDragStatus = (status: TypeDrag, dragEvent: DragEvent) => {\n const { node, treeScope } = state;\n const { drag } = treeScope;\n if (!drag) return;\n\n switch (status) {\n case 'dragStart':\n dragStates.isDragging = true;\n dragStates.dropPosition = DragPosition.Inside;\n drag.handleDragStart?.({ node, dragEvent });\n break;\n case 'dragEnd':\n dragStates.isDragging = false;\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragEnd?.({ node, dragEvent });\n break;\n case 'dragOver':\n dragStates.isDragOver = true;\n throttleUpdateDropPosition(dragEvent);\n drag.handleDragOver?.({ node, dragEvent });\n break;\n case 'dragLeave':\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragLeave?.({ node, dragEvent });\n break;\n case 'drop':\n drag.handleDrop?.({ node, dropPosition: dragStates.dropPosition, dragEvent });\n dragStates.isDragOver = false;\n throttleUpdateDropPosition.cancel();\n break;\n default:\n break;\n }\n };\n\n const handleDragStart = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragStart', evt);\n\n try {\n // ie throw error firefox-need-it\n evt.dataTransfer?.setData('text/plain', '');\n } catch (e) {\n // empty\n }\n };\n\n const handleDragEnd = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragEnd', evt);\n };\n\n const handleDragOver = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('dragOver', evt);\n };\n\n const handleDragLeave = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragLeave', evt);\n };\n\n const handleDrop = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('drop', evt);\n };\n\n const throttleUpdateDropPosition = throttle((dragEvent: DragEvent) => {\n updateDropPosition(dragEvent);\n });\n\n return {\n dragStates,\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n}\n","import { camelCase } from 'lodash-es';\nimport { TypeVNode, TypeSetupContext, isVueNext } from './adapt';\nimport {\n TreeProps,\n TypeTreeStore,\n TypeTreeNode,\n TypeMark,\n TypeLineModel,\n TypeTNodeProp,\n TypeGetTNodeOption,\n TypeTargetNode,\n} from './tree-types';\n\nexport function emitEvent(\n props: TreeProps & Record,\n context: TypeSetupContext,\n evtName: string,\n ...args: T\n) {\n const apiName = camelCase(`on-${evtName}`);\n evtName.replace(/^on/, '').toLowerCase();\n if (typeof props[apiName] === 'function') {\n props[apiName](...args);\n }\n if (!isVueNext) {\n // vue3 调用 props.onClick 时就已经派发了事件了\n context.emit(evtName, ...args);\n }\n}\n\nexport function getParentsToRoot(element?: HTMLElement, root?: HTMLElement): HTMLElement[] {\n const list = [];\n let el: HTMLElement = element;\n while (el && el.parentNode) {\n list.push(el);\n if (el === root) {\n break;\n }\n el = el.parentNode as HTMLElement;\n }\n return list;\n}\n\nexport function getParentMarks(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark[] {\n const list = getParentsToRoot(element, root);\n return list\n .map((el) => {\n const mark: TypeMark = {\n name,\n value: el?.getAttribute(name) || '',\n el,\n };\n return mark;\n })\n .filter((mark) => mark.value);\n}\n\nexport function getMark(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark {\n const list = getParentMarks(name, element, root);\n const info = list.pop() || null;\n return info;\n}\n\nexport function pathMatchClass(name: string, element?: HTMLElement, root?: HTMLElement): boolean {\n const list = getParentsToRoot(element, root);\n const rs = list.some((el) => el.classList.contains(name));\n return rs;\n}\n\nexport function getTNode(prop: TypeTNodeProp, options: TypeGetTNodeOption): string | TypeVNode {\n let tnode = null;\n let item = null;\n const conf = {\n ...options,\n };\n if (typeof prop === 'function') {\n item = prop(conf.createElement, conf.node?.getModel());\n } else if (typeof prop === 'string') {\n item = prop;\n }\n if (typeof item === 'string') {\n tnode = item;\n } else if (item) {\n tnode = item as TypeVNode;\n }\n return tnode;\n}\n\n// 获取一个节点层级位置的连线模型\nexport function getLineModel(nodes: TypeTreeNode[], node: TypeTreeNode, index: number): TypeLineModel {\n // 标记 [上,右,下,左] 是否有连线\n const lineModel: TypeLineModel = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n\n let nodeChildren = [];\n if (Array.isArray(node.children)) {\n nodeChildren = node.children;\n }\n const childNode = nodes[index - 1] || null;\n const nodeItemIndex = childNode ? childNode.getIndex() : 0;\n\n if (index === 0) {\n lineModel.left = !!node.parent;\n lineModel.bottom = node.children && node.expanded;\n lineModel.right = node.parent && !node.children;\n } else if (index === 1) {\n lineModel.top = true;\n lineModel.right = true;\n lineModel.bottom = nodeItemIndex < nodeChildren.length - 1;\n } else if (nodeItemIndex < nodeChildren.length - 1) {\n lineModel.top = true;\n lineModel.bottom = true;\n }\n\n return lineModel;\n}\n\nexport function isTreeNodeValue(item: unknown): boolean {\n return typeof item === 'string' || typeof item === 'number';\n}\n\nexport function getNode(store: TypeTreeStore, item: TypeTargetNode): TypeTreeNode {\n let node = null;\n let val = null;\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item && isTreeNodeValue(item.value)) {\n val = item.value;\n }\n node = store.getNode(val);\n return node;\n}\n","import { usePrefixClass } from '../adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../tree-types';\nimport { getNode, pathMatchClass } from '../util';\n\n// tree 组件节点状态设置\nexport default function useTreeAction(state: TypeTreeState) {\n const treeState = state;\n const { store } = treeState;\n const componentName = usePrefixClass('tree').value;\n\n const [tValue, setTValue] = state.vmValue;\n const [tActived, setTActived] = state.vmActived;\n const [tExpanded, setTExpanded] = state.vmExpanded;\n\n const setExpanded = (item: TypeTargetNode, isExpanded: boolean): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeExpandEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n const target = mouseEvent.target as HTMLElement;\n const currentTarget = mouseEvent.currentTarget as HTMLElement;\n if (pathMatchClass(`${componentName}__icon`, target, currentTarget)) {\n evtCtx.trigger = 'icon-click';\n }\n }\n const expanded = node.setExpanded(isExpanded, {\n directly: true,\n });\n setTExpanded(expanded, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceExpanded((tExpanded.value || []) as TreeNodeValue[]);\n }\n return expanded;\n };\n\n const toggleExpanded = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n\n if (!node.children) return;\n\n return setExpanded(node, !node.isExpanded());\n };\n\n const setActived = (item: TypeTargetNode, isActived: boolean) => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeActiveEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const actived = node.setActived(isActived, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTActived(actived, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceActived((tActived.value || []) as TreeNodeValue[]);\n }\n return actived;\n };\n\n const toggleActived = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n return setActived(node, !node.isActived());\n };\n\n const setChecked = (item: TypeTargetNode, isChecked: boolean, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = ctx?.e as MouseEvent;\n const evtCtx: TypeChangeEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const checked = node.setChecked(isChecked, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTValue(checked, evtCtx);\n // 这是针对受控执行的操作,如果 props.value 未变更,则执行还原操作\n if (evtCtx.trigger !== 'setItem') {\n store.replaceChecked((tValue.value || []) as TreeNodeValue[]);\n }\n return checked;\n };\n\n const toggleChecked = (item: TypeTargetNode, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n if (node.isIndeterminate()) {\n const expectState = node.hasEnableUnCheckedChild();\n return setChecked(node, expectState, ctx);\n }\n return setChecked(node, !node.isChecked(), ctx);\n };\n\n return {\n setExpanded,\n toggleExpanded,\n setActived,\n toggleActived,\n setChecked,\n toggleChecked,\n };\n}\n","import { TypeCheckboxProps, usePrefixClass } from '../adapt';\nimport { TypeEventState, TypeTreeItemState } from '../tree-types';\n// 这里封装 tree-item 的一般事件\n// 拖动事件,虚拟滚动事件不要安排到这里\nexport default function useItemEvents(state: TypeTreeItemState) {\n const { context } = state;\n const classPrefix = usePrefixClass().value;\n\n const handleChange: TypeCheckboxProps['onChange'] = (_, ctx) => {\n const { node } = state;\n const event = new Event('change');\n const evtContext: TypeEventState = {\n event,\n node,\n };\n context.emit('change', evtContext, ctx);\n };\n\n let clicked = false;\n\n const handleClick = (evt: MouseEvent) => {\n const { node, treeScope } = state;\n const { treeProps = {} } = treeScope;\n const { expandOnClickNode } = treeProps;\n const srcTarget = evt.target as HTMLElement;\n const isBranchTrigger =\n node.children &&\n expandOnClickNode &&\n (srcTarget.className === `${classPrefix}-checkbox__input` || srcTarget.tagName.toLowerCase() === 'input');\n\n // checkbox 上也有 emit click 事件\n // 用这个逻辑避免重复的 click 事件被触发\n if (clicked || isBranchTrigger) return;\n clicked = true;\n // 为保持事件响应敏捷,立即还原 clicked 状态\n setTimeout(() => {\n clicked = false;\n });\n\n // 处理expandOnClickNode时与checkbox的选中的逻辑冲突\n if (expandOnClickNode && node.children && srcTarget.className?.indexOf?.(`${classPrefix}-tree__label`) !== -1)\n evt.preventDefault();\n\n const evtContext: TypeEventState = {\n mouseEvent: evt,\n event: evt,\n node,\n path: node.getPath(),\n };\n context.emit('click', evtContext);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { usePrefixClass, useGlobalIcon, TypeCreateElement, TLoading, TdCaretRightSmallIcon } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点图标\nexport default function useRenderIcon(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const getFolderIcon = (h: TypeCreateElement) => {\n const { CaretRightSmallIcon } = useGlobalIcon({\n CaretRightSmallIcon: TdCaretRightSmallIcon,\n });\n return ;\n };\n\n const handleMousedown = (evt: MouseEvent) => {\n // 在点击展开按钮 mousedown阶段 阻止冒泡 应用于处理如展开阻止下拉框失焦等场景\n evt.preventDefault();\n };\n\n const renderIcon = (h: TypeCreateElement) => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { icon } = treeProps;\n let isDefaultIcon = false;\n\n let iconNode = null;\n if (icon === true) {\n if (scopedSlots?.icon) {\n iconNode = scopedSlots.icon({\n node: node?.getModel(),\n });\n } else if (!node.vmIsLeaf) {\n isDefaultIcon = true;\n iconNode = getFolderIcon(h);\n if (node.loading && node.expanded) {\n iconNode = ;\n }\n } else {\n iconNode = '';\n }\n } else if (icon) {\n iconNode = getTNode(icon, {\n createElement: h,\n node,\n });\n }\n\n const wrapIconNode = (\n \n {iconNode}\n \n );\n return wrapIconNode;\n };\n\n return {\n renderIcon,\n };\n}\n","import { isBoolean } from 'lodash-es';\nimport { usePrefixClass, TypeCreateElement, computed, TCheckBox, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\nimport useItemEvents from './useItemEvents';\n\n// 渲染节点文本与内容\nexport default function useRenderLabel(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleChange } = useItemEvents(state);\n\n const renderLabel = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots, treeProps = {} } = treeScope;\n const { label, expandOnClickNode } = treeProps;\n const checkProps = treeProps?.checkProps || {};\n\n let labelNode = null;\n if (label === true) {\n if (scopedSlots?.label) {\n labelNode = scopedSlots.label({\n node: node?.getModel(),\n });\n } else {\n labelNode = node.label || '';\n }\n } else {\n labelNode = getTNode(label, {\n createElement: h,\n node,\n });\n }\n\n const labelClasses = [\n `${componentName}__label`,\n {\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n },\n ];\n\n const shouldStopLabelTrigger = computed(() => {\n const isNormalBranchNode = Array.isArray(node.children) && node.children?.length > 0;\n // 延迟加载子节点场景\n const isLazyLoadChildBranchNode = isBoolean(node.children) && node.children;\n const isBranchNode = isNormalBranchNode || isLazyLoadChildBranchNode;\n return expandOnClickNode && isBranchNode;\n });\n\n if (node.vmCheckable) {\n let checkboxDisabled = false;\n if (node.vmIsLocked && !node.vmIsRest) {\n checkboxDisabled = true;\n }\n if (node.isDisabled()) {\n checkboxDisabled = true;\n }\n const itemCheckProps = {\n ...checkProps,\n disabled: checkboxDisabled,\n };\n\n labelNode = (\n \n {labelNode}\n \n );\n } else {\n const inner = {labelNode};\n // 使用key是为了避免元素复用,从而顺利移除ripple指令\n labelNode = node.isActivable() ? (\n \n {inner}\n \n ) : (\n \n {inner}\n \n );\n }\n\n return labelNode;\n };\n\n return {\n renderLabel,\n };\n}\n","import { onMounted, reactive, TypeCreateElement, usePrefixClass, useLazyLoad, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport useItemEvents from './useItemEvents';\nimport useRenderIcon from './useRenderIcon';\nimport useRenderLabel from './useRenderLabel';\nimport useRenderLine from './useRenderLine';\nimport useRenderOperations from './useRenderOperations';\nimport useDraggable from './useDraggable';\nimport { onUpdated } from 'vue';\n\nexport default function useTreeItem(state: TypeTreeItemState) {\n const { treeScope, treeItemRef } = state;\n const { virtualConfig, treeContentRef, scrollProps } = treeScope;\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleClick } = useItemEvents(state);\n const { renderIcon } = useRenderIcon(state);\n const { renderLabel } = useRenderLabel(state);\n const { renderLine } = useRenderLine(state);\n const { renderOperations } = useRenderOperations(state);\n const { dragStates, handleDragStart, handleDragEnd, handleDragOver, handleDragLeave, handleDrop } =\n useDraggable(state);\n\n const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n treeContentRef,\n treeItemRef,\n reactive({ ...scrollProps?.value }),\n );\n\n function tryNotifyVirtualScrollRowUpdate() {\n const { node } = state;\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n // mounted 了,但是有可能样式没有计算完毕,此时获取的 row height 会有坑,延迟一点点再触发虚拟滚动的 mounted 回调,确保获取到正确的渲染高度\n const timer = setTimeout(() => {\n virtualConfig.handleRowMounted({\n ref: treeItemRef,\n data: node,\n });\n clearTimeout(timer);\n }, 100);\n }\n }\n\n onMounted(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 有可能因为 row-key 带来组件复用,这时候通过 update 进行更新\n onUpdated(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 节点隐藏用 class 切换,不要写在 js 中\n const getItemStyles = (): string => {\n const { node } = state;\n const { level } = node;\n // 原本想在这里计算 --hscale\n // 实际操作中发现 scrollHeight 在动画执行到一半的时候取得了错误的值\n // 导致 hscale 值获取错误\n // 暂无合适的方案,先搁置 hscale 自动计算策略\n const levelStyle = `--level: ${level};`;\n const strStyle = `${levelStyle}`;\n return strStyle;\n };\n\n const getItemClassList = () => {\n const { node } = state;\n const { isDragOver, isDragging, dropPosition } = dragStates;\n const list = [];\n list.push(`${componentName}__item`);\n list.push({\n [`${componentName}__item--open`]: node.expanded,\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n [`${classPrefix}-is-disabled`]: node.isDisabled(),\n });\n list.push({\n [`${componentName}__item--draggable`]: node.isDraggable(),\n });\n if (node.visible) {\n list.push(`${componentName}__item--visible`);\n } else {\n list.push(`${componentName}__item--hidden`);\n }\n if (node.vmIsLocked) {\n list.push(`${componentName}__item--locked`);\n }\n if (node.vmIsRest) {\n list.push(`${componentName}__item--matched`);\n }\n // 拖拽过程样式相关classList\n list.push({\n [`${componentName}__item--dragging`]: isDragging,\n [`${componentName}__item--tip-top`]: isDragOver && dropPosition < 0,\n [`${componentName}__item--tip-bottom`]: isDragOver && dropPosition > 0,\n [`${componentName}__item--tip-highlight`]: !isDragging && isDragOver && dropPosition === 0,\n });\n return list;\n };\n\n const renderItem = (h: TypeCreateElement) => {\n const itemNodes: TypeVNode[] = [];\n // 第一步是渲染图标\n const iconNode = renderIcon(h);\n // 渲染连线排在渲染图标之后,是为了确认图标是否存在\n const lineNode = renderLine(h);\n if (lineNode) {\n itemNodes.push(lineNode);\n }\n if (iconNode) {\n itemNodes.push(iconNode);\n }\n const labelNode = renderLabel(h);\n if (labelNode) {\n itemNodes.push(labelNode);\n }\n const opNode = renderOperations(h);\n if (opNode) {\n itemNodes.push(opNode);\n }\n return itemNodes;\n };\n\n const renderItemNode = (h: TypeCreateElement) => {\n const { node, props } = state;\n if (!node) return null;\n\n const { level, value } = node;\n const styles = getItemStyles();\n const classList = getItemClassList();\n\n // 这里的代码用于 vue2 组件触发节点更新\n // 即使是新增的属性,调用 node.setData 也会触发节点更新\n const treeState = state;\n treeState.stateId = props.stateId;\n\n const itemNode = (\n handleClick(evt)}\n draggable={node.isDraggable()}\n onDragstart={(evt: DragEvent) => handleDragStart(evt)}\n onDragend={(evt: DragEvent) => handleDragEnd(evt)}\n onDragover={(evt: DragEvent) => handleDragOver(evt)}\n onDragleave={(evt: DragEvent) => handleDragLeave(evt)}\n onDrop={(evt: DragEvent) => handleDrop(evt)}\n >\n {hasLazyLoadHolder.value ? [
    ] : renderItem(h)}\n
    \n );\n return itemNode;\n };\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n renderItemNode,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TreeNode, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点连线\nexport default function useRenderLine(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderLine = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { line } = treeProps;\n const iconVisible = !!treeProps.icon;\n\n let lineNode = null;\n if (line === true) {\n if (scopedSlots?.line) {\n lineNode = scopedSlots.line({\n node: node?.getModel(),\n });\n } else if (node.parent && node.tree) {\n const { vmIsLeaf, vmIsFirst, level } = node;\n\n const lineClasses = [];\n\n // 每个节点绘制抵达上一层级的折线\n lineClasses.push(`${componentName}__line`);\n\n // 叶子节点,折线宽度延长,因为没有 icon 呈现\n // 任意节点,icon 不呈现时也是要延长折线宽度\n if (vmIsLeaf || !iconVisible) {\n lineClasses.push(`${componentName}__line--leaf`);\n }\n\n // 分支首节点,到上一节点的折线高度要缩短,让位给 icon 呈现\n // 如果 icon 隐藏了,则不必缩短折线高度\n if (vmIsFirst && iconVisible) {\n lineClasses.push(`${componentName}__line--first`);\n }\n\n // 如果节点的父节点,不是最后的节点\n // 则需要绘制节点延长线\n const shadowStyles: string[] = [];\n const parents = node.getParents();\n parents.pop();\n parents.forEach((pnode: TreeNode, index: number) => {\n if (!pnode.vmIsLast) {\n shadowStyles.push(`calc(-${index + 1} * var(--space)) 0 var(--color)`);\n }\n });\n\n const styles = {\n '--level': level ? String(level) : undefined,\n 'box-shadow': shadowStyles.join(','),\n };\n\n lineNode = ;\n }\n } else {\n lineNode = getTNode(line, {\n createElement: h,\n node,\n });\n }\n return lineNode as TypeVNode;\n };\n\n return {\n renderLine,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点操作区域\nexport default function useRenderOperations(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderOperations = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { operations } = treeProps;\n\n let opNode = null;\n if (scopedSlots?.operations) {\n opNode = scopedSlots.operations({\n node: node?.getModel(),\n });\n } else {\n opNode = getTNode(operations, {\n createElement: h,\n node,\n });\n }\n if (opNode) {\n opNode = (\n // TODO: 这里最好修改一下,改成 data-ignore 之类的\n // @ts-ignore\n \n {opNode}\n \n );\n }\n return opNode as TypeVNode;\n };\n\n return {\n renderOperations,\n };\n}\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '../utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport default function useLazyLoad(\n containerRef: Ref,\n childRef: Ref,\n params: UseLazyLoadParams,\n) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import {\n TypePropType,\n defineComponent,\n TypeCreateElement,\n ref,\n TreeItemDefinition,\n useRipple,\n getCreateElement,\n} from './adapt';\nimport { TypeTreeItemProps } from './tree-types';\nimport useItemState from './hooks/useItemState';\nimport useTreeItem from './hooks/useTreeItem';\n\nexport const treeItemProps = {\n stateId: {\n type: String as TypePropType,\n },\n itemKey: {\n type: String as TypePropType,\n },\n rowIndex: {\n type: Number as TypePropType,\n },\n treeScope: {\n type: Object as TypePropType,\n },\n};\n\nexport default defineComponent({\n props: treeItemProps,\n ...TreeItemDefinition,\n setup(props: TypeTreeItemProps, context) {\n const { state } = useItemState(props, context);\n const { treeItemRef } = state;\n const label = ref();\n useRipple(label);\n const { renderItemNode } = useTreeItem(state);\n\n return {\n treeItemRef,\n renderItemNode,\n };\n },\n render(h: TypeCreateElement) {\n const createElement = getCreateElement(h);\n // 这个类型判断看起来多此一举\n // 然而单元测试时没有它却会报错:\n // This expression is not callable. Type '{}' has no call signatures.\n if (typeof this.renderItemNode === 'function') {\n return this.renderItemNode(createElement);\n }\n return null;\n },\n});\n","import { ref, toRefs, TypeSetupContext } from '../adapt';\nimport { TypeTreeItemProps, TypeTreeItemState } from '../tree-types';\n\n// 提供公共对象\nexport default function useItemState(props: TypeTreeItemProps, context: TypeSetupContext) {\n const refProps = toRefs(props);\n const treeItemRef = ref(null);\n const { treeScope } = props;\n const { store } = treeScope;\n const node = store.privateMap.get(props.itemKey);\n\n const state: TypeTreeItemState = {\n stateId: props.stateId,\n props,\n context,\n treeScope,\n refProps,\n node,\n treeItemRef,\n };\n\n return {\n state,\n };\n}\n","import { ref, watch, TypeCreateElement, privateKey, TypeVNode } from '../adapt';\nimport { TypeTreeRow, TypeTreeNode, TypeTreeState } from '../tree-types';\nimport TreeItem from '../tree-item';\nimport useTreeEvents from './useTreeEvents';\n\n// tree 节点列表渲染\nexport default function useTreeNodes(state: TypeTreeState) {\n const { store, scope, allNodes, nodes, virtualConfig } = state;\n const { handleClick, handleChange } = useTreeEvents(state);\n const nodesEmpty = ref(false);\n // 用于存储已呈现节点的缓存\n const cacheMap = new Map();\n\n const refresh = () => {\n allNodes.value = store.getNodes();\n };\n\n const refreshVisibleNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) return;\n // 非虚拟滚动,渲染可视节点\n const list: TypeTreeNode[] = [];\n // 非虚拟滚动,缓存曾经展示过的节点\n let hasVisibleNode = false;\n allNodes.value.forEach((node: TypeTreeNode) => {\n if (node.visible) {\n // 曾经展示过的节点加入缓存,避免再次创建\n hasVisibleNode = true;\n cacheMap.set(node.value, node.value);\n }\n if (cacheMap.has(node.value)) {\n // 创建的节点是缓存的节点\n list.push(node);\n }\n });\n cacheMap.forEach((value) => {\n // 在缓存中清理结构变化后不存在的节点\n if (!store.getNode(value)) {\n cacheMap.delete(value);\n }\n });\n // 渲染为平铺列表\n nodes.value = list;\n nodesEmpty.value = !hasVisibleNode;\n };\n\n const refreshVirtualNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (!isVirtual) return;\n // 虚拟滚动只渲染可见节点\n const list = virtualConfig.visibleData.value;\n nodes.value = list;\n nodesEmpty.value = list.length <= 0;\n };\n\n // 创建单个 tree 节点\n const renderItem = (h: TypeCreateElement, node: TypeTreeRow, index: number, stateId: string) => {\n const rowIndex = node.VIRTUAL_SCROLL_INDEX || index;\n const nodeUniqueId = node[privateKey];\n // vue3 中,不使用动画时,传递 node, 或者单纯传递 itemKey 无法触发 treeItem 的 render 方法\n // 考虑到有必要对所有节点状态更新,所以添加 stateId 属性,专门用于触发 treeItem 的 render 方法\n // 使用动画时,transition group 触发了所有节点的 render 方法,回头可以研究看下更合适的方案\n // 未来也可以根据节点数据的具体更新状态,来决定节点更新与否\n // 考虑到 value 值有冲突可能,所以使用 privateKey 来作为节点标记\n const treeItem = (\n \n );\n return treeItem;\n };\n\n const renderTreeNodes = (h: TypeCreateElement) => {\n const stateId = `render-${new Date().getTime()}`;\n const treeNodeViews: TypeVNode[] = nodes.value.map((node: TypeTreeNode, index) =>\n renderItem(h, node, index, stateId),\n );\n return treeNodeViews;\n };\n\n watch(allNodes, refreshVisibleNodes);\n watch(virtualConfig.visibleData, refreshVirtualNodes);\n\n refresh();\n refreshVisibleNodes();\n refreshVirtualNodes();\n store.emitter.on('update', refresh);\n\n return {\n nodesEmpty,\n renderTreeNodes,\n };\n}\n","import { TreeProps, TypeTreeState, TypeEventState } from '../tree-types';\nimport { getMark, emitEvent } from '../util';\nimport useTreeAction from './useTreeAction';\n\n// tree 组件一般事件处理\nexport default function useTreeEvents(state: TypeTreeState) {\n const treeState = state;\n const { props, context } = treeState;\n const { toggleExpanded, toggleActived, toggleChecked } = useTreeAction(state);\n\n const handleClick = (evtState: TypeEventState) => {\n const { mouseEvent, event, node } = evtState;\n if (!node || !mouseEvent) return;\n\n // 用于向内部方法传递事件对象\n treeState.mouseEvent = mouseEvent;\n\n let shouldExpand = props.expandOnClickNode;\n let shouldActive = !props.disabled && !node.disabled && node.isActivable();\n\n // 给节点添加属性 trigger=\"expand,active\", ignore=\"expand,active\"\n // 来确认或者屏蔽动作\n ['trigger', 'ignore'].forEach((markName) => {\n const mark = getMark(markName, event.target as HTMLElement, event.currentTarget as HTMLElement);\n const markValue = mark?.value || '';\n if (markValue.indexOf('expand') >= 0) {\n // 路径节点包含了 trigger=\"expand\" ignore=\"expand\"\n if (markName === 'trigger') {\n shouldExpand = true;\n } else if (markName === 'ignore') {\n shouldExpand = false;\n }\n }\n if (markValue.indexOf('active') >= 0) {\n // 路径节点包含了 trigger=\"active\" ignore=\"active\"\n if (markName === 'ignore') {\n shouldActive = false;\n }\n }\n });\n\n if (shouldExpand) {\n toggleExpanded(node);\n }\n\n if (shouldActive) {\n toggleActived(node);\n }\n\n const evtCtx = {\n node: node.getModel(),\n e: mouseEvent,\n };\n emitEvent>(props, context, 'click', evtCtx);\n\n treeState.mouseEvent = null;\n };\n\n const handleChange = (evtState: TypeEventState, ctx: { e: Event }) => {\n const { disabled } = props;\n const { node } = evtState;\n if (!node || disabled || node.disabled || !node.isCheckable()) {\n return;\n }\n toggleChecked(node, ctx);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { computed, onMounted, TypeRef, useVirtualScroll, TypeScroll, TreeNode } from '../adapt';\nimport { get } from 'lodash-es';\nimport { TypeTreeState, TypeTimer } from '../tree-types';\nimport log from '@tdesign/common-js/log/index';\n\nimport type { ComponentScrollToElementParams } from '../../common';\n\n// tree 虚拟滚动整合\nexport default function useTreeScroll(state: TypeTreeState) {\n const treeState = state;\n const { props, context, allNodes, nodes, scope, treeContentRef, isScrolling } = treeState;\n\n const scrollProps: TypeRef = computed(() => ({\n // 默认一行高度为 34px\n rowHeight: 34,\n ...props.scroll,\n }));\n scope.scrollProps = scrollProps;\n\n // 虚拟滚动\n const virtualScrollParams = computed(() => {\n const list = allNodes.value.filter((node: TreeNode) => node.visible);\n return {\n data: list,\n scroll: scrollProps.value,\n preventResizeRefresh: true,\n };\n });\n\n const virtualConfig = useVirtualScroll(treeContentRef, virtualScrollParams);\n scope.virtualConfig = virtualConfig;\n treeState.virtualConfig = virtualConfig;\n\n onMounted(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n virtualConfig.handleScroll();\n }\n });\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScroll?.({ e });\n // Vue3 ignore next line\n context.emit('scroll', { e });\n };\n\n // 设置滚动结束状态\n let scrollStopTimer: TypeTimer = null;\n const setScrolling = () => {\n isScrolling.value = true;\n if (scrollStopTimer) {\n clearTimeout(scrollStopTimer);\n scrollStopTimer = null;\n }\n scrollStopTimer = setTimeout(() => {\n scrollStopTimer = null;\n isScrolling.value = false;\n }, 100);\n };\n\n let lastScrollY = 0;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n setScrolling();\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n if (isVirtual) {\n virtualConfig.handleScroll();\n nodes.value = virtualConfig.visibleData.value;\n }\n } else {\n lastScrollY = 0;\n }\n lastScrollY = top;\n emitScrollEvent(e);\n };\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n let index = params.index;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Tree', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = allNodes.value?.findIndex((item) =>\n [get(item.data, 'key'), get(item.data, props.keys?.['value'] || 'value')].includes(params.key),\n );\n if (index < 0) {\n log.error('Tree', `${params.key} does not exist in data, check \\`key\\` or \\`data\\` please.`);\n return;\n }\n }\n virtualConfig.scrollToElement({ ...params, index: index - 1 });\n };\n return {\n // 虚拟滚动相关\n treeContentRef,\n onInnerVirtualScroll,\n virtualConfig,\n scrollToElement: handleScrollTo,\n };\n}\n","import { computed, TypeStyles, usePrefixClass } from '../adapt';\nimport { TypeTreeState } from '../tree-types';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useTreeStyles(state: TypeTreeState) {\n const { props } = state;\n const componentName = usePrefixClass('tree').value;\n const classPrefix = usePrefixClass().value;\n const { virtualConfig, isScrolling, refProps } = state;\n\n const { height, maxHeight } = refProps;\n\n const treeClasses = computed(() => {\n const list: Array = [componentName];\n const { disabled, hover, transition, checkable, draggable, expandOnClickNode, scroll } = props;\n if (disabled) {\n list.push(`${classPrefix}-is-disabled`);\n }\n if (hover) {\n list.push(`${componentName}--hoverable`);\n }\n if (checkable) {\n list.push(`${componentName}--checkable`);\n }\n if (draggable) {\n list.push(`${componentName}--draggable`);\n }\n if (transition) {\n list.push(`${componentName}--transition`);\n }\n if (expandOnClickNode) {\n list.push(`${componentName}--block-node`);\n }\n\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n list.push(`${componentName}__vscroll`);\n if (isScrolling.value) {\n list.push(`${componentName}--scrolling`);\n }\n } else if (scroll && scroll.type === 'lazy') {\n list.push(`${componentName}__lazyload`);\n }\n\n return list;\n });\n\n const treeContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n overflowY: formatCSSUnit(height.value) || formatCSSUnit(maxHeight.value) ? 'auto' : undefined,\n }));\n\n const scrollStyles = computed(() => {\n // isVirtual 改为函数内取值,可接收属性的变动\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const transform = `translateY(${translateY}px)`;\n const posStyle = {\n transform,\n '-ms-transform': transform,\n '-moz-transform': transform,\n '-webkit-transform': transform,\n };\n return posStyle;\n });\n\n const cursorStyles = computed(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const translate = `translate(0, ${translateY}px)`;\n return {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n };\n });\n\n return {\n treeClasses,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 节点是否可高亮 */\n activable: Boolean,\n /** 是否允许多个节点同时高亮 */\n activeMultiple: Boolean,\n /** 高亮的节点值 */\n actived: {\n type: Array as PropType,\n default: undefined as TdTreeProps['actived'],\n },\n /** 高亮的节点值,非受控属性 */\n defaultActived: {\n type: Array as PropType,\n },\n /** 判断节点是否可以执行 drop 操作,泛型 `T` 表示树节点 TS 类型 */\n allowDrop: {\n type: Function as PropType,\n },\n /** 是否允许在过滤时节点折叠节点 */\n allowFoldNodeOnFilter: Boolean,\n /** 透传属性到 checkbox 组件。参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 隐藏节点复选框 */\n checkable: Boolean,\n /** 树数据,泛型 `T` 表示树节点 TS 类型 */\n data: {\n type: Array as PropType,\n default: (): TdTreeProps['data'] => [],\n },\n /** 禁用复选框,可支持禁用不同的行 */\n disableCheck: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['disableCheck'],\n },\n /** 是否禁用树操作 */\n disabled: Boolean,\n /** 节点是否可拖拽 */\n draggable: Boolean,\n /** 数据为空时展示的文本 */\n empty: {\n type: [String, Function] as PropType,\n default: '' as TdTreeProps['empty'],\n },\n /** 是否展开全部节点 */\n expandAll: Boolean,\n /** 默认展开的级别,第一层为 0 */\n expandLevel: {\n type: Number,\n default: 0,\n },\n /** 同级别展开互斥,手风琴效果 */\n expandMutex: Boolean,\n /** 是否支持点击节点也能展开收起 */\n expandOnClickNode: Boolean,\n /** 展开子节点时是否自动展开父节点 */\n expandParent: Boolean,\n /** 展开的节点值 */\n expanded: {\n type: Array as PropType,\n default: undefined as TdTreeProps['expanded'],\n },\n /** 展开的节点值,非受控属性 */\n defaultExpanded: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultExpanded'] => [],\n },\n /** 节点过滤方法,只呈现返回值为 true 的节点,泛型 `T` 表示树节点 TS 类型 */\n filter: {\n type: Function as PropType,\n },\n /** 树的高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px。如果不是绝对固定树的高度,建议使用 `maxHeight` */\n height: {\n type: [String, Number] as PropType,\n },\n /** 节点是否有悬浮状态 */\n hover: Boolean,\n /** 节点图标,可自定义 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdTreeProps['icon'],\n },\n /** 用来定义 `value / label / disabled / children` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }`。其中,disabled 待开发。 */\n keys: {\n type: Object as PropType,\n },\n /** 自定义节点内容,值为 `false` 不显示,值为 `true` 显示默认 label,值为字符串直接输出该字符串。泛型 `T` 表示树节点 TS 类型。
    如果期望只有点击复选框才选中,而点击节点不选中,可以使用 `label` 自定义节点,然后加上点击事件 `e.preventDefault()`,通过调整自定义节点的宽度和高度决定禁止点击选中的范围 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdTreeProps['label'],\n },\n /** 延迟加载 children 为 true 的节点的子节点数据,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 连接线。值为 false 不显示连接线;值为 true 显示默认连接线;值类型为 Function 表示自定义连接线 */\n line: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['line'],\n },\n /** 加载子数据的方法,在展开节点时调用(仅当节点 children 为 true 时生效),泛型 `T` 表示树节点 TS 类型 */\n load: {\n type: Function as PropType,\n },\n /** 树的最大高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px */\n maxHeight: {\n type: [String, Number] as PropType,\n },\n /** 自定义节点操作项,泛型 `T` 表示树节点 TS 类型 */\n operations: {\n type: Function as PropType,\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 节点展开折叠时是否使用过渡动画 */\n transition: {\n type: Boolean,\n default: true,\n },\n /** 选中值,组件为可选状态时有效 */\n value: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n /** 选中值,组件为可选状态时有效,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultValue'] => [],\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdTreeProps['valueMode'],\n validator(val: TdTreeProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 节点激活时触发,泛型 `T` 表示树节点 TS 类型 */\n onActive: Function as PropType,\n /** 节点选中状态变化时触发,context.node 表示当前变化的选项,泛型 `T` 表示树节点 TS 类型 */\n onChange: Function as PropType,\n /** 节点点击时触发,泛型 `T` 表示树节点 TS 类型 */\n onClick: Function as PropType,\n /** 节点结束拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragEnd: Function as PropType,\n /** 节点拖拽时离开目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragLeave: Function as PropType,\n /** 节点拖拽到目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragOver: Function as PropType,\n /** 节点开始拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragStart: Function as PropType,\n /** 节点在目标元素上释放时触发,泛型 `T` 表示树节点 TS 类型 */\n onDrop: Function as PropType,\n /** 节点展开或收起时触发,泛型 `T` 表示树节点 TS 类型 */\n onExpand: Function as PropType,\n /** 异步加载后触发,泛型 `T` 表示树节点 TS 类型 */\n onLoad: Function as PropType,\n /** 滚动事件 */\n onScroll: Function as PropType,\n};\n","import { isFunction } from 'lodash-es';\nimport { upperFirst } from 'lodash-es';\nimport { renderTNodeJSX } from '../utils/render-tnode';\nimport {\n defineComponent,\n getCreateElement,\n getScopedSlots,\n TransitionGroup,\n TreeNode,\n TypeCreateElement,\n TypeStyles,\n TypeTNodeReturnValue,\n TypeTreeOptionData,\n useConfig,\n usePrefixClass,\n} from './adapt';\nimport useDragHandle from './hooks/useDragHandle';\nimport useTreeAction from './hooks/useTreeAction';\nimport useTreeNodes from './hooks/useTreeNodes';\nimport useTreeScroll from './hooks/useTreeScroll';\nimport useTreeState from './hooks/useTreeState';\nimport useTreeStore from './hooks/useTreeStore';\nimport useTreeStyles from './hooks/useTreeStyles';\nimport props from './props';\nimport { TreeNodeState, TreeNodeValue, TypeTreeNodeModel } from './tree-types';\nimport { getNode } from './util';\n\n// 2022.11.02 tabliang 备注\n// 之前尝试实现了嵌套布局,原本预期嵌套布局能够提升大数据量下,全部渲染节点时的性能表现\n// 实测性能提升有限,不如使用虚拟滚动的收益高,反而导致了组件的维护困难与混乱\n// 自 2022 年初首次提出嵌套布局要求,大半年以来,对嵌套布局的需求也不是很高\n// 因此废弃嵌套布局方案,之后重点解决虚拟滚动能力\n\nexport default defineComponent({\n name: 'TTree',\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n ...props,\n },\n\n setup(props, context) {\n const { t, global } = useConfig('tree');\n const classPrefix = usePrefixClass();\n const componentName = usePrefixClass('tree');\n\n // 用于 hooks 传递数据\n const { state } = useTreeState(props, context);\n const { treeContentRef, isScrolling } = state;\n const { store, updateStoreConfig, rebuild } = useTreeStore(state);\n\n useDragHandle(state);\n const { setActived, setExpanded, setChecked } = useTreeAction(state);\n const { onInnerVirtualScroll, virtualConfig, scrollToElement } = useTreeScroll(state);\n const { renderTreeNodes, nodesEmpty } = useTreeNodes(state);\n const { treeClasses, treeContentStyles, scrollStyles, cursorStyles } = useTreeStyles(state);\n\n // 不想暴露给用户的属性与方法,统一挂载到 setup 返回的对象上\n // 实例上无法直接访问这些方法与属性\n return {\n t,\n global,\n classPrefix,\n componentName,\n state,\n store,\n treeClasses,\n treeContentRef,\n\n rebuild,\n updateStoreConfig,\n setActived,\n setExpanded,\n setChecked,\n renderTreeNodes,\n nodesEmpty,\n\n isScrolling,\n onInnerVirtualScroll,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n virtualConfig,\n scrollToElement: scrollToElement, // deprecated\n scrollTo: scrollToElement,\n };\n },\n\n watch: {\n // 实测发现,composition api 中的 refsProps watch ,回调时间迟于 $nextTick 回调\n // 因此改为在这里绑定 data 属性监听,实测这里的 watch 回调,早于 $nextTick 回调发生\n data(list) {\n this.rebuild(list);\n },\n },\n // 在 methods 提供公共方法\n // 实例上可以直接访问\n methods: {\n // 刷新树节点状态\n refresh(): void {\n this.store.refreshState();\n },\n // 设置目标节点状态\n setItem(value: TreeNodeValue, options: TreeNodeState): void {\n const node: TreeNode = this.store.getNode(value);\n const spec = options;\n const keys = Object.keys(spec);\n if (node && spec) {\n ['expanded', 'actived', 'checked'].forEach((name) => {\n if (keys.includes(name)) {\n const val = spec[name as keyof typeof spec];\n delete spec[name as keyof typeof spec];\n const methodName = `set${upperFirst(name)}`;\n const setupMethod = this[methodName];\n if (isFunction(setupMethod)) {\n setupMethod.call(this, node, val);\n }\n }\n });\n node.set(spec);\n }\n },\n // 获取目标节点\n getItem(value: TreeNodeValue): TypeTreeNodeModel {\n const node: TreeNode = this.store.getNode(value);\n return node?.getModel();\n },\n // 无 value 参数: 获取 tree 所有节点,一维结构\n // 传递 value 参数: 获取节点值对应的目标节点下,包含自己在内的所有子节点\n getItems(value?: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getNodes(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 将节点数据插入到目标节点\n // 无目标节点,则插入为根节点\n appendTo(para?: TreeNodeValue, item?: TypeTreeOptionData | TypeTreeOptionData[]) {\n const { store } = this;\n let list = [];\n if (Array.isArray(item)) {\n list = item;\n } else {\n list = [item];\n }\n list.forEach((item) => {\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.appendNodes(para, node);\n } else {\n store.appendNodes(para, item);\n }\n });\n },\n // 在指定节点之前插入单个节点数据\n insertBefore(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertBefore(value, node);\n } else {\n store.insertBefore(value, item);\n }\n },\n // 在指定节点之后插入单个节点数据\n insertAfter(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertAfter(value, node);\n } else {\n store.insertAfter(value, item);\n }\n },\n // 移除目标节点\n remove(value?: TreeNodeValue) {\n return this.store.remove(value);\n },\n // 获取节点在当前层级的 index\n getIndex(value: TreeNodeValue): number {\n return this.store.getNodeIndex(value);\n },\n // 获取父节点\n getParent(value: TreeNodeValue): TypeTreeNodeModel {\n const node = this.store.getParent(value);\n return node?.getModel();\n },\n // 获取父节点列表\n getParents(value: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getParents(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 获取路径节点列表\n getPath(value: TreeNodeValue): TypeTreeNodeModel[] {\n const node = this.store.getNode(value);\n let pathNodes: TypeTreeNodeModel[] = [];\n if (node) {\n pathNodes = node.getPath().map((node: TreeNode) => node.getModel());\n }\n return pathNodes;\n },\n // 提供树结构原始数据\n getTreeData(value?: TreeNodeValue): TypeTreeOptionData[] {\n let list: TreeNode[] = [];\n if (value) {\n const node = this.store.getNode(value);\n if (!node) return [];\n list = this.store.getNodes(value);\n } else {\n list = this.store.getNodes();\n }\n // 一维结构树节点转树结构数据\n const nodeMap: Record = {};\n const treeNodes: TypeTreeOptionData[] = [];\n list.forEach((item: TreeNode) => {\n const { value } = item;\n const itemData = {\n ...item.data,\n value,\n };\n if (itemData.children !== true) {\n delete itemData.children;\n }\n nodeMap[value] = itemData;\n const parent = item.getParent();\n if (!parent) {\n // 是根节点\n treeNodes.push(itemData);\n } else {\n const parentData = nodeMap[parent.value];\n if (!parentData) {\n // 为目标节点范围内的根节点\n treeNodes.push(itemData);\n } else {\n if (!Array.isArray(parentData.children)) {\n parentData.children = [];\n }\n parentData.children.push(itemData);\n }\n }\n });\n return treeNodes;\n },\n },\n render(h: TypeCreateElement) {\n const {\n state,\n treeClasses,\n updateStoreConfig,\n renderTreeNodes,\n nodesEmpty,\n isScrolling,\n virtualConfig,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n } = this;\n\n const createElement = getCreateElement(h);\n\n const { scope, allNodes, refProps } = state;\n // 更新 scopedSlots\n scope.scopedSlots = getScopedSlots(this);\n\n updateStoreConfig();\n\n const treeNodeViews = renderTreeNodes(createElement);\n const cname = this.componentName;\n const isVirtual = virtualConfig.isVirtualScroll.value;\n\n // 空数据判定\n let emptyNode: TypeTNodeReturnValue = null;\n if (nodesEmpty) {\n const useLocale = !this.empty && !this.$slots.empty;\n const emptyContent = useLocale ? this.t(this.global.empty) : renderTNodeJSX(this, 'empty');\n emptyNode =
    {emptyContent}
    ;\n } else if (treeNodeViews.length <= 0) {\n // 数据切换时,有闪现的缓存节点呈现\n // 用这个替换内容置空\n emptyNode =
    ;\n }\n\n // 构造列表\n const { $props } = this;\n const { transition } = $props;\n\n let treeNodeList = null;\n if (!transition || (isVirtual && isScrolling)) {\n // vue3 不使用 transition group 会导致展开收起动作异常\n treeNodeList = (\n
    \n {treeNodeViews}\n
    \n );\n } else {\n // 启用动画时,需要确保滚动中动画样式失效\n treeNodeList = (\n \n {treeNodeViews}\n \n );\n }\n\n const topValue =\n (allNodes.value?.filter((node) => node.visible).length ?? 0) * (refProps.scroll.value?.rowHeight ?? 34);\n const placeholderStyles: TypeStyles = {\n width: '1px',\n height: '1px',\n opacity: 0,\n pointerEvents: 'none',\n position: 'absolute',\n left: 0,\n top: `${topValue}px`,\n };\n\n const placeholderEl =
    ;\n\n const treeNode = (\n
    \n {isVirtual &&
    }\n {emptyNode || treeNodeList}\n {isVirtual && placeholderEl}\n
    \n );\n\n return treeNode;\n },\n});\n","import { ref, TypeRef, TreeNode, useVModel, toRefs, TypeSetupContext } from '../adapt';\nimport { TreeProps, TypeTreeStore, TypeTreeState } from '../tree-types';\n\n// 提供公共对象\nexport default function useTreeState(props: TreeProps, context: TypeSetupContext) {\n const treeContentRef = ref();\n const nodes: TypeRef = ref([]);\n const allNodes: TypeRef = ref([]);\n const isScrolling: TypeRef = ref(false);\n\n const refProps = toRefs(props);\n const vmValue = useVModel(props, refProps, 'value', 'defaultValue', 'onChange', 'change');\n const vmActived = useVModel(props, refProps, 'actived', 'defaultActived', 'onActive', 'active');\n const vmExpanded = useVModel(props, refProps, 'expanded', 'defaultExpanded', 'onExpand', 'expand');\n\n function setStore(store: TypeTreeStore) {\n state.store = store;\n state.scope.store = store;\n allNodes.value = store.getNodes();\n }\n\n const state: TypeTreeState = {\n props,\n context,\n // tree 数据对象\n store: null,\n // 内容根节点\n treeContentRef,\n // 渲染节点\n nodes,\n // 所有节点\n allNodes,\n // 是否正在滚动\n isScrolling,\n // 缓存点击事件\n mouseEvent: null,\n // 虚拟滚动对象\n virtualConfig: null,\n // 缓存与节点共享的关联对象\n scope: {\n store: null,\n treeContentRef,\n treeProps: props,\n scopedSlots: {},\n virtualConfig: null,\n },\n setStore,\n refProps,\n vmValue,\n vmActived,\n vmExpanded,\n };\n\n return {\n state,\n };\n}\n","import { pick } from 'lodash-es';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\nimport { watch, TypeRef } from '../adapt';\nimport {\n TreeProps,\n TypeValueMode,\n TreeNodeValue,\n TypeEventState,\n TypeTreeNodeModel,\n TypeTreeNode,\n TypeTNodeValue,\n TypeTreeState,\n} from '../tree-types';\n\nexport default function useTreeStore(state: TypeTreeState) {\n const { props, context, refProps } = state;\n const { valueMode, filter, keys } = props;\n\n const store: TreeStore = new TreeStore({\n valueMode: valueMode as TypeValueMode,\n filter,\n });\n\n // tValue 就是 refProps.value\n const tValue = state.vmValue[0] as TypeRef;\n // tActived 就是 refProps.actived\n const tActived = state.vmActived[0] as TypeRef;\n // tExpanded 就是 refProps.expanded\n const tExpanded = state.vmExpanded[0] as TypeRef;\n\n // 同步 Store 选项\n const updateStoreConfig = () => {\n // 统一更新选项,然后在 store 统一识别属性更新\n // 注意: keys 属性比较特殊,不应该在实例化之后再次变更\n const storeProps = pick(props, [\n 'expandAll',\n 'expandLevel',\n 'expandMutex',\n 'expandParent',\n 'activable',\n 'activeMultiple',\n 'disabled',\n 'disableCheck',\n 'checkable',\n 'draggable',\n 'checkStrictly',\n 'load',\n 'lazy',\n 'valueMode',\n 'filter',\n 'allowFoldNodeOnFilter',\n ]);\n store.setConfig(storeProps);\n };\n\n const updateExpanded = () => {\n const { expandParent } = props;\n if (!Array.isArray(tExpanded.value)) return;\n // 初始化展开状态\n // 校验是否自动展开父节点\n const expandedMap = new Map();\n tExpanded.value.forEach((val) => {\n expandedMap.set(val, true);\n if (expandParent) {\n const node = store.getNode(val);\n if (node) {\n node\n .getModel()\n .getParents()\n .forEach((tn: TypeTreeNodeModel) => {\n expandedMap.set(tn.value, true);\n });\n }\n }\n });\n const expandedArr = Array.from(expandedMap.keys());\n store.setExpanded(expandedArr);\n };\n\n let filterChanged = false;\n let prevExpanded: null | TypeTNodeValue[] = null;\n\n // store 的 update 方法触发后,可以拿到搜索命中节点的路径节点\n // 所以在 update 之后检查,如果之前 filter 有变更,则检查路径节点是否需要展开\n // 如果 filter 属性被清空,则重置为开启搜索之前的结果\n const expandFilterPath = () => {\n if (!props.allowFoldNodeOnFilter) return;\n if (!filterChanged) return;\n // 确保 filter 属性未变更时,不会重复检查展开状态\n filterChanged = false;\n\n if (props.filter) {\n if (!prevExpanded) {\n // 缓存之前的展开状态\n prevExpanded = store.getExpanded();\n }\n\n // 展开搜索命中节点的路径节点\n const pathValues: TypeTNodeValue[] = [];\n const allNodes: TypeTreeNode[] = store.getNodes();\n allNodes.forEach((node: TypeTreeNode) => {\n if (node.vmIsLocked) {\n pathValues.push(node.value);\n }\n });\n store.setExpanded(pathValues);\n } else if (prevExpanded) {\n // filter 属性置空,该还原之前的展开状态了\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n };\n\n // 这个方法监听 filter 属性,仅在 allowFoldNodeOnFilter 属性为 true 时生效\n // 仅在 filter 属性发生变更时开启检查开关,避免其他操作也触发展开状态的重置\n const checkFilterExpand = (newFilter: null | Function, previousFilter: null | Function) => {\n if (!props.allowFoldNodeOnFilter) return;\n filterChanged = newFilter !== previousFilter;\n };\n\n const handleLoad = (info: TypeEventState) => {\n const { node } = info;\n const evtCtx = {\n node: node.getModel(),\n };\n if (Array.isArray(tValue.value) && tValue.value.length > 0) {\n store.replaceChecked(tValue.value);\n }\n if (Array.isArray(tExpanded.value) && tExpanded.value.length > 0) {\n store.replaceExpanded(tExpanded.value);\n }\n if (Array.isArray(tActived.value) && tActived.value.length > 0) {\n store.replaceActived(tActived.value);\n }\n if (props?.onLoad) {\n props?.onLoad(evtCtx);\n }\n context.emit('load', evtCtx);\n };\n\n const rebuild = (list: TreeProps['data']) => {\n store.reload(list || []);\n store.refreshNodes();\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n // 更新展开状态\n updateExpanded();\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n // 刷新节点状态\n store.refreshState();\n };\n\n function initStore() {\n // keys 属性比较特殊,不应该在实例化之后再次变更\n store.setConfig({\n keys,\n });\n updateStoreConfig();\n store.append(props.data || []);\n\n // 刷新节点,必须在配置选中之前执行\n // 这样选中态联动判断才能找到父节点\n store.refreshNodes();\n\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n\n // 更新节点展开状态\n updateExpanded();\n\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n\n store.emitter.on('load', handleLoad);\n store.emitter.on('update', expandFilterPath);\n }\n\n // 初始化 store\n initStore();\n // 设置初始化状态\n state.setStore(store);\n // 配置属性监听\n watch(\n () => [...(tValue.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceChecked(nVal);\n },\n );\n watch(\n () => [...(tExpanded.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceExpanded(nVal);\n },\n );\n watch(\n () => [...(tActived.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceActived(nVal);\n },\n );\n\n watch(refProps.filter, (nVal, previousVal) => {\n checkFilterExpand(nVal, previousVal);\n });\n watch(refProps.keys, (keys) => {\n store.setConfig({\n keys,\n });\n });\n\n watch(refProps.expandAll, (nVal) => {\n if (nVal) {\n const valueList = store\n .getNodes()\n .filter((node) => Array.isArray(node.children) && node.children.length)\n .map((node) => node.value);\n store.setExpanded(valueList);\n } else {\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n });\n\n return {\n store,\n rebuild,\n checkFilterExpand,\n updateStoreConfig,\n updateExpanded,\n expandFilterPath,\n };\n}\n","import { TreeNode } from '../adapt';\nimport { TreeProps, TypeDragEventState, TypeTreeState, TypeDragHandle } from '../tree-types';\nimport { DragPosition } from './useDraggable';\nimport { emitEvent } from '../util';\n\nexport default function useDragHandle(state: TypeTreeState) {\n const { props, context, scope, store } = state;\n let dragNode: TreeNode = null;\n\n const handleDragStart = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-start', ctx);\n };\n\n const handleDragEnd = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-end', ctx);\n };\n\n const handleDragOver = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-over', ctx);\n };\n\n const handleDragLeave = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-leave', ctx);\n };\n\n const handleDrop = (state: TypeDragEventState) => {\n const { dragEvent, node, dropPosition } = state;\n if (node.value === dragNode.value || node.getParents().some((_node) => _node.value === dragNode.value)) return;\n\n const ctx = {\n dropNode: node.getModel(),\n dragNode: dragNode.getModel(),\n dropPosition,\n e: dragEvent,\n };\n\n if (props.allowDrop?.(ctx) === false) return;\n\n const nodes = store.getNodes() as TreeNode[];\n nodes.some((_node) => {\n if (_node.value === node.value) {\n if (dropPosition === DragPosition.Inside) {\n dragNode.appendTo(store, _node);\n } else if (dropPosition === DragPosition.Before) {\n node.insertBefore(dragNode);\n } else {\n node.insertAfter(dragNode);\n }\n return true;\n }\n return false;\n });\n\n emitEvent>(props, context, 'drop', ctx);\n };\n\n const drag: TypeDragHandle = {\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n\n scope.drag = drag;\n\n return {\n drag,\n };\n}\n","import _TdTree from './tree';\nimport { withInstall } from './adapt';\n\nimport './style';\n\nexport const Tree = withInstall(_TdTree);\n\nexport * from './tree-types';\nexport default Tree;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。\n `value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 数据 */\n data: {\n type: Array as PropType,\n default: (): TdTreeSelectProps['data'] => [],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传给 输入框 Input 组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined,\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 `value / label / children / disabled` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 是否正在加载数据 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTreeSelectProps['size'],\n validator(val: TdTreeSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 【开发中】透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 透传 Tree 组件的全部属性 */\n treeProps: {\n type: Object as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Object, Array] as PropType,\n },\n /** 自定义选中项呈现方式 */\n valueDisplay: {\n type: Function as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdTreeSelectProps['valueType'],\n validator(val: TdTreeSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 节点选中状态变化时触发,`context.node` 表示当前变化的选项,`context. trigger` 表示触发变化的来源 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs } from 'vue';\nimport { isArray } from 'lodash-es';\nimport { isEmpty } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isNil } from 'lodash-es';\nimport { findParentValues } from '@tdesign/common-js/tree-select/utils';\n\nimport Tree, { TreeProps, TreeNodeModel, TreeNodeValue } from '../tree';\nimport SelectInput, { TdSelectInputProps } from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { PopupVisibleChangeContext } from '../popup';\n\nimport { INodeOptions } from './interface';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions)?.value)\n : [(treeSelectValue.value as INodeOptions)?.value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件和取消选中状态改变\n if (props.multiple || !context.node.actived) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

    \n {renderTree()}\n {renderTNodeJSX('panelBottomContent')}\n
    \n ),\n collapsedItems: slots.collapsedItems,\n }}\n onInputChange={inputChange}\n onTagChange={tagChange}\n onPopupVisibleChange={handlePopupVisibleChange}\n {...(props.selectInputProps as TdTreeSelectProps['selectInputProps'])}\n />\n );\n },\n});\n","import { isString, isNull } from 'lodash-es';\n/* eslint-disable no-param-reassign */\n/**\n * 用于反解析渐变字符串为对象\n * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex\n */\nimport tinyColor from 'tinycolor2';\n\n/**\n * Utility combine multiple regular expressions.\n *\n * @param {RegExp[]|string[]} regexpList List of regular expressions or strings.\n * @param {string} flags Normal RegExp flags.\n */\nconst combineRegExp = (regexpList: (string | RegExp)[], flags: string): RegExp => {\n let source = '';\n for (let i = 0; i < regexpList.length; i++) {\n if (isString(regexpList[i])) {\n source += regexpList[i];\n } else {\n source += (regexpList[i] as RegExp).source;\n }\n }\n return new RegExp(source, flags);\n};\n\ninterface RegExpLib {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\ninterface ColorStop {\n color: string;\n position?: string;\n}\n\ninterface ParseGradientResult {\n original: string;\n colorStopList?: ColorStop[];\n line?: string;\n angle?: string;\n sideCorner?: string;\n}\n\n/**\n * Generate the required regular expressions once.\n *\n * Regular Expressions are easier to manage this way and can be well described.\n *\n * @result {object} Object containing regular expressions.\n */\nconst generateRegExp = (): RegExpLib => {\n // Note any variables with \"Capture\" in name include capturing bracket set(s).\n const searchFlags = 'gi'; // ignore case for angles, \"rgb\" etc\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/; // Angle +ive, -ive and angle types\n // optional 2nd part\n const rSideCornerCapture = /to\\s+((?:(?:left|right|top|bottom)(?:\\s+(?:top|bottom|left|right))?))/;\n const rComma = /\\s*,\\s*/; // Allow space around comma.\n const rColorHex = /#(?:[a-f0-9]{6}|[a-f0-9]{3})/; // 3 or 6 character form\n const rDigits3 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*\\)/;\n const // \"(1, 2, 3)\"\n rDigits4 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*,\\s*\\d*\\.?\\d+\\)/;\n const // \"(1, 2, 3, 4)\"\n rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const // \".9\", \"-5px\", \"100%\".\n rKeyword = /[_a-z-][_a-z0-9-]*/;\n const // \"red\", \"transparent\".\n rColor = combineRegExp(\n ['(?:', rColorHex, '|', '(?:rgb|hsl)', rDigits3, '|', '(?:rgba|hsla)', rDigits4, '|', rKeyword, ')'],\n '',\n );\n const rColorStop = combineRegExp([rColor, '(?:\\\\s+', rValue, '(?:\\\\s+', rValue, ')?)?'], '');\n const // Single Color Stop, optional %, optional length.\n rColorStopList = combineRegExp(['(?:', rColorStop, rComma, ')*', rColorStop], '');\n const // List of color stops min 1.\n rLineCapture = combineRegExp(['(?:(', rAngle, ')|', rSideCornerCapture, ')'], '');\n const // Angle or SideCorner\n rGradientSearch = combineRegExp(['(?:(', rLineCapture, ')', rComma, ')?(', rColorStopList, ')'], searchFlags);\n const // Capture 1:\"line\", 2:\"angle\" (optional), 3:\"side corner\" (optional) and 4:\"stop list\".\n rColorStopSearch = combineRegExp(\n ['\\\\s*(', rColor, ')', '(?:\\\\s+', '(', rValue, '))?', '(?:', rComma, '\\\\s*)?'],\n searchFlags,\n ); // Capture 1:\"color\" and 2:\"position\" (optional).\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch,\n };\n};\n\n/**\n * Actually parse the input gradient parameters string into an object for reusability.\n *\n *\n * @note Really this only supports the standard syntax not historical versions, see MDN for details\n * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient\n *\n * @param regExpLib\n * @param {string} input\n * @returns {object|undefined}\n */\nconst parseGradient = (regExpLib: RegExpLib, input: string) => {\n let result: ParseGradientResult;\n let matchColorStop: any;\n let stopResult: ColorStop;\n\n // reset search position, because we reuse regex.\n regExpLib.gradientSearch.lastIndex = 0;\n\n const matchGradient = regExpLib.gradientSearch.exec(input);\n if (!isNull(matchGradient)) {\n result = {\n original: matchGradient[0],\n colorStopList: [],\n };\n\n // Line (Angle or Side-Corner).\n if (matchGradient[1]) {\n // eslint-disable-next-line prefer-destructuring\n result.line = matchGradient[1];\n }\n // Angle or undefined if side-corner.\n if (matchGradient[2]) {\n // eslint-disable-next-line prefer-destructuring\n result.angle = matchGradient[2];\n }\n // Side-corner or undefined if angle.\n if (matchGradient[3]) {\n // eslint-disable-next-line prefer-destructuring\n result.sideCorner = matchGradient[3];\n }\n\n // reset search position, because we reuse regex.\n regExpLib.colorStopSearch.lastIndex = 0;\n\n // Loop though all the color-stops.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n while (!isNull(matchColorStop)) {\n stopResult = {\n color: matchColorStop[1],\n };\n\n // Position (optional).\n if (matchColorStop[2]) {\n // eslint-disable-next-line prefer-destructuring\n stopResult.position = matchColorStop[2];\n }\n result.colorStopList.push(stopResult);\n\n // Continue searching from previous position.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n }\n }\n\n // Can be undefined if match not found.\n return result;\n};\n\nexport interface GradientColorPoint {\n id?: string;\n color?: string;\n left?: number;\n}\n\nexport interface GradientColors {\n points: GradientColorPoint[];\n degree: number;\n}\n\nconst REGEXP_LIB = generateRegExp();\nconst REG_GRADIENT = /.*gradient\\s*\\(((?:\\([^)]*\\)|[^)(]*)*)\\)/gim;\n\n/**\n * 验证是否是渐变字符串\n * @param input\n * @returns\n */\nexport const isGradientColor = (input: string): null | RegExpExecArray => {\n REG_GRADIENT.lastIndex = 0;\n return REG_GRADIENT.exec(input);\n};\n\n// 边界字符串和角度关系\nconst sideCornerDegreeMap = {\n top: 0,\n right: 90,\n bottom: 180,\n left: 270,\n 'top left': 315,\n 'left top': 315,\n 'top right': 45,\n 'right top': 45,\n 'bottom left': 225,\n 'left bottom': 225,\n 'bottom right': 135,\n 'right bottom': 135,\n};\n\n/**\n * 解析渐变字符串为 GradientColors 对象\n * @param input\n * @returns\n */\nexport const parseGradientString = (input: string): GradientColors | false => {\n const match = isGradientColor(input);\n if (!match) return false;\n\n const gradientColors: GradientColors = {\n points: [],\n degree: 0,\n };\n\n const result: ParseGradientResult = parseGradient(REGEXP_LIB, match[1]);\n if (result.original.trim() !== match[1].trim()) return false;\n\n const points: GradientColorPoint[] = result.colorStopList.map(\n ({ color, position }, index, array) => {\n const point = Object.create(null);\n point.color = tinyColor(color).toRgbString();\n\n let left = parseFloat(position);\n if (Number.isNaN(left)) {\n left = (index / (array.length - 1)) * 100;\n }\n\n point.left = left;\n return point;\n }\n );\n gradientColors.points = points;\n\n let degree = parseInt(result.angle, 10);\n if (Number.isNaN(degree)) {\n /* 如果角度不存在,使用 CSS 渐变的默认逻辑(180 deg)\n https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients */\n degree = sideCornerDegreeMap[result.sideCorner as keyof typeof sideCornerDegreeMap] || 180;\n }\n gradientColors.degree = degree;\n\n return gradientColors;\n};\n\nexport default parseGradientString;\n","import { TreeOptionData } from '../common';\n\ntype TargetValue = string | number | object;\n\n/**\n * 递归查找指定节点的所有父节点的 value\n * @param options 树形数据\n * @param targetValue 目标节点的 value\n * @param realChildren 子节点的 key (别名)\n * @param realValue 节点的 value 的 key (别名)\n */\nexport function findParentValues(\n options: TreeOptionData[],\n targetValue: TargetValue,\n realValue: string,\n realChildren: string,\n): (TargetValue)[] {\n let currentTargetValue = targetValue;\n if (currentTargetValue != null && typeof currentTargetValue === 'object') {\n currentTargetValue = (currentTargetValue as { [key: string]: string | number })?.[realValue];\n }\n if (currentTargetValue == null) return [];\n\n function findPath(nodes: TreeOptionData[], parentPath: (TargetValue)[]): (TargetValue)[] | null {\n let result: (TargetValue)[] | null = null;\n nodes.some((node) => {\n const newPath = [...parentPath, node[realValue]];\n if (node[realValue] === currentTargetValue) {\n result = parentPath;\n return true;\n }\n if (Array.isArray(node[realChildren]) && node[realChildren].length) {\n result = findPath(node[realChildren], newPath);\n if (result !== null) {\n return true;\n }\n }\n return false;\n });\n return result;\n }\n\n return findPath(options, []) || [];\n}\n","import _TreeSelect from './tree-select';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './interface';\nexport const TreeSelect = withInstall(_TreeSelect);\nexport default TreeSelect;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdColorPickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 颜色模式选择。同时支持单色和渐变两种模式,可仅使用单色或者渐变其中一种模式,也可以同时使用。`monochrome` 表示单色,`linear-gradient` 表示渐变色 */\n colorModes: {\n type: Array as PropType,\n default: (): TdColorPickerProps['colorModes'] => ['monochrome', 'linear-gradient'],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否开启透明通道 */\n enableAlpha: Boolean,\n /** 是否允许开启通过点击渐变轴增加渐变梯度,默认开启,关闭时只会存在起始和结束两个颜色 */\n enableMultipleGradient: {\n type: Boolean,\n default: true,\n },\n /** 格式化色值。`enableAlpha` 为真时,`HEX8/RGBA/HSLA/HSVA` 有效 */\n format: {\n type: String as PropType,\n default: 'RGB' as TdColorPickerProps['format'],\n validator(val: TdColorPickerProps['format']): boolean {\n if (!val) return true;\n return ['HEX', 'HEX8', 'RGB', 'RGBA', 'HSL', 'HSLA', 'HSV', 'HSVA', 'CMYK', 'CSS'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 透传 Popup 组件全部属性,如 `placement` `overlayStyle` `overlayClassName` `trigger`等 */\n popupProps: {\n type: Object as PropType,\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色” */\n recentColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['recentColors'],\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色”,非受控属性 */\n defaultRecentColors: {\n type: Array as PropType,\n default: (): TdColorPickerProps['defaultRecentColors'] => [],\n },\n /** 透传 SelectInputProps 筛选器输入框组件全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否展示颜色选择条右侧的颜色预览区域 */\n showPrimaryColorPreview: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdColorPickerProps['size'],\n validator(val: TdColorPickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 系统预设的颜色样例,值为 `null` 或 `[]` 则不显示系统色,值为 `undefined` 会显示组件内置的系统默认色 */\n swatchColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['swatchColors'],\n },\n /** 色值 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 色值,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 选中的色值发生变化时触发,第一个参数 `value` 表示新色值,`context.color` 表示当前调色板控制器的色值,`context.trigger` 表示触发颜色变化的来源 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 调色板控制器的值变化时触发,`context.color` 指调色板控制器的值 */\n onPaletteBarChange: Function as PropType,\n /** 最近使用颜色发生变化时触发 */\n onRecentColorsChange: Function as PropType,\n};\n","/**\n * rgb 转 cmyk\n * @param red\n * @param green\n * @param blue\n * @returns\n */\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\n let computedC = 0;\n let computedM = 0;\n let computedY = 0;\n let computedK = 0;\n\n const r = parseInt(`${red}`.replace(/\\s/g, ''), 10);\n const g = parseInt(`${green}`.replace(/\\s/g, ''), 10);\n const b = parseInt(`${blue}`.replace(/\\s/g, ''), 10);\n\n if (r === 0 && g === 0 && b === 0) {\n computedK = 1;\n return [0, 0, 0, 1];\n }\n\n computedC = 1 - r / 255;\n computedM = 1 - g / 255;\n computedY = 1 - b / 255;\n\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\n computedC = (computedC - minCMY) / (1 - minCMY);\n computedM = (computedM - minCMY) / (1 - minCMY);\n computedY = (computedY - minCMY) / (1 - minCMY);\n computedK = minCMY;\n\n return [computedC, computedM, computedY, computedK];\n};\n\n/**\n * cmyk 转 rgb\n * @param cyan\n * @param magenta\n * @param yellow\n * @param black\n * @returns\n */\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\n let c = cyan / 100;\n let m = magenta / 100;\n let y = yellow / 100;\n const k = black / 100;\n\n c = c * (1 - k) + k;\n m = m * (1 - k) + k;\n y = y * (1 - k) + k;\n\n let r = 1 - c;\n let g = 1 - m;\n let b = 1 - y;\n\n r = Math.round(255 * r);\n g = Math.round(255 * g);\n b = Math.round(255 * b);\n return {\n r,\n g,\n b,\n };\n};\n\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\n\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\n\n/**\n * 输入色转rgb\n * @param input\n * @returns\n */\nexport const cmykInputToColor = (input: string) => {\n if (/cmyk/i.test(input)) {\n const str = input.replace(/\\s/g, '');\n const match = str.match(REG_CMYK_STRING);\n const c = toNumber(match[1]);\n const m = toNumber(match[2]);\n const y = toNumber(match[3]);\n const k = toNumber(match[4]);\n const { r, g, b } = cmyk2rgb(c, m, y, k);\n return `rgb(${r}, ${g}, ${b})`;\n }\n return input;\n};\n","import type {\n BasicColorFormat,\n ColorInputProp,\n} from './types';\n\n// 最近使用颜色最大个数\nexport const TD_COLOR_USED_COLORS_MAX_SIZE = 100; // 每行10个\n\n// 颜色模式options配置\nexport const COLOR_MODES = {\n monochrome: 'singleColor',\n 'linear-gradient': 'gradientColor',\n};\n\n// 默认颜色\nexport const DEFAULT_COLOR = '#001F97';\n\n// 默认渐变色\nexport const DEFAULT_LINEAR_GRADIENT = 'linear-gradient(90deg, rgba(241,29,0,1) 0%, rgba(73,106,220,1) 100%);';\n\n// 默认系统色彩\nexport const DEFAULT_SYSTEM_SWATCH_COLORS = [\n '#ECF2FE',\n '#D4E3FC',\n '#BBD3FB',\n '#96BBF8',\n '#699EF5',\n '#4787F0',\n '#266FE8',\n '#0052D9',\n '#0034B5',\n '#001F97',\n '#FDECEE',\n '#F9D7D9',\n '#F8B9BE',\n '#F78D94',\n '#F36D78',\n '#E34D59',\n '#C9353F',\n '#B11F26',\n '#951114',\n '#680506',\n '#FEF3E6',\n '#F9E0C7',\n '#F7C797',\n '#F2995F',\n '#ED7B2F',\n '#D35A21',\n '#BA431B',\n '#9E3610',\n '#842B0B',\n '#5A1907',\n '#E8F8F2',\n '#BCEBDC',\n '#85DBBE',\n '#48C79C',\n '#00A870',\n '#078D5C',\n '#067945',\n '#056334',\n '#044F2A',\n '#033017',\n];\n\n/**\n * 非透明色格式化类型\n */\nexport const FORMATS = [\n 'HEX',\n 'RGB',\n 'HSL',\n 'HSV',\n 'CMYK',\n 'CSS',\n] as const;\n\n/**\n * 透明色格式化类型映射\n */\nexport const ALPHA_FORMAT_MAP = {\n HEX: 'HEX8',\n RGB: 'RGBA',\n HSL: 'HSLA',\n HSV: 'HSVA',\n} as const;\n\n/**\n * 不同格式对应的输入框\n */\nexport const COLOR_FORMAT_INPUTS: Record = {\n RGB: [\n {\n key: 'r',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'g',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'b',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n HSV: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'v',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n HSL: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'l',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n CMYK: [\n {\n key: 'c',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'm',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'y',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'k',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n CSS: [\n {\n key: 'css',\n type: 'input',\n flex: 3,\n },\n ],\n HEX: [\n {\n key: 'hex',\n type: 'input',\n flex: 3,\n },\n ],\n};\n\n// 色板尺寸\nexport const SATURATION_PANEL_DEFAULT_WIDTH = 230;\nexport const SATURATION_PANEL_DEFAULT_HEIGHT = 168;\nexport const SLIDER_DEFAULT_WIDTH = 186;\nexport const GRADIENT_SLIDER_DEFAULT_WIDTH = 176;\n","import tinyColor from 'tinycolor2';\nimport { cmykInputToColor, rgb2cmyk } from './cmyk';\nimport { ALPHA_FORMAT_MAP } from './constants';\nimport {\n parseGradientString, GradientColors, GradientColorPoint, isGradientColor\n} from './gradient';\nimport type { AlphaConvertibleFormat, ColorFormat } from './types';\n\nexport interface ColorObject {\n alpha: number;\n css: string;\n hex: string;\n hex8: string;\n hsl: string;\n hsla: string;\n hsv: string;\n hsva: string;\n rgb: string;\n rgba: string;\n saturation: number;\n value: number;\n isGradient: boolean;\n linearGradient?: string;\n}\n\ninterface ColorStates {\n s: number;\n v: number;\n h: number;\n a: number;\n}\n\ninterface GradientStates {\n colors: GradientColorPoint[];\n degree: number;\n selectedId: string;\n css?: string;\n}\n\nconst mathRound = Math.round;\nconst hsv2rgba = (states: ColorStates): tinyColor.ColorFormats.RGBA => tinyColor(states).toRgb();\nconst hsv2hsva = (states: ColorStates): tinyColor.ColorFormats.HSVA => tinyColor(states).toHsv();\nconst hsv2hsla = (states: ColorStates): tinyColor.ColorFormats.HSLA => tinyColor(states).toHsl();\n\n/**\n * 将渐变对象转换成字符串\n * @param object\n * @returns\n */\nexport const gradientColors2string = (object: GradientColors): string => {\n const { points, degree } = object;\n const colorsStop = points\n .sort((pA, pB) => pA.left - pB.left)\n .map((p) => `${p.color} ${Math.round(p.left * 100) / 100}%`);\n\n return `linear-gradient(${degree}deg,${colorsStop.join(',')})`;\n};\n\n/**\n * 去除颜色的透明度\n * @param color\n * @returns\n */\nexport const getColorWithoutAlpha = (color: string) => tinyColor(color).setAlpha(1).toHexString();\n\n// 生成一个随机ID\nexport const genId = () => (1 + Math.random() * 4294967295).toString(16);\n\n/**\n * 生成一个渐变颜色\n * @param left\n * @param color\n * @returns\n */\nexport const genGradientPoint = (left: number, color: string, id?: string): GradientColorPoint => ({\n id: id || genId(),\n left,\n color,\n});\n\nexport class Color {\n states: ColorStates = {\n s: 100,\n v: 100,\n h: 100,\n a: 1,\n };\n\n originColor: string;\n\n isGradient: boolean;\n\n gradientStates: GradientStates = {\n colors: [],\n degree: 0,\n selectedId: null,\n css: '',\n };\n\n constructor(input: string) {\n this.update(input);\n }\n\n update(input: string) {\n if (input === this.originColor) return;\n const gradientColors = parseGradientString(input);\n\n if (this.isGradient && !gradientColors) {\n /* 这里是针对渐变模式下,修改某个位置点的色值情况\n\n 「Tip」\n - 为了避免有时外界从渐变切换到单色模式,存在缓存问题\n 需要手动设置 `color.isGradient = false` 进行同步\n - 特定场景下,也可以直接创建新实例 `new Color` 进行覆盖 */\n const colorHsv = tinyColor(input).toHsv();\n this.states = colorHsv;\n this.updateCurrentGradientColor();\n return;\n }\n this.originColor = input;\n this.isGradient = false;\n let colorInput = input;\n if (gradientColors) {\n this.isGradient = true;\n const object = gradientColors as GradientColors;\n const points = object.points.map((c, index) => genGradientPoint(c.left, c.color, this.gradientStates.colors[index]?.id));\n this.gradientStates = {\n colors: points,\n degree: object.degree,\n selectedId: this.gradientStates.selectedId || points[0]?.id || null,\n };\n this.gradientStates.css = this.linearGradient;\n colorInput = this.gradientSelectedPoint?.color;\n }\n\n this.updateStates(colorInput);\n }\n\n get saturation() {\n return this.states.s;\n }\n\n set saturation(value) {\n this.states.s = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get value() {\n return this.states.v;\n }\n\n set value(value) {\n this.states.v = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get hue() {\n return this.states.h;\n }\n\n set hue(value) {\n this.states.h = Math.max(0, Math.min(360, value));\n this.updateCurrentGradientColor();\n }\n\n get alpha() {\n return this.states.a;\n }\n\n set alpha(value) {\n this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));\n this.updateCurrentGradientColor();\n }\n\n get rgb() {\n const { r, g, b } = hsv2rgba(this.states);\n return `rgb(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)})`;\n }\n\n get rgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return `rgba(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)}, ${a})`;\n }\n\n get hsv() {\n const { h, s, v } = this.getHsva();\n return `hsv(${h}, ${s}%, ${v}%)`;\n }\n\n get hsva() {\n const {\n h, s, v, a\n } = this.getHsva();\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n }\n\n get hsl() {\n const { h, s, l } = this.getHsla();\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n\n get hsla() {\n const {\n h, s, l, a\n } = this.getHsla();\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n }\n\n get hex() {\n return tinyColor(this.states).toHexString();\n }\n\n get hex8() {\n return tinyColor(this.states).toHex8String();\n }\n\n get cmyk() {\n const {\n c, m, y, k\n } = this.getCmyk();\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n get css() {\n if (this.isGradient) {\n return this.linearGradient;\n }\n return this.rgba;\n }\n\n get linearGradient() {\n const { gradientColors, gradientDegree } = this;\n return gradientColors2string({\n points: gradientColors,\n degree: gradientDegree,\n });\n }\n\n get gradientColors() {\n return this.gradientStates.colors;\n }\n\n set gradientColors(colors: GradientColorPoint[]) {\n this.gradientStates.colors = colors;\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedId() {\n return this.gradientStates.selectedId;\n }\n\n set gradientSelectedId(id: string) {\n if (id === this.gradientSelectedId) {\n return;\n }\n this.gradientStates.selectedId = id;\n this.updateStates(this.gradientSelectedPoint?.color);\n }\n\n get gradientDegree() {\n return this.gradientStates.degree;\n }\n\n set gradientDegree(degree: number) {\n this.gradientStates.degree = Math.max(0, Math.min(360, degree));\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedPoint() {\n const { gradientColors, gradientSelectedId } = this;\n return gradientColors.find((color) => color.id === gradientSelectedId);\n }\n\n getFormatsColorMap() {\n return {\n HEX: this.hex,\n CMYK: this.cmyk,\n RGB: this.rgb,\n RGBA: this.rgba,\n HSL: this.hsl,\n HSLA: this.hsla,\n HSV: this.hsv,\n HSVA: this.hsva,\n CSS: this.css,\n HEX8: this.hex8,\n };\n }\n\n getFormattedColor(format: ColorFormat, enableAlpha: boolean) {\n if (this.isGradient) return this.linearGradient;\n const finalFormat = (\n enableAlpha && format in ALPHA_FORMAT_MAP\n ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat]\n : format\n ) as keyof ReturnType;\n return this.getFormatsColorMap()[finalFormat];\n }\n\n updateCurrentGradientColor() {\n const { isGradient, gradientColors, gradientSelectedId } = this;\n const { length } = gradientColors;\n const current = this.gradientSelectedPoint;\n if (!isGradient || length === 0 || !current) {\n return false;\n }\n const index = gradientColors.findIndex((color) => color.id === gradientSelectedId);\n const newColor = {\n ...current,\n color: this.rgba,\n };\n gradientColors.splice(index, 1, newColor);\n this.gradientColors = gradientColors.slice();\n return this;\n }\n\n updateStates(input: string) {\n const color = tinyColor(cmykInputToColor(input));\n const hsva = color.toHsv();\n this.states = hsva;\n }\n\n getRgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return {\n r: mathRound(r),\n g: mathRound(g),\n b: mathRound(b),\n a,\n };\n }\n\n getCmyk() {\n const { r, g, b } = this.getRgba();\n const [c, m, y, k] = rgb2cmyk(r, g, b);\n return {\n c: mathRound(c * 100),\n m: mathRound(m * 100),\n y: mathRound(y * 100),\n k: mathRound(k * 100),\n };\n }\n\n getHsva(): tinyColor.ColorFormats.HSVA {\n let {\n h, s, v, a\n } = hsv2hsva(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n v = mathRound(v * 100);\n a *= 1;\n return {\n h,\n s,\n v,\n a,\n };\n }\n\n getHsla(): tinyColor.ColorFormats.HSLA {\n let {\n h, s, l, a\n } = hsv2hsla(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n l = mathRound(l * 100);\n a *= 1;\n return {\n h,\n s,\n l,\n a,\n };\n }\n\n /**\n * 判断输入色是否与当前色相同\n * @param color\n * @returns\n */\n equals(color: string): boolean {\n return tinyColor.equals(this.rgba, color);\n }\n\n /**\n * 校验输入色是否是一个有效颜色\n * @param color\n * @returns\n */\n static isValid(color: string): boolean {\n if (parseGradientString(color)) {\n return true;\n }\n return tinyColor(color).isValid();\n }\n\n static hsva2color(h: number, s: number, v: number, a: number) {\n return tinyColor({\n h, s, v, a\n }).toHsvString();\n }\n\n static hsla2color(h: number, s: number, l: number, a: number) {\n return tinyColor({\n h, s, l, a\n }).toHslString();\n }\n\n static rgba2color(r: number, g: number, b: number, a: number) {\n return tinyColor({\n r, g, b, a\n }).toHsvString();\n }\n\n static hex2color(hex: string, a: number) {\n const color = tinyColor(hex);\n color.setAlpha(a);\n return color.toHexString();\n }\n\n /**\n * 对象转颜色字符串\n * @param object\n * @param format\n * @returns\n */\n static object2color(object: any, format: string) {\n if (format === 'CMYK') {\n const {\n c, m, y, k\n } = object;\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n const color = tinyColor(object, {\n format,\n });\n return color.toRgbString();\n }\n\n /**\n * 是否是渐变色\n * @param input\n * @returns\n */\n static isGradientColor = (input: string) => !!isGradientColor(input);\n\n /**\n * 比较两个颜色是否相同\n * @param color1\n * @param color2\n * @returns\n */\n static compare = (color1: string, color2: string): boolean => {\n const isGradientColor1 = Color.isGradientColor(color1);\n const isGradientColor2 = Color.isGradientColor(color2);\n if (isGradientColor1 && isGradientColor2) {\n const gradientStr1 = parseGradientString(color1);\n const gradientStr2 = parseGradientString(color2);\n if (!gradientStr1 || !gradientStr2) return false;\n\n const gradientColor1 = gradientColors2string(gradientStr1);\n const gradientColor2 = gradientColors2string(gradientStr2);\n return gradientColor1 === gradientColor2;\n }\n if (!isGradientColor1 && !isGradientColor2) {\n return tinyColor.equals(color1, color2);\n }\n return false;\n };\n}\n\nconst COLOR_OBJECT_OUTPUT_KEYS = [\n 'alpha',\n 'css',\n 'hex',\n 'hex8',\n 'hsl',\n 'hsla',\n 'hsv',\n 'hsva',\n 'rgb',\n 'rgba',\n 'saturation',\n 'value',\n 'isGradient',\n];\n\n/**\n * 获取对外输出的color对象\n * @param color\n * @returns\n */\nexport const getColorObject = (color: Color): ColorObject | null => {\n if (!color) {\n return null;\n }\n const colorObject = Object.create(null);\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => {\n colorObject[key] = (color as { [key: string]: any })[key];\n });\n if (color.isGradient) {\n colorObject.linearGradient = color.linearGradient;\n }\n return colorObject;\n};\n\nexport default Color;\n","/* eslint-disable no-use-before-define */\nexport interface Coordinate {\n x: number;\n y: number;\n}\n\nexport type DraggableEvent = MouseEvent;\n\ninterface DraggableCallback {\n (coordinate: Coordinate, event?: DraggableEvent): void;\n}\n\nexport interface DraggableProps {\n start?: DraggableCallback;\n drag?: DraggableCallback;\n end?: DraggableCallback;\n}\n\ninterface DraggableHandles {\n start: (this: Draggable, event: DraggableEvent) => {};\n drag: (this: Draggable, event: DraggableEvent) => {};\n end: (this: Draggable, event: DraggableEvent) => {};\n}\n\n// 配置项\nconst defaultsOptions: DraggableProps = {\n start: (coordinate: Coordinate, event: DraggableEvent) => {},\n drag: (coordinate: Coordinate, event: DraggableEvent) => {},\n end: (coordinate: Coordinate, event: DraggableEvent) => {},\n};\n\nexport class Draggable {\n private dragging = false;\n\n private $el: HTMLElement;\n\n private props: DraggableProps;\n\n private handles: DraggableHandles;\n\n constructor(el: HTMLElement, options?: DraggableProps) {\n this.$el = el;\n this.props = { ...defaultsOptions, ...options };\n this.handles = {\n start: this.#dragStart.bind(this),\n drag: this.#drag.bind(this),\n end: this.#dragEnd.bind(this),\n };\n this.$el.addEventListener('mousedown', this.handles.start, false);\n }\n\n #dragStart(event: DraggableEvent) {\n if (this.dragging) {\n return;\n }\n // event.preventDefault();\n window.addEventListener('mousemove', this.handles.drag, false);\n window.addEventListener('mouseup', this.handles.end, false);\n window.addEventListener('contextmenu', this.handles.end, false);\n this.dragging = true;\n this.props.start(this.#getCoordinate(event), event);\n }\n\n #drag(event: DraggableEvent) {\n if (!this.dragging) {\n return;\n }\n this.props.drag(this.#getCoordinate(event), event);\n }\n\n #dragEnd(event: DraggableEvent) {\n setTimeout(() => {\n this.dragging = false;\n this.props.end(this.#getCoordinate(event), event);\n }, 0);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n\n #getCoordinate(event: DraggableEvent) {\n const rect = this.$el.getBoundingClientRect();\n const mouseEvent = event;\n const left = mouseEvent.clientX - rect.left;\n const top = mouseEvent.clientY - rect.top;\n return {\n y: Math.min(Math.max(0, top), rect.height),\n x: Math.min(Math.max(0, left), rect.width),\n };\n }\n\n destroy() {\n this.$el.removeEventListener('mousedown', this.handles.start, false);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n}\n\nexport default Draggable;\n","import Color from './color';\nimport { ALPHA_FORMAT_MAP, COLOR_FORMAT_INPUTS, FORMATS } from './constants';\nimport type { AlphaConvertibleFormat, BasicColorFormat, ColorFormat } from './types';\n\n/**\n * 兜底处理用户传入的格式,例如:\n * - 传入 `RGB`, 但 `enableAlpha` ,则返回 `RGBA`\n */\nexport const initColorFormat = (format: ColorFormat, enableAlpha: boolean) => {\n if (enableAlpha && format in ALPHA_FORMAT_MAP) {\n return format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format;\n }\n return format as BasicColorFormat;\n};\n\n/**\n * 获取不同格式的输入输出值\n * - encode:将字符串转换为单独的颜色值,例如 `{r: 255, g: 255, b: 255}`\n * - decode:获取完整的颜色字符串,例如 `rgb(255, 255, 255)`\n */\nexport const getColorFormatMap = (color: Color, type: 'encode' | 'decode') => {\n if (type === 'encode') {\n return {\n HSV: color.getHsva(),\n HSVA: color.getHsva(),\n HSL: color.getHsla(),\n HSLA: color.getHsla(),\n RGB: color.getRgba(),\n RGBA: color.getRgba(),\n CMYK: color.getCmyk(),\n CSS: {\n css: color.css,\n },\n HEX: {\n hex: color.hex,\n },\n HEX8: {\n hex: color.hex8, // 为了减少转换 hex8 的 key 也对应 hex\n },\n };\n }\n\n // decode\n return color.getFormatsColorMap();\n};\n\n/**\n * 获取下拉框的格式选项\n */\nexport const getColorFormatOptions = (enableAlpha: boolean) => (\n enableAlpha\n ? FORMATS.map((item) => (item in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[item as AlphaConvertibleFormat] : item))\n : FORMATS\n);\n\n/**\n * 获取当前格式的输入框配置\n */\nexport const getColorFormatInputs = (\n format: ColorFormat = 'RGB',\n enableAlpha: boolean\n) => {\n let finalFormat;\n\n /* 为了减少 `ALPHA_FORMAT_MAP` 中的重复代码\n `RGBA/HEX8/HSLA/HSVA` 会被转换为 `RGB/HEX/HSL/HSV` 后再匹配\n 但在下一步会 push 一个代表透明度的输入框 */\n if (enableAlpha) {\n finalFormat = Object.keys(ALPHA_FORMAT_MAP).find(\n (key) => key in ALPHA_FORMAT_MAP && ALPHA_FORMAT_MAP[key as AlphaConvertibleFormat] === format\n ) || format;\n } else {\n finalFormat = format;\n }\n\n if (!COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]) return [];\n\n const configs = [\n ...(COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]),\n ];\n\n // CMYK 格式不支持透明度\n if (enableAlpha && format !== 'CMYK') {\n configs.push({\n type: 'inputNumber',\n key: 'a',\n min: 0,\n max: 100,\n format: (value: number) => `${value}%`,\n flex: 1.15,\n });\n }\n\n return configs;\n};\n","import { computed } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\n\nconst BASE_COMPONENT_NAME = 'color-picker';\n\n/**\n * 基础样式\n * @param className\n * @returns\n */\nexport const useBaseClassName = (className?: string) => {\n const baseClassName = usePrefixClass(BASE_COMPONENT_NAME);\n return computed(() => (className ? `${baseClassName.value}-${className}` : baseClassName.value));\n};\n","import { defineComponent, PropType, ref, watch } from 'vue';\n\nimport props from '../../props';\nimport { COLOR_MODES } from '@tdesign/common-js/color-picker/constants';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../../../radio';\nimport { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\nimport { useConfig } from '../../../hooks';\n\nexport default defineComponent({\n name: 'PanelHeader',\n props: {\n ...props,\n mode: {\n type: String as PropType,\n default: 'color',\n },\n togglePopup: {\n type: Function,\n },\n onModeChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const { globalConfig } = useConfig('colorPicker');\n const baseClassName = useBaseClassName();\n const modeValue = ref(props.mode);\n const handleModeChange = (v: string) => props.onModeChange(v);\n watch(\n () => props.mode,\n (v) => (modeValue.value = v),\n );\n return () => {\n if (props.colorModes?.length === 1) {\n return null;\n }\n return (\n
    \n
    \n \n {Object.keys(COLOR_MODES).map((key) => (\n \n {Reflect.get(globalConfig.value, COLOR_MODES[key as keyof typeof COLOR_MODES])}\n \n ))}\n \n
    \n
    \n );\n };\n },\n});\n","import { PropType } from 'vue';\nimport { Color } from '../../utils';\n\nexport default {\n /** 是否禁用组件 */\n disabled: Boolean,\n /** Color Instance */\n color: {\n type: Object as PropType,\n },\n onChange: {\n type: Function,\n default: () => () => {},\n },\n};\n","import { defineComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { GRADIENT_SLIDER_DEFAULT_WIDTH } from '@tdesign/common-js/color-picker/constants';\nimport { genGradientPoint, gradientColors2string, GradientColorPoint } from '../../utils';\nimport { InputNumber as TInputNumber } from '../../../input-number';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '../../../hooks/useConfig';\nimport baseProps from './base-props';\n\nconst DELETE_KEYS: string[] = ['delete', 'backspace'];\n\nexport default defineComponent({\n name: 'LinearGradient',\n inheritAttrs: false,\n props: {\n ...baseProps,\n enableMultipleGradient: {\n type: Boolean,\n default: true,\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const statusClassNames = STATUS.value;\n const refSlider = ref(null);\n const sliderRect = reactive({\n left: 0,\n width: GRADIENT_SLIDER_DEFAULT_WIDTH,\n });\n const isDragging = ref(false);\n const isMoved = ref(false);\n const degree = ref(props.color.gradientDegree);\n const selectedId = ref(props.color.gradientSelectedId);\n const colors = ref(cloneDeep(props.color.gradientColors));\n\n watch(\n () => props.color.gradientDegree,\n (value) => (degree.value = value),\n );\n watch(\n () => props.color.gradientSelectedId,\n (value) => (selectedId.value = value),\n );\n watch(\n () => props.color.gradientColors,\n (value) => {\n colors.value = cloneDeep(value);\n },\n {\n deep: true,\n },\n );\n\n const handleChange = (key: 'degree' | 'selectedId' | 'colors', payload: any, addUsedColor?: boolean) => {\n if (props.disabled) {\n return;\n }\n props.onChange({\n key,\n payload,\n addUsedColor,\n });\n };\n\n const handleDegreeChange = (value: number) => {\n if (props.disabled || value === props.color.gradientDegree) {\n return;\n }\n degree.value = value;\n handleChange('degree', value, true);\n };\n\n const handleSelectedIdChange = (value: string) => {\n if (props.disabled) {\n return;\n }\n selectedId.value = value;\n handleChange('selectedId', value);\n };\n\n const handleColorsChange = (value: GradientColorPoint[], isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n colors.value = value;\n handleChange('colors', value, isEnded);\n };\n\n /**\n * 设置bar的位置\n * @param left\n * @returns\n */\n const updateActiveThumbLeft = (left: number) => {\n const index = colors.value.findIndex((c) => c.id === selectedId.value);\n if (index === -1) {\n return;\n }\n const point = colors.value[index];\n left = Math.max(0, Math.min(sliderRect.width, left));\n const percentLeft = (left / sliderRect.width) * 100;\n colors.value.splice(index, 1, {\n color: point.color,\n left: percentLeft,\n id: point.id,\n });\n handleColorsChange(colors.value);\n };\n\n // 移动开始\n const handleStart = (id: string) => {\n const rect = refSlider.value.getBoundingClientRect();\n sliderRect.left = rect.left;\n sliderRect.width = rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH;\n if (isDragging.value || props.disabled) {\n return;\n }\n isMoved.value = false;\n isDragging.value = true;\n handleSelectedIdChange(id);\n // 让slider获取焦点,以便键盘事件生效。\n refSlider.value.focus();\n window.addEventListener('mousemove', handleMove, false);\n window.addEventListener('mouseup', handleEnd, false);\n window.addEventListener('contextmenu', handleEnd, false);\n };\n\n // 移动中\n const handleMove = (e: MouseEvent) => {\n if (!isDragging.value || props.disabled) {\n return;\n }\n const left = e.clientX - sliderRect.left;\n isMoved.value = true;\n updateActiveThumbLeft(left);\n };\n\n // 移动结束\n const handleEnd = () => {\n if (!isDragging.value) {\n return;\n }\n setTimeout(() => {\n isDragging.value = false;\n }, 0);\n if (isMoved.value) {\n handleColorsChange(colors.value, true);\n isMoved.value = false;\n }\n window.removeEventListener('mousemove', handleMove, false);\n window.removeEventListener('mouseup', handleEnd, false);\n window.removeEventListener('contextmenu', handleEnd, false);\n };\n\n const handleKeyup = (e: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n const points = colors.value;\n let pos = points.findIndex((c) => c.id === selectedId.value);\n const { length } = points;\n // 必须保证有两个点\n if (DELETE_KEYS.includes(e.key.toLocaleLowerCase()) && length > 2 && pos >= 0 && pos <= length - 1) {\n points.splice(pos, 1);\n if (!points[pos]) {\n // eslint-disable-next-line no-nested-ternary\n pos = points[pos + 1] ? pos + 1 : points[pos - 1] ? pos - 1 : 0;\n }\n const current = points[pos];\n handleColorsChange(points, true);\n handleSelectedIdChange(current?.id);\n }\n };\n\n const handleThumbBarClick = (e: MouseEvent) => {\n if (props.disabled || !props.enableMultipleGradient) {\n return;\n }\n let left = e.clientX - sliderRect.left;\n left = Math.max(0, Math.min(sliderRect.width, left));\n const percentLeft = (left / sliderRect.width) * 100;\n const newPoint = genGradientPoint(percentLeft, props.color.rgba);\n colors.value.push(newPoint);\n handleColorsChange(colors.value, true);\n handleSelectedIdChange(newPoint.id);\n };\n\n onMounted(() => {\n const rect = refSlider.value.getBoundingClientRect();\n sliderRect.left = rect.left;\n sliderRect.width = rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH;\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener('mousemove', handleMove, false);\n window.removeEventListener('mouseup', handleEnd, false);\n window.removeEventListener('contextmenu', handleEnd, false);\n });\n\n return () => {\n const { linearGradient, gradientColors } = props.color;\n const thumbBackground = gradientColors2string({\n points: gradientColors,\n degree: 90,\n });\n return (\n
    \n
    \n \n \n {colors.value.map((t) => {\n const left = `${Math.round(t.left * 100) / 100}%`;\n return (\n e.stopPropagation()}\n onMousedown={() => handleStart(t.id)}\n >\n \n \n );\n })}\n \n
    \n
    \n
    \n `${value}°`}\n v-model={degree.value}\n onBlur={handleDegreeChange}\n onEnter={handleDegreeChange}\n disabled={props.disabled}\n />\n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent, nextTick, onBeforeUnmount, onMounted, reactive, ref } from 'vue';\nimport {\n SATURATION_PANEL_DEFAULT_HEIGHT,\n SATURATION_PANEL_DEFAULT_WIDTH,\n} from '@tdesign/common-js/color-picker/constants';\nimport { Draggable, Coordinate } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'SaturationPanel',\n props: baseProps,\n setup(props) {\n const baseClassName = useBaseClassName();\n const refPanel = ref(null);\n const refThumb = ref(null);\n const dragInstance = ref(null);\n const panelRect = reactive({\n width: SATURATION_PANEL_DEFAULT_WIDTH,\n height: SATURATION_PANEL_DEFAULT_HEIGHT,\n });\n\n const styles = computed(() => {\n const { saturation, value } = props.color;\n const { width, height } = panelRect;\n const top = Math.round((1 - value) * height);\n const left = Math.round(saturation * width);\n return {\n color: props.color.rgb,\n left: `${left}px`,\n top: `${top}px`,\n };\n });\n\n const getSaturationAndValueByCoordinate = (coordinate: Coordinate) => {\n const { width, height } = panelRect;\n const { x, y } = coordinate;\n const saturation = Math.round((x / width) * 100);\n const value = Math.round((1 - y / height) * 100);\n return {\n saturation,\n value,\n };\n };\n\n const handleDrag = (coordinate: Coordinate, isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n const { saturation, value } = getSaturationAndValueByCoordinate(coordinate);\n props.onChange({\n saturation: saturation / 100,\n value: value / 100,\n addUsedColor: isEnded,\n });\n };\n\n const handleDragEnd = (coordinate: Coordinate) => {\n if (props.disabled) {\n return;\n }\n nextTick(() => {\n handleDrag(coordinate, true);\n });\n };\n\n const panelBackground = computed(() => {\n return `hsl(${props.color.hue}, 100%, 50%)`;\n });\n\n onMounted(() => {\n panelRect.width = refPanel.value.offsetWidth || SATURATION_PANEL_DEFAULT_WIDTH;\n panelRect.height = refPanel.value.offsetHeight || SATURATION_PANEL_DEFAULT_HEIGHT;\n dragInstance.value = new Draggable(refPanel.value, {\n start() {\n panelRect.width = refPanel.value.offsetWidth;\n panelRect.height = refPanel.value.offsetHeight;\n },\n drag: (coordinate: Coordinate) => {\n handleDrag(coordinate);\n },\n end: handleDragEnd,\n });\n });\n\n onBeforeUnmount(() => {\n dragInstance.value.destroy();\n });\n\n return () => {\n return (\n \n \n \n );\n };\n },\n});\n","import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, reactive, ref } from 'vue';\nimport { SLIDER_DEFAULT_WIDTH } from '@tdesign/common-js/color-picker/constants';\nimport { Draggable, Coordinate } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'ColorSlider',\n props: {\n ...baseProps,\n className: {\n type: String,\n default: '',\n },\n value: {\n type: Number,\n default: 0,\n },\n maxValue: {\n type: Number,\n default: 360,\n },\n railStyle: {\n type: Object as PropType,\n },\n type: {\n type: String as PropType<'hue' | 'alpha'>,\n default: 'hue',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const refPanel = ref(null);\n const refThumb = ref(null);\n const dragInstance = ref(null);\n const panelRect = reactive({\n width: SLIDER_DEFAULT_WIDTH,\n });\n const styles = computed(() => {\n const { width } = panelRect;\n if (!width) {\n return;\n }\n const left = Math.round((props.value / props.maxValue) * 100);\n return {\n left: `${left}%`,\n color: props.color.rgb,\n };\n });\n\n const handleDrag = (coordinate: Coordinate, isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n const { width } = panelRect;\n const { x } = coordinate;\n const value = Math.round((x / width) * props.maxValue * 100) / 100;\n props.onChange(value, isEnded);\n };\n\n const handleDragEnd = (coordinate: Coordinate) => {\n if (props.disabled) {\n return;\n }\n handleDrag(coordinate, true);\n };\n\n onMounted(() => {\n panelRect.width = refPanel.value.offsetWidth || SLIDER_DEFAULT_WIDTH;\n dragInstance.value = new Draggable(refPanel.value, {\n start: () => {\n // pop模式下由于是隐藏显示,这个宽度让其每次点击的时候重新计算\n panelRect.width = refPanel.value.offsetWidth;\n },\n drag: (coordinate: Coordinate) => {\n handleDrag(coordinate);\n },\n end: handleDragEnd,\n });\n });\n\n onBeforeUnmount(() => {\n dragInstance.value.destroy();\n });\n\n return () => {\n const paddingStyle = {\n background: `linear-gradient(90deg, rgba(0,0,0,.0) 0%, rgba(0,0,0,.0) 93%, ${props.color.rgb} 93%, ${props.color.rgb} 100%)`,\n };\n return (\n \n {props.type === 'alpha' &&
    }\n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport ColorSlider from './slider';\nimport { useBaseClassName } from '../../hooks';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'HueSlider',\n\n inheritAttrs: false,\n props: baseProps,\n setup(props) {\n const baseClassName = useBaseClassName();\n\n return () => {\n return (\n \n );\n };\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport ColorSlider from './slider';\nimport { Color } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\n\nexport default defineComponent({\n name: 'AlphaSlider',\n inheritAttrs: false,\n props: {\n color: {\n type: Object as PropType,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n onChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const handleChange = (v: number, isDragEnd?: boolean) => {\n props.onChange(v / 100, isDragEnd);\n };\n const railStyle = computed(() => {\n return {\n background: `linear-gradient(to right, rgba(0, 0, 0, 0), ${props.color.rgb})`,\n };\n });\n\n return () => {\n return (\n \n );\n };\n },\n});\n","import { defineComponent, PropType, reactive, watch } from 'vue';\nimport { throttle } from 'lodash-es';\nimport { Color, getColorFormatInputs, getColorFormatMap } from '@tdesign/common-js/color-picker/index';\nimport props from '../../props';\nimport TInput from '../../../input';\nimport TInputNumber from '../../../input-number';\n\nexport default defineComponent({\n name: 'FormatInputs',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const modelValue = reactive({});\n const lastModelValue = reactive({});\n\n // 更新 modelValue\n const updateModelValue = () => {\n const { format, color } = props;\n if (!color) return;\n const values = getColorFormatMap(color, 'encode')[format];\n // @ts-ignore\n values.a = Math.round(color.alpha * 100);\n Object.keys(values).forEach((key) => {\n // @ts-ignore\n modelValue[key] = values[key];\n // @ts-ignore\n lastModelValue[key] = values[key];\n });\n };\n\n updateModelValue();\n const throttleUpdate = throttle(updateModelValue, 100);\n\n watch(() => {\n const { saturation, hue, value, alpha } = props.color;\n return [saturation, hue, value, alpha, props.format];\n }, throttleUpdate);\n\n const handleChange = (key: string, v: number | string) => {\n if (v === lastModelValue[key]) return;\n\n if (key === 'a') {\n // 透明通道\n // eslint-disable-next-line vue/no-mutating-props, no-param-reassign\n props.color.alpha = (v as number) / 100;\n } else if (key === 'hex' || key === 'css') {\n // 纯字符串类型的格式\n props.color.update(v as string);\n } else {\n // 需要进一步转换的格式\n props.color.update(Color.object2color(modelValue, props.format));\n }\n\n const value = getColorFormatMap(props.color, 'decode')[props.format];\n props.onInputChange(value, props.color.alpha, key, v);\n };\n\n return () => {\n const inputProps = {\n ...((props.inputProps as any) || {}),\n };\n return (\n
    \n {getColorFormatInputs(props.format, props.enableAlpha).map((config) => {\n return (\n \n {config.type === 'input' ? (\n handleChange(config.key, v)}\n onEnter={(v: string) => handleChange(config.key, v)}\n />\n ) : (\n handleChange(config.key, v)}\n onEnter={(v: number) => handleChange(config.key, v)}\n />\n )}\n
    \n );\n })}\n \n );\n };\n },\n});\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport { Color, getColorFormatOptions } from '@tdesign/common-js/color-picker/index';\nimport type { TdColorPickerProps } from '../../type';\nimport props from '../../props';\nimport { Select as TSelect, Option as TOption } from '../../../select';\nimport FormatInputs from './inputs';\nimport { useBaseClassName } from '../../hooks';\nimport type { TdSelectInputProps } from '../../../select-input/type';\n\nexport default defineComponent({\n name: 'FormatPanel',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const formatModel = ref(props.format);\n\n watch(\n () => [props.format],\n () => (formatModel.value = props.format),\n );\n\n /**\n * 格式化类型改变触发\n * @param v\n */\n const handleModeChange = (v: TdColorPickerProps['format']) => {\n formatModel.value = v;\n };\n\n return () => {\n const newProps = {\n ...props,\n format: formatModel.value,\n };\n const selectInputProps = {\n ...((props.selectInputProps as Object) || {}),\n };\n return (\n
    \n
    \n \n {getColorFormatOptions(props.enableAlpha).map((item) => (\n \n ))}\n \n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent, PropType, ref } from 'vue';\nimport { DeleteIcon as TdDeleteIcon, AddIcon as TdAddIcon } from 'tdesign-icons-vue-next';\n\nimport { Color } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '../../../hooks/useConfig';\nimport { useGlobalIcon } from '../../../hooks/useGlobalIcon';\nimport baseProps from './base-props';\n\nexport default defineComponent({\n name: 'SwatchesPanel',\n props: {\n ...baseProps,\n colors: {\n type: Array as PropType,\n default: () => [] as PropType,\n },\n title: {\n type: String,\n default: '系统色彩',\n },\n editable: {\n type: Boolean,\n default: false,\n },\n onSetColor: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n handleAddColor: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { DeleteIcon, AddIcon } = useGlobalIcon({ DeleteIcon: TdDeleteIcon, AddIcon: TdAddIcon });\n const { STATUS } = useCommonClassName();\n const statusClassNames = STATUS.value;\n const visiblePopConfirm = ref(false);\n const setVisiblePopConfirm = (visible: boolean) => {\n visiblePopConfirm.value = visible;\n };\n\n const handleClick = (color: string) => props.onSetColor(color);\n\n const isEqualCurrentColor = (color: string) => {\n return Color.compare(color, props.color.css);\n };\n\n const selectedColorIndex = computed(() => {\n return props.colors.findIndex((color) => isEqualCurrentColor(color));\n });\n\n /**\n * 移除颜色\n */\n const handleRemoveColor = () => {\n const { colors } = props;\n const selectedIndex = selectedColorIndex.value;\n if (selectedIndex === -1) return;\n colors.splice(selectedIndex, 1);\n props.onChange(colors);\n setVisiblePopConfirm(false);\n };\n\n return () => {\n const swatchesClass = `${baseClassName.value}__swatches`;\n\n const renderActions = () => {\n if (!props.editable) {\n return null;\n }\n\n return (\n
    \n props.handleAddColor()}>\n \n \n {props.colors.length > 0 ? (\n handleRemoveColor()}>\n \n \n ) : null}\n
    \n );\n };\n\n return (\n
    \n

    \n {props.title}\n {renderActions()}\n

    \n
      \n {props.colors.map((color) => {\n return (\n {\n if (props.disabled) {\n return;\n }\n handleClick(color);\n }}\n >\n
      \n \n
      \n \n );\n })}\n
    \n
    \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport {\n Color,\n DEFAULT_COLOR,\n DEFAULT_LINEAR_GRADIENT,\n DEFAULT_SYSTEM_SWATCH_COLORS,\n getColorObject,\n GradientColorPoint,\n initColorFormat,\n TD_COLOR_USED_COLORS_MAX_SIZE,\n} from '@tdesign/common-js/color-picker/index';\nimport { useCommonClassName, useConfig } from '../../../hooks/useConfig';\nimport props from '../../props';\nimport PanelHeader from './header';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport HueSlider from './hue';\nimport AlphaSlider from './alpha';\nimport FormatPanel from '../format';\nimport SwatchesPanel from './swatches';\nimport type { TdColorPickerProps, ColorPickerChangeTrigger } from '../../type';\nimport type { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\nimport useVModel from '../../../hooks/useVModel';\nimport useDefaultValue from '../../../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'ColorPanel',\n props: {\n ...props,\n togglePopup: {\n type: Function,\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const { t, globalConfig } = useConfig('colorPicker');\n const statusClassNames = STATUS.value;\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const getModeByColor = (input: string) => {\n if (props.colorModes.length === 1) return props.colorModes[0];\n return props.colorModes.includes('linear-gradient') && Color.isGradientColor(input)\n ? 'linear-gradient'\n : 'monochrome';\n };\n const mode = ref(getModeByColor(innerValue.value));\n\n const isGradient = computed(() => mode.value === 'linear-gradient');\n const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n\n const formatModel = ref(initColorFormat(props.format, props.enableAlpha));\n\n /**\n * 添加最近使用颜色\n * @returns void\n */\n const addRecentlyUsedColor = () => {\n if (innerRecentColors.value === null || innerRecentColors.value === false) {\n return;\n }\n const colors = cloneDeep(innerRecentColors.value as string[]) || [];\n const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n const index = colors.indexOf(currentColor);\n if (index > -1) {\n colors.splice(index, 1);\n }\n colors.unshift(currentColor);\n if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n }\n handleRecentlyUsedColorsChange(colors);\n };\n\n /**\n * 最近使用颜色变更时触发\n * @param colors\n */\n const handleRecentlyUsedColorsChange = (colors: string[]) => {\n setInnerRecentColors(colors);\n };\n\n /**\n * onChange\n * @param trigger\n */\n const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n const value = color.value.getFormattedColor(props.format, props.enableAlpha);\n setInnerValue(value, {\n color: getColorObject(color.value),\n trigger: trigger || 'palette-saturation-brightness',\n });\n };\n\n watch(\n () => innerValue.value,\n (newColor) => {\n const newMode = getModeByColor(newColor);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(newColor);\n },\n );\n\n /**\n * mode change\n * @param newMode\n * @returns\n */\n const handleModeChange = (newMode: TdColorModes) => {\n mode.value = newMode;\n\n const isGradientMode = newMode === 'linear-gradient';\n color.value.isGradient = isGradientMode;\n\n if (isGradientMode) {\n color.value.update(\n color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n );\n } else {\n color.value.update(color.value.rgba);\n }\n\n emitColorChange();\n };\n\n /**\n * 饱和度亮度变化\n * @param param0\n */\n const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color.value;\n let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n if (value !== val && saturation !== sat) {\n color.value.saturation = saturation;\n color.value.value = value;\n changeTrigger = 'palette-saturation-brightness';\n } else if (saturation !== sat) {\n color.value.saturation = saturation;\n changeTrigger = 'palette-saturation';\n } else if (value !== val) {\n color.value.value = value;\n changeTrigger = 'palette-brightness';\n } else {\n return;\n }\n\n emitColorChange(changeTrigger);\n };\n\n /**\n * 色相变化\n * @param hue\n */\n const handleHueChange = (hue: number) => {\n color.value.hue = hue;\n emitColorChange('palette-hue-bar');\n props.onPaletteBarChange?.({\n color: getColorObject(color.value),\n });\n };\n\n /**\n * 透明度变化\n * @param alpha\n */\n const handleAlphaChange = (alpha: number) => {\n color.value.alpha = alpha;\n emitColorChange('palette-alpha-bar');\n };\n\n /**\n * 输入框触发改变\n * @param input\n * @param alpha\n */\n const handleInputChange = (input: string, alpha?: number) => {\n color.value.update(input);\n color.value.alpha = alpha;\n emitColorChange('input');\n };\n\n /**\n * 渐变改变\n * @param param0\n */\n const handleGradientChange = ({\n key,\n payload,\n }: {\n key: 'degree' | 'selectedId' | 'colors';\n payload: number | string | GradientColorPoint[];\n }) => {\n let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n switch (key) {\n case 'degree':\n color.value.gradientDegree = payload as number;\n trigger = 'input';\n break;\n case 'selectedId':\n color.value.gradientSelectedId = payload as string;\n break;\n case 'colors':\n color.value.gradientColors = payload as GradientColorPoint[];\n break;\n }\n emitColorChange(trigger);\n };\n\n /**\n * 色块点击\n * @param type\n * @param value\n */\n const handleSetColor = (value: string, trigger: ColorPickerChangeTrigger) => {\n const newMode = getModeByColor(value);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(value);\n emitColorChange(trigger);\n };\n\n return () => {\n const baseProps = {\n color: color.value,\n disabled: props.disabled,\n };\n\n // 只支持渐变模式\n const onlySupportGradient = props.colorModes.length === 1 && props.colorModes.includes('linear-gradient');\n\n // 最近使用颜色\n let recentColors = innerRecentColors.value;\n if (onlySupportGradient && Array.isArray(recentColors)) {\n recentColors = recentColors.filter((color) => Color.isGradientColor(color));\n }\n const showUsedColors = !!Array.isArray(recentColors);\n\n // 系统预设颜色\n let systemColors = props.swatchColors;\n if (systemColors === undefined) {\n systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n }\n if (onlySupportGradient) {\n systemColors = systemColors.filter((color) => Color.isGradientColor(color));\n }\n const showSystemColors = Array.isArray(systemColors);\n\n const renderSwatches = () => {\n if (!showSystemColors && !showUsedColors) return null;\n return (\n <>\n
    \n {showUsedColors ? (\n handleSetColor(color, 'recent')}\n onChange={handleRecentlyUsedColorsChange}\n />\n ) : null}\n {showSystemColors ? (\n handleSetColor(color, 'preset')}\n />\n ) : null}\n
    \n \n );\n };\n\n return (\n
    \n \n
    \n {isGradient.value ? (\n \n ) : null}\n\n \n\n
    \n
    \n \n {props.enableAlpha ? : null}\n
    \n\n {props.showPrimaryColorPreview ? (\n
    \n \n
    \n ) : null}\n
    \n\n \n {renderSwatches()}\n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './props';\nimport ColorPanel from './components/panel';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { pickBy } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TColorPickerPanel',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const newProps = computed(() => pickBy({ ...props, ...attrs }, (v) => v !== undefined));\n const prefix = usePrefixClass();\n return () => ;\n },\n});\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport TInput from '../../../input';\nimport { Color, getColorObject } from '../../utils';\nimport { TdColorPickerProps } from '../../type';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '../../../hooks/useConfig';\n\nexport default defineComponent({\n name: 'DefaultTrigger',\n inheritAttrs: false,\n props: {\n color: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n borderless: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n inputProps: {\n type: Object as PropType,\n default: () => {\n return {\n autoWidth: true,\n };\n },\n },\n onTriggerChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onTriggerClear: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n size: {\n type: String as PropType,\n default: 'medium',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const value = ref(props.color);\n const { SIZE: sizeClassNames } = useCommonClassName();\n watch(\n () => [props.color],\n () => (value.value = props.color),\n );\n\n const handleChange = (input: string) => {\n if (input !== props.color) {\n props.onTriggerChange(value.value, {\n color: getColorObject(new Color(input)),\n trigger: 'input',\n });\n }\n };\n\n const handleClear = (context: { e: MouseEvent }) => props.onTriggerClear?.(context);\n\n return () => {\n const inputSlots = {\n label: () => {\n return (\n
    \n \n
    \n );\n },\n };\n return (\n \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs } from 'vue';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport props from './props';\nimport { Popup as TPopup } from '../popup';\nimport ColorPanel from './components/panel';\nimport DefaultTrigger from './components/trigger';\nimport { useBaseClassName } from './hooks';\n\nexport default defineComponent({\n name: 'TColorPicker',\n props,\n setup(props) {\n const baseClassName = useBaseClassName();\n const renderTNodeJSXDefault = useTNodeDefault();\n const visible = ref(false);\n const setVisible = (value: boolean) => (visible.value = value);\n\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const refTrigger = ref();\n\n const handleClear = (context: { e: MouseEvent }) => props.onClear?.(context);\n\n const renderPopupContent = () => {\n if (props.disabled) {\n return null;\n }\n\n return (\n \n );\n };\n\n return () => {\n const popProps = {\n placement: 'bottom-left',\n ...((props.popupProps as any) || {}),\n trigger: 'click',\n attach: 'body',\n overlayClassName: [baseClassName.value],\n visible: visible.value,\n overlayInnerStyle: {\n padding: 0,\n },\n onVisibleChange: (\n visible: boolean,\n context: {\n trigger: string;\n },\n ) => {\n if (context.trigger === 'document') {\n setVisible(false);\n }\n },\n };\n return (\n \n
    setVisible(!visible.value)} ref={refTrigger}>\n {renderTNodeJSXDefault(\n 'default',\n ,\n )}\n
    \n
    \n );\n };\n },\n});\n","import _ColorPickerPanel from './color-picker-panel';\nimport _ColorPicker from './color-picker';\nimport withInstall from '../utils/withInstall';\nimport { TdColorPickerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ColorPickerProps = TdColorPickerProps;\nexport type ColorPickerPanelProps = TdColorPickerProps;\n\nexport const ColorPickerPanel = withInstall(_ColorPickerPanel);\nexport const ColorPicker = withInstall(_ColorPicker);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 头像替换文本,仅当图片加载失败时有效 */\n alt: {\n type: String,\n default: '',\n },\n /** 子元素内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 加载失败时隐藏图片 */\n hideOnLoadFailed: Boolean,\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 图片地址 */\n image: {\n type: String,\n default: '',\n },\n /** 透传至 Image 组件 */\n imageProps: {\n type: Object as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdAvatarProps['shape'],\n validator(val: TdAvatarProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round'].includes(val);\n },\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级高于 AvatarGroup.size 。Avatar 单独存在时,默认值为 medium。如果父组件存在 AvatarGroup,默认值便由 AvatarGroup.size 决定 */\n size: {\n type: String,\n default: '',\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdImageProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片描述 */\n alt: {\n type: String,\n default: '',\n },\n /** 自定义图片加载失败状态下的显示内容 */\n error: {\n type: [String, Function] as PropType,\n },\n /** 图片加载失败时,显示当前链接设置的图片地址。如果要使用组件图标或完全自定义加载失败时显示的内容,请更为使用 `error` */\n fallback: {\n type: String,\n default: '',\n },\n /** 图片填充模式 */\n fit: {\n type: String as PropType,\n default: 'fill' as TdImageProps['fit'],\n validator(val: TdImageProps['fit']): boolean {\n if (!val) return true;\n return ['contain', 'cover', 'fill', 'none', 'scale-down'].includes(val);\n },\n },\n /** 是否展示为图集样式 */\n gallery: Boolean,\n /** 是否开启图片懒加载 */\n lazy: Boolean,\n /** 自定义加载中状态的图片内容,如:“加载中” */\n loading: {\n type: [String, Function] as PropType,\n },\n /** 图片上方的浮层内容 */\n overlayContent: {\n type: [String, Function] as PropType,\n },\n /** 浮层 `overlayContent` 出现的时机 */\n overlayTrigger: {\n type: String as PropType,\n default: 'always' as TdImageProps['overlayTrigger'],\n validator(val: TdImageProps['overlayTrigger']): boolean {\n if (!val) return true;\n return ['always', 'hover'].includes(val);\n },\n },\n /** 占位元素,展示层级低于 `loading` `error` 和图片本身,值类型为字符串时表示占位图片地址 */\n placeholder: {\n type: [String, Function] as PropType,\n },\n /** 等同于原生的 object-position 属性,可选值为 top right bottom left 或 string,可以自定义任何单位,px 或者 百分比 */\n position: {\n type: String,\n default: 'center',\n },\n /** `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n referrerpolicy: {\n type: String as PropType,\n default: 'strict-origin-when-cross-origin' as TdImageProps['referrerpolicy'],\n validator(val: TdImageProps['referrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片圆角类型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdImageProps['shape'],\n validator(val: TdImageProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round', 'square'].includes(val);\n },\n },\n /** 用于显示图片的链接或原始图片文件对象 */\n src: {\n type: [String, Object] as PropType,\n },\n /** 图片链接集合,用于支持特殊格式的图片,如 `.avif` 和 `.webp`。会优先加载 `srcset` 中的图片格式,浏览器不支持的情况下,加载 `src` 设置的图片地址 */\n srcset: {\n type: Object as PropType,\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n /** 图片加载完成时触发 */\n onLoad: Function as PropType,\n};\n","import { defineComponent, ref, onMounted, computed, onUnmounted, watch, toRefs } from 'vue';\nimport { omit } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeDefault, useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport Space from '../space';\nimport { useImagePreviewUrl } from '../hooks/useImagePreviewUrl';\n\nexport default defineComponent({\n name: 'TImage',\n props,\n setup(props) {\n const divRef = ref(null);\n const imgRef = ref(null);\n let io: IntersectionObserver = null;\n\n const { src } = toRefs(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n onMounted(() => {\n //在nuxt3中img的onload事件会失效\n if (imgRef.value?.complete && !props.lazy) {\n triggerHandleLoad();\n }\n\n if (!props.lazy || !divRef.value) return;\n\n const ioObserver = observe(divRef.value, null, handleLoadImage, 0);\n io = ioObserver;\n });\n onUnmounted(() => {\n divRef.value && io && io.unobserve(divRef.value);\n });\n\n const { classPrefix, globalConfig } = useConfig('image');\n\n // replace image url\n const imageStrSrc = ref(src.value);\n\n watch(\n [src, globalConfig],\n ([src, globalConfig]) => {\n const { replaceImageSrc } = globalConfig || {};\n const tmpUrl = isFunction(replaceImageSrc) ? replaceImageSrc(props) : src;\n if (tmpUrl === imageStrSrc.value && imageStrSrc.value) return;\n imageStrSrc.value = tmpUrl;\n },\n { immediate: true },\n );\n\n const { previewUrl } = useImagePreviewUrl(imageStrSrc);\n\n watch([previewUrl], () => {\n hasError.value = false;\n isLoaded.value = false;\n });\n\n const shouldLoad = ref(!props.lazy);\n const handleLoadImage = () => {\n shouldLoad.value = true;\n };\n\n const isLoaded = ref(false);\n const handleLoad = (e: Event) => {\n isLoaded.value = true;\n props.onLoad?.({ e });\n };\n const triggerHandleLoad = () => {\n const loadEvent = new Event('load');\n Object.defineProperty(loadEvent, 'target', {\n value: imgRef.value,\n enumerable: true,\n });\n handleLoad(loadEvent);\n };\n const hasError = ref(false);\n const handleError = (e: Event) => {\n hasError.value = true;\n props.onError?.({ e });\n if (props.fallback) {\n imageStrSrc.value = props.fallback;\n hasError.value = false;\n }\n };\n\n const hasMouseEvent = computed(() => {\n return props.overlayTrigger === 'hover';\n });\n\n const imageClasses = computed(() => [\n `${classPrefix.value}-image`,\n `${classPrefix.value}-image--fit-${props.fit}`,\n `${classPrefix.value}-image--position-${props.position}`,\n ]);\n\n const shouldShowOverlay = ref(!hasMouseEvent.value);\n const handleToggleOverlay = () => {\n if (hasMouseEvent.value) {\n shouldShowOverlay.value = !shouldShowOverlay.value;\n }\n };\n\n const renderPlaceholder = () => {\n const placeholder = renderTNodeJSX('placeholder');\n if (!placeholder) return null;\n return
    {placeholder}
    ;\n };\n\n const renderGalleryShadow = () => {\n if (!props.gallery) return null;\n return \n );\n };\n\n function renderImageSrcset() {\n return (\n \n {Object.entries(props.srcset).map(([type, url]) => (\n \n ))}\n {renderImage()}\n \n );\n }\n\n function renderImage() {\n // string | File\n const url = isString(imageStrSrc.value) ? imageStrSrc.value : previewUrl.value;\n return (\n \n );\n }\n\n const renderTNodDefault = useTNodeDefault();\n\n return () => {\n return (\n \n {renderPlaceholder()}\n {renderGalleryShadow()}\n\n {(hasError.value || !shouldLoad.value) &&
    }\n {!(hasError.value || !shouldLoad.value) &&\n (props.srcset && Object.keys(props.srcset).length ? renderImageSrcset() : renderImage())}\n {!(hasError.value || !shouldLoad.value) && !isLoaded.value && (\n
    \n {renderTNodeJSX('loading') || (\n \n \n {isString(props.loading) ? props.loading : globalConfig.value.loadingText}\n \n )}\n
    \n )}\n\n {hasError.value && (\n
    \n {renderTNodDefault('error', {\n defaultNode: (\n \n \n {isString(props.error) ? props.error : globalConfig.value.errorText}\n \n ),\n })}\n
    \n )}\n\n {renderOverlay()}\n
    \n );\n };\n },\n});\n","import _Image from './image';\nimport withInstall from '../utils/withInstall';\nimport { TdImageProps } from './type';\n\nimport './style';\n\nexport type ImageProps = TdImageProps;\nexport * from './type';\n\nexport const Image = withInstall(_Image);\nexport default Image;\n","import { computed, defineComponent, inject, nextTick, onMounted, onUpdated, ref, watch } from 'vue';\nimport props from './props';\nimport { TdAvatarProps } from './type';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport Image, { ImageProps } from '../image';\n\nexport default defineComponent({\n name: 'TAvatar',\n props,\n setup(props: TdAvatarProps) {\n const COMPONENT_NAME = usePrefixClass('avatar');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { SIZE } = useCommonClassName();\n const avatarGroup = inject('avatarGroup', undefined);\n const avatar = ref(null);\n const avatarChild = ref(null);\n const isImgExist = ref(true);\n // 内容区在左右两边的间距保持为4\n const gap = ref(4);\n const scale = ref('');\n\n const sizeValue = computed(() => props.size || avatarGroup?.size);\n const isCustomSize = computed(() => sizeValue.value && !SIZE.value[sizeValue.value]);\n\n const customAvatarSize = computed(() => {\n return isCustomSize.value\n ? {\n width: sizeValue.value,\n height: sizeValue.value,\n 'font-size': `${Number.parseInt(sizeValue.value, 10) / 2}px`,\n }\n : {};\n });\n const customImageSize = computed(() => {\n return isCustomSize.value\n ? {\n height: sizeValue.value,\n width: sizeValue.value,\n }\n : {};\n });\n const customCharacterSize = computed(() => {\n return {\n transform: scale.value,\n };\n });\n\n const handleImgLoadError: ImageProps['onError'] = ({ e }) => {\n const { hideOnLoadFailed } = props;\n isImgExist.value = !hideOnLoadFailed;\n props.onError?.({ e });\n };\n // 设置字符头像大小自适应\n const setScaleParams = () => {\n const $avatar = avatar.value as HTMLElement;\n const $avatarChild = avatarChild.value as HTMLElement;\n const avatarWidth = $avatar?.offsetWidth;\n const avatarChildWidth = $avatarChild?.offsetWidth;\n if (gap.value * 2 < avatarWidth) {\n scale.value =\n avatarChildWidth > avatarWidth - gap.value * 2\n ? `scale(${(avatarWidth - gap.value * 2) / avatarChildWidth})`\n : 'scale(1)';\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n watch(\n () => props.image,\n (val) => {\n if (val) {\n // 重置 flag,避免切换后无法渲染\n isImgExist.value = true;\n }\n },\n );\n\n return () => {\n let content = renderContent('default', 'content');\n const icon = renderTNodeJSX('icon');\n const isIconOnly = icon && !content;\n const { shape, image, alt } = props;\n const avatarClass = [\n `${COMPONENT_NAME.value}`,\n SIZE.value[sizeValue.value],\n {\n [`${COMPONENT_NAME.value}--circle`]: shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: shape === 'round',\n [`${COMPONENT_NAME.value}__icon`]: !!isIconOnly,\n },\n ];\n content = (\n \n {content}\n \n );\n if (icon) {\n content = [icon, !isIconOnly ? content : ''];\n }\n\n if (image && isImgExist.value) {\n content = (\n \n );\n }\n return (\n
    \n {content}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarGroupProps } from '../avatar/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上 */\n cascading: {\n type: String as PropType,\n default: 'right-up' as TdAvatarGroupProps['cascading'],\n validator(val: TdAvatarGroupProps['cascading']): boolean {\n if (!val) return true;\n return ['left-up', 'right-up'].includes(val);\n },\n },\n /** 头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多` */\n collapseAvatar: {\n type: [String, Function] as PropType,\n },\n /** 能够同时显示的最多头像数量 */\n max: {\n type: Number,\n },\n /** 头像右上角提示信息 */\n popupProps: {\n type: Object as PropType,\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size */\n size: {\n type: String,\n default: '',\n },\n};\n","import { defineComponent, provide, VNode } from 'vue';\nimport props from './avatar-group-props';\nimport Avatar from './avatar';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { getChildren } from '../utils/render-tnode';\n\nexport default defineComponent({\n name: 'TAvatarGroup',\n props,\n setup(props) {\n provide('avatarGroup', props);\n const renderTNodeJSX = useTNodeJSX();\n\n const AVATAR_NAME = usePrefixClass('avatar');\n const COMPONENT_NAME = usePrefixClass('avatar-group');\n\n const renderEllipsisAvatar = (children: Array): Array => {\n if (children?.length > props.max) {\n const content = getEllipsisContent(children);\n const outAvatar = children.slice(0, props.max);\n outAvatar.push(\n \n {content}\n ,\n );\n return outAvatar;\n }\n return children;\n };\n\n // collapseAvatar\n const getEllipsisContent = (children: Array) => {\n return renderTNodeJSX('collapseAvatar') || `+${children.length - props.max}`;\n };\n\n return () => {\n const children = renderTNodeJSX('default');\n const { cascading, max } = props;\n const groupClass = [\n `${COMPONENT_NAME.value}`,\n {\n [`${AVATAR_NAME.value}--offset-right`]: cascading === 'right-up',\n [`${AVATAR_NAME.value}--offset-left`]: cascading === 'left-up',\n },\n ];\n const content = max && max >= 0 ? [renderEllipsisAvatar(getChildren(children))] : [children];\n\n return
    {content}
    ;\n };\n },\n});\n","import _Avatar from './avatar';\nimport _AvatarGroup from './group';\nimport withInstall from '../utils/withInstall';\nimport { TdAvatarProps, TdAvatarGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type AvatarProps = TdAvatarProps;\nexport type AvatarGroupProps = TdAvatarGroupProps;\n\nexport const Avatar = withInstall(_Avatar);\nexport const AvatarGroup = withInstall(_AvatarGroup);\n\nexport default Avatar;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdBadgeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 徽标内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+ */\n count: {\n type: [String, Number, Function] as PropType,\n default: 0,\n },\n /** 徽标内容,默认插槽,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为红点 */\n dot: Boolean,\n /** 封顶的数字值 */\n maxCount: {\n type: Number,\n default: 99,\n },\n /** 设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdBadgeProps['shape'],\n validator(val: TdBadgeProps['shape']): boolean {\n return ['circle', 'round'].includes(val);\n },\n },\n /** 当数值为 0 时,是否展示徽标 */\n showZero: Boolean,\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBadgeProps['size'],\n validator(val: TdBadgeProps['size']): boolean {\n return ['small', 'medium'].includes(val);\n },\n },\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TBadge',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n /** 内容计算相关逻辑 start */\n const displayCount = computed(() => {\n let count = renderTNodeJSX('count');\n\n if (Number.isNaN(Number(count))) {\n return count;\n }\n count = Number(props.count);\n return count > props.maxCount ? `${props.maxCount}+` : count;\n });\n\n const getOffset = () => {\n if (!props.offset) return {};\n let [xOffset, yOffset]: Array = props.offset;\n xOffset = Number.isNaN(Number(xOffset)) ? xOffset : `${xOffset}px`;\n yOffset = Number.isNaN(Number(yOffset)) ? yOffset : `${yOffset}px`;\n return { xOffset, yOffset };\n };\n /** 内容计算相关逻辑 end */\n\n /** 样式计算相关逻辑 start */\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('badge');\n const isHidden = computed(() => {\n return !props.showZero && (displayCount.value === 0 || displayCount.value === '0');\n });\n\n const badgeClassNames = computed(() => {\n return [\n {\n [`${COMPONENT_NAME.value}--dot`]: !!props.dot,\n [`${COMPONENT_NAME.value}--circle`]: !props.dot && props.shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: !props.dot && props.shape === 'round',\n [`${classPrefix.value}-size-s`]: props.size === 'small',\n },\n ];\n });\n\n const inlineStyle = computed(() => {\n const { xOffset, yOffset } = getOffset();\n return {\n background: props.color,\n right: xOffset,\n top: yOffset,\n };\n });\n /** 样式计算相关逻辑 end */\n\n return () => (\n
    \n {renderContent('default', 'content')}\n {isHidden.value ? null : (\n \n {props.dot ? null : displayCount.value}\n \n )}\n
    \n );\n },\n});\n","import _Badge from './badge';\nimport withInstall from '../utils/withInstall';\nimport { TdBadgeProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type BadgeProps = TdBadgeProps;\n\nexport const Badge = withInstall(_Badge);\nexport default Badge;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCalendarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 单元格插槽 */\n cell: {\n type: [String, Function] as PropType,\n },\n /** 单元格插槽,在原来的内容之后追加 */\n cellAppend: {\n type: [String, Function] as PropType,\n },\n /** 右上角控制器配置。支持全局配置。值为 false 则表示不显示控制器,值为 true 则显示控制器默认配置,值类型为 CalendarController 则显示为自定义控制器配置 */\n controllerConfig: {\n type: [Boolean, Object] as PropType,\n default: undefined as TdCalendarProps['controllerConfig'],\n },\n /** 小于 10 的日期,是否使用 '0' 填充。支持全局配置。默认表现为 `01` `02`,值为 false 表现为 `1` `2` `9` */\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n /** 第一天从星期几开始,仅在日历展示维度为月份时(mode = month)有效。默认为 1 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdCalendarProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,决定事件参数 formattedFilterDate 的输出值。[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'YYYY-MM-DD',\n },\n /** 头部插槽(左上角处,默认不显示任何内容) */\n head: {\n type: [String, Function] as PropType,\n },\n /** 默认是否显示周末 */\n isShowWeekendDefault: {\n type: Boolean,\n default: true,\n },\n /** 日历展示维度 */\n mode: {\n type: String as PropType,\n default: 'month' as TdCalendarProps['mode'],\n validator(val: TdCalendarProps['mode']): boolean {\n if (!val) return true;\n return ['month', 'year'].includes(val);\n },\n },\n /** 控制当前面板展示月份,优先级高于 `controllerConfig.month` */\n month: {\n type: [String, Number] as PropType,\n },\n /** 是否高亮多个日期单元格 */\n multiple: Boolean,\n /** 是否禁用单元格右键默认系统菜单 */\n preventCellContextmenu: Boolean,\n /** 用于设置日历的年月份显示范围,[范围开始,范围结束] */\n range: {\n type: Array as PropType,\n },\n /** 日历风格 */\n theme: {\n type: String as PropType,\n default: 'full' as TdCalendarProps['theme'],\n validator(val: TdCalendarProps['theme']): boolean {\n if (!val) return true;\n return ['full', 'card'].includes(val);\n },\n },\n /** 当前高亮的日期 */\n value: {\n type: [String, Array, Date] as PropType,\n },\n /** 用于自定义日历星期呈现方式。CalendarWeek.day 表示当前是星期几。示例一:['周一', '周二', '周三', '周四', '周五', '星期六', '星期天']。示例二:`({ day }) => '周' + day` */\n week: {\n type: [Array, Function] as PropType,\n },\n /** 控制当前面板展示年份,优先级高于 `controllerConfig.year` */\n year: {\n type: [String, Number] as PropType,\n },\n /** 日历单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 日历单元格双击时触发 */\n onCellDoubleClick: Function as PropType,\n /** 日历单元格右击时触发 */\n onCellRightClick: Function as PropType,\n /** 右上角控件组选中值有变化的时候触发 */\n onControllerChange: Function as PropType,\n /** 月份切换时触发 */\n onMonthChange: Function as PropType,\n};\n","interface ModeOption {\n // 选项值\n value: string;\n // 选项展示的文本\n label: string;\n}\n\n/** 常量 */\n// 组件配置项名\nexport const COMPONENT_NAME = 'calendar';\n// 非法日期的标识\nexport const INVALID_DATE = 'Invalid Date';\n// 最小年份\nexport const MIN_YEAR = 1970;\n// 每年首月份\nexport const FIRST_MONTH_OF_YEAR = 1;\n// 每年最后一个月份\nexport const LAST_MONTH_OF_YEAR = 12;\n\n/** 默认值 */\n// 默认的日期字符串格式\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';\n// 默认模式值\nexport const DEFAULT_MODE = 'month';\n// 默认周起始日\nexport const DEFAULT_FIRST_DAY_OF_WEEK = 1;\n// 默认风格类型\nexport const DEFAULT_THEME = 'full';\n// 年历中每一行显示的月数量\nexport const DEFAULT_YEAR_CELL_NUMINROW = 4;\n\n/** 数据源 */\n// 日历组件风格的可选值\nexport const THEME_LIST: string[] = ['full', 'card'];\n// 日历组件模式的可选值\nexport const MODE_LIST: string[] = ['month', 'year'];\n// 日历组件模式选项列表\nexport const MODE_OPTION_LIST: ModeOption[] = [\n { value: 'month', label: '月' },\n { value: 'year', label: '年' },\n];\n// 日历组件首列星期的可选值\nexport const FIRST_DAY_OF_WEEK_LIST: number[] = [1, 2, 3, 4, 5, 6, 7];\n\n/** map */\n// 一些固定的文本\nexport const TEXT_MAP: Record = {\n showWeekend: '显示周末',\n hideWeekend: '隐藏周末',\n today: '今天',\n thisMonth: '本月',\n};\n// 星期的显示值\nexport const DAY_CN_MAP: Record = {\n 1: '一',\n 2: '二',\n 3: '三',\n 4: '四',\n 5: '五',\n 6: '六',\n 7: '日',\n};\n// 月份的显示值\nexport const MONTH_CN_MAP: Record = {\n 1: '一月',\n 2: '二月',\n 3: '三月',\n 4: '四月',\n 5: '五月',\n 6: '六月',\n 7: '七月',\n 8: '八月',\n 9: '九月',\n 10: '十月',\n 11: '十一月',\n 12: '十二月',\n};\n\nexport default {\n COMPONENT_NAME,\n INVALID_DATE,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n\n DEFAULT_DATE_FORMAT,\n DEFAULT_MODE,\n DEFAULT_FIRST_DAY_OF_WEEK,\n DEFAULT_THEME,\n DEFAULT_YEAR_CELL_NUMINROW,\n\n TEXT_MAP,\n MODE_LIST,\n MODE_OPTION_LIST,\n FIRST_DAY_OF_WEEK_LIST,\n\n THEME_LIST,\n DAY_CN_MAP,\n MONTH_CN_MAP,\n};\n","import dayjs from 'dayjs';\n\nimport { TdCalendarProps, CalendarCell } from '../type';\nimport { CalendarState } from '../types';\n\n// 组件的一些常量\nimport { FIRST_MONTH_OF_YEAR, LAST_MONTH_OF_YEAR, DAY_CN_MAP } from '../consts';\n\n/**\n * 获取一个日期是周几(1~7)\n */\nexport const getDay = (dt: Date): number => {\n let day = dayjs(dt).day();\n if (day === 0) {\n day = 7;\n }\n return day;\n};\n\n/**\n * 获取星期的中文\n * @param num 星期(1~7)\n */\nexport const getDayCn = (num: number): string => {\n let re = '';\n const numStr = num.toString();\n if (numStr in DAY_CN_MAP) {\n re = DAY_CN_MAP[numStr];\n }\n return re;\n};\n\n/**\n * 获取一个日期在日历上的列下标\n * @param firstDayOfWeek 周起始日(1~7)\n * @param dt\n */\nexport const getCellColIndex = (firstDayOfWeek: number, dt: Date): number => {\n let re = 0;\n const day = getDay(dt);\n if (day >= firstDayOfWeek) {\n re = day - firstDayOfWeek;\n } else {\n re = 7 - firstDayOfWeek + day;\n }\n return re;\n};\n/**\n * 返回日期+天数(天数可以负数)\n */\nexport const addDate = (dt: Date, days: number) => {\n const d = new Date(dt);\n d.setDate(d.getDate() + days);\n return d;\n};\n\n/**\n * 创建月历单元格数据\n */\nexport const createYearCellsData = (props: TdCalendarProps, state: CalendarState): CalendarCell[] => {\n const { curSelectedYear: year, curDate, curDateList } = state;\n const { format, multiple } = props;\n\n const monthsArr: CalendarCell[] = [];\n for (let num = FIRST_MONTH_OF_YEAR; num <= LAST_MONTH_OF_YEAR; num++) {\n const date = new Date(year, num - 1);\n const isCurrent = multiple\n ? !!curDateList.find((item) => item.year() === year && parseInt(item.format('M'), 10) === num)\n : curDate.year() === year && parseInt(curDate.format('M'), 10) === num;\n monthsArr.push({\n mode: 'year',\n isCurrent,\n date,\n formattedDate: dayjs(date).format(format),\n filterDate: null,\n formattedFilterDate: null,\n isShowWeekend: true,\n });\n }\n\n return monthsArr;\n};\n\n/**\n * 创建日历单元格数据\n */\nexport const createMonthCellsData = (props: TdCalendarProps, state: CalendarState): CalendarCell[][] => {\n const {\n curSelectedYear: year,\n curSelectedMonth: month,\n realFirstDayOfWeek: firstDayOfWeek,\n curDate,\n curDateList,\n } = state;\n const { format, multiple } = props;\n\n const daysArr: CalendarCell[][] = [];\n // 当前月份的开始日期\n const begin: Date = dayjs(`${year}-${month}`).startOf('month').toDate();\n // 当前月份的结束日期\n const end: Date = dayjs(dayjs(`${year}-${month}`).endOf('month').format('YYYY-MM-DD')).toDate();\n const days = end.getDate();\n\n const beginDateColIndex = getCellColIndex(firstDayOfWeek, begin);\n let arr = [];\n let num = 1;\n\n const createCellData = (belongTo: number, isCurrent: boolean, date: Date, weekOrder: number): CalendarCell => {\n const day = getDay(date);\n return {\n mode: 'month',\n belongTo,\n isCurrent,\n day,\n weekOrder,\n date,\n formattedDate: dayjs(date).format(format),\n filterDate: null,\n formattedFilterDate: null,\n isShowWeekend: true,\n };\n };\n\n const judgeIsCurrent = (date: Date) => {\n const isCurrent = multiple ? !!curDateList.find((item) => item.isSame(dayjs(date))) : curDate.isSame(dayjs(date));\n return isCurrent;\n };\n\n // 添加上个月中和当前月第一天同一周的日期\n for (let i = 0; i < beginDateColIndex; i++) {\n const date = addDate(begin, i - beginDateColIndex);\n arr.push(createCellData(-1, false, date, num));\n if (arr.length === 7) {\n daysArr.push(arr);\n arr = [];\n num += 1;\n }\n }\n for (let i = 0; i < days; i++) {\n const date = addDate(begin, i);\n const isCurrent = judgeIsCurrent(date);\n arr.push(createCellData(0, isCurrent, date, num));\n if (arr.length === 7) {\n daysArr.push(arr);\n arr = [];\n num += 1;\n }\n }\n // 添加下个月中和当前月最后同一周的日期\n if (arr.length) {\n const nextMonthCellNum = 7 - arr.length;\n for (let i = 0; i < nextMonthCellNum; i++) {\n const date = addDate(end, i + 1);\n arr.push(createCellData(1, false, date, num));\n }\n daysArr.push(arr);\n }\n\n return daysArr;\n};\n\n/**\n * 根据当前时间创建一个默认日期\n * @returns 当前日期都dayjs对象\n */\nexport const createDefaultCurDate = (): dayjs.Dayjs => dayjs(dayjs().format('YYYY-MM-DD'));\n","import { reactive, watch } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useConfig } from '../../hooks/useConfig';\nimport { COMPONENT_NAME } from '../consts';\nimport { createDefaultCurDate } from '../utils';\nimport { TdCalendarProps } from '../type';\nimport { CalendarState } from '../types';\nimport { isArray } from 'lodash-es';\n\nexport function useState(props: TdCalendarProps) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const state = reactive({\n realFirstDayOfWeek: 1,\n curDate: null,\n curDateList: [],\n curSelectedYear: null,\n curSelectedMonth: null,\n curSelectedMode: null,\n isShowWeekend: true,\n controlSize: 'medium',\n });\n\n function toToday() {\n const curDate = createDefaultCurDate();\n state.curDate = curDate;\n state.curSelectedYear = curDate.year();\n state.curSelectedMonth = parseInt(curDate.format('M'), 10);\n }\n\n function setCurSelectedYear(year?: TdCalendarProps['year']) {\n const curSelectedYear = year ? parseInt(`${year}`, 10) : createDefaultCurDate().year();\n if (!isNaN(curSelectedYear) && curSelectedYear > 0) {\n state.curSelectedYear = curSelectedYear;\n }\n }\n\n function setCurSelectedMonth(month?: TdCalendarProps['month']) {\n const curSelectedMonth = month ? parseInt(`${month}`, 10) : parseInt(createDefaultCurDate().format('M'), 10);\n if (!isNaN(curSelectedMonth) && curSelectedMonth > 0 && curSelectedMonth <= 12) {\n state.curSelectedMonth = curSelectedMonth;\n }\n }\n\n function setCurrentDate(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDate = value && value.length ? dayjs(value[0]) : createDefaultCurDate();\n } else {\n state.curDate = value ? dayjs(value) : createDefaultCurDate();\n }\n }\n\n function setCurrentDateList(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDateList = value && value.length ? value.map((item) => dayjs(item)) : [createDefaultCurDate()];\n } else {\n state.curDateList = value ? [dayjs(value)] : [createDefaultCurDate()];\n }\n }\n\n function checkDayVisible(day: number) {\n let re = true;\n if (!state.isShowWeekend) {\n re = day !== 6 && day !== 7;\n }\n return re;\n }\n\n watch(\n () => props.firstDayOfWeek,\n () => {\n state.realFirstDayOfWeek = props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek ?? 1;\n },\n { immediate: true },\n );\n watch(\n () => props.value,\n (v: TdCalendarProps['value']) => {\n if (props.multiple) {\n setCurrentDateList(v);\n } else {\n setCurrentDate(v);\n }\n },\n { immediate: true },\n );\n watch(\n () => props.year,\n (v: TdCalendarProps['year']) => {\n setCurSelectedYear(v);\n },\n { immediate: true },\n );\n watch(\n () => props.month,\n (v: TdCalendarProps['month']) => {\n setCurSelectedMonth(v);\n },\n { immediate: true },\n );\n watch(\n () => props.isShowWeekendDefault,\n (v: TdCalendarProps['isShowWeekendDefault']) => {\n state.isShowWeekend = v;\n },\n { immediate: true },\n );\n watch(\n () => props.mode,\n (v: TdCalendarProps['mode']) => {\n state.curSelectedMode = v;\n },\n { immediate: true },\n );\n watch(\n () => props.theme,\n (v: TdCalendarProps['theme']) => {\n if (v === 'card') state.controlSize = 'small';\n if (v === 'full') state.controlSize = 'medium';\n },\n { immediate: true },\n );\n return {\n state,\n toToday,\n checkDayVisible,\n };\n}\n","import { isFunction } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { computed, nextTick } from 'vue';\nimport dayjs from 'dayjs';\nimport { COMPONENT_NAME } from '../consts';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps, ControllerOptions } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\n\nconst getDefaultControllerConfigData = (visible = true): Record => ({\n visible, // 是否显示(全部控件)\n disabled: false, // 是否禁用(全部控件)\n // 模式切换单选组件设置\n mode: {\n visible: true, // 是否显示\n radioGroupProps: {}, // 用于透传props给该radioGroup组件\n },\n // 年份选择框组件相关设置\n year: {\n visible: true, // 是否显示\n selectProps: {}, // 用于透传props给该select组件\n },\n // 年份选择框组件相关设置\n month: {\n visible: true, // 是否显示(“year”模式下本身是不显示该组件的)\n selectProps: {}, // 用于透传props给该select组件\n },\n // 隐藏\\显示周末按钮组件相关设置\n weekend: {\n visible: true, // 是否显示\n showWeekendButtonProps: {}, // 用于透传props给显示周末按钮组件\n hideWeekendButtonProps: {}, // 用于透传props给隐藏周末按钮组件\n },\n // “今天\\本月”按钮组件相关设置\n current: {\n visible: true, // 是否显示\n currentDayButtonProps: {}, // 用于透传props给“今天”钮组件(“month”模式下有效)\n currentMonthButtonProps: {}, // 用于透传props给“本月”按钮组件(“year”模式下有效)\n },\n});\n\nexport function userController(props: TdCalendarProps, state: CalendarState) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const options = computed(() => {\n const dayJsFilterDate = dayjs(`${state.curSelectedYear}-${state.curSelectedMonth}`);\n const re = {\n isShowWeekend: state.isShowWeekend,\n filterDate: dayJsFilterDate.toDate(),\n formattedFilterDate: dayJsFilterDate.format(props.format),\n mode: state.curSelectedMode,\n };\n return re;\n });\n const configData = computed>(() => {\n const controllerConfig = props.controllerConfig ?? globalConfig.value.controllerConfig ?? true;\n if (isBoolean(controllerConfig)) {\n return getDefaultControllerConfigData(controllerConfig);\n }\n return {\n ...getDefaultControllerConfigData(),\n ...controllerConfig,\n };\n });\n const visible = computed(() => {\n return !!configData.value && configData.value.visible;\n });\n /**\n * 判断某个控件是否显示\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @returns true表示显示\n */\n function checkControllerVisible(name: string): boolean {\n let re = true;\n const conf = configData.value;\n if (!conf || !conf.visible || conf[name] === false || (conf[name] && !conf[name].visible)) {\n re = false;\n }\n return re;\n }\n /**\n * 判断某个控件是否禁用\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @param propsName 表示禁用的控件属性(对应controllerConfigData)\n * @returns true表示禁用\n */\n function checkControllerDisabled(name: string, propsName: string): boolean {\n let re = false;\n const conf = configData.value;\n if (conf && (conf.disabled || (conf[name] && conf[name][propsName] && conf[name][propsName].disabled))) {\n re = true;\n }\n return re;\n }\n function emitControllerChange() {\n nextTick(() => {\n isFunction(props.onControllerChange) && props.onControllerChange({ ...options.value });\n });\n }\n\n return {\n options,\n configData,\n visible,\n checkControllerVisible,\n checkControllerDisabled,\n emitControllerChange,\n };\n}\n","import { computed } from 'vue';\n\nimport { CellColHeader, CalendarState } from '../types';\nimport { TdCalendarProps, WeekDay } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\nimport { COMPONENT_NAME } from '../consts';\nimport * as utils from '../utils';\nimport { isObject } from 'lodash-es';\n\nexport function useColHeaders(props: TdCalendarProps, state: CalendarState) {\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n\n const weekDisplayText = computed(() => {\n return props.week || t(globalConfig.value.week).split(',');\n });\n function getWeekDisplay(weekNum: number): string {\n const weekText = weekDisplayText.value as string[];\n return isObject(weekText) && weekText[weekNum - 1] ? weekText[weekNum - 1] : utils.getDayCn(weekNum);\n }\n const cellColHeaders = computed(() => {\n const re: CellColHeader[] = [];\n const min: WeekDay = 1;\n const max: WeekDay = 7;\n\n for (let i = state.realFirstDayOfWeek; i <= max; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n if (state.realFirstDayOfWeek > min) {\n for (let i = min; i < state.realFirstDayOfWeek; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n }\n return re;\n });\n\n return {\n cellColHeaders,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useCommonClassName } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\n\nimport { useCalendarCellClass } from './hooks';\n\n// 组件相关的自定义类型\nimport { CalendarCell } from './type';\n\nconst clickTypeEmitEventMap = {\n click: 'click',\n dblclick: 'dblclick',\n contextmenu: 'rightclick',\n};\n\nexport default defineComponent({\n name: `TCalendarCell`,\n inheritAttrs: false,\n props: {\n item: {\n type: Object,\n default: (): CalendarCell => null,\n },\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n theme: {\n type: String,\n default: (): string => null,\n },\n t: Function,\n global: Object,\n cell: [String, Function],\n cellAppend: [String, Function],\n },\n emits: [...Object.values(clickTypeEmitEventMap)],\n setup(props, { emit }) {\n const renderContent = useContent();\n const cls = useCalendarCellClass();\n const { STATUS } = useCommonClassName();\n\n const valueDisplay = computed(() => {\n if (props.item.mode === 'month') {\n const dateNum = props.item.date.getDate();\n const fillZero = dateNum < 10 && (props.fillWithZero ?? props.global.fillWithZero ?? true);\n return fillZero ? `0${dateNum}` : dateNum;\n }\n const map = props.t(props.global.cellMonth).split(',');\n return map[props.item.date.getMonth().toString()];\n });\n const allowSlot = computed(() => {\n return props.theme === 'full';\n });\n const disabled = computed(() => {\n return props.item.mode === 'month' && props.item.belongTo !== 0;\n });\n const cellCls = computed(() => {\n const { mode, date, formattedDate, isCurrent } = props.item;\n const now = new Date();\n const isNow =\n mode === 'year'\n ? now.getMonth() === date.getMonth() && now.getFullYear() === date.getFullYear()\n : formattedDate === dayjs().format('YYYY-MM-DD');\n return [\n cls.tableBodyCell.value,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.checked]: isCurrent,\n [cls.tableBodyCell4Now.value]: isNow,\n },\n ];\n });\n const clickCell = (e: MouseEvent): void => {\n if (disabled.value) return;\n const emitName = clickTypeEmitEventMap[e.type as keyof typeof clickTypeEmitEventMap];\n emit(emitName, e);\n };\n\n const renderDefaultNode = () => (\n <>\n
    {valueDisplay.value}
    \n
    \n {allowSlot.value &&\n renderContent('cellAppend', undefined, {\n params: { ...props.item },\n })}\n
    \n \n );\n\n return () => {\n return (\n props.item && (\n \n {renderContent('cell', undefined, {\n defaultNode: renderDefaultNode(),\n params: { ...props.item },\n })}\n \n )\n );\n };\n },\n});\n","import { computed } from 'vue';\n\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps } from '../type';\nimport { COMPONENT_NAME } from '../consts';\n\nexport function useCalendarClass(props: TdCalendarProps, state: CalendarState) {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const body = computed(() => {\n return [`${prefixClass.value}`, `${prefixClass.value}--${props.theme}`];\n });\n const panel = computed(() => {\n return [`${prefixClass.value}__panel`, `${prefixClass.value}__panel--${state.curSelectedMode}`];\n });\n const control = computed(() => {\n return [`${prefixClass.value}__control`];\n });\n const title = computed(() => {\n return [`${prefixClass.value}__title`];\n });\n const controlSection = computed(() => {\n return [`${prefixClass.value}__control-section`];\n });\n const controlSectionCell = computed(() => {\n return [`${prefixClass.value}__control-section-cell`];\n });\n const controlTag = computed(() => {\n return [`${prefixClass.value}__control-tag`];\n });\n const table = computed(() => {\n return [`${prefixClass.value}__table`];\n });\n const tableHead = computed(() => {\n return [`${prefixClass.value}__table-head`];\n });\n const tableHeadRow = computed(() => {\n return [`${prefixClass.value}__table-head-row`];\n });\n const tableHeadCell = computed(() => {\n return [`${prefixClass.value}__table-head-cell`];\n });\n const tableBody = computed(() => {\n return [`${prefixClass.value}__table-body`];\n });\n const tableBodyRow = computed(() => {\n return [`${prefixClass.value}__table-body-row`];\n });\n\n return {\n body,\n panel,\n control,\n title,\n controlSection,\n controlSectionCell,\n controlTag,\n table,\n tableHead,\n tableHeadRow,\n tableHeadCell,\n tableBody,\n tableBodyRow,\n };\n}\n\nexport function useCalendarCellClass() {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const tableBodyCell = computed(() => {\n return [`${prefixClass.value}__table-body-cell`];\n });\n const tableBodyCell4Now = computed(() => {\n return `${prefixClass.value}__table-body-cell--now`;\n });\n const tableBodyCellDisplay = computed(() => {\n return [`${prefixClass.value}__table-body-cell-display`];\n });\n const tableBodyCellCsontent = computed(() => {\n return [`${prefixClass.value}__table-body-cell-content`];\n });\n\n return {\n tableBodyCell,\n tableBodyCell4Now,\n tableBodyCellDisplay,\n tableBodyCellCsontent,\n };\n}\n","import { defineComponent, computed, watch } from 'vue';\n// 通用库\nimport dayjs from 'dayjs';\nimport { remove } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\nimport { useState, useCalendarClass, userController, useColHeaders } from './hooks';\n\n// 组件的一些常量\nimport {\n COMPONENT_NAME,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n DEFAULT_YEAR_CELL_NUMINROW,\n} from './consts';\n\n// 子组件\nimport { Select as TSelect } from '../select';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../radio';\nimport { Button as TButton } from '../button';\nimport { CheckTag as TCheckTag } from '../tag';\nimport CalendarCellItem from './calendar-cell';\n\n// 组件相关类型\nimport { CalendarCell } from './type';\nimport { CalendarRange, YearMonthOption, ModeOption, CellEventOption } from './types';\n\n// 组件逻辑\nexport default defineComponent({\n name: 'TCalendar',\n props,\n setup(props, { slots }) {\n const renderContent = useContent();\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n // 组件内部状态管理\n const { state, toToday, checkDayVisible } = useState(props);\n\n // 样式\n const cls = useCalendarClass(props, state);\n\n // 日历主体头部(日历模式下使用)\n const { cellColHeaders } = useColHeaders(props, state);\n\n // 日历控件栏(右上角)\n const controller = userController(props, state);\n\n // 年\\月份下拉框\n const rangeFromTo = computed(() => {\n if (!props.range || props.range.length < 2) {\n return null;\n }\n const [v1, v2] = props.range;\n if (dayjs(v1).isBefore(dayjs(v2))) {\n return {\n from: v1,\n to: v2,\n };\n }\n return {\n from: v2,\n to: v1,\n };\n });\n function checkMonthAndYearSelectedDisabled(year: number, month: number): boolean {\n let disabled = false;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n if (year === beginYear) {\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n disabled = month < beginMon;\n } else if (year === endYear) {\n const endMon = parseInt(dayjs(rangeFromTo.value.to).format('M'), 10);\n disabled = month > endMon;\n }\n }\n return disabled;\n }\n // 当存在日期范围限制时,改变年份后应将月份调整为合法月份\n function adjustMonth(): void {\n if (rangeFromTo.value?.from && rangeFromTo.value?.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n if (checkMonthAndYearSelectedDisabled(state.curSelectedYear, state.curSelectedMonth)) {\n state.curSelectedMonth =\n state.curSelectedYear === beginYear\n ? beginMon\n : state.curSelectedYear === endYear\n ? 1\n : state.curSelectedMonth;\n }\n }\n }\n watch(\n () => {\n return {\n year: `${state.curSelectedYear}`,\n month: `${state.curSelectedMonth}`,\n };\n },\n (v: { month: string; year: string }) => {\n isFunction(props.onMonthChange) && props.onMonthChange({ ...v });\n controller.emitControllerChange();\n },\n );\n const dateSelect = {\n yearSelectOptionList: computed(() => {\n const re: YearMonthOption[] = [];\n let begin: number = state.curSelectedYear - 10;\n let end: number = state.curSelectedYear + 10;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n begin = dayjs(rangeFromTo.value.from).year();\n end = dayjs(rangeFromTo.value.to).year();\n }\n\n if (begin < MIN_YEAR) {\n begin = MIN_YEAR;\n }\n if (end < MIN_YEAR) {\n end = MIN_YEAR;\n }\n\n for (let i = begin; i <= end; i++) {\n re.push({\n value: i,\n label: t(globalConfig.value.yearSelection, { year: i }),\n disabled: false,\n });\n }\n return re;\n }),\n isYearSelectVisible: computed(() => {\n return controller.checkControllerVisible('year');\n }),\n isYearSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('year', 'selectProps');\n }),\n monthSelectOptionList: computed(() => {\n adjustMonth();\n const re: YearMonthOption[] = [];\n for (let i = FIRST_MONTH_OF_YEAR; i <= LAST_MONTH_OF_YEAR; i++) {\n const disabled = checkMonthAndYearSelectedDisabled(state.curSelectedYear, i);\n re.push({\n value: i,\n label: t(globalConfig.value.monthSelection, { month: i }),\n disabled,\n });\n }\n return re;\n }),\n isMonthSelectVisible: computed(() => {\n return state.curSelectedMode === 'month' && controller.checkControllerVisible('month');\n }),\n isMonthSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('month', 'selectProps');\n }),\n };\n // 模式选项\n const modeSelect = {\n optionList: computed(() => {\n return [\n { value: 'month', label: t(globalConfig.value.monthRadio) },\n { value: 'year', label: t(globalConfig.value.yearRadio) },\n ];\n }),\n isVisible: computed(() => {\n return controller.checkControllerVisible('mode');\n }),\n isDisabled: computed(() => {\n return controller.checkControllerDisabled('mode', 'radioGroupProps');\n }),\n };\n // 显示\\隐藏周末按钮\n const weekendBtn = {\n text: computed(() => {\n return state.isShowWeekend ? t(globalConfig.value.hideWeekend) : t(globalConfig.value.showWeekend);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.weekend;\n return state.isShowWeekend ? c.hideWeekendButtonProps : c.showWeekendButtonProps;\n }),\n isVisible: computed(() => {\n return (\n props.theme === 'full' &&\n controller.checkControllerVisible('current') &&\n controller.checkControllerVisible('weekend')\n );\n }),\n isDisabled: computed(() => {\n const p = state.isShowWeekend ? 'hideWeekendButtonProps' : 'showWeekendButtonProps';\n return controller.checkControllerDisabled('weekend', p);\n }),\n };\n // 今天\\本月按钮\n const currentBtn = {\n text: computed(() => {\n return state.curSelectedMode === 'month' ? t(globalConfig.value.today) : t(globalConfig.value.thisMonth);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.current;\n return state.curSelectedMode === 'month' ? c.currentDayButtonProps : c.currentMonthButtonProps;\n }),\n isVisible: computed(() => {\n return props.theme === 'full' && controller.checkControllerVisible('current');\n }),\n isDisabled: computed(() => {\n const p = state.curSelectedMode === 'month' ? 'currentDayButtonProps' : 'currentMonthButtonProps';\n return controller.checkControllerDisabled('current', p);\n }),\n };\n const renderControl = () => {\n return (\n
    \n
    \n {renderContent('head', undefined, {\n params: { ...controller.options.value },\n })}\n
    \n
    \n {dateSelect.isYearSelectVisible.value && (\n
    \n \n
    \n )}\n {dateSelect.isMonthSelectVisible.value && (\n
    \n \n
    \n )}\n {modeSelect.isVisible.value && (\n
    \n \n {modeSelect.optionList.value.map((item) => (\n \n {item.label}\n \n ))}\n \n
    \n )}\n\n {weekendBtn.isVisible.value && (\n
    \n {\n state.isShowWeekend = !state.isShowWeekend;\n controller.emitControllerChange();\n }}\n >\n {weekendBtn.text.value}\n \n
    \n )}\n {currentBtn.isVisible.value && (\n
    \n {\n toToday();\n }}\n >\n {currentBtn.text.value}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const cellClickEmit = (eventPropsName: keyof typeof props, e: MouseEvent, cellData: CalendarCell): void => {\n if (isFunction(props[eventPropsName])) {\n const options: CellEventOption = {\n cell: {\n ...cellData,\n ...controller.options.value,\n },\n e,\n };\n (props[eventPropsName] as Function)(options);\n }\n };\n const clickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n const d = dayjs(cellData.date);\n if (props.multiple) {\n if (state.curDateList.find((item) => item.isSame(d))) {\n state.curDateList = remove(state.curDateList, (item) => !item.isSame(d));\n } else {\n state.curDateList.push(d);\n }\n } else {\n state.curDate = d;\n }\n cellClickEmit('onCellClick', e, cellData);\n };\n const doubleClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n cellClickEmit('onCellDoubleClick', e, cellData);\n };\n const rightClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n if (props.preventCellContextmenu) {\n e.preventDefault();\n }\n cellClickEmit('onCellRightClick', e, cellData);\n };\n\n const monthCellsData = computed(() => {\n const daysArr: CalendarCell[][] = utils.createMonthCellsData(props, state);\n return daysArr;\n });\n const renderMonthBody = () => {\n return (\n \n \n \n {cellColHeaders.value.map(\n (item, index) =>\n checkDayVisible(item.num) && (\n \n ),\n )}\n \n \n\n \n {monthCellsData.value.map((week, weekIndex) => (\n \n {week.map(\n (item, itemIndex) =>\n (state.isShowWeekend || item.day < 6) && (\n clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n >\n ),\n )}\n \n ))}\n \n
    \n {isArray(props.week)\n ? props.week[index]\n : renderContent('week', undefined, {\n defaultNode: {item.display},\n params: { day: item.num },\n })}\n
    \n );\n };\n\n const yearCellsData = computed(() => {\n const re: CalendarCell[][] = [];\n const monthsArr: CalendarCell[] = utils.createYearCellsData(props, state);\n const rowCount = Math.ceil(monthsArr.length / DEFAULT_YEAR_CELL_NUMINROW);\n let index = 0;\n for (let i = 1; i <= rowCount; i++) {\n const row: CalendarCell[] = [];\n for (let j = 1; j <= DEFAULT_YEAR_CELL_NUMINROW; j++) {\n row.push(monthsArr[index]);\n index += 1;\n }\n re.push(row);\n }\n return re;\n });\n const renderYearBody = () => {\n return (\n \n \n {yearCellsData.value.map((cell, cellIndex) => (\n \n {cell.map((item, itemIndex) => (\n clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n >\n ))}\n \n ))}\n \n
    \n );\n };\n\n return () => {\n return (\n
    \n {controller.visible.value && renderControl()}\n
    {state.curSelectedMode === 'month' ? renderMonthBody() : renderYearBody()}
    \n
    \n );\n };\n },\n});\n","import _Calendar from './calendar';\nimport withInstall from '../utils/withInstall';\nimport { TdCalendarProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CalendarProps = TdCalendarProps;\n\nexport const Calendar = withInstall(_Calendar);\nexport default Calendar;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCardProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 卡片操作区 */\n actions: {\n type: [String, Function] as PropType,\n },\n /** 卡片中的用户头像,仅在海报风格的卡片中有效 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 是否有边框 */\n bordered: {\n type: Boolean,\n default: true,\n },\n /** 卡片内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 卡片封面图。值类型为字符串,会自动使用 `img` 标签输出封面图;也可以完全最定义封面图 */\n cover: {\n type: [String, Function] as PropType,\n },\n /** 卡片内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 卡片描述文案 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 卡片底部内容,可完全自定义 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 卡片顶部内容,优先级高于其他所有元素 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 头部是否带分割线,仅在有header时有效 */\n headerBordered: Boolean,\n /** hover时是否有阴影 */\n hoverShadow: Boolean,\n /** 加载状态,值为 true 会根据不同的布局显示不同的加载状态,值为 false 则表示非加载状态。也可以使用 Skeleton 组件完全自定义加载态呈现内容 */\n loading: {\n type: [Boolean, Function] as PropType,\n default: false as TdCardProps['loading'],\n },\n /** 透传加载组件(Loading)全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 是否显示卡片阴影,默认不显示 */\n shadow: Boolean,\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCardProps['size'],\n validator(val: TdCardProps['size']): boolean {\n if (!val) return true;\n return ['medium', 'small'].includes(val);\n },\n },\n /** 卡片状态内容,仅在操作区域不在顶部时有效(即 `theme=poster2` ) */\n status: {\n type: String,\n default: '',\n },\n /** 卡片副标题 */\n subtitle: {\n type: [String, Function] as PropType,\n },\n /** 卡片风格:普通风格、海报风格1(操作区域在顶部)、海报风格2(操作区域在底部) */\n theme: {\n type: String as PropType,\n default: 'normal' as TdCardProps['theme'],\n validator(val: TdCardProps['theme']): boolean {\n if (!val) return true;\n return ['normal', 'poster1', 'poster2'].includes(val);\n },\n },\n /** 卡片标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, computed } from 'vue';\n\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport TLoading from '../loading';\nimport props from './props';\nimport { isString } from 'lodash-es';\nimport { TdCardProps } from './type';\n\nexport default defineComponent({\n name: 'TCard',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('card');\n const { SIZE } = useCommonClassName();\n\n const baseCls = computed(() => {\n const defaultClass = [COMPONENT_NAME.value];\n\n if (props.size === 'small') defaultClass.push(`${SIZE.value[props.size]}`);\n if (props.bordered) defaultClass.push(`${COMPONENT_NAME.value}--bordered`);\n if (props.shadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow`);\n if (props.hoverShadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow-hover`);\n\n return defaultClass;\n });\n\n const headerCls = computed(() => {\n const defaultClass = [`${COMPONENT_NAME.value}__header`];\n return props.headerBordered\n ? defaultClass.concat(`${COMPONENT_NAME.value}__title--bordered`)\n : [`${COMPONENT_NAME.value}__header`];\n });\n\n const headerWrapperCls = usePrefixClass('card__header-wrapper');\n const headerAvatarCls = usePrefixClass('card__avatar');\n const headerTitleCls = usePrefixClass('card__title');\n const headerSubTitleCls = usePrefixClass('card__subtitle');\n const headerDescriptionCls = usePrefixClass('card__description');\n const actionsCls = usePrefixClass('card__actions');\n\n const bodyCls = usePrefixClass('card__body');\n const coverCls = usePrefixClass('card__cover');\n const footerCls = usePrefixClass('card__footer');\n const footerWrapperCls = usePrefixClass('card__footer-wrapper');\n\n // 卡片风格:普通风格、海报风格1(操作区域在顶部)、海报风格2(操作区域在底部)。\n // 可选项:normal/poster1/poster2\n const isPoster2 = computed(() => props.theme === 'poster2');\n\n const showTitle = computed(() => props.title || slots.title);\n const showHeader = computed(() => props.header || slots.header);\n const showSubtitle = computed(() => props.subtitle || slots.subtitle);\n const showAvatar = computed(() => props.avatar || slots.avatar);\n const showDescription = computed(() => props.description || slots.description);\n const showStatus = computed(() => props.status || slots.status);\n const showActions = computed(() => props.actions || slots.actions);\n const showFooter = computed(() => props.footer || slots.footer);\n const showCover = computed(() => props.cover || slots.cover);\n const showLoading = computed(() => props.loading || slots.loading);\n const showContent = computed(() => props.content || slots.content || props.default || slots.default);\n\n // 是否展示头部区域\n const isHeaderRender = computed(\n () =>\n showHeader.value ||\n showTitle.value ||\n showSubtitle.value ||\n showDescription.value ||\n showAvatar.value ||\n (showStatus.value && isPoster2.value) ||\n (showActions.value && !isPoster2.value),\n );\n\n // 是否展示底部区域\n const isFooterRender = computed(() => showFooter.value || (showActions.value && isPoster2.value));\n\n // 头部区域渲染逻辑\n const renderHeader = () => {\n if (showHeader.value) return
    {renderTNodeJSX('header')}
    ;\n return (\n
    \n
    \n {showAvatar.value &&
    {renderTNodeJSX('avatar')}
    }\n
    \n {showTitle.value &&
    {renderTNodeJSX('title')}
    }\n {showSubtitle.value &&
    {renderTNodeJSX('subtitle')}
    }\n {showDescription.value &&

    {renderTNodeJSX('description')}

    }\n
    \n
    \n {showActions.value && !isPoster2.value &&
    {renderTNodeJSX('actions')}
    }\n {showStatus.value &&
    {renderTNodeJSX('status')}
    }\n
    \n );\n };\n\n // 封面区域渲染逻辑\n const renderCover = () => {\n const textCover = isString(props.cover);\n return
    {textCover ? : renderTNodeJSX('cover')}
    ;\n };\n\n return () => {\n const content = (\n
    \n {isHeaderRender.value ? renderHeader() : null}\n {showCover.value ? renderCover() : null}\n {showContent.value && (\n
    {renderTNodeJSX('default') || renderTNodeJSX('content')}
    \n )}\n {isFooterRender.value && (\n
    \n
    {renderTNodeJSX('footer')}
    \n {showActions.value && isPoster2.value &&
    {renderTNodeJSX('actions')}
    }\n
    \n )}\n
    \n );\n\n if (showLoading.value) {\n return (\n renderTNodeJSX('loading') || (\n {content}\n )\n );\n }\n return content;\n };\n },\n});\n","import _Card from './card';\nimport withInstall from '../utils/withInstall';\nimport { TdCardProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CardProps = TdCardProps;\n\nexport const Card = withInstall(_Card);\nexport default Card;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdCommentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作 */\n actions: {\n type: Array as PropType,\n },\n /** 作者 */\n author: {\n type: [String, Function] as PropType,\n },\n /** 头像 */\n avatar: {\n type: [String, Object, Function] as PropType,\n },\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 时间 */\n datetime: {\n type: [String, Function] as PropType,\n },\n /** 引用 */\n quote: {\n type: [String, Function] as PropType,\n },\n /** 回复 */\n reply: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Button from '../button';\nimport { isString } from 'lodash-es';\nimport { useFlatChildrenSlots } from '../hooks/slot';\n\nexport default defineComponent({\n name: 'TComment',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('comment');\n const renderTNodeJSX = useTNodeJSX();\n const getFlatChildren = useFlatChildrenSlots();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ?
    {reply}
    : null;\n\n const quoteDom = quote ?
    {quote}
    : null;\n\n const avatarDom = avatar ? (\n
    \n {isString(avatar) ? \"\" : avatar}\n
    \n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n
    \n {author && {author}}\n {datetime && {datetime}}\n
    \n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n const flatChildren = getFlatChildren(actions);\n return (\n
    \n {flatChildren.map((action, index) => (\n \n ))}\n
    \n );\n };\n\n const contentDom = (\n
    \n {authorDatetimeDom}\n
    {content}
    \n {quoteDom}\n {renderActions()}\n
    \n );\n\n return (\n
    \n
    \n {avatarDom}\n {contentDom}\n
    \n {replyDom}\n
    \n );\n };\n },\n});\n","import _Comment from './comment';\nimport withInstall from '../utils/withInstall';\nimport { TdCommentProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CommentProps = TdCommentProps;\n\nexport const Comment = withInstall(_Comment);\nexport default Comment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdEmptyProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作按钮 */\n action: {\n type: Function as PropType,\n },\n /** 描述文字 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 组件图片,可以完全自定义内容。值类型为字符串时,表示图片地址;值类型为对象时,则表示透传全部属性到图片组件,示例:`` */\n image: {\n type: [String, Function] as PropType,\n },\n /** 透传图片样式表 */\n imageStyle: {\n type: Object as PropType,\n },\n /** 空状态的尺寸,默认为 `medium` */\n size: {\n type: String as PropType,\n default: 'medium' as TdEmptyProps['size'],\n validator(val: TdEmptyProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 错误标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 组件类型,如:空数据/成功/失败/网络错误/建设中 */\n type: {\n type: String as PropType,\n default: 'empty' as TdEmptyProps['type'],\n validator(val: TdEmptyProps['type']): boolean {\n if (!val) return true;\n return ['empty', 'success', 'fail', 'network-error', 'maintenance'].includes(val);\n },\n },\n};\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'MaintenanceSvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'NetworkErrorSvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'EmptySvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'FailSvg',\n setup() {\n return () => (\n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'SuccessSvg',\n setup() {\n return () => (\n \n \n \n );\n },\n});\n","import { computed, defineComponent, h, toRefs } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isPlainObject } from 'lodash-es';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport type { TdEmptyProps } from './type';\nimport Image from '../image';\nimport MaintenanceSvg from './components/MaintenanceSvg';\nimport NetworkErrorSvg from './components/NetworkErrorSvg';\nimport EmptySvg from './components/EmptySvg';\nimport FailSvg from './components/FailSvg';\nimport SuccessSvg from './components/SuccessSvg';\n\nexport default defineComponent({\n name: 'TEmpty',\n components: { TImage: Image },\n props,\n setup(props: TdEmptyProps, { slots }) {\n const { size, image: propsImage, description: propsDescription, title: propsTitle, type } = toRefs(props);\n const { globalConfig } = useConfig('empty');\n const classPrefix = usePrefixClass('empty');\n const showAction = computed(() => props.action || slots.action);\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const defaultMaps: {\n [key in TdEmptyProps['type']]?: Pick;\n } = {\n maintenance: {\n image: globalConfig.value.image.maintenance || MaintenanceSvg,\n title: globalConfig.value.titleText.maintenance,\n },\n success: {\n image: globalConfig.value.image.success || SuccessSvg,\n title: globalConfig.value.titleText.success,\n },\n fail: {\n image: globalConfig.value.image.fail || FailSvg,\n title: globalConfig.value.titleText.fail,\n },\n 'network-error': {\n image: globalConfig.value.image.networkError || NetworkErrorSvg,\n title: globalConfig.value.titleText.networkError,\n },\n empty: {\n image: globalConfig.value.image.empty || EmptySvg,\n title: globalConfig.value.titleText.empty,\n },\n };\n\n const emptyClasses = computed(() => [classPrefix.value, SIZE.value[size.value]]);\n const titleClasses = [`${classPrefix.value}__title`];\n const imageClasses = [`${classPrefix.value}__image`];\n const descriptionClasses = [`${classPrefix.value}__description`];\n const actionClass = [`${classPrefix.value}__action`];\n\n const typeImageProps = computed(() => defaultMaps[type.value] ?? null);\n const showImage = computed(() => propsImage.value || slots?.image?.() || typeImageProps.value?.image);\n const showTitle = computed(() => propsTitle.value || slots?.title?.() || typeImageProps.value?.title);\n const showDescription = computed(() => propsDescription.value || slots?.description?.());\n\n const renderTitle = () => {\n if (!showTitle.value) {\n return null;\n }\n return
    {showTitle.value}
    ;\n };\n const renderDescription = () => {\n if (!showDescription.value) {\n return null;\n }\n return
    {showDescription.value}
    ;\n };\n const getImageIns = () => {\n const data = showImage.value;\n let result = null;\n if (isString(data)) {\n result = ;\n } else if (data && Reflect.has(data, 'setup')) {\n result = h(data as unknown);\n } else if (isPlainObject(data)) {\n result = ;\n }\n\n return data ? result : null;\n };\n\n return () => {\n return (\n
    \n {showImage.value ? (\n
    \n {slots?.image ? renderTNodeJSX('image') : getImageIns()}\n
    \n ) : null}\n {renderTitle()}\n {renderDescription()}\n {showAction.value ?
    {renderTNodeJSX('action')}
    : null}\n
    \n );\n };\n },\n});\n","import _Empty from './empty';\nimport withInstall from '../utils/withInstall';\nimport type { TdEmptyProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type EmptyProps = TdEmptyProps;\n\nexport const Empty = withInstall(_Empty);\nexport default Empty;\n","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message' | 'drawer';\n\nconst popupStackType = ['dialog', 'drawer'];\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n private popupStack = {\n popup: new Set(),\n dialog: new Set(),\n message: new Set(),\n drawer: new Set(),\n };\n\n private zIndexStack: number[] = [];\n\n private getNextZIndex = (type: PopupType) => {\n const current =\n type === 'message'\n ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n return current + Z_INDEX_STEP;\n };\n\n public add = (type: PopupType) => {\n const zIndex = this.getNextZIndex(type);\n this.popupStack[type].add(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.add(zIndex);\n }\n this.zIndexStack.push(zIndex);\n return zIndex;\n };\n\n public delete = (zIndex: number, type: PopupType) => {\n this.popupStack[type].delete(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.delete(zIndex);\n }\n const index = this.zIndexStack.indexOf(zIndex);\n if (index !== -1) {\n this.zIndexStack.splice(index, 1);\n }\n };\n\n // 最顶层的交互式弹窗(指Dialog和Drawer)\n public isTopInteractivePopup = (popupType: PopupType, zIndex: number) => {\n if (popupStackType.includes(popupType)) {\n const lastZIndex = this.zIndexStack[this.zIndexStack.length - 1];\n return zIndex === lastZIndex;\n }\n\n if (this.popupStack[popupType]?.size > 1) {\n return zIndex === Array.from(this.popupStack[popupType]).pop();\n }\n\n return true;\n };\n\n public getLastZIndex = () => {\n return this.zIndexStack[this.zIndexStack.length - 1];\n };\n}\n\nconst popupManager = new PopupManager();\n\nexport default function usePopupManager(\n type: PopupType,\n {\n visible,\n runOnMounted,\n }: {\n visible?: Ref;\n runOnMounted?: boolean;\n } = {},\n) {\n const zIndex = ref(0);\n\n const open = () => {\n zIndex.value = popupManager.add(type);\n };\n\n const close = () => {\n popupManager.delete(zIndex.value, type);\n };\n\n const isTopInteractivePopup = () => {\n if (popupStackType.includes(type)) {\n return popupManager.isTopInteractivePopup(type, zIndex.value);\n }\n return false;\n };\n\n watch(\n () => visible?.value,\n (visible) => {\n if (visible) {\n open();\n } else {\n close();\n }\n },\n {\n immediate: true,\n },\n );\n\n if (runOnMounted) {\n onMounted(() => {\n open();\n });\n\n onBeforeUnmount(() => {\n close();\n });\n }\n\n return {\n zIndex: readonly(zIndex),\n open,\n close,\n isTopInteractivePopup,\n };\n}\n","import { positiveSubtract, positiveAdd } from '@tdesign/common-js/input-number/number';\nimport { ref, watch } from 'vue';\nimport { ImageScale } from '../type';\nimport { throttle } from 'lodash-es';\n\ninterface InitTransform {\n translateX: number;\n translateY: number;\n}\n\nexport function useDrag(initTransform: InitTransform) {\n const transform = ref(initTransform);\n\n const mouseDownHandler = (e: MouseEvent) => {\n const { pageX: startX, pageY: startY } = e;\n const { translateX, translateY } = transform.value;\n const mouseMoveHandler = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n transform.value = {\n translateX: translateX + pageX - startX,\n translateY: translateY + pageY - startY,\n };\n };\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n };\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const resetTransform = () => {\n transform.value = { ...initTransform };\n };\n\n return { transform, mouseDownHandler, resetTransform };\n}\n\nexport function useMirror() {\n const mirror = ref(1);\n const onMirror = () => {\n mirror.value *= -1;\n };\n const resetMirror = () => {\n mirror.value = 1;\n };\n\n return { mirror, onMirror, resetMirror };\n}\n\nexport function useScale(imageScale: ImageScale = { max: 2, min: 0.5, step: 0.2 }) {\n const { max, min, step, defaultScale } = imageScale;\n const scale = ref(defaultScale ?? 1);\n\n const onZoomIn = throttle(() => {\n const result = positiveAdd(scale.value, step);\n setScale(result);\n }, 50);\n\n const onZoomOut = throttle(() => {\n const result = positiveSubtract(scale.value, step);\n setScale(result);\n }, 50);\n\n const resetScale = () => {\n scale.value = defaultScale ?? 1;\n };\n\n const setScale = (newScale: number) => {\n let value = newScale;\n if (newScale < min) {\n value = min;\n }\n if (newScale > max) {\n value = max;\n }\n scale.value = value;\n };\n\n watch(\n () => imageScale,\n () => resetScale(),\n );\n\n return { scale, onZoomIn, onZoomOut, resetScale };\n}\n\nexport function useRotate() {\n const rotate = ref(0);\n const ROTATE_DEG = 90;\n\n const onRotate = () => {\n rotate.value += ROTATE_DEG;\n };\n const resetRotate = () => {\n rotate.value = 0;\n };\n\n return { rotate, onRotate, resetRotate };\n}\n","import { ImageErrorIcon } from 'tdesign-icons-vue-next';\nimport { PropType, computed, defineComponent, onMounted, ref, toRefs, watch } from 'vue';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { useImagePreviewUrl } from '../../hooks/useImagePreviewUrl';\nimport { useDrag } from '../hooks';\nimport { TdImageViewerProps } from '../type';\n\nexport default defineComponent({\n name: 'TImageItem',\n props: {\n rotate: Number,\n scale: Number,\n mirror: Number,\n src: [String, Object] as PropType,\n placementSrc: [String, Object] as PropType,\n isSvg: Boolean,\n imageReferrerpolicy: String as PropType,\n },\n\n setup(props) {\n const { src, placementSrc, isSvg } = toRefs(props);\n const classPrefix = usePrefixClass();\n const error = ref(false);\n const loaded = ref(false);\n const { transform, mouseDownHandler } = useDrag({ translateX: 0, translateY: 0 });\n const { globalConfig } = useConfig('imageViewer');\n const errorText = globalConfig.value.errorText;\n const svgElRef = ref();\n\n const imgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !props.placementSrc || loaded.value ? 'block' : 'none',\n }));\n const placementImgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !loaded.value ? 'block' : 'none',\n }));\n const boxStyle = computed(() => {\n const { translateX, translateY } = transform.value;\n return {\n transform: `translate(${translateX}px, ${translateY}px) scale(${props.mirror}, 1)`,\n };\n });\n\n const resetStatus = () => {\n error.value = false;\n loaded.value = false;\n if (isSvg.value) {\n createSvgShadow(mainImagePreviewUrl.value);\n }\n };\n\n const createSvgShadow = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n error.value = true;\n throw new Error(`Failed to fetch SVG: ${response.statusText}`);\n }\n const svgText = await response.text();\n\n const element = svgElRef.value;\n element.innerHTML = '';\n element.classList?.add(`${classPrefix.value}-image-viewer__modal-image-svg`);\n const shadowRoot = element.attachShadow({ mode: 'closed' });\n\n const container = document.createElement('div');\n\n container.style.background = 'var(--td-bg-color-container)';\n container.style.padding = '4px';\n container.style.borderRadius = '4px';\n container.style.maxHeight = '100%';\n container.style.maxWidth = '100%';\n container.style.boxSizing = 'border-box';\n container.style.height = 'auto';\n container.innerHTML = svgText;\n shadowRoot.appendChild(container);\n\n const svgElement = container.querySelector('svg');\n if (svgElement) {\n const svgViewBox = svgElement.getAttribute('viewBox');\n if (svgViewBox) {\n const viewBoxValues = svgViewBox\n .split(/[\\s\\,]/)\n .filter(function (v) {\n return v;\n })\n .map(parseFloat);\n\n // svg viewbox x(0) and y(1) offset, width(2) and height(3),eg\n const svgViewBoxWidth = viewBoxValues[2];\n // const svgViewBoxHeight = viewBoxValues[3];\n container.style.width = `${svgViewBoxWidth}px`;\n } else {\n const bbox = svgElement.getBBox();\n const calculatedViewBox = `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}`;\n svgElement.setAttribute('viewBox', calculatedViewBox);\n\n container.style.width = `${bbox.width}px`;\n }\n svgElement.style.maxHeight = '100%';\n svgElement.style.maxWidth = '100%';\n svgElement.style.height = 'auto';\n svgElement.style.display = 'block';\n svgElement.style.lineHeight = 'normal';\n }\n loaded.value = true;\n };\n\n const { previewUrl: mainImagePreviewUrl } = useImagePreviewUrl(src);\n const { previewUrl: placementImagePreviewUrl } = useImagePreviewUrl(placementSrc);\n\n watch([mainImagePreviewUrl, placementImagePreviewUrl], () => {\n resetStatus();\n });\n\n onMounted(async () => {\n if (isSvg.value) {\n await createSvgShadow(mainImagePreviewUrl.value);\n }\n });\n\n return () => (\n
    \n
    \n {error.value && (\n
    \n {/* 脱离文档流 */}\n
    \n \n
    {errorText}
    \n
    \n
    \n )}\n\n {!error.value && !!props.placementSrc && placementImagePreviewUrl.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={placementImagePreviewUrl.value}\n style={placementImgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && !isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={mainImagePreviewUrl.value}\n onLoad={() => (loaded.value = true)}\n onError={() => (error.value = true)}\n style={imgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n data-alt=\"svg\"\n style={imgStyle.value}\n draggable=\"false\"\n >
    \n )}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { TNode } from '../../common';\nimport { useTNodeJSX } from '../../hooks/tnode';\n\nexport default defineComponent({\n name: 'TImageModalIcon',\n props: {\n disabled: Boolean,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n label: String,\n icon: Function as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const wrapClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-icon`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n },\n ]);\n\n return () => (\n
    \n {renderTNodeJSX('icon')}\n {props.label && {props.label}}\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { PropType } from 'vue';\nimport { TdDialogProps } from './type';\n\nexport default {\n /** 对话框挂载的节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发对话框关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: undefined,\n },\n /** 点击蒙层时是否触发关闭事件 */\n closeOnOverlayClick: {\n type: Boolean,\n default: undefined,\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 是否在按下回车键时,触发确认事件 */\n confirmOnEnter: Boolean,\n /** 对话框内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否在关闭弹框的时候销毁子元素 */\n destroyOnClose: Boolean,\n /** 弹框元素类名,示例:'t-class-dialog-first t-class-dialog-second' */\n dialogClassName: {\n type: String,\n default: '',\n },\n /** 作用于对话框本身的样式 */\n dialogStyle: {\n type: Object as PropType,\n },\n /** 对话框是否可以拖拽(仅在非模态对话框时有效) */\n draggable: Boolean,\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDialogProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['header'],\n },\n /** 是否启用对话框懒加载,启用时对话框内的内容不渲染 */\n lazy: Boolean,\n /** 对话框类型,有 4 种:模态对话框、非模态对话框、普通对话框、全屏对话框。弹出「模态对话框」时,只能操作对话框里面的内容,不能操作其他内容。弹出「非模态对话框」时,则可以操作页面内所有内容。「普通对话框」是指没有脱离文档流的对话框,可以在这个基础上开发更多的插件 */\n mode: {\n type: String as PropType,\n default: 'modal' as TdDialogProps['mode'],\n validator(val: TdDialogProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless', 'normal', 'full-screen'].includes(val);\n },\n },\n /** 对话框位置,内置两种:垂直水平居中显示 和 靠近顶部(top:20%)显示。默认情况,为避免贴顶或贴底,顶部和底部距离最小为 `48px`,可通过调整 `top` 覆盖默认大小 */\n placement: {\n type: String as PropType,\n default: 'top' as TdDialogProps['placement'],\n validator(val: TdDialogProps['placement']): boolean {\n if (!val) return true;\n return ['top', 'center'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogProps['theme'],\n validator(val: TdDialogProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 用于弹框具体窗口顶部的距离,优先级大于 placement */\n top: {\n type: [String, Number] as PropType,\n },\n /** 控制对话框是否显示 */\n visible: Boolean,\n /** 对话框宽度,示例:320, '500px', '80%' */\n width: {\n type: [String, Number] as PropType,\n },\n /** 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 对话框执行消失动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 对话框执行弹出动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,点击取消按钮、点击关闭按钮、点击蒙层、按下 ESC 等场景下触发 */\n onClose: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 对话框消失动画效果结束后触发 */\n onClosed: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 时触发事件 */\n onEscKeydown: Function as PropType,\n /** 对话框弹出动画效果结束后触发 */\n onOpened: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n};\n","import { getCurrentInstance } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { omit } from 'lodash-es';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport TButton, { ButtonProps } from '../../button';\nimport { PopconfirmConfig, DialogConfig, DrawerConfig } from '../../config-provider';\nimport type { ClassName } from '../../common';\nimport type { TdDialogProps } from '../type';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\n\nexport interface MixinsConfirmBtn {\n theme?: MixinsThemeType;\n className?: ClassName;\n confirmBtn: TdDialogProps['confirmBtn'];\n globalConfirm: PopconfirmConfig['confirm'] | DrawerConfig['confirm'] | DialogConfig['confirm'];\n globalConfirmBtnTheme?: PopconfirmConfig['confirmBtnTheme'] | DialogConfig['confirmBtnTheme'];\n size?: ButtonProps['size'];\n confirmLoading?: boolean;\n}\n\nexport interface MixinsCancelBtn {\n className?: ClassName;\n cancelBtn: TdDialogProps['cancelBtn'];\n globalCancel: PopconfirmConfig['cancel'] | DrawerConfig['cancel'] | DialogConfig['cancel'];\n size?: ButtonProps['size'];\n}\n\nexport type MixinsThemeType = keyof (PopconfirmConfig['confirmBtnTheme'] & DialogConfig['confirmBtnTheme']);\n\nexport interface BtnAction {\n confirmBtnAction: (e: MouseEvent) => void;\n cancelBtnAction: (e: MouseEvent) => void;\n}\n\nexport function useAction(action: BtnAction) {\n const instance = getCurrentInstance();\n const renderTNodeJSX = useTNodeJSX();\n // 全局配置属性综合\n const getDefaultConfirmBtnProps = (options: MixinsConfirmBtn): ButtonProps => {\n const { globalConfirm, theme, globalConfirmBtnTheme } = options;\n const defaultTheme = getPropertyValFromObj(omit(globalConfirmBtnTheme, ['info']), theme) || 'primary';\n let props: ButtonProps = {\n // @ts-ignore\n // TODO: fix type of globalConfirmBtnTheme\n theme: defaultTheme,\n size: options.size,\n onClick: (e) => {\n action.confirmBtnAction(e);\n },\n };\n if (isString(globalConfirm)) {\n props.content = globalConfirm;\n } else if (isObject(globalConfirm)) {\n props = { ...props, ...globalConfirm };\n }\n return props;\n };\n // 全局配置属性综合\n const getDefaultCancelBtnProps = (options: MixinsCancelBtn): ButtonProps => {\n const { globalCancel } = options;\n let props: ButtonProps = {\n theme: 'default',\n size: options.size,\n onClick: (e) => {\n action.cancelBtnAction(e);\n },\n };\n if (isString(globalCancel)) {\n props.content = globalCancel;\n } else if (isObject(globalCancel)) {\n props = { ...props, ...globalCancel };\n }\n return props;\n };\n const getButtonByProps = (\n button: string | ButtonProps,\n params: {\n defaultButtonProps: ButtonProps;\n className?: ClassName;\n confirmLoading?: boolean;\n },\n ) => {\n const { defaultButtonProps, className, confirmLoading } = params;\n let newOptions = defaultButtonProps;\n if (isString(button)) {\n newOptions.content = button;\n } else if (isObject(button)) {\n newOptions = { ...newOptions, ...button };\n }\n if (confirmLoading !== undefined) {\n newOptions.loading = confirmLoading;\n }\n return ;\n };\n const getConfirmBtn = (options: MixinsConfirmBtn) => {\n const { confirmBtn, className, confirmLoading } = options;\n if (confirmBtn === null) return null;\n if (confirmBtn && instance.slots.confirmBtn) {\n console.warn('Both $props.confirmBtn and $scopedSlots.confirmBtn exist, $props.confirmBtn is preferred.');\n }\n const defaultButtonProps = getDefaultConfirmBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!confirmBtn && !instance.slots.confirmBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (confirmBtn && ['string', 'object'].includes(typeof confirmBtn)) {\n return getButtonByProps(confirmBtn as string | ButtonProps, {\n defaultButtonProps,\n className,\n confirmLoading,\n });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('confirmBtn');\n };\n const getCancelBtn = (options: MixinsCancelBtn) => {\n const { cancelBtn, className } = options;\n if (cancelBtn === null) return null;\n if (cancelBtn && instance.slots.cancelBtn) {\n console.warn('Both $props.cancelBtn and $scopedSlots.cancelBtn exist, $props.cancelBtn is preferred.');\n }\n const defaultButtonProps: ButtonProps = getDefaultCancelBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!cancelBtn && !instance.slots.cancelBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (cancelBtn && ['string', 'object'].includes(typeof cancelBtn)) {\n return getButtonByProps(cancelBtn as string | ButtonProps, { defaultButtonProps, className });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('cancelBtn');\n };\n return { getConfirmBtn, getCancelBtn };\n}\n","/**\n * 计算滚动条宽度的方法\n * 新建一个带有滚动条的 div 元素,通过该元素的 offsetWidth 和 clientWidth 的差值即可获得\n * CSS 中设置了 -webkit-scrollbar { width: 6px; height: 6px },固定浏览器滚动条宽度,仅限 Chrome/Safari\n * Safari UA\n * \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15\"\n * Chrome UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36\n * FireFox UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0\n * IE UA\n * \"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2;\n * .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\"\n */\nimport { getIEVersion } from './helper';\n\nexport function getScrollbarWidthWithCSS() {\n const defaultScrollbarWidth = 6;\n if (typeof navigator === 'undefined' || !navigator) return defaultScrollbarWidth;\n if (/(Chrome|Safari)/i.test(navigator.userAgent)) return defaultScrollbarWidth;\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n // 火狐浏览器需要再减去 4\n if (/Firefox/.test(navigator.userAgent)) {\n scrollbarWidth -= 4;\n }\n if (getIEVersion() <= 11) {\n scrollbarWidth = 12;\n }\n return scrollbarWidth;\n}\n\n/**\n * @description: Calculate scroll bar width\n * @param container Container used to calculate scrollbar width\n * @default container: document.body\n */\nexport function getScrollbarWidth(container: HTMLElement = document.body) {\n if (container === document.body) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n return container.offsetWidth - container.clientWidth;\n}\n","export function getCSSValue(v: string | number) {\n return Number.isNaN(Number(v)) ? v : `${Number(v)}px`;\n}\n\nexport function initDragEvent(dragBox: HTMLElement) {\n const target = dragBox;\n const windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n const windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n target.addEventListener('mousedown', (targetEvent: MouseEvent) => {\n // 算出鼠标相对元素的位置\n const disX = targetEvent.clientX - target.offsetLeft;\n const disY = targetEvent.clientY - target.offsetTop;\n const dialogW = target.offsetWidth;\n const dialogH = target.offsetHeight;\n // 如果弹出框超出屏幕范围 不能进行拖拽\n if (dialogW > windowInnerWidth || dialogH > windowInnerHeight) return;\n function mouseMoverHandler(documentEvent: MouseEvent) {\n // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置\n let left = documentEvent.clientX - disX;\n let top = documentEvent.clientY - disY;\n // 临界判断\n // 拖拽上左边界限制\n if (left < 0) left = 0;\n if (top < 0) top = 0;\n if (windowInnerWidth - target.offsetWidth - left < 0) left = windowInnerWidth - target.offsetWidth;\n if (windowInnerHeight - target.offsetHeight - top < 0) top = windowInnerHeight - target.offsetHeight;\n target.style.position = 'absolute';\n target.style.left = `${left}px`;\n target.style.top = `${top}px`;\n }\n function mouseUpHandler() {\n // 鼠标弹起来的时候不再移动\n document.removeEventListener('mousemove', mouseMoverHandler);\n // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)\n document.removeEventListener('mouseup', mouseUpHandler);\n }\n // 元素按下时注册document鼠标监听事件\n document.addEventListener('mousemove', mouseMoverHandler);\n // 鼠标弹起来移除document鼠标监听事件\n document.addEventListener('mouseup', mouseUpHandler);\n // 拖拽结束移除鼠标监听事件,解决文字拖拽结束事件未解绑问题\n document.addEventListener('dragend', mouseUpHandler);\n });\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDialogCardProps } from '../dialog/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['closeBtn'],\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['header'],\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogCardProps['theme'],\n validator(val: TdDialogCardProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n};\n","import { computed, defineComponent, ref, toRefs } from 'vue';\nimport {\n CloseIcon as TdCloseIcon,\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport dialogCardProps from './dialog-card-props';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useAction } from './hooks';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport type { TdDialogProps } from './type';\nimport dialogProps from './props';\nimport { getCSSValue, initDragEvent } from './utils';\n\nexport default defineComponent({\n name: 'TDialogCard',\n // 注册v-draggable指令,传入true时候初始化拖拽事件\n directives: {\n draggable(el, binding) {\n // el 指令绑定的元素\n if (el && binding && binding.value) {\n initDragEvent(el);\n }\n },\n },\n props: {\n ...dialogProps,\n ...dialogCardProps,\n },\n setup(props, { expose }) {\n const rootRef = ref(null);\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { globalConfig } = useConfig('dialog');\n const { CloseIcon, InfoCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CloseIcon: TdCloseIcon,\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const { cancelBtn, confirmBtn, confirmLoading } = toRefs(props);\n const confirmBtnAction = (e: MouseEvent) => props.onConfirm?.({ e });\n const cancelBtnAction = (e: MouseEvent) => props.onCancel?.({ e });\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const closeBtnAction = (e: MouseEvent) => props?.onCloseBtnClick?.({ e });\n const onStopDown = (e: MouseEvent) => {\n if (isModeLess.value && props?.draggable) e.stopPropagation();\n };\n\n const resetPosition = () => {\n if (!rootRef.value && isModeLess.value && props.draggable) return;\n rootRef.value.style.position = 'relative';\n rootRef.value.style.left = 'unset';\n rootRef.value.style.top = 'unset';\n };\n\n // 暴露给父组件的接口\n expose({\n $el: rootRef,\n resetPosition,\n });\n\n const dialogClass = computed(() => {\n const dialogClass = [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}__modal-${props.theme}`,\n isModeLess.value && props.draggable && `${COMPONENT_NAME.value}--draggable`,\n props.dialogClassName,\n ];\n\n if (isFullScreen.value) {\n dialogClass.push(`${COMPONENT_NAME.value}__fullscreen`);\n } else {\n dialogClass.push(...[`${COMPONENT_NAME.value}--default`, `${COMPONENT_NAME.value}--${props.placement}`]);\n }\n return dialogClass;\n });\n const dialogStyle = computed(() => {\n return !isFullScreen.value ? { width: getCSSValue(props.width), ...props.dialogStyle } : { ...props.dialogStyle }; // width全屏模式不生效\n });\n\n const renderCard = () => {\n const confirmBtnLoading = computed(() => {\n // @ts-ignore\n return confirmBtn.value?.loading || confirmLoading.value;\n });\n const defaultFooter = (\n
    \n {getCancelBtn({\n cancelBtn: cancelBtn.value as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n })}\n {getConfirmBtn({\n theme: props?.theme,\n confirmBtn: confirmBtn.value as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n confirmLoading: confirmBtnLoading.value,\n })}\n
    \n );\n\n const footerContent = renderTNodeJSX('footer', defaultFooter);\n\n const renderHeader = () => {\n // header 值为 true 显示空白头部\n const header = renderTNodeJSX('header',
    ) ?? false;\n const headerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__header`, `${COMPONENT_NAME.value}__header--fullscreen`]\n : `${COMPONENT_NAME.value}__header`;\n\n const closeClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__close`, `${COMPONENT_NAME.value}__close--fullscreen`]\n : `${COMPONENT_NAME.value}__close`;\n const getIcon = () => {\n const icon = {\n info: ,\n warning: ,\n danger: ,\n success: ,\n };\n return icon[props?.theme as keyof typeof icon];\n };\n return (\n (header || props?.closeBtn) && (\n
    \n
    \n {getIcon()}\n {header}\n
    \n\n {props?.closeBtn ? (\n \n {renderTNodeJSX('closeBtn', )}\n \n ) : null}\n
    \n )\n );\n };\n\n const renderBody = () => {\n const body = renderContent('default', 'body');\n const bodyClassName =\n props?.theme === 'default' ? [`${COMPONENT_NAME.value}__body`] : [`${COMPONENT_NAME.value}__body__icon`];\n if (isFullScreen.value && footerContent) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen`);\n } else if (isFullScreen.value) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen--without-footer`);\n }\n return (\n
    \n {body}\n
    \n );\n };\n\n const renderFooter = () => {\n const footerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--fullscreen`]\n : `${COMPONENT_NAME.value}__footer`;\n\n return (\n footerContent && (\n
    \n {footerContent}\n
    \n )\n );\n };\n\n return (\n <>\n {renderHeader()}\n {renderBody()}\n {!!props.footer && renderFooter()}\n \n );\n };\n\n return () => (\n \n {renderCard()}\n \n );\n },\n});\n","import {\n computed,\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n Transition,\n watch,\n Teleport,\n ComponentPublicInstance,\n} from 'vue';\nimport { DialogCloseContext } from './type';\nimport props from './props';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useSameTarget } from './hooks';\nimport useDestroyOnClose from '../hooks/useDestroyOnClose';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport useTeleport from '../hooks/useTeleport';\nimport usePopupManager from '../hooks/usePopupManager';\nimport { getCSSValue } from './utils';\nimport TDialogCard from './dialog-card';\n\nlet mousePosition: { x: number; y: number } | null;\nconst getClickPosition = (e: MouseEvent) => {\n mousePosition = {\n x: e.clientX,\n y: e.clientY,\n };\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDialog',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const dialogCardRef = ref void }>>(null);\n const { globalConfig } = useConfig('dialog');\n const confirmBtnAction = (context: { e: MouseEvent }) => {\n props.onConfirm?.(context);\n };\n const cancelBtnAction = (context: { e: MouseEvent }) => {\n props.onCancel?.(context);\n emitCloseEvent({ e: context.e, trigger: 'cancel' });\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n useDestroyOnClose();\n const timer = ref();\n const styleEl = ref();\n // 是否模态形式的对话框\n const isModal = computed(() => props.mode === 'modal');\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const computedVisible = computed(() => props.visible);\n const maskClass = computed(() => [\n `${COMPONENT_NAME.value}__mask`,\n !props.showOverlay && `${classPrefix.value}-is-hidden`,\n ]);\n const positionClass = computed(() => {\n if (isFullScreen.value) return [`${COMPONENT_NAME.value}__position_fullscreen`];\n if (isModal.value || isModeLess.value) {\n return [\n `${COMPONENT_NAME.value}__position`,\n !!props.top && `${COMPONENT_NAME.value}--top`,\n `${props.placement && !props.top ? `${COMPONENT_NAME.value}--${props.placement}` : ''}`,\n ];\n }\n return [];\n });\n const wrapClass = computed(() =>\n isFullScreen.value || isModal.value || isModeLess.value ? [`${COMPONENT_NAME.value}__wrap`] : null,\n );\n const positionStyle = computed(() => {\n if (isFullScreen.value) return {}; // 全屏模式,top属性不生效\n\n // 此处获取定位方式 top 优先级较高 存在时 默认使用top定位\n const { top } = props;\n let topStyle = {};\n if (top !== undefined) {\n const topValue = getCSSValue(top);\n topStyle = { paddingTop: topValue };\n }\n return topStyle;\n });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: computedVisible,\n });\n /**是否已经第一次渲染,懒加载判断 */\n const isMounted = ref(false);\n\n watch(\n () => props.visible,\n (value) => {\n if (value) {\n isMounted.value = true;\n if ((isModal.value && !props.showInAttachedElement) || isFullScreen.value) {\n if (props.preventScrollThrough) {\n document.body.appendChild(styleEl.value);\n }\n\n nextTick(() => {\n if (mousePosition && dialogCardRef.value?.$el) {\n const el = dialogCardRef.value.$el as HTMLElement;\n el.style.transformOrigin = `${mousePosition.x - el.offsetLeft}px ${mousePosition.y - el.offsetTop}px`;\n }\n });\n }\n // 清除鼠标焦点 避免entry事件多次触发(按钮弹出弹窗 不移除焦点 立即按Entry按键 会造成弹窗关闭再弹出)\n (document.activeElement as HTMLElement)?.blur();\n } else {\n clearStyleFunc();\n }\n addKeyboardEvent(value);\n },\n );\n\n function destroySelf() {\n styleEl.value.parentNode?.removeChild?.(styleEl.value);\n }\n\n function clearStyleFunc() {\n clearTimeout(timer.value);\n timer.value = setTimeout(() => {\n destroySelf();\n }, 150);\n }\n\n const addKeyboardEvent = (status: boolean) => {\n if (status) {\n document.addEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.addEventListener('keydown', keyboardEnterEvent);\n } else {\n document.removeEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.removeEventListener('keydown', keyboardEnterEvent);\n }\n };\n // 回车触发确认事件\n const keyboardEnterEvent = (e: KeyboardEvent) => {\n const eventSrc = e.target as HTMLElement;\n if (eventSrc.tagName.toLowerCase() === 'input') return; // 若是input触发 则不执行\n const { code } = e;\n if ((code === 'Enter' || code === 'NumpadEnter') && isTopInteractivePopup()) {\n props.onConfirm?.({ e });\n }\n };\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.code === 'Escape' && isTopInteractivePopup()) {\n props.onEscKeydown?.({ e });\n // 根据closeOnEscKeydown判断按下ESC时是否触发close事件\n if (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) {\n emitCloseEvent({ e, trigger: 'esc' });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n }\n };\n const overlayAction = (e: MouseEvent) => {\n if (props.showOverlay && (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick)) {\n props.onOverlayClick?.({ e });\n emitCloseEvent({ e, trigger: 'overlay' });\n }\n };\n const { onClick, onMousedown, onMouseup } = useSameTarget(overlayAction);\n const closeBtnAction = (context: { e: MouseEvent }) => {\n props.onCloseBtnClick?.(context);\n emitCloseEvent({\n trigger: 'close-btn',\n e: context.e,\n });\n };\n\n // 打开弹窗动画开始时事件\n const beforeEnter = () => {\n props.onBeforeOpen?.();\n };\n\n // 打开弹窗动画结束时事件\n const afterEnter = () => {\n props.onOpened?.();\n };\n\n // 关闭弹窗动画开始时事件\n const beforeLeave = () => {\n props.onBeforeClose?.();\n };\n\n // 关闭弹窗动画结束时事件\n const afterLeave = () => {\n dialogCardRef.value?.resetPosition?.();\n props.onClosed?.();\n };\n\n const emitCloseEvent = (ctx: DialogCloseContext) => {\n props.onClose?.(ctx);\n // 默认关闭弹窗\n context.emit('update:visible', false);\n };\n\n // Vue在引入阶段对事件的处理还做了哪些初始化操作。Vue在实例上用一个_events属性存贮管理事件的派发和更新,\n // 暴露出$on, $once, $off, $emit方法给外部管理事件和派发执行事件\n // 所以通过判断_events某个事件下监听函数数组是否超过一个,可以判断出组件是否监听了当前事件\n // const hasEventOn = (name: string) => {\n // // _events 因没有被暴露在vue实例接口中,只能把这个规则注释掉\n // // eslint-disable-next-line dot-notation\n // // @ts-ignore\n // const eventFuncs = this['_events']?.[name];\n // return !!eventFuncs?.length;\n // };\n\n const renderDialog = () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { theme, onConfirm, onCancel, onCloseBtnClick, ...otherProps } = props;\n return (\n /** 非模态形态下draggable为true才允许拖拽 */\n
    \n \n \n
    \n \n );\n };\n\n onMounted(() => {\n const hasScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_dialog_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n width: calc(100% - ${scrollWidth}px);\n }\n `;\n });\n\n onBeforeUnmount(() => {\n addKeyboardEvent(false);\n destroySelf();\n });\n\n const shouldRender = computed(() => {\n const { destroyOnClose, visible, lazy } = props;\n if (!isMounted.value) {\n return !lazy;\n } else {\n return visible || !destroyOnClose;\n }\n });\n\n return () => {\n const maskView = (isModal.value || isFullScreen.value) &&
    ;\n const dialogView = renderDialog();\n const view = [maskView, dialogView];\n const ctxStyle = { zIndex: props.zIndex };\n // dialog__ctx--fixed 绝对定位\n // dialog__ctx--absolute 挂载在attach元素上 相对定位\n // __ctx--modeless modeless 点击穿透\n const ctxClass = [\n `${COMPONENT_NAME.value}__ctx`,\n {\n [`${COMPONENT_NAME.value}__ctx--fixed`]: isModal.value || isFullScreen.value,\n [`${COMPONENT_NAME.value}__ctx--absolute`]: isModal.value && props.showInAttachedElement,\n [`${COMPONENT_NAME.value}__ctx--modeless`]: isModeLess.value,\n },\n ];\n\n return (\n \n \n {shouldRender.value && (\n
    \n {view}\n
    \n )}\n \n
    \n );\n };\n },\n});\n","export function useSameTarget(handleClick?: (e: MouseEvent) => void) {\n // 判断 click 事件的起点和落点所在元素是否一致\n let MOUSEDOWN_TARGET = false;\n let MOUSEUP_TARGET = false;\n\n const onClick = (e: MouseEvent) => {\n if (MOUSEDOWN_TARGET && MOUSEUP_TARGET) {\n handleClick(e);\n }\n MOUSEDOWN_TARGET = false;\n MOUSEUP_TARGET = false;\n };\n\n const onMousedown = (e: MouseEvent) => {\n MOUSEDOWN_TARGET = e.target === e.currentTarget;\n };\n const onMouseup = (e: MouseEvent) => {\n MOUSEUP_TARGET = e.target === e.currentTarget;\n };\n\n return { onClick, onMousedown, onMouseup };\n}\n","import { App, createApp, ref, Plugin, defineComponent, h, onMounted, nextTick } from 'vue';\nimport DialogComponent from './dialog';\nimport { getAttach } from '../utils/dom';\nimport { DialogOptions, DialogMethod, DialogConfirmMethod, DialogAlertMethod, DialogInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDialog: DialogMethod = (props: DialogOptions) => {\n const options = { ...props };\n const wrapper = document.createElement('div');\n const visible = ref(false);\n const { className, style } = options;\n\n let preClassName = className;\n\n const updateClassNameStyle = (className: string, style: DialogOptions['style']) => {\n if (className) {\n if (preClassName && preClassName !== className) {\n wrapper.firstElementChild.classList.remove(...preClassName.split(' ').map((name) => name.trim()));\n }\n className.split(' ').forEach((name) => {\n wrapper.firstElementChild.classList.add(name.trim());\n });\n }\n\n if (style) {\n (wrapper.firstElementChild as HTMLElement).style.cssText += style;\n }\n\n preClassName = className;\n };\n\n const component = defineComponent({\n setup(props, { expose }) {\n const dialogOptions = ref>(options);\n onMounted(() => {\n visible.value = true;\n // 处理 https://github.com/Tencent/tdesign-vue-next/issues/394\n (document.activeElement as HTMLElement).blur();\n // 避免元素未挂载就触发样式获取,子元素为空的问题\n nextTick(() => {\n updateClassNameStyle(className, style);\n });\n });\n const update = (newOptions: DialogOptions) => {\n dialogOptions.value = {\n ...options,\n ...newOptions,\n };\n };\n\n expose({\n update,\n });\n\n return () => {\n const onClose =\n options.onClose ||\n function () {\n visible.value = false;\n };\n delete options.className;\n delete options.style;\n return h(DialogComponent, {\n onClose,\n visible: visible.value,\n ...dialogOptions.value,\n });\n };\n },\n });\n const dialogComponent = createApp(component);\n const dialog = dialogComponent.mount(wrapper);\n\n const container = getAttach(options.attach);\n if (container) {\n container.appendChild(wrapper);\n } else {\n console.error('attach is not exist');\n }\n\n const dialogNode: DialogInstance = {\n show: () => {\n visible.value = true;\n },\n hide: () => {\n visible.value = false;\n },\n update: (newOptions: DialogOptions) => {\n // className & style由updateClassNameStyle来处理\n dialog.update(omit(newOptions, ['className', 'style']));\n updateClassNameStyle(newOptions.className, newOptions.style);\n },\n destroy: () => {\n visible.value = false;\n setTimeout(() => {\n dialogComponent.unmount();\n wrapper.remove();\n }, 300);\n },\n setConfirmLoading: (val: boolean) => {\n dialog.update({ confirmLoading: val });\n },\n };\n return dialogNode;\n};\ninterface ExtraApi {\n confirm: DialogConfirmMethod;\n alert: DialogAlertMethod;\n}\n\ntype ExtraApiType = keyof ExtraApi;\n\nconst confirm: DialogConfirmMethod = (props: DialogOptions) => createDialog(props);\n\nconst alert: DialogAlertMethod = (props: Omit) => {\n const options = { ...props };\n options.cancelBtn = null;\n return createDialog(options);\n};\n\nconst extraApi: ExtraApi = {\n confirm,\n alert,\n};\n\nexport type DialogPluginType = Plugin & ExtraApi & DialogMethod;\n\nexport const DialogPlugin = createDialog as DialogPluginType;\n\nDialogPlugin.install = (app: App): void => {\n app.config.globalProperties.$dialog = createDialog;\n Object.keys(extraApi).forEach((funcName: ExtraApiType) => {\n app.config.globalProperties.$dialog[funcName] = extraApi[funcName];\n });\n};\n\nObject.keys(extraApi).forEach((funcName: ExtraApiType) => {\n DialogPlugin[funcName] = extraApi[funcName];\n});\n\nexport default DialogPlugin;\n","import _Dialog from './dialog';\nimport _DialogCard from './dialog-card';\nimport withInstall from '../utils/withInstall';\nimport { TdDialogProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DialogProps = TdDialogProps;\n\nexport const Dialog = withInstall(_Dialog);\nexport const DialogCard = withInstall(_DialogCard);\n\nexport { default as DialogPlugin } from './plugin';\nexport default Dialog;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { PropType } from 'vue';\nimport { TdImageViewerProps } from './type';\n\nexport default {\n /** 指定挂载节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: 'body' as TdImageViewerProps['attach'],\n },\n /** 是否展示关闭按钮,值为 `true` 显示默认关闭按钮;值为 `false` 则不显示关闭按钮;也可以完全自定义关闭按钮 */\n closeBtn: {\n type: [Boolean, Function] as PropType,\n default: true as TdImageViewerProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发图片预览器关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: true,\n },\n /** 是否在点击遮罩层时,触发预览关闭 */\n closeOnOverlay: Boolean,\n /** 是否允许拖拽调整位置。`mode=modal` 时,默认不允许拖拽;`mode=modeless` 时,默认允许拖拽 */\n draggable: {\n type: Boolean,\n default: undefined,\n },\n /** 图片预览中的 `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n imageReferrerpolicy: {\n type: String as PropType,\n validator(val: TdImageViewerProps['imageReferrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片缩放相关配置。`imageScale.max` 缩放的最大比例;`imageScale.min` 缩放的最小比例;`imageScale.step` 缩放的步长速度; `imageScale.defaultScale` 默认的缩放比例 */\n imageScale: {\n type: Object as PropType,\n },\n /** 图片数组。`mainImage` 表示主图,必传;`thumbnail` 表示缩略图,如果不存在,则使用主图显示;`download` 是否允许下载图片,默认允许下载。示例: `['img_url_1', 'img_url_2']`,`[{ thumbnail: 'small_image_url', mainImage: 'big_image_url', download: false }]` */\n images: {\n type: Array as PropType,\n default: (): TdImageViewerProps['images'] => [],\n },\n /** 当前预览图片所在的下标 */\n index: {\n type: Number,\n default: undefined,\n },\n /** 当前预览图片所在的下标,非受控属性 */\n defaultIndex: {\n type: Number,\n default: 0,\n },\n /** 模态预览(modal)和非模态预览(modeless) */\n mode: {\n type: String as PropType,\n default: 'modal' as TdImageViewerProps['mode'],\n validator(val: TdImageViewerProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless'].includes(val);\n },\n },\n /** 切换预览图片的左图标,可自定义 */\n navigationArrow: {\n type: [Boolean, Function] as PropType,\n default: true as TdImageViewerProps['navigationArrow'],\n },\n /** 是否显示遮罩层。`mode=modal` 时,默认显示;`mode=modeless` 时,默认不显示 */\n showOverlay: {\n type: Boolean,\n default: undefined,\n },\n /** 预览标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 触发图片预览的元素,可能是一个预览按钮,可能是一张缩略图,完全自定义 */\n trigger: {\n type: [String, Function] as PropType,\n },\n /** 限制预览器缩放的最小宽度和最小高度,仅 `mode=modeless` 时有效 */\n viewerScale: {\n type: Object as PropType,\n },\n /** 隐藏/显示预览 */\n visible: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 隐藏/显示预览,非受控属性 */\n defaultVisible: Boolean,\n /** 层级,默认为 2000 */\n zIndex: {\n type: Number,\n },\n /** 关闭时触发,事件参数包含触发关闭的来源:关闭按钮、遮罩层、ESC 键 */\n onClose: Function as PropType,\n /** 自定义预览图片下载操作,url为图片链接 */\n onDownload: Function as PropType,\n /** 预览图片切换时触发,`context.prev` 切换到上一张图片,`context.next` 切换到下一张图片 */\n onIndexChange: Function as PropType,\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport { ImageIcon, ZoomInIcon, ZoomOutIcon, DownloadIcon, MirrorIcon, RotationIcon } from 'tdesign-icons-vue-next';\nimport TImageViewerIcon from './ImageModalIcon';\nimport TToolTip from '../../tooltip';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useImagePreviewUrl } from '../../hooks';\nimport { ImageInfo } from '../type';\nimport { largeNumberToFixed } from '@tdesign/common-js/input-number/large-number';\n\nexport default defineComponent({\n name: 'TImageViewerUtils',\n props: {\n scale: Number,\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onDownload: Function as PropType<(url: string) => void>,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const imageUrl = computed(() => props.currentImage.mainImage);\n\n const { previewUrl } = useImagePreviewUrl(imageUrl);\n const { globalConfig } = useConfig('imageViewer');\n\n return () => (\n
    \n
    \n \n } />\n \n \n } />\n \n } onClick={props.onZoomOut} />\n \n\n } onClick={props.onZoomIn} />\n \n
    \n } onClick={props.onReset} />\n
    \n \n {props.currentImage.download && (\n }\n onClick={() => {\n props.onDownload(previewUrl.value);\n }}\n />\n )}\n
    \n
    \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport TDialog from '../../dialog';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport props from '../props';\nimport { ImageInfo, TdImageViewerProps } from '../type';\nimport TImageItem from './ImageItem';\nimport TImageViewerUtils from './ImageViewerUtils';\n\nexport default defineComponent({\n name: 'TImageViewerModal',\n props: {\n zIndex: Number,\n visible: Boolean,\n index: Number,\n images: props.images,\n scale: Number,\n rotate: Number,\n mirror: Number,\n title: props.title,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onClose: props.onClose,\n onDownload: props.onDownload,\n draggable: {\n type: Boolean,\n default: true,\n },\n viewerScale: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n showOverlay: Boolean,\n closeBtn: props.closeBtn,\n imageReferrerpolicy: props.imageReferrerpolicy,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderJSX = useTNodeJSX();\n const style = computed(() => ({\n minWidth: props.viewerScale.minWidth,\n minHeight: props.viewerScale.minHeight,\n }));\n\n return () => (\n (\n
    \n \n
    \n )}\n >\n
    \n \n
    \n \n );\n },\n});\n","export const enum EVENT_CODE {\n left = 'ArrowLeft', // 37\n up = 'ArrowUp', // 38\n right = 'ArrowRight', // 39\n down = 'ArrowDown', // 40\n esc = 'Escape',\n}\n","import { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { TdImageViewerProps, ImageInfo } from '../type';\n\nexport const downloadFile = function (imgSrc: string) {\n const image = new Image();\n // fix #2935\n // 当链接携带了参数时,需处理掉参数再取图片名称,否则扩展名会与参数链接导致原扩展名失效\n // 例如:img.png?sign=xxx 不处理参数会被转成 img.png_sign=xxx\n const name = imgSrc?.split?.('?')?.[0]?.split?.('#')?.[0]?.split?.('/').pop() || Math.random().toString(32).slice(2);\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n canvas.toBlob((blob) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.download = name;\n a.href = url;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n });\n };\n image.src = imgSrc;\n};\n\nconst isImageInfo = (image: string | File | ImageInfo): image is ImageInfo => {\n return !!image && !isString(image) && !(image instanceof File);\n};\n\nexport const formatImages = (images: TdImageViewerProps['images']): ImageInfo[] => {\n if (!isArray(images)) return [];\n return images.map((item) => {\n if (isImageInfo(item)) {\n return {\n download: true,\n thumbnail: item.mainImage,\n ...item,\n };\n }\n return {\n mainImage: item,\n thumbnail: item,\n download: true,\n };\n });\n};\n\nexport const getOverlay = (props: TdImageViewerProps) => {\n if (props.showOverlay !== undefined) {\n return props.showOverlay;\n }\n return props.mode === 'modal';\n};\n","import { ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next';\nimport { Teleport, Transition, computed, defineComponent, nextTick, ref, toRefs, watch } from 'vue';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport usePopupManager from '../hooks/usePopupManager';\nimport useTeleport from '../hooks/useTeleport';\nimport useVModel from '../hooks/useVModel';\nimport Image from '../image';\nimport TImageItem from './base/ImageItem';\nimport TImageViewerIcon from './base/ImageModalIcon';\nimport TImageViewerModal from './base/ImageViewerModal';\nimport TImageViewerUtils from './base/ImageViewerUtils';\nimport { EVENT_CODE } from './consts';\nimport { useMirror, useRotate, useScale } from './hooks';\nimport props from './props';\nimport { TdImageViewerProps } from './type';\nimport { downloadFile, formatImages, getOverlay } from './utils';\n\nexport default defineComponent({\n name: 'TImageViewer',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('image-viewer');\n const renderTNodeJSX = useTNodeJSX();\n const isExpand = ref(true);\n const showOverlayValue = computed(() => getOverlay(props));\n\n const { index, visible, modelValue, imageReferrerpolicy } = toRefs(props);\n const [indexValue, setIndexValue] = useDefaultValue(index, props.defaultIndex ?? 0, props.onIndexChange, 'index');\n const [visibleValue, setVisibleValue] = useVModel(visible, modelValue, props.defaultVisible, () => {}, 'visible');\n const animationEnd = ref(true);\n const animationTimer = ref();\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const wrapClass = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}-preview-image`,\n {\n [`${classPrefix.value}-is-hide`]: !visibleValue.value,\n },\n ]);\n const headerClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-header`,\n {\n [`${classPrefix.value}-is-show`]: isExpand.value,\n },\n ]);\n const zIndexValue = computed(() => props.zIndex ?? 2600);\n const toggleExpand = () => {\n isExpand.value = !isExpand.value;\n };\n\n const { mirror, onMirror, resetMirror } = useMirror();\n const { scale, onZoomIn, onZoomOut, resetScale } = useScale(props.imageScale);\n const { rotate, onRotate, resetRotate } = useRotate();\n const onRest = () => {\n resetMirror();\n resetScale();\n resetRotate();\n };\n\n const images = computed(() => formatImages(props.images));\n const currentImage = computed(() => images.value[indexValue.value] ?? { mainImage: '' });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: visibleValue,\n });\n\n const prevImage = () => {\n const newIndex = indexValue.value - 1;\n onRest();\n setIndexValue(newIndex < 0 ? 0 : newIndex, { trigger: 'prev' });\n };\n\n const nextImage = () => {\n const newIndex = indexValue.value + 1;\n onRest();\n setIndexValue(newIndex >= images.value.length ? indexValue.value : newIndex, { trigger: 'next' });\n };\n\n const onImgClick = (i: number) => {\n setIndexValue(i, { trigger: 'current' });\n };\n\n const onDownloadClick = (url: string) => {\n props.onDownload ? props.onDownload(url) : downloadFile(url);\n };\n\n const openHandler = () => {\n setVisibleValue(true);\n };\n const onClose: TdImageViewerProps['onClose'] = (ctx) => {\n setVisibleValue(false);\n props.onClose?.(ctx);\n };\n const closeBtnAction = (e: MouseEvent) => {\n onClose({ e, trigger: 'close-btn' });\n };\n const clickOverlayHandler = (e: MouseEvent) => {\n if (props.closeOnOverlay) {\n onClose({ e, trigger: 'overlay' });\n }\n };\n\n const keydownHandler = (e: KeyboardEvent) => {\n e.stopPropagation();\n\n switch (e.code) {\n case EVENT_CODE.left:\n prevImage();\n break;\n case EVENT_CODE.right:\n nextImage();\n break;\n case EVENT_CODE.up:\n onZoomIn();\n break;\n case EVENT_CODE.down:\n onZoomOut();\n break;\n case EVENT_CODE.esc:\n if (props.closeOnEscKeydown && isTopInteractivePopup()) {\n onClose({ e, trigger: 'esc' });\n }\n break;\n default:\n break;\n }\n };\n\n const divRef = ref();\n watch(\n () => visibleValue.value,\n (val) => {\n clearTimeout(animationTimer.value);\n if (val) {\n animationEnd.value = false;\n nextTick().then(() => {\n divRef.value?.focus?.();\n });\n\n onRest();\n } else {\n animationTimer.value = setTimeout(() => {\n animationEnd.value = true;\n }, 200);\n }\n },\n );\n\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const { deltaY } = e;\n deltaY > 0 ? onZoomOut() : onZoomIn();\n };\n\n const transStyle = computed(() => ({\n transform: `translateX(calc(-${indexValue.value} * (40px / 9 * 16 + 4px)))`,\n }));\n\n const renderHeader = () => (\n
    \n }\n class={`${COMPONENT_NAME.value}__header-pre-bt`}\n onClick={toggleExpand}\n />\n
    \n
    \n {images.value.map((image, index) => (\n \n onImgClick(index)}\n />\n
    \n ))}\n
    \n
    \n \n );\n const renderNavigationArrow = (type: 'prev' | 'next') => {\n const rotateDeg = type === 'prev' ? 0 : 180;\n const icon = renderTNodeJSX(\n 'navigationArrow',\n ,\n );\n\n return (\n icon}\n />\n );\n };\n\n const renderCloseBtn = () => {\n if (props.closeBtn === false) {\n return;\n }\n return (\n \n {renderTNodeJSX('closeBtn', )}\n \n );\n };\n\n return () => {\n if (props.mode === 'modeless') {\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n );\n }\n\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n {(visibleValue.value || !animationEnd.value) && (\n \n {!!showOverlayValue.value && (\n
    \n )}\n {images.value.length > 1 && (\n <>\n {renderHeader()}\n
    \n {props.title && renderTNodeJSX('title')}\n {`${indexValue.value + 1}/${images.value.length}`}\n
    \n {renderNavigationArrow('prev')}\n {renderNavigationArrow('next')}\n \n )}\n {renderCloseBtn()}\n \n \n
    \n )}\n
    \n
    \n \n );\n };\n },\n});\n","import _ImageViewer from './image-viewer';\nimport withInstall from '../utils/withInstall';\nimport { TdImageViewerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ImageViewerProps = TdImageViewerProps;\nexport const ImageViewer = withInstall(_ImageViewer);\nexport default ImageViewer;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作栏 */\n action: {\n type: [String, Function] as PropType,\n },\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TListItem',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('list-item');\n const renderTNodeJSX = useTNodeJSX();\n\n return () => {\n const propsContent = renderTNodeJSX('content');\n const propsDefaultContent = renderTNodeJSX('default');\n const propsActionContent = renderTNodeJSX('action');\n\n return (\n
  • \n
    \n {propsDefaultContent || propsContent}\n {propsActionContent &&
  • {propsActionContent}
  • }\n \n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自定义加载中。值为空不显示加载中,值为 'loading' 显示加载中状态,值为 'load-more' 显示加载更多状态。值类型为函数,则表示自定义加载状态呈现内容 */\n asyncLoading: {\n type: [String, Function] as PropType,\n },\n /** 底部 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 头部 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 排列方式(待设计稿输出) */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdListProps['layout'],\n validator(val: TdListProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdListProps['size'],\n validator(val: TdListProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否展示分割线 */\n split: Boolean,\n /** 是否展示斑马纹 */\n stripe: Boolean,\n /** 点击加载更多时触发 */\n onLoadMore: Function as PropType,\n /** 列表滚动时触发,scrollTop 表示顶部滚动距离,scrollBottom 表示底部滚动距离 */\n onScroll: Function as PropType,\n};\n","export const LOAD_MORE = 'load-more';\nexport const LOADING = 'loading';\n","import { Ref, computed } from 'vue';\n\nimport log from '@tdesign/common-js/log/index';\nimport useVirtualScroll from '../../hooks/useVirtualScrollNew';\nimport { TdListProps } from '../type';\nimport { Styles, type ComponentScrollToElementParams } from '../../common';\n\nexport const useListVirtualScroll = (\n scroll: TdListProps['scroll'],\n listRef: Ref,\n listItems: Ref,\n) => {\n const virtualScrollParams = computed(() => ({\n data: listItems.value,\n scroll: scroll,\n }));\n const virtualConfig = useVirtualScroll(listRef, virtualScrollParams);\n const isVirtualScroll = computed(() => virtualConfig.isVirtualScroll.value);\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n if (lastScrollY !== top) {\n virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n } else {\n lastScrollY = -1;\n }\n lastScrollY = top;\n };\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n } as Styles),\n );\n\n const listStyle = computed(\n () =>\n ({\n transform: `translate(0, ${virtualConfig.translateY.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n } as Styles),\n );\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n const { index, key } = params;\n const targetIndex = index === 0 ? index : index ?? Number(key);\n if (!targetIndex && targetIndex !== 0) {\n log.error('List', 'scrollTo: `index` or `key` must exist.');\n return;\n }\n if (targetIndex < 0 || targetIndex >= listItems.value.length) {\n log.error('List', `${targetIndex} does not exist in data, check \\`index\\` or \\`key\\` please.`);\n return;\n }\n virtualConfig.scrollToElement({ ...params, index: targetIndex - 1 });\n };\n\n return {\n virtualConfig,\n cursorStyle,\n listStyle,\n isVirtualScroll,\n onInnerVirtualScroll,\n scrollToElement: handleScrollTo,\n };\n};\n","import { defineComponent, VNodeChild, computed, ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { omit } from 'lodash-es';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport TLoading from '../loading';\nimport TListItem from './list-item';\nimport props from './props';\nimport { LOAD_MORE, LOADING } from './consts';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useListItems, useListVirtualScroll } from './hooks';\n\nimport type { TdListProps } from './type';\n\nexport default defineComponent({\n name: 'TList',\n props,\n setup(props: TdListProps, { expose }) {\n const listRef = ref();\n\n const { globalConfig } = useConfig('list');\n const COMPONENT_NAME = usePrefixClass('list');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n const { listItems } = useListItems();\n\n const { virtualConfig, cursorStyle, listStyle, isVirtualScroll, onInnerVirtualScroll, scrollToElement } =\n useListVirtualScroll(props.scroll, listRef, listItems);\n\n /** 列表基础逻辑 start */\n const listClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [`${COMPONENT_NAME.value}--split`]: props.split,\n [`${COMPONENT_NAME.value}--stripe`]: props.stripe,\n [`${COMPONENT_NAME.value}--vertical-action`]: props.layout === 'vertical',\n },\n ];\n });\n const renderContent = (): VNodeChild => {\n const propsHeaderContent = renderTNodeJSX('header');\n const propsFooterContent = renderTNodeJSX('footer');\n const isVirtualScroll = virtualConfig.isVirtualScroll.value;\n return (\n <>\n {propsHeaderContent ?
    {propsHeaderContent}
    : null}\n {isVirtualScroll ? (\n <>\n
    \n
      \n {virtualConfig.visibleData.value.map((item) => (\n <>\n \n \n ))}\n
    \n \n ) : (\n
      {renderTNodeJSX('default')}
    \n )}\n {propsFooterContent ?
    {propsFooterContent}
    : null}\n \n );\n };\n /** 列表基础逻辑 end */\n\n /** 滚动相关逻辑 start */\n const handleScroll = (e: WheelEvent) => {\n const listElement = e.target as HTMLElement;\n const { scrollTop, scrollHeight, clientHeight } = listElement;\n if (isVirtualScroll.value) onInnerVirtualScroll(e);\n props.onScroll?.({\n e,\n scrollTop,\n scrollBottom: scrollHeight - clientHeight - scrollTop,\n });\n };\n /** 滚动相关逻辑 end */\n\n /** loading加载相关逻辑 start */\n const loadingClass = computed(() => {\n return isString(props.asyncLoading) && ['loading', 'load-more'].includes(props.asyncLoading)\n ? `${COMPONENT_NAME.value}__load ${COMPONENT_NAME.value}__load--${props.asyncLoading}`\n : `${COMPONENT_NAME.value}__load`;\n });\n\n const renderLoading = () => {\n if (props.asyncLoading && isString(props.asyncLoading)) {\n if (props.asyncLoading === LOADING) {\n return (\n
    \n \n {globalConfig.value.loadingText}\n
    \n );\n }\n if (props.asyncLoading === LOAD_MORE) {\n return {globalConfig.value.loadingMoreText};\n }\n }\n return renderTNodeJSX('asyncLoading');\n };\n\n const handleLoadMore = (e: MouseEvent) => {\n if (isString(props.asyncLoading) && props.asyncLoading !== LOAD_MORE) return;\n props.onLoadMore?.({ e });\n };\n expose({ scrollTo: scrollToElement });\n return () => {\n const listContent = [\n renderContent(),\n
    \n {renderLoading()}\n
    ,\n ];\n\n return (\n \n {listContent}\n \n );\n };\n },\n});\n","import { computed } from 'vue';\nimport { isArray } from 'lodash-es';\n\nimport { useChildComponentSlots } from '../../hooks/slot';\n\nexport const useListItems = () => {\n const getChildComponentSlots = useChildComponentSlots();\n\n const listItems = computed(() => {\n const computedListItems = [];\n // 处理 slots\n const listItemSlots = getChildComponentSlots('ListItem');\n\n if (isArray(listItemSlots)) {\n for (const child of listItemSlots) {\n computedListItems.push({\n ...child.props,\n slots: child.children,\n } as any);\n }\n }\n return computedListItems;\n });\n\n return {\n listItems,\n };\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemMetaProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 已废弃。列表项图片 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 列表项内容 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 列表项图片 */\n image: {\n type: [String, Function] as PropType,\n },\n /** 列表项标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-meta-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TListItemMeta',\n props,\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('list-item__meta');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAvatar = () => {\n if (props.avatar || ctx.slots.avatar) {\n console.warn('`avatar` is going to be deprecated, please use `image` instead');\n }\n const thumbnail = renderContent('avatar', 'image');\n if (!thumbnail) return;\n if (isString(thumbnail)) {\n return (\n
    \n \n
    \n );\n }\n return
    {thumbnail}
    ;\n };\n return () => {\n const propsTitleContent = renderTNodeJSX('title');\n const propsDescriptionContent = renderTNodeJSX('description');\n\n const listItemMetaContent = [\n renderAvatar(),\n
    \n {propsTitleContent &&

    {propsTitleContent}

    }\n {propsDescriptionContent &&

    {propsDescriptionContent}

    }\n
    ,\n ];\n\n return
    {listItemMetaContent}
    ;\n };\n },\n});\n","import _List from './list';\nimport _ListItem from './list-item';\nimport _ListItemMeta from './list-item-meta';\nimport withInstall from '../utils/withInstall';\nimport { TdListProps, TdListItemProps, TdListItemMetaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ListProps = TdListProps;\nexport type ListItemProps = TdListItemProps;\nexport type ListItemMetaProps = TdListItemMetaProps;\n\nexport const List = withInstall(_List);\nexport const ListItem = withInstall(_ListItem);\nexport const ListItemMeta = withInstall(_ListItemMeta);\n","export const PRO_THEME = {\n LINE: 'line',\n PLUMP: 'plump',\n CIRCLE: 'circle',\n};\nexport const CIRCLE_SIZE = {\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n};\nexport const CIRCLE_SIZE_PX = {\n SMALL: 72,\n MEDIUM: 112,\n LARGE: 160,\n};\nexport const CIRCLE_FONT_SIZE_RATIO = {\n SMALL: 14 / CIRCLE_SIZE_PX.SMALL,\n MEDIUM: 20 / CIRCLE_SIZE_PX.MEDIUM,\n LARGE: 36 / CIRCLE_SIZE_PX.LARGE,\n};\nexport const STATUS_TEXT = ['success', 'error', 'warning', 'active', 'normal'];\nexport const STATUS_ICON = ['success', 'error', 'warning'];\n\nexport default {\n PRO_THEME,\n CIRCLE_SIZE,\n CIRCLE_SIZE_PX,\n STATUS_TEXT,\n STATUS_ICON,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdProgressProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 进度条颜色。示例:'#ED7B2F' 或 'orange' 或 `['#f00', '#0ff', '#f0f']` 或 `{ '0%': '#f00', '100%': '#0ff' }` 或 `{ from: '#000', to: '#000' }` 等 */\n color: {\n type: [String, Object, Array] as PropType,\n default: '' as TdProgressProps['color'],\n },\n /** 进度百分比,可自定义 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdProgressProps['label'],\n },\n /** 进度条百分比 */\n percentage: {\n type: Number,\n default: 0,\n },\n /** 进度条尺寸,示例:small/medium/large/240。small 值为 72; medium 值为 112;large 值为 160 */\n size: {\n type: [String, Number] as PropType,\n default: 'medium' as TdProgressProps['size'],\n },\n /** 进度条状态 */\n status: {\n type: String as PropType,\n validator(val: TdProgressProps['status']): boolean {\n if (!val) return true;\n return ['success', 'error', 'warning', 'active'].includes(val);\n },\n },\n /** 进度条线宽。宽度数值不能超过 size 的一半,否则不能输出环形进度 */\n strokeWidth: {\n type: [String, Number] as PropType,\n },\n /** 进度条风格。值为 line,标签(label)显示在进度条右侧;值为 plump,标签(label)显示在进度条里面;值为 circle,标签(label)显示在进度条正中间 */\n theme: {\n type: String as PropType,\n default: 'line' as TdProgressProps['theme'],\n validator(val: TdProgressProps['theme']): boolean {\n if (!val) return true;\n return ['line', 'plump', 'circle'].includes(val);\n },\n },\n /** 进度条未完成部分颜色 */\n trackColor: {\n type: String,\n default: '',\n },\n};\n","import { defineComponent, VNode, computed, CSSProperties } from 'vue';\nimport {\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n CheckIcon as TdCheckIcon,\n ErrorIcon as TdErrorIcon,\n} from 'tdesign-icons-vue-next';\n\nimport { getBackgroundColor } from '@tdesign/common-js/utils/helper';\nimport { PRO_THEME, CIRCLE_SIZE, CIRCLE_SIZE_PX, STATUS_ICON, CIRCLE_FONT_SIZE_RATIO } from './consts';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isObject } from 'lodash-es';\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TProgress',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('progress');\n const { CloseCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseIcon, CheckIcon, ErrorIcon } =\n useGlobalIcon({\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n CheckIcon: TdCheckIcon,\n ErrorIcon: TdErrorIcon,\n });\n\n const statusStyle = computed(() => {\n if (!props.status && props.percentage >= 100) {\n return 'success';\n }\n return props.status || 'default';\n });\n\n const trackBgStyle = computed(() => {\n const style: CSSProperties = {};\n if (props.strokeWidth) {\n const height = isString(props.strokeWidth) ? props.strokeWidth : `${props.strokeWidth}px`;\n style.height = height;\n style.borderRadius = height;\n }\n if (props.trackColor) {\n style.backgroundColor = props.trackColor;\n }\n return style;\n });\n\n const barStyle = computed(() => {\n return {\n width: `${props.percentage}%`,\n background: props.color && getBackgroundColor(props.color),\n };\n });\n\n const circlePathStyle = computed(() => {\n const strokeColor = isObject(props.color) ? '' : props.color;\n return {\n stroke: strokeColor,\n };\n });\n\n const circleOuterStyle = computed(() => {\n const strokeColor = isObject(props.trackColor) ? '' : props.trackColor;\n return {\n stroke: strokeColor,\n };\n });\n\n // theme=circle 获取直径\n const diameter = computed(() => {\n let diameter = CIRCLE_SIZE_PX.MEDIUM;\n if (!props.size) {\n return diameter;\n }\n const { SMALL, LARGE, MEDIUM } = CIRCLE_SIZE;\n switch (props.size) {\n case SMALL:\n diameter = CIRCLE_SIZE_PX.SMALL;\n break;\n case MEDIUM:\n diameter = CIRCLE_SIZE_PX.MEDIUM;\n break;\n case LARGE:\n diameter = CIRCLE_SIZE_PX.LARGE;\n break;\n default:\n diameter = Number(props.size);\n break;\n }\n return diameter;\n });\n\n const rPoints = computed(() => {\n return diameter.value / 2;\n });\n\n const radius = computed(() => {\n return rPoints.value - circleStrokeWidth.value / 2;\n });\n\n const circleStyle = computed(() => {\n if (props.theme !== PRO_THEME.CIRCLE) {\n return {};\n }\n\n let fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.MEDIUM;\n if (diameter.value <= CIRCLE_SIZE_PX.SMALL) {\n fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.SMALL;\n } else if (diameter.value >= CIRCLE_SIZE_PX.LARGE) {\n fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.LARGE;\n }\n\n return {\n width: `${diameter.value}px`,\n height: `${diameter.value}px`,\n fontSize: `${fontSize}px`,\n };\n });\n\n const circleStrokeWidth = computed(() => {\n const defaultWidth = props.size === CIRCLE_SIZE.SMALL ? 4 : 6;\n return props.strokeWidth ? Number(props.strokeWidth) : defaultWidth;\n });\n\n const strokeDashArr = computed(() => {\n const radius = (diameter.value - circleStrokeWidth.value) / 2;\n const perimeter = Math.PI * 2 * radius;\n const percent = props.percentage / 100;\n return `${perimeter * percent} ${perimeter * (1 - percent)}`;\n });\n\n const getIconMap = () => {\n const CIRCLE_ICONS = {\n success: CheckIcon,\n warning: ErrorIcon,\n error: CloseIcon,\n };\n const NORMAL_ICONS = {\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: CloseCircleFilledIcon,\n };\n return props.theme === PRO_THEME.CIRCLE ? CIRCLE_ICONS : NORMAL_ICONS;\n };\n const getLabelContent = () => {\n let labelContent: string | VNode = `${props.percentage}%`;\n const status = props.status || '';\n if (STATUS_ICON.includes(status) && props.theme !== PRO_THEME.PLUMP) {\n const components = getIconMap();\n const component = components[status as keyof typeof components];\n if (component) {\n labelContent = ;\n }\n }\n return labelContent;\n };\n\n return () => {\n const labelContent = (\n
    {renderTNodeJSX('label', getLabelContent())}
    \n );\n // 进度大于 10 ,进度百分比显示在内部;进度百分比小于 10 进度显示在外部\n const PLUMP_SEPARATE = 10;\n const separateClasses =\n props.percentage > PLUMP_SEPARATE ? `${COMPONENT_NAME.value}--over-ten` : `${COMPONENT_NAME.value}--under-ten`;\n return (\n
    \n {props.theme === PRO_THEME.LINE && (\n
    \n
    \n
    \n
    \n {labelContent}\n
    \n )}\n\n {props.theme === PRO_THEME.PLUMP && (\n \n
    \n {props.percentage > PLUMP_SEPARATE && labelContent}\n
    \n {props.percentage <= PLUMP_SEPARATE && labelContent}\n
    \n )}\n\n {props.theme === PRO_THEME.CIRCLE && (\n \n {labelContent}\n \n \n {props.percentage > 0 && (\n \n )}\n \n \n )}\n \n );\n };\n },\n});\n","import _Progress from './progress';\nimport withInstall from '../utils/withInstall';\nimport { TdProgressProps } from './type';\n\nimport './style';\n\nexport type ProgressProps = TdProgressProps;\nexport * from './type';\n\nexport const Progress = withInstall(_Progress);\n\nexport default Progress;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSkeletonProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 动画效果,有「渐变加载动画」和「闪烁加载动画」两种。值为 'none' 则表示没有动画 */\n animation: {\n type: String as PropType,\n default: 'none' as TdSkeletonProps['animation'],\n validator(val: TdSkeletonProps['animation']): boolean {\n if (!val) return true;\n return ['gradient', 'flashed', 'none'].includes(val);\n },\n },\n /** 延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒 */\n delay: {\n type: Number,\n default: 0,\n },\n /** 是否为加载状态,如果是则显示骨架图,如果不是则显示加载完成的内容 */\n loading: {\n type: Boolean,\n default: true,\n },\n /** 高级设置,用于自定义行列数量、宽度高度、间距等。【示例一】,`[1, 1, 2]` 表示输出三行骨架图,第一行一列,第二行一列,第三行两列。【示例二】,`[1, 1, { width: '100px' }]` 表示自定义第三行的宽度为 `100px`。【示例三】,`[1, 2, [{ width, height }, { width, height, marginLeft }]]` 表示第三行有两列,且自定义宽度、高度、尺寸(圆形或方形使用)、间距、内容等 */\n rowCol: {\n type: Array as PropType,\n },\n /** 快捷定义骨架图风格,有基础、头像组合等,具体参看代码示例 */\n theme: {\n type: String as PropType,\n validator(val: TdSkeletonProps['theme']): boolean {\n if (!val) return true;\n return ['text', 'avatar', 'paragraph', 'avatar-text', 'tab', 'article'].includes(val);\n },\n },\n};\n","import { h, defineComponent, ref, watch } from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { SkeletonRowCol, SkeletonRowColObj, TdSkeletonProps } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\nimport { isArray } from 'lodash-es';\n\nconst ThemeMap: Record = {\n text: [1],\n avatar: [{ type: 'circle', size: '56px' }],\n paragraph: [1, 1, { width: '70%' }],\n 'avatar-text': [[{ type: 'circle' }, { type: 'text', height: '32px' }]],\n tab: [{ height: '30px' }, { height: '200px' }],\n article: [\n { type: 'rect', height: '30px', width: '100%' },\n { type: 'rect', height: '200px', width: '100%' },\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n ],\n};\n\nconst getColItemStyle = (obj: SkeletonRowColObj) => {\n const styleName = ['width', 'height', 'marginRight', 'marginLeft', 'margin', 'size', 'background', 'backgroundColor'];\n const style = Object.create(null);\n styleName.forEach((name) => {\n // TODO: function isKeyOfObj(key: string, obj: object): key is keyof typeof obj { return key in obj;}\n if (name in obj) {\n const val = obj[name as keyof typeof obj];\n const px = isNumber(val) ? `${val}px` : val;\n if (name === 'size') {\n [style.width, style.height] = [px, px];\n } else {\n style[name] = px;\n }\n }\n });\n return style;\n};\n\nexport default defineComponent({\n name: 'TSkeleton',\n props,\n setup(props, { slots }) {\n const isShow = ref(false);\n const COMPONENT_NAME = usePrefixClass('skeleton');\n const renderContent = useContent();\n const getColItemClass = (obj: SkeletonRowColObj) => [\n `${COMPONENT_NAME.value}__col`,\n `${COMPONENT_NAME.value}--type-${obj.type || 'text'}`,\n { [`${COMPONENT_NAME.value}--animation-${props.animation}`]: props.animation },\n ];\n\n const renderCols = (_cols: Number | SkeletonRowColObj | Array) => {\n let cols: Array = [];\n if (isArray(_cols)) {\n cols = _cols;\n } else if (isNumber(_cols)) {\n cols = new Array(_cols).fill({ type: 'text' });\n } else {\n cols = [_cols as SkeletonRowColObj];\n }\n return cols.map((obj) => (\n
    \n {isFunction(obj.content) ? obj.content(h) : obj.content}\n
    \n ));\n };\n\n const renderRowCol = (_rowCol?: SkeletonRowCol) => {\n const rowCol: SkeletonRowCol = _rowCol || props.rowCol;\n\n const getBlockClass = () => [`${COMPONENT_NAME.value}__row`];\n\n return rowCol.map((item) =>
    {renderCols(item)}
    );\n };\n\n let timer: NodeJS.Timeout = null;\n\n watch(\n () => props.loading,\n (bool) => {\n if (!bool) {\n clearTimeout(timer);\n isShow.value = false;\n return;\n }\n if (props.delay > 0) {\n timer = setTimeout(() => {\n clearTimeout(timer);\n isShow.value = true;\n }, props.delay);\n } else {\n isShow.value = true;\n }\n },\n { immediate: true },\n );\n\n return () => {\n const content = renderContent('default', 'content');\n\n if (slots.default && !isShow.value) {\n return
    {content}
    ;\n }\n\n if (!isShow.value) {\n return;\n }\n\n const children = [];\n if (props.theme) {\n children.push(renderRowCol(ThemeMap[props.theme]));\n }\n if (props.rowCol) {\n children.push(renderRowCol(props.rowCol));\n }\n if (!props.theme && !props.rowCol) {\n // 什么都不传时,传入默认 rowCol\n children.push(renderRowCol([1, 1, 1, { width: '70%' }]));\n }\n\n return
    {children}
    ;\n };\n },\n});\n","import _Skeleton from './skeleton';\nimport withInstall from '../utils/withInstall';\nimport { TdSkeletonProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SkeletonProps = TdSkeletonProps;\n\nexport const Skeleton = withInstall(_Skeleton);\nexport default Skeleton;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStatisticProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 动画效果控制,`duration` 指动画的过渡时间`单位:毫秒`,`valueFrom` 指动画的起始数值。`{ duration, valueFrom }` */\n animation: {\n type: Object as PropType,\n },\n /** 是否开始动画 */\n animationStart: Boolean,\n /** 颜色风格,依次为 TDesign 风格的黑色、蓝色、红色、橙色、绿色。也可以为任何 [CSS color](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value) 支持的 RGB 等值 */\n color: {\n type: String as PropType,\n validator(val: TdStatisticProps['color']): boolean {\n if (!val) return true;\n return ['black', 'blue', 'red', 'orange', 'green'].includes(val);\n },\n },\n /** 小数保留位数 */\n decimalPlaces: {\n type: Number,\n },\n /** 额外的显示内容 */\n extra: {\n type: [String, Function] as PropType,\n },\n /** 格式化数值显示值 */\n format: {\n type: Function as PropType,\n },\n /** 是否加载中 */\n loading: Boolean,\n /** 前缀内容,展示优先级高于 trend */\n prefix: {\n type: [String, Function] as PropType,\n },\n /** 默认展示千位分隔符,可以自定义为其他内容,`separator = ''` 设置为空字符串/null/undefined 时展示默认分隔符 */\n separator: {\n type: String,\n default: ',',\n },\n /** 后缀内容,展示优先级高于 trend */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 数值显示的标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 趋势 */\n trend: {\n type: String as PropType,\n validator(val: TdStatisticProps['trend']): boolean {\n if (!val) return true;\n return ['increase', 'decrease'].includes(val);\n },\n },\n /** 趋势展示位置 */\n trendPlacement: {\n type: String as PropType,\n default: 'left' as TdStatisticProps['trendPlacement'],\n validator(val: TdStatisticProps['trendPlacement']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 单位内容 */\n unit: {\n type: [String, Function] as PropType,\n },\n /** 数值显示的值 */\n value: {\n type: Number,\n },\n};\n","/**\n * Inspired by https://github.com/PengJiyuan/b-tween\n * requestAnimationFrame https://caniuse.com/requestanimationframe\n * TDesign vue 2 need to ensure compatibility with users who are using IE and Vue2,\n * it is necessary to use setInterval instead of requestAnimationFrame when the browser version is less than 9\n */\nimport { getIEVersion } from '../utils/helper';\n\nexport interface TweenSettings {\n from: Record;\n to: Record;\n duration?: number;\n delay?: number;\n onStart?: (keys: Record) => void;\n onUpdate?: (keys: Record) => void;\n onFinish?: (keys: Record) => void;\n}\n\nconst quartOut = (t: number) => 1 - Math.abs((t - 1) ** 4);\n\nexport default class Tween {\n private from: Record;\n\n private to: Record;\n\n private duration: number;\n\n private onStart?: (keys: Record) => void;\n\n private onUpdate: (keys: Record) => void;\n\n private onFinish?: (keys: Record) => void;\n\n private startTime: number;\n\n private started: boolean;\n\n private finished: boolean;\n\n private timer: number | NodeJS.Timer | null;\n\n private keys: Record;\n\n constructor({\n from,\n to,\n duration = 200,\n onStart,\n onUpdate = () => {},\n onFinish,\n }: TweenSettings) {\n this.from = from;\n this.to = to;\n this.duration = duration;\n this.onStart = onStart;\n this.onUpdate = onUpdate;\n this.onFinish = onFinish;\n this.startTime = Date.now();\n this.started = false;\n this.finished = false;\n this.timer = null;\n this.keys = {};\n Object.entries(from).forEach(([key, value]) => {\n if (this.to[key] === undefined) {\n this.to[key] = value;\n }\n });\n\n Object.entries(to).forEach(([key, value]) => {\n if (this.from[key] === undefined) {\n this.from[key] = value;\n }\n });\n }\n\n private time = 0;\n\n private elapsed = 0;\n\n private update() {\n this.time = Date.now();\n if (this.time < this.startTime || this.finished) return;\n\n if (this.elapsed >= this.duration) {\n this.finished = true;\n this.onFinish?.(this.keys);\n return;\n }\n const elapsed = Math.min(this.time - this.startTime, this.duration);\n this.elapsed = elapsed;\n const progress = quartOut(elapsed / this.duration);\n\n Object.keys(this.to).forEach((key) => {\n const delta = this.to[key] - this.from[key];\n this.keys[key] = this.from[key] + delta * progress;\n });\n\n if (!this.started) {\n this.onStart?.(this.keys);\n this.started = true;\n }\n\n this.onUpdate(this.keys);\n }\n\n private polyfillStart() {\n const elapsed = Date.now() - this.startTime;\n const interval = quartOut(elapsed / this.duration);\n\n this.timer = setInterval(() => {\n this.update();\n if (this.finished) {\n clearInterval(this.timer as number);\n }\n }, interval);\n }\n\n private normalStart() {\n const tick = () => {\n this.update();\n this.timer = requestAnimationFrame(tick);\n\n if (this.finished) {\n cancelAnimationFrame(this.timer);\n this.timer = null;\n }\n };\n tick();\n }\n\n public start() {\n this.startTime = Date.now();\n // IE < 10\n if (getIEVersion() < 10) this.polyfillStart();\n else this.normalStart();\n }\n\n public stop() {\n // IE < 10\n if (getIEVersion() < 10) clearInterval(this.timer as number);\n else cancelAnimationFrame(this.timer as number);\n this.timer = null;\n }\n}\n","/**\n * 颜色映射\n */\nexport const COLOR_MAP = {\n black: 'var(--td-text-color-primary)',\n blue: 'var(--td-brand-color)',\n red: 'var(--td-error-color)',\n orange: 'var(--td-warning-color)',\n green: 'var(--td-success-color)',\n};\n\nexport function getFormatValue(value:number | undefined | string, decimalPlaces:number, separator:string) {\n const options = {\n minimumFractionDigits: decimalPlaces ?? 0,\n maximumFractionDigits: decimalPlaces ?? 20,\n useGrouping: !!separator,\n };\n // replace的替换的方案仅能应对大部分地区\n return value.toLocaleString(undefined, options).replace(/,|,/g, separator);\n}\n","import { defineComponent, computed, ref, onMounted, watch, toRefs } from 'vue';\nimport {\n ArrowTriangleDownFilledIcon as TDArrowTriangleDownFilledIcon,\n ArrowTriangleUpFilledIcon as TDArrowTriangleUpFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Skeleton from '../skeleton';\nimport Tween from '@tdesign/common-js/statistic/tween';\nimport { COLOR_MAP, getFormatValue } from '@tdesign/common-js/statistic/utils';\n\nexport default defineComponent({\n name: 'TStatistic',\n props,\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('statistic');\n const renderTNodeJSX = useTNodeJSX();\n const { ArrowTriangleUpFilledIcon, ArrowTriangleDownFilledIcon } = useGlobalIcon({\n ArrowTriangleUpFilledIcon: TDArrowTriangleUpFilledIcon,\n ArrowTriangleDownFilledIcon: TDArrowTriangleDownFilledIcon,\n });\n const trendIcons = {\n increase: ,\n decrease: ,\n };\n const numberValue = computed(() => (isNumber(props.value) ? props.value : 0));\n const innerValue = ref(props.animation?.valueFrom ?? props.value);\n const innerDecimalPlaces = computed(\n () => props.decimalPlaces ?? numberValue.value.toString().split('.')[1]?.length ?? 0,\n );\n\n const tween = ref();\n const { value } = toRefs(props);\n\n const start = (from: number = props.animation?.valueFrom ?? 0, to: number = numberValue.value) => {\n if (from !== to) {\n tween.value = new Tween({\n from: {\n value: from,\n },\n to: {\n value: to,\n },\n duration: props.animation.duration,\n onUpdate: (keys) => {\n innerValue.value = Number(keys.value.toFixed(innerDecimalPlaces.value));\n },\n onFinish: () => {\n innerValue.value = to;\n },\n });\n tween.value?.start();\n }\n };\n\n const formatValue = computed(() => {\n if (isFunction(props.format)) {\n return props.format(innerValue.value);\n }\n\n return getFormatValue(innerValue.value, props.decimalPlaces, props.separator);\n });\n\n const contentStyle = computed(() => {\n const { color } = props;\n return {\n color: COLOR_MAP[color] || color,\n };\n });\n\n watch(\n () => props.animationStart,\n (value) => {\n if (props.animation && value && !tween.value) {\n start();\n }\n },\n );\n watch(value, (value) => {\n if (tween.value) {\n (tween.value as any)?.stop();\n tween.value = null;\n }\n innerValue.value = value;\n if (props.animationStart && props.animation) {\n start();\n }\n });\n\n onMounted(() => props.animation && props.animationStart && start());\n\n expose({ start });\n\n return () => {\n const trendIcon = props.trend ? trendIcons[props.trend] : null;\n const prefix = renderTNodeJSX('prefix') || (trendIcon && props.trendPlacement !== 'right' ? trendIcon : null);\n const suffix = renderTNodeJSX('suffix') || (trendIcon && props.trendPlacement === 'right' ? trendIcon : null);\n const title = renderTNodeJSX('title');\n const unit = renderTNodeJSX('unit');\n const extra = renderTNodeJSX('extra');\n\n return (\n
    \n {title &&
    {title}
    }\n \n
    \n {prefix && {prefix}}\n {formatValue.value}\n {unit && {unit}}\n {suffix && {suffix}}\n
    \n
    \n {extra &&
    {extra}
    }\n
    \n );\n };\n },\n});\n","import _Statistic from './statistic';\nimport withInstall from '../utils/withInstall';\nimport { TdStatisticProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StatisticProps = TdStatisticProps;\n\nexport const Statistic = withInstall(_Statistic);\n\nexport default Statistic;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdSwiperProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 轮播切换动画效果类型:滑动、淡入淡出等 */\n animation: {\n type: String as PropType,\n default: 'slide' as TdSwiperProps['animation'],\n validator(val: TdSwiperProps['animation']): boolean {\n if (!val) return true;\n return ['slide', 'fade'].includes(val);\n },\n },\n /** 是否自动播放 */\n autoplay: {\n type: Boolean,\n default: true,\n },\n /** 当前轮播在哪一项(下标) */\n current: {\n type: Number,\n default: 0,\n },\n /** 当前轮播在哪一项(下标),非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 0,\n },\n /** 轮播滑动方向,包括横向滑动和纵向滑动两个方向 */\n direction: {\n type: String as PropType,\n default: 'horizontal' as TdSwiperProps['direction'],\n validator(val: TdSwiperProps['direction']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 滑动动画时长 */\n duration: {\n type: Number,\n default: 300,\n },\n /** 当使用垂直方向滚动时的高度 */\n height: {\n type: Number,\n },\n /** 轮播间隔时间 */\n interval: {\n type: Number,\n default: 5000,\n },\n /** 是否循环播放 */\n loop: {\n type: Boolean,\n default: true,\n },\n /** 导航器全部配置 */\n navigation: {\n type: [Object, Function] as PropType,\n },\n /** 是否悬浮时停止轮播 */\n stopOnHover: {\n type: Boolean,\n default: true,\n },\n /** 深色模式和浅色模式 */\n theme: {\n type: String as PropType,\n default: 'light' as TdSwiperProps['theme'],\n validator(val: TdSwiperProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'dark'].includes(val);\n },\n },\n /** 触发切换的方式:悬浮、点击等 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdSwiperProps['trigger'],\n validator(val: TdSwiperProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n /** 样式类型:默认样式、卡片样式 */\n type: {\n type: String as PropType,\n default: 'default' as TdSwiperProps['type'],\n validator(val: TdSwiperProps['type']): boolean {\n if (!val) return true;\n return ['default', 'card'].includes(val);\n },\n },\n /** 卡片模式下的缩放比例 */\n cardScale: {\n type: Number,\n default: 210 / 332,\n },\n /** 轮播切换时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nconst swiperItemProps = {\n index: {\n type: Number,\n },\n currentIndex: {\n type: Number,\n },\n isSwitching: {\n type: Boolean,\n default: false,\n },\n getWrapAttribute: {\n type: Function,\n },\n swiperItemLength: {\n type: Number,\n default: 0,\n },\n};\nconst itemWidth = 0.415; // 依据设计稿使用t-swiper__card控制每个swiper的宽度为41.5%\n\nexport default defineComponent({\n name: 'TSwiperItem',\n props: {\n ...props,\n ...swiperItemProps,\n },\n setup(props, { slots }) {\n const prefix = usePrefixClass();\n const active = computed(() => props.index === props.currentIndex);\n const disposeIndex = computed(() => {\n if (props.type !== 'card') return 0;\n if (props.currentIndex === 0 && props.index === props.swiperItemLength - 1) {\n return -1;\n }\n if (props.currentIndex === props.swiperItemLength - 1 && props.index === 0) {\n return props.swiperItemLength;\n }\n if (props.index < props.currentIndex - 1 && props.currentIndex - props.index >= props.swiperItemLength / 2) {\n return props.swiperItemLength + 1;\n }\n if (props.index > props.currentIndex + 1 && props.index - props.currentIndex >= props.swiperItemLength / 2) {\n return -2;\n }\n return props.index;\n });\n const translateX = computed(() => {\n if (props.type !== 'card') return 0;\n const wrapWidth = props.getWrapAttribute('offsetWidth') || 0;\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const inStage = Math.abs(translateIndex - props.currentIndex) <= 1;\n if (inStage) {\n return (\n (wrapWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * props.cardScale) - itemWidth + 1)) / 2\n );\n }\n if (translateIndex < props.currentIndex) {\n return (-itemWidth * (1 + props.cardScale) * wrapWidth) / 2;\n }\n return ((2 + itemWidth * (props.cardScale - 1)) * wrapWidth) / 2;\n });\n const zIndex = computed(() => {\n if (props.type !== 'card') return 0;\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const isActivity = translateIndex === props.currentIndex;\n const inStage = Math.round(Math.abs(translateIndex - props.currentIndex)) <= 1;\n if (isActivity) {\n return 2;\n }\n if (inStage) {\n return 1;\n }\n return 0;\n });\n const itemStyle = computed(() => {\n if (props.animation === 'fade') {\n return {\n opacity: active.value ? 1 : 0,\n transition: props.isSwitching ? `opacity ${props.duration / 1000}s` : '',\n zIndex: active.value ? 1 : 0,\n };\n }\n if (props.type === 'card') {\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const isActivity = translateIndex === props.currentIndex;\n return {\n transform: `translateX(${translateX.value}px) scale(${isActivity ? 1 : props.cardScale})`,\n transition: `transform ${props.duration / 1000}s ease`,\n zIndex: zIndex.value,\n };\n }\n return {};\n });\n\n return () => (\n \n {slots.default?.({}) || []}\n \n );\n },\n});\n","import { defineComponent, ref, computed, watch, isVNode, onMounted, cloneVNode } from 'vue';\nimport { ChevronLeftIcon as TdChevronLeftIcon, ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useChildComponentSlots } from '../hooks';\nimport props from './props';\nimport { SwiperNavigation, SwiperChangeSource } from './type';\nimport TSwiperItem from './swiper-item';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst defaultNavigation: SwiperNavigation = {\n placement: 'inside',\n showSlideBtn: 'always',\n size: 'medium',\n type: 'bars',\n};\n\nexport default defineComponent({\n name: 'TSwiper',\n props,\n emits: ['update:current'],\n setup(props, { emit }) {\n const prefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { ChevronLeftIcon, ChevronRightIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n });\n let swiperTimer: ReturnType | null = null;\n let swiperSwitchingTimer = 0;\n let isBeginToEnd = false;\n let isEndToBegin = false;\n const currentIndex = ref(props.current || props.defaultCurrent);\n const navActiveIndex = ref(props.current || props.defaultCurrent);\n const isHovering = ref(false);\n const isSwitching = ref(false);\n const showArrow = ref(false);\n const swiperWrap = ref();\n const getChildComponentByName = useChildComponentSlots();\n\n const swiperItemLength = ref(0);\n const navigationConfig = computed(() => {\n return {\n ...defaultNavigation,\n ...(isVNode(props.navigation) ? {} : (props.navigation as object)),\n };\n });\n const isEnd = computed(() => {\n if (props.type === 'card') {\n return !props.loop && currentIndex.value + 1 >= swiperItemLength.value;\n }\n return !props.loop && currentIndex.value + 2 >= swiperItemLength.value;\n });\n const propsToUpdateSetTimer = computed(() => {\n return [props.autoplay, currentIndex.value, props.duration, props.interval];\n });\n const swiperWrapClass = computed(() => {\n return {\n [`${prefix.value}-swiper__wrap`]: true,\n [`${prefix.value}-swiper--inside`]: navigationConfig.value.placement === 'inside',\n [`${prefix.value}-swiper--outside`]: navigationConfig.value.placement === 'outside',\n [`${prefix.value}-swiper--vertical`]: props.direction === 'vertical',\n [`${prefix.value}-swiper--large`]: navigationConfig.value.size === 'large',\n [`${prefix.value}-swiper--small`]: navigationConfig.value.size === 'small',\n };\n });\n const containerStyle = computed(() => {\n const offsetHeight = props.height ? `${props.height}px` : `${getWrapAttribute('offsetHeight')}px`;\n if (props.type === 'card' || props.animation === 'fade') {\n return {\n height: offsetHeight,\n };\n }\n if (props.animation === 'slide') {\n const style: Record = {\n transition: isSwitching.value ? `transform ${props.duration / 1000}s ease` : '',\n };\n let active = currentIndex.value;\n if (swiperItemLength.value > 1) {\n active += 1;\n if (isBeginToEnd || isEndToBegin) {\n style.transition = '';\n }\n }\n if (props.direction === 'vertical') {\n style.height = offsetHeight;\n style.transform = `translate3d(0, -${active * 100}%, 0px)`;\n } else {\n style.transform = `translate3d(-${active * 100}%, 0px, 0px)`;\n }\n ['msTransform', 'WebkitTransform'].forEach((key) => {\n style[key] = style.transform;\n });\n return style;\n }\n return {};\n });\n const swiperItems = () => {\n const swiperItemList = getChildComponentByName('SwiperItem');\n swiperItemLength.value = swiperItemList.length;\n const items = swiperItemList.map((swiperItem: any, index) => {\n const p = { ...props, ...swiperItem.props };\n return (\n \n {swiperItem.children.default()}\n \n );\n });\n if (props.animation === 'slide' && items.length > 1) {\n const first = cloneVNode(items[0], {\n key: `swiper-item-append-${0}`,\n });\n const last = cloneVNode(items[items.length - 1], {\n key: `swiper-item-prepend-${items.length - 1}`,\n });\n items.unshift(last);\n items.push(first);\n }\n return items;\n };\n\n const swiperTo = (index: number, context: { source: SwiperChangeSource }) => {\n let targetIndex = index % swiperItemLength.value;\n navActiveIndex.value = targetIndex;\n emit('update:current', targetIndex);\n props.onChange?.(targetIndex, context);\n isSwitching.value = true;\n if (props.animation === 'slide' && swiperItemLength.value > 1 && props.type !== 'card') {\n targetIndex = index;\n isBeginToEnd = false;\n isEndToBegin = false;\n if (index >= swiperItemLength.value) {\n clearTimer();\n setTimeout(() => {\n isEndToBegin = true;\n currentIndex.value = 0;\n }, props.duration);\n }\n if (currentIndex.value === 0) {\n if (\n (swiperItemLength.value > 2 && index === swiperItemLength.value - 1) ||\n (swiperItemLength.value === 2 && index === 0)\n ) {\n targetIndex = -1;\n navActiveIndex.value = swiperItemLength.value - 1;\n clearTimer();\n setTimeout(() => {\n isBeginToEnd = true;\n currentIndex.value = swiperItemLength.value - 1;\n }, props.duration);\n }\n }\n }\n currentIndex.value = targetIndex;\n };\n const clearTimer = () => {\n if (swiperTimer) {\n clearTimeout(swiperTimer);\n swiperTimer = null;\n }\n };\n const setTimer = () => {\n if (props.autoplay && props.interval > 0) {\n clearTimer();\n swiperTimer = setTimeout(\n () => {\n swiperTo(currentIndex.value + 1, { source: 'autoplay' });\n },\n currentIndex.value === 0 ? props.interval - (props.duration + 50) : props.interval, // 当 index 为 0 的时候,表明刚从克隆的最后一项跳转过来,已经经历了duration + 50 的间隔时间,减去即可\n );\n }\n };\n\n const onMouseEnter = () => {\n isHovering.value = true;\n if (props.stopOnHover) {\n clearTimer();\n }\n if (navigationConfig.value.showSlideBtn === 'hover') {\n showArrow.value = true;\n }\n };\n const onMouseLeave = () => {\n isHovering.value = false;\n if (!isEnd.value) {\n setTimer();\n }\n if (navigationConfig.value.showSlideBtn === 'hover') {\n showArrow.value = false;\n }\n };\n const onMouseEnterNavigationItem = (i: number) => {\n if (props.trigger === 'hover') {\n swiperTo(i, { source: 'hover' });\n }\n };\n const onClickNavigationItem = (i: number) => {\n if (props.trigger === 'click') {\n swiperTo(i, { source: 'click' });\n }\n };\n const goNext = (context: { source: SwiperChangeSource }) => {\n if (isSwitching.value) return;\n if (props.type === 'card') {\n return swiperTo(currentIndex.value + 1 >= swiperItemLength.value ? 0 : currentIndex.value + 1, context);\n }\n return swiperTo(currentIndex.value + 1, context);\n };\n const goPrevious = (context: { source: SwiperChangeSource }) => {\n if (isSwitching.value) return;\n if (currentIndex.value - 1 < 0) {\n if (props.animation === 'slide' && swiperItemLength.value === 2) {\n return swiperTo(0, context);\n }\n return swiperTo(swiperItemLength.value - 1, context);\n }\n return swiperTo(currentIndex.value - 1, context);\n };\n const getWrapAttribute = (attr: string) => {\n return swiperWrap.value?.parentNode?.[attr as keyof ParentNode];\n };\n const renderPagination = () => {\n const fractionIndex = currentIndex.value + 1 > swiperItemLength.value ? 1 : currentIndex.value + 1;\n return (\n
    \n
    goPrevious({ source: 'click' })}>\n \n
    \n
    \n {fractionIndex}/{swiperItemLength.value}\n
    \n
    goNext({ source: 'click' })}>\n \n
    \n
    \n );\n };\n const renderArrow = () => {\n if (!showArrow.value) return null;\n return (\n
    \n
    goPrevious({ source: 'click' })}>\n \n
    \n
    goNext({ source: 'click' })}>\n \n
    \n
    \n );\n };\n const renderNavigation = () => {\n if (isVNode(props.navigation)) return props.navigation;\n const navigationSlot = renderTNodeJSX('navigation');\n if (navigationSlot && isVNode(navigationSlot?.[0])) return navigationSlot;\n\n if (navigationConfig.value.type === 'fraction') {\n return (\n
    \n {renderPagination()}\n
    \n );\n }\n const swiperItemList = getChildComponentByName('SwiperItem');\n return (\n \n {swiperItemList.map((_, i: number) => (\n onMouseEnterNavigationItem(i)}\n onClick={() => onClickNavigationItem(i)}\n >\n \n \n ))}\n \n );\n };\n const renderSwiperItems = () => {\n return swiperItems();\n };\n\n watch(\n () => propsToUpdateSetTimer.value,\n () => {\n setTimer();\n },\n );\n watch(\n () => isSwitching.value,\n () => {\n if (isSwitching.value) {\n if (swiperSwitchingTimer) clearTimeout(swiperSwitchingTimer);\n swiperSwitchingTimer = setTimeout(() => {\n isSwitching.value = false;\n swiperSwitchingTimer = 0;\n if (isEnd.value) {\n clearTimer();\n }\n }, props.duration + 50) as unknown as number;\n }\n },\n );\n watch(\n () => props.current,\n () => {\n swiperTo(props.current, { source: 'autoplay' });\n },\n );\n\n onMounted(() => {\n setTimer();\n showArrow.value = navigationConfig.value.showSlideBtn === 'always';\n });\n\n return () => (\n
    \n
    \n \n
    \n {renderSwiperItems()}\n
    \n
    \n {renderNavigation()}\n {renderArrow()}\n
    \n \n );\n },\n});\n","import _Swiper from './swiper';\nimport _SwiperItem from './swiper-item';\nimport withInstall from '../utils/withInstall';\nimport { TdSwiperProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwiperProps = TdSwiperProps;\n\nexport const Swiper = withInstall(_Swiper);\nexport const SwiperItem = withInstall(_SwiperItem);\nexport default Swiper;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdBaseTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 高亮行,支持鼠标键盘操作(Shift)连续高亮行,可用于处理行选中等批量操作,模拟操作系统区域选择行为 */\n activeRowKeys: {\n type: Array as PropType,\n default: undefined as TdBaseTableProps['activeRowKeys'],\n },\n /** 高亮行,支持鼠标键盘操作(Shift)连续高亮行,可用于处理行选中等批量操作,模拟操作系统区域选择行为,非受控属性 */\n defaultActiveRowKeys: {\n type: Array as PropType,\n default: (): TdBaseTableProps['defaultActiveRowKeys'] => [],\n },\n /** 默认不会高亮点击行,`activeRowType=single` 表示鼠标点击仅允许同时高亮一行,Shift 键盘操作加鼠标操作依然可以高亮多行,因为这属于明显的区域选择行为。`activeRowType= multiple ` 表示允许鼠标点击同时高亮多行 */\n activeRowType: {\n type: String as PropType,\n default: '' as TdBaseTableProps['activeRowType'],\n },\n /** 已废弃。是否允许调整列宽。请更为使用 `resizable` */\n allowResizeColumnWidth: {\n type: Boolean,\n default: undefined,\n },\n /** 超出省略等所有浮层元素统一绑定到 `attach`,可根据实际情况调整挂载元素 */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 是否显示表格边框 */\n bordered: Boolean,\n /** 表格底部内容,可以用于自定义列设置等 */\n bottomContent: {\n type: [String, Function] as PropType,\n },\n /** 单元格数据为空时呈现的内容 */\n cellEmptyContent: {\n type: [String, Function] as PropType,\n },\n /** 列配置,泛型 T 指表格数据类型 */\n columns: {\n type: Array as PropType,\n default: (): TdBaseTableProps['columns'] => [],\n },\n /** 数据源,泛型 T 指表格数据类型 */\n data: {\n type: Array as PropType,\n default: (): TdBaseTableProps['data'] => [],\n },\n /** 是否禁用本地数据分页。当 `data` 数据长度超过分页大小时,会自动进行本地数据分页。如果 `disableDataPage` 设置为 true,则无论何时,都不会进行本地数据分页 */\n disableDataPage: Boolean,\n /** 默认重复按下 Space 键可取消当前行高亮,是否禁用取消 */\n disableSpaceInactiveRow: {\n type: Boolean,\n default: undefined,\n },\n /** 空表格呈现样式,支持全局配置 `GlobalConfigProvider` */\n empty: {\n type: [String, Function] as PropType,\n default: '' as TdBaseTableProps['empty'],\n },\n /** 首行内容,横跨所有列 */\n firstFullRow: {\n type: [String, Function] as PropType,\n },\n /** 固定行(冻结行),示例:[M, N],表示冻结表头 M 行和表尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows: {\n type: Array as PropType,\n },\n /** 表尾数据源,泛型 T 指表格数据类型 */\n footData: {\n type: Array as PropType,\n default: (): TdBaseTableProps['footData'] => [],\n },\n /** 已废弃。请更为使用 `footerAffixedBottom`。表尾吸底基于 Affix 组件开发,透传全部 Affix 组件属性。 */\n footerAffixProps: {\n type: Object as PropType,\n },\n /** 表尾吸底。使用该功能,需要非常注意表格是相对于哪一个父元素进行滚动。值为 `true`,则表示相对于整个窗口吸底。如果表格滚动的父元素不是整个窗口,请通过 `footerAffixedBottom.container` 调整固钉的吸顶范围。基于 Affix 组件开发,透传全部 Affix 组件属性 */\n footerAffixedBottom: {\n type: [Boolean, Object] as PropType,\n default: false as TdBaseTableProps['footerAffixedBottom'],\n },\n /** 表尾总结行 */\n footerSummary: {\n type: [String, Function] as PropType,\n },\n /** 已废弃。请更为使用 `headerAffixedTop`。表头吸顶基于 Affix 组件开发,透传全部 Affix 组件属性 */\n headerAffixProps: {\n type: Object as PropType,\n },\n /** 表头吸顶。使用该功能,需要非常注意表格是相对于哪一个父元素进行滚动。值为 `true`,表示相对于整个窗口吸顶。如果表格滚动的父元素不是整个窗口,请通过 `headerAffixedTop.container` 调整吸顶的位置。基于 Affix 组件开发,透传全部 Affix 组件属性。 */\n headerAffixedTop: {\n type: [Boolean, Object] as PropType,\n default: false as TdBaseTableProps['headerAffixedTop'],\n },\n /** 表格高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px。如果不是绝对固定表格高度,建议使用 `maxHeight` */\n height: {\n type: [String, Number] as PropType,\n },\n /** 滚动条吸底。基于 Affix 组件开发,透传全部 Affix 组件属性 */\n horizontalScrollAffixedBottom: {\n type: [Boolean, Object] as PropType,\n },\n /** 是否显示鼠标悬浮状态 */\n hover: Boolean,\n /** 键盘操作行显示悬浮效果,一般用于键盘操作行选中、行展开、行高亮等功能 */\n keyboardRowHover: {\n type: Boolean,\n default: true,\n },\n /** 尾行内容,横跨所有列 */\n lastFullRow: {\n type: [String, Function] as PropType,\n },\n /** 是否启用整个表格元素的懒加载,当页面滚动到可视区域后再渲染表格。注意和表格内部行滚动懒加载的区别,内部行滚动无论表格是否在可视区域都会默认渲染第一屏的行元素 */\n lazyLoad: Boolean,\n /** 加载中状态。值为 `true` 会显示默认加载中样式,可以通过 Function 和 插槽 自定义加载状态呈现内容和样式。值为 `false` 则会取消加载状态 */\n loading: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdBaseTableProps['loading'],\n },\n /** 透传加载组件全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 语言配置 */\n locale: {\n type: Object as PropType,\n },\n /** 表格最大高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px */\n maxHeight: {\n type: [String, Number] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。当 `data` 数据长度超过分页大小时,会自动对本地数据 `data` 进行排序,如果不希望对于 `data` 进行排序,可以设置 `disableDataPage = true` */\n pagination: {\n type: Object as PropType,\n },\n /** 分页吸底。基于 Affix 组件开发,透传全部 Affix 组件属性 */\n paginationAffixedBottom: {\n type: [Boolean, Object] as PropType,\n },\n /** 是否允许调整列宽,设置 `tableLayout=fixed` 效果更友好,此时不允许通过 CSS 设置 `table`元素宽度,也不允许设置 `tableContentWidth`。一般不建议在列宽调整场景使用 `tableLayout: auto`。如果想要配置宽度可调整的最小值和最大值,请使用 `column.resize`,示例:`columns: [{ resize: { minWidth: 120, maxWidth: 300 } }]`。
    默认规则:因列宽超出存在横向滚动条时,列宽调整仅影响当前列宽和总列宽;表格列较少没有横向滚动条时,列宽调整表现为自身宽度和相邻宽度变化 */\n resizable: Boolean,\n /** HTML 标签 `tr` 的属性。类型为 Function 时,参数说明:`params.row` 表示行数据;`params.rowIndex` 表示行下标;`params.type=body` 表示属性作用于 `tbody` 中的元素;`params.type=foot` 表示属性作用于 `tfoot` 中的元素。
    示例一:{ draggable: true },
    示例二:[{ draggable: true }, { title: '超出省略显示' }]。
    示例三:() => [{ draggable: true }] */\n rowAttributes: {\n type: [Object, Array, Function] as PropType,\n },\n /** 行类名,泛型 T 指表格数据类型。`params.row` 表示行数据;`params.rowIndex` 表示行下标;`params.type=body` 表示类名作用于 `tbody` 中的元素;`params.type= tfoot` 表示类名作用于 `tfoot` 中的元素 */\n rowClassName: {\n type: [String, Object, Array, Function] as PropType,\n },\n /** 唯一标识一行数据的字段名,来源于 `data` 中的字段。如果是字段嵌套多层,可以设置形如 `item.a.id` 的方法 */\n rowKey: {\n type: String,\n default: 'id',\n required: true,\n },\n /** 用于自定义合并单元格,泛型 T 指表格数据类型。示例:`({ row, col, rowIndex, colIndex }) => { rowspan: 2, colspan: 3 }` */\n rowspanAndColspan: {\n type: Function as PropType,\n },\n /** 用于自定义表尾的合并单元格,泛型 T 指表格数据类型。示例:`({ row, col, rowIndex, colIndex }) => { rowspan: 2, colspan: 3 }` */\n rowspanAndColspanInFooter: {\n type: Function as PropType,\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 是否显示表头 */\n showHeader: {\n type: Boolean,\n default: true,\n },\n /** 表格尺寸,支持全局配置 `GlobalConfigProvider`,默认全局配置值为 `medium` */\n size: {\n type: String as PropType,\n validator(val: TdBaseTableProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否显示斑马纹 */\n stripe: Boolean,\n /** 表格内容的总宽度,注意不是表格可见宽度。主要应用于 `table-layout: auto` 模式下的固定列显示。`tableContentWidth` 内容宽度的值必须大于表格可见宽度 */\n tableContentWidth: {\n type: String,\n default: '',\n },\n /** 表格布局方式,`` 元素原生属性。[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout)。注意,在列宽调整下场景只能使用 `fixed` 模式 */\n tableLayout: {\n type: String as PropType,\n default: 'fixed' as TdBaseTableProps['tableLayout'],\n validator(val: TdBaseTableProps['tableLayout']): boolean {\n if (!val) return true;\n return ['auto', 'fixed'].includes(val);\n },\n },\n /** 表格顶部内容,可以用于自定义列设置、顶部查询条件等 */\n topContent: {\n type: [String, Function] as PropType,\n },\n /** 行内容上下方向对齐 */\n verticalAlign: {\n type: String as PropType,\n default: 'middle' as TdBaseTableProps['verticalAlign'],\n validator(val: TdBaseTableProps['verticalAlign']): boolean {\n if (!val) return true;\n return ['top', 'middle', 'bottom'].includes(val);\n },\n },\n /** 高亮行发生变化时触发,泛型 T 指表格数据类型。参数 `activeRowList` 表示所有高亮行数据, `currentRowData` 表示当前操作行数据 */\n onActiveChange: Function as PropType,\n /** 键盘操作事件。开启行高亮功能后,会自动开启键盘操作功能,如:通过键盘(Shift)或鼠标操作连续选中高亮行时触发,一般用于处理行选中等批量操作,模拟操作系统区域选择行为 */\n onActiveRowAction: Function as PropType,\n /** 单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 列调整大小之后触发。`context.columnsWidth` 表示操作后各个列的宽度; */\n onColumnResizeChange: Function as PropType,\n /** 分页发生变化时触发。参数 newDataSource 表示分页后的数据。本地数据进行分页时,newDataSource 和源数据 data 会不一样。泛型 T 指表格数据类型 */\n onPageChange: Function as PropType,\n /** 行点击时触发,泛型 T 指表格数据类型 */\n onRowClick: Function as PropType,\n /** 行双击时触发,泛型 T 指表格数据类型 */\n onRowDblclick: Function as PropType,\n /** 鼠标在表格行按下时触发,泛型 T 指表格数据类型 */\n onRowMousedown: Function as PropType,\n /** 鼠标在表格行进入时触发,泛型 T 指表格数据类型 */\n onRowMouseenter: Function as PropType,\n /** 鼠标在表格行离开时触发,泛型 T 指表格数据类型 */\n onRowMouseleave: Function as PropType,\n /** 鼠标悬浮到行时触发,泛型 T 指表格数据类型 */\n onRowMouseover: Function as PropType,\n /** 鼠标在表格行按下又弹起时触发,泛型 T 指表格数据类型 */\n onRowMouseup: Function as PropType,\n /** 表格内容滚动时触发 */\n onScroll: Function as PropType,\n /** 已废弃。表格内容横向滚动时触发。请更为使用 `onScroll` 事件 */\n onScrollX: Function as PropType,\n /** 已废弃。表格内容纵向滚动时触发。当内容超出高度(height)或最大高度(max-height)时,会出现纵向滚动条。请更为使用 `onScroll` 事件 */\n onScrollY: Function as PropType,\n};\n","/**\n * 多级表头相关逻辑\n ** */\n\nimport { RowspanColspan } from '../type';\nimport { BaseTableColumns, ThRowspanAndColspan } from '../interface';\n\n// 获取节点深度,即表头总层级\nexport function getNodeDepth(columns: BaseTableColumns, depthMap: Map, depth = 1): number {\n let maxDepth = depth;\n // 树形结构递归已有较多函数上下文,此处不使用 forEach 迭代\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n depthMap.set(col, depth);\n if (col?.children?.length) {\n const deep = getNodeDepth(col.children, depthMap, depth + 1);\n if (deep > maxDepth) {\n maxDepth = deep;\n }\n }\n }\n return maxDepth;\n}\n\n// 或当前节点的叶子结点宽度\nexport function getChildrenNodeWidth(node: BaseTableColumns[0], count = 0) {\n let countNew = count;\n const childrenList = node?.children || [];\n for (let i = 0, len = childrenList.length; i < len; i++) {\n const item = childrenList[i];\n if (item.children) {\n countNew = getChildrenNodeWidth(item, countNew);\n } else {\n countNew += 1;\n }\n }\n return countNew;\n}\n\n// 获取多级表头对应的 colspan 和 rowspan,以及叶子节点\nexport function getThRowspanAndColspan(columns: BaseTableColumns) {\n const depthMap = new Map();\n const columnsDepth = getNodeDepth(columns, depthMap);\n const rowspanAndColspanMap: ThRowspanAndColspan = new Map();\n const loop = (nodes: BaseTableColumns, leafColumns: BaseTableColumns) => {\n for (let i = 0, len = nodes.length; i < len; i++) {\n const col = nodes[i];\n const rowspan = col.children ? 1 : columnsDepth - depthMap.get(col) + 1;\n const colspan = col.children ? getChildrenNodeWidth(col) : 1;\n // 避免存在 rowspan 或者 colspan 空属性\n const span: RowspanColspan = {};\n rowspan > 1 && (span.rowspan = rowspan);\n colspan > 1 && (span.colspan = colspan);\n rowspanAndColspanMap.set(col, span);\n if (col?.children?.length) {\n loop(col.children, leafColumns);\n } else {\n leafColumns.push(col);\n }\n }\n };\n const leafColumns: BaseTableColumns = [];\n loop(columns, leafColumns);\n return { rowspanAndColspanMap, leafColumns };\n}\n\n// 表头渲染所需的二维数据\nexport function getThList(columns: BaseTableColumns): Array {\n const loop = (nodes: BaseTableColumns, thRows: Array) => {\n let thRowData: BaseTableColumns = [];\n let children: BaseTableColumns = [];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n const thList = [node];\n thRowData = thRowData.concat(thList);\n if (node?.children?.length) {\n children = children.concat(node.children);\n }\n }\n if (children?.length) {\n loop(children, thRows);\n }\n thRows.push(thRowData);\n return thRowData;\n };\n let list: Array = [];\n loop(columns, list);\n list = list.reverse();\n return list;\n}\n","import { usePrefixClass } from '../../hooks/useConfig';\n\nexport default function useClassName() {\n const classPrefix = usePrefixClass();\n const classNames = {\n classPrefix: classPrefix.value,\n tableBaseClass: {\n table: `${classPrefix.value}-table`,\n columnResizableTable: `${classPrefix.value}-table--column-resizable`,\n overflowVisible: `${classPrefix.value}-table--overflow-visible`,\n body: `${classPrefix.value}-table__body`,\n content: `${classPrefix.value}-table__content`,\n topContent: `${classPrefix.value}-table__top-content`,\n bottomContent: `${classPrefix.value}-table__bottom-content`,\n paginationWrap: `${classPrefix.value}-table__pagination-wrap`,\n tdLastRow: `${classPrefix.value}-table__td-last-row`,\n tdFirstCol: `${classPrefix.value}-table__td-first-col`,\n thCellInner: `${classPrefix.value}-table__th-cell-inner`,\n tableRowEdit: `${classPrefix.value}-table--row-edit`,\n cellEditable: `${classPrefix.value}-table__cell--editable`,\n cellEditWrap: `${classPrefix.value}-table__cell-wrap`,\n bordered: `${classPrefix.value}-table--bordered`,\n striped: `${classPrefix.value}-table--striped`,\n hover: `${classPrefix.value}-table--hoverable`,\n loading: `${classPrefix.value}-table--loading`,\n rowspanAndColspan: `${classPrefix.value}-table--rowspan-colspan`,\n empty: `${classPrefix.value}-table__empty`,\n emptyRow: `${classPrefix.value}-table__empty-row`,\n headerFixed: `${classPrefix.value}-table--header-fixed`,\n columnFixed: `${classPrefix.value}-table--column-fixed`,\n widthOverflow: `${classPrefix.value}-table--width-overflow`,\n multipleHeader: `${classPrefix.value}-table--multiple-header`,\n footerAffixed: `${classPrefix.value}-table--footer-affixed`,\n horizontalBarAffixed: `${classPrefix.value}-table--horizontal-bar-affixed`,\n affixedHeader: `${classPrefix.value}-table--affixed-header`,\n affixedHeaderElm: `${classPrefix.value}-table__affixed-header-elm`,\n affixedFooterElm: `${classPrefix.value}-table__affixed-footer-elm`,\n affixedFooterWrap: `${classPrefix.value}-table__affixed-footer-wrap`,\n // 边框模式,固定表头,横向滚动时,右侧添加边线,分隔滚动条\n scrollbarDivider: `${classPrefix.value}-table__scroll-bar-divider`,\n // 当用户设置 height 为固定高度,为保证行元素铺满 table,则需设置 table 元素高度为 100%\n fullHeight: `${classPrefix.value}-table--full-height`,\n // 拖拽列时的标记线\n resizeLine: `${classPrefix.value}-table__resize-line`,\n obviousScrollbar: `${classPrefix.value}-table__scrollbar--obvious`,\n affixedHeaderWrap: `${classPrefix.value}-table__affixed-header-elm-wrap`,\n },\n\n tdAlignClasses: {\n left: `${classPrefix.value}-align-left`,\n right: `${classPrefix.value}-align-right`,\n center: `${classPrefix.value}-align-center`,\n },\n\n tableHeaderClasses: {\n header: `${classPrefix.value}-table__header`,\n thBordered: `${classPrefix.value}-table__header-th--bordered`,\n fixed: `${classPrefix.value}-table__header--fixed`,\n multipleHeader: `${classPrefix.value}-table__header--multiple`,\n },\n\n tableFooterClasses: {\n footer: `${classPrefix.value}-table__footer`,\n fixed: `${classPrefix.value}-table__footer--fixed`,\n },\n\n tableAlignClasses: {\n top: `${classPrefix.value}-vertical-align-top`,\n middle: `${classPrefix.value}-vertical-align-middle`,\n bottom: `${classPrefix.value}-vertical-align-bottom`,\n },\n\n tableRowFixedClasses: {\n top: `${classPrefix.value}-table__row--fixed-top`,\n bottom: `${classPrefix.value}-table__row--fixed-bottom`,\n firstBottom: `${classPrefix.value}-table__row--fixed-bottom-first`,\n withoutBorderBottom: `${classPrefix.value}-table__row--without-border-bottom`,\n },\n\n tableColFixedClasses: {\n left: `${classPrefix.value}-table__cell--fixed-left`,\n right: `${classPrefix.value}-table__cell--fixed-right`,\n lastLeft: `${classPrefix.value}-table__cell--fixed-left-last`,\n firstRight: `${classPrefix.value}-table__cell--fixed-right-first`,\n leftShadow: `${classPrefix.value}-table__content--scrollable-to-left`,\n rightShadow: `${classPrefix.value}-table__content--scrollable-to-right`,\n },\n\n tableLayoutClasses: {\n auto: `${classPrefix.value}-table--layout-auto`,\n fixed: `${classPrefix.value}-table--layout-fixed`,\n },\n\n tdEllipsisClass: `${classPrefix.value}-table-td--ellipsis`,\n\n // 行通栏,一列铺满整行\n tableFullRowClasses: {\n base: `${classPrefix.value}-table__row--full`,\n innerFullRow: `${classPrefix.value}-table__row-full-inner`,\n innerFullElement: `${classPrefix.value}-table__row-full-element`,\n firstFullRow: `${classPrefix.value}-table__first-full-row`,\n lastFullRow: `${classPrefix.value}-table__last-full-row`,\n },\n\n // 展开/收起行,全部类名\n tableExpandClasses: {\n iconBox: `${classPrefix.value}-table__expand-box`,\n iconCell: `${classPrefix.value}-table__expandable-icon-cell`,\n rowExpanded: `${classPrefix.value}-table__row--expanded`,\n rowFolded: `${classPrefix.value}-table__row--folded`,\n row: `${classPrefix.value}-table__expanded-row`,\n rowInner: `${classPrefix.value}-table__expanded-row-inner`,\n expanded: `${classPrefix.value}-table__row--expanded`,\n collapsed: `${classPrefix.value}-table__row--collapsed`,\n },\n\n // 排序功能,全部类名\n tableSortClasses: {\n sortable: `${classPrefix.value}-table__cell--sortable`,\n sortColumn: `${classPrefix.value}-table__sort-column`,\n title: `${classPrefix.value}-table__cell--title`,\n trigger: `${classPrefix.value}-table__cell--sort-trigger`,\n doubleIcon: `${classPrefix.value}-table__double-icons`,\n sortIcon: `${classPrefix.value}-table__sort-icon`,\n iconDirection: {\n asc: `${classPrefix.value}-table-sort-asc`,\n desc: `${classPrefix.value}-table-sort-desc`,\n },\n iconActive: `${classPrefix.value}-table__sort-icon--active`,\n iconDefault: `${classPrefix.value}-icon-sort--default`,\n },\n\n // 行选中功能,全部类名\n tableSelectedClasses: {\n selected: `${classPrefix.value}-table__row--selected`,\n disabled: `${classPrefix.value}-table__row--disabled`,\n checkCell: `${classPrefix.value}-table__cell-check`,\n },\n\n // 过滤功能,全部类名\n tableFilterClasses: {\n filterable: `${classPrefix.value}-table__cell--filterable`,\n popup: `${classPrefix.value}-table__filter-pop`,\n icon: `${classPrefix.value}-table__filter-icon`,\n popupContent: `${classPrefix.value}-table__filter-pop-content`,\n result: `${classPrefix.value}-table__filter-result`,\n inner: `${classPrefix.value}-table__row-filter-inner`,\n bottomButtons: `${classPrefix.value}-table__filter--bottom-buttons`,\n contentInner: `${classPrefix.value}-table__filter-pop-content-inner`,\n iconWrap: `${classPrefix.value}-table__filter-icon-wrap`,\n },\n\n // 通用类名\n asyncLoadingClass: `${classPrefix.value}-table__async-loading`,\n isFocusClass: `${classPrefix.value}-is-focus`,\n isLoadingClass: `${classPrefix.value}-is-loading`,\n isLoadMoreClass: `${classPrefix.value}-is-load-more`,\n\n // 树形结构类名\n tableTreeClasses: {\n col: `${classPrefix.value}-table__tree-col`,\n inlineCol: `${classPrefix.value}-table__tree-col--inline`,\n icon: `${classPrefix.value}-table__tree-op-icon`,\n leafNode: `${classPrefix.value}-table__tree-leaf-node`,\n },\n\n // 拖拽功能类名\n tableDraggableClasses: {\n rowDraggable: `${classPrefix.value}-table--row-draggable`,\n rowHandlerDraggable: `${classPrefix.value}-table--row-handler-draggable`,\n colDraggable: `${classPrefix.value}-table--col-draggable`,\n handle: `${classPrefix.value}-table__handle-draggable`,\n ghost: `${classPrefix.value}-table__ele--draggable-ghost`,\n chosen: `${classPrefix.value}-table__ele--draggable-chosen`,\n dragging: `${classPrefix.value}-table__ele--draggable-dragging`,\n dragSortTh: `${classPrefix.value}-table__th--drag-sort`,\n },\n\n virtualScrollClasses: {\n cursor: `${classPrefix.value}-table__virtual-scroll-cursor`,\n header: `${classPrefix.value}-table__virtual-scroll-header`,\n },\n\n positiveRotate90: `${classPrefix.value}-positive-rotate-90`,\n negativeRotate180: `${classPrefix.value}-negative-rotate-180`,\n };\n\n return classNames;\n}\n\nexport type TableClassName = ReturnType;\n","/** 超出省略显示 */\nimport { defineComponent, PropType, ref, computed, onMounted, onUpdated } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { AttachNode, TNode } from '../common';\nimport { renderContent } from '../utils/render-tnode';\nimport { isTextEllipsis } from '../utils/dom';\nimport TTooltip, { TooltipProps } from '../tooltip';\n\nexport interface EllipsisProps {\n content: string | TNode;\n default: string | TNode;\n tooltipContent: string | number | TNode;\n placement: TooltipProps['placement'];\n attach?: AttachNode;\n tooltipProps: TooltipProps;\n zIndex: number;\n}\n\nexport default defineComponent({\n name: 'TEllipsis',\n\n props: {\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content,可以单独自定义浮层内容,无需和触发元素保持一致 */\n tooltipContent: {\n type: [String, Number, Function] as PropType,\n },\n /** 浮层位置 */\n placement: String as PropType,\n /** 挂载元素 */\n attach: [String, Function] as PropType,\n /** 透传 Tooltip 组件属性 */\n tooltipProps: Object as PropType,\n zIndex: Number,\n overlayClassName: String,\n classPrefix: {\n type: String,\n default: 't',\n },\n },\n\n setup(props) {\n const root = ref();\n\n // 用于判断是否需要渲染 Tooltip\n const flag = ref(false);\n const isOverflow = ref(false);\n\n const ellipsisClasses = computed(() => [\n `${props.classPrefix}-table__ellipsis`,\n `${props.classPrefix}-text-ellipsis`,\n ]);\n\n const innerEllipsisClassName = computed(() => [\n `${props.classPrefix}-table__ellipsis-content`,\n props.overlayClassName,\n ]);\n\n onMounted(() => {\n isOverflow.value = isTextEllipsis(root.value);\n });\n\n onUpdated(() => {\n isOverflow.value = isTextEllipsis(root.value);\n });\n\n // 当表格数据量大时,不希望默认渲染全量的 Tooltip,期望在用户 mouseenter 的时候再显示,通过 flag 判断\n const onTriggerMouseenter = () => {\n if (!root.value) return;\n flag.value = true;\n };\n\n const onTriggerMouseleave = () => {\n if (!root.value) return;\n };\n const handleVisibleChange = (v: boolean) => {\n if (!v) flag.value = false;\n };\n // 使用 debounce 有两个原因:1. 避免 safari/firefox 等浏览器不显示省略浮层;2. 避免省略列快速滚动时,出现一堆的省略浮层\n const onMouseAround = debounce((e: MouseEvent) => {\n e.type === 'mouseleave' ? onTriggerMouseleave() : onTriggerMouseenter();\n }, 80);\n\n return {\n flag,\n root,\n isOverflow,\n ellipsisClasses,\n innerEllipsisClassName,\n onMouseAround,\n handleVisibleChange,\n };\n },\n\n render() {\n const cellNode = renderContent(this, 'default', 'content');\n\n const ellipsisContent = (\n \n {cellNode}\n \n );\n let content = null;\n const tooltipProps = this.tooltipProps as EllipsisProps['tooltipProps'];\n if (this.isOverflow && this.flag) {\n const rProps = {\n content: (this.tooltipContent as string) || (() => cellNode),\n destroyOnClose: true,\n zIndex: this.zIndex,\n attach: this.attach,\n placement: this.placement,\n overlayClassName: tooltipProps?.overlayClassName\n ? this.innerEllipsisClassName.concat(tooltipProps.overlayClassName)\n : this.innerEllipsisClassName,\n onVisibleChange: this.handleVisibleChange,\n ...tooltipProps,\n };\n content = {ellipsisContent};\n } else {\n content = ellipsisContent;\n }\n return content;\n },\n});\n","import { SetupContext, computed, h } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { BaseTableCol, PrimaryTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { getThRowspanAndColspan, getThList } from './useMultiHeader';\nimport useClassName from './useClassName';\nimport { TNodeReturnValue } from '../../common';\nimport { BaseTableColumns } from '../interface';\nimport TEllipsis from '../ellipsis';\n\n// 渲染表头的通用方法\nexport function renderTitle(slots: SetupContext['slots'], col: BaseTableColumns[0], index: number) {\n const params = { col, colIndex: index };\n if (isFunction(col.title)) {\n return col.title(h, params);\n }\n if (isString(col.title) && slots[col.title]) {\n return slots[col.title](params);\n }\n if (isFunction(col.render)) {\n return (\n col.render(h, {\n ...params,\n type: 'title',\n row: {},\n rowIndex: -1,\n }) || col.title\n );\n }\n return col.title;\n}\n\nexport default function useTableHeader(props: TdBaseTableProps) {\n const { tableSortClasses, tableFilterClasses } = useClassName();\n // 一次性获取 colspan 和 rowspan 可以避免其他数据更新导致的重复计算\n const spansAndLeafNodes = computed(() => getThRowspanAndColspan(props.columns));\n // 表头二维数据\n const thList = computed(() => getThList(props.columns));\n const isMultipleHeader = computed(() => thList.value.length > 1);\n\n const renderTitleWidthIcon = (\n [title, sortIcon, filterIcon]: TNodeReturnValue[],\n col: PrimaryTableCol,\n colIndex: number,\n ellipsisTitle: BaseTableCol['ellipsisTitle'],\n attach: HTMLElement,\n extra?: {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n },\n ) => {\n const classes = {\n [tableSortClasses.sortable]: sortIcon,\n [tableFilterClasses.filterable]: filterIcon,\n };\n const content = isFunction(ellipsisTitle) ? ellipsisTitle(h, { col, colIndex }) : undefined;\n const isEllipsis = ellipsisTitle !== undefined ? Boolean(ellipsisTitle) : Boolean(col.ellipsis);\n return (\n
    \n
    \n {isEllipsis ? (\n attach : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof ellipsisTitle === 'object' ? ellipsisTitle : undefined}\n classPrefix={extra?.classPrefix}\n overlayClassName={extra?.ellipsisOverlayClassName}\n >\n {title}\n \n ) : (\n
    {title}
    \n )}\n {Boolean(sortIcon || filterIcon) && (\n
    \n {sortIcon}\n {filterIcon}\n
    \n )}\n
    \n
    \n );\n };\n\n return {\n thList,\n isMultipleHeader,\n spansAndLeafNodes,\n renderTitleWidthIcon,\n };\n}\n","/**\n * important info: only resize happened, th width calculating allowed\n * 验证场景:多级表头调整叶子结点列宽、吸顶表头调整列宽、列数量发生变化、表格未超出、表格已超出\n * - 固定列,调整列宽,需要更新固定位置;右侧固定列,调整列宽,需特殊处理\n * - 当表格内容没有超出时,即没有出现横向滚动条时,此时认为表格有足够的列宽呈现内容,修改宽度为相邻宽度调整\n * - 当表格内容超出,出现横向滚动条时,会自动调整当前列宽和表格总列宽,不影响相邻列宽\n */\nimport { ref, Ref, reactive, onMounted } from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { BaseTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { on, off } from '../../utils/dom';\n\nconst DEFAULT_MIN_WIDTH = 80;\nconst DEFAULT_MAX_WIDTH = 600;\n// 当离右边框的距离不超过 8 时,显示拖拽图标\nconst distance = 8;\n\nexport default function useColumnResize(params: {\n isWidthOverflow: Ref;\n tableContentRef: Ref;\n showColumnShadow: {\n left: boolean;\n right: boolean;\n };\n getThWidthList: (type?: 'default' | 'calculate') => { [colKeys: string]: number };\n updateThWidthList: (data: { [colKey: string]: number }) => void;\n setTableElmWidth: (width: number) => void;\n updateTableAfterColumnResize: () => void;\n onColumnResizeChange: TdBaseTableProps['onColumnResizeChange'];\n}) {\n const {\n isWidthOverflow,\n tableContentRef,\n showColumnShadow,\n getThWidthList,\n updateThWidthList,\n setTableElmWidth,\n updateTableAfterColumnResize,\n onColumnResizeChange,\n } = params;\n const resizeLineRef = ref();\n const effectColMap = ref<{ [colKey: string]: any }>({});\n const leafColumns = ref([]);\n let originalSelectStart: (this: GlobalEventHandlers, ev: Event) => any;\n let originalDragStart: (this: GlobalEventHandlers, ev: Event) => any;\n\n onMounted(() => {\n const hasDocument = typeof document !== 'undefined';\n originalSelectStart = hasDocument ? document.onselectstart : null;\n originalDragStart = hasDocument ? document.ondragstart : null;\n });\n\n const getSiblingResizableCol = (nodes: BaseTableCol[], index: number, type: 'prev' | 'next') => {\n let i = index;\n while (nodes[i] && nodes[i].resizable === false) {\n if (type === 'next') {\n i += 1;\n } else {\n i -= 1;\n }\n }\n return nodes[i];\n };\n\n // 递归查找列宽度变化后,受影响的相关列。前后非禁用调整列宽的列\n const setEffectColMap = (nodes: BaseTableCol[], parent: BaseTableCol | null) => {\n if (!nodes) return;\n leafColumns.value = nodes;\n nodes.forEach((n, index) => {\n const prevNode = getSiblingResizableCol(nodes, index - 1, 'prev');\n const nextNode = getSiblingResizableCol(nodes, index + 1, 'next');\n const parentPrevCol = parent ? effectColMap.value[parent.colKey].prev : nextNode;\n const parentNextCol = parent ? effectColMap.value[parent.colKey].next : prevNode;\n const prev = index === 0 ? parentPrevCol : prevNode;\n const next = index === nodes.length - 1 ? parentNextCol : nextNode;\n effectColMap.value[n.colKey] = {\n prev,\n next,\n current: {\n prevSibling: getSiblingResizableCol(nodes, index - 1, 'prev'),\n nextSibling: getSiblingResizableCol(nodes, index + 1, 'next'),\n },\n };\n setEffectColMap(n.children, n);\n });\n };\n\n const resizeLineParams = {\n isDragging: false,\n draggingCol: null as HTMLElement,\n draggingStart: 0,\n // 列宽调整类型:影响右侧列宽度、影响左侧列宽度、或者仅影响自身\n effectCol: 'next' as 'next' | 'prev',\n };\n\n const resizeLineStyle = reactive({\n display: 'none',\n height: '10px',\n left: '10px',\n bottom: '0',\n });\n\n // 当前列是否配置右侧固定并且处于固定激活状态\n const isColRightFixActive = (col: BaseTableCol) => col.fixed === 'right' && showColumnShadow.right;\n\n // 频繁事件,仅用于计算是否在表头显示拖拽鼠标形态\n const onColumnMouseover = (e: MouseEvent, col: BaseTableCol) => {\n // calculate mouse cursor before drag start\n if (!resizeLineRef.value || resizeLineParams.isDragging || !e.target) return;\n const target = (e.target as HTMLElement).closest('th');\n // 判断是否为叶子阶段,仅叶子结点允许拖拽\n const colKey = target.getAttribute('data-colkey');\n if (!leafColumns.value.find((t) => t.colKey === colKey)) return;\n const targetBoundRect = target.getBoundingClientRect();\n const thRightCursor = targetBoundRect.right - e.pageX <= distance;\n const thLeftCursor = e.pageX - targetBoundRect.left <= distance;\n const isFixedToRight = isColRightFixActive(col);\n if (thRightCursor || isFixedToRight) {\n const colResizable = col.resizable ?? true;\n if (colResizable) {\n target.style.cursor = thRightCursor || (isFixedToRight && thLeftCursor) ? 'col-resize' : '';\n const isCurrent = (thRightCursor && !isFixedToRight) || (isFixedToRight && thLeftCursor);\n resizeLineParams.draggingCol = isCurrent ? target : (target.nextElementSibling as HTMLElement);\n resizeLineParams.effectCol = 'next';\n return;\n }\n } else if (thLeftCursor) {\n const prevEl = target.previousElementSibling;\n if (prevEl) {\n const effectPrevCol = effectColMap.value[col.colKey]?.prev;\n const colResizable = effectPrevCol?.resizable ?? true;\n if (colResizable) {\n target.style.cursor = 'col-resize';\n resizeLineParams.draggingCol = prevEl as HTMLElement;\n resizeLineParams.effectCol = 'prev';\n return;\n }\n }\n }\n // 重置记录值\n target.style.cursor = '';\n resizeLineParams.draggingCol = null;\n resizeLineParams.effectCol = null;\n };\n\n const getMinMaxColWidth = (targetCol: BaseTableCol) => {\n const propMinWidth = isNumber(targetCol.minWidth) ? targetCol.minWidth : parseInt(targetCol.minWidth || '0', 10);\n return {\n minColWidth: Math.max(targetCol.resize?.minWidth || DEFAULT_MIN_WIDTH, propMinWidth),\n maxColWidth: targetCol.resize?.maxWidth || DEFAULT_MAX_WIDTH,\n };\n };\n\n const getNormalResizeInfo = (\n col: BaseTableCol,\n effectPrevCol: BaseTableCol,\n targetBoundRect: DOMRect,\n tableBoundRect: DOMRect,\n ) => {\n const resizeLinePos = targetBoundRect.right - tableBoundRect.left;\n const colLeft = targetBoundRect.left - tableBoundRect.left;\n const targetCol = resizeLineParams.effectCol === 'next' ? col : effectPrevCol;\n const { minColWidth, maxColWidth } = getMinMaxColWidth(targetCol);\n return {\n resizeLinePos,\n minResizeLineLeft: colLeft + minColWidth,\n maxResizeLineLeft: colLeft + maxColWidth,\n };\n };\n\n const getFixedToRightResizeInfo = (\n target: HTMLElement,\n col: BaseTableCol,\n effectPrevCol: BaseTableCol,\n targetBoundRect: DOMRect,\n tableBoundRect: DOMRect,\n ) => {\n const resizeLinePos = targetBoundRect.left - tableBoundRect.left;\n const targetCol = target.dataset.colkey === col.colKey ? col : effectPrevCol;\n const colLeft = targetBoundRect.left - tableBoundRect.left;\n const { minColWidth, maxColWidth } = getMinMaxColWidth(targetCol);\n return {\n resizeLinePos,\n minResizeLineLeft: colLeft + (targetBoundRect.width - maxColWidth),\n maxResizeLineLeft: colLeft + (targetBoundRect.width - minColWidth),\n };\n };\n\n const getFixedToLeftResizeInfo = (targetBoundRect: DOMRect, tableBoundRect: DOMRect) => {\n const resizeLinePos = targetBoundRect.left - tableBoundRect.left;\n const colLeft = targetBoundRect.left - tableBoundRect.left;\n return {\n resizeLinePos,\n minResizeLineLeft: colLeft,\n maxResizeLineLeft: colLeft,\n };\n };\n\n const getTotalTableWidth = (thWidthList: { [key: string]: number }): number => {\n let tableWidth = 0;\n leafColumns.value.forEach((col) => {\n tableWidth += thWidthList[col.colKey];\n });\n return tableWidth;\n };\n const getSiblingColCanResizable = (\n newThWidthList: { [key: string]: number },\n effectNextCol: BaseTableCol,\n distance: number,\n index: number,\n ) => {\n let isWidthAbnormal = true;\n if (effectNextCol) {\n const { minColWidth, maxColWidth } = getMinMaxColWidth(effectNextCol);\n const targetNextColWidth = newThWidthList[effectNextCol.colKey] + distance;\n isWidthAbnormal = targetNextColWidth < minColWidth || targetNextColWidth > maxColWidth;\n }\n return !(isWidthAbnormal || isWidthOverflow.value || index === leafColumns.value.length - 1);\n };\n const getOtherResizeInfo = (\n col: BaseTableCol,\n effectPrevCol: BaseTableCol,\n targetBoundRect: DOMRect,\n tableBoundRect: DOMRect,\n ) =>\n effectPrevCol\n ? getNormalResizeInfo(col, effectPrevCol, targetBoundRect, tableBoundRect)\n : getFixedToLeftResizeInfo(targetBoundRect, tableBoundRect);\n\n // 调整表格列宽\n const onColumnMousedown = (e: MouseEvent, col: BaseTableCol, index: number) => {\n if (!resizeLineParams.draggingCol) return;\n const target = resizeLineParams.draggingCol;\n const targetBoundRect = target.getBoundingClientRect();\n const tableBoundRect = tableContentRef.value?.getBoundingClientRect();\n const effectNextCol = effectColMap.value[col.colKey]?.next;\n const effectPrevCol = effectColMap.value[col.colKey]?.prev;\n const { resizeLinePos, minResizeLineLeft, maxResizeLineLeft } = isColRightFixActive(col)\n ? getFixedToRightResizeInfo(target, col, effectNextCol, targetBoundRect, tableBoundRect)\n : getOtherResizeInfo(col, effectNextCol, targetBoundRect, tableBoundRect);\n\n // 开始拖拽,记录下鼠标起始位置\n resizeLineParams.isDragging = true;\n resizeLineParams.draggingStart = e.x;\n\n // 初始化 resizeLine 标记线\n if (resizeLineRef?.value) {\n resizeLineStyle.display = 'block';\n resizeLineStyle.height = `${tableBoundRect.bottom - targetBoundRect.top}px`;\n resizeLineStyle.left = `${resizeLinePos}px`;\n const parent = tableContentRef.value.parentElement.getBoundingClientRect();\n resizeLineStyle.bottom = `${parent.bottom - tableBoundRect.bottom}px`;\n }\n\n // 结束拖拽,更新列宽。拖拽时鼠标可能会超出 table 范围,需要给 document 绑定拖拽相关事件;\n const onDragEnd = () => {\n if (!resizeLineParams.isDragging) return;\n const moveDistance = resizeLinePos - parseFloat(resizeLineStyle.left) || 0;\n /**\n * 计算列宽\n * - 若表格宽度已经超出,存在横向滚动,则直接改变当前列宽,也意味着改变表格总宽度\n * - 操作边框右侧,改变当前列和上一列;若上一列禁用宽度调整,则改变上一列的上一列,依次往前寻找\n * - 操作边框左侧,改变当前列和下一列;若下一列禁用宽度调整,则改变下一列的下一列,依次往后寻找\n */\n const thWidthList = getThWidthList('calculate');\n const currentCol = effectColMap.value[col.colKey]?.current;\n if (!currentCol) return;\n const currentSibling = resizeLineParams.effectCol === 'next' ? currentCol.nextSibling : currentCol.prevSibling;\n // 多行表头,列宽为最后一层的宽度,即叶子结点宽度\n const newThWidthList = { ...thWidthList };\n // 当前列不允许修改宽度,就调整相邻列的宽度\n const tmpCurrentCol = col.resizable !== false ? col : currentSibling;\n // 是否允许调整后一列的列宽:列宽未超出时,满足后一列设置的最大最小值时且并非是最后一列(最后一列的右侧拉伸会认为是表格整体宽度调整)\n const rightCol = resizeLineParams.effectCol === 'next' ? currentCol.nextSibling : col;\n const canResizeSiblingColWidth = getSiblingColCanResizable(newThWidthList, rightCol, moveDistance, index);\n\n if (resizeLineParams.effectCol === 'next') {\n // 右侧激活态的固定列,需特殊调整\n if (isColRightFixActive(col)) {\n // 如果不相同,则表示改变相临的右侧列宽\n if (target.dataset.colkey !== col.colKey) {\n newThWidthList[effectNextCol.colKey] += moveDistance;\n } else {\n newThWidthList[tmpCurrentCol.colKey] += moveDistance;\n }\n } else {\n // 非右侧激活态的固定列\n newThWidthList[tmpCurrentCol.colKey] -= moveDistance;\n if (canResizeSiblingColWidth) {\n newThWidthList[effectNextCol.colKey] += moveDistance;\n }\n }\n } else if (resizeLineParams.effectCol === 'prev') {\n if (canResizeSiblingColWidth) {\n newThWidthList[tmpCurrentCol.colKey] += moveDistance;\n }\n effectPrevCol && (newThWidthList[effectPrevCol.colKey] -= moveDistance);\n }\n updateThWidthList(newThWidthList);\n const tableWidth = getTotalTableWidth(newThWidthList);\n setTableElmWidth(Math.round(tableWidth));\n updateTableAfterColumnResize();\n\n // 恢复设置\n resizeLineParams.isDragging = false;\n resizeLineParams.draggingCol = null;\n resizeLineParams.effectCol = null;\n target.style.cursor = '';\n resizeLineStyle.display = 'none';\n resizeLineStyle.left = '0';\n off(document, 'mouseup', onDragEnd);\n off(document, 'mousemove', onDragOver);\n document.onselectstart = originalSelectStart;\n document.ondragstart = originalDragStart;\n onColumnResizeChange?.({ columnsWidth: newThWidthList });\n };\n\n // 注意前后两列最小和最大宽度限制\n const onDragOver = (e: MouseEvent) => {\n if (resizeLineParams.isDragging) {\n const left = resizeLinePos + e.x - resizeLineParams.draggingStart;\n resizeLineStyle.left = `${Math.min(Math.max(left, minResizeLineLeft), maxResizeLineLeft)}px`;\n }\n };\n\n on(document, 'mouseup', onDragEnd);\n on(document, 'mousemove', onDragOver);\n\n // 禁用鼠标的选中文字和拖放\n document.onselectstart = () => false;\n document.ondragstart = () => false;\n };\n\n return {\n resizeLineRef,\n resizeLineStyle,\n onColumnMouseover,\n onColumnMousedown,\n setEffectColMap,\n };\n}\n","import {\n ref,\n reactive,\n watch,\n toRefs,\n SetupContext,\n onMounted,\n computed,\n ComputedRef,\n onBeforeUnmount,\n Ref,\n} from 'vue';\nimport { get } from 'lodash-es';\nimport { debounce } from 'lodash-es';\nimport { xorWith } from 'lodash-es';\nimport log from '@tdesign/common-js/log/index';\nimport { ClassName, Styles } from '../../common';\nimport { BaseTableCol, BaseTableInstanceFunctions, TableRowData, TdBaseTableProps } from '../type';\nimport { getScrollbarWidthWithCSS } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport { on, off } from '../../utils/dom';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../interface';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { pick } from 'lodash-es';\n\n// 固定列相关类名处理\nexport function getColumnFixedStyles(\n col: TdBaseTableProps['columns'][0],\n index: number,\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableColFixedClasses: TableColFixedClasses,\n): { style?: Styles; classes?: ClassName } {\n const fixedPos = rowAndColFixedPosition?.get(col.colKey || index);\n if (!fixedPos) return {};\n const thClasses = {\n [tableColFixedClasses.left]: col.fixed === 'left',\n [tableColFixedClasses.right]: col.fixed === 'right',\n [tableColFixedClasses.lastLeft]: col.fixed === 'left' && fixedPos.lastLeftFixedCol,\n [tableColFixedClasses.firstRight]: col.fixed === 'right' && fixedPos.firstRightFixedCol,\n };\n const thStyles = {\n left: col.fixed === 'left' ? `${fixedPos.left}px` : undefined,\n right: col.fixed === 'right' ? `${fixedPos.right}px` : undefined,\n };\n return {\n style: thStyles,\n classes: thClasses,\n };\n}\n\n// 固定行相关类名处理\nexport function getRowFixedStyles(\n rowId: string | number,\n rowIndex: number,\n rowLength: number,\n fixedRows: TdBaseTableProps['fixedRows'],\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableRowFixedClasses: TableRowFixedClasses,\n // 和虚拟滚动搭配使用时,需要增加 style 的偏移量\n virtualTranslateY = 0,\n): { style: Styles; classes: ClassName } {\n if (!fixedRows || !fixedRows.length) return { style: undefined, classes: undefined };\n const fixedTop = rowIndex < fixedRows[0];\n const fixedBottom = rowIndex > rowLength - 1 - fixedRows[1];\n const firstFixedBottomRow = rowLength - fixedRows[1];\n const fixedPos = rowAndColFixedPosition?.get(rowId) || {};\n const rowClasses = {\n [tableRowFixedClasses.top]: fixedTop,\n [tableRowFixedClasses.bottom]: fixedBottom,\n [tableRowFixedClasses.firstBottom]: rowIndex === firstFixedBottomRow,\n [tableRowFixedClasses.withoutBorderBottom]: rowIndex === firstFixedBottomRow - 1,\n };\n const rowStyles = {\n top: fixedTop ? `${fixedPos.top - virtualTranslateY}px` : undefined,\n bottom: fixedBottom ? `${fixedPos.bottom + virtualTranslateY}px` : undefined,\n };\n return {\n style: rowStyles,\n classes: rowClasses,\n };\n}\n\nexport default function useFixed(\n props: TdBaseTableProps,\n context: SetupContext,\n finalColumns: ComputedRef[]>,\n affixRef: Record,\n) {\n const {\n columns,\n tableLayout,\n tableContentWidth,\n fixedRows,\n firstFullRow,\n lastFullRow,\n maxHeight,\n headerAffixedTop,\n footerAffixedBottom,\n bordered,\n resizable,\n allowResizeColumnWidth,\n } = toRefs(props);\n const data = ref([]);\n const tableRef = ref();\n const tableContentRef = ref();\n const isFixedHeader = ref(false);\n const isWidthOverflow = ref(false);\n const tableElmRef = ref();\n // CSS 样式设置了固定 6px\n const scrollbarWidth = ref(6);\n // 固定列、固定表头、固定表尾等内容的位置信息\n const rowAndColFixedPosition = ref(new Map());\n const showColumnShadow = reactive({\n left: false,\n right: false,\n });\n // 虚拟滚动不能使用 CSS sticky 固定表头\n const virtualScrollHeaderPos = ref<{ left: number; top: number }>({ left: 0, top: 0 });\n const tableWidth = ref(0);\n const tableElmWidth = ref(0);\n const thWidthList = ref<{ [colKey: string]: number }>({});\n\n const isFixedColumn = ref(false);\n const isFixedRightColumn = ref(false);\n const isFixedLeftColumn = ref(false);\n\n const columnResizable = computed(() => allowResizeColumnWidth.value ?? resizable.value ?? false);\n\n // 没有表头吸顶,没有虚拟滚动,则不需要表头宽度计算\n const notNeedThWidthList = computed(\n () =>\n !(\n props.headerAffixedTop ||\n props.footerAffixedBottom ||\n props.horizontalScrollAffixedBottom ||\n props.scroll?.type === 'virtual'\n ),\n );\n\n function setUseFixedTableElmRef(val: HTMLTableElement) {\n tableElmRef.value = val;\n }\n\n function getColumnMap(\n columns: BaseTableCol[],\n map: RowAndColFixedPosition = new Map(),\n levelNodes: FixedColumnInfo[][] = [],\n level = 0,\n parent?: FixedColumnInfo,\n ) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (['left', 'right'].includes(col.fixed)) {\n isFixedColumn.value = true;\n }\n if (col.fixed === 'right') {\n isFixedRightColumn.value = true;\n }\n if (col.fixed === 'left') {\n isFixedLeftColumn.value = true;\n }\n const key = col.colKey || i;\n const columnInfo: FixedColumnInfo = { col, parent, index: i };\n map.set(key, columnInfo);\n if (col.children?.length) {\n getColumnMap(col.children, map, levelNodes, level + 1, columnInfo);\n }\n if (levelNodes[level]) {\n levelNodes[level].push(columnInfo);\n } else {\n // eslint-disable-next-line no-param-reassign\n levelNodes[level] = [columnInfo];\n }\n }\n return {\n newColumnsMap: map,\n levelNodes,\n };\n }\n\n const setFixedLeftPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.fixed === 'right') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i - 1;\n while (lastColIndex >= 0 && columns[lastColIndex].fixed !== 'left') {\n lastColIndex -= 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === 0 ? parent?.left || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i - 1);\n if (colInfo) {\n colInfo.left = (lastColInfo?.left || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedLeftPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n const setFixedRightPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n if (col.fixed === 'left') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i + 1;\n while (lastColIndex < columns.length && columns[lastColIndex].fixed !== 'right') {\n lastColIndex += 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === columns.length - 1 ? parent?.right || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i + 1);\n if (colInfo) {\n colInfo.right = (lastColInfo?.right || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedRightPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n // 获取固定列位置信息。先获取节点宽度,再计算\n const setFixedColPosition = (trList: HTMLCollection, initialColumnMap: RowAndColFixedPosition) => {\n if (!trList) return;\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n if (!colKey) {\n log.warn('TDesign Table', `${th.innerText} missing colKey. colKey is required for fixed column feature.`);\n }\n const obj = initialColumnMap.get(colKey || j);\n if (obj?.col?.fixed) {\n initialColumnMap.set(colKey, { ...obj, width: th.getBoundingClientRect().width });\n }\n }\n }\n setFixedLeftPos(columns.value, initialColumnMap);\n setFixedRightPos(columns.value, initialColumnMap);\n };\n\n // 设置固定行位置信息 top/bottom\n const setFixedRowPosition = (\n trList: HTMLCollection,\n initialColumnMap: RowAndColFixedPosition,\n thead: HTMLTableSectionElement,\n tfoot: HTMLTableSectionElement,\n ) => {\n const [fixedTopRows, fixedBottomRows] = fixedRows.value || [];\n const { data, rowKey = 'id' } = props;\n for (let i = 0; i < fixedTopRows; i++) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i - 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === 0) {\n defaultBottom = thead?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.top = (lastRowInfo.top || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n for (let i = data.length - 1; i >= data.length - fixedBottomRows; i--) {\n // 当虚拟滚动的时候,尾部固定行并非对应数据的 index,需要进行倒推计算\n const tr = trList[trList.length - (data.length - i)] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i + 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === data.length - 1) {\n defaultBottom = tfoot?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.bottom = (lastRowInfo.bottom || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n };\n\n const updateRowAndColFixedPosition = (tableContentElm: HTMLElement, initialColumnMap: RowAndColFixedPosition) => {\n rowAndColFixedPosition.value.clear();\n if (!tableContentElm) return;\n const thead = tableContentElm.querySelector('thead');\n // 处理固定列\n thead && setFixedColPosition(thead.children, initialColumnMap);\n // 处理冻结行\n const tbody = tableContentElm.querySelector('tbody');\n const tfoot = tableContentElm.querySelector('tfoot');\n tbody && setFixedRowPosition(tbody.children, initialColumnMap, thead, tfoot);\n // 更新最终 Map\n rowAndColFixedPosition.value = initialColumnMap;\n };\n\n let shadowLastScrollLeft: number;\n const updateColumnFixedShadow = (target: HTMLElement, extra?: { skipScrollLimit?: boolean }) => {\n if (!isFixedColumn.value || !target) return;\n const { scrollLeft } = target;\n // 只有左右滚动,需要更新固定列阴影\n if (shadowLastScrollLeft === scrollLeft && (!extra || !extra.skipScrollLimit)) return;\n shadowLastScrollLeft = scrollLeft;\n const isShowRight = target.clientWidth + scrollLeft < target.scrollWidth;\n const isShowLeft = scrollLeft > 0;\n if (showColumnShadow.left === isShowLeft && showColumnShadow.right === isShowRight) return;\n showColumnShadow.left = isShowLeft && isFixedLeftColumn.value;\n showColumnShadow.right = isShowRight && isFixedRightColumn.value;\n };\n\n // 多级表头场景较为复杂:为了滚动的阴影效果,需要知道哪些列是边界列,左侧固定列的最后一列,右侧固定列的第一列,每一层表头都需要兼顾\n const setIsLastOrFirstFixedCol = (levelNodes: FixedColumnInfo[][]) => {\n for (let t = 0; t < levelNodes.length; t++) {\n const nodes = levelNodes[t];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const colMapInfo = nodes[i];\n const nextColMapInfo = nodes[i + 1];\n const { parent } = colMapInfo;\n const isParentLastLeftFixedCol = !parent || parent?.lastLeftFixedCol;\n if (isParentLastLeftFixedCol && colMapInfo.col.fixed === 'left' && nextColMapInfo?.col.fixed !== 'left') {\n colMapInfo.lastLeftFixedCol = true;\n }\n const lastColMapInfo = nodes[i - 1];\n const isParentFirstRightFixedCol = !parent || parent?.firstRightFixedCol;\n if (isParentFirstRightFixedCol && colMapInfo.col.fixed === 'right' && lastColMapInfo?.col.fixed !== 'right') {\n colMapInfo.firstRightFixedCol = true;\n }\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const updateFixedStatus = () => {\n const { newColumnsMap, levelNodes } = getColumnMap(columns.value);\n setIsLastOrFirstFixedCol(levelNodes);\n const timer = setTimeout(() => {\n if (isFixedColumn.value || fixedRows.value?.length) {\n updateRowAndColFixedPosition(tableContentRef.value, newColumnsMap);\n }\n clearTimeout(timer);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n };\n\n const updateFixedHeader = () => {\n const timer = setTimeout(() => {\n if (!tableContentRef.value) return;\n isFixedHeader.value = tableContentRef.value.scrollHeight > tableContentRef.value.clientHeight;\n isWidthOverflow.value = tableContentRef.value.scrollWidth > tableContentRef.value.clientWidth;\n const pos = tableContentRef.value.getBoundingClientRect();\n virtualScrollHeaderPos.value = {\n top: pos.top,\n left: pos.left,\n };\n clearTimeout(timer);\n }, 0);\n };\n\n const setTableElmWidth = (width: number) => {\n if (tableElmWidth.value === width) return;\n tableElmWidth.value = width;\n };\n\n const updateTableWidth = () => {\n const rect = tableContentRef.value?.getBoundingClientRect();\n if (!rect) return;\n // 存在纵向滚动条,且固定表头时,需去除滚动条宽度\n const reduceWidth = isFixedHeader.value ? scrollbarWidth.value : 0;\n tableWidth.value = rect.width - reduceWidth - (props.bordered ? 1 : 0);\n const elmRect = tableElmRef?.value?.getBoundingClientRect();\n elmRect?.width && setTableElmWidth(elmRect.width);\n };\n\n const updateAffixPosition = () => {\n // 在表格高度变化的时候 需要手动调整affix的位置 因为affix本身无法监听到这些变化触发重新计算\n affixRef.paginationAffixRef.value?.handleScroll?.();\n affixRef.horizontalScrollAffixRef.value?.handleScroll?.();\n affixRef.headerTopAffixRef.value?.handleScroll?.();\n affixRef.footerBottomAffixRef.value?.handleScroll?.();\n };\n\n const calculateThWidthList = (trList: HTMLCollection) => {\n const widthMap: { [colKey: string]: number } = {};\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n // second for used for multiple row header\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n widthMap[colKey] = th.getBoundingClientRect().width;\n }\n }\n return widthMap;\n };\n\n const updateThWidthList = (trList: HTMLCollection | { [colKey: string]: number }) => {\n if (trList instanceof HTMLCollection) {\n if (columnResizable.value) return;\n thWidthList.value = calculateThWidthList(trList);\n } else {\n thWidthList.value = thWidthList.value || {};\n Object.entries(trList).forEach(([colKey, width]) => {\n thWidthList.value[colKey] = width;\n });\n }\n return thWidthList.value;\n };\n\n const updateThWidthListHandler = () => {\n const timer = setTimeout(() => {\n updateTableWidth();\n if (notNeedThWidthList.value) return;\n const thead = tableContentRef.value?.querySelector('thead');\n if (!thead) return;\n updateThWidthList(thead.children);\n clearTimeout(timer);\n }, 0);\n };\n\n const resetThWidthList = () => {\n thWidthList.value = {};\n };\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScrollX?.({ e });\n props.onScrollY?.({ e });\n props.onScroll?.({ e });\n };\n\n const getThWidthList = (type?: 'default' | 'calculate') => {\n if (type === 'calculate') {\n const trList = tableContentRef.value?.querySelector('thead')?.children;\n if (!trList) {\n return {};\n }\n return calculateThWidthList(trList);\n }\n return thWidthList.value || {};\n };\n\n watch(\n [\n data,\n columns,\n bordered,\n tableLayout,\n tableContentWidth,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n fixedRows,\n firstFullRow,\n lastFullRow,\n ],\n updateFixedStatus,\n { immediate: true },\n );\n\n watch(\n [isFixedColumn, columns],\n () => {\n const timer = setTimeout(() => {\n if (isFixedColumn.value) {\n updateColumnFixedShadow(tableContentRef.value);\n }\n clearTimeout(timer);\n }, 0);\n },\n { immediate: true },\n );\n\n watch(\n [maxHeight, data, columns, bordered, tableContentRef],\n () => {\n if (tableContentRef.value) {\n // 如果不监听元素的ref,会出现watch在ref还没ready的时候触发,此时没有触发这个判断的更新,导致表头消失\n updateFixedHeader();\n }\n },\n { immediate: true },\n );\n\n watch(finalColumns, () => {\n resetThWidthList();\n });\n\n // 影响表头宽度的元素\n watch(\n [data, bordered, tableLayout, fixedRows, isFixedHeader, headerAffixedTop, footerAffixedBottom, tableContentWidth],\n () => {\n const timer = setTimeout(() => {\n updateThWidthListHandler();\n updateAffixPosition();\n clearTimeout(timer);\n }, 60);\n },\n { immediate: true },\n );\n\n watch([finalColumns], ([finalColumns], [preFinalColumns]) => {\n const finalColKeys = finalColumns.map((t) => t.colKey);\n const preColKeys = preFinalColumns.map((t) => t.colKey);\n if (finalColKeys.length < preColKeys.length) {\n const reduceKeys = xorWith(preColKeys, finalColKeys);\n const thWidthList = getThWidthList('calculate');\n let reduceWidth = 0;\n reduceKeys.forEach((key) => {\n reduceWidth += thWidthList[key];\n });\n const rootThWidthList = pick(thWidthList, preColKeys);\n const oldTotalWidth = Object.values(rootThWidthList).reduce((r = 0, n) => r + n);\n // 保留原有可能编辑过的列宽度,但是当剩余列过小时,表头小于内容宽,需要缩放回内容宽度\n // 使用不包含滚动条的可视化区域宽度,意味着当不再溢出的时候,将宽度设置回完整宽度\n const contentWidth = tableContentRef.value.clientWidth;\n const widthToReserve = oldTotalWidth - reduceWidth;\n setTableElmWidth(Math.max(contentWidth, widthToReserve));\n }\n });\n\n const refreshTable: BaseTableInstanceFunctions['refreshTable'] = () => {\n // updateTableWidth();\n updateThWidthListHandler();\n updateFixedHeader();\n updateAffixPosition();\n\n if (isFixedColumn.value || isFixedHeader.value) {\n updateFixedStatus();\n updateColumnFixedShadow(tableContentRef.value, { skipScrollLimit: true });\n }\n\n // auto 布局下,同步表头列宽,避免 affix 表头列宽不对齐\n if (tableLayout.value === 'auto') {\n updateThWidthList(getThWidthList('calculate'));\n }\n };\n\n const onResize = debounce(() => {\n refreshTable();\n }, 30);\n\n let resizeObserver: ResizeObserver = null;\n function addTableResizeObserver(tableElement: HTMLDivElement) {\n if (typeof window === 'undefined') return;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n if (getIEVersion() < 11 || typeof window.ResizeObserver === 'undefined') return;\n off(window, 'resize', onResize);\n resizeObserver = new window.ResizeObserver(() => {\n const timer = setTimeout(() => {\n refreshTable();\n clearTimeout(timer);\n }, 200);\n });\n resizeObserver.observe(tableElement);\n tableRef.value = tableElement;\n }\n\n onMounted(() => {\n const scrollWidth = getScrollbarWidthWithCSS();\n scrollbarWidth.value = scrollWidth;\n updateThWidthListHandler();\n const isWatchResize = isFixedColumn.value || isFixedHeader.value || !notNeedThWidthList.value || !data.value.length;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n const hasWindow = typeof window !== 'undefined';\n const hasResizeObserver = hasWindow && typeof window.ResizeObserver !== 'undefined';\n if ((isWatchResize && getIEVersion() < 11) || !hasResizeObserver) {\n on(window, 'resize', onResize);\n }\n });\n\n onBeforeUnmount(() => {\n if (typeof window !== 'undefined') {\n off(window, 'resize', onResize);\n }\n resizeObserver?.unobserve(tableRef.value);\n resizeObserver?.disconnect();\n });\n\n const setData = (dataSource: TableRowData[]) => {\n data.value = dataSource;\n };\n\n const updateTableAfterColumnResize = () => {\n updateFixedStatus();\n updateFixedHeader();\n };\n\n return {\n tableWidth,\n tableElmWidth,\n thWidthList,\n isFixedHeader,\n isWidthOverflow,\n tableContentRef,\n isFixedColumn,\n showColumnShadow,\n rowAndColFixedPosition,\n virtualScrollHeaderPos,\n scrollbarWidth,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n updateThWidthListHandler,\n updateColumnFixedShadow,\n setUseFixedTableElmRef,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n };\n}\n","import { ref, SetupContext, toRefs, watch } from 'vue';\nimport { useConfig } from '../../hooks/useConfig';\nimport Pagination, { PageInfo, PaginationProps } from '../../pagination';\nimport { TdBaseTableProps, TableRowData } from '../type';\n\n// 分页功能包含:远程数据排序受控、远程数据排序非受控、本地数据排序受控、本地数据排序非受控 等 4 类功能\nexport default function usePagination(props: TdBaseTableProps, context: SetupContext) {\n const { pagination, data, disableDataPage } = toRefs(props);\n const { classPrefix } = useConfig();\n const innerPagination = ref(props.pagination);\n\n const dataSource = ref([]);\n const isPaginateData = ref(false);\n\n const updateDataSourceAndPaginate = (current = 1, pageSize = 10) => {\n const { data } = props;\n // data 数据数量超出分页大小时,则自动启动本地数据分页\n const t = Boolean(!disableDataPage.value && data.length > pageSize);\n isPaginateData.value = t;\n if (t) {\n const start = (current - 1) * pageSize;\n const end = current * pageSize;\n dataSource.value = data.slice(start, end);\n } else {\n dataSource.value = data;\n }\n };\n\n // 受控情况,只有 pagination.current 或者 pagination.pageSize 变化,才对数据进行排序\n watch(\n () => [pagination.value?.current, pagination.value?.pageSize, data.value.length, disableDataPage],\n () => {\n if (!pagination.value || !pagination.value.current) return;\n const { current, pageSize } = pagination.value;\n innerPagination.value = { current, pageSize };\n updateDataSourceAndPaginate(pagination.value.current, pagination.value.pageSize);\n },\n { immediate: true },\n );\n\n // 非受控情况,只执行一次 Props 数据更新(pagination.defaultCurrent 和 pagination.defaultPageSize)\n watch(\n [data],\n () => {\n if (!pagination.value || !pagination.value.defaultCurrent) return;\n const isControlled = Boolean(pagination.value.current);\n // 存在受控属性时,立即返回不再执行后续内容\n if (isControlled) return;\n updateDataSourceAndPaginate(\n innerPagination.value.current ?? pagination.value.defaultCurrent,\n innerPagination.value.pageSize ?? pagination.value.defaultPageSize,\n );\n },\n { immediate: true },\n );\n\n const renderPagination = () => {\n if (!props.pagination) return null;\n const paginationProps = { ...props.pagination };\n // Vue3,两个 onChange 事件绑定,会成为数组,因为需提前移除外部 onChange\n delete paginationProps.onChange;\n return (\n
    \n {\n props.pagination?.onChange?.(pageInfo);\n innerPagination.value = pageInfo;\n updateDataSourceAndPaginate(pageInfo.current, pageInfo.pageSize);\n props.onPageChange?.(pageInfo, dataSource.value);\n }}\n v-slots={{ totalContent: context.slots.totalContent }}\n />\n
    \n );\n };\n\n return {\n isPaginateData,\n dataSource,\n innerPagination,\n renderPagination,\n };\n}\n","import { isBoolean } from 'lodash-es';\nimport { computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport { on, off } from '../../utils/dom';\nimport { AffixProps } from '../../affix';\nimport { debounce } from 'lodash-es';\n\n/**\n * 1. 表头吸顶(普通表头吸顶 和 虚拟滚动表头吸顶)\n * 2. 表尾吸底\n * 3. 底部滚动条吸底\n * 4. 分页器吸底\n */\nexport default function useAffix(props: TdBaseTableProps) {\n const tableContentRef = ref();\n // 吸顶表头\n const affixHeaderRef = ref();\n // 吸底表尾\n const affixFooterRef = ref();\n // 吸底滚动条\n const horizontalScrollbarRef = ref();\n // 吸底分页器\n const paginationRef = ref();\n // 当表格完全滚动消失在视野时,需要隐藏吸顶表头\n const showAffixHeader = ref(true);\n // 当表格完全滚动消失在视野时,需要隐藏吸底尾部\n const showAffixFooter = ref(true);\n // 当表格完全滚动消失在视野时,需要隐藏吸底分页器\n const showAffixPagination = ref(true);\n // 当鼠标按下拖动内容来滚动时,需要更新表头位置(Windows 按下鼠标横向滚动,滚动结束后,再松开鼠标)\n let isMousedown = false;\n let isMouseInScrollableArea = false;\n\n const isVirtualScroll = computed(\n () => props.scroll && props.scroll.type === 'virtual' && (props.scroll.threshold || 100) < props.data.length,\n );\n\n const isAffixed = computed(\n () => !!(props.headerAffixedTop || props.footerAffixedBottom || props.horizontalScrollAffixedBottom),\n );\n\n let lastScrollLeft = 0;\n const onHorizontalScroll = (scrollElement?: HTMLElement) => {\n if (!isAffixed.value && !isVirtualScroll.value) return;\n let target = scrollElement;\n if (!target && tableContentRef.value) {\n lastScrollLeft = 0;\n target = tableContentRef.value;\n }\n if (!target) return;\n const left = target.scrollLeft;\n // 如果 lastScrollLeft 等于 left,说明不是横向滚动,不需要更新横向滚动距离\n if (lastScrollLeft === left) return;\n lastScrollLeft = left;\n // 表格内容、吸顶表头、吸底表尾、吸底横向滚动更新\n const toUpdateScrollElement = [\n tableContentRef.value,\n affixHeaderRef.value,\n affixFooterRef.value,\n horizontalScrollbarRef.value,\n ];\n for (let i = 0, len = toUpdateScrollElement.length; i < len; i++) {\n if (toUpdateScrollElement[i] && scrollElement !== toUpdateScrollElement[i]) {\n toUpdateScrollElement[i].scrollLeft = left;\n }\n }\n };\n\n // 吸底的元素(footer、横向滚动条、分页器)是否显示\n const isAffixedBottomElementShow = (elementRect: DOMRect, tableRect: DOMRect, headerHeight: number) =>\n tableRect.top + headerHeight < elementRect.top && elementRect.top > elementRect.height;\n\n const getOffsetTop = (props: boolean | AffixProps) => {\n if (isBoolean(props)) return 0;\n return props.offsetTop || 0;\n };\n\n const updateAffixHeaderOrFooter = () => {\n if (!isAffixed.value && !isVirtualScroll.value && !tableContentRef.value) return;\n const pos = tableContentRef.value?.getBoundingClientRect();\n const headerRect = tableContentRef.value?.querySelector('thead')?.getBoundingClientRect();\n const headerHeight = headerRect?.height || 0;\n const footerRect = affixFooterRef.value?.getBoundingClientRect();\n if ((props.headerAffixedTop || isVirtualScroll.value) && affixHeaderRef.value) {\n const offsetTop = getOffsetTop(props.headerAffixProps || props.headerAffixedTop);\n const footerHeight = footerRect?.height || 0;\n let r = Math.abs(pos.top) < pos.height - headerHeight - offsetTop - footerHeight;\n // 如果是虚拟滚动的表头,只要表头在可视区域内,一律永久显示(虚拟滚动表头 和 吸顶表头可能同时存在)\n if (isVirtualScroll.value) {\n r = pos.top > -1 * headerRect.height;\n }\n showAffixHeader.value = r;\n }\n // 底部内容吸底 和 底部滚动条吸底,不可能同时存在,二选一即可\n if (props.footerAffixedBottom && affixFooterRef?.value) {\n showAffixFooter.value = isAffixedBottomElementShow(footerRect, pos, headerHeight);\n } else if (props.horizontalScrollAffixedBottom && horizontalScrollbarRef?.value) {\n const horizontalScrollbarRect = horizontalScrollbarRef.value.getBoundingClientRect();\n showAffixFooter.value = isAffixedBottomElementShow(horizontalScrollbarRect, pos, headerHeight);\n }\n if (props.paginationAffixedBottom && paginationRef.value) {\n const pageRect = paginationRef.value.getBoundingClientRect();\n showAffixPagination.value = isAffixedBottomElementShow(pageRect, pos, headerHeight);\n }\n };\n\n const onDocumentScroll = () => {\n updateAffixHeaderOrFooter();\n };\n\n const onFootScroll = () => {\n onHorizontalScroll(affixFooterRef.value);\n };\n\n const onHeaderScroll = () => {\n onHorizontalScroll(affixHeaderRef.value);\n };\n\n const horizontalScrollbarScroll = () => {\n onHorizontalScroll(horizontalScrollbarRef.value);\n };\n\n const onTableContentScroll = () => {\n onHorizontalScroll(tableContentRef.value);\n };\n\n const onFootMouseEnter = () => {\n on(affixFooterRef.value, 'scroll', onFootScroll);\n };\n\n const onFootMouseLeave = () => {\n off(affixFooterRef.value, 'scroll', onFootScroll);\n };\n\n const onHeaderMouseEnter = () => {\n on(affixHeaderRef.value, 'scroll', onHeaderScroll);\n onMouseEnterScrollableArea();\n };\n\n const onHeaderMouseLeave = () => {\n if (!isMousedown) off(affixHeaderRef.value, 'scroll', onHeaderScroll);\n onMouseLeaveScrollableArea();\n };\n\n const onScrollbarMouseEnter = () => {\n on(horizontalScrollbarRef.value, 'scroll', horizontalScrollbarScroll);\n };\n\n const onScrollbarMouseLeave = () => {\n off(horizontalScrollbarRef.value, 'scroll', horizontalScrollbarScroll);\n };\n\n const onTableContentMouseEnter = () => {\n on(tableContentRef.value, 'scroll', onTableContentScroll);\n onMouseEnterScrollableArea();\n };\n\n const onTableContentMouseLeave = () => {\n if (!isMousedown) off(tableContentRef.value, 'scroll', onTableContentScroll);\n onMouseLeaveScrollableArea();\n };\n\n const onMousedown = () => {\n isMousedown = true;\n };\n\n const onMouseup = () => {\n isMousedown = false;\n if (!isMouseInScrollableArea) {\n off(affixHeaderRef.value, 'scroll', onHeaderScroll);\n off(tableContentRef.value, 'scroll', onTableContentScroll);\n }\n };\n\n const onMouseEnterScrollableArea = () => {\n isMouseInScrollableArea = true;\n };\n\n const onMouseLeaveScrollableArea = () => {\n isMouseInScrollableArea = false;\n };\n\n // 记录激活中的 scroll,在新元素点击时要进行抢占\n const activatingTouchScrollListenerCleanups: Array<() => void> = [];\n const setupElementTouchScrollListener = (element: HTMLElement) => {\n // 思路来源 https://github.com/vueuse/vueuse/blob/main/packages/core/useScroll/index.ts\n // 兼容不支持 scrollend 但是又存在惯性滑动的场景,例如 safari\n // 200 毫秒这个默认值是 vueuse 的用法,后面有问题可以再重新考虑\n const debounceOffScrollListener = debounce((listener) => {\n off(element, 'scroll', listener);\n }, 200);\n\n function onElementTouchScroll() {\n onHorizontalScroll(element);\n debounceOffScrollListener(onElementTouchScroll);\n }\n function onElementTouchStart(e: UIEvent) {\n if (e.composedPath().includes(element)) {\n // 下一次 touch 清理所有的 scroll,不同于 pc 端的 enter,触碰打断是合理的\n activatingTouchScrollListenerCleanups.forEach((cleanup) => cleanup());\n activatingTouchScrollListenerCleanups.length = 0;\n // 即使是相同元素也重新绑定,因为 touch 必定带来滑动停止\n on(element, 'scroll', onElementTouchScroll);\n // 有可能触碰了一下,没触发 scroll,也销毁\n debounceOffScrollListener(onElementTouchScroll);\n activatingTouchScrollListenerCleanups.push(() => {\n off(element, 'scroll', onElementTouchScroll);\n });\n }\n }\n\n on(element, 'touchstart', onElementTouchStart);\n\n function removeElementTouchScrollListener() {\n off(element, 'touchstart', onElementTouchStart);\n }\n\n return {\n removeElementTouchScrollListener,\n };\n };\n\n // 清理所有 touch 相关的逻辑\n const elementTouchScrollCleanups: Array<() => void> = [];\n const cleanupElementTouchScroll = () => {\n elementTouchScrollCleanups.forEach((cleanup) => cleanup());\n elementTouchScrollCleanups.length = 0;\n };\n\n const removeHorizontalScrollListeners = () => {\n off(window, 'mousedown', onMousedown);\n off(window, 'mouseup', onMouseup);\n\n cleanupElementTouchScroll();\n if (affixHeaderRef.value) {\n off(affixHeaderRef.value, 'mouseenter', onHeaderMouseEnter);\n off(affixHeaderRef.value, 'mouseleave', onHeaderMouseLeave);\n }\n if (affixFooterRef.value) {\n off(affixFooterRef.value, 'mouseenter', onFootMouseEnter);\n off(affixFooterRef.value, 'mouseleave', onFootMouseLeave);\n }\n if (tableContentRef.value) {\n off(tableContentRef.value, 'mouseenter', onTableContentMouseEnter);\n off(tableContentRef.value, 'mouseleave', onTableContentMouseLeave);\n }\n if (horizontalScrollbarRef.value) {\n off(horizontalScrollbarRef.value, 'mouseenter', onScrollbarMouseEnter);\n off(horizontalScrollbarRef.value, 'mouseleave', onScrollbarMouseLeave);\n }\n };\n\n const addHorizontalScrollListeners = () => {\n on(window, 'mousedown', onMousedown);\n on(window, 'mouseup', onMouseup);\n\n removeHorizontalScrollListeners();\n if (affixHeaderRef.value) {\n on(affixHeaderRef.value, 'mouseenter', onHeaderMouseEnter);\n on(affixHeaderRef.value, 'mouseleave', onHeaderMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(affixHeaderRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if (props.footerAffixedBottom && affixFooterRef.value) {\n on(affixFooterRef.value, 'mouseenter', onFootMouseEnter);\n on(affixFooterRef.value, 'mouseleave', onFootMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(affixFooterRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if (props.horizontalScrollAffixedBottom && horizontalScrollbarRef.value) {\n on(horizontalScrollbarRef.value, 'mouseenter', onScrollbarMouseEnter);\n on(horizontalScrollbarRef.value, 'mouseleave', onScrollbarMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(horizontalScrollbarRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if ((isAffixed.value || isVirtualScroll.value) && tableContentRef.value) {\n on(tableContentRef.value, 'mouseenter', onTableContentMouseEnter);\n on(tableContentRef.value, 'mouseleave', onTableContentMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(tableContentRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n };\n\n const addVerticalScrollListener = () => {\n if (!isAffixed.value && !props.paginationAffixedBottom) return;\n const timer = setTimeout(() => {\n if (isAffixed.value || props.paginationAffixedBottom) {\n on(document, 'scroll', onDocumentScroll);\n } else {\n off(document, 'scroll', onDocumentScroll);\n }\n clearTimeout(timer);\n });\n };\n\n watch([affixHeaderRef, affixFooterRef, horizontalScrollbarRef, tableContentRef], () => {\n addHorizontalScrollListeners();\n onHorizontalScroll();\n updateAffixHeaderOrFooter();\n });\n\n watch(isAffixed, addVerticalScrollListener);\n\n watch(\n () => [\n props.data,\n props.columns,\n props.headerAffixedTop,\n props.footerAffixedBottom,\n props.horizontalScrollAffixedBottom,\n ],\n () => {\n onHorizontalScroll();\n },\n );\n\n onBeforeUnmount(() => {\n off(document, 'scroll', onDocumentScroll);\n removeHorizontalScrollListeners();\n affixHeaderRef.value = null;\n affixFooterRef.value = null;\n horizontalScrollbarRef.value = null;\n tableContentRef.value = null;\n });\n\n const setTableContentRef = (tableContent: HTMLDivElement) => {\n tableContentRef.value = tableContent;\n addVerticalScrollListener();\n };\n\n return {\n showAffixHeader,\n showAffixFooter,\n showAffixPagination,\n affixHeaderRef,\n affixFooterRef,\n horizontalScrollbarRef,\n paginationRef,\n onHorizontalScroll,\n setTableContentRef,\n updateAffixHeaderOrFooter,\n };\n}\n","import { isFunction } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { CellData, RowClassNameParams, TableColumnClassName, TableRowData, TdBaseTableProps } from './type';\nimport { ClassName, HTMLElementAttributes } from '../common';\nimport { AffixProps } from '../affix';\n\nexport function toString(obj: any): string {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();\n}\n\nexport function debounce(fn: Function, delay = 200): () => void {\n let timer: ReturnType;\n return function newFn(this: T, ...args: Array): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, args);\n }, delay);\n };\n}\n\nexport interface FormatRowAttributesParams {\n row: TableRowData;\n rowIndex: number;\n type: 'body' | 'foot';\n}\n\n// 行属性\nexport function formatRowAttributes(attributes: TdBaseTableProps['rowAttributes'], params: FormatRowAttributesParams) {\n if (!attributes) return undefined;\n const attrList = attributes instanceof Array ? attributes : [attributes];\n let result: HTMLElementAttributes = {};\n for (let i = 0; i < attrList.length; i++) {\n const attrItem = attrList[i];\n if (!attrItem) continue;\n const attrProperty = isFunction(attrItem) ? attrItem(params) : attrItem;\n result =\n attrProperty instanceof Array ? formatRowAttributes(attrProperty, params) : Object.assign(result, attrProperty);\n }\n return result;\n}\n\n// 行类名,['A', 'B'],[() => 'A', () => 'B']\nexport function formatRowClassNames(\n rowClassNames: TdBaseTableProps['rowClassName'],\n params: RowClassNameParams,\n rowKey: string,\n) {\n const rowClassList = rowClassNames instanceof Array ? rowClassNames : [rowClassNames];\n const { row, rowIndex } = params;\n // 自定义行类名\n let customClasses: ClassName = [];\n for (let i = 0, len = rowClassList.length; i < len; i++) {\n const rName = rowClassList[i];\n let tClass = isFunction(rName) ? rName(params) : rName;\n if (isObject(tClass) && !(tClass instanceof Array)) {\n // TODO: 这里其实是两点原因导致的\n // 1. isObject(tClass) && !(tClass instanceof Array) 直接用 isPlainObject 就可以了吧,或者 tClass && typeof tClass === 'object'\n // 2. lodash-es 类型不全\n // 根据下标设置行类名\n (tClass as Record)[rowIndex] && (tClass = (tClass as Record)[rowIndex]);\n // 根据行唯一标识设置行类名\n const rowId = get(row, rowKey || 'id');\n tClass[rowId] && (tClass = tClass[rowId]);\n } else if (tClass instanceof Array) {\n tClass = formatRowClassNames(tClass, params, rowKey);\n }\n customClasses = customClasses.concat(tClass);\n }\n return customClasses;\n}\n\nexport function formatClassNames(\n classNames: TableColumnClassName | TableColumnClassName[],\n params: CellData,\n) {\n const classes = classNames instanceof Array ? classNames : [classNames];\n const arr: any[] = [];\n for (let i = 0, len = classes.length; i < len; i++) {\n const cls = classes[i];\n if (isFunction(cls)) {\n arr.push(cls(params));\n } else {\n arr.push(cls);\n }\n }\n return arr;\n}\n\nexport const INNER_PRE_NAME = '@@inner-';\n\n// 多级表头,列配置场景,获取 currentRow\nexport function getCurrentRowByKey(columns: T[], key: string): T {\n if (!columns || !key) return;\n const col = columns?.find((t) => t.colKey === key);\n if (col) return col;\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i]?.children?.length) {\n return getCurrentRowByKey(columns[i]?.children, key);\n }\n }\n}\n\n/** 透传 Affix 组件全部特性 */\nexport function getAffixProps(mainAffixProps: boolean | AffixProps, subAffixProps?: AffixProps) {\n if (typeof mainAffixProps === 'object') return mainAffixProps;\n if (typeof subAffixProps === 'object') return subAffixProps;\n return {};\n}\n","import { ref, watch, Ref } from 'vue';\nimport { get } from 'lodash-es';\nimport log from '@tdesign/common-js/log/index';\nimport { BaseTableCellParams, BaseTableCol, TableRowData, TableRowspanAndColspanFunc } from '../type';\n\nexport interface SkipSpansValue {\n colspan?: number;\n rowspan?: number;\n skipped?: boolean;\n}\n\nexport function getCellKey(row: TableRowData, rowKey: string, colKey: string, colIndex: number) {\n const rowValue = get(row, rowKey);\n if (rowValue === undefined) {\n log.error('Table', 'rowKey is wrong, can not get unique identifier of row.');\n }\n return [rowValue, colKey || colIndex].join('_');\n}\n\n// getCellKey的反向操作 用于获取rowKey\nexport function getRowKeyFromCell(cellKey: string) {\n return cellKey.split('_')?.[0];\n}\n\nexport default function useRowspanAndColspan(\n data: Ref,\n columns: Ref[]>,\n rowKey: Ref,\n rowspanAndColspan: Ref>,\n) {\n const skipSpansMap = ref(new Map());\n\n // 计算单元格是否跳过渲染\n const onTrRowspanOrColspan = (params: BaseTableCellParams, skipSpansValue: SkipSpansValue) => {\n const { rowIndex, colIndex } = params;\n if (!skipSpansValue.rowspan && !skipSpansValue.colspan) return;\n const maxRowIndex = rowIndex + (skipSpansValue.rowspan || 1);\n const maxColIndex = colIndex + (skipSpansValue.colspan || 1);\n for (let i = rowIndex; i < maxRowIndex; i++) {\n for (let j = colIndex; j < maxColIndex; j++) {\n if (i !== rowIndex || j !== colIndex) {\n if (!data.value[i] || !columns.value[j]) return;\n const cellKey = getCellKey(data.value[i], rowKey.value, columns.value[j].colKey, j);\n const state = skipSpansMap.value.get(cellKey) || {};\n state.skipped = true;\n skipSpansMap.value.set(cellKey, state);\n }\n }\n }\n };\n\n // 计算单元格是否需要设置 rowspan 和 colspan\n const updateSkipSpansMap = (\n data: TableRowData[],\n columns: BaseTableCol[],\n rowspanAndColspan: TableRowspanAndColspanFunc,\n ) => {\n skipSpansMap.value?.clear();\n if (!data || !rowspanAndColspan) return;\n for (let i = 0, len = data.length; i < len; i++) {\n const row = data[i];\n for (let j = 0, colLen = columns.length; j < colLen; j++) {\n const col = columns[j];\n const params = {\n row,\n col,\n rowIndex: i,\n colIndex: j,\n };\n const cellKey = getCellKey(row, rowKey.value, col.colKey, j);\n const state = skipSpansMap.value.get(cellKey) || {};\n const o = rowspanAndColspan(params) || {};\n if (o.rowspan || o.colspan || state.rowspan || state.colspan) {\n o.rowspan && (state.rowspan = o.rowspan);\n o.colspan && (state.colspan = o.colspan);\n skipSpansMap.value.set(cellKey, state);\n }\n onTrRowspanOrColspan?.(params, state);\n }\n }\n };\n\n watch(\n () => [data.value, columns.value, rowspanAndColspan],\n () => {\n updateSkipSpansMap(data.value, columns.value, rowspanAndColspan?.value);\n },\n { immediate: true },\n );\n\n return { skipSpansMap };\n}\n","import {\n defineComponent,\n PropType,\n SetupContext,\n h,\n computed,\n ref,\n reactive,\n toRefs,\n onUpdated,\n nextTick,\n onMounted,\n} from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { upperFirst } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { formatClassNames, formatRowAttributes, formatRowClassNames } from './utils';\nimport { getRowFixedStyles, getColumnFixedStyles } from './hooks/useFixed';\nimport useClassName from './hooks/useClassName';\nimport TEllipsis from './ellipsis';\nimport { BaseTableCellParams, TableRowData, RowspanColspan, TdPrimaryTableProps, TdBaseTableProps } from './type';\nimport baseTableProps from './base-table-props';\nimport useLazyLoad from './hooks/useLazyLoad';\nimport { RowAndColFixedPosition } from './interface';\nimport { getCellKey, SkipSpansValue } from './hooks/useRowspanAndColspan';\nimport { TooltipProps } from '../tooltip';\nimport { PaginationProps } from '..';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport { AttachNode, SlotReturnValue } from '../common';\n\nexport interface RenderTdExtra {\n rowAndColFixedPosition: RowAndColFixedPosition;\n columnLength: number;\n dataLength: number;\n cellSpans: RowspanColspan;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n}\n\nexport interface RenderEllipsisCellParams {\n cellNode: any;\n}\n\nexport type TrCommonProps = Pick;\n\nexport const TABLE_PROPS = [\n 'rowKey',\n 'rowClassName',\n 'columns',\n 'fixedRows',\n 'footData',\n 'rowAttributes',\n 'rowspanAndColspan',\n 'scroll',\n 'cellEmptyContent',\n 'pagination',\n 'attach',\n 'onCellClick',\n 'onRowClick',\n 'onRowDblclick',\n 'onRowMouseover',\n 'onRowMousedown',\n 'onRowMouseenter',\n 'onRowMouseleave',\n 'onRowMouseup',\n] as const;\n\nexport type TrPropsKeys = typeof TABLE_PROPS[number];\n\nexport interface TrProps extends TrCommonProps {\n rowKey: string;\n row: TableRowData;\n rowIndex: number;\n ellipsisOverlayClassName: string;\n classPrefix: string;\n dataLength: number;\n rowAndColFixedPosition?: RowAndColFixedPosition;\n skipSpansMap?: Map;\n tableElm?: any;\n // HTMLDivElement\n tableContentElm?: any;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n virtualConfig: VirtualScrollConfig;\n attach?: AttachNode;\n active?: boolean;\n isHover?: boolean;\n}\n\nexport const ROW_LISTENERS = [\n 'click',\n 'dblclick',\n 'mouseover',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mouseup',\n] as const;\n\nexport function renderCell(\n params: BaseTableCellParams,\n slots: SetupContext['slots'],\n extra?: {\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n pagination?: PaginationProps;\n },\n) {\n const { col, row, rowIndex } = params;\n // support serial number column\n if (col.colKey === 'serial-number') {\n const { current, pageSize, defaultCurrent, defaultPageSize } = extra?.pagination || {};\n const tCurrent = current || defaultCurrent;\n const tPageSize = pageSize || defaultPageSize;\n if (tPageSize && tCurrent) {\n return tPageSize * (tCurrent - 1) + rowIndex + 1;\n }\n return rowIndex + 1;\n }\n if (isFunction(col.cell)) {\n return col.cell(h, params);\n }\n if (slots[col.colKey]) {\n return slots[col.colKey](params);\n }\n if (isString(col.cell) && slots[col.cell]) {\n return slots[col.cell](params);\n }\n if (isFunction(col.render)) {\n return col.render(h, { ...params, type: 'cell' });\n }\n const r = get(row, col.colKey);\n // 0 和 false 属于正常可用之,不能使用兜底逻辑 cellEmptyContent\n if (![undefined, '', null].includes(r)) return r;\n // cellEmptyContent 作为空数据兜底显示,用户可自定义\n if (extra?.cellEmptyContent) {\n return isFunction(extra.cellEmptyContent) ? extra.cellEmptyContent(h, params) : extra.cellEmptyContent;\n }\n if (slots.cellEmptyContent) return slots.cellEmptyContent(params);\n if (slots['cell-empty-content']) return slots['cell-empty-content'](params);\n return r;\n}\n\n// 表格行组件\nexport default defineComponent({\n name: 'TR',\n\n props: {\n row: Object as PropType,\n rowIndex: Number,\n dataLength: Number,\n ellipsisOverlayClassName: String,\n classPrefix: String,\n rowAndColFixedPosition: Map as PropType,\n // 合并单元格,是否跳过渲染\n skipSpansMap: Map as PropType,\n virtualConfig: Object as PropType,\n active: Boolean,\n isHover: Boolean,\n ...pick(baseTableProps, TABLE_PROPS),\n // eslint-disable-next-line\n tableElm: {},\n // eslint-disable-next-line\n tableContentElm: {},\n },\n\n emits: ['row-mounted'],\n\n setup(props: TrProps, context: SetupContext) {\n const { tableContentElm, active, isHover } = toRefs(props);\n const trRef = ref(null);\n const {\n tdEllipsisClass,\n tableBaseClass,\n tableColFixedClasses,\n tableRowFixedClasses,\n tdAlignClasses,\n tableDraggableClasses,\n } = useClassName();\n const trStyles = computed(() =>\n getRowFixedStyles(\n get(props.row, props.rowKey || 'id'),\n props.rowIndex,\n props.dataLength,\n props.fixedRows,\n props.rowAndColFixedPosition,\n tableRowFixedClasses,\n props.virtualConfig.isVirtualScroll.value ? props.virtualConfig.translateY.value : 0,\n ),\n );\n\n const trAttributes = computed(\n () => formatRowAttributes(props.rowAttributes, { row: props.row, rowIndex: props.rowIndex, type: 'body' }) || {},\n );\n\n const classes = computed(() => {\n const customClasses = formatRowClassNames(\n props.rowClassName,\n { row: props.row, rowKey: props.rowKey, rowIndex: props.rowIndex, type: 'body' },\n props.rowKey || 'id',\n );\n return [\n trStyles.value?.classes,\n customClasses,\n {\n [`${props.classPrefix}-table__row--active`]: active.value,\n [`${props.classPrefix}-table__row--hover`]: isHover.value,\n },\n ].filter((v) => v);\n });\n\n const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n tableContentElm,\n trRef,\n reactive({ ...props.scroll, rowIndex: props.rowIndex }),\n );\n\n const getTrListeners = (row: TableRowData, rowIndex: number) => {\n const trListeners: { [eventName: string]: (e: MouseEvent) => void } = {};\n // add events to row\n ROW_LISTENERS.forEach((eventName) => {\n trListeners[`on${upperFirst(eventName)}`] = (e: MouseEvent) => {\n const p = { e, row, index: rowIndex };\n props[`onRow${upperFirst(eventName)}` as `onRow${Capitalize}`]?.(p);\n };\n });\n return trListeners;\n };\n\n // 触发 row 的更新行高事件,通知虚拟滚动相关逻辑\n const notifyVirtualSizeUpdate = () => {\n if (props.virtualConfig?.isVirtualScroll.value) {\n context.emit('row-mounted', {\n ref: trRef,\n data: props.row,\n });\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n notifyVirtualSizeUpdate();\n });\n });\n\n // 有可能因为 row-key 带来组件复用,这时候通过 update 进行更新\n onUpdated(() => {\n nextTick(() => {\n notifyVirtualSizeUpdate();\n });\n });\n\n function renderEllipsisCell(cellParams: BaseTableCellParams, params: RenderEllipsisCellParams) {\n const { cellNode } = params;\n const { col, colIndex } = cellParams;\n\n let content: SlotReturnValue;\n if (isFunction(col.ellipsis)) {\n content = col.ellipsis(h, cellParams);\n } else if (typeof col.ellipsis === 'object' && isFunction(col.ellipsis.content)) {\n content = col.ellipsis.content(h, cellParams);\n } else if (context.slots[`ellipsis-${col.colKey}`]) {\n // support ellipsis- to define one column cell ellipsis-content\n content = context.slots[`ellipsis-${col.colKey}`](cellParams);\n } else if (context.slots.ellipsis) {\n // support ellipsis slot to define all table cell ellipsis-content\n content = context.slots.ellipsis(cellParams);\n }\n\n let tooltipProps = {};\n if (typeof col.ellipsis === 'object') {\n tooltipProps = 'props' in col.ellipsis ? col.ellipsis.props : col.ellipsis || undefined;\n }\n const tableElement = props.tableElm as HTMLDivElement;\n let placement: TooltipProps['placement'] = colIndex === 0 ? 'top-left' : 'top';\n placement = colIndex === props.columns.length - 1 ? 'top-right' : placement;\n return (\n tableElement : undefined}\n tooltipContent={content && (() => content)}\n tooltipProps={tooltipProps}\n overlayClassName={props.ellipsisOverlayClassName}\n classPrefix={props.classPrefix}\n >\n {cellNode}\n \n );\n }\n\n function renderTd(params: BaseTableCellParams, extra: RenderTdExtra) {\n const { col, colIndex, rowIndex } = params;\n const { cellSpans, dataLength, rowAndColFixedPosition } = extra;\n const cellNode = renderCell(params, context.slots, {\n cellEmptyContent: extra.cellEmptyContent,\n pagination: props.pagination,\n });\n const tdStyles = getColumnFixedStyles(col, colIndex, rowAndColFixedPosition, tableColFixedClasses);\n const customClasses = formatClassNames(col.className, { ...params, type: 'td' });\n const classes = [\n tdStyles.classes,\n customClasses,\n {\n [tdEllipsisClass]: col.ellipsis,\n [tableBaseClass.tdLastRow]: rowIndex + cellSpans.rowspan === dataLength,\n [tableBaseClass.tdFirstCol]: colIndex === 0 && props.rowspanAndColspan,\n [tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 标记可拖拽列\n [tableDraggableClasses.handle]: col.colKey === 'drag',\n },\n ];\n const onClick = (e: MouseEvent) => {\n const p = { ...params, e };\n if (col.stopPropagation) {\n e.stopPropagation();\n }\n props.onCellClick?.(p);\n };\n const normalAttrs = isFunction(col.attrs) ? col.attrs({ ...params, type: 'td' }) : col.attrs;\n const attrs = { ...normalAttrs, ...cellSpans };\n return (\n
    \n );\n }\n\n return () => {\n const { columns, skipSpansMap, row, dataLength, rowAndColFixedPosition } = props;\n const columVNodeList = columns?.map((col, colIndex) => {\n const cellSpans: RowspanColspan = {};\n const params = {\n row,\n col,\n rowIndex: props.rowIndex,\n colIndex,\n };\n let spanState = null;\n if (props.skipSpansMap.size) {\n const cellKey = getCellKey(row, props.rowKey, col.colKey, colIndex);\n spanState = skipSpansMap.get(cellKey) || {};\n spanState?.rowspan > 1 && (cellSpans.rowspan = spanState.rowspan);\n spanState?.colspan > 1 && (cellSpans.colspan = spanState.colspan);\n if (spanState.skipped) return null;\n }\n return renderTd(params, {\n dataLength,\n rowAndColFixedPosition,\n columnLength: columns.length,\n cellSpans,\n cellEmptyContent: props.cellEmptyContent,\n });\n });\n\n return (\n \n {hasLazyLoadHolder.value\n ? [\n );\n };\n },\n});\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '../../utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport default function useLazyLoad(\n containerRef: Ref,\n childRef: Ref,\n params: UseLazyLoadParams,\n) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n if (!childRef?.value || !containerRef?.value) return;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import { defineComponent, computed, PropType, toRefs } from 'vue';\nimport { camelCase } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\nimport { useConfig } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useClassName from './hooks/useClassName';\nimport baseTableProps from './base-table-props';\nimport { TNodeReturnValue } from '../common';\nimport useRowspanAndColspan from './hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from './interface';\nimport { TdBaseTableProps } from './type';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport type { CamelCase } from '@tdesign/common-js/utils/types';\n\nexport const ROW_AND_TD_LISTENERS = [...ROW_LISTENERS, 'cell-click'];\nexport interface TableBodyProps extends BaseTableProps {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n showColumnShadow: { left: boolean; right: boolean };\n tableElm: any;\n tableWidth: number;\n isWidthOverflow: boolean;\n virtualConfig: VirtualScrollConfig;\n // HTMLDivElement\n tableContentElm: any;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n handleRowMounted: (rowData: any) => void;\n}\n\n// table 到 body 的相同属性\nexport const extendTableProps = [\n 'bordered',\n 'rowKey',\n 'rowClassName',\n 'rowAttributes',\n 'loading',\n 'empty',\n 'fixedRows',\n 'firstFullRow',\n 'lastFullRow',\n 'rowspanAndColspan',\n 'scroll',\n 'cellEmptyContent',\n 'pagination',\n 'attach',\n 'onCellClick',\n 'onPageChange',\n 'onRowClick',\n 'onRowDblclick',\n 'onRowMouseover',\n 'onRowMousedown',\n 'onRowMouseenter',\n 'onRowMouseleave',\n 'onRowMouseup',\n 'onScroll',\n 'onScrollX',\n 'onScrollY',\n];\n\nexport default defineComponent({\n name: 'TBody',\n\n props: {\n classPrefix: String,\n data: Array as PropType,\n columns: Array as PropType,\n ellipsisOverlayClassName: String,\n rowAndColFixedPosition: Map as PropType,\n showColumnShadow: Object as PropType,\n // eslint-disable-next-line\n tableElm: {},\n tableWidth: Number,\n isWidthOverflow: Boolean,\n virtualConfig: Object as PropType,\n // eslint-disable-next-line\n tableContentElm: {},\n handleRowMounted: Function as PropType,\n renderExpandedRow: Function as PropType,\n firstFullRow: [String, Function] as PropType,\n lastFullRow: [String, Function] as PropType,\n activeRow: [Array] as PropType>,\n hoverRow: [String, Number],\n ...pick(baseTableProps, extendTableProps),\n },\n\n // eslint-disable-next-line\n setup(props: TableBodyProps) {\n const renderTNode = useTNodeJSX();\n const { data, columns, rowKey, rowspanAndColspan } = toRefs(props);\n const { t, globalConfig } = useConfig('table', props.locale);\n const { tableFullRowClasses, tableBaseClass } = useClassName();\n const { skipSpansMap } = useRowspanAndColspan(data, columns, rowKey, rowspanAndColspan);\n\n const tbodyClasses = computed(() => [tableBaseClass.body]);\n\n return {\n t,\n globalConfig,\n renderTNode,\n tableFullRowClasses,\n tbodyClasses,\n tableBaseClass,\n skipSpansMap,\n };\n },\n\n render() {\n const renderEmpty = (columns: TableBodyProps['columns']) => {\n const tableWidth = this.bordered ? this.tableWidth - 2 : this.tableWidth;\n return (\n \n \n \n );\n };\n\n const getFullRow = (columnLength: number, type: 'first-full-row' | 'last-full-row') => {\n const tType = camelCase(type) as CamelCase;\n const fullRowNode = this.renderTNode(tType);\n if (['', null, undefined, false].includes(fullRowNode)) return null;\n const isFixedToLeft = this.isWidthOverflow && this.columns.find((col) => col.fixed === 'left');\n const classes = [this.tableFullRowClasses.base, this.tableFullRowClasses[tType]];\n const tableWidth = this.bordered ? this.tableWidth - 2 : this.tableWidth;\n /** innerFullRow 和 innerFullElement 同时存在,是为了保证 固定列时,当前行不随内容进行横向滚动 */\n return (\n \n \n \n );\n };\n\n const columnLength = this.columns.length;\n const dataLength = this.data?.length;\n const trNodeList: TNodeReturnValue[] = [];\n\n const properties = [\n 'classPrefix',\n 'ellipsisOverlayClassName',\n 'rowAndColFixedPosition',\n 'scroll',\n 'tableElm',\n 'tableContentElm',\n 'pagination',\n 'attach',\n ];\n\n const renderData = this.virtualConfig.isVirtualScroll.value ? this.virtualConfig.visibleData.value : this.data;\n\n renderData?.forEach((row, rowIndex) => {\n const rowKey = this.rowKey || 'id';\n const rowValue = get(row, rowKey);\n const trProps = {\n ...pick(this.$props, TABLE_PROPS),\n rowKey,\n row,\n columns: this.columns,\n rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n dataLength,\n skipSpansMap: this.skipSpansMap,\n virtualConfig: this.virtualConfig,\n active: this.activeRow?.includes(rowValue),\n isHover: this.hoverRow === rowValue,\n ...pick(this.$props, properties),\n // 遍历的同时,计算后面的节点,是否会因为合并单元格跳过渲染\n };\n if (this.onCellClick) {\n trProps.onCellClick = this.onCellClick;\n }\n\n const trNode = (\n \n );\n trNodeList.push(trNode);\n\n // 执行展开行渲染\n if (this.renderExpandedRow) {\n const p = {\n row,\n index: rowIndex,\n columns: this.columns,\n tableWidth: this.tableWidth,\n isWidthOverflow: this.isWidthOverflow,\n };\n const expandedContent = this.renderExpandedRow(p);\n expandedContent && trNodeList.push(expandedContent);\n }\n });\n\n const list = [getFullRow(columnLength, 'first-full-row'), ...trNodeList, getFullRow(columnLength, 'last-full-row')];\n\n const isEmpty = !this.data?.length && !this.loading && !this.firstFullRow && !this.lastFullRow;\n\n // 垫上隐藏的 tr 元素高度\n const translate = `translateY(${this.virtualConfig?.translateY.value}px)`;\n const posStyle = this.virtualConfig?.isVirtualScroll.value\n ? {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n }\n : undefined;\n\n return (\n \n {isEmpty ? renderEmpty(this.columns) : list}\n \n );\n },\n});\n","import { computed, toRefs } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport useClassName from './useClassName';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useStyle(props: TdBaseTableProps) {\n const { size, bordered, stripe, hover, verticalAlign, height, maxHeight, tableContentWidth } = toRefs(props);\n\n const { tableBaseClass, tableAlignClasses } = useClassName();\n const { sizeClassNames } = useCommonClassName();\n const { globalConfig } = useConfig('table', props.locale);\n const tableSize = computed(() => size.value ?? globalConfig.value.size);\n\n const tableClasses = computed(() => [\n tableBaseClass.table,\n {\n [sizeClassNames[tableSize.value]]: tableSize.value !== 'medium',\n [tableBaseClass.bordered]: bordered.value,\n [tableBaseClass.striped]: stripe.value,\n [tableBaseClass.hover]: hover.value,\n [tableBaseClass.loading]: props.loading,\n [tableBaseClass.affixedHeader]: props.headerAffixedTop,\n [tableBaseClass.rowspanAndColspan]: props.rowspanAndColspan,\n [tableAlignClasses[verticalAlign.value]]: verticalAlign.value !== 'middle',\n },\n ]);\n\n const tableContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n }));\n\n const tableElementStyles = computed(() => ({\n width: formatCSSUnit(tableContentWidth.value),\n }));\n\n return {\n tableClasses,\n sizeClassNames,\n tableElementStyles,\n tableContentStyles,\n };\n}\n","import { defineComponent, computed, SetupContext, PropType, ref, Ref, h, CSSProperties } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { getColumnFixedStyles } from './hooks/useFixed';\nimport useClassName from './hooks/useClassName';\nimport { BaseTableCol, TableRowData, TdBaseTableProps } from './type';\nimport { renderTitle } from './hooks/useTableHeader';\nimport TEllipsis from './ellipsis';\nimport { formatClassNames } from './utils';\nimport { RowAndColFixedPosition, BaseTableColumns, ThRowspanAndColspan } from './interface';\nimport { AttachNode } from '../common';\n\nexport interface TheadProps {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n // 是否固定表头\n isFixedHeader: boolean;\n maxHeight?: TdBaseTableProps['maxHeight'];\n height?: TdBaseTableProps['height'];\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n // 虚拟滚动单独渲染表头;表头吸顶单独渲染表头\n thWidthList?: { [colKey: string]: number };\n bordered?: boolean;\n isMultipleHeader?: boolean;\n thDraggable?: boolean;\n spansAndLeafNodes?: {\n rowspanAndColspanMap: ThRowspanAndColspan;\n leafColumns: BaseTableCol[];\n };\n thList: BaseTableCol[][];\n columnResizeParams: {\n resizeLineRef: Ref;\n resizeLineStyle: CSSProperties;\n onColumnMouseover: (e: MouseEvent, col: BaseTableCol) => void;\n onColumnMousedown: (e: MouseEvent, col: BaseTableCol, index: number) => void;\n };\n resizable?: Boolean;\n attach?: AttachNode;\n showColumnShadow?: { left: boolean; right: boolean };\n}\n\nexport default defineComponent({\n name: 'THead',\n\n props: {\n classPrefix: String,\n ellipsisOverlayClassName: String,\n isFixedHeader: Boolean,\n thDraggable: Boolean,\n maxHeight: [String, Number] as PropType,\n height: [String, Number] as PropType,\n rowAndColFixedPosition: Map as PropType,\n thWidthList: Object as PropType,\n bordered: Boolean,\n isMultipleHeader: Boolean,\n resizable: Boolean,\n attach: [String, Function] as PropType,\n spansAndLeafNodes: Object as PropType,\n thList: Array as PropType,\n columnResizeParams: Object as PropType,\n showColumnShadow: Object as PropType,\n },\n\n setup(props: TheadProps, { slots }: SetupContext) {\n const theadRef = ref();\n const classnames = useClassName();\n const { tableHeaderClasses, tableBaseClass } = classnames;\n const theadClasses = computed(() => [\n tableHeaderClasses.header,\n {\n [tableHeaderClasses.fixed]: Boolean(props.maxHeight || props.height),\n [tableBaseClass.bordered]: props.bordered && props.isMultipleHeader,\n [tableHeaderClasses.multipleHeader]: props.isMultipleHeader,\n },\n ]);\n\n // 单行表格合并\n const colspanSkipMap = computed(() => {\n const map: { [key: string]: boolean } = {};\n\n const processColumns = (columns: BaseTableColumns) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.colspan > 1) {\n for (let j = i + 1; j < i + item.colspan; j++) {\n if (columns[j]) {\n map[columns[j].colKey] = true;\n }\n }\n }\n // 如果有子列,递归处理\n if (item.children) {\n processColumns(item.children);\n }\n }\n };\n\n const list = props.thList[0];\n processColumns(list);\n\n return map;\n });\n\n const getTableNode = (thead: HTMLElement) => {\n let parent = thead;\n while (parent) {\n parent = parent.parentNode as HTMLElement;\n if (parent?.classList?.contains(`${props.classPrefix}-table`)) {\n break;\n }\n }\n return parent;\n };\n\n return {\n ...classnames,\n colspanSkipMap,\n theadClasses,\n theadRef,\n slots,\n getTableNode,\n };\n },\n\n render() {\n const renderThNodeList = (\n rowAndColFixedPosition: RowAndColFixedPosition,\n thWidthList: TheadProps['thWidthList'],\n ) => {\n // thBorderMap: rowspan 会影响 tr > th 是否为第一列表头,从而影响边框\n const thBorderMap = new Map();\n const thRowspanAndColspan = this.spansAndLeafNodes.rowspanAndColspanMap;\n return this.thList.map((row, rowIndex) => {\n const thRow = row.map((col: BaseTableColumns[0], index: number) => {\n // 因合并单行表头,跳过\n if (this.colspanSkipMap[col.colKey]) return null;\n const rowspanAndColspan = thRowspanAndColspan.get(col);\n if (index === 0 && rowspanAndColspan.rowspan > 1) {\n for (let j = rowIndex + 1; j < rowIndex + rowspanAndColspan.rowspan; j++) {\n thBorderMap.set(this.thList[j][0], true);\n }\n }\n const thStyles = getColumnFixedStyles(col, index, rowAndColFixedPosition, this.tableColFixedClasses);\n const colParams = {\n col,\n colIndex: index,\n row: {},\n rowIndex: -1,\n };\n const customClasses = formatClassNames(col.className, { ...colParams, type: 'th' });\n const thCustomClasses = formatClassNames(col.thClassName, { ...colParams, type: 'th' });\n const isLeftFixedActive = this.showColumnShadow.left && col.fixed === 'left';\n const isRightFixedActive = this.showColumnShadow.right && col.fixed === 'right';\n const canDragSort = this.thDraggable && !(isLeftFixedActive || isRightFixedActive);\n const thClasses = [\n thStyles.classes,\n customClasses,\n thCustomClasses,\n {\n // 受 rowspan 影响,部分 tr > th:first-child 需要补足左边框\n [this.tableHeaderClasses.thBordered]: thBorderMap.get(col),\n [`${this.classPrefix}-table__th-${col.colKey}`]: col.colKey,\n [this.tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 允许拖拽的列类名\n [this.tableDraggableClasses.dragSortTh]: canDragSort,\n },\n ];\n const withoutChildren = !col.children?.length;\n const width = withoutChildren && thWidthList?.[col.colKey] ? `${thWidthList?.[col.colKey]}px` : undefined;\n const styles = { ...(thStyles.style || {}), width };\n const innerTh = renderTitle(this.slots, col, index);\n const resizeColumnListener =\n this.resizable || !canDragSort\n ? {\n onMousedown: (e: MouseEvent) => {\n if (this.resizable) {\n this.columnResizeParams?.onColumnMousedown?.(e, col, index);\n }\n if (!canDragSort) {\n const timer = setTimeout(() => {\n const thList = this.theadRef.querySelectorAll('th');\n thList[index]?.removeAttribute('draggable');\n clearTimeout(timer);\n }, 10);\n }\n },\n onMousemove: (e: MouseEvent) => {\n this.resizable && this.columnResizeParams?.onColumnMouseover?.(e, col);\n },\n }\n : {};\n const content = isFunction(col.ellipsisTitle) ? col.ellipsisTitle(h, { col, colIndex: index }) : undefined;\n const isEllipsis = col.ellipsisTitle !== undefined ? Boolean(col.ellipsisTitle) : Boolean(col.ellipsis);\n const attrs = (isFunction(col.attrs) ? col.attrs({ ...colParams, type: 'th' }) : col.attrs) || {};\n if (col.colspan > 1) {\n attrs.colspan = col.colspan;\n }\n return (\n \n
    \n {isEllipsis ? (\n this.getTableNode(this.theadRef) : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof col.ellipsisTitle === 'object' ? col.ellipsisTitle : undefined}\n overlayClassName={this.ellipsisOverlayClassName}\n classPrefix={this.classPrefix}\n >\n {innerTh}\n \n ) : (\n innerTh\n )}\n
    \n \n );\n });\n return
    {thRow};\n });\n };\n\n return (\n \n {renderThNodeList(this.rowAndColFixedPosition, this.thWidthList)}\n \n );\n },\n});\n","import { SetupContext, h, defineComponent, PropType, toRefs } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { BaseTableCellParams, RowspanColspan, TableRowData, TdBaseTableProps } from './type';\nimport { formatRowAttributes, formatRowClassNames } from './utils';\nimport { getColumnFixedStyles } from './hooks/useFixed';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useRowspanAndColspan, { getCellKey } from './hooks/useRowspanAndColspan';\nimport { RowAndColFixedPosition } from './interface';\nimport useClassName from './hooks/useClassName';\nimport { Styles } from '../common';\n\nexport interface TFootProps {\n rowKey: string;\n // 是否固定表头\n isFixedHeader: boolean;\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n footData: TdBaseTableProps['footData'];\n columns: TdBaseTableProps['columns'];\n rowAttributes: TdBaseTableProps['rowAttributes'];\n rowClassName: TdBaseTableProps['rowClassName'];\n // 表尾吸底内容宽度\n thWidthList?: { [colKey: string]: number };\n footerSummary?: TdBaseTableProps['footerSummary'];\n rowspanAndColspanInFooter: TdBaseTableProps['rowspanAndColspanInFooter'];\n\n // 是否虚拟滚动\n virtualScroll?: boolean;\n}\n\nexport default defineComponent({\n name: 'TFoot',\n\n props: {\n rowKey: String,\n isFixedHeader: Boolean,\n rowAndColFixedPosition: Map as PropType,\n footData: Array as PropType,\n columns: Array as PropType,\n rowAttributes: [Array, Object, Function] as PropType,\n rowClassName: [Array, String, Object, Function] as PropType,\n thWidthList: [Object] as PropType,\n footerSummary: [String, Function] as PropType,\n rowspanAndColspanInFooter: Function as PropType,\n virtualScroll: Boolean,\n },\n\n // eslint-disable-next-line\n setup(props: TFootProps, context: SetupContext) {\n const renderTNode = useTNodeJSX();\n const classnames = useClassName();\n const { footData, columns, rowKey, rowspanAndColspanInFooter } = toRefs(props);\n const { skipSpansMap } = useRowspanAndColspan(footData, columns, rowKey, rowspanAndColspanInFooter);\n const renderTFootCell = (p: BaseTableCellParams) => {\n const { col, row } = p;\n if (isFunction(col.foot)) {\n return col.foot(h, p);\n }\n if (isString(col.foot) && context.slots[col.foot]) {\n return context.slots[col.foot](p) || col.foot;\n }\n return col.foot || get(row, col.colKey);\n };\n\n return {\n skipSpansMap,\n ...classnames,\n renderTFootCell,\n renderTNode,\n };\n },\n\n render() {\n if (!this.columns) return null;\n // 虚拟滚动情况下,不使用 sticky 定位,外部通过 affix 实现 footer\n const theadClasses = [this.tableFooterClasses.footer, { [this.tableFooterClasses.fixed]: this.isFixedHeader }];\n const footerDomList = this.footData?.map((row, rowIndex) => {\n const trAttributes = formatRowAttributes(this.rowAttributes, { row, rowIndex, type: 'foot' });\n // 自定义行类名\n const customClasses = formatRowClassNames(\n this.rowClassName,\n { row, rowIndex, type: 'foot' },\n this.rowKey || 'id',\n );\n return (\n \n {this.columns.map((col, colIndex) => {\n // 合并单元格过滤\n const cellSpans: RowspanColspan = {};\n let spanState = null;\n if (this.skipSpansMap.size) {\n const cellKey = getCellKey(row, this.rowKey, col.colKey, colIndex);\n spanState = this.skipSpansMap.get(cellKey) || {};\n spanState?.rowspan > 1 && (cellSpans.rowspan = spanState.rowspan);\n spanState?.colspan > 1 && (cellSpans.colspan = spanState.colspan);\n if (spanState.skipped) return null;\n }\n const tdStyles = getColumnFixedStyles(\n col,\n colIndex,\n this.rowAndColFixedPosition,\n this.tableColFixedClasses,\n );\n const style: Styles = { ...tdStyles.style };\n if (this.thWidthList?.[col.colKey]) {\n style.width = `${this.thWidthList[col.colKey]}px`;\n }\n return (\n \n );\n })}\n \n );\n });\n const footerSummary = this.renderTNode('footerSummary');\n // 都不存在,则不需要渲染 footer\n if (!footerSummary && (!this.footData || !this.footData.length)) return null;\n return (\n // 虚拟滚动下,不显示 footer,但预留元素,用于高度计算\n \n {footerSummary && (\n \n \n \n )}\n {footerDomList}\n \n );\n },\n});\n","import { ref, Ref, toRefs } from 'vue';\nimport { get } from 'lodash-es';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { BaseTableProps } from '../interface';\nimport { RowEventContext, TableRowData } from '../type';\nimport { on, off } from '../../utils/dom';\nimport {\n ARROW_DOWN_REG,\n ARROW_UP_REG,\n ESCAPE_REG,\n SPACE_REG,\n SHIFT_REG,\n CLEAR_REG,\n ALL_REG,\n} from '@tdesign/common-js/common';\n\n/**\n * 行高亮功能,支持键盘操作\n */\nexport function useRowHighlight(props: BaseTableProps, tableRef: Ref) {\n const { data, activeRowType, activeRowKeys, defaultActiveRowKeys, disableSpaceInactiveRow } = toRefs(props);\n const currentOperationRowIndex = ref(-1);\n const isShiftPressed = ref(false);\n const shiftSelectionState = ref(false);\n const areaSelectionStartIndex = ref(-1);\n\n const [tActiveRow, setTActiveRow] = useDefaultValue(\n activeRowKeys,\n defaultActiveRowKeys.value,\n props.onActiveChange,\n 'activeRowKeys',\n );\n\n const handleInactive = (ctx: RowEventContext) => {\n const { row, index } = ctx;\n const rowValue = get(row, props.rowKey);\n if (activeRowType.value === 'single') {\n const newActiveRowKeys = tActiveRow.value.length > 1 ? [rowValue] : [];\n setTActiveRow(newActiveRowKeys, {\n type: 'inactive',\n activeRowList: [{ row, rowIndex: index }],\n currentRowData: row,\n });\n } else if (activeRowType.value === 'multiple') {\n const newActiveRowKeys = tActiveRow.value.filter((t) => t !== rowValue);\n const activeRowList: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = 0, len = data.value.length; i < len; i++) {\n const row = data.value[i];\n if (newActiveRowKeys.includes(get(row, props.rowKey))) {\n activeRowList.push({ row, rowIndex: i });\n }\n }\n setTActiveRow(newActiveRowKeys, {\n type: 'inactive',\n activeRowList,\n currentRowData: row,\n });\n }\n };\n\n const handleActive = (ctx: RowEventContext) => {\n const { row } = ctx;\n const rowValue = get(row, props.rowKey);\n if (activeRowType.value === 'single') {\n setTActiveRow([rowValue], {\n activeRowList: [{ row, rowIndex: ctx.index }],\n currentRowData: row,\n type: 'active',\n });\n } else {\n const newActiveRowKeys = tActiveRow.value.concat(rowValue);\n const activeRowList: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = 0, len = data.value.length; i < len; i++) {\n const row = data.value[i];\n if (newActiveRowKeys.includes(get(row, props.rowKey))) {\n activeRowList.push({ row, rowIndex: i });\n }\n }\n setTActiveRow(newActiveRowKeys, {\n activeRowList,\n currentRowData: row,\n type: 'active',\n });\n }\n };\n\n const handleShiftActive = (ctx: RowEventContext) => {\n document.getSelection().removeAllRanges();\n const { row } = ctx;\n const currentIndex = currentOperationRowIndex.value;\n const startIndex = Math.min(areaSelectionStartIndex.value, currentIndex);\n const endIndex = Math.max(areaSelectionStartIndex.value, currentIndex);\n const newActiveRowData: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = startIndex; i <= endIndex; i++) {\n newActiveRowData.push({ row: data.value[i], rowIndex: i });\n }\n const newActiveRowKeys = newActiveRowData.map((item) => get(item.row, props.rowKey));\n setTActiveRow(newActiveRowKeys, {\n activeRowList: newActiveRowData,\n type: 'active',\n currentRowData: row,\n });\n };\n\n const getActiveRowList = () => {\n const list: { row: TableRowData; rowIndex: number }[] = [];\n for (let i = 0, len = data.value.length; i < len; i++) {\n const row = data.value[i];\n const rowValue = get(row, props.rowKey);\n if (tActiveRow.value.includes(rowValue)) {\n list.push({ row, rowIndex: i });\n }\n }\n return list;\n };\n\n const onHighlightRow = (ctx: RowEventContext, extra?: { action?: 'active' | 'inactive' }) => {\n if (!activeRowType.value) return;\n const { row, index } = ctx;\n const rowValue = get(row, props.rowKey);\n // 如果是连续选中\n if (isShiftPressed.value) {\n currentOperationRowIndex.value = index;\n handleShiftActive(ctx);\n shiftSelectionState.value = true;\n } else if (tActiveRow.value.includes(rowValue) && extra?.action !== 'active') {\n if (!disableSpaceInactiveRow.value) {\n // 如果已经高亮,则取消高亮\n handleInactive(ctx);\n currentOperationRowIndex.value = index;\n }\n } else {\n // 如果没有高亮,则设置高亮\n handleActive(ctx);\n currentOperationRowIndex.value = index;\n }\n };\n\n const clearActive = () => {\n setTActiveRow([], {\n activeRowList: [],\n currentRowData: undefined,\n type: 'inactive',\n });\n props.onActiveRowAction?.({ action: 'clear', activeRowList: [] });\n currentOperationRowIndex.value = -1;\n };\n\n const setAllActive = () => {\n const activeKeys = data.value.map((item) => get(item, props.rowKey));\n const activeRowList = data.value.map((row, rowIndex) => ({ row, rowIndex }));\n setTActiveRow(activeKeys, {\n activeRowList,\n currentRowData: undefined,\n type: 'active',\n });\n props.onActiveRowAction?.({ action: 'select-all', activeRowList });\n currentOperationRowIndex.value = -1;\n };\n\n const clearShiftAreaSelection = () => {\n shiftSelectionState.value = false;\n };\n\n const keyboardDownListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n\n if (ARROW_DOWN_REG.test(code)) {\n e.preventDefault();\n const index = Math.min(data.value.length - 1, currentOperationRowIndex.value + 1);\n if (activeRowType.value === 'single') {\n onHighlightRow({ row: data.value[index], index, e }, { action: 'active' });\n } else {\n currentOperationRowIndex.value = index;\n }\n } else if (ARROW_UP_REG.test(code)) {\n e.preventDefault();\n const index = Math.max(0, currentOperationRowIndex.value - 1);\n if (activeRowType.value === 'single') {\n onHighlightRow({ row: data.value[index], index, e }, { action: 'active' });\n } else {\n currentOperationRowIndex.value = index;\n }\n } else if (SPACE_REG.test(code)) {\n e.preventDefault();\n // keydown space to active or inactive\n const index = currentOperationRowIndex.value;\n // area selection can not cancel active with keydown space\n if (shiftSelectionState.value) {\n props.onActiveRowAction?.({\n action: 'shift-area-selection',\n activeRowList: getActiveRowList(),\n });\n } else if (!disableSpaceInactiveRow.value) {\n onHighlightRow({ row: data.value[index], index, e });\n } else {\n props.onActiveRowAction?.({\n action: 'space-one-selection',\n activeRowList: getActiveRowList(),\n });\n }\n } else if (SHIFT_REG.test(code)) {\n // shift 连续选中开始\n isShiftPressed.value = true;\n areaSelectionStartIndex.value = currentOperationRowIndex.value;\n } else if (ESCAPE_REG.test(code) || CLEAR_REG.test(code)) {\n // 清空\n clearActive();\n clearShiftAreaSelection();\n } else if (ALL_REG.test(code)) {\n // 全选\n setAllActive();\n }\n\n if (!SPACE_REG.test(code)) {\n clearShiftAreaSelection();\n }\n };\n\n const keyboardUpListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n if (SHIFT_REG.test(code)) {\n isShiftPressed.value = false;\n }\n };\n\n const addHighlightKeyboardListener = () => {\n on(tableRef.value, 'keydown', keyboardDownListener);\n on(tableRef.value, 'keyup', keyboardUpListener);\n };\n\n const removeHighlightKeyboardListener = () => {\n off(tableRef.value, 'keydown', keyboardDownListener);\n off(tableRef.value, 'keyup', keyboardUpListener);\n };\n\n return {\n tActiveRow,\n onHighlightRow,\n addHighlightKeyboardListener,\n removeHighlightKeyboardListener,\n };\n}\n\nexport default useRowHighlight;\n","import { computed, defineComponent, SetupContext, ref, nextTick, PropType, watch, onMounted, toRefs } from 'vue';\nimport { pick } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport props from './base-table-props';\nimport useTableHeader from './hooks/useTableHeader';\nimport useColumnResize from './hooks/useColumnResize';\nimport useFixed from './hooks/useFixed';\nimport usePagination from './hooks/usePagination';\nimport useVirtualScrollNew from '../hooks/useVirtualScrollNew';\nimport useAffix from './hooks/useAffix';\nimport Loading from '../loading';\nimport TBody, { extendTableProps } from './tbody';\nimport { BaseTableProps } from './interface';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useClassName from './hooks/useClassName';\nimport { useConfig } from '../hooks/useConfig';\nimport { Affix } from '../affix';\nimport { ROW_LISTENERS } from './tr';\nimport THead from './thead';\nimport TFoot from './tfoot';\nimport { getAffixProps } from './utils';\nimport { Styles, ComponentScrollToElementParams } from '../common';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { BaseTableInstanceFunctions } from './type';\nimport log from '@tdesign/common-js/log/index';\nimport { useRowHighlight } from './hooks/useRowHighlight';\nimport useHoverKeyboardEvent from './hooks/useHoverKeyboardEvent';\nimport useElementLazyRender from '../hooks/useElementLazyRender';\nimport { isFunction } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nexport const BASE_TABLE_EVENTS = ['page-change', 'cell-click', 'scroll', 'scrollX', 'scrollY'];\nexport const BASE_TABLE_ALL_EVENTS = ROW_LISTENERS.map((t) => `row-${t}`).concat(BASE_TABLE_EVENTS);\n\nexport interface TableListeners {\n [key: string]: Function;\n}\n\nexport default defineComponent({\n name: 'TBaseTable',\n\n props: {\n ...props,\n /**\n * 渲染展开行,非公开属性,请勿在业务中使用\n */\n renderExpandedRow: Function as PropType,\n onLeafColumnsChange: Function as PropType,\n thDraggable: Boolean,\n },\n\n emits: ['show-element-change'],\n\n setup(props: BaseTableProps, context: SetupContext) {\n const { lazyLoad } = toRefs(props);\n const renderTNode = useTNodeJSX();\n const tableRef = ref();\n const tableElmRef = ref();\n const tableBodyRef = ref>();\n const bottomContentRef = ref();\n const tableFootHeight = ref(0);\n const { classPrefix, virtualScrollClasses, tableLayoutClasses, tableBaseClass, tableColFixedClasses } =\n useClassName();\n // 表格基础样式类\n const { tableClasses, sizeClassNames, tableContentStyles, tableElementStyles } = useStyle(props);\n const { globalConfig } = useConfig('table', props.locale);\n const { isMultipleHeader, spansAndLeafNodes, thList } = useTableHeader(props);\n const finalColumns = computed(() => spansAndLeafNodes.value?.leafColumns || props.columns);\n const tableSize = computed(() => props.size ?? globalConfig.value.size);\n\n const { showElement } = useElementLazyRender(tableRef, lazyLoad);\n\n // 吸附相关ref 用来做视图resize后重新定位\n const paginationAffixRef = ref();\n const horizontalScrollAffixRef = ref();\n const headerTopAffixRef = ref();\n const footerBottomAffixRef = ref();\n\n // 固定表头和固定列逻辑\n const {\n scrollbarWidth,\n virtualScrollHeaderPos,\n tableWidth,\n tableElmWidth,\n tableContentRef,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n thWidthList,\n showColumnShadow,\n rowAndColFixedPosition,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n setUseFixedTableElmRef,\n updateColumnFixedShadow,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n } = useFixed(props, context, finalColumns, {\n paginationAffixRef,\n horizontalScrollAffixRef,\n headerTopAffixRef,\n footerBottomAffixRef,\n });\n\n // 1. 表头吸顶;2. 表尾吸底;3. 底部滚动条吸底;4. 分页器吸底\n const {\n affixHeaderRef,\n affixFooterRef,\n horizontalScrollbarRef,\n paginationRef,\n showAffixHeader,\n showAffixFooter,\n showAffixPagination,\n onHorizontalScroll,\n setTableContentRef,\n updateAffixHeaderOrFooter,\n } = useAffix(props);\n\n const { dataSource, innerPagination, isPaginateData, renderPagination } = usePagination(props, context);\n\n // 列宽拖拽逻辑\n const columnResizeParams = useColumnResize({\n isWidthOverflow,\n tableContentRef,\n showColumnShadow,\n getThWidthList,\n updateThWidthList,\n setTableElmWidth,\n updateTableAfterColumnResize,\n onColumnResizeChange: props.onColumnResizeChange,\n });\n const { resizeLineRef, resizeLineStyle, setEffectColMap } = columnResizeParams;\n\n const dynamicBaseTableClasses = computed(() => [\n tableClasses.value,\n {\n [tableBaseClass.headerFixed]: isFixedHeader.value,\n [tableBaseClass.columnFixed]: isFixedColumn.value,\n [tableBaseClass.widthOverflow]: isWidthOverflow.value,\n [tableBaseClass.multipleHeader]: isMultipleHeader.value,\n [tableColFixedClasses.leftShadow]: showColumnShadow.left,\n [tableColFixedClasses.rightShadow]: showColumnShadow.right,\n [tableBaseClass.columnResizableTable]: props.resizable,\n [`${classPrefix}-table__row--active-${props.activeRowType}`]: props.activeRowType,\n },\n ]);\n\n const tableElmClasses = computed(() => [[tableLayoutClasses[props.tableLayout]]]);\n\n const showRightDivider = computed(\n () =>\n props.bordered &&\n isFixedHeader.value &&\n ((isMultipleHeader.value && isWidthOverflow.value) || !isMultipleHeader.value),\n );\n\n const dividerBottom = computed(() => {\n if (!props.bordered) return 0;\n const bottomRect = bottomContentRef.value?.getBoundingClientRect();\n const paginationRect = paginationRef.value?.getBoundingClientRect();\n return (bottomRect?.height || 0) + (paginationRect?.height || 0);\n });\n\n // 行高亮\n const { tActiveRow, onHighlightRow, addHighlightKeyboardListener, removeHighlightKeyboardListener } =\n useRowHighlight(props, tableRef);\n\n const {\n hoverRow,\n needKeyboardRowHover,\n clearHoverRow,\n addRowHoverKeyboardListener,\n removeRowHoverKeyboardListener,\n tableRefTabIndex,\n } = useHoverKeyboardEvent(props, tableRef);\n\n watch(tableElmRef, () => {\n setUseFixedTableElmRef(tableElmRef.value);\n });\n\n watch(\n () => [props.data, dataSource],\n () => {\n setData(isPaginateData.value ? dataSource.value : props.data);\n },\n );\n\n watch(\n spansAndLeafNodes,\n () => {\n props.onLeafColumnsChange?.(spansAndLeafNodes.value.leafColumns);\n setEffectColMap(spansAndLeafNodes.value.leafColumns, null);\n },\n { immediate: true },\n );\n\n const onFixedChange = () => {\n nextTick(() => {\n onHorizontalScroll();\n updateAffixHeaderOrFooter();\n });\n };\n\n const syncThWidthList = throttle(() => {\n updateThWidthList(getThWidthList('calculate'));\n });\n\n // 虚拟滚动相关数据\n const virtualScrollParams = computed(() => ({\n data: props.data,\n // 传递 fixedRows 的配置\n scroll: { ...props.scroll, fixedRows: props.fixedRows },\n }));\n const virtualConfig = useVirtualScrollNew(tableContentRef, virtualScrollParams);\n\n let lastScrollY = -1;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n } else {\n lastScrollY = -1;\n updateColumnFixedShadow(target);\n }\n lastScrollY = top;\n emitScrollEvent(e);\n if (props.tableLayout === 'auto') {\n syncThWidthList();\n }\n };\n\n // used for top margin\n const getTFootHeight = () => {\n if (!tableElmRef.value) return;\n tableFootHeight.value = tableElmRef.value.querySelector('tfoot')?.getBoundingClientRect().height;\n };\n\n // 对外暴露方法,修改时需谨慎(expose)\n const scrollColumnIntoView: BaseTableInstanceFunctions['scrollColumnIntoView'] = (colKey: string) => {\n if (!tableContentRef.value) return;\n const thDom = tableContentRef.value.querySelector(`th[data-colkey=\"${colKey}\"]`);\n const fixedThDom = tableContentRef.value.querySelectorAll('th.t-table__cell--fixed-left');\n let totalWidth = 0;\n for (let i = 0, len = fixedThDom.length; i < len; i++) {\n totalWidth += fixedThDom[i].getBoundingClientRect().width;\n }\n const domRect = thDom.getBoundingClientRect();\n const contentRect = tableContentRef.value.getBoundingClientRect();\n const distance = domRect.left - contentRect.left - totalWidth;\n tableContentRef.value.scrollTo({ left: distance, behavior: 'smooth' });\n };\n\n watch(tableContentRef, () => {\n setTableContentRef(tableContentRef.value);\n // auto 布局下,初始化表头列宽,避免 affix 表头列宽不对齐\n if (props.tableLayout === 'auto') {\n syncThWidthList();\n }\n });\n\n // 应该有多种情况下需要更新 foot 高度\n // 原方案只监听 tableElmRef,但是可能有异步渲染的情况,footer 的渲染晚于 dom 引用的产生\n // 加入 timeout,避免渲染延迟导致的高度获取失败\n watch(\n () => [tableElmRef.value, props.footData, props.footerSummary, props.columns],\n () => {\n const timer = setTimeout(() => {\n getTFootHeight();\n clearTimeout(timer);\n }, 0);\n },\n );\n\n watch(tableRef, (tableRef) => {\n addTableResizeObserver(tableRef);\n });\n\n onMounted(() => {\n getTFootHeight();\n setTableContentRef(tableContentRef.value);\n addTableResizeObserver(tableRef.value);\n });\n\n const onTableFocus = () => {\n props.activeRowType && addHighlightKeyboardListener();\n needKeyboardRowHover.value && addRowHoverKeyboardListener();\n };\n\n const onTableBlur = () => {\n props.activeRowType && removeHighlightKeyboardListener();\n needKeyboardRowHover.value && removeRowHoverKeyboardListener();\n };\n\n const onInnerRowClick: BaseTableProps['onRowClick'] = (ctx) => {\n props.onRowClick?.(ctx);\n props.activeRowType && onHighlightRow(ctx);\n needKeyboardRowHover.value && clearHoverRow();\n };\n\n watch(\n [showElement],\n ([showElement]) => {\n context.emit('show-element-change', showElement);\n },\n { immediate: true },\n );\n\n const tableData = computed(() => (isPaginateData.value ? dataSource.value : props.data));\n\n const scrollToElement = (params: ComponentScrollToElementParams) => {\n let { index } = params;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Table', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = tableData.value?.findIndex((item) => get(item, props.rowKey) === params.key);\n if (index < 0) {\n log.error('Table', `${params.key} does not exist in data, check \\`rowKey\\` or \\`data\\` please.`);\n }\n }\n if (virtualConfig.isVirtualScroll.value) {\n virtualConfig.scrollToElement({ ...params, index: index + 1 });\n } else {\n // 执行普通的滚动\n // 获取 tbody\n const el = tableBodyRef.value?.$el as HTMLElement | undefined;\n const row = el?.children?.[index] as HTMLElement;\n if (row) {\n const { offsetTop } = row;\n const scrollTop = tableContentRef.value.scrollTop;\n const scrollHeight = offsetTop - scrollTop - (params.top ?? 0);\n // 实现偏移量的支持\n tableContentRef.value.scrollBy({ top: scrollHeight, behavior: params.behavior ?? 'auto' });\n }\n }\n };\n\n return {\n thList,\n classPrefix,\n innerPagination,\n globalConfig,\n tableFootHeight,\n virtualScrollHeaderPos,\n tableSize,\n tableWidth,\n tableElmWidth,\n tableRef,\n tableElmRef,\n sizeClassNames,\n tableBaseClass,\n spansAndLeafNodes,\n dynamicBaseTableClasses,\n tableContentStyles,\n tableElementStyles,\n dividerBottom,\n virtualScrollClasses,\n tableLayoutClasses,\n tableElmClasses,\n tableContentRef,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n rowAndColFixedPosition,\n showColumnShadow,\n thWidthList,\n isPaginateData,\n dataSource,\n affixHeaderRef,\n affixFooterRef,\n bottomContentRef,\n paginationRef,\n showAffixHeader,\n showAffixFooter,\n scrollbarWidth,\n isMultipleHeader,\n showRightDivider,\n resizeLineRef,\n resizeLineStyle,\n columnResizeParams,\n horizontalScrollbarRef,\n tableBodyRef,\n virtualConfig,\n showAffixPagination,\n tActiveRow,\n hoverRow,\n showElement,\n scrollToElement,\n renderPagination,\n renderTNode,\n onFixedChange,\n onHorizontalScroll,\n updateAffixHeaderOrFooter,\n onInnerVirtualScroll,\n refreshTable,\n scrollColumnIntoView,\n onTableFocus,\n onTableBlur,\n onInnerRowClick,\n paginationAffixRef,\n horizontalScrollAffixRef,\n headerTopAffixRef,\n footerBottomAffixRef,\n tableRefTabIndex,\n };\n },\n\n render() {\n if (!this.showElement) {\n return
    ;\n }\n\n const { rowAndColFixedPosition, tableLayout } = this;\n const data = this.isPaginateData ? this.dataSource : this.data;\n const columns = this.spansAndLeafNodes?.leafColumns || this.columns;\n\n const columnResizable = this.allowResizeColumnWidth ?? this.resizable;\n if (columnResizable && tableLayout === 'auto') {\n log.warn(\n 'Table',\n 'table-layout can not be `auto`, cause you are using column resizable, set `table-layout: fixed` please.',\n );\n }\n\n const defaultColWidth = tableLayout === 'fixed' && this.isWidthOverflow ? '100px' : undefined;\n\n const renderColGroup = (isAffixHeader = true) => (\n
    \n {columns.map((col) => {\n const style: Styles = {\n width:\n formatCSSUnit(\n (isAffixHeader || columnResizable ? this.thWidthList[col.colKey] : undefined) || col.width,\n ) || defaultColWidth,\n };\n if (col.minWidth) {\n style.minWidth = formatCSSUnit(col.minWidth);\n }\n // 没有设置任何宽度的场景下,需要保留表格正常显示的最小宽度,否则会出现因宽度过小的抖动问题\n if (!style.width && !col.minWidth && this.tableLayout === 'fixed') {\n style.minWidth = '80px';\n }\n return ;\n })}\n \n );\n\n const renderAffixedHeader = () => {\n if (this.showHeader === false) return null;\n return (\n !!(this.virtualConfig.isVirtualScroll.value || this.headerAffixedTop) &&\n (this.headerAffixedTop ? (\n \n {affixHeaderWithWrap}\n \n ) : (\n this.isFixedHeader && affixHeaderWithWrap\n ))\n );\n };\n\n const renderAffixedHorizontalScrollbar = () => (\n \n \n
    \n \n \n );\n\n const headProps = {\n isFixedHeader: this.isFixedHeader,\n rowAndColFixedPosition: this.rowAndColFixedPosition,\n isMultipleHeader: this.isMultipleHeader,\n bordered: this.bordered,\n maxHeight: this.maxHeight,\n height: this.height,\n spansAndLeafNodes: this.spansAndLeafNodes,\n thList: this.thList,\n thWidthList: this.thWidthList,\n resizable: this.resizable,\n columnResizeParams: this.columnResizeParams,\n classPrefix: this.classPrefix,\n ellipsisOverlayClassName: this.tableSize !== 'medium' ? this.sizeClassNames[this.tableSize] : '',\n attach: this.attach,\n showColumnShadow: this.showColumnShadow,\n thDraggable: this.thDraggable,\n };\n\n /**\n * Affixed Header\n */\n // IE 浏览器需要遮挡 header 吸顶滚动条,要减去 getBoundingClientRect.height 的滚动条高度 4 像素\n const IEHeaderWrap = getIEVersion() <= 11 ? 4 : 0;\n const barWidth = this.isWidthOverflow ? this.scrollbarWidth : 0;\n const affixHeaderHeight = ref((this.affixHeaderRef?.getBoundingClientRect().height || 0) - IEHeaderWrap);\n // 等待表头渲染完成后再更新高度,有可能列变动带来多级表头的高度变化,错误高度会导致滚动条显示\n const timer = setTimeout(() => {\n affixHeaderHeight.value = (this.affixHeaderRef?.getBoundingClientRect().height || 0) - IEHeaderWrap;\n clearTimeout(timer);\n }, 0);\n const affixHeaderWrapHeight = computed(() => affixHeaderHeight.value - barWidth);\n // 两类场景:1. 虚拟滚动,永久显示表头,直到表头消失在可视区域; 2. 表头吸顶,根据滚动情况判断是否显示吸顶表头\n const headerOpacity = props.headerAffixedTop ? Number(this.showAffixHeader) : 1;\n const affixHeaderWrapHeightStyle = computed(() => {\n return {\n width: `${this.tableWidth}px`,\n height: `${affixHeaderWrapHeight.value}px`,\n opacity: headerOpacity,\n };\n });\n // 多级表头左边线缺失\n const affixedLeftBorder = this.bordered ? 1 : 0;\n const affixedHeader = Boolean(\n (this.headerAffixedTop || this.virtualConfig.isVirtualScroll.value) && this.tableWidth,\n ) && (\n \n
    \n {col.ellipsis ? renderEllipsisCell(params, { cellNode }) : cellNode}\n ]\n : columVNodeList}\n
    \n \n {this.renderTNode('empty') || this.t(this.globalConfig.empty)}\n \n
    \n \n
    {fullRowNode}
    \n \n
    \n {this.renderTFootCell({\n row,\n rowIndex,\n col,\n colIndex,\n })}\n
    \n
    {footerSummary}
    \n
    \n {renderColGroup(true)}\n \n
    \n \n );\n\n // 添加这一层,是为了隐藏表头的横向滚动条。如果以后不需要照顾 IE 10 以下的项目,则可直接移除这一层\n // 彼时,可更为使用 CSS 样式中的 .hideScrollbar()\n const affixHeaderWithWrap = (\n
    \n {affixedHeader}\n
    \n );\n\n /**\n * Affixed Footer\n */\n let marginScrollbarWidth = this.isWidthOverflow ? this.scrollbarWidth : 0;\n if (this.bordered) {\n marginScrollbarWidth += 1;\n }\n // Hack: Affix 组件,marginTop 临时使用 负 margin 定位位置\n const showFooter = Boolean(this.virtualConfig.isVirtualScroll.value || this.footerAffixedBottom);\n const hasFooter = this.footData?.length || this.footerSummary || this.$slots['footerSummary'];\n const affixedFooter = Boolean(showFooter && hasFooter && this.tableWidth) && (\n \n \n \n {/* 此处和 Vue2 不同,Vue3 里面必须每一处单独写 */}\n {renderColGroup(true)}\n \n
    \n \n \n );\n\n // 通过 translate 撑开虚拟滚动的高度,应该是内容高度加上表头和表尾的高度\n const translate = `translate(0, ${\n this.virtualConfig.scrollHeight.value + (this.tableFootHeight ?? 0) + (affixHeaderHeight.value ?? 0)\n }px)`;\n const virtualStyle = {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n };\n const tableBodyProps = {\n classPrefix: this.classPrefix,\n ellipsisOverlayClassName: this.tableSize !== 'medium' ? this.sizeClassNames[this.tableSize] : '',\n rowAndColFixedPosition,\n showColumnShadow: this.showColumnShadow,\n data: data,\n virtualConfig: this.virtualConfig,\n columns: this.spansAndLeafNodes.leafColumns,\n tableElm: this.tableRef,\n tableWidth: this.tableWidth,\n isWidthOverflow: this.isWidthOverflow,\n scroll: this.scroll,\n cellEmptyContent: this.cellEmptyContent,\n tableContentElm: this.tableContentRef,\n handleRowMounted: this.virtualConfig.handleRowMounted,\n renderExpandedRow: this.renderExpandedRow,\n ...pick(this.$props, extendTableProps),\n // 内部使用分页信息必须取 innerPagination\n pagination: this.innerPagination,\n attach: this.attach,\n hoverRow: this.hoverRow,\n activeRow: this.tActiveRow,\n onRowClick: this.onInnerRowClick,\n };\n const tableContent = (\n \n {this.virtualConfig.isVirtualScroll.value && (\n
    \n )}\n\n \n {renderColGroup(false)}\n {this.showHeader && (\n \n )}\n \n \n \n
    \n );\n\n const getCustomLoadingText = isFunction(this.loading) ? this.loading : this.$slots.loading;\n const loadingContent = this.loading !== undefined && (\n this.tableRef : undefined}\n showOverlay\n size=\"small\"\n {...(this.loadingProps as BaseTableProps['loadingProps'])}\n >\n );\n\n const topContent = this.renderTNode('topContent');\n const bottomContent = this.renderTNode('bottomContent');\n const pagination = (\n \n {this.renderPagination()}\n \n );\n\n const bottom = !!bottomContent && (\n
    \n {bottomContent}\n
    \n );\n\n return (\n \n {!!topContent &&
    {topContent}
    }\n\n {renderAffixedHeader()}\n\n {tableContent}\n\n {affixedFooter}\n\n {loadingContent}\n\n {bottom}\n\n {/* 右侧滚动条分隔线 */}\n {this.showRightDivider && (\n \n )}\n\n {/* 吸底的滚动条 */}\n {this.horizontalScrollAffixedBottom && renderAffixedHorizontalScrollbar()}\n\n {/* 吸底的分页器 */}\n {this.paginationAffixedBottom ? (\n \n {pagination}\n \n ) : (\n pagination\n )}\n\n {/* 调整列宽时的指示线。由于层级需要比较高,因而放在根节点,避免被吸顶表头覆盖。非必要情况,请勿调整辅助线位置 */}\n
    \n \n );\n },\n});\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useElementLazyRender(labelRef: Ref, lazyLoad: Ref) {\n const ioObserver = ref();\n const showElement = ref(true);\n\n const handleLazyLoad = () => {\n if (!lazyLoad.value || !labelRef.value || ioObserver.value) return;\n showElement.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showElement.value = true;\n },\n 10,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n lazyLoad.value && watch([lazyLoad, labelRef], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value?.unobserve?.(labelRef.value);\n });\n\n return {\n showElement,\n };\n}\n\nexport default useElementLazyRender;\n","import { toRefs, Ref, ref, computed } from 'vue';\nimport { get } from 'lodash-es';\nimport { BaseTableProps } from '../interface';\nimport { on, off } from '../../utils/dom';\nimport {\n ALL_REG,\n ARROW_DOWN_REG,\n ARROW_UP_REG,\n CLEAR_REG,\n ESCAPE_REG,\n SPACE_REG,\n ARROW_LEFT_REG,\n ARROW_RIGHT_REG,\n} from '@tdesign/common-js/common';\nimport { RowEventContext, TableRowData } from '../type';\n\n/**\n * 需要进行表格行操作时,则需要键盘操作的悬浮效果来表达当前的哪一行\n * 如:高亮多行、行选中、行展开等功能\n */\nexport function useHoverKeyboardEvent(props: BaseTableProps, tableRef: Ref) {\n const { hover, data, activeRowType, keyboardRowHover, disableSpaceInactiveRow } = toRefs(props);\n const hoverRow = ref();\n const currentHoverRowIndex = ref(-1);\n const tableRefTabIndex = ref(0);\n\n // 单行高亮场景,不需要键盘悬浮效果\n const needKeyboardRowHover = computed(() => {\n if (activeRowType.value === 'single') return false;\n if (activeRowType.value === 'multiple') return true;\n return hover.value || keyboardRowHover.value;\n });\n\n const onHoverRow = (ctx: RowEventContext, extra?: { action?: 'hover' }) => {\n const rowValue = get(ctx.row, props.rowKey);\n if (hoverRow.value === rowValue && extra?.action !== 'hover') {\n if (!disableSpaceInactiveRow.value) {\n hoverRow.value = undefined;\n }\n } else {\n hoverRow.value = rowValue;\n }\n currentHoverRowIndex.value = ctx.index;\n };\n\n const clearHoverRow = () => {\n hoverRow.value = undefined;\n currentHoverRowIndex.value = -1;\n };\n\n const keyboardDownListener = (e: KeyboardEvent) => {\n if (!needKeyboardRowHover.value) return;\n const code = e.code || e.key?.trim();\n if (ARROW_DOWN_REG.test(code)) {\n e.preventDefault();\n const index = Math.min(data.value.length - 1, currentHoverRowIndex.value + 1);\n onHoverRow({ row: data.value[index], index, e }, { action: 'hover' });\n } else if (ARROW_UP_REG.test(code)) {\n e.preventDefault();\n const index = Math.max(0, currentHoverRowIndex.value - 1);\n onHoverRow({ row: data.value[index], index, e }, { action: 'hover' });\n } else if (SPACE_REG.test(code) && props.activeRowType !== 'multiple') {\n const index = currentHoverRowIndex.value;\n onHoverRow({ row: data.value[index], index, e });\n\n if (!props.activeRowType) {\n props.onActiveRowAction?.({\n action: 'space-one-selection',\n activeRowList: [{ row: data.value[index], rowIndex: index }],\n });\n }\n } else if (ESCAPE_REG.test(code) && !props.activeRowType) {\n hoverRow.value = undefined;\n props.onActiveRowAction?.({ action: 'clear', activeRowList: [] });\n } else if (ALL_REG.test(code) && !props.activeRowType) {\n props.onActiveRowAction?.({ action: 'select-all', activeRowList: [] });\n // fix: https://github.com/Tencent/tdesign-vue-next/issues/4990 ↓\n } else if (CLEAR_REG.test(code) && !props.activeRowType && !e.ctrlKey && !e.metaKey) {\n props.onActiveRowAction?.({ action: 'clear', activeRowList: [] });\n }\n\n // 用于支持键盘默认的左右滚动,左右滚动时重置为undefined,其他情况下为0,支持键盘操作\n if (ARROW_LEFT_REG.test(code) || ARROW_RIGHT_REG.test(code)) {\n tableRefTabIndex.value = undefined;\n } else {\n tableRefTabIndex.value = 0;\n }\n };\n\n const addRowHoverKeyboardListener = () => {\n on(tableRef.value, 'keydown', keyboardDownListener);\n };\n\n const removeRowHoverKeyboardListener = () => {\n off(tableRef.value, 'keydown', keyboardDownListener);\n };\n\n return {\n hoverRow,\n needKeyboardRowHover,\n clearHoverRow,\n addRowHoverKeyboardListener,\n removeRowHoverKeyboardListener,\n tableRefTabIndex,\n };\n}\n\nexport default useHoverKeyboardEvent;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPrimaryTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 异步加载状态。值为 `loading` 显示默认文字 “正在加载中,请稍后”,值为 `loading-more` 显示“点击加载更多”,值为其他,表示完全自定义异步加载区域内容 */\n asyncLoading: {\n type: [String, Function] as PropType,\n },\n /** 自定义显示列控制器,值为空不会显示。具体属性请看下方 `TableColumnController` 文档 */\n columnController: {\n type: Object as PropType,\n },\n /** 是否显示列配置弹框控制器,只要该属性值不为 `undefined`,弹框的显示/隐藏完全由该属性控制 */\n columnControllerVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示列配置弹框控制器,只要该属性值不为 `undefined`,弹框的显示/隐藏完全由该属性控制,非受控属性 */\n defaultColumnControllerVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 列配置,泛型 T 指表格数据类型 */\n columns: {\n type: Array as PropType,\n default: (): TdPrimaryTableProps['columns'] => [],\n },\n /** 列配置功能中,当前显示的列 */\n displayColumns: {\n type: Array as PropType,\n default: undefined as TdPrimaryTableProps['displayColumns'],\n },\n /** 列配置功能中,当前显示的列,非受控属性 */\n defaultDisplayColumns: {\n type: Array as PropType,\n },\n /** 拖拽排序方式,值为 `row` 表示行拖拽排序,这种方式无法进行文本复制,慎用。值为`row-handler` 表示通过拖拽手柄进行行拖拽排序。值为 `col` 表示列顺序拖拽。值为 `row-handler-col` 表示同时支持行拖拽和列拖拽。⚠️`drag-col` 已废弃,请勿使用。 */\n dragSort: {\n type: String as PropType,\n validator(val: TdPrimaryTableProps['dragSort']): boolean {\n if (!val) return true;\n return ['row', 'row-handler', 'col', 'row-handler-col', 'drag-col'].includes(val);\n },\n },\n /** 拖拽排序扩展参数,具体参数见 [Sortable](https://github.com/SortableJS/Sortable) */\n dragSortOptions: {\n type: Object as PropType,\n },\n /** 单元格是否允许编辑。返回值为 `true` 则表示可编辑;返回值为 `false` 则表示不可编辑,只读状态 */\n editableCellState: {\n type: Function as PropType,\n },\n /** 处于编辑状态的行 */\n editableRowKeys: {\n type: Array as PropType,\n },\n /** 用于控制是否显示「展开图标列」,值为 `false` 则不会显示。可以精确到某一行是否显示,还可以自定义展开图标内容。`expandedRow` 存在时,该参数有效。支持全局配置 `GlobalConfigProvider` */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: true as TdPrimaryTableProps['expandIcon'],\n },\n /** 是否允许点击行展开 */\n expandOnRowClick: Boolean,\n /** 展开行内容,泛型 T 指表格数据类型 */\n expandedRow: {\n type: [String, Function] as PropType,\n },\n /** 展开行 */\n expandedRowKeys: {\n type: Array as PropType,\n default: undefined as TdPrimaryTableProps['expandedRowKeys'],\n },\n /** 展开行,非受控属性 */\n defaultExpandedRowKeys: {\n type: Array as PropType,\n default: (): TdPrimaryTableProps['defaultExpandedRowKeys'] => [],\n },\n /** 自定义过滤图标,支持全局配置 `GlobalConfigProvider` */\n filterIcon: {\n type: Function as PropType,\n },\n /** 自定义过滤状态行及清空筛选等 */\n filterRow: {\n type: [String, Function] as PropType,\n },\n /** 过滤数据的值 */\n filterValue: {\n type: Object as PropType,\n default: undefined as TdPrimaryTableProps['filterValue'],\n },\n /** 过滤数据的值,非受控属性 */\n defaultFilterValue: {\n type: Object as PropType,\n },\n /** 隐藏排序文本提示,支持全局配置 `GlobalConfigProvider`,默认全局配置值为 `false` */\n hideSortTips: Boolean,\n /** 半选状态行。选中行请更为使用 `selectedRowKeys` 控制 */\n indeterminateSelectedRowKeys: {\n type: Array as PropType,\n },\n /** 是否支持多列排序 */\n multipleSort: Boolean,\n /** 行选中功能,是否在分页时保留上一页选中结果不清空,本地数据分页场景下,会全选所有页数据。值为 `false` 则表示全部选中操作停留在当前页,不跨分页;本地数据分页场景下,全选仅选中当前页 */\n reserveSelectedRowOnPaginate: {\n type: Boolean,\n default: true,\n },\n /** 行选中单选场景,是否允许取消选中 */\n rowSelectionAllowUncheck: Boolean,\n /** 行选中类型,单选或多选。效果和 `columns` 中配置的 `{ colKey: 'row-select', type: 'single' }` 一样 */\n rowSelectionType: {\n type: String as PropType,\n validator(val: TdPrimaryTableProps['rowSelectionType']): boolean {\n if (!val) return true;\n return ['single', 'multiple'].includes(val);\n },\n },\n /** 是否在点击整行时选中 */\n selectOnRowClick: Boolean,\n /** 选中行。半选状态行请更为使用 `indeterminateSelectedRowKeys` 控制 */\n selectedRowKeys: {\n type: Array as PropType,\n default: undefined as TdPrimaryTableProps['selectedRowKeys'],\n },\n /** 选中行。半选状态行请更为使用 `indeterminateSelectedRowKeys` 控制,非受控属性 */\n defaultSelectedRowKeys: {\n type: Array as PropType,\n default: (): TdPrimaryTableProps['defaultSelectedRowKeys'] => [],\n },\n /** 当前排序列是否显示背景色 */\n showSortColumnBgColor: Boolean,\n /** 排序控制。sortBy 排序字段;descending 是否进行降序排列。值为数组时,表示正进行多字段排序 */\n sort: {\n type: [Object, Array] as PropType,\n default: undefined as TdPrimaryTableProps['sort'],\n },\n /** 排序控制。sortBy 排序字段;descending 是否进行降序排列。值为数组时,表示正进行多字段排序,非受控属性 */\n defaultSort: {\n type: [Object, Array] as PropType,\n },\n /** 自定义排序图标,支持全局配置 `GlobalConfigProvider` */\n sortIcon: {\n type: Function as PropType,\n },\n /** 已废弃。允许表格行拖拽时排序。请更为使用 `dragSort=\\\"row\\\"` */\n sortOnRowDraggable: Boolean,\n /** 异步加载区域被点击时触发 */\n onAsyncLoadingClick: Function as PropType,\n /** 单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 分页、排序、过滤等内容变化时触发,泛型 T 指表格数据类型,`currentData` 表示变化后的数据 */\n onChange: Function as PropType,\n /** 确认操作之前列配置发生变化时触发。`context.columns` 表示已选中的列;`context.currentColumn` 表示本次变化操作的列,值不存在表示全选操作;`context.type` 表示当前操作属于选中列或是取消列 */\n onColumnChange: Function as PropType,\n /** 列配置弹窗显示或隐藏变化时触发 */\n onColumnControllerVisibleChange: Function as PropType,\n /** 本地数据排序导致 `data` 变化时触发,第一个参数指变化后的数据,第二个参数 `context.trigger` 表示触发本次变化的来源 */\n onDataChange: Function as PropType,\n /** 确认列配置时触发 */\n onDisplayColumnsChange: Function as PropType,\n /** 拖拽排序时触发,`data` 表示排序前的数据,`newData` 表示拖拽排序结束后的新数据,`sort=row` 表示行拖拽事件触发,`sort=col` 表示列拖拽事件触发 */\n onDragSort: Function as PropType,\n /** 展开行发生变化时触发,泛型 T 指表格数据类型 */\n onExpandChange: Function as PropType,\n /** 过滤参数发生变化时触发,泛型 T 指表格数据类型 */\n onFilterChange: Function as PropType,\n /** 行编辑时触发 */\n onRowEdit: Function as PropType,\n /** 行编辑校验完成后触发,即组件实例方法 `validateRowData` 执行结束后触发。`result` 表示校验结果,`trigger=self` 表示编辑组件内部触发的校验,`trigger='parent'` 表示表格父组件触发的校验 */\n onRowValidate: Function as PropType,\n /** 选中行发生变化时触发,泛型 T 指表格数据类型。两个参数,第一个参数为选中行 keys,第二个参数为更多参数,具体如下:`type = uncheck` 表示当前行操作为「取消行选中」;`type = check` 表示当前行操作为「行选中」; `currentRowKey` 表示当前操作行的 rowKey 值; `currentRowData` 表示当前操作行的行数据 */\n onSelectChange: Function as PropType,\n /** 排序发生变化时触发。其中 sortBy 表示当前排序的字段,sortType 表示排序的方式,currentDataSource 表示 sorter 排序后的结果,col 表示列配置。sort 值类型为数组时表示多字段排序 */\n onSortChange: Function as PropType,\n /** 可编辑行表格,全部数据校验完成后触发。即组件实例方法 `validateTableData` 执行结束后触发 */\n onValidate: Function as PropType,\n};\n","import { computed, defineComponent, PropType, toRefs } from 'vue';\nimport Checkbox, { CheckboxGroup, CheckboxGroupChangeContext, CheckboxGroupProps, CheckboxProps } from '../checkbox';\nimport { intersection } from 'lodash-es';\nimport { usePrefixClass } from '../hooks';\n\nexport type ColumnCheckboxGroupProps = Pick & {\n checkboxProps: CheckboxGroupProps;\n label?: string;\n uniqueKey?: string;\n};\n\nexport default defineComponent({\n name: 'ColumnCheckboxGroup',\n\n props: {\n checkboxProps: Object as PropType,\n options: {\n type: Array as PropType,\n default: () => [] as ColumnCheckboxGroupProps['options'],\n },\n label: String,\n uniqueKey: String,\n value: Array as PropType,\n onChange: Function as PropType,\n },\n\n setup(props: ColumnCheckboxGroupProps) {\n const { checkboxProps, value, options } = toRefs(props);\n const classPrefix = usePrefixClass();\n\n const allCheckedColumnKeys = computed(() => {\n const allCheckedKeys: CheckboxGroupProps['value'] = [];\n options.value.forEach((option) => {\n if (typeof option === 'object') {\n if (option.disabled) return;\n if (option.value) {\n allCheckedKeys.push(option.value);\n } else if (typeof option.label === 'string') {\n allCheckedKeys.push(option.label);\n }\n } else {\n allCheckedKeys.push(option);\n }\n });\n return allCheckedKeys;\n });\n\n const intersectionKeys = computed(() => intersection(allCheckedColumnKeys.value, value.value));\n\n const isCheckedAll = computed(() => {\n const len = intersectionKeys.value.length;\n return Boolean(len && allCheckedColumnKeys.value.length === len);\n });\n\n const isIndeterminate = computed(() => {\n const len = intersectionKeys.value.length;\n return Boolean(len < allCheckedColumnKeys.value.length && len);\n });\n\n const onCheckAllColumnsChange: CheckboxProps['onChange'] = (checkAll, ctx) => {\n const changeParams: CheckboxGroupChangeContext = {\n e: ctx.e,\n type: 'check',\n current: undefined,\n option: undefined,\n };\n if (checkAll) {\n const newKeys = [...new Set(value.value.concat(allCheckedColumnKeys.value))];\n props.onChange?.(newKeys, changeParams);\n } else {\n const newKeys = value.value.filter((val) => !allCheckedColumnKeys.value.includes(val));\n props.onChange?.(newKeys, { ...changeParams, type: 'uncheck' });\n }\n };\n\n const handleCheckChange: CheckboxGroupProps['onChange'] = (val, ctx) => {\n props.onChange?.(val, ctx);\n };\n\n const classes = computed(() => [\n `${classPrefix.value}-table__column-controller-item`,\n {\n [`${classPrefix.value}-table__${props.uniqueKey}`]: props.uniqueKey,\n },\n ]);\n\n return () => {\n return (\n
    \n
    \n \n {props.label}\n \n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","/**\n * 自定义显示列控制器,即列配置\n */\nimport { computed, ref, SetupContext, toRefs, watch, h } from 'vue';\nimport { SettingIcon as TdSettingIcon } from 'tdesign-icons-vue-next';\n// import { intersection } from 'lodash-es';\nimport { CheckboxGroupValue, CheckboxOptionObj, CheckboxGroupChangeContext } from '../../checkbox';\nimport { DialogPlugin } from '../../dialog/plugin';\nimport { renderTitle } from './useTableHeader';\nimport { PrimaryTableCol, TdPrimaryTableProps } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\nimport ColumnCheckboxGroup from '../column-checkbox-group';\nimport { isFunction } from 'lodash-es';\nimport { useTNodeJSX } from '../../hooks';\n\nexport function getColumnKeys(columns: PrimaryTableCol[], keys = new Set()) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.children?.length) {\n getColumnKeys(col.children, keys);\n } else {\n col.colKey && keys.add(col.colKey);\n }\n }\n return keys;\n}\n\ninterface CheckboxGroupOptionsType {\n options: CheckboxOptionObj[];\n label: string;\n value?: string | number;\n}\n\nexport default function useColumnController(props: TdPrimaryTableProps, context: SetupContext) {\n const { classPrefix, globalConfig } = useConfig('table', props.locale);\n const { SettingIcon } = useGlobalIcon({ SettingIcon: TdSettingIcon });\n const { columns, columnController, displayColumns, columnControllerVisible } = toRefs(props);\n const dialogInstance = ref(null);\n const renderTNodeJSX = useTNodeJSX();\n\n const enabledColKeys = computed(() => {\n const arr = (columnController.value?.fields || [...getColumnKeys(columns.value)] || []).filter((v) => v);\n return new Set(arr);\n });\n\n const keys = [...getColumnKeys(columns.value)];\n\n // 确认后的列配置\n const [tDisplayColumns, setTDisplayColumns] = useDefaultValue(\n displayColumns,\n props.defaultDisplayColumns || keys,\n props.onDisplayColumnsChange,\n 'displayColumns',\n );\n // 弹框内的多选\n const columnCheckboxKeys = ref(displayColumns.value || props.defaultDisplayColumns || keys);\n\n const checkboxGroupList = computed(() => {\n if (columnController.value?.groupColumns?.length) {\n return getCheckboxGroupOptions(columns.value);\n }\n const oneItem: CheckboxGroupOptionsType = {\n label: globalConfig.value.selectAllText,\n options: getCheckboxOptions(columns.value),\n };\n return [oneItem];\n });\n\n // const intersectionChecked = computed(() => intersection(columnCheckboxKeys.value, [...enabledColKeys.value]));\n\n watch([displayColumns], ([val]) => {\n columnCheckboxKeys.value = val || props.defaultDisplayColumns || keys;\n });\n\n function getOneColumnItem(column: PrimaryTableCol, i: number) {\n return {\n label: () => renderTitle(context.slots, column, i),\n value: column.colKey,\n disabled: !enabledColKeys.value.has(column.colKey),\n };\n }\n\n // 列配置分组\n function getCheckboxGroupOptions(columns: PrimaryTableCol[]) {\n const groupColumns = columnController.value?.groupColumns;\n if (!groupColumns?.length) return [];\n const groupList: CheckboxGroupOptionsType[] = [];\n const loop = (columns: PrimaryTableCol[]) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const column = columns[i];\n const oneItem = getOneColumnItem(column, i);\n for (let j = 0, len1 = groupColumns.length; j < len1; j++) {\n const groupInfo = groupColumns[j];\n if (!groupInfo.columns.includes(column.colKey)) continue;\n if (groupList[j]?.options?.length) {\n groupList[j].options.push(oneItem);\n } else {\n groupList[j] = { ...groupColumns[j], options: [oneItem] };\n }\n }\n if (column.children?.length) {\n loop(column.children);\n }\n }\n };\n loop(columns);\n return groupList;\n }\n\n function getCheckboxOptions(columns: PrimaryTableCol[], arr: CheckboxOptionObj[] = []) {\n if (columnController.value?.groupColumns?.length) return [];\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.children?.length) {\n getCheckboxOptions(item.children, arr);\n } else {\n // 只把叶子列提供出去进行配置\n if (item.colKey) {\n arr.push(getOneColumnItem(item, i));\n }\n }\n }\n return arr;\n }\n\n const handleCheckChange = (val: CheckboxGroupValue, ctx: CheckboxGroupChangeContext) => {\n columnCheckboxKeys.value = val;\n const params = {\n columns: val,\n type: ctx.type,\n currentColumn: getCurrentRowByKey(columns.value, String(ctx.current)),\n e: ctx.e,\n };\n props.onColumnChange?.(params);\n };\n\n // 暂时不删除,万一后面需要整体的全选\n // const handleClickAllShowColumns = (checked: boolean, ctx: { e: Event }) => {\n // if (checked) {\n // const newData = checkboxOptions.value?.map((t) => t.value) || [];\n // columnCheckboxKeys.value = newData;\n // props.onColumnChange?.({ type: 'check', columns: newData, e: ctx.e });\n // } else {\n // const disabledColKeys = checkboxOptions.value.filter((t) => t.disabled).map((t) => t.value);\n // columnCheckboxKeys.value = disabledColKeys;\n // props.onColumnChange?.({ type: 'uncheck', columns: disabledColKeys, e: ctx.e });\n // }\n // };\n\n const handleToggleColumnController = () => {\n if (dialogInstance.value) {\n dialogInstance.value.show();\n return;\n }\n dialogInstance.value = DialogPlugin.confirm({\n header: globalConfig.value.columnConfigTitleText,\n body: () => {\n const widthMode = columnController.value?.displayType === 'fixed-width' ? 'fixed' : 'auto';\n // const checkedLength = intersectionChecked.value.length;\n // const isCheckedAll = checkedLength === enabledColKeys.value.size;\n // const isIndeterminate = checkedLength > 0 && checkedLength < enabledColKeys.value.size;\n const { columnControllerTopContent, columnControllerBottomContent } = columnController.value || {};\n const defaultNode = (\n \n
    \n {isFunction(columnControllerTopContent)\n ? columnControllerTopContent(h)\n : renderTNodeJSX('columnControllerTopContent')}\n {/* 请选择需要在表格中显示的数据列 */}\n {globalConfig.value.columnConfigDescriptionText && (\n

    \n {globalConfig.value.columnConfigDescriptionText}\n

    \n )}\n {checkboxGroupList.value.map((group, index) => {\n const uniqueKey = columnController.value?.groupColumns?.length\n ? String(group.value || index)\n : undefined;\n return (\n \n );\n })}\n\n {isFunction(columnControllerBottomContent)\n ? columnControllerBottomContent(h)\n : renderTNodeJSX('columnControllerBottomContent')}\n
    \n \n );\n return defaultNode;\n },\n confirmBtn: globalConfig.value.confirmText,\n cancelBtn: globalConfig.value.cancelText,\n width: 612,\n onConfirm: () => {\n setTDisplayColumns([...columnCheckboxKeys.value]);\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'confirm' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n onClose: () => {\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'cancel' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n ...(columnController.value?.dialogProps || {}),\n });\n };\n\n // columnControllerVisible 一般应用于不包含列配置按钮的场景,有外部直接控制弹框的显示或隐藏\n watch(\n [columnControllerVisible],\n ([visible]) => {\n if (visible === undefined) return;\n if (dialogInstance.value) {\n visible ? dialogInstance.value.show() : dialogInstance.value.hide();\n } else {\n visible && handleToggleColumnController();\n }\n },\n { immediate: true },\n );\n\n const renderColumnController = () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n if (isColumnController && columnController.value.hideTriggerButton) return null;\n const classes = [\n `${classPrefix.value}-table__column-controller-trigger`,\n { [`${classPrefix.value}-align-${placement}`]: !!placement },\n ];\n return (\n
    \n ,\n }}\n {...props.columnController?.buttonProps}\n >\n
    \n );\n };\n\n return {\n tDisplayColumns,\n columnCheckboxKeys,\n renderColumnController,\n };\n}\n","import { isFunction, isNumber, get } from 'lodash-es';\nimport { BaseTableCol } from './types';\n\nexport function filterDataByIds(\n data: Array = [],\n ids: Array = [],\n byId = 'id',\n): Array {\n return data.filter((d: Record = {}) => ids.includes(d[byId]));\n}\n\nexport enum SCROLL_DIRECTION {\n X = 'x',\n Y = 'y',\n UNKNOWN = 'unknown',\n}\n\nlet preScrollLeft: any;\nlet preScrollTop: any;\n\nexport const getScrollDirection = (scrollLeft: number, scrollTop: number): SCROLL_DIRECTION => {\n let direction = SCROLL_DIRECTION.UNKNOWN;\n if (preScrollTop !== scrollTop) {\n direction = SCROLL_DIRECTION.Y;\n } else if (preScrollLeft !== scrollLeft) {\n direction = SCROLL_DIRECTION.X;\n }\n preScrollTop = scrollTop;\n preScrollLeft = scrollLeft;\n return direction;\n};\n\nexport function isRowSelectedDisabled(\n selectColumn: { [key: string]: any },\n row: Record,\n rowIndex: number,\n): boolean {\n if (!selectColumn) return false;\n let disabled = isFunction(selectColumn.disabled) ? selectColumn.disabled({ row, rowIndex }) : selectColumn.disabled;\n if (selectColumn.checkProps) {\n if (isFunction(selectColumn.checkProps)) {\n disabled = disabled || selectColumn.checkProps({ row, rowIndex }).disabled;\n } else if (selectColumn.checkProps === 'object') {\n disabled = disabled || selectColumn.checkProps.disabled;\n }\n }\n return !!disabled;\n}\n\n// 获取列属性\nexport function getColWidthAttr>(col: T, attrKey: 'width' | 'minWidth') {\n const attr = col[attrKey];\n return isNumber(attr) ? attr : parseFloat(attr);\n}\n\nexport function getEditableKeysMap(keys: Array, list: any[], rowKey: string) {\n const map: { [key: string | number]: boolean } = {};\n for (let i = 0, len = list.length; i < len; i++) {\n const rowValue = get(list[i], rowKey);\n if (keys.includes(rowValue)) {\n map[rowValue] = true;\n }\n }\n return map;\n}\n\nexport function getColumnDataByKey(columns: any[], colKey: string): any {\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i].colKey === colKey) return columns[i];\n if (columns[i].children?.length) {\n const t = getColumnDataByKey(columns[i].children, colKey);\n if (t) return t;\n }\n }\n return null;\n}\n\nexport function getColumnIndexByKey(columns: any[], colKey: string): number {\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i].colKey === colKey) {\n return i;\n }\n if (columns[i].children?.length) {\n const t = getColumnDataByKey(columns[i].children, colKey);\n if (t) return i;\n }\n }\n return -1;\n}\n\nexport function getColumnsResetValue(columns: any[], resetValue: { [key: string]: any } = {}) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.filter && 'resetValue' in col.filter) {\n // eslint-disable-next-line no-param-reassign\n resetValue[col.colKey] = col.filter.resetValue;\n }\n if (col.children?.length) {\n getColumnsResetValue(col.children, resetValue);\n }\n }\n return resetValue;\n}\n","/**\n * 行选中相关功能:单选 + 多选\n */\nimport { computed, toRefs, h, ref, watch } from 'vue';\nimport { intersection } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport {\n ActiveRowActionContext,\n PrimaryTableCellParams,\n PrimaryTableCol,\n RowClassNameParams,\n TableRowData,\n TdPrimaryTableProps,\n} from '../type';\nimport { isRowSelectedDisabled } from '@tdesign/common-js/table/utils';\nimport { TableClassName } from './useClassName';\nimport Checkbox from '../../checkbox';\nimport Radio from '../../radio';\nimport log from '@tdesign/common-js/log/index';\n\nexport default function useRowSelect(\n props: TdPrimaryTableProps,\n tableSelectedClasses: TableClassName['tableSelectedClasses'],\n) {\n const { selectedRowKeys, columns, rowKey, data, reserveSelectedRowOnPaginate, pagination } = toRefs(props);\n const currentPaginateData = ref(\n pagination.value\n ? data.value.slice(\n (pagination.value.current - 1) * pagination.value.pageSize,\n pagination.value.current * pagination.value.pageSize,\n )\n : data.value,\n );\n const selectedRowClassNames = ref();\n const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n selectedRowKeys,\n props.defaultSelectedRowKeys || [],\n props.onSelectChange,\n 'selectedRowKeys',\n );\n const selectedRowDataMap = ref(new Map());\n const selectColumn = computed(() => props.columns.find(({ type }) => ['multiple', 'single'].includes(type)));\n const selectionType = computed(() => props.rowSelectionType || selectColumn.value?.type || 'single');\n const canSelectedRows = computed(() => {\n const currentData = reserveSelectedRowOnPaginate.value ? data.value : currentPaginateData.value;\n return currentData.filter((row, rowIndex): boolean => !isDisabled(row, rowIndex));\n });\n // 选中的行,和所有可以选择的行,交集,用于计算 isSelectedAll 和 isIndeterminate\n const intersectionKeys = computed(() =>\n intersection(\n tSelectedRowKeys.value,\n canSelectedRows.value.map((t) => get(t, props.rowKey || 'id')),\n ),\n );\n\n const allowUncheck = computed(() => {\n if (props.rowSelectionAllowUncheck) return true;\n const singleSelectCol = selectionType.value === 'single';\n if (!singleSelectCol || !selectColumn.value?.checkProps || !('allowUncheck' in selectColumn.value?.checkProps))\n return false;\n return selectColumn.value.checkProps.allowUncheck;\n });\n\n watch(\n [data, columns, tSelectedRowKeys, selectColumn, rowKey],\n () => {\n const disabledRowFunc = (p: RowClassNameParams) =>\n selectColumn.value.disabled(p) ? tableSelectedClasses.disabled : '';\n const disabledRowClass = selectColumn.value?.disabled ? disabledRowFunc : undefined;\n const selected = new Set(tSelectedRowKeys.value);\n const selectedRowClassFunc = ({ row }: RowClassNameParams) => {\n const rowId = get(row, props.rowKey || 'id');\n return selected.has(rowId) ? tableSelectedClasses.selected : '';\n };\n const selectedRowClass = selected.size ? selectedRowClassFunc : undefined;\n selectedRowClassNames.value = [disabledRowClass, selectedRowClass];\n },\n { immediate: true },\n );\n\n // 在远程分页场景下,当前页全选功能的状态判定需基于当前页数据是否存在进行动态重新计算\n watch(data, () => {\n currentPaginateData.value = data.value;\n });\n\n function isDisabled(row: Record, rowIndex: number): boolean {\n return isRowSelectedDisabled(selectColumn.value, row, rowIndex);\n }\n\n function getSelectedHeader() {\n return () => {\n const isIndeterminate =\n intersectionKeys.value.length > 0 && intersectionKeys.value.length < canSelectedRows.value.length;\n const isChecked =\n intersectionKeys.value.length !== 0 &&\n canSelectedRows.value.length !== 0 &&\n intersectionKeys.value.length === canSelectedRows.value.length;\n return (\n \n );\n };\n }\n\n function getRowSelectDisabledData(p: PrimaryTableCellParams) {\n const { col, row, rowIndex } = p;\n const disabled: boolean = isFunction(col.disabled) ? col.disabled({ row, rowIndex }) : col.disabled;\n const checkProps = isFunction(col.checkProps) ? col.checkProps({ row, rowIndex }) : col.checkProps;\n return {\n disabled: disabled || checkProps?.disabled,\n checkProps,\n };\n }\n\n function renderSelectCell(p: PrimaryTableCellParams) {\n const { col: column, row = {} } = p;\n const checked = tSelectedRowKeys.value.includes(get(row, props.rowKey || 'id'));\n const { disabled, checkProps } = getRowSelectDisabledData(p);\n const selectBoxProps: Object = {\n checked,\n disabled,\n ...checkProps,\n // 兼容处理不同的参数\n onClick: (e: MouseEvent | { e: MouseEvent }) => {\n // 选中行功能中,点击 checkbox/radio 需阻止事件冒泡,避免触发不必要的 onRowClick\n if (typeof e === 'object' && 'e' in e) {\n e.e?.stopPropagation();\n } else {\n e?.stopPropagation();\n }\n },\n onChange: () => handleSelectChange(row),\n };\n if (column.type === 'single') return ;\n if (column.type === 'multiple') {\n const isIndeterminate = props.indeterminateSelectedRowKeys?.length\n ? props.indeterminateSelectedRowKeys.includes(get(row, props.rowKey))\n : false;\n return ;\n }\n return null;\n }\n\n function handleSelectChange(row: TableRowData = {}) {\n let selectedRowKeys = [...tSelectedRowKeys.value];\n const reRowKey = props.rowKey || 'id';\n const id = get(row, reRowKey);\n const selectedRowIndex = selectedRowKeys.indexOf(id);\n const isExisted = selectedRowIndex !== -1;\n if (selectionType.value === 'multiple') {\n isExisted ? selectedRowKeys.splice(selectedRowIndex, 1) : selectedRowKeys.push(id);\n } else if (selectionType.value === 'single') {\n selectedRowKeys = isExisted && allowUncheck.value ? [] : [id];\n } else {\n log.warn('Table', '`column.type` must be one of `multiple` and `single`');\n return;\n }\n setTSelectedRowKeys(selectedRowKeys, {\n selectedRowData: selectedRowKeys.map((t) => selectedRowDataMap.value.get(t)),\n currentRowKey: id,\n currentRowData: row,\n type: isExisted ? 'uncheck' : 'check',\n });\n }\n\n function handleSelectAll(checked: boolean) {\n const reRowKey = props.rowKey || 'id';\n const canSelectedRowKeys = canSelectedRows.value.map((record) => get(record, reRowKey));\n const disabledSelectedRowKeys = selectedRowKeys.value?.filter((id) => !canSelectedRowKeys.includes(id)) || [];\n const allIds = checked ? [...disabledSelectedRowKeys, ...canSelectedRowKeys] : [...disabledSelectedRowKeys];\n setTSelectedRowKeys(allIds, {\n selectedRowData: checked ? allIds.map((t) => selectedRowDataMap.value.get(t)) : [],\n type: checked ? 'check' : 'uncheck',\n currentRowKey: 'CHECK_ALL_BOX',\n });\n }\n\n function formatToRowSelectColumn(col: PrimaryTableCol) {\n const isSelection = ['multiple', 'single'].includes(col.type);\n if (!isSelection) return col;\n return {\n ...col,\n width: col.width || 64,\n className: [tableSelectedClasses.checkCell, col.className],\n cell: (_: typeof h, p: PrimaryTableCellParams) => renderSelectCell(p),\n title: col.type === 'multiple' ? getSelectedHeader() : col.title,\n };\n }\n\n const onInnerSelectRowClick: TdPrimaryTableProps['onRowClick'] = ({ row, index }) => {\n const selectedColIndex = props.columns.findIndex((item) => item.colKey === 'row-select');\n let disabled = false;\n if (selectedColIndex !== -1) {\n disabled = getRowSelectDisabledData({\n row,\n rowIndex: index,\n col: props.columns[selectedColIndex],\n colIndex: selectedColIndex,\n })?.disabled;\n }\n if (disabled) return;\n handleSelectChange(row);\n };\n\n watch(\n [data, rowKey],\n () => {\n for (let i = 0, len = data.value.length; i < len; i++) {\n selectedRowDataMap.value.set(get(data.value[i], rowKey.value || 'id'), data.value[i]);\n }\n },\n { immediate: true },\n );\n\n // 是否开启了行选中功能\n const showRowSelect = computed(() => Boolean(selectColumn.value || props.selectOnRowClick || props.selectedRowKeys));\n\n const clearAllSelectedRowKeys = () => {\n setTSelectedRowKeys([], {\n selectedRowData: [],\n currentRowKey: undefined,\n currentRowData: undefined,\n type: 'uncheck',\n });\n };\n\n const handleRowSelectWithAreaSelection = ({ activeRowList, action }: ActiveRowActionContext) => {\n if (!showRowSelect.value) return;\n\n if (action === 'clear') {\n clearAllSelectedRowKeys();\n return;\n }\n\n if (action === 'select-all') {\n handleSelectAll(true);\n return;\n }\n\n if (selectionType.value === 'single') {\n if (action === 'space-one-selection') {\n handleSelectChange(activeRowList[0].row);\n }\n return;\n }\n\n const validAreaSelection = activeRowList.filter(\n ({ row, rowIndex }) =>\n !getRowSelectDisabledData({\n row,\n rowIndex,\n col: selectColumn.value,\n colIndex: undefined,\n }).disabled,\n );\n if (!validAreaSelection.length) return;\n\n const areaSelectionKeys = validAreaSelection.map(({ row }) => get(row, props.rowKey));\n const intersectionKeys = intersection(tSelectedRowKeys.value, areaSelectionKeys);\n const toCheck = intersectionKeys.length !== areaSelectionKeys.length;\n const clearedKeys = tSelectedRowKeys.value.filter((key) => !areaSelectionKeys.includes(key));\n const newSelectedRowKeys = toCheck ? [...new Set(tSelectedRowKeys.value.concat(areaSelectionKeys))] : clearedKeys;\n\n const currentRowData = action === 'space-one-selection' ? activeRowList[0].row : undefined;\n setTSelectedRowKeys(newSelectedRowKeys, {\n selectedRowData: activeRowList,\n currentRowKey: get(currentRowData, props.rowKey),\n currentRowData,\n type: toCheck ? 'check' : 'uncheck',\n });\n };\n\n return {\n selectColumn,\n showRowSelect,\n selectedRowClassNames,\n currentPaginateData,\n setTSelectedRowKeys,\n formatToRowSelectColumn,\n onInnerSelectRowClick,\n handleRowSelectWithAreaSelection,\n };\n}\n","import { computed, defineComponent, PropType } from 'vue';\nimport { ChevronDownIcon as TdChevronDownIcon } from 'tdesign-icons-vue-next';\nimport useClassName from './hooks/useClassName';\nimport { SortType } from './type';\nimport Tooltip, { TooltipProps } from '../tooltip';\nimport { useConfig } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { TNode } from '../common';\nimport { TableConfig } from '../config-provider';\n\ntype SortTypeEnum = 'desc' | 'asc';\ntype SortTypeEnums = Array;\n\nexport default defineComponent({\n name: 'TSorterButton',\n\n props: {\n sortType: {\n type: String as PropType,\n default: 'all',\n },\n sortOrder: {\n type: String,\n default: (): string => '',\n },\n locale: Object as PropType,\n sortIcon: Function as PropType,\n tooltipProps: Object as PropType,\n hideSortTips: Boolean,\n },\n\n emits: ['sort-icon-click'],\n\n setup(props, context) {\n const { tableSortClasses, negativeRotate180 } = useClassName();\n const renderTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { ChevronDownIcon } = useGlobalIcon({ ChevronDownIcon: TdChevronDownIcon });\n\n const allowSortTypes = computed(() =>\n props.sortType === 'all' ? ['asc', 'desc'] : [props.sortType],\n );\n\n const onSortIconClick = (e: MouseEvent, direction: string) => {\n context.emit('sort-icon-click', e, { descending: direction === 'desc' });\n };\n\n const getSortIcon = (direction: SortTypeEnum, activeClass: string) => {\n const defaultIcon = t(globalConfig.value.sortIcon) || ;\n const icon = renderTNode('sortIcon', defaultIcon);\n const sortClassName = [\n activeClass,\n tableSortClasses.sortIcon,\n tableSortClasses.iconDirection[direction],\n { [negativeRotate180]: direction === 'asc' },\n ];\n return (\n onSortIconClick(e, direction)}>\n {icon}\n \n );\n };\n\n return {\n t,\n globalConfig,\n tableSortClasses,\n negativeRotate180,\n allowSortTypes,\n getSortIcon,\n };\n },\n\n render() {\n const { tableSortClasses } = this;\n const classes = [tableSortClasses.trigger, { [tableSortClasses.doubleIcon]: this.allowSortTypes.length > 1 }];\n const tooltips = {\n asc: this.globalConfig.sortAscendingOperationText,\n desc: this.globalConfig.sortDescendingOperationText,\n };\n const sortButton = this.allowSortTypes.map((direction: SortTypeEnum) => {\n const activeClass = direction === this.sortOrder ? tableSortClasses.iconActive : tableSortClasses.iconDefault;\n const cancelTips = this.globalConfig.sortCancelOperationText;\n const tips = direction === this.sortOrder ? cancelTips : tooltips[direction];\n if (this.hideSortTips ?? this.globalConfig.hideSortTips) return this.getSortIcon(direction, activeClass);\n return (\n \n {this.getSortIcon(direction, activeClass)}\n \n );\n });\n return
    {sortButton}
    ;\n },\n});\n","import { SetupContext, computed, toRefs, ref, watch } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { SortInfo, TdPrimaryTableProps, PrimaryTableCol, TableRowData } from '../type';\nimport SorterButton from '../sorter-button';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { isArray } from 'lodash-es';\n\nexport type SortMap = Record;\n\nexport default function useSorter(props: TdPrimaryTableProps, { slots }: SetupContext) {\n const { sort, data } = toRefs(props);\n const originalData = ref();\n const [tSortInfo, setTSortInfo] = useDefaultValue(sort, props.defaultSort, props.onSortChange, 'sort');\n const [tData, setTData] = useDefaultValue(data, [], props.onDataChange, 'data');\n // 本地数据排序:用于记录哪些字段是自定义排序函数\n const sorterFuncMap = computed(() => getSorterFuncMap(props.columns));\n const innerSort = ref();\n\n const sortArray = computed>(() => {\n const sort = tSortInfo.value;\n if (!sort) return [];\n return isArray(sort) ? sort : [sort];\n });\n\n const sortMap = computed(() => {\n const sortMap: Record = {};\n sortArray.value.forEach((info, index) => {\n const { sortBy } = info;\n sortMap[sortBy] = { index, ...info };\n });\n return sortMap;\n });\n\n function getSorterFuncMap(columns: PrimaryTableCol[], map: { [key: string]: Function } = {}) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (isFunction(col.sorter)) {\n // eslint-disable-next-line no-param-reassign\n map[col.colKey] = col.sorter;\n }\n // 多级表头中的排序功能\n if (col.children?.length) {\n getSorterFuncMap(col.children, map);\n }\n }\n return map;\n }\n\n function handleDataSort(sortInfo: SortInfo | Array) {\n const sort = sortInfo;\n if (!Object.keys(sorterFuncMap.value).length) return;\n if (!originalData.value) {\n originalData.value = tData.value;\n }\n const isEmptyArraySort = !sort || (sort instanceof Array && !sort.length);\n const isEmptyObjectSort = !(sort instanceof Array) && !sort?.sortBy;\n if (isEmptyArraySort || isEmptyObjectSort) {\n setTData(originalData.value, { trigger: 'sort' });\n return originalData.value;\n }\n const formatedSort = sort instanceof Array ? sort : [sort];\n // data 为受控属性,data.slice() 浅拷贝,防止 sort 导致原数据变异\n const newData: TableRowData[] = tData.value.slice().sort((a: TableRowData, b: TableRowData) => {\n let sortResult = 0;\n for (let i = 0, len = formatedSort.length; i < len; i++) {\n const item = formatedSort[i];\n const sortFunc = sorterFuncMap.value[item.sortBy];\n // 上一个排序字段值相同时才会进行下一个字段的大小对比\n if (sortResult === 0 && sortFunc) {\n sortResult = item.descending ? sortFunc(b, a) : sortFunc(a, b);\n } else {\n break;\n }\n }\n return sortResult;\n });\n // Data 变化返回的是数据引用,为避免死循环,特此检测排序数据前后是否相同,如果相同则不再触发事件\n if (JSON.stringify(newData) === JSON.stringify(tData.value)) return;\n setTData(newData, { trigger: 'sort' });\n return newData;\n }\n\n function handleSortHeaderClick(col: PrimaryTableCol, p: { descending: boolean }) {\n let sortInfo: SortInfo | Array;\n if (props.multipleSort) {\n sortInfo = getMultipleNextSort(col, p);\n } else {\n // 如果此次调用之前开启了multipleSort,tSortInfo可能为数组,尝试取数组中第一个排序字段的参数\n const sort = tSortInfo.value instanceof Array ? tSortInfo.value[0] : tSortInfo.value;\n sortInfo = getSingleNextSort(col, sort, p);\n }\n // 本地数据 data 排序,需同时抛出 data-change\n const newData = handleDataSort(sortInfo);\n const currentData = newData || tData.value;\n const currentDataSource = currentData;\n setTSortInfo(sortInfo, { currentDataSource, col });\n props.onChange?.({ sorter: sortInfo }, { currentData, trigger: 'sorter' });\n innerSort.value = sortInfo;\n }\n\n function getSortOrder(descending: boolean) {\n if (descending === undefined) return;\n return descending ? 'desc' : 'asc';\n }\n\n // 点击新排序字段,则默认按照降序排序;点击原字段,则排序字段不变仅切换排序方式\n function getSingleNextSort(col: PrimaryTableCol, sortInfo: SortInfo, p: { descending: boolean }): SortInfo {\n // 排序字段和排序方式均相同,则取消排序\n if (sortInfo && sortInfo.sortBy === col.colKey && sortInfo.descending === p.descending) {\n return undefined;\n }\n return { sortBy: col.colKey, descending: p.descending };\n }\n\n function getMultipleNextSort(col: PrimaryTableCol, p: { descending: boolean }): Array {\n // 如tSortInfo不是数组,判断是否存在,如存在作为第一个排序字段(保留之前未开启multipleSort时的字段),否则初始化为空数组\n if (!Array.isArray(tSortInfo.value)) {\n tSortInfo.value = tSortInfo.value ? [tSortInfo.value] : [];\n }\n const sort = tSortInfo.value;\n const { colKey } = col;\n const result = [...sort];\n for (let i = 0, len = sort.length; i < len; i++) {\n if (sort[i].sortBy === colKey) {\n const next = getSingleNextSort(col, sort[i], p);\n next ? (result[i] = next) : result.splice(i, 1);\n return result;\n }\n }\n result.push({ sortBy: colKey, descending: p.descending });\n return result;\n }\n\n function renderSortIcon({ col }: { col: PrimaryTableCol; colIndex: number }) {\n if (!col.sorter) return null;\n const sorterButtonsProps = {\n sortType: col.sortType,\n sortOrder: getSortOrder(sortMap.value[col.colKey]?.descending),\n sortIcon: props.sortIcon,\n hideSortTips: props.hideSortTips,\n locale: props.locale,\n };\n return (\n handleSortHeaderClick(col, p)}\n />\n );\n }\n\n const isSortInfoSame = (a: SortInfo | SortInfo[], b: SortInfo | SortInfo[]) => {\n const tmpSortInfo = isArray(a) ? a : [a];\n const tmpInnerSortInfo = isArray(b) ? b : [b];\n if (tmpSortInfo.length && !b) return false;\n // eslint-disable-next-line\n for (let i = 0, len = tmpSortInfo.length; i < len; i++) {\n const item = tmpSortInfo[i];\n const result = tmpInnerSortInfo.find((t) => t.sortBy === item.sortBy);\n if (!result) return false;\n return item.descending === result.descending;\n }\n };\n\n /**\n * 如果外部的排序不为空,且和内部排序字段不同,说明传入的 sortInfo 和 data 可能存在不一致,\n * 此时,需要在组件内部进行排序,并输出事件\n */\n watch(\n () => [tSortInfo, props.data],\n () => {\n if (!tSortInfo.value || !Object.keys(tSortInfo.value).length || !tData.value.length) return;\n // isSortInfoSame 的两个参数顺序不可变\n if (!isSortInfoSame(tSortInfo.value, innerSort.value)) {\n handleDataSort(tSortInfo.value);\n }\n },\n { immediate: true },\n );\n\n return {\n renderSortIcon,\n };\n}\n","import { defineComponent, PropType, ref, h } from 'vue';\nimport { FilterIcon as TdFilterIcon } from 'tdesign-icons-vue-next';\nimport { isEmpty } from 'lodash-es';\nimport Popup, { PopupProps } from '../popup';\nimport { CheckboxGroup } from '../checkbox';\nimport { RadioGroup } from '../radio';\nimport Input from '../input';\nimport TButton from '../button';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from './type';\nimport { useConfig } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { AttachNode } from '../common';\nimport { isFunction } from 'lodash-es';\nimport { TableConfig } from '../config-provider';\n\nexport interface TableFilterControllerProps {\n locale: TableConfig;\n tFilterValue: FilterValue;\n innerFilterValue: FilterValue;\n tableFilterClasses: {\n filterable: string;\n popup: string;\n icon: string;\n popupContent: string;\n result: string;\n inner: string;\n bottomButtons: string;\n contentInner: string;\n iconWrap: string;\n };\n isFocusClass: string;\n column: PrimaryTableCol;\n colIndex: number;\n // HTMLElement\n primaryTableElement: any;\n popupProps: PopupProps;\n attach?: AttachNode;\n onVisibleChange: (val: boolean) => void;\n filterIcon?: TdPrimaryTableProps['filterIcon'];\n}\n\nexport default defineComponent({\n name: 'TableFilterController',\n\n props: {\n locale: Object as PropType,\n column: Object as PropType,\n colIndex: Number,\n tFilterValue: Object as PropType,\n innerFilterValue: Object as PropType,\n tableFilterClasses: Object as PropType,\n isFocusClass: String,\n // eslint-disable-next-line\n primaryTableElement: {},\n popupProps: Object as PropType,\n attach: [String, Function] as PropType,\n onVisibleChange: Function as PropType,\n filterIcon: [Function] as PropType,\n },\n\n emits: ['inner-filter-change', 'reset', 'confirm'],\n\n setup(props: TableFilterControllerProps, context) {\n const triggerElementRef = ref(null);\n const renderTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { FilterIcon } = useGlobalIcon({ FilterIcon: TdFilterIcon });\n const filterPopupVisible = ref(false);\n\n const onFilterPopupVisibleChange = (visible: boolean) => {\n filterPopupVisible.value = visible;\n props.onVisibleChange?.(visible);\n };\n\n const renderComponent = (column: PrimaryTableCol, filterComponentProps: any, component: any) => {\n if (!component) return null;\n const isVueComponent = !!component.setup;\n if (isFunction(column.filter.component) && !isVueComponent) {\n return column.filter.component((v: any, b: any) => {\n const tProps = typeof b === 'object' && 'attrs' in b ? b.attrs : {};\n return h(v, {\n props: { ...filterComponentProps, ...tProps },\n });\n });\n }\n const filter = column.filter || {};\n return (\n \n );\n };\n\n const getFilterContent = (column: PrimaryTableCol) => {\n const types = ['single', 'multiple', 'input'];\n if (column.filter?.type && !types.includes(column.filter.type)) {\n console.error(`TDesign Table Error: column.filter.type must be the following: ${JSON.stringify(types)}`);\n return;\n }\n const { innerFilterValue = {} } = props;\n const component =\n {\n single: RadioGroup,\n multiple: CheckboxGroup,\n input: Input,\n }[column.filter.type] || column.filter.component;\n if (!component && !column.filter.component) return;\n const filterComponentProps: { [key: string]: any } = {\n options: ['single', 'multiple'].includes(column.filter.type) ? column.filter?.list : undefined,\n ...(column.filter?.props || {}),\n onChange: (val: any, ctx: any) => {\n context.emit('inner-filter-change', val, column);\n if (column.filter.props?.onChange) {\n column.filter.props.onChange?.(val, ctx);\n }\n if (column.filter?.confirmEvents?.includes('onChange')) {\n filterPopupVisible.value = false;\n }\n },\n };\n if (column.colKey && innerFilterValue && column.colKey in innerFilterValue) {\n filterComponentProps.value = innerFilterValue?.[column.colKey];\n }\n // 允许自定义触发确认搜索的事件\n if (column.filter.confirmEvents) {\n column.filter.confirmEvents.forEach((event) => {\n if (event === 'onChange') return;\n filterComponentProps[event] = () => {\n context.emit('confirm', column);\n filterPopupVisible.value = false;\n };\n });\n }\n return (\n
    \n {renderComponent(column, filterComponentProps, component)}\n
    \n );\n };\n\n const getBottomButtons = (column: PrimaryTableCol) => {\n if (!column.filter.showConfirmAndReset) return;\n return (\n
    \n {\n context.emit('reset', column);\n filterPopupVisible.value = false;\n }}\n >\n {globalConfig.value.resetText}\n \n {\n context.emit('confirm', column);\n filterPopupVisible.value = false;\n }}\n >\n {globalConfig.value.confirmText}\n \n
    \n );\n };\n\n const getContent = () => (\n
    \n {getFilterContent(props.column)}\n {getBottomButtons(props.column)}\n
    \n );\n\n return {\n t,\n globalConfig,\n FilterIcon,\n filterPopupVisible,\n triggerElementRef,\n renderTNode,\n getContent,\n onFilterPopupVisibleChange,\n };\n },\n\n render() {\n const { column, popupProps, FilterIcon } = this as any;\n\n if (!column.filter || (column.filter && !Object.keys(column.filter).length)) return null;\n const defaultFilterIcon = this.t(this.globalConfig.filterIcon) || ;\n const filterValue = (this.tFilterValue as TableFilterControllerProps['tFilterValue'])?.[column.colKey];\n const isObjectTrue = typeof filterValue === 'object' && !isEmpty(filterValue);\n // false is a valid filter value\n const isValueExist = ![null, undefined, ''].includes(filterValue) && typeof filterValue !== 'object';\n return (\n this.primaryTableElement as HTMLElement : undefined)}\n visible={this.filterPopupVisible}\n destroyOnClose\n trigger=\"click\"\n placement=\"bottom-right\"\n showArrow\n overlayClassName={this.tableFilterClasses.popup}\n onVisibleChange={(val: boolean) => this.onFilterPopupVisibleChange(val)}\n class={[\n this.tableFilterClasses.icon,\n {\n [this.isFocusClass]: isObjectTrue || isValueExist,\n },\n ]}\n content={this.getContent}\n {...popupProps}\n >\n
    \n {this.renderTNode('filterIcon', {\n defaultNode: defaultFilterIcon,\n params: { col: column, colIndex: this.colIndex },\n })}\n
    \n \n );\n },\n});\n","import { toRefs, ref, watch, computed, SetupContext, h } from 'vue';\nimport useClassName from './useClassName';\nimport TButton from '../../button';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, FilterValue, TableFilterChangeContext } from '../type';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useTNodeDefault } from '../../hooks/tnode';\nimport TableFilterController from '../filter-controller';\nimport { useConfig } from '../../hooks/useConfig';\nimport { isFunction } from 'lodash-es';\nimport { getColumnsResetValue } from '@tdesign/common-js/table/utils';\nimport { renderTitle } from './useTableHeader';\n\nfunction isFilterValueExist(value: any) {\n const isArrayTrue = value instanceof Array && value.length;\n const isObject = typeof value === 'object' && !(value instanceof Array);\n const isObjectTrue = value !== null && isObject && Object.keys(value).length;\n return isArrayTrue || isObjectTrue || !['null', '', 'undefined'].includes(String(value));\n}\n\n// 筛选条件不为空,才需要显示筛选结果行\nfunction filterEmptyData(data: FilterValue) {\n const newFilterValue: FilterValue = {};\n Object.keys(data).forEach((key) => {\n const item = data[key];\n if (isFilterValueExist(item)) {\n newFilterValue[key] = item;\n }\n });\n return newFilterValue;\n}\n\nexport default function useFilter(props: TdPrimaryTableProps, context: SetupContext) {\n const primaryTableRef = ref(null);\n const { t, globalConfig } = useConfig('table', props.locale);\n const renderTNode = useTNodeDefault();\n const { filterValue, columns } = toRefs(props);\n const { tableFilterClasses, isFocusClass } = useClassName();\n const isTableOverflowHidden = ref();\n\n // unControl and control\n const [tFilterValue, setTFilterValue] = useDefaultValue(\n filterValue,\n props.defaultFilterValue,\n props.onFilterChange,\n 'filterValue',\n );\n\n // 过滤内部值\n const innerFilterValue = ref(tFilterValue.value);\n\n const hasEmptyCondition = computed(() => {\n const filterEmpty = filterEmptyData(tFilterValue.value || {});\n return !tFilterValue.value || !Object.keys(filterEmpty).length;\n });\n\n watch([tFilterValue], ([val]) => {\n innerFilterValue.value = val;\n });\n\n function renderFirstFilterRow() {\n if (hasEmptyCondition.value) return null;\n const defaultNode = (\n
    \n \n {/* 搜索 “{getFilterResultContent()}”, */}\n {/* 找到 {props.pagination?.total || props.data?.length} 条结果 */}\n {t(globalConfig.value.searchResultText, {\n result: getFilterResultContent(),\n count: props.pagination?.total || props.data?.length,\n })}\n \n \n {globalConfig.value.clearFilterResultButtonText}\n \n
    \n );\n const filterContent = renderTNode('filterRow');\n if ((props.filterRow && !filterContent) || props.filterRow === null) return null;\n return
    {filterContent || defaultNode}
    ;\n }\n\n // 获取搜索条件内容,存在 options 需要获取其 label 显示\n function getFilterResultContent(): string {\n const arr: string[] = [];\n const columns: Array = [];\n getAllColumns(props.columns, columns);\n columns\n .filter((col) => col.filter)\n .forEach((col, index) => {\n let value = tFilterValue.value[col.colKey];\n if (col.filter.list && !['null'].includes(String(value))) {\n const formattedValue = value instanceof Array ? value : [value];\n const label: string[] = [];\n col.filter.list.forEach((option) => {\n if (formattedValue.includes(option.value)) {\n label.push(option.label);\n }\n });\n value = label.join();\n }\n if (isFilterValueExist(value)) {\n const label = isFunction(col.filter?.label) ? col.filter.label(h) : col.filter?.label;\n const title = renderTitle(context.slots, col, index);\n arr.push(`${label || title}:${value}`);\n }\n });\n return arr.join(';');\n }\n //递归拿到所有的 column\n function getAllColumns(col: Array, columns: Array) {\n col.forEach((column) => {\n if (column.children) {\n getAllColumns(column.children, columns);\n }\n columns.push(column);\n });\n }\n\n function onInnerFilterChange(val: any, column: PrimaryTableCol) {\n const filterValue = {\n ...innerFilterValue.value,\n [column.colKey]: val,\n };\n innerFilterValue.value = filterValue;\n if (!column.filter.showConfirmAndReset) {\n emitFilterChange(filterValue, 'filter-change', column);\n }\n }\n\n function emitFilterChange(\n filterValue: FilterValue,\n trigger: TableFilterChangeContext['trigger'],\n column?: PrimaryTableCol,\n ) {\n setTFilterValue(filterValue, { col: column, trigger });\n props.onChange?.({ filter: filterValue }, { trigger: 'filter' });\n }\n\n function onReset(column: PrimaryTableCol) {\n const filterValue: FilterValue = {\n ...tFilterValue.value,\n [column.colKey]:\n column.filter.resetValue ??\n {\n single: '',\n multiple: [],\n input: '',\n }[column.filter.type] ??\n '',\n };\n emitFilterChange(filterValue, 'reset', column);\n }\n\n function onResetAll() {\n const resetValue = getColumnsResetValue(columns.value);\n emitFilterChange(resetValue, 'clear', undefined);\n }\n\n function onConfirm(column: PrimaryTableCol) {\n emitFilterChange(innerFilterValue.value, 'confirm', column);\n }\n\n // 图标:内置图标,组件自定义图标,全局配置图标\n function renderFilterIcon({ col, colIndex }: { col: PrimaryTableCol; colIndex: number }) {\n return (\n \n );\n }\n\n function setFilterPrimaryTableRef(primaryTableElement: any) {\n primaryTableRef.value = primaryTableElement;\n }\n\n function onPopupVisibleChange(visible: boolean) {\n if (visible && !isTableOverflowHidden.value) {\n isTableOverflowHidden.value = !visible;\n }\n }\n\n return {\n hasEmptyCondition,\n isTableOverflowHidden,\n renderFilterIcon,\n renderFirstFilterRow,\n setFilterPrimaryTableRef,\n };\n}\n","/**!\n * Sortable 1.15.6\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar version = \"1.15.6\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches( /**HTMLElement*/el, /**String*/selector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode;\n\n // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect();\n\n // Set relative to edges of padding box of container\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n\n /* jshint boss:true */\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\n\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\n\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\n\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\nfunction index(el, selector) {\n var index = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n\n /* jshint boss:true */\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n return index;\n}\n\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\n\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl) {\n var rect = {};\n Array.from(container.children).forEach(function (child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n\n // If animating: compensate for current animation\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&\n // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n\n // if fromRect != toRect: animate\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return;\n // Fire global events if it exists in this sortable\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n\n // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n\n // Add default options from plugin\n _extends(defaults, initialized.defaults);\n });\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return;\n\n // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\n ghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n\n _silent = false,\n savedInputChecked = [];\n\n/** @const */\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\n supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return;\n // false when <= IE11\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n }(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n },\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n },\n /**\r\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n * @param {Number} x X position\r\n * @param {Number} y Y position\r\n * @return {HTMLElement} Element of the first found nearest Sortable\r\n */\n _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n },\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n },\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n },\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n };\n\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n // Create imitation event\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n\n/**\r\n * @class Sortable\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el; // root element\n this.options = options = _extends({}, options);\n\n // Export instance\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n // Disabled on Safari: #1571; Enabled on Safari IOS: #2244\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && (!Safari || IOS),\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults);\n\n // Set default options\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n _prepareGroup(options);\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n // Setup drag mode\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n }\n\n // Bind events\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n sortables.push(this.el);\n\n // Restore sorting\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n\n // Add animation state manager\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {\n if (!evt.cancelable) return;\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n _saveInputCheckedState(el);\n\n // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n }\n\n // cancel dnd if original target is content editable\n if (originalTarget.isContentEditable) {\n return;\n }\n\n // Safari ignores further event handling after mousedown\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n }\n\n // Get the index of the dragged element within its parent\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n\n // Check filter\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n\n // Prepare `dragstart`\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n\n // Bind the events: dragstart/dragend\n _this._triggerDragStart(evt, touch);\n\n // Drag start event\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n });\n\n // Chosen item\n toggleClass(dragEl, options.chosenClass, true);\n };\n\n // Disable \"draggable\"\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n if (options.supportPointer) {\n on(ownerDocument, 'pointerup', _this._onDrop);\n // Native D&D triggers pointercancel\n !this.nativeDraggable && on(ownerDocument, 'pointercancel', _this._onDrop);\n } else {\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop);\n }\n\n // Make dragEl draggable (must be before delay for FireFox)\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent('delayStart', this, {\n evt: evt\n });\n\n // Delay is impossible for native DnD in Edge or IE\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n if (options.supportPointer) {\n on(ownerDocument, 'pointerup', _this._disableDelayedDrag);\n on(ownerDocument, 'pointercancel', _this._disableDelayedDrag);\n } else {\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n }\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'pointerup', this._disableDelayedDrag);\n off(ownerDocument, 'pointercancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n try {\n if (document.selection) {\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n var options = this.options;\n\n // Apply effect\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n\n // Drag start event\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent; // store last element\n }\n /* jshint boss:true */ while (parent = getParentOrHost(parent));\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n\n // only set the status to dragging, when we are actually dragging\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options;\n\n // Position absolutely\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n\n // Set transform-origin\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent('setupClone', this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n\n // #1143: IFrame support workaround\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n\n // Set proper drop events\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, 'drop', _this);\n\n // #1276 fix:\n css(dragEl, 'transform', 'translateZ(0)');\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n window.getSelection().removeAllRanges();\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver( /**Event*/evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n if (_silent) return;\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n }\n\n // Capture animation state\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n\n // Return invocation when dragEl is inserted (or completed)\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n\n // Animation\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n\n // Null lastTarget if it is not inside a previously swapped element\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n\n // no bubbling and not fallback\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n\n // Do not detect for empty insert if already inserted\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n\n // Call when dragEl has been inserted\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n if (revert) {\n parentEl = rootEl; // actualization\n capture();\n this._hideClone();\n dragOverEvent('revert');\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n }\n\n // if there is a last element, it is the target\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n // the last draggable element is not the last node\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n }\n // If dragEl is already beside target: Do not insert\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n\n // Undo chrome's scroll adjustment (has no effect on other browsers)\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode; // actualization\n\n // must be done before animation\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'pointercancel', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop( /**Event*/evt) {\n var el = this.el,\n options = this.options;\n\n // Get the index of the dragged element within its parent\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode;\n\n // Get again after plugin event\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n\n // Unbind events\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n css(dragEl, 'transform', '');\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n _disableDraggable(dragEl);\n dragEl.style['will-change'] = '';\n\n // Remove classes\n // ghostClass is added in dragStarted\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n\n // Drag stop event\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n // Remove event\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // drag from one list and drop into another\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // Save sorting\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent( /**Event*/evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n break;\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n /**\r\n * Serializes the item into an array of string.\r\n * @returns {String[]}\r\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\r\n * Sorts the elements according to the array.\r\n * @param {String[]} order order of the items\r\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\r\n * Save the current sorting\r\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\r\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n * @param {HTMLElement} el\r\n * @param {String} [selector] default: `options.draggable`\r\n * @returns {HTMLElement|null}\r\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\r\n * Set/get option\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {*}\r\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n /**\r\n * Destroy\r\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n }\n // Remove draggable attributes\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return;\n\n // show clone at dragEl or original position\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver( /**Event*/evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal;\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\n\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\r\n * @return {Number} Direction dragEl must be swapped\r\n */\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n\n/**\r\n * Generate id\r\n * @param {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\n\n// Fixed #973:\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\n\n// Export utils\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild,\n expando: expando\n};\n\n/**\r\n * Get the Sortable instance of an element\r\n * @param {HTMLElement} element The element\r\n * @return {Sortable|undefined} The instance of Sortable\r\n */\nSortable.get = function (element) {\n return element[expando];\n};\n\n/**\r\n * Mount a plugin to Sortable\r\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\r\n */\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n};\n\n// Export\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n\n // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n\n // Listener for pointer element change\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n // Detect for pointer elem change, emulating native DnD behaviour\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn;\n\n // New scroll root, set scrollEl\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\nfunction Revert() {}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n this.sortable.animateAll();\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\nfunction Remove() {}\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\n multiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\n folding = false,\n // Folding any other time\n dragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n if (!sortable.options.avoidImplicitDeselect) {\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n }\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n avoidImplicitDeselect: false,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n dataTransfer.setData('Text', data);\n }\n };\n }\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n sortable._hideClone();\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n });\n\n // Sort multi-drag elements\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n\n sortable.captureAnimationState();\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n }\n\n // Remove all auxiliary multidrag items from el, if sorting enabled\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n initialFolding = false;\n // If leaving sort:false root, or already folding - Fold to new location\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute);\n\n // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n }\n\n // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n activeSortable._showClone(sortable);\n\n // Unfold animation for clones if showing from hidden\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children;\n\n // Multi-drag selection\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n\n // Modifier activated, select from last to dragEl\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n (function () {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n var filter = options.filter;\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n // Check if element is draggable\n if (!closest(children[i], options.draggable, parentEl, false)) continue;\n // Check if element is filtered\n var filtered = filter && (typeof filter === 'function' ? filter.call(sortable, evt, children[i], sortable) : filter.split(',').some(function (criteria) {\n return closest(children[i], criteria.trim(), parentEl, false);\n }));\n if (filtered) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvent: evt\n });\n }\n })();\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n }\n }\n\n // Multi-drag drop\n if (dragStarted && this.isMultiDrag) {\n folding = false;\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect;\n\n // Prepare unfold animation\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n }\n\n // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n multiDragIndex++;\n });\n\n // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n if (update) {\n dispatchSortableEvent('update');\n dispatchSortableEvent('sort');\n }\n }\n }\n\n // Must be done after capturing individual rects (scroll bar)\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n multiDragSortable = toSortable;\n }\n\n // Remove clones if necessary\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return;\n\n // Only deselect if selection is in this sortable\n if (multiDragSortable !== this.sortable) return;\n\n // Only deselect if target is not item in this sortable\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;\n\n // Only deselect if left click\n if (evt && evt.button !== 0) return;\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvent: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n multiDragSortable = sortable;\n }\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n });\n\n // multiDragElements will already be sorted if folding\n var newIndex;\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n return key;\n }\n }\n });\n}\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","// 拖拽排序场景中:调整某个元素的顺序\nexport default function swapDragArrayElement(\n data: any[], currentIndex: number, targetIndex: number\n) {\n const newData = [...data];\n if (targetIndex - currentIndex > 0) {\n newData.splice(targetIndex + 1, 0, newData[currentIndex]);\n newData.splice(currentIndex, 1);\n } else {\n newData.splice(targetIndex, 0, newData[currentIndex]);\n newData.splice(currentIndex + 1, 1);\n }\n return newData;\n}\n","// 表格 行拖拽 + 列拖拽功能\nimport { SetupContext, computed, toRefs, ref, watch, h, ComputedRef } from 'vue';\nimport Sortable, { SortableEvent, SortableOptions, MoveEvent } from 'sortablejs';\nimport { isFunction } from 'lodash-es';\nimport { TableRowData, TdPrimaryTableProps, DragSortContext, PrimaryTableCol } from '../type';\nimport useClassName from './useClassName';\nimport log from '@tdesign/common-js/log/index';\nimport { hasClass } from '../../utils/dom';\nimport swapDragArrayElement from '@tdesign/common-js/utils/swapDragArrayElement';\nimport { BaseTableColumns } from '../interface';\nimport { getColumnDataByKey, getColumnIndexByKey } from '@tdesign/common-js/table/utils';\nimport { SimplePageInfo } from '../interface';\n\nfunction removeNode(node: HTMLElement) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode: HTMLElement, node: HTMLElement, position: number) {\n const refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\nexport default function useDragSort(\n props: TdPrimaryTableProps,\n context: SetupContext,\n params: ComputedRef<{\n showElement: boolean;\n }>,\n) {\n const { sortOnRowDraggable, dragSort, data } = toRefs(props);\n const innerPagination = ref(props.pagination);\n const { tableDraggableClasses, tableBaseClass, tableFullRowClasses, tableExpandClasses } = useClassName();\n const columns = ref(props.columns || []);\n const primaryTableRef = ref(null);\n // @ts-ignore 判断是否有拖拽列\n const dragCol = computed(() => columns.value.find((item) => item.colKey === 'drag'));\n // 行拖拽判断条件\n const isRowDraggable = computed(\n () => sortOnRowDraggable.value || ['row', 'row-handler-col'].includes(dragSort.value),\n );\n // 行拖拽判断条件-手柄列\n const isRowHandlerDraggable = computed(\n () => ['row-handler', 'row-handler-col'].includes(dragSort.value) && !!dragCol.value,\n );\n // 列拖拽判断条件\n const isColDraggable = computed(() => ['col', 'row-handler-col'].includes(dragSort.value));\n\n if (props.sortOnRowDraggable) {\n log.error('Table', \"`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.\");\n }\n\n // 本地分页的表格,index 不同,需加上分页计数\n function getDataPageIndex(index: number, pagination: SimplePageInfo) {\n const current = pagination.current ?? pagination.defaultCurrent;\n const pageSize = pagination.pageSize ?? pagination.defaultPageSize;\n // 开启本地分页的场景\n if (!props.disableDataPage && pagination && data.value.length > pageSize) {\n return pageSize * (current - 1) + index;\n }\n return index;\n }\n\n // 行拖拽排序\n const registerRowDragEvent = (element: HTMLDivElement): void => {\n /**\n * fix: https://github.com/Tencent/tdesign-vue-next/issues/4985\n * 若table内容未渲染(即element子元素为空),拖拽事件不注册\n */\n if (element?.children?.length === 0 || (!isRowHandlerDraggable.value && !isRowDraggable.value)) return;\n const dragContainer = element?.querySelector('tbody');\n if (!dragContainer) {\n console.error('tbody does not exist.');\n return null;\n }\n const baseOptions: SortableOptions = {\n animation: 150,\n ghostClass: tableDraggableClasses.ghost,\n chosenClass: tableDraggableClasses.chosen,\n dragClass: tableDraggableClasses.dragging,\n // 过滤首行尾行固定,过滤展开行\n filter: `.${tableFullRowClasses.base},.${tableExpandClasses.row}`,\n onMove: (evt: MoveEvent) => !hasClass(evt.related, tableFullRowClasses.base),\n onEnd(evt: SortableEvent) {\n if (evt.newIndex === evt.oldIndex) return;\n // 处理受控:拖拽列表恢复原始排序\n removeNode(evt.item);\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\n let { oldIndex: currentIndex, newIndex: targetIndex } = evt;\n if (\n (isFunction(props.firstFullRow) && props.firstFullRow(h)) ||\n context.slots.firstFullRow ||\n context.slots['first-full-row']\n ) {\n currentIndex -= 1;\n targetIndex -= 1;\n }\n if (innerPagination.value) {\n currentIndex = getDataPageIndex(currentIndex, innerPagination.value);\n targetIndex = getDataPageIndex(targetIndex, innerPagination.value);\n }\n const params: DragSortContext = {\n data: data.value,\n currentIndex,\n current: data.value[currentIndex],\n targetIndex,\n target: data.value[targetIndex],\n newData: swapDragArrayElement([...props.data], currentIndex, targetIndex),\n e: evt,\n sort: 'row',\n };\n // currentData is going to be deprecated\n params.currentData = params.newData;\n props.onDragSort?.(params);\n },\n ...props.dragSortOptions,\n };\n\n if (!dragContainer) return;\n if (isRowDraggable.value) {\n new Sortable(dragContainer, { ...baseOptions });\n } else {\n new Sortable(dragContainer, {\n ...baseOptions,\n handle: `.${tableDraggableClasses.handle}`,\n });\n }\n };\n\n const registerOneLevelColDragEvent = (container: HTMLElement, recover: boolean) => {\n const options: SortableOptions = {\n animation: 150,\n dataIdAttr: 'data-colkey',\n direction: 'vertical',\n ghostClass: tableDraggableClasses.ghost,\n chosenClass: tableDraggableClasses.chosen,\n dragClass: tableDraggableClasses.dragging,\n handle: `.${tableBaseClass.thCellInner}`,\n // 存在类名:t-table__th--drag-sort 的列才允许拖拽调整顺序(注意:添加 draggable 之后,固定列的表头 和 吸顶表头 位置顺序会错位,暂时注释)\n // draggable: `th.${tableDraggableClasses.dragSortTh}`,\n onEnd: (evt: SortableEvent) => {\n if (evt.newIndex === evt.oldIndex) return;\n if (recover) {\n // 处理受控:拖拽列表恢复原始排序,等待外部数据 data 变化,更新最终顺序\n removeNode(evt.item);\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\n }\n const { oldIndex, newIndex, target: targetElement } = evt;\n let currentIndex = recover ? oldIndex : newIndex;\n let targetIndex = recover ? newIndex : oldIndex;\n const oldElement = targetElement.children[currentIndex] as HTMLElement;\n const newElement = targetElement.children[targetIndex] as HTMLElement;\n const current = getColumnDataByKey(columns.value, oldElement.dataset.colkey);\n const target = getColumnDataByKey(columns.value, newElement.dataset.colkey);\n if (!current || !current.colKey) {\n log.error('Table', `colKey is missing in ${JSON.stringify(current)}`);\n }\n if (!target || !target.colKey) {\n log.error('Table', `colKey is missing in ${JSON.stringify(target)}`);\n }\n // 寻找外部数据 props.columns 中的真正下标\n currentIndex = getColumnIndexByKey(props.columns, current.colKey);\n targetIndex = getColumnIndexByKey(props.columns, target.colKey);\n const params: DragSortContext = {\n data: columns.value,\n currentIndex,\n current,\n targetIndex,\n target,\n newData: swapDragArrayElement([...props.columns], currentIndex, targetIndex),\n e: evt,\n sort: 'col',\n };\n // currentData is going to be deprecated\n params.currentData = params.newData;\n props.onDragSort?.(params);\n },\n ...props.dragSortOptions,\n };\n if (!container) return;\n new Sortable(container, options);\n };\n\n // 列拖拽排序:涉及到多级表头、自定义显示列 等综合场景\n const registerColDragEvent = (tableElement: HTMLElement) => {\n if (!isColDraggable.value || !tableElement) return;\n const trList = tableElement.querySelectorAll('thead > tr');\n if (trList.length <= 1) {\n const [container] = trList;\n registerOneLevelColDragEvent(container as HTMLElement, true);\n } else {\n // 多级表头只抛出事件,不处理其他未知逻辑(如多层表头之间具体如何交换)\n trList?.forEach((container) => {\n registerOneLevelColDragEvent(container as HTMLElement, false);\n });\n }\n };\n\n function setDragSortPrimaryTableRef(primaryTableElement: any) {\n primaryTableRef.value = primaryTableElement;\n }\n\n function setDragSortColumns(val: BaseTableColumns) {\n // @ts-ignore\n columns.value = val;\n }\n\n // eslint-disable-next-line\n watch([primaryTableRef, columns, dragSort, params], ([val, columns, dragSort, params]) => {\n register(val, params);\n });\n\n function register(val: any, params: any) {\n const primaryTableCmp = val as any;\n if (!val || !primaryTableCmp.$el || !params.showElement) return;\n // register after table tr rendered\n const timerA = setTimeout(() => {\n registerRowDragEvent(primaryTableCmp.$el);\n registerColDragEvent(primaryTableCmp.$el);\n /** 待表头节点准备完成后 */\n const timer = setTimeout(() => {\n if (primaryTableCmp.$refs.affixHeaderRef) {\n registerColDragEvent(primaryTableCmp.$refs.affixHeaderRef);\n }\n clearTimeout(timer);\n });\n\n clearTimeout(timerA);\n }, 60);\n }\n\n return {\n innerPagination,\n isRowDraggable,\n isRowHandlerDraggable,\n isColDraggable,\n setDragSortPrimaryTableRef,\n setDragSortColumns,\n };\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { computed, defineComponent, onMounted, PropType, ref, SetupContext, toRefs, watch } from 'vue';\nimport { get } from 'lodash-es';\nimport { set } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { Edit1Icon as TdEdit1Icon } from 'tdesign-icons-vue-next';\nimport {\n TableRowData,\n PrimaryTableCol,\n PrimaryTableRowEditContext,\n PrimaryTableRowValidateContext,\n TdBaseTableProps,\n TableEditableCellPropsParams,\n} from './type';\nimport { TableClassName } from './hooks/useClassName';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { renderCell } from './tr';\nimport { validate } from '../form/utils/form-model';\nimport log from '@tdesign/common-js/log/index';\nimport { AllValidateResult } from '../form/type';\nimport { on, off } from '../utils/dom';\nimport { isObject } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport interface OnEditableChangeContext extends PrimaryTableRowEditContext {\n isEdit: boolean;\n validateEdit: (trigger: 'self' | 'parent') => Promise;\n}\n\nexport interface EditableCellProps {\n rowKey: string;\n row: TableRowData;\n rowIndex: number;\n col: PrimaryTableCol;\n colIndex: number;\n oldCell: PrimaryTableCol['cell'];\n tableBaseClass?: TableClassName['tableBaseClass'];\n /** 行编辑需要使用 editable。单元格编辑则无需使用,设置为 undefined */\n editable?: boolean;\n readonly?: boolean;\n errors?: AllValidateResult[];\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n /** 编辑数据时触发 */\n onChange?: (context: PrimaryTableRowEditContext) => void;\n /** 校验结束后触发 */\n onValidate?: (context: PrimaryTableRowValidateContext) => void;\n /** 校验规则发生变化时触发 */\n onRuleChange?: (context: PrimaryTableRowEditContext) => void;\n /** 进入或退出编辑态时触发 */\n onEditableChange?: (context: OnEditableChangeContext) => void;\n}\n\nexport default defineComponent({\n name: 'TableEditableCell',\n props: {\n row: Object as PropType,\n rowKey: String,\n rowIndex: Number,\n col: Object as PropType,\n colIndex: Number,\n oldCell: [Function, String] as PropType,\n tableBaseClass: Object as PropType,\n cellEmptyContent: [Function, String] as PropType,\n editable: {\n type: Boolean,\n default: undefined,\n },\n readonly: {\n type: Boolean,\n },\n errors: {\n type: Array as PropType,\n default: undefined,\n },\n onChange: Function as PropType,\n onValidate: Function as PropType,\n onRuleChange: Function as PropType,\n onEditableChange: Function as PropType,\n },\n\n emits: ['update-edited-cell'],\n\n setup(props: EditableCellProps, context: SetupContext) {\n const { row, col } = toRefs(props);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const tableEditableCellRef = ref(null);\n const isKeepEditMode = computed(() => col.value.edit?.keepEditMode);\n const isEdit = ref(isKeepEditMode.value || props.col.edit?.defaultEditable || false);\n const editValue = ref();\n const errorList = ref();\n const classPrefix = usePrefixClass();\n\n const { Edit1Icon } = useGlobalIcon({ Edit1Icon: TdEdit1Icon });\n\n const updateEditedCellValue: TableEditableCellPropsParams['updateEditedCellValue'] = (obj) => {\n if (typeof obj === 'object' && ('rowValue' in obj || obj.isUpdateCurrentRow)) {\n const rowValue = obj.isUpdateCurrentRow ? get(row.value, props.rowKey) : obj.rowValue;\n delete obj.rowValue;\n delete obj.isUpdateCurrentRow;\n context.emit('update-edited-cell', rowValue, row.value, obj);\n } else {\n editValue.value = obj;\n }\n };\n\n watch([isKeepEditMode], (val) => {\n if (val) {\n isEdit.value = true;\n }\n });\n\n const editOnListeners = computed(() => {\n return col.value.edit?.on?.({ ...cellParams.value, editedRow: currentRow.value, updateEditedCellValue }) || {};\n });\n\n const cellParams = computed(() => ({\n rowIndex: props.rowIndex,\n colIndex: props.colIndex,\n col: props.col,\n row: props.row,\n }));\n\n const currentRow = computed(() => {\n const { colKey } = col.value;\n // handle colKey like a.b.c\n const [firstKey, ...restKeys] = colKey.split('.') || [];\n const newRow = { ...row.value };\n if (restKeys.length) {\n newRow[firstKey] = cloneDeep(row.value[firstKey]);\n set(newRow[firstKey], restKeys.join('.'), editValue.value);\n } else {\n set(newRow, colKey, editValue.value);\n }\n return newRow;\n });\n\n const cellNode = computed(() => {\n const node = renderCell(\n {\n row: currentRow.value,\n col: { ...col.value, cell: props.oldCell },\n rowIndex: props.rowIndex,\n colIndex: props.colIndex,\n },\n context.slots,\n { cellEmptyContent: props.cellEmptyContent },\n );\n return node;\n });\n\n const editProps = computed(() => {\n const { edit } = col.value;\n return isFunction(edit.props)\n ? edit.props({\n ...cellParams.value,\n editedRow: currentRow.value,\n updateEditedCellValue,\n })\n : { ...edit.props };\n });\n\n const componentProps = computed(() => {\n const { edit } = col.value;\n if (!edit) return {};\n const tmpProps = { ...editProps.value };\n // for removing warn: runtime-core.esm-bundler.js:38 [Vue warn]: Invalid prop: type check failed for prop \"onChange\". Expected Function, got Array\n delete tmpProps.onChange;\n delete tmpProps.value;\n edit.abortEditOnEvent?.forEach((item) => {\n delete tmpProps[item];\n });\n return tmpProps;\n });\n\n const isAbortEditOnChange = computed(() => {\n const { edit } = col.value;\n if (!edit) return false;\n return Boolean(edit.abortEditOnEvent?.includes('onChange'));\n });\n\n const validateEdit = (trigger: 'self' | 'parent'): Promise => {\n return new Promise((resolve) => {\n const params: PrimaryTableRowValidateContext = {\n result: [\n {\n ...cellParams.value,\n errorList: [],\n value: editValue.value,\n },\n ],\n trigger,\n };\n const rules = isFunction(col.value.edit.rules) ? col.value.edit.rules(cellParams.value) : col.value.edit.rules;\n if (!col.value.edit || !rules || !rules.length) {\n props.onValidate?.(params);\n resolve(true);\n return;\n }\n validate(editValue.value, rules).then((result) => {\n const list = result?.filter((t) => !t.result);\n params.result[0].errorList = list;\n props.onValidate?.(params);\n if (!list || !list.length) {\n errorList.value = [];\n resolve(true);\n } else {\n errorList.value = list;\n resolve(list);\n }\n });\n });\n };\n\n const isSame = (a: any, b: any) => {\n if (isObject(a) && isObject(b)) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n return a === b;\n };\n\n const updateAndSaveAbort = (outsideAbortEvent: Function, eventName: string, ...args: any) => {\n validateEdit('self').then((result) => {\n if (result !== true) return;\n const oldValue = get(row.value, col.value.colKey);\n // 相同的值无需触发变化\n if (!isSame(editValue.value, oldValue)) {\n editValue.value = oldValue;\n outsideAbortEvent?.(...args);\n }\n editOnListeners.value[eventName]?.(args[2]);\n // 此处必须在事件执行完成后异步销毁编辑组件,否则会导致事件清除不及时引起的其他问题\n const timer = setTimeout(() => {\n if (!isKeepEditMode.value) {\n isEdit.value = false;\n }\n errorList.value = [];\n props.onEditableChange?.({\n ...cellParams.value,\n value: editValue.value,\n editedRow: { ...props.row, [props.col.colKey]: editValue.value },\n validateEdit,\n isEdit: false,\n });\n clearTimeout(timer);\n }, 0);\n });\n };\n\n const listeners = computed<{ [key: string]: Function }>(() => {\n const { edit } = col.value;\n const isCellEditable = props.editable === undefined;\n if (!isEdit.value || !isCellEditable) return;\n if (!edit?.abortEditOnEvent?.length) return {};\n // 自定义退出编辑态的事件\n const tListeners: Record = {};\n const outsideAbortEvent = edit?.onEdited;\n edit.abortEditOnEvent.forEach((itemEvent) => {\n if (itemEvent === 'onChange') return;\n tListeners[itemEvent] = (...args: any) => {\n updateAndSaveAbort(\n outsideAbortEvent,\n itemEvent,\n {\n ...cellParams.value,\n trigger: itemEvent,\n newRowData: currentRow.value,\n },\n ...args,\n );\n };\n });\n\n return tListeners;\n });\n\n // 数据输入时触发\n const onEditChange = (val: any, ...args: any) => {\n editValue.value = val;\n const params = {\n ...cellParams.value,\n value: val,\n editedRow: { ...props.row, [props.col.colKey]: val },\n };\n editProps.value?.onChange?.(val, ...args);\n props.onChange?.(params);\n props.onRuleChange?.(params);\n editOnListeners.value?.onChange?.(params);\n const isCellEditable = props.editable === undefined;\n if (isCellEditable && isAbortEditOnChange.value) {\n const outsideAbortEvent = col.value.edit?.onEdited;\n updateAndSaveAbort(\n outsideAbortEvent,\n 'change',\n {\n ...cellParams.value,\n trigger: 'onChange',\n newRowData: currentRow.value,\n },\n ...args,\n );\n }\n if (col.value.edit?.validateTrigger === 'change') {\n validateEdit('self');\n }\n };\n\n const documentClickHandler = (e: MouseEvent) => {\n if (!col.value.edit || !col.value.edit.component) return;\n if (!isEdit.value) return;\n // @ts-ignore some browser is also only support e.path\n const path = e.composedPath?.() || e.path || [];\n const node = path.find((node: HTMLElement) => node.classList?.contains(`${classPrefix.value}-popup__content`));\n if (node) return;\n const outsideAbortEvent = col.value.edit.onEdited;\n updateAndSaveAbort(outsideAbortEvent, '', {\n ...cellParams.value,\n trigger: 'document',\n newRowData: currentRow.value,\n });\n };\n\n const enterEdit = () => {\n props.onEditableChange?.({\n ...cellParams.value,\n value: editValue.value,\n editedRow: props.row,\n isEdit: true,\n validateEdit,\n });\n };\n\n const onCellClick = (e: MouseEvent) => {\n isEdit.value = true;\n enterEdit();\n e.stopPropagation();\n };\n\n onMounted(() => {\n if (props.col.edit?.defaultEditable) {\n enterEdit();\n }\n });\n\n const cellValue = computed(() => get(row.value, col.value.colKey));\n\n watch(\n cellValue,\n (cellValue) => {\n editValue.value = cellValue;\n },\n { immediate: true },\n );\n\n watch(\n isEdit,\n (isEdit) => {\n const isCellEditable = props.editable === undefined;\n if (!col.value.edit || !col.value.edit.component || !isCellEditable) return;\n if (isEdit) {\n on(document, 'click', documentClickHandler);\n } else {\n off(document, 'click', documentClickHandler);\n }\n },\n { immediate: true },\n );\n\n watch(\n () => [props.editable, props.row, props.col, props.rowIndex, props.colIndex],\n ([editable]: [boolean]) => {\n // 退出编辑态时,恢复原始值,等待父组件传入新的 data 值\n if (editable === false) {\n editValue.value = cellValue.value;\n } else if (editable === true) {\n props.onRuleChange?.({\n ...cellParams.value,\n value: cellValue.value,\n editedRow: row.value,\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.errors,\n (errors) => {\n errorList.value = errors;\n },\n );\n\n return () => {\n if (props.readonly) {\n return cellNode.value;\n }\n // props.editable = undefined 表示由组件内部控制编辑状态\n if ((props.editable === undefined && !isEdit.value) || props.editable === false) {\n return (\n
    \n {cellNode.value}\n {col.value.edit?.showEditIcon !== false && }\n
    \n );\n }\n const Component = col.value.edit?.component;\n if (!Component) {\n log.error('Table', 'edit.component is required.');\n return null;\n }\n const errorMessage = errorList.value?.[0]?.message;\n const tmpEditOnListeners = { ...editOnListeners.value };\n delete tmpEditOnListeners.onChange;\n // remove conflict events\n if (col.value.edit?.abortEditOnEvent?.length) {\n col.value.edit.abortEditOnEvent.forEach((onEventName) => {\n if (tmpEditOnListeners[onEventName]) {\n delete tmpEditOnListeners[onEventName];\n }\n });\n }\n return (\n {\n e.stopPropagation();\n }}\n ref=\"tableEditableCellRef\"\n >\n \n \n );\n };\n },\n});\n","import { ref, computed, watch, toRefs } from 'vue';\nimport { get } from 'lodash-es';\nimport { set } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { PrimaryTableProps } from '../interface';\nimport { getEditableKeysMap } from '@tdesign/common-js/table/utils';\nimport { validate } from '../../form/utils/form-model';\nimport { cloneDeep } from 'lodash-es';\nimport {\n PrimaryTableRowEditContext,\n TableRowData,\n TableErrorListMap,\n PrimaryTableInstanceFunctions,\n ErrorListObjectType,\n PrimaryTableCellParams,\n} from '../type';\nimport { getCellKey, getRowKeyFromCell } from './useRowspanAndColspan';\nimport { OnEditableChangeContext } from '../editable-cell';\n\nexport interface TablePromiseErrorData {\n errors: ErrorListObjectType[];\n errorMap: TableErrorListMap;\n}\n\nexport default function useRowEdit(props: PrimaryTableProps) {\n const { editableRowKeys } = toRefs(props);\n const cellRuleMap = new Map[]>();\n // 校验不通过的错误信息,其中 key 值为 [rowValue, col.colKey].join('__')\n const errorListMap = ref({});\n // 处于编辑态的表格行\n const editableKeysMap = computed(() => getEditableKeysMap(props.editableRowKeys, props.data, props.rowKey || 'id'));\n // 当前编辑的单元格\n const editingCells = ref<{ [cellKey: string]: OnEditableChangeContext }>({});\n // 编辑状态的数据\n const editedFormData = ref<{ [rowValue: string]: { [colKey: string]: any } }>({});\n\n const getErrorListMapByErrors = (errors: ErrorListObjectType[]): TableErrorListMap => {\n const errorMap: TableErrorListMap = {};\n errors.forEach(({ row, col, errorList }) => {\n const rowValue = get(row, props.rowKey || 'id');\n const key = [rowValue, col.colKey].join('__');\n if (errorList?.length) {\n errorMap[key] = errorList;\n } else {\n delete errorMap[key];\n }\n });\n return errorMap;\n };\n\n // 校验一行的数据\n const validateOneRowData = (rowValue: any) => {\n const rowRules = cellRuleMap.get(rowValue);\n if (!rowRules) return;\n const list = rowRules.map(\n (item) =>\n new Promise>((resolve) => {\n const { editedRow, col } = item;\n const rules = isFunction(col.edit.rules) ? col.edit.rules(item) : col.edit.rules;\n if (!col.edit || !rules || !rules.length) {\n resolve({ ...item, errorList: [] });\n return;\n }\n validate(get(editedRow, col.colKey), rules).then((r) => {\n resolve({ ...item, errorList: r.filter((t) => !t.result) });\n });\n }),\n );\n return new Promise((resolve, reject) => {\n Promise.all(list).then((errors) => {\n resolve({\n errors: errors.filter((t) => t.errorList?.length),\n errorMap: getErrorListMapByErrors(errors),\n });\n }, reject);\n });\n };\n\n /**\n * 校验表格单行数据(对外开放方法,修改时需慎重)\n * @param rowValue 行唯一标识\n */\n const validateRowData: PrimaryTableInstanceFunctions['validateRowData'] = (rowValue: any) =>\n new Promise((resolve, reject) => {\n validateOneRowData(rowValue).then(({ errors, errorMap }) => {\n errorListMap.value = errorMap;\n // 缺少校验文本显示\n const tTrigger = 'parent';\n props.onRowValidate?.({ trigger: tTrigger, result: errors });\n resolve({ trigger: tTrigger, result: errors });\n }, reject);\n });\n\n // 校验可编辑单元格\n const validateTableCellData = (): Promise<{ result: TableErrorListMap }> => {\n const cellKeys = Object.keys(editingCells.value);\n\n // 过滤不存在的行,如删除操作\n const existKeys = props.data.map((v) => v[props.rowKey]?.toString());\n const promiseList = cellKeys\n .filter((v) => existKeys.includes(getRowKeyFromCell(v)))\n .map((cellKey) => editingCells.value[cellKey].validateEdit('parent'));\n return new Promise((resolve, reject) => {\n Promise.all(promiseList).then((arr) => {\n const allErrorListMap: TableErrorListMap = {};\n arr.forEach((result, index) => {\n if (result === true) return;\n allErrorListMap[cellKeys[index]] = result;\n });\n props.onValidate?.({ result: allErrorListMap });\n resolve({ result: allErrorListMap });\n }, reject);\n });\n };\n\n /**\n * 校验整个表格数据(对外开放方法,修改时需慎重)\n */\n const validateTableData: PrimaryTableInstanceFunctions['validateTableData'] = () => {\n if (Object.keys(editingCells.value).length) {\n return validateTableCellData();\n }\n const promiseList: Promise[] = [];\n\n const data = props.data || [];\n for (let i = 0, len = data.length; i < len; i++) {\n const rowValue = get(data[i], props.rowKey || 'id');\n promiseList.push(validateOneRowData(rowValue));\n }\n return new Promise((resolve, reject) => {\n Promise.all(promiseList).then((rList) => {\n const allErrorListMap: TableErrorListMap = {};\n rList.forEach(({ errorMap } = { errors: [], errorMap: {} }) => {\n errorMap && Object.assign(allErrorListMap, errorMap);\n });\n errorListMap.value = allErrorListMap;\n props.onValidate?.({ result: allErrorListMap });\n resolve({ result: allErrorListMap });\n }, reject);\n });\n };\n\n /** 更新编辑态单元格数据 */\n const onUpdateEditedCell = (rowValue: any, lastRowData: TableRowData, data: { [key: string]: any }) => {\n if (!editedFormData.value[rowValue]) {\n editedFormData.value[rowValue] = cloneDeep(lastRowData);\n }\n Object.entries(data).forEach(([key, val]) => {\n set(editedFormData.value[rowValue], key, val);\n });\n };\n\n const onRuleChange = (context: PrimaryTableRowEditContext) => {\n // 编辑行,预存校验信息,方便最终校验\n if (props.editableRowKeys) {\n const rowValue = get(context.row, props.rowKey || 'id');\n const rules = cellRuleMap.get(rowValue);\n if (rules) {\n const index = rules.findIndex((t) => t.col.colKey === context.col.colKey);\n if (index === -1) {\n rules.push(context);\n } else {\n rules[index] = context;\n }\n cellRuleMap.set(rowValue, rules);\n } else {\n cellRuleMap.set(rowValue, [context]);\n }\n }\n };\n\n const clearValidateData = () => {\n errorListMap.value = {};\n };\n\n const onPrimaryTableCellEditChange = (params: OnEditableChangeContext) => {\n const cellKey = getCellKey(params.row, props.rowKey, params.col.colKey, params.colIndex);\n\n if (params.isEdit) {\n // @ts-ignore\n editingCells.value[cellKey] = params;\n } else {\n delete editingCells.value[cellKey];\n }\n };\n\n const getEditRowData = ({ row, col }: PrimaryTableCellParams) => {\n const rowValue = get(row, props.rowKey || 'id');\n const editedRowData = editedFormData.value[rowValue];\n if (editedRowData && props.editableRowKeys?.includes(rowValue)) {\n const tmpRow = { ...editedRowData };\n set(tmpRow, col.colKey, get(editedRowData, col.colKey));\n return tmpRow;\n }\n return row;\n };\n\n watch(\n () => editableRowKeys.value?.join(','),\n (keyStr) => {\n const editableRowKeys = keyStr.split(',');\n const rowValueList = Object.keys(editedFormData.value);\n rowValueList.forEach((key) => {\n if (!editableRowKeys.includes(key)) {\n // clear exited editable state row data\n delete editedFormData.value[key];\n }\n });\n },\n );\n\n return {\n editedFormData,\n errorListMap,\n editableKeysMap,\n validateTableData,\n validateTableCellData,\n validateRowData,\n onRuleChange,\n clearValidateData,\n onUpdateEditedCell,\n getEditRowData,\n onPrimaryTableCellEditChange,\n };\n}\n","import { computed, defineComponent, toRefs, h, ref, onMounted, getCurrentInstance } from 'vue';\nimport { get } from 'lodash-es';\nimport { omit } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useColumnController from './hooks/useColumnController';\nimport useRowExpand from './hooks/useRowExpand';\nimport useTableHeader, { renderTitle } from './hooks/useTableHeader';\nimport useRowSelect from './hooks/useRowSelect';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, PrimaryTableCellParams } from './type';\nimport useSorter from './hooks/useSorter';\nimport useFilter from './hooks/useFilter';\nimport useDragSort from './hooks/useDragSort';\nimport useAsyncLoading from './hooks/useAsyncLoading';\nimport EditableCell, { EditableCellProps } from './editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\nimport { useConfig } from '../hooks/useConfig';\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\nimport { ScrollToElementParams } from '../hooks/useVirtualScrollNew';\nimport { BaseTableProps } from './interface';\n\nexport { BASE_TABLE_ALL_EVENTS } from './base-table';\n\nconst OMIT_PROPS = [\n 'hideSortTips',\n 'dragSort',\n 'defaultExpandedRowKeys',\n 'defaultSelectedRowKeys',\n 'columnController',\n 'filterRow',\n 'sortOnRowDraggable',\n 'expandOnRowClick',\n 'expand-on-row-click',\n 'expanded-row',\n 'editable-row-keys',\n 'editable-cell-state',\n 'filter-value',\n 'multipleSort',\n 'expandIcon',\n 'expand-icon',\n 'reserveSelectedRowOnPaginate',\n 'expandedRowKeys',\n 'expandedRow',\n 'reserve-selected-row-on-paginate',\n 'reserveSelectedRowOnPaginate',\n 'selected-row-keys',\n 'selectedRowKeys',\n 'selectOnRowClick',\n 'column-controller',\n 'columnController',\n 'dragSort',\n 'drag-sort',\n 'hideSortTips',\n 'showSortColumnBgColor',\n 'filter-row',\n 'filterRow',\n 'multiple-sort',\n 'multipleSort',\n 'async-loading',\n 'onChange',\n 'onAsyncLoadingClick',\n 'onColumnChange',\n 'onColumnControllerVisibleChange',\n 'onDataChange',\n 'onDisplayColumnsChange',\n 'onDragSort',\n 'onExpandChange',\n 'onFilterChange',\n 'onSelectChange',\n 'onSortChange',\n];\n\nexport default defineComponent({\n name: 'TPrimaryTable',\n\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n },\n\n setup(props, context) {\n const renderTNode = useTNodeJSX();\n const { columns, columnController } = toRefs(props);\n const primaryTableRef = ref(null);\n const showElement = ref(false);\n\n const { classPrefix, tableDraggableClasses, tableBaseClass, tableSelectedClasses, tableSortClasses } =\n useClassName();\n const { globalConfig } = useConfig('table', props.locale);\n const { sizeClassNames } = useStyle(props);\n const tableSize = computed(() => props.size ?? globalConfig.value.size);\n // 自定义列配置功能\n const { tDisplayColumns, renderColumnController } = useColumnController(props, context);\n\n // 展开/收起行功能\n const {\n showExpandedRow,\n showExpandIconColumn,\n getExpandColumn,\n renderExpandedRow,\n onInnerExpandRowClick,\n getExpandedRowClass,\n } = useRowExpand(props, context);\n\n // 排序功能\n const { renderSortIcon } = useSorter(props, context);\n\n // 行选中功能\n const {\n selectColumn,\n showRowSelect,\n selectedRowClassNames,\n currentPaginateData,\n formatToRowSelectColumn,\n setTSelectedRowKeys,\n onInnerSelectRowClick,\n handleRowSelectWithAreaSelection,\n } = useRowSelect(props, tableSelectedClasses);\n\n // 过滤功能\n const {\n hasEmptyCondition,\n isTableOverflowHidden,\n renderFilterIcon,\n renderFirstFilterRow,\n setFilterPrimaryTableRef,\n } = useFilter(props, context);\n\n // 拖拽排序功能\n const dragSortParams = computed(() => ({\n showElement: showElement.value,\n }));\n const {\n isRowHandlerDraggable,\n isRowDraggable,\n isColDraggable,\n innerPagination,\n setDragSortPrimaryTableRef,\n setDragSortColumns,\n } = useDragSort(props, context, dragSortParams);\n\n const { renderTitleWidthIcon } = useTableHeader(props);\n const { renderAsyncLoading } = useAsyncLoading(props);\n\n // 可编辑行\n const {\n errorListMap,\n editableKeysMap,\n validateRowData,\n validateTableData,\n validateTableCellData,\n onRuleChange,\n clearValidateData,\n onUpdateEditedCell,\n getEditRowData,\n onPrimaryTableCellEditChange,\n } = useEditableRow(props);\n\n const innerKeyboardRowHover = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n const innerDisableSpaceInactiveRow = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n const primaryTableClasses = computed(() => {\n return {\n [tableDraggableClasses.colDraggable]: isColDraggable.value,\n [tableDraggableClasses.rowHandlerDraggable]: isRowHandlerDraggable.value,\n [tableDraggableClasses.rowDraggable]: isRowDraggable.value,\n [tableBaseClass.overflowVisible]: isTableOverflowHidden.value === false,\n [tableBaseClass.tableRowEdit]: props.editableRowKeys,\n [`${classPrefix}-table--select-${selectColumn.value?.type}`]: selectColumn.value,\n [`${classPrefix}-table--row-select`]: showRowSelect.value,\n [`${classPrefix}-table--row-expandable`]: showExpandedRow.value,\n };\n });\n\n // 如果想给 TR 添加类名,请在这里补充,不要透传更多额外 Props 到 BaseTable\n const tRowClassNames = computed(() => {\n const tClassNames = [props.rowClassName, selectedRowClassNames.value, getExpandedRowClass];\n return tClassNames.filter((v) => v);\n });\n\n // 如果想给 TR 添加属性,请在这里补充,不要透传更多额外 Props 到 BaseTable\n const tRowAttributes = computed(() => {\n const tAttributes = [props.rowAttributes];\n if (isRowHandlerDraggable.value || isRowDraggable.value) {\n tAttributes.push(({ row }) => ({ 'data-id': get(row, props.rowKey || 'id') }));\n }\n return tAttributes.filter((v) => v);\n });\n\n // 多个 Hook 共用 primaryTableRef\n onMounted(() => {\n setFilterPrimaryTableRef(primaryTableRef.value);\n setDragSortPrimaryTableRef(primaryTableRef.value);\n });\n\n // 对外暴露的方法\n context.expose({\n validateRowData,\n validateTableData,\n validateTableCellData,\n clearValidateData,\n refreshTable: () => {\n primaryTableRef.value.refreshTable();\n },\n scrollToElement: (data: ScrollToElementParams) => {\n primaryTableRef.value.scrollToElement(data);\n },\n scrollColumnIntoView: (colKey: string) => {\n primaryTableRef.value.scrollColumnIntoView(colKey);\n },\n // 暴露基础表格 ref 及相关方法\n baseTableRef: primaryTableRef,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const onEditableCellChange: EditableCellProps['onChange'] = (params) => {\n props.onRowEdit?.(params);\n const rowValue = get(params.editedRow, props.rowKey || 'id');\n onUpdateEditedCell(rowValue, params.row, {\n [params.col.colKey]: params.value,\n });\n };\n\n // 1. 影响列数量的因素有:自定义列配置、展开/收起行、多级表头;2. 影响表头内容的因素有:排序图标、筛选图标\n const getColumns = (columns: PrimaryTableCol[], parentDisplay = false) => {\n const arr: PrimaryTableCol[] = [];\n for (let i = 0, len = columns.length; i < len; i++) {\n let item = { ...columns[i] };\n // 自定义列显示控制\n const isDisplayColumn = item.children?.length || tDisplayColumns.value?.includes(item.colKey);\n if (\n !isDisplayColumn &&\n (props.columnController || props.displayColumns || props.defaultDisplayColumns) &&\n !parentDisplay\n )\n continue;\n item = formatToRowSelectColumn(item);\n const { sort } = props;\n if (item.sorter && props.showSortColumnBgColor) {\n const sorts = sort instanceof Array ? sort : [sort];\n const sortedColumn = sorts.find(\n (sort) => sort && sort.sortBy === item.colKey && sort.descending !== undefined,\n );\n if (sortedColumn) {\n item.className =\n item.className instanceof Array\n ? item.className.concat(tableSortClasses.sortColumn)\n : [item.className, tableSortClasses.sortColumn];\n }\n }\n // 添加排序图标和过滤图标\n if (item.sorter || item.filter) {\n const titleContent = renderTitle(context.slots, item, i);\n const { ellipsisTitle } = item;\n item.title = (h, p) => {\n const sortIcon = item.sorter ? renderSortIcon(p) : null;\n const filterIcon = item.filter ? renderFilterIcon(p) : null;\n // @ts-ignore 注意:此处 Vue2 和 Vue3 有所不同\n const attach = primaryTableRef.value?.tableContentRef;\n return renderTitleWidthIcon(\n [titleContent, sortIcon, filterIcon],\n p.col,\n p.colIndex,\n ellipsisTitle,\n attach,\n {\n classPrefix,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n },\n );\n };\n item.ellipsisTitle = false;\n }\n // 如果是单元格可编辑状态\n if (item.edit?.component) {\n const oldCell = item.cell;\n item.cell = (h, p: PrimaryTableCellParams) => {\n const cellProps: EditableCellProps = {\n ...p,\n row: getEditRowData(p),\n oldCell,\n rowKey: props.rowKey || 'id',\n tableBaseClass,\n cellEmptyContent: props.cellEmptyContent,\n onChange: onEditableCellChange,\n onValidate: props.onRowValidate,\n onRuleChange,\n onEditableChange: onPrimaryTableCellEditChange,\n };\n if (props.editableRowKeys) {\n const rowValue = get(p.row, props.rowKey || 'id');\n cellProps.editable = editableKeysMap.value[rowValue] || false;\n const key = [rowValue, p.col.colKey].join('__');\n const errorList = errorListMap.value?.[key];\n errorList && (cellProps.errors = errorList);\n }\n if (props.editableCellState) {\n cellProps.readonly = !props.editableCellState(p);\n }\n return ;\n };\n }\n if (item.children?.length) {\n item.children = getColumns(item.children, parentDisplay || tDisplayColumns.value?.includes(item.colKey));\n }\n // 多级表头和自定义列配置特殊逻辑:要么子节点不存在,要么子节点长度大于 1,方便做自定义列配置\n if (!item.children || item.children?.length) {\n arr.push(item);\n }\n }\n return arr;\n };\n\n const tColumns = computed(() => {\n const cols = getColumns(columns.value);\n if (showExpandIconColumn.value) {\n cols.unshift(getExpandColumn());\n }\n return cols;\n });\n\n const onInnerPageChange = (pageInfo: PageInfo, newData: Array) => {\n innerPagination.value = { ...innerPagination.value, ...pageInfo };\n currentPaginateData.value = newData;\n props.onPageChange?.(pageInfo, newData);\n const changeParams: Parameters = [\n { pagination: pageInfo },\n { trigger: 'pagination', currentData: newData },\n ];\n props.onChange?.(...changeParams);\n // 是否在分页时保留选中结果,如果不保留则需清空\n if (!props.reserveSelectedRowOnPaginate) {\n setTSelectedRowKeys([], {\n selectedRowData: [],\n type: 'uncheck',\n currentRowKey: 'CLEAR_ON_PAGINATE',\n });\n }\n };\n\n const onInnerActiveRowAction: BaseTableProps['onActiveRowAction'] = (params) => {\n props.onActiveRowAction?.(params);\n handleRowSelectWithAreaSelection(params);\n };\n\n const onSingleRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n if (props.expandOnRowClick) {\n onInnerExpandRowClick(params);\n }\n if (props.selectOnRowClick) {\n onInnerSelectRowClick(params);\n }\n };\n\n // handle click and dblclick exits at the same time\n let timer: any;\n const DURATION = 250;\n const onInnerRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n // no dbl click conflict, no delay\n if (!props.onRowDblclick) {\n onSingleRowClick(params);\n return;\n }\n if (timer) {\n // dblclick\n clearTimeout(timer);\n timer = undefined;\n } else {\n timer = setTimeout(() => {\n onSingleRowClick(params);\n timer = undefined;\n }, DURATION);\n }\n };\n\n const onShowElementChange = (val: boolean) => {\n showElement.value = val;\n };\n\n const formatNode = (\n api: 'topContent' | 'bottomContent' | 'firstFullRow' | 'lastFullRow',\n renderInnerNode: Function,\n condition: boolean,\n extra?: { reverse?: boolean },\n ) => {\n if (!condition) return props[api];\n const innerNode = renderInnerNode(h);\n const propsNode = renderTNode(api);\n if (innerNode && !propsNode) return () => innerNode;\n if (propsNode && !innerNode) return () => propsNode;\n if (innerNode && propsNode) {\n return () =>\n extra?.reverse ? (\n
    \n {innerNode}\n {propsNode}\n
    \n ) : (\n
    \n {propsNode}\n {innerNode}\n
    \n );\n }\n return null;\n };\n\n return () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n // @ts-ignore\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n const isBottomController = isColumnController && placement?.indexOf('bottom') !== -1;\n const topContent = formatNode('topContent', renderColumnController, isColumnController && !isBottomController);\n const bottomContent = formatNode('bottomContent', renderColumnController, isBottomController, {\n reverse: true,\n });\n const firstFullRow = formatNode('firstFullRow', renderFirstFilterRow, !hasEmptyCondition.value);\n const lastFullRow = formatNode('lastFullRow', renderAsyncLoading, !!props.asyncLoading);\n\n // important for base-table controlled properties\n const { vnode } = getCurrentInstance();\n\n const baseTableProps: BaseTableProps = {\n ...omit(vnode.props, OMIT_PROPS),\n rowKey: props.rowKey,\n rowClassName: tRowClassNames.value,\n rowAttributes: tRowAttributes.value,\n columns: tColumns.value,\n keyboardRowHover: props.keyboardRowHover ?? innerKeyboardRowHover.value,\n disableSpaceInactiveRow: props.disableSpaceInactiveRow ?? innerDisableSpaceInactiveRow.value,\n topContent,\n bottomContent,\n firstFullRow,\n lastFullRow,\n thDraggable: ['col', 'row-handler-col'].includes(props.dragSort),\n onShowElementChange,\n onPageChange: onInnerPageChange,\n renderExpandedRow: showExpandedRow.value ? renderExpandedRow : undefined,\n onActiveRowAction: onInnerActiveRowAction,\n };\n\n if (props.expandOnRowClick || props.selectOnRowClick) {\n baseTableProps.onRowClick = onInnerRowClick;\n }\n\n return (\n \n );\n };\n },\n});\n","import { computed, SetupContext, toRefs, h } from 'vue';\nimport { ChevronRightCircleIcon as TdChevronRightCircleIcon } from 'tdesign-icons-vue-next';\nimport { get } from 'lodash-es';\n\nimport {\n TdPrimaryTableProps,\n PrimaryTableCol,\n TableRowData,\n PrimaryTableCellParams,\n TableExpandedRowParams,\n RowEventContext,\n RowClassNameParams,\n} from '../type';\nimport useClassName from './useClassName';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useConfig } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\n\nexport default function useRowExpand(props: TdPrimaryTableProps, context: SetupContext) {\n const { expandedRowKeys } = toRefs(props);\n const renderTNode = useTNodeJSX();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { ChevronRightCircleIcon } = useGlobalIcon({ ChevronRightCircleIcon: TdChevronRightCircleIcon });\n const { tableExpandClasses, positiveRotate90, tableFullRowClasses } = useClassName();\n // controlled and uncontrolled\n const [tExpandedRowKeys, setTExpandedRowKeys] = useDefaultValue(\n expandedRowKeys,\n props.defaultExpandedRowKeys || [],\n props.onExpandChange,\n 'expandedRowKeys',\n );\n\n const showExpandedRow = computed(() =>\n Boolean(props.expandedRow || context.slots.expandedRow || context.slots['expanded-row']),\n );\n\n const showExpandIconColumn = computed(() => props.expandIcon !== false && showExpandedRow.value);\n\n const isFirstColumnFixed = computed(() => props.columns?.[0]?.fixed === 'left');\n\n const getExpandedRowClass = (params: RowClassNameParams) => {\n // 如果没有配置展开行,则不需要增加展开收起相关的类名\n if (!showExpandedRow.value) return null;\n const { row, rowKey } = params;\n const currentRowKey = get(row, rowKey || 'id');\n return tableExpandClasses[tExpandedRowKeys.value?.includes(currentRowKey) ? 'rowExpanded' : 'rowFolded'];\n };\n\n const onToggleExpand = (e: MouseEvent, row: TableRowData) => {\n props.expandOnRowClick && e.stopPropagation();\n const currentId = get(row, props.rowKey || 'id');\n const index = tExpandedRowKeys.value.indexOf(currentId);\n const newKeys = [...tExpandedRowKeys.value];\n index !== -1 ? newKeys.splice(index, 1) : newKeys.push(currentId);\n setTExpandedRowKeys(newKeys, {\n expandedRowData: props.data.filter((t) => newKeys.includes(get(t, props.rowKey || 'id'))),\n currentRowData: row,\n });\n };\n\n const renderExpandIcon = (_: typeof h, p: PrimaryTableCellParams) => {\n const { row, rowIndex } = p;\n const currentId = get(row, props.rowKey || 'id');\n const expanded = tExpandedRowKeys.value.includes(currentId);\n const icon = renderTNode('expandIcon', {\n defaultNode: t(globalConfig.value.expandIcon) || ,\n params: { row, index: rowIndex },\n });\n if (!icon) return null;\n const classes = [\n tableExpandClasses.iconBox,\n tableExpandClasses[expanded ? 'expanded' : 'collapsed'],\n { [positiveRotate90]: expanded },\n ];\n return (\n onToggleExpand(e, row)}>\n {icon}\n \n );\n };\n\n const getExpandColumn = () => {\n const expandCol: PrimaryTableCol = {\n colKey: '__EXPAND_ROW_ICON_COLUMN__',\n width: 46,\n className: tableExpandClasses.iconCell,\n fixed: isFirstColumnFixed.value ? 'left' : undefined,\n cell: renderExpandIcon,\n stopPropagation: true,\n };\n return expandCol;\n };\n\n const renderExpandedRow = (\n p: TableExpandedRowParams & { tableWidth: number; isWidthOverflow: boolean },\n ) => {\n const rowId = get(p.row, props.rowKey || 'id');\n if (!tExpandedRowKeys.value || !tExpandedRowKeys.value.includes(rowId)) return null;\n const isFixedLeft = p.isWidthOverflow && props.columns.find((item) => item.fixed === 'left');\n return (\n \n \n \n
    {renderTNode('expandedRow', { params: p })}
    \n \n \n \n );\n };\n\n const onInnerExpandRowClick = (p: RowEventContext) => {\n onToggleExpand(p.e as MouseEvent, p.row);\n };\n\n return {\n showExpandedRow,\n showExpandIconColumn,\n getExpandColumn,\n renderExpandedRow,\n onInnerExpandRowClick,\n getExpandedRowClass,\n };\n}\n","import { isString } from 'lodash-es';\nimport { computed } from 'vue';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { TdPrimaryTableProps } from '../type';\nimport Loading from '../../loading';\nimport useClassName from './useClassName';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport default function useAsyncLoading(props: TdPrimaryTableProps) {\n const renderTNode = useTNodeJSX();\n const { globalConfig } = useConfig('table', props.locale);\n const { isLoadingClass, isLoadMoreClass, asyncLoadingClass } = useClassName();\n\n const classes = computed(() => [\n asyncLoadingClass,\n {\n [isLoadingClass]: props.asyncLoading === 'loading',\n [isLoadMoreClass]: props.asyncLoading === 'load-more',\n },\n ]);\n\n function onLoadClick() {\n if (!isString(props.asyncLoading)) return;\n props.onAsyncLoadingClick?.({ status: props.asyncLoading });\n }\n\n function renderAsyncLoading() {\n const asyncLoadingNode = renderTNode('asyncLoading');\n if (isString(asyncLoadingNode)) {\n const { asyncLoading } = props;\n const loadingText = {\n 'load-more': globalConfig.value.loadingMoreText,\n loading: globalConfig.value.loadingText,\n }[String(asyncLoading)];\n return (\n
    \n {}\n
    \n );\n }\n if (![null, false, undefined].includes(asyncLoadingNode)) {\n return (\n
    \n {asyncLoadingNode}\n
    \n );\n }\n return null;\n }\n return {\n renderAsyncLoading,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdEnhancedTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 树形结构中,拖拽排序前控制,返回值为 `true` 则继续排序;返回值为 `false` 则中止排序还原数据 */\n beforeDragSort: {\n type: Function as PropType,\n },\n /** 展开的树形节点。非必须。在需要自由控制展开的树形节点时使用。其他场景无需设置,表格组件有内置展开逻辑 */\n expandedTreeNodes: {\n type: Array as PropType,\n default: undefined as TdEnhancedTableProps['expandedTreeNodes'],\n },\n /** 展开的树形节点。非必须。在需要自由控制展开的树形节点时使用。其他场景无需设置,表格组件有内置展开逻辑,非受控属性 */\n defaultExpandedTreeNodes: {\n type: Array as PropType,\n default: (): TdEnhancedTableProps['defaultExpandedTreeNodes'] => [],\n },\n /** 树形结构相关配置。具体属性文档查看 `TableTreeConfig` 相关描述 */\n tree: {\n type: Object as PropType,\n },\n /** 自定义树形结构展开图标,支持全局配置 `GlobalConfigProvider` */\n treeExpandAndFoldIcon: {\n type: Function as PropType,\n },\n /** 异常拖拽排序时触发,如:树形结构中,非同层级之间的交换。`context.code` 指交换异常错误码,固定值;`context.reason` 指交换异常的原因 */\n onAbnormalDragSort: Function as PropType,\n /** 树形结构,展开的树节点发生变化时触发,泛型 T 指表格数据类型 */\n onExpandedTreeNodesChange: Function as PropType,\n /** 已废弃。树形结构,用户操作引起节点展开或收起时触发。请更为使用 `onExpandedTreeNodesChange` */\n onTreeExpandChange: Function as PropType,\n};\n","import { isUndefined, get, set } from 'lodash-es';\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-use-before-define */\nimport { isRowSelectedDisabled } from './utils';\nimport { PrimaryTableCol, TableRowState, TableRowValue, TableRowData } from './types';\nimport log from '../log';\n\nexport type TableTreeDataMap = Map;\n\nexport interface TableRowModel extends TableRowState {\n setData?: (key: string | number, data: T) => void;\n}\n\nexport interface KeysType {\n rowKey: string;\n childrenKey: string;\n}\n\nexport interface SwapParams {\n current: T;\n target: T;\n currentIndex: number;\n targetIndex: number;\n}\n\nexport const TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL = {\n code: 1001,\n reason: 'The same level of rows can not be swapped.',\n};\n\n/**\n * 获取行唯一标识\n * @param row 行数据\n * @param colKey 列字段\n * @param rowIndex 行下标\n * @param level 层级\n */\nexport function getUniqueRowValue(row: TableRowData, colKey: string, rowIndex: number = 0, level: number = 0) {\n const rowValue = get(row, colKey);\n return rowIndex || level ? `${rowValue}_${rowIndex || 0}_${level || 0}}` : rowValue;\n}\n\n/**\n * 表格树形结构处理器\n * Vue 和 React 可以通用\n * 关键函数有以下几个\n * @toggleExpandData 处理树形结构展开收起\n * @setData 更新当行数据\n * @getData 获取单行数据\n * @remove 移除行数据,及其子节点\n * @appendTo 追加子节点到末尾\n */\nclass TableTreeStore {\n /** 树形结构 Map 存储 */\n treeDataMap: TableTreeDataMap = new Map();\n\n expandAllRowIndex: 0;\n\n constructor() {\n this.treeDataMap = new Map();\n }\n\n /**\n * 初始化 treeDataMap,不会改变 dataSource\n * @param dataSource 树形数据源\n * @param columns 列配置\n * @param keys 字段别名\n */\n initialTreeStore(dataSource: T[], columns: PrimaryTableCol[], keys: KeysType) {\n this.treeDataMap?.clear();\n this.initialTreeDataMap(this.treeDataMap, dataSource, columns.find((col) => col.colKey === 'row-select'), keys);\n }\n\n /**\n * 获取所有节点的唯一标识\n */\n getAllUniqueKeys(data: T[], keys: KeysType, arr: T[] = []) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n arr.push(getUniqueRowValue(item, keys.rowKey));\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.getAllUniqueKeys(children, keys, arr);\n }\n }\n return arr;\n }\n\n getExpandedChildrenKeys(data: T[], keys: KeysType, arr: (string | number)[] = []) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n const rowValue = getUniqueRowValue(item, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n if (rowState.expanded) {\n arr.push(rowValue);\n }\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.getExpandedChildrenKeys(children, keys, arr);\n }\n }\n return arr;\n }\n\n expandTreeNode(rowList: (string | number)[], dataSource: T[], keys: KeysType) {\n if (!rowList.length) return dataSource;\n rowList.forEach((rowValue) => {\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState) return;\n this.toggleExpandData({ row: rowState.row as T, rowIndex: rowState.rowIndex }, dataSource, keys, 'expand');\n });\n return dataSource;\n }\n\n foldTreeNode(rowList: (string | number)[], dataSource: T[], keys: KeysType) {\n if (!rowList.length) return dataSource;\n rowList.forEach((rowValue) => {\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState) return;\n this.toggleExpandData({ row: rowState.row as T, rowIndex: rowState.rowIndex }, dataSource, keys, 'fold');\n });\n return dataSource;\n }\n\n toggleExpandData(p: { rowIndex: number; row: T }, dataSource: T[], keys: KeysType, type?: 'expand' | 'fold') {\n if (!p) {\n log.error('EnhancedTable', 'the node toggleExpanded doest not exist in `data`');\n return dataSource;\n }\n const rowValue = get(p.row, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return [];\n }\n const childrenNodes = get(p.row, keys.childrenKey);\n // childrenNodes = true,表示懒加载,直接返回,暂时不做展开处理\n if (childrenNodes === true) return dataSource;\n const r = this.treeDataMap.get(rowValue);\n if (type === 'expand' && r.expanded) return dataSource;\n if (type === 'fold' && !r.expanded) return dataSource;\n r.rowIndex = r.rowIndex ?? p.rowIndex;\n r.expanded = !r.expanded;\n this.treeDataMap.set(rowValue, r);\n return this.updateExpandRow(r, dataSource, keys);\n }\n\n updateExpandRow(changeRow: TableRowState, dataSource: T[], keys: KeysType): T[] {\n const { row, rowIndex, expanded } = changeRow;\n const { treeDataMap } = this;\n const childrenNodes = get(row, keys.childrenKey);\n if (!row || !childrenNodes) return dataSource;\n if (expanded) {\n updateChildrenRowState(treeDataMap, changeRow, expanded, keys);\n updateRowExpandLength(treeDataMap, row, childrenNodes.length, 'expand', keys);\n // eslint-disable-next-line\n dataSource.splice.apply(dataSource, [rowIndex + 1, 0].concat(childrenNodes));\n } else {\n updateChildrenRowState(treeDataMap, changeRow, expanded, keys);\n const len = changeRow.expandChildrenLength || childrenNodes.length;\n updateRowExpandLength(treeDataMap, row, -1 * len, 'fold', keys);\n dataSource.splice(rowIndex + 1, len);\n }\n // 展开或收起后,会影响后续节点的 rowIndex,需同步更新\n updateRowIndex(treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: rowIndex + 1,\n });\n return dataSource;\n }\n\n /**\n * 获取当前行全部数据\n * @param key 行唯一标识\n * @returns {TableRowState} 当前行数据\n */\n getData(key: TableRowValue): TableRowState {\n return this.treeDataMap.get(key);\n }\n\n /**\n * 更新当前行数据,并返回当前行下标\n * @param rowValue 当前行唯一标识值\n * @param newRowData 新行数据\n * @returns {number} rowIndex 设置的行下标\n */\n updateData(rowValue: TableRowValue, newRowData: T, dataSource: T[], keys: KeysType): number {\n const newRowValue = getUniqueRowValue(newRowData, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n // Map 没有查询到,或者查询到的 rowIndex 值为 -1,均表示当前数据不在 dataSource 列表中,未显示在页面中\n if (!rowState || rowState.rowIndex === -1) {\n updateRowData(dataSource, rowValue, newRowData, {\n rowKey: keys.rowKey,\n childrenKey: keys.childrenKey,\n });\n return -1;\n }\n\n // 懒加载处理:children 为 true,则需清空子元素在 map 中的值,而后方便重新加载\n if (get(newRowData, keys.childrenKey) === true) {\n const oldChildren = get(rowState.row, keys.childrenKey);\n if (oldChildren?.length) {\n for (let i = 0, len = oldChildren.length; i < len; i++) {\n const rowValue = getUniqueRowValue(oldChildren[i], keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n if (state) {\n this.treeDataMap.delete(rowValue);\n }\n }\n }\n }\n\n const currentRowIndex = rowState.rowIndex;\n rowState.row = newRowData;\n rowState.id = newRowValue;\n\n // 更新父元素中存储的当前元素值\n if (rowState.parent) {\n // 更新直接子元素数组\n const siblings = get(rowState.parent.row, keys.childrenKey);\n const index = siblings.findIndex((item: T) => getUniqueRowValue(item, keys.rowKey) === rowValue);\n siblings[index] = newRowData;\n }\n\n this.treeDataMap.set(newRowValue, rowState);\n // rowValue 也发生了变化,需移除 旧 rowValue 数据\n if (rowValue !== newRowValue) {\n this.treeDataMap.delete(rowValue);\n }\n return currentRowIndex;\n }\n\n /**\n * 移除指定节点\n * @param key 行唯一标识\n */\n remove(key: TableRowValue, dataSource: T[], keys: KeysType): T[] {\n const r = this.treeDataMap.get(key);\n if (r && r.rowIndex >= 0) {\n // 移除当前节点时,展开的节点的子节点需同步移除\n const removeNumber = (r.expandChildrenLength || 0) + 1;\n dataSource.splice(r.rowIndex, removeNumber);\n\n if (r.parent) {\n const siblings = get(r.parent.row, keys.childrenKey);\n const index = siblings.findIndex((item: TableRowData) => get(item, keys.rowKey) === key);\n siblings.splice(index, 1);\n updateRowExpandLength(this.treeDataMap, r.parent.row, -1 * removeNumber, 'delete', keys);\n }\n\n this.treeDataMap.delete(key);\n\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: r.rowIndex,\n rowKey: keys.rowKey,\n type: 'remove',\n });\n } else {\n log.warn('EnhancedTable', 'Can not remove this node, which is not appeared.');\n }\n return dataSource;\n }\n\n /**\n * 清除子节点\n * @param key\n * @param dataSource\n * @param keys\n */\n removeChildren(key: TableRowValue, dataSource: T[], keys: KeysType): T[] {\n const r = this.treeDataMap.get(key);\n if (r && r.rowIndex >= 0) {\n const removeNumber = r.expandChildrenLength || 0;\n if (removeNumber) {\n dataSource.splice(r.rowIndex + 1, removeNumber);\n }\n if (r.parent) {\n updateRowExpandLength(this.treeDataMap, r.parent.row, -1 * removeNumber, 'delete', keys);\n }\n r.expandChildrenLength = 0;\n r.expanded = false;\n set(r.row, keys.childrenKey, undefined);\n this.treeDataMap.set(key, r);\n // 更新 rowIndex 之后的下标\n if (removeNumber) {\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: r.rowIndex + 1,\n rowKey: keys.rowKey,\n type: 'remove',\n });\n }\n } else {\n log.warn('EnhancedTable', 'Can not remove this node\\'s children, which is not appeared.');\n }\n return dataSource;\n }\n\n /**\n * 为当前节点添加子节点,默认添加到最后一个节点。允许添加单个或多个\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n appendTo(rowValue: string | number, newData: T | T[], dataSource: T[], keys: KeysType): T[] {\n const state = this.treeDataMap.get(rowValue);\n if (!this.validateDataExist(state, rowValue)) return dataSource;\n const children: T[] = get(state.row, keys.childrenKey);\n // 子节点不存在,则表示为叶子节点\n const isShowNewNode = state.expanded || !children?.length;\n // 添加多个子节点时,需去除重复子节点\n const tmpData = newData instanceof Array ? newData : [newData];\n const newChildrenData: T[] = [];\n const newChildrenStates: TableRowState[] = [];\n let firstNewChildrenIndex = -1;\n for (let i = 0, len = tmpData.length; i < len; i++) {\n const oneData = tmpData[i];\n const newRowValue = getUniqueRowValue(oneData, keys.rowKey);\n const mapState = this.treeDataMap.get(newRowValue);\n if (!this.validateDataDoubleExist(mapState, newRowValue)) {\n log.warn('Table', `Duplicated Data \\`${newRowValue}\\` has been removed.`);\n } else {\n const rowIndex = isShowNewNode ? state.rowIndex + (state.expandChildrenLength || 0) + (i + 1) : -1;\n if (i === 0) {\n firstNewChildrenIndex = rowIndex;\n }\n const newState = {\n id: newRowValue,\n row: oneData,\n rowIndex,\n level: state.level + 1,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n path: [...state.path],\n parent: state,\n };\n newState.path = newState.path.concat(newState);\n newChildrenData.push(oneData);\n newChildrenStates.push(newState);\n this.treeDataMap.set(newRowValue, newState);\n }\n }\n if (!newChildrenData.length) return dataSource;\n\n if (children?.length) {\n state.row[keys.childrenKey] = state.row[keys.childrenKey].concat(newChildrenData);\n } else {\n state.row[keys.childrenKey] = newChildrenData;\n state.expanded = true;\n }\n\n // 如果当前节点为展开状态,则需要继续处理\n if (isShowNewNode) {\n dataSource.splice(firstNewChildrenIndex, 0, ...newChildrenData);\n // 更新父元素及祖先元素展开子节点的数量\n const newChildrenCount = newChildrenData.length || 1;\n updateRowExpandLength(this.treeDataMap, state.row, newChildrenCount, 'insert', {\n rowKey: keys.rowKey,\n childrenKey: keys.childrenKey,\n });\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: firstNewChildrenIndex + newChildrenData.length - 1,\n rowKey: keys.rowKey,\n type: 'add',\n count: 1,\n });\n }\n\n return dataSource;\n }\n\n appendToRoot(newData: T | T[], dataSource: T[], keys: KeysType) {\n const newDataSource = dataSource.concat(newData);\n const tmpNewData = newData instanceof Array ? newData : [newData];\n const dataSourceLen = dataSource.length;\n for (let i = 0, len = tmpNewData.length; i < len; i++) {\n const rowValue = get(tmpNewData[i], keys.rowKey);\n if (!rowValue) {\n log.error('Table', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n continue;\n }\n const state: TableRowState = {\n id: rowValue,\n row: tmpNewData[i],\n rowIndex: dataSourceLen + i,\n level: 0,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n };\n state.path = [state];\n this.treeDataMap.set(rowValue, state);\n }\n return newDataSource;\n }\n\n /**\n * 在当前节点后,插入一个兄弟节点\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n insertAfter(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType): T[] {\n return this.insert(rowValue, newData, dataSource, keys, 'after');\n }\n\n /**\n * 在当前节点前,插入一个兄弟节点\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n insertBefore(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType): T[] {\n return this.insert(rowValue, newData, dataSource, keys, 'before');\n }\n\n insert(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType, type: 'before' | 'after') {\n const state = this.treeDataMap.get(rowValue);\n if (!this.validateDataExist(state, rowValue)) return dataSource;\n const newRowValue = get(newData, keys.rowKey);\n const mapState = this.treeDataMap.get(newRowValue);\n if (!this.validateDataDoubleExist(mapState, newRowValue)) return dataSource;\n const rowIndex = type === 'after' ? state.rowIndex + 1 : state.rowIndex;\n const newState = {\n id: newRowValue,\n row: newData,\n rowIndex,\n level: state.level,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n path: state.path.slice(0, -1),\n parent: state.parent,\n };\n newState.path = newState.path.concat(newState);\n const dataIndex = type === 'after' ? state.rowIndex + (state.expandChildrenLength + 1) : state.rowIndex;\n dataSource.splice(dataIndex, 0, newData);\n const distance = type === 'after' ? 1 : 0;\n if (state.parent) {\n const childrenIndex = state.parent.row[keys.childrenKey].findIndex(\n (t: TableRowData) => rowValue === get(t, keys.rowKey),\n );\n state.parent.row[keys.childrenKey].splice(childrenIndex + distance, 0, newData);\n updateRowExpandLength(this.treeDataMap, state.parent.row, 1, 'insert', keys);\n }\n this.treeDataMap.set(newRowValue, newState);\n\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: state.rowIndex + 1,\n type: 'add',\n });\n\n return dataSource;\n }\n\n /**\n * 交换数据行\n * @returns 交换失败返回 false\n */\n swapData(\n dataSource: T[],\n params: SwapParams,\n keys: KeysType,\n ): { dataSource: T[]; result: boolean; code?: number; reason?: string } {\n const startIndex = params.currentIndex;\n const endIndex = params.targetIndex;\n if (startIndex === endIndex) return { dataSource, result: true };\n const startRowValue = get(params.current, keys.rowKey);\n const endRowValue = get(params.target, keys.rowKey);\n const startState = this.treeDataMap.get(startRowValue);\n const endState = this.treeDataMap.get(endRowValue);\n if (startState.level !== endState.level) {\n return {\n dataSource,\n result: false,\n code: TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL.code,\n reason: TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL.reason,\n };\n }\n const startLastIndex = startIndex + startState.expandChildrenLength + 1;\n const endLastIndex = endIndex + endState.expandChildrenLength + 1;\n const startRowList = dataSource.slice(startIndex, startLastIndex);\n const endRowList = dataSource.slice(endIndex, endLastIndex);\n if (startIndex > endIndex) {\n const middleRowList = dataSource.slice(endLastIndex, startIndex);\n const allSwapList = startRowList.concat(endRowList, middleRowList);\n dataSource.splice(endIndex, allSwapList.length);\n dataSource.splice(endIndex, 0, ...allSwapList);\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: endIndex,\n maxRowIndex: startLastIndex,\n });\n } else {\n const middleRowList = dataSource.slice(startLastIndex, endIndex);\n const allSwapList = middleRowList.concat(endRowList, startRowList);\n dataSource.splice(startIndex, allSwapList.length);\n dataSource.splice(startIndex, 0, ...allSwapList);\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: startIndex,\n maxRowIndex: endLastIndex,\n });\n }\n\n // 交换父元素中的两个元素位置\n if (startState.parent) {\n const children = startState.parent.row[keys.childrenKey];\n let count = 0;\n let targetIndex = -1;\n let currentIndex = -1;\n for (let i = 0, len = children.length; i < len; i++) {\n if (get(children[i], keys.rowKey) === startRowValue) {\n currentIndex = i;\n count += 1;\n }\n if (get(children[i], keys.rowKey) === endRowValue) {\n targetIndex = i;\n count += 1;\n }\n if (count >= 2) break;\n }\n // 向后拖拽\n if (currentIndex < targetIndex) {\n children.splice(targetIndex + 1, 0, params.current);\n children.splice(currentIndex, 1);\n } else {\n // 向前拖拽\n children.splice(currentIndex, 1);\n children.splice(targetIndex, 0, params.current);\n }\n }\n\n return { dataSource, result: true };\n }\n\n /**\n * 展开所有节点\n */\n expandAll(dataSource: T[], keys: KeysType) {\n this.expandAllRowIndex = 0;\n const newData: T[] = [];\n const expandLoop = (\n dataSource: T[],\n keys: KeysType,\n parent: TableRowState = null,\n ) => {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n const children = get(item, keys.childrenKey);\n state.rowIndex = this.expandAllRowIndex;\n // children = true is async load\n if (children !== true && children?.length) {\n state.expanded = true;\n }\n state.expandChildrenLength = children?.length || 0;\n this.expandAllRowIndex += 1;\n newData.push(item);\n this.treeDataMap.set(rowValue, state);\n if (children?.length) {\n // 同步更新父元素的展开数量\n let tmpParent = parent;\n while (tmpParent?.row) {\n tmpParent.expandChildrenLength += children.length;\n this.treeDataMap.set(tmpParent.id, tmpParent);\n tmpParent = tmpParent.parent;\n }\n // 继续子元素\n expandLoop(children, keys, state);\n }\n }\n };\n expandLoop(dataSource, keys);\n return newData;\n }\n\n /**\n * 收起所有节点\n */\n foldAll(dataSource: T[], keys: KeysType) {\n const newData: T[] = [];\n let index = 0;\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n state.rowIndex = state.level === 0 ? index : -1;\n state.expanded = false;\n state.expandChildrenLength = 0;\n if (state.level === 0) {\n newData.push(item);\n index += 1;\n }\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.foldAll(children, keys);\n }\n }\n return newData;\n }\n\n /** 获取整个树形结构 */\n getTreeNode(dataSource: T[], keys: KeysType): T[] {\n // let isStarted = false;\n const treeData: T[] = [];\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n // 只需要压入第一层数据\n if (state.level === 0) {\n treeData.push(item);\n }\n }\n return treeData;\n }\n\n /**\n * 获取展开的树形节点\n * @param dataSource 平铺的树形结构数据\n * @param keys 行唯一标识和子节点的字段名\n * @param type 'unique' 标识获取展开节点的行唯一标识值,'data' 表示获取展开节点的数据,'all' 表示获取行节点包含展开状态的全部数据\n * @returns 展开的树形节点\n */\n getTreeExpandedRow(dataSource: T[], keys: KeysType, type: 'unique' | 'data' | 'all' = 'data') {\n const arr: (T | any)[] = [];\n dataSource.forEach((item) => {\n const rowValue = get(item, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState.expanded) return;\n if (type === 'unique') {\n arr.push(rowValue);\n } else if (type === 'data') {\n arr.push(item);\n } else {\n arr.push(rowState);\n }\n });\n return arr;\n }\n\n /**\n * 初始化树形结构 Map\n * @param treeDataMap 树形结构 Map\n * @param dataSource 数据源\n * @param column 树形结构列\n * @param keys 字段映射关系\n * @param level 层级\n * @param parent 父元素\n * @returns void\n */\n initialTreeDataMap(\n treeDataMap: TableTreeDataMap,\n dataSource: T[],\n column: PrimaryTableCol,\n keys: KeysType,\n level = 0,\n parent: TableRowState = null,\n ) {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = getUniqueRowValue(item, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return;\n }\n const children = get(item, keys.childrenKey);\n const state: TableRowState = {\n id: rowValue,\n row: item,\n rowIndex: level === 0 ? i : -1,\n level,\n expanded: false,\n expandChildrenLength: 0,\n disabled: isRowSelectedDisabled(column, item, i),\n parent,\n };\n state.path = parent ? parent.path.concat(state) : [state];\n treeDataMap.set(rowValue, state);\n if (children?.length) {\n this.initialTreeDataMap(treeDataMap, children, column, keys, level + 1, state);\n }\n }\n }\n\n // column.checkProps 和 column.disabled 会影响行的禁用状态,因此当列发生变化时,需要重置禁用状态\n updateDisabledState(dataSource: T[], column: PrimaryTableCol, keys: KeysType) {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return;\n }\n const state = this.treeDataMap.get(rowValue);\n state.disabled = isRowSelectedDisabled(column, item, i);\n this.treeDataMap.set(rowValue, state);\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.updateDisabledState(children, column, keys);\n }\n }\n }\n\n /**\n * 校验数据合法性\n */\n validateDataExist(state: TableRowState, rowValue: string | number) {\n if (!state) {\n log.warn('EnhancedTable', `${rowValue} does not exist.`);\n return false;\n }\n return true;\n }\n\n /**\n * 校验数据是否已存在\n */\n validateDataDoubleExist(state: TableRowState, rowValue: string | number) {\n if (state) {\n log.warn('EnhancedTable', `Duplicated Key. ${rowValue} already exists.`);\n return false;\n }\n return true;\n }\n}\n\nexport default TableTreeStore;\n\n/**\n * 更新展开的子节点数量\n * @param rowSate 行数据和状态\n * @param distance 需要调整的展开子节点长度数量,展开时增加,收起时减少。值为负数,表示减\n * @param expanded 展开/收起\n */\nexport function updateRowExpandLength(\n treeDataMap: TableTreeDataMap,\n row: TableRowData,\n distance: number,\n type: 'expand' | 'fold' | 'delete' | 'insert',\n keys: KeysType,\n) {\n let tmp = row;\n while (tmp) {\n const state = treeDataMap.get(get(tmp, keys.rowKey));\n const expandLen = (state.expandChildrenLength || 0) + distance;\n state.expandChildrenLength = Math.max(0, expandLen);\n tmp = state?.parent?.row;\n }\n // 如果是收起状态,子节点需全部收起,清空子节点展开行数量,设置 expandChildrenLength 为 0\n if (type === 'fold') {\n clearRowExpandLength(treeDataMap, row, keys);\n }\n}\n\nexport function clearRowExpandLength(treeDataMap: TableTreeDataMap, row: T, keys: KeysType) {\n const children = get(row, keys.childrenKey);\n if (children?.length) {\n children.forEach((item: T[]) => {\n const state = treeDataMap.get(get(item, keys.rowKey));\n if (!state) return;\n state.expandChildrenLength = 0;\n clearRowExpandLength(treeDataMap, state.row, keys);\n });\n }\n}\n\n/**\n * 更新子节点行状态,行数据、父节点、层级、路径等数据\n * @param rowState 行状态数据\n * @param expanded 展开或收起\n * @param keys\n */\nexport function updateChildrenRowState(\n treeDataMap: TableTreeDataMap,\n rowState: TableRowState,\n expanded: boolean,\n keys: KeysType,\n) {\n const { row, rowIndex } = rowState;\n const childrenNodes = get(row, keys.childrenKey);\n childrenNodes.forEach((item: T, kidRowIndex: number) => {\n const rowValue = get(item, keys.rowKey);\n const index = expanded ? rowIndex + 1 + kidRowIndex : -1;\n const curState = treeDataMap.get(rowValue);\n const newState: TableRowState = {\n ...curState,\n row: item,\n rowIndex: index,\n expanded: false,\n parent: rowState,\n };\n treeDataMap.set(rowValue, newState);\n // 父节点展开,子节点不一定展开;父节点收起,则所有子节点收起\n if (!expanded) {\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n updateChildrenRowState(\n treeDataMap,\n {\n ...newState,\n rowIndex: -1,\n expanded: false,\n } as any,\n expanded,\n keys,\n );\n }\n }\n });\n}\n\nexport function updateRowData(\n data: T[],\n key: string | number,\n newData: T,\n keys: KeysType,\n) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (get(item, keys.rowKey) === key) {\n // eslint-disable-next-line no-param-reassign\n data[i] = newData;\n return;\n }\n const children: T[] = get(item, keys.childrenKey) || [];\n if (children?.length) {\n updateRowData(children, key, newData, keys);\n }\n }\n}\n\nexport function updateRowIndex(\n treeDataMap: TableTreeDataMap,\n dataSource: T[],\n extra: {\n rowKey: string;\n minRowIndex?: number;\n maxRowIndex?: number;\n type?: 'add' | 'remove';\n count?: number;\n },\n) {\n const start = extra.minRowIndex || 0;\n const end = extra.maxRowIndex || dataSource.length;\n for (let rowIndex = start; rowIndex < end; rowIndex++) {\n const item = dataSource[rowIndex];\n const state = treeDataMap.get(get(item, extra.rowKey));\n if (!state) {\n log.warn('Table', 'tree map went wrong');\n }\n state.rowIndex = rowIndex + (extra?.count || 1) - 1;\n }\n}\n\nexport function diffExpandedTreeNode(\n newExpandedNode: (number | string)[] = [],\n oldExpandedNode: (number | string)[] = [],\n) {\n const removedList: (number | string)[] = [];\n const addedList: (number | string)[] = [];\n const newExpandedNodeMap: Map = new Map();\n const oldExpandedNodeMap: Map = new Map();\n for (let i = 0, len = newExpandedNode.length; i < len; i++) {\n newExpandedNodeMap.set(newExpandedNode[i], true);\n }\n for (let i = 0, len = oldExpandedNode.length; i < len; i++) {\n oldExpandedNodeMap.set(oldExpandedNode[i], true);\n }\n for (let i = 0, len = newExpandedNode.length; i < len; i++) {\n if (!oldExpandedNodeMap.get(newExpandedNode[i])) {\n addedList.push(newExpandedNode[i]);\n }\n }\n for (let i = 0, len = oldExpandedNode.length; i < len; i++) {\n if (!newExpandedNodeMap.get(oldExpandedNode[i])) {\n removedList.push(oldExpandedNode[i]);\n }\n }\n return {\n removedList,\n addedList,\n };\n}\n\nexport type TreeDataMapType = InstanceType['treeDataMap'];\n","import { ComputedRef, nextTick, ref, Ref, toRefs, watch } from 'vue';\nimport { TdEnhancedTableProps, TableRowData } from '../type';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport TableTreeStore, { diffExpandedTreeNode, getUniqueRowValue } from '@tdesign/common-js/table/tree-store';\nimport { TableTreeExpandType } from '../interface';\n\nexport function useTreeDataExpand(\n props: TdEnhancedTableProps,\n params: {\n store: Ref>;\n dataSource: Ref;\n rowDataKeys: ComputedRef<{ rowKey: string; childrenKey: string }>;\n },\n) {\n const { store, dataSource, rowDataKeys } = params;\n const { data, expandedTreeNodes, tree } = toRefs(props);\n\n const isDefaultExpandAllExecute = ref(false);\n const isDefaultExpandedTreeNodesExecute = ref(false);\n const [tExpandedTreeNode, setTExpandedTreeNode] = useDefaultValue(\n expandedTreeNodes,\n props.defaultExpandedTreeNodes,\n props.onExpandedTreeNodesChange,\n 'expandedTreeNodes',\n );\n\n const changedExpandTreeNode = ref<{\n type?: TableTreeExpandType;\n row?: TableRowData;\n rowIndex?: number;\n }>({ type: 'props-change' });\n\n /**\n * 对外暴露的组件实例方法,展开所有节点\n */\n function expandAll(type: 'expand-all' | 'default-expand-all' = 'expand-all', list?: TableRowData[]) {\n const newData = list || data.value;\n dataSource.value = store.value.expandAll(newData, rowDataKeys.value);\n const expandedNode = dataSource.value.map((t) => getUniqueRowValue(t, rowDataKeys.value.rowKey));\n setTExpandedTreeNode(expandedNode, {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'expand',\n trigger: type,\n });\n changedExpandTreeNode.value.type = 'expand-all';\n }\n\n /**\n * 对外暴露的组件实例方法,收起所有节点\n */\n function foldAll() {\n dataSource.value = [...store.value.foldAll(dataSource.value, rowDataKeys.value)];\n setTExpandedTreeNode([], {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'fold',\n trigger: 'fold-all',\n });\n }\n\n function onExpandFoldIconClick(\n p: { row: TableRowData; rowIndex: number },\n trigger?: 'expand-fold-icon' | 'row-click',\n ) {\n const { row, rowIndex } = p;\n changedExpandTreeNode.value = {\n type: 'user-reaction-change',\n ...p,\n };\n const rowValue = getUniqueRowValue(row, rowDataKeys.value.rowKey);\n const rowState = store.value.treeDataMap.get(rowValue);\n let expandedNodes = [...tExpandedTreeNode.value];\n if (rowState.expanded) {\n const expandedChildrenKeys = store.value.getExpandedChildrenKeys([row], rowDataKeys.value);\n for (let i = 0, len = expandedNodes.length; i < len; i++) {\n const nodeValue = expandedNodes[i];\n if (expandedChildrenKeys.includes(nodeValue)) {\n expandedNodes[i] = undefined;\n }\n }\n expandedNodes = expandedNodes.filter(Boolean);\n } else {\n expandedNodes.push(rowValue);\n }\n const params = {\n row,\n rowIndex,\n rowState,\n trigger,\n };\n setTExpandedTreeNode(expandedNodes, {\n ...params,\n type: rowState.expanded ? 'fold' : 'expand',\n });\n props.onTreeExpandChange?.(params);\n }\n\n function updateExpandState(\n data: TableRowData[],\n tExpandedTreeNode: (string | number)[],\n oldExpandedTreeNode: (string | number)[] = [],\n ) {\n const { addedList, removedList } = diffExpandedTreeNode(tExpandedTreeNode, oldExpandedTreeNode);\n store.value.expandTreeNode(addedList, data, rowDataKeys.value);\n store.value.foldTreeNode(removedList, data, rowDataKeys.value);\n return [...data];\n }\n\n watch([tExpandedTreeNode, data], ([tExpandedTreeNode], [oldExpandedTreeNode]) => {\n if (!store.value.treeDataMap.size || !data.value.length) return;\n if (changedExpandTreeNode.value.type === 'user-reaction-change') {\n const { row, rowIndex } = changedExpandTreeNode.value || {};\n dataSource.value = [...store.value.toggleExpandData({ row, rowIndex }, [...dataSource.value], rowDataKeys.value)];\n } else if (changedExpandTreeNode.value.type === 'props-change') {\n updateExpandState(dataSource.value, tExpandedTreeNode, oldExpandedTreeNode);\n }\n changedExpandTreeNode.value.type = 'props-change';\n });\n\n const updateExpandOnDataChange = (data: TableRowData[]) => {\n if (tree.value?.defaultExpandAll && !isDefaultExpandAllExecute.value) {\n expandAll('default-expand-all', [...data]);\n isDefaultExpandAllExecute.value = true;\n } else if (tExpandedTreeNode.value?.length) {\n nextTick(() => {\n dataSource.value = updateExpandState([...data], tExpandedTreeNode.value, []);\n });\n }\n };\n\n return {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n onExpandFoldIconClick,\n updateExpandOnDataChange,\n };\n}\n\nexport default useTreeDataExpand;\n","import { SetupContext, ref, watch, toRefs, onUnmounted, computed, h, shallowRef } from 'vue';\nimport {\n AddRectangleIcon as TdAddRectangleIcon,\n MinusRectangleIcon as TdMinusRectangleIcon,\n} from 'tdesign-icons-vue-next';\nimport { get } from 'lodash-es';\nimport TableTreeStore, { SwapParams } from '@tdesign/common-js/table/tree-store';\nimport {\n TdEnhancedTableProps,\n PrimaryTableCol,\n TableRowData,\n TableRowValue,\n TableRowState,\n PrimaryTableCellParams,\n} from '../type';\nimport useClassName from './useClassName';\nimport { renderCell } from '../tr';\nimport { useConfig } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { useTNodeDefault } from '../../hooks';\nimport useTreeDataExpand from './useTreeDataExpand';\n\nexport default function useTreeData(props: TdEnhancedTableProps, context: SetupContext) {\n const { data, columns } = toRefs(props);\n const { t, globalConfig } = useConfig('table', props.locale);\n const { AddRectangleIcon, MinusRectangleIcon } = useGlobalIcon({\n AddRectangleIcon: TdAddRectangleIcon,\n MinusRectangleIcon: TdMinusRectangleIcon,\n });\n\n const store = ref(new TableTreeStore());\n const treeNodeCol = shallowRef();\n const dataSource = ref([]);\n const { tableTreeClasses } = useClassName();\n const renderTNode = useTNodeDefault();\n\n const rowDataKeys = computed(() => ({\n rowKey: props.rowKey || 'id',\n childrenKey: props.tree?.childrenKey || 'children',\n }));\n\n const {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n updateExpandOnDataChange,\n onExpandFoldIconClick,\n } = useTreeDataExpand(props, { store, dataSource, rowDataKeys });\n\n const checkedColumn = computed(() => columns.value.find((col) => col.colKey === 'row-select'));\n\n watch(checkedColumn, (column) => {\n if (!store.value) return;\n store.value.updateDisabledState(dataSource.value, column, rowDataKeys.value);\n });\n\n const foldIcon = (context: PrimaryTableCellParams) => {\n const params = { ...context, type: 'fold' };\n const defaultFoldIcon = t(globalConfig.value.treeExpandAndFoldIcon, h, params) || ;\n return renderTNode('treeExpandAndFoldIcon', {\n defaultNode: defaultFoldIcon,\n params,\n });\n };\n\n const expandIcon = (context: PrimaryTableCellParams) => {\n const params = { ...context, type: 'expand' };\n const defaultExpandIcon = t(globalConfig.value.treeExpandAndFoldIcon, h, params) || ;\n return renderTNode('treeExpandAndFoldIcon', {\n defaultNode: defaultExpandIcon,\n params,\n });\n };\n\n watch(\n [data],\n () => {\n if (props.tree) {\n resetData(data.value);\n } else {\n dataSource.value = data.value;\n }\n },\n { immediate: true },\n );\n\n // 不能启用这部分代码。如果启用,会导致选中树形结构子节点时数据被重置,全部节点收起\n // watch([columns, rowDataKeys], ([columns, rowDataKeys]) => {\n // store.value.initialTreeStore(data.value, columns, rowDataKeys);\n // });\n\n onUnmounted(() => {\n if (!props.tree) return;\n store.value.treeDataMap?.clear();\n store.value = null;\n });\n\n watch(\n () => [columns, props.tree?.treeNodeColumnIndex],\n () => {\n treeNodeCol.value = getTreeNodeColumnCol();\n },\n { immediate: true },\n );\n\n function resetData(data: TableRowData[]) {\n const { columns, expandedTreeNodes, defaultExpandedTreeNodes, tree } = props;\n store.value.initialTreeStore(data, columns, rowDataKeys.value);\n const defaultNeedExpand = Boolean(!isDefaultExpandedTreeNodesExecute.value && defaultExpandedTreeNodes?.length);\n const needExpandAll = Boolean(tree?.defaultExpandAll && !isDefaultExpandAllExecute.value);\n if ((tExpandedTreeNode.value?.length && !!(expandedTreeNodes || defaultNeedExpand)) || needExpandAll) {\n updateExpandOnDataChange(data);\n isDefaultExpandedTreeNodesExecute.value = true;\n } else {\n dataSource.value = [...data];\n }\n }\n\n function getTreeNodeStyle(level: number) {\n if (level === undefined) return;\n const indent = props.tree?.indent === undefined ? 24 : props.tree?.indent;\n // 默认 1px 是为了临界省略\n return indent ? { paddingLeft: `${level * indent || 1}px` } : {};\n }\n\n /**\n * 组件实例方法,展开或收起某一行\n * @param p 行数据\n */\n function toggleExpandData(p: { row: TableRowData; rowIndex: number }, trigger?: 'expand-fold-icon' | 'row-click') {\n const currentData = { ...p };\n if (p.row.VIRTUAL_SCROLL_INDEX !== undefined) {\n currentData.rowIndex = p.row.VIRTUAL_SCROLL_INDEX;\n }\n dataSource.value = [...store.value.toggleExpandData(currentData, dataSource.value, rowDataKeys.value)];\n const rowValue = get(p.row, rowDataKeys.value.rowKey);\n const rowState = store.value?.treeDataMap?.get(rowValue);\n props.onTreeExpandChange?.({\n row: p.row,\n rowIndex: p.rowIndex,\n rowState,\n trigger,\n });\n }\n\n function getTreeNodeColumnCol() {\n const { columns } = props;\n let treeNodeColumnIndex = props.tree?.treeNodeColumnIndex || 0;\n // type 存在,则表示表格内部渲染的特殊列,比如:展开行按钮、复选框、单选按钮等,不能作为树结点列。因此树结点展开列向后顺移\n while (\n columns[treeNodeColumnIndex]?.type ||\n columns[treeNodeColumnIndex]?.colKey === '__EXPAND_ROW_ICON_COLUMN__'\n ) {\n treeNodeColumnIndex += 1;\n }\n return columns[treeNodeColumnIndex];\n }\n\n function formatTreeColumn(col: PrimaryTableCol): PrimaryTableCol {\n if (!props.tree || col.colKey !== treeNodeCol.value.colKey) return col;\n const newCol = { ...treeNodeCol.value };\n newCol.cell = (h, p) => {\n const cellInfo = renderCell({ ...p, col: { ...treeNodeCol.value } }, context.slots, {\n cellEmptyContent: props.cellEmptyContent,\n });\n const currentState = store.value.treeDataMap.get(get(p.row, rowDataKeys.value.rowKey));\n const colStyle = getTreeNodeStyle(currentState?.level);\n const classes = { [tableTreeClasses.inlineCol]: !!col.ellipsis };\n const childrenNodes = get(p.row, rowDataKeys.value.childrenKey);\n if ((childrenNodes && childrenNodes instanceof Array) || childrenNodes === true) {\n const iconNode = store.value.treeDataMap.get(get(p.row, rowDataKeys.value.rowKey))?.expanded\n ? foldIcon(p)\n : expandIcon(p);\n return (\n
    \n {!!(childrenNodes.length || childrenNodes === true) && (\n {\n onExpandFoldIconClick(p, 'expand-fold-icon');\n e.stopPropagation();\n }}\n >\n {iconNode}\n \n )}\n {cellInfo}\n
    \n );\n }\n return (\n
    \n \n {cellInfo}\n
    \n );\n };\n // 树形节点会显示操作符号 [+] 和 [-],但省略显示的浮层中不需要操作符\n if (newCol.ellipsis === true) {\n newCol.ellipsis = (h, p) => renderCell({ ...p, col: { ...treeNodeCol.value } }, context.slots);\n }\n return newCol;\n }\n\n /**\n * 对外暴露的组件实例方法,设置行数据,自动刷新界面\n * @param key 当前行唯一标识值\n * @param newRowData 新行数据\n */\n function setData(key: TableRowValue, newRowData: T) {\n const rowIndex = store.value.updateData(key, newRowData, dataSource.value, rowDataKeys.value);\n const newData = [...dataSource.value];\n newData[rowIndex] = newRowData;\n dataSource.value = newData;\n }\n\n /**\n * 对外暴露的组件实例方法,获取当前行全部数据\n * @param key 行唯一标识\n * @returns {TableRowState} 当前行数据\n */\n function getData(key: TableRowValue): TableRowState {\n return store.value.getData(key);\n }\n\n /**\n * 对外暴露的组件实例方法,移除指定节点\n * @param key 行唯一标识\n */\n function remove(key: TableRowValue) {\n // 引用传值,可自动更新 dataSource。(dataSource 本是内部变量,可以在任何地方进行任何改变)\n dataSource.value = [...store.value.remove(key, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 移除子节点\n * @param key 行唯一标识\n */\n function removeChildren(key: TableRowValue) {\n dataSource.value = [...store.value.removeChildren(key, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,为当前节点添加子节点,默认添加到最后一个节点\n * @param key 当前节点唯一标识,值为空,则表示给根节点添加元素\n * @param newData 待添加的新节点\n */\n function appendTo(key: TableRowValue = '', newData: T | T[]) {\n if (!key) {\n dataSource.value = store.value.appendToRoot(newData, dataSource.value, rowDataKeys.value);\n return;\n }\n // 引用传值,可自动更新 dataSource。(dataSource 本是内部变量,可以在任何地方进行任何改变)\n dataSource.value = [...store.value.appendTo(key, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,当前节点之后,插入节点\n */\n function insertAfter(rowValue: TableRowValue, newData: T) {\n dataSource.value = [...store.value.insertAfter(rowValue, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,当前节点之后,插入节点\n */\n function insertBefore(rowValue: TableRowValue, newData: T) {\n dataSource.value = [...store.value.insertBefore(rowValue, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,交换行数据\n */\n function swapData(params: SwapParams) {\n const r = store.value.swapData(dataSource.value, params, rowDataKeys.value);\n if (r.result) {\n dataSource.value = [...r.dataSource];\n } else {\n const params = {\n code: r.code,\n reason: r.reason,\n };\n props.onAbnormalDragSort?.(params);\n }\n }\n\n /**\n * 对外暴露的组件实例方法,获取全部数据的树形结构\n * @param key 节点唯一标识\n */\n function getTreeNode() {\n return store.value.getTreeNode(dataSource.value, rowDataKeys.value);\n }\n\n /**\n * 对外暴露的组件实例方法,获取树形结构展开的节点\n */\n function getTreeExpandedRow(type: 'unique' | 'data' | 'all' = 'data') {\n return store.value.getTreeExpandedRow(dataSource.value, rowDataKeys.value, type);\n }\n\n return {\n store,\n rowDataKeys,\n dataSource,\n swapData,\n setData,\n getData,\n remove,\n removeChildren,\n appendTo,\n insertAfter,\n insertBefore,\n formatTreeColumn,\n toggleExpandData,\n expandAll,\n foldAll,\n getTreeNode,\n resetData,\n getTreeExpandedRow,\n onExpandFoldIconClick,\n };\n}\n","import { computed, toRefs, ref, Ref, watch } from 'vue';\nimport { get } from 'lodash-es';\nimport { intersection } from 'lodash-es';\nimport { TdEnhancedTableProps, TdPrimaryTableProps, TableRowData, PrimaryTableCol } from '../type';\nimport { KeysType, TableTreeDataMap, TreeDataMapType } from '@tdesign/common-js/table/tree-store';\nimport useDefaultValue from '../../hooks/useDefaultValue';\n\nexport interface GetChildrenDataReturnValue {\n allChildren: Array;\n allChildrenKeys: Array;\n leafNodeKeys: Array;\n}\n\n// 保存子节点信息,避免重复计算\nexport const childrenMap = new Map();\n\nexport function getChildrenData(\n treeDataMap: TreeDataMapType,\n data: TableRowData,\n keys: { childrenKey: string; rowKey: string },\n r?: GetChildrenDataReturnValue,\n): GetChildrenDataReturnValue {\n if (childrenMap.get(data)) return childrenMap.get(data);\n const result = r || { allChildren: [], allChildrenKeys: [], leafNodeKeys: [] };\n const children = get(data, keys.childrenKey);\n if (!children || !children.length) return result;\n const selectableChildren = children.filter(\n (item: TableRowData) => !treeDataMap.get(get(item, keys.rowKey))?.disabled,\n );\n result.allChildren = [...new Set(result.allChildren.concat(selectableChildren))];\n for (let i = 0, len = children.length; i < len; i++) {\n const tItem = children[i];\n const c = get(tItem, keys.childrenKey);\n if (c?.length) {\n const nextLevelData = getChildrenData(treeDataMap, tItem, keys, result);\n result.allChildren = [...new Set(result.allChildren.concat(nextLevelData.allChildren))];\n }\n }\n // 避免使用 forEach,减少上下文消耗\n for (let i = 0, len = result.allChildren.length; i < len; i++) {\n const item = result.allChildren[i];\n const children = get(item, keys.childrenKey);\n const rowValue = get(item, keys.rowKey);\n result.allChildrenKeys.push(rowValue);\n if (!children || !children.length) {\n result.leafNodeKeys.push(rowValue);\n }\n }\n result.allChildrenKeys = [...new Set(result.allChildrenKeys)];\n result.leafNodeKeys = [...new Set(result.leafNodeKeys)];\n return result;\n}\n\nexport interface RemoveParams {\n // 当前选中的数据\n selectedRowKeys: Array;\n // 需要移除的数据\n removeKeys: Array;\n}\n\nexport interface RemainData {\n data: Array;\n keys: Array;\n}\n\nexport function removeChildrenKeys(p: RemoveParams, r?: RemainData): RemainData {\n const { selectedRowKeys, removeKeys } = p;\n const result = r || { data: [], keys: [] };\n for (let i = 0, len = selectedRowKeys.length; i < len; i++) {\n const key = selectedRowKeys[i];\n if (!removeKeys.includes(key)) {\n result.keys.push(key);\n }\n }\n return result;\n}\n\nexport interface GetKeyDataParams {\n treeDataMap: TreeDataMapType;\n data: Array;\n column: PrimaryTableCol;\n keys: KeysType;\n}\n\nexport interface GetRowDataParams {\n treeDataMap: TreeDataMapType;\n selectedRowKeys: Array;\n}\n\nexport function getRowDataByKeys(p: GetRowDataParams) {\n const { treeDataMap, selectedRowKeys } = p;\n const result = [];\n for (let i = 0, len = selectedRowKeys.length; i < len; i++) {\n const key = selectedRowKeys[i];\n result.push(treeDataMap.get(key));\n }\n return result;\n}\n\ntype SelectChangeParams = Parameters;\n\nexport default function useTreeSelect(props: TdEnhancedTableProps, treeDataMap: Ref) {\n const { selectedRowKeys, tree, data, indeterminateSelectedRowKeys } = toRefs(props);\n // 半选状态的节点:子节点选中至少一个,且没有全部选中\n const tIndeterminateSelectedRowKeys = ref<(string | number)[]>([]);\n\n const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n selectedRowKeys,\n props.defaultSelectedRowKeys || [],\n props.onSelectChange,\n 'selectedRowKeys',\n );\n const rowDataKeys = computed(() => ({\n rowKey: props.rowKey || 'id',\n childrenKey: props.tree?.childrenKey || 'children',\n }));\n\n watch([tree, treeDataMap, data, tSelectedRowKeys], ([tree, treeDataMap]) => {\n if (!tree || !treeDataMap.size || tree.checkStrictly) return;\n updateIndeterminateState();\n });\n\n function updateIndeterminateState() {\n if (!tree.value || tree.value.checkStrictly) return;\n if (!tSelectedRowKeys.value.length) {\n tIndeterminateSelectedRowKeys.value = [];\n return;\n }\n const keys: Array = [];\n const parentMap: { [key: string | number]: any[] } = {};\n for (let i = 0, len = tSelectedRowKeys.value.length; i < len; i++) {\n const rowValue = tSelectedRowKeys.value[i];\n const state = treeDataMap.value.get(rowValue);\n if (!state) continue;\n const children = get(state.row, rowDataKeys.value.childrenKey);\n // 根据选中的叶子结点计算父节点半选状态\n if (!children || !children.length) {\n let parentTmp = state.parent;\n while (parentTmp) {\n if (!parentMap[parentTmp.id]) {\n parentMap[parentTmp.id] = [];\n }\n parentMap[parentTmp.id].push(state.row);\n const checkedLength = parentMap[parentTmp.id].length;\n const { allChildrenKeys } = getChildrenData(treeDataMap.value, parentTmp.row, rowDataKeys.value);\n const parentTmpIndex = keys.indexOf(parentTmp.id);\n const selectedIndex = tSelectedRowKeys.value.indexOf(parentTmp.id);\n if (checkedLength > 0 && checkedLength < allChildrenKeys.length && selectedIndex === -1) {\n parentTmpIndex === -1 && keys.push(parentTmp.id);\n } else {\n parentTmpIndex !== -1 && keys.splice(parentTmpIndex, 1);\n }\n parentTmp = parentTmp.parent;\n }\n }\n }\n tIndeterminateSelectedRowKeys.value = keys;\n }\n\n function updateParentCheckedState(\n selectedKeys: (string | number)[],\n currentRowKey: string | number,\n type: 'check' | 'uncheck',\n ) {\n if (!tree.value || tree.value.checkStrictly) return;\n const keys = [...selectedKeys];\n const state = treeDataMap.value.get(currentRowKey);\n let parentTmp = state.parent;\n while (parentTmp) {\n const { leafNodeKeys } = getChildrenData(treeDataMap.value, parentTmp.row, rowDataKeys.value);\n const checkedChildrenKeys = intersection(leafNodeKeys, selectedKeys);\n const selectedIndex = keys.indexOf(parentTmp.id);\n if (type === 'uncheck') {\n selectedIndex !== -1 && keys.splice(selectedIndex, 1);\n } else if (checkedChildrenKeys.length === leafNodeKeys.length) {\n selectedIndex === -1 && keys.push(parentTmp.id);\n }\n parentTmp = parentTmp.parent;\n }\n return keys;\n }\n\n function onInnerSelectChange(rowKeys: SelectChangeParams[0], extraData: SelectChangeParams[1]) {\n if (!tree.value || tree.value.checkStrictly) {\n setTSelectedRowKeys(rowKeys, extraData);\n return;\n }\n if (extraData.currentRowKey === 'CHECK_ALL_BOX') {\n handleSelectAll(extraData);\n } else {\n handleSelect(rowKeys, extraData);\n }\n }\n\n function handleSelectAll(extraData: SelectChangeParams[1]) {\n const newRowKeys: Array = [];\n const newRowData: TableRowData[] = [];\n if (extraData.type === 'check') {\n const arr = [...treeDataMap.value.values()];\n for (let i = 0, len = arr.length; i < len; i++) {\n const item = arr[i];\n if (!item.disabled) {\n newRowData.push(item.row);\n newRowKeys.push(get(item.row, rowDataKeys.value.rowKey));\n }\n }\n }\n const newExtraData = {\n ...extraData,\n selectedRowData: newRowData || [],\n };\n setTSelectedRowKeys(newRowKeys, newExtraData);\n }\n\n function handleSelect(rowKeys: SelectChangeParams[0], extraData: SelectChangeParams[1]) {\n let newRowKeys = [...rowKeys];\n if (props.tree?.checkStrictly === false) {\n if (extraData?.type === 'check') {\n const result = getChildrenData(treeDataMap.value, extraData.currentRowData, rowDataKeys.value);\n const { allChildrenKeys } = result;\n childrenMap.set(extraData.currentRowData, result);\n newRowKeys = [...new Set(newRowKeys.concat(allChildrenKeys))];\n } else if (extraData?.type === 'uncheck') {\n const children = getChildrenData(treeDataMap.value, extraData.currentRowData, rowDataKeys.value);\n const result = removeChildrenKeys({\n selectedRowKeys: rowKeys,\n removeKeys: children.allChildrenKeys,\n });\n newRowKeys = result.keys;\n }\n }\n newRowKeys = updateParentCheckedState(newRowKeys, extraData.currentRowKey, extraData.type);\n const newRowData = getRowDataByKeys({ treeDataMap: treeDataMap.value, selectedRowKeys: newRowKeys });\n const newExtraData = {\n ...extraData,\n selectedRowData: newRowData,\n };\n setTSelectedRowKeys(newRowKeys, newExtraData);\n }\n\n return {\n // 如果存在受控属性 indeterminateSelectedRowKeys 则优先使用;否则使用内部状态:tIndeterminateSelectedRowKeys\n tIndeterminateSelectedRowKeys: indeterminateSelectedRowKeys.value\n ? indeterminateSelectedRowKeys\n : tIndeterminateSelectedRowKeys,\n onInnerSelectChange,\n };\n}\n","import { defineComponent, SetupContext, computed, ref, getCurrentInstance } from 'vue';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport enhancedTableProps from './enhanced-table-props';\nimport PrimaryTable from './primary-table';\nimport {\n TdEnhancedTableProps,\n PrimaryTableCol,\n TableRowData,\n DragSortContext,\n TdPrimaryTableProps,\n TableRowState,\n} from './type';\nimport useTreeData from './hooks/useTreeData';\nimport useTreeSelect from './hooks/useTreeSelect';\nimport { get } from 'lodash-es';\nimport { ComponentScrollToElementParams } from '../common';\nimport log from '@tdesign/common-js/log/index';\nimport { usePrefixClass } from '../hooks';\n\nexport default defineComponent({\n name: 'TEnhancedTable',\n\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n ...enhancedTableProps,\n },\n\n setup(props: TdEnhancedTableProps, context: SetupContext) {\n const primaryTableRef = ref(null);\n const { store, dataSource, formatTreeColumn, swapData, onExpandFoldIconClick, ...treeInstanceFunctions } =\n useTreeData(props, context);\n const classPrefix = usePrefixClass();\n\n const treeDataMap = ref(store.value.treeDataMap);\n\n const { tIndeterminateSelectedRowKeys, onInnerSelectChange } = useTreeSelect(props, treeDataMap);\n\n // 影响列和单元格内容的因素有:树形节点需要添加操作符 [+] [-]\n const getColumns = (columns: PrimaryTableCol[]) => {\n const arr: PrimaryTableCol[] = [];\n for (let i = 0, len = columns.length; i < len; i++) {\n let item = { ...columns[i] };\n item = formatTreeColumn(item);\n if (item.children?.length) {\n item.children = getColumns(item.children);\n }\n // 多级表头和自定义列配置特殊逻辑:要么子节点不存在,要么子节点长度大于 1,方便做自定义列配置\n if (!item.children || item.children?.length) {\n arr.push(item);\n }\n }\n return arr;\n };\n\n const tColumns = computed(() => {\n // 暂时只有树形结构需要处理 column.cell\n const isTreeData = !props.tree || !Object.keys(props.tree).length;\n return isTreeData ? props.columns : getColumns(props.columns);\n });\n\n const onDragSortChange = (params: DragSortContext) => {\n if (props.beforeDragSort && !props.beforeDragSort(params)) return;\n swapData({\n current: params.current,\n target: params.target,\n currentIndex: params.currentIndex,\n targetIndex: params.targetIndex,\n });\n props.onDragSort?.(params);\n };\n\n const onEnhancedTableRowClick: TdPrimaryTableProps['onRowClick'] = (p) => {\n if (props.tree?.expandTreeNodeOnClick) {\n onExpandFoldIconClick(\n {\n row: p.row,\n rowIndex: p.index,\n },\n 'row-click',\n );\n }\n props.onRowClick?.(p);\n };\n\n const getScrollRowIndex = (rowStateData: TableRowState, key: string | number): number => {\n if (!rowStateData) return -1;\n if (rowStateData.rowIndex >= 0) return rowStateData.rowIndex;\n if (rowStateData.rowIndex < 0) {\n return getScrollRowIndex(rowStateData.parent, key);\n }\n };\n\n const scrollToElement = (params: ComponentScrollToElementParams) => {\n let { index } = params;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Table', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n const rowStateData = treeDataMap.value.get(params.key);\n index = getScrollRowIndex(rowStateData, params.key);\n if (index < 0 || index === undefined) {\n log.error('Table', `${params.key} does not exist in data, check \\`rowKey\\` or \\`data\\` please.`);\n }\n }\n primaryTableRef.value.scrollToElement({ ...params, index });\n };\n\n context.expose({\n store: store.value,\n dataSource: dataSource.value,\n ...treeInstanceFunctions,\n primaryTableRef,\n validateRowData: (rowValue: any) => {\n return primaryTableRef.value.validateRowData(rowValue);\n },\n validateTableData: () => {\n return primaryTableRef.value.validateTableData();\n },\n clearValidateData: () => {\n primaryTableRef.value.clearValidateData();\n },\n refreshTable: () => {\n primaryTableRef.value.refreshTable();\n },\n scrollToElement,\n });\n\n return () => {\n const { vnode } = getCurrentInstance();\n const enhancedProps: TdPrimaryTableProps = {\n ...vnode.props,\n rowKey: props.rowKey || 'id',\n data: dataSource.value,\n columns: tColumns.value,\n // 半选状态节点\n indeterminateSelectedRowKeys: tIndeterminateSelectedRowKeys.value,\n // 树形结构不允许本地数据分页\n disableDataPage: Boolean(props.tree && Object.keys(props.tree).length) || props.disableDataPage,\n onSelectChange: onInnerSelectChange,\n onDragSort: onDragSortChange,\n rowClassName: ({ row }) => {\n const rowValue = get(row, props.rowKey || 'id');\n const rowState = treeDataMap.value.get(rowValue);\n if (!rowState) return [props.rowClassName];\n return [`${classPrefix.value}-table-tr--level-${rowState.level}`, props.rowClassName];\n },\n };\n if (props.tree?.expandTreeNodeOnClick) {\n enhancedProps.onRowClick = onEnhancedTableRowClick;\n }\n // @ts-ignore ref 顺序很重要,如果移动到 v-slots 前面,会让 EnhancedTable 所有实例方法失效,勿动\n return ;\n };\n },\n});\n","import { cloneDeep } from 'lodash-es';\nimport _BaseTable from './base-table';\nimport _PrimaryTable from './primary-table';\nimport _EnhancedTable from './enhanced-table';\nimport withInstall from '../utils/withInstall';\nimport { InfinityScroll } from '../common';\nimport { BaseTableInstanceFunctions, EnhancedTableInstanceFunctions, PrimaryTableInstanceFunctions } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './interface';\n\nexport type AllTableInstanceFunctions = EnhancedTableInstanceFunctions &\n PrimaryTableInstanceFunctions &\n BaseTableInstanceFunctions;\n\nexport type TableScroll = InfinityScroll;\nexport const BaseTable = withInstall(_BaseTable);\nexport const PrimaryTable = withInstall(_PrimaryTable);\nexport const EnhancedTable = withInstall(_EnhancedTable);\n\nconst table = cloneDeep(_PrimaryTable);\nexport const Table = withInstall(table, 'TTable');\n\nexport default Table;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimelineProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签信息放在时间轴的位置,`mode='alternate'` 时生效。纵向时间轴信息位置:左侧、右侧或两侧,默认信息在时间轴右侧。横向时间轴信息位置:上方、下方、两侧 */\n labelAlign: {\n type: String as PropType,\n default: 'left' as TdTimelineProps['labelAlign'],\n validator(val: TdTimelineProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'alternate', 'top', 'bottom'].includes(val);\n },\n },\n /** 时间轴方向:水平方向、垂直方向 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdTimelineProps['layout'],\n validator(val: TdTimelineProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 标签与内容文本的位置关系,`alternate` 为展示在轴两侧,`same` 为展示在同一侧 */\n mode: {\n type: String as PropType,\n default: 'alternate' as TdTimelineProps['mode'],\n validator(val: TdTimelineProps['mode']): boolean {\n if (!val) return true;\n return ['alternate', 'same'].includes(val);\n },\n },\n /** 时间轴是否表现为倒序 */\n reverse: Boolean,\n /** 步骤条风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdTimelineProps['theme'],\n validator(val: TdTimelineProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'dot'].includes(val);\n },\n },\n};\n","import { InjectionKey, ComputedRef, computed } from 'vue';\nimport { TdTimelineProps } from '../type';\n\nexport const DefaultAlign = {\n vertical: ['left', 'right'],\n horizontal: ['top', 'bottom'],\n};\n\nexport interface TimelineProvider {\n theme: TdTimelineProps['theme'];\n reverse: TdTimelineProps['reverse'];\n itemsStatus: string[];\n layout: TdTimelineProps['layout'];\n globalAlign?: TdTimelineProps['labelAlign'];\n mode?: TdTimelineProps['mode'];\n renderAlign: string;\n}\n\nexport const TimelineInjectKey: InjectionKey> = Symbol('timeLineProvide');\n\nexport const DEFAULT_PROVIDER = computed(() => ({\n theme: 'default',\n reverse: false,\n itemsStatus: [],\n layout: 'horizontal',\n renderAlign: 'left',\n mode: 'alternate',\n}));\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimelineItemProps } from '../timeline/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 描述内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 用于自定义时间轴节点元素 */\n dot: {\n type: Function as PropType,\n },\n /** 时间轴颜色,内置 `primary/warning/error/default` 四种色值,可传入 16 进制颜色码或 RGB 颜色值. */\n dotColor: {\n type: String as PropType,\n default: 'primary',\n },\n /** 标签文本内容,可完全自定义 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 标签信息相对于时间轴的位置,在 `mode='alternate'` 时生效,优先级高于 `Timeline.labelAlign` */\n labelAlign: {\n type: String as PropType,\n validator(val: TdTimelineItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 是否处在加载状态 */\n loading: Boolean,\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, inject } from 'vue';\nimport { omit } from 'lodash-es';\nimport props from './timeline-item-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { TimelineInjectKey, DEFAULT_PROVIDER } from './hooks';\nimport Loading from '../loading';\n\nconst DEFAULT_THEME = ['default', 'primary', 'success', 'warning', 'error'];\n\nexport default defineComponent({\n name: 'TTimelineItem',\n props: {\n ...props,\n index: {\n type: Number,\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('timeline-item');\n // unit test need default value\n\n const TimelineProvider = inject(TimelineInjectKey, DEFAULT_PROVIDER);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n // 计算节点模式 CSS 类名\n const getPositionClassName = (index: number) => {\n const { layout, renderAlign } = TimelineProvider.value;\n // TimelineItem.labelAlign > Timeline.labelAlign\n const timelineItemAlign = props.labelAlign ?? renderAlign;\n // 横向布局 以及 纵向布局对应为不同的样式名\n const left = layout === 'horizontal' ? 'top' : 'left';\n const right = layout === 'horizontal' ? 'bottom' : 'right';\n // 单独设置则单独生效\n if (timelineItemAlign === 'alternate') {\n return index % 2 === 0 ? `${COMPONENT_NAME.value}-${left}` : `${COMPONENT_NAME.value}-${right}`;\n }\n if (timelineItemAlign === 'left' || timelineItemAlign === 'top') {\n return `${COMPONENT_NAME.value}-${left}`;\n }\n if (timelineItemAlign === 'right' || timelineItemAlign === 'bottom') {\n return `${COMPONENT_NAME.value}-${right}`;\n }\n return '';\n };\n const handleClick = (e: MouseEvent) => {\n props.onClick?.({ e, item: omit(props, ['index']) });\n };\n\n return () => {\n const { mode, theme, itemsStatus, reverse } = TimelineProvider.value;\n const { loading, dotColor, index } = props;\n\n const labelNode = renderTNodeJSX('label');\n const dotElement = renderTNodeJSX('dot');\n\n const dotContentClass = `${COMPONENT_NAME.value}__dot-content`;\n if (dotElement?.props) {\n const classes = dotElement?.props?.class;\n dotElement.props.class = classes ? [dotContentClass, classes].join(' ') : dotContentClass;\n }\n\n return (\n
  • \n {mode === 'alternate' && labelNode && (\n
    {labelNode}
    \n )}\n
    \n \n {!dotElement && loading && }\n {dotElement}\n
    \n \n \n
    \n {renderContent('default', 'content')}\n {mode === 'same' && labelNode && (\n
    \n {labelNode}\n
    \n )}\n
    \n
  • \n );\n };\n },\n});\n","import { defineComponent, provide, computed } from 'vue';\nimport TimeLineProps from './props';\nimport { TimelineInjectKey, DefaultAlign } from './hooks';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useChildComponentSlots } from '../hooks/slot';\nimport TimelineItem from './timeline-item';\nimport log from '@tdesign/common-js/log/index';\n\nexport default defineComponent({\n name: 'TTimeline',\n props: TimeLineProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('timeline');\n const renderAlign = computed(() => {\n const { labelAlign, layout } = props;\n let res = layout === 'vertical' ? 'left' : 'top';\n if (layout === 'vertical' && labelAlign) {\n const index = DefaultAlign.horizontal.indexOf(labelAlign);\n const isError = index !== -1;\n isError && log.warn('Timeline', 'If layout is vertical, align should be \"left\",\"alternate\" or \"right\" ');\n res = isError ? DefaultAlign.vertical[index] : labelAlign;\n }\n if (layout === 'horizontal' && labelAlign) {\n const index = DefaultAlign.vertical.indexOf(labelAlign);\n const isError = index !== -1;\n isError && log.warn('Timeline', 'If layout is horizontal, align should be \"top\",\"alternate\" or \"bottom\" ');\n res = isError ? DefaultAlign.horizontal[index] : labelAlign;\n }\n return res;\n });\n\n const TimeLineProvide = computed(() => {\n const { theme, reverse, layout, labelAlign, mode } = props;\n return {\n theme,\n reverse,\n itemsStatus: [''],\n layout,\n globalAlign: labelAlign,\n mode,\n renderAlign: renderAlign.value,\n };\n });\n\n const hasLabelItem = 1;\n provide(TimelineInjectKey, TimeLineProvide);\n\n return () => {\n const getChildComponentSlots = useChildComponentSlots();\n let timelineItems = getChildComponentSlots('TTimelineItem');\n if (props.reverse) timelineItems = timelineItems.reverse();\n return (\n \n {timelineItems.map((item, index) => (\n \n ))}\n \n );\n };\n },\n});\n","import _Timeline from './timeline';\nimport _TimelineItem from './timeline-item';\nimport withInstall from '../utils/withInstall';\nimport { TdTimelineProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type TimelineProps = TdTimelineProps;\n\nexport const Timeline = withInstall(_Timeline);\nexport const TimelineItem = withInstall(_TimelineItem);\n\nexport default Timeline;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCollapseProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否为无边框模式 */\n borderless: Boolean,\n /** 默认是否展开全部 */\n defaultExpandAll: Boolean,\n /** 是否禁用面板展开/收起操作 */\n disabled: Boolean,\n /** 展开图标。值为 undefined 或 false 则不显示展开图标;值为 true 显示默认图标;值类型为函数,则表示完全自定义展开图标 */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 展开图标的位置,左侧或右侧 */\n expandIconPlacement: {\n type: String as PropType,\n default: 'left' as TdCollapseProps['expandIconPlacement'],\n validator(val: TdCollapseProps['expandIconPlacement']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 每个面板互斥展开,每次只展开一个面板 */\n expandMutex: Boolean,\n /** 是否允许点击整行标题展开面板 */\n expandOnRowClick: {\n type: Boolean,\n default: true,\n },\n /** 展开的面板集合 */\n value: {\n type: Array as PropType,\n default: undefined as TdCollapseProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCollapseProps['value'],\n },\n /** 展开的面板集合,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 切换面板时触发,返回变化的值 */\n onChange: Function as PropType,\n};\n","import { defineComponent, toRefs, provide, computed } from 'vue';\nimport props from './props';\nimport { CollapseValue, TdCollapseProps, CollapsePanelValue } from './type';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TCollapse',\n props,\n setup(props: TdCollapseProps) {\n const componentName = usePrefixClass('collapse');\n const borderlessClass = usePrefixClass('-border-less');\n const renderTNodeJSX = useTNodeJSX();\n const { value, expandMutex, borderless, modelValue } = toRefs(props);\n const [collapseValue, setCollapseValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const updateCollapseValue = (value: CollapsePanelValue) => {\n let newValue: CollapseValue = [].concat(collapseValue.value || []);\n const index = newValue.indexOf(value);\n if (index >= 0) {\n newValue.splice(index, 1);\n } else if (expandMutex.value) {\n newValue = [value];\n } else {\n newValue.push(value);\n }\n setCollapseValue(newValue);\n };\n const classes = computed(() => {\n return [\n componentName.value,\n {\n [borderlessClass.value]: !!borderless.value,\n },\n ];\n });\n const getUniqId = (() => {\n let index = 0;\n return () => index++;\n })();\n provide('collapseValue', collapseValue);\n provide('updateCollapseValue', updateCollapseValue);\n provide('collapseProps', toRefs(props));\n provide('getUniqId', getUniqId);\n // TODO 这里是有问题的,这是无法响应式,expandIcon 的值变化了,不会重新渲染\n provide('renderParentTNode', renderTNodeJSX);\n return () => {\n const nodes = renderTNodeJSX('default');\n return
    {nodes}
    ;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCollapsePanelProps } from '../collapse/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 折叠面板内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 折叠面板内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 当前面板处理折叠状态时,是否销毁面板内容 */\n destroyOnCollapse: Boolean,\n /** 禁止当前面板展开,优先级大于 Collapse 的同名属性 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当前折叠面板展开图标,优先级大于 Collapse 的同名属性 */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined,\n },\n /** 面板头内容 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 面板头的右侧区域,一般用于呈现面板操作 */\n headerRightContent: {\n type: [String, Function] as PropType,\n },\n /** 当前面板唯一标识,如果值为空则取当前面下标兜底作为唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, ref, computed, inject, Ref, toRefs, Transition } from 'vue';\nimport props from './collapse-panel-props';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { CollapseValue, TdCollapsePanelProps } from './type';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useCollapseAnimation from '../hooks/useCollapseAnimation';\n\nexport default defineComponent({\n name: 'TCollapsePanel',\n props,\n setup(props: TdCollapsePanelProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const componentName = usePrefixClass('collapse-panel');\n const disableClass = usePrefixClass('is-disabled');\n const clickableClass = usePrefixClass('is-clickable');\n const transitionClass = usePrefixClass('slide-down');\n const { value, disabled, destroyOnCollapse } = toRefs(props);\n const collapseValue: Ref = inject('collapseValue');\n const updateCollapseValue: Function = inject('updateCollapseValue');\n const getUniqId: Function = inject('getUniqId', (): undefined => undefined, false);\n const {\n defaultExpandAll,\n disabled: disableAll,\n expandIconPlacement,\n expandOnRowClick,\n } = inject('collapseProps');\n const renderParentTNode: Function = inject('renderParentTNode');\n const innerValue = value.value || getUniqId();\n if (defaultExpandAll.value) {\n updateCollapseValue(innerValue);\n }\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n const iconRef = ref();\n const isDisabled = computed(() => disabled.value || disableAll.value);\n const isActive = computed(() =>\n collapseValue.value instanceof Array\n ? collapseValue.value.includes(innerValue)\n : collapseValue.value === innerValue,\n );\n const classes = computed(() => {\n return [componentName.value, { [disableClass.value]: isDisabled.value }];\n });\n const panelExpandIcon = computed(() => slots.expandIcon || props.expandIcon);\n const handleClick = (e: MouseEvent) => {\n const canExpand = expandOnRowClick.value || e.currentTarget === iconRef.value;\n if (canExpand && !isDisabled.value) {\n updateCollapseValue(innerValue);\n }\n e.stopPropagation();\n };\n const handleHeaderRightContentClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n const renderDefaultIcon = () => {\n return ;\n };\n const renderIcon = () => {\n const tNodeRender = panelExpandIcon.value === undefined ? renderParentTNode : renderTNodeJSX;\n return (\n \n {tNodeRender('expandIcon', renderDefaultIcon())}\n \n );\n };\n const renderBlank = () => {\n return
    ;\n };\n const renderHeaderRightContent = () => {\n const headerRightContent = renderTNodeJSX('headerRightContent');\n\n return headerRightContent ?
    {headerRightContent}
    : null;\n };\n const renderHeader = () => {\n const cls = [\n `${componentName.value}__header`,\n {\n [clickableClass.value]: expandOnRowClick.value && !isDisabled.value,\n },\n ];\n\n return (\n
    \n {expandIconPlacement.value === 'left' && renderIcon()}\n {renderTNodeJSX('header')}\n {renderBlank()}\n {renderHeaderRightContent()}\n {expandIconPlacement.value === 'right' && renderIcon()}\n
    \n );\n };\n const renderBodyByNormal = () => {\n return (\n
    \n
    {renderContent('default', 'content')}
    \n
    \n );\n };\n const renderBodyDestroyOnCollapse = () => {\n return isActive.value ? (\n
    \n
    {renderContent('default', 'content')}
    \n
    \n ) : null;\n };\n const renderBody = () => {\n return destroyOnCollapse.value ? renderBodyDestroyOnCollapse() : renderBodyByNormal();\n };\n return () => {\n return (\n
    \n
    \n {renderHeader()}\n \n {renderBody()}\n \n
    \n
    \n );\n };\n },\n});\n","import _Collapse from './collapse';\nimport _CollapsePanel from './collapse-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdCollapseProps, TdCollapsePanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type CollapseProps = TdCollapseProps;\nexport type CollapsePanelProps = TdCollapsePanelProps;\n\nexport const Collapse = withInstall(_Collapse);\n\nexport const CollapsePanel = withInstall(_CollapsePanel);\n\nexport default Collapse;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdWatermarkProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 水印整体透明度,取值范围 [0-1] */\n alpha: {\n type: Number,\n default: 1,\n },\n /** 水印所覆盖的内容节点 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 水印所覆盖的内容节点,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 水印高度 */\n height: {\n type: Number,\n },\n /** 水印是否重复出现 */\n isRepeat: {\n type: Boolean,\n default: true,\n },\n /** 行间距,只作用在多行(`content` 配置为数组)情况下 */\n lineSpace: {\n type: Number,\n default: 16,\n },\n /** 水印是否可移动 */\n movable: Boolean,\n /** 水印发生运动位移的间隙,单位:毫秒 */\n moveInterval: {\n type: Number,\n default: 3000,\n },\n /** 水印在画布上绘制的水平和垂直偏移量,正常情况下水印绘制在中间位置,即 `offset = [gapX / 2, gapY / 2]` */\n offset: {\n type: Array as PropType,\n },\n /** 水印是否可被删除 */\n removable: {\n type: Boolean,\n default: true,\n },\n /** 水印旋转的角度,单位 ° */\n rotate: {\n type: Number,\n default: -22,\n },\n /** 水印内容,需要显示多行情况下可配置为数组 */\n watermarkContent: {\n type: [Object, Array] as PropType,\n },\n /** 水印宽度 */\n width: {\n type: Number,\n },\n /** 水印之间的水平间距 */\n x: {\n type: Number,\n },\n /** 水印之间的垂直间距 */\n y: {\n type: Number,\n },\n /** 水印元素的 `z-index`,默认值写在 CSS 中 */\n zIndex: {\n type: Number,\n },\n};\n","import { computed, onMounted, defineComponent, watch, ref, reactive, shallowRef } from 'vue';\nimport props from './props';\nimport generateBase64Url from '@tdesign/common-js/watermark/generateBase64Url';\nimport randomMovingStyle from '@tdesign/common-js/watermark/randomMovingStyle';\nimport injectStyle from '@tdesign/common-js/utils/injectStyle';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useMutationObserver } from './hooks';\nimport { useContent } from '../hooks/tnode';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nexport default defineComponent({\n name: 'TWatermark',\n props,\n setup(props) {\n const backgroundImage = ref('');\n const watermarkRef = shallowRef();\n const watermarkContentRef = shallowRef();\n\n const offset = reactive(props.offset || []);\n\n const gapX = computed(() => {\n return props.movable ? 0 : props.x;\n });\n\n const gapY = computed(() => {\n return props.movable ? 0 : props.y;\n });\n\n const rotate = computed(() => {\n return props.movable ? 0 : props.rotate;\n });\n\n const backgroundRepeat = computed(() => {\n if (props.movable) {\n return 'no-repeat';\n }\n return props.isRepeat ? 'repeat' : 'no-repeat';\n });\n\n const offsetLeft = computed(() => {\n return offset[0] || gapX.value / 2;\n });\n\n const offsetTop = computed(() => {\n return offset[1] || gapY.value / 2;\n });\n\n const bgImageOptions = computed(() => ({\n width: props.width,\n height: props.height,\n rotate: rotate.value,\n lineSpace: props.lineSpace,\n alpha: props.alpha,\n gapX: gapX.value,\n gapY: gapY.value,\n watermarkContent: props.watermarkContent,\n offsetLeft: offsetLeft.value,\n offsetTop: offsetTop.value,\n }));\n\n const removeWaterMark = () => {\n if (!watermarkContentRef.value) return;\n watermarkContentRef.value.remove();\n watermarkContentRef.value = null;\n };\n\n const injectWaterMark = () => {\n generateBase64Url(bgImageOptions.value, (base64Url) => {\n removeWaterMark();\n\n backgroundImage.value = base64Url;\n watermarkContentRef.value = document.createElement('div');\n setStyle(watermarkContentRef.value, {\n zIndex: props.zIndex,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n width: '100%',\n height: '100%',\n backgroundSize: `${gapX.value + props.width}px`,\n pointerEvents: 'none',\n backgroundRepeat: backgroundRepeat.value,\n backgroundImage: `url('${backgroundImage.value}')`,\n animation: props.movable ? `watermark infinite ${(props.moveInterval * 4) / 60}s` : 'none',\n });\n watermarkRef.value?.append(watermarkContentRef.value);\n });\n\n if (props.movable) {\n const keyframesStyle = randomMovingStyle();\n injectStyle(keyframesStyle);\n }\n };\n\n onMounted(() => {\n injectWaterMark();\n useMutationObserver(\n watermarkRef.value,\n (mutations) => {\n if (props.removable || !watermarkContentRef.value) return;\n for (const mutation of mutations) {\n const isRemoved = Array.from(mutation.removedNodes).includes(watermarkContentRef.value);\n const isModified = mutation.type === 'attributes' && watermarkContentRef.value === mutation.target;\n if (isRemoved || isModified) {\n injectWaterMark();\n break;\n }\n }\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n });\n\n watch(() => props, injectWaterMark, { deep: true, flush: 'post' });\n\n return () => {\n const COMPONENT_NAME = usePrefixClass('watermark');\n const renderContent = useContent();\n\n return (\n \n {renderContent('default', 'content')}\n \n );\n };\n },\n});\n","import { WatermarkText, WatermarkImage } from './type';\n\nexport default function generateBase64Url({\n width,\n height,\n gapX,\n gapY,\n offsetLeft,\n offsetTop,\n rotate,\n alpha,\n watermarkContent,\n lineSpace\n}: {\n width: number,\n height: number,\n gapX:number,\n gapY: number,\n offsetLeft:number,\n offsetTop:number,\n rotate:number,\n alpha:number,\n watermarkContent: WatermarkText | WatermarkImage | Array,\n lineSpace:number\n}, onFinish: (url: string) => void): string {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n // eslint-disable-next-line no-console\n console.warn('当前环境不支持Canvas, 无法绘制水印');\n onFinish('');\n return;\n }\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = (gapX + width) * ratio;\n const canvasHeight = (gapY + height) * ratio;\n\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = `${gapX + width}px`;\n canvas.style.height = `${gapY + height}px`;\n\n ctx.translate(offsetLeft * ratio, offsetTop * ratio);\n ctx.rotate((Math.PI / 180) * Number(rotate));\n ctx.globalAlpha = alpha;\n\n const markWidth = width * ratio;\n const markHeight = height * ratio;\n\n ctx.fillStyle = 'transparent';\n ctx.fillRect(0, 0, markWidth, markHeight);\n\n const contents = Array.isArray(watermarkContent) ? watermarkContent : [{ ...watermarkContent }];\n let top = 0;\n contents.forEach((item: WatermarkText & WatermarkImage & { top: number }) => {\n if (item.url) {\n const { url, isGrayscale = false } = item;\n // eslint-disable-next-line no-param-reassign\n item.top = top;\n top += height;\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.referrerPolicy = 'no-referrer';\n img.src = url;\n img.onload = () => {\n // ctx.filter = 'grayscale(1)';\n ctx.drawImage(img, 0, item.top * ratio, width * ratio, height * ratio);\n if (isGrayscale) {\n const imgData = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height);\n const pixels = imgData.data;\n for (let i = 0; i < pixels.length; i += 4) {\n const lightness = (pixels[i] + pixels[i + 1] + pixels[i + 2]) / 3;\n pixels[i] = lightness;\n pixels[i + 1] = lightness;\n pixels[i + 2] = lightness;\n }\n ctx.putImageData(imgData, 0, 0);\n }\n onFinish(canvas.toDataURL());\n };\n } else if (item.text) {\n const {\n text,\n fontColor = 'rgba(0, 0, 0, 0.1)',\n fontSize = 16,\n fontFamily = undefined,\n fontWeight = 'normal',\n } = item;\n // eslint-disable-next-line no-param-reassign\n item.top = top;\n top += lineSpace;\n const markSize = Number(fontSize) * ratio;\n // TODO 后续完善font 渲染控制 目前font-family 暂时为 undefined\n ctx.font = `normal normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;\n ctx.textAlign = 'start';\n ctx.textBaseline = 'top';\n ctx.fillStyle = fontColor;\n ctx.fillText(text, 0, item.top * ratio);\n }\n });\n onFinish(canvas.toDataURL());\n}\n","/* eslint-disable no-nested-ternary */\nexport default function randomMovingStyle() {\n const align = Math.floor(Math.random() * 4);\n const p1 = Math.floor(Math.random() * 70) + 30;\n const leftTopLimit = 0;\n const bottomLimit = 95;\n const rightLimit = 90;\n const keyframesStyle = `\n @keyframes watermark {\n 0% {left: ${align === 1 ? rightLimit : align === 3 ? leftTopLimit : p1}%; top: ${\n align === 0 ? leftTopLimit : align === 2 ? bottomLimit : p1\n}%;}\n 25% {left: ${align === 0 ? rightLimit : align === 2 ? leftTopLimit : 100 - p1}%; top: ${\n align === 1 ? bottomLimit : align === 3 ? leftTopLimit : p1\n}%;}\n 50% {left: ${align === 1 ? leftTopLimit : align === 3 ? rightLimit : 100 - p1}%; top: ${\n align === 0 ? bottomLimit : align === 2 ? leftTopLimit : 100 - p1\n}%; transform: translateX(-100%);}\n 75% {left: ${align === 0 ? leftTopLimit : align === 2 ? rightLimit : p1}%; top: ${\n align === 1 ? leftTopLimit : align === 3 ? bottomLimit : 100 - p1\n}%;}\n 100% {left: ${align === 1 ? rightLimit : align === 3 ? leftTopLimit : p1}%; top: ${\n align === 0 ? leftTopLimit : align === 2 ? bottomLimit : p1\n}%;}\n }\n `;\n return keyframesStyle;\n}\n","const injectStyle = (style: string) => {\n const styleElement = document.createElement('style');\n let styleSheet = null;\n document.head.appendChild(styleElement);\n styleSheet = styleElement.sheet;\n styleSheet.insertRule(style, styleSheet.cssRules.length);\n};\n\nexport default injectStyle;\n","import _Watermark from './watermark';\nimport withInstall from '../utils/withInstall';\n\nexport * from './type';\n\nexport const Watermark = withInstall(_Watermark);\nexport default Watermark;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRateProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许半选 */\n allowHalf: Boolean,\n /** 是否允许清除评分,如果允许,重新点击当前评分清除 */\n clearable: Boolean,\n /** 评分图标的颜色,样式中默认为 #ED7B2F。一个值表示设置选中高亮的五角星颜色,示例:[选中颜色]。数组则表示分别设置 选中高亮的五角星颜色 和 未选中暗灰的五角星颜色,[选中颜色,未选中颜色]。示例:['#ED7B2F', '#E3E6EB'] */\n color: {\n type: [String, Array] as PropType,\n default: '#ED7B2F' as TdRateProps['color'],\n },\n /** 评分的数量 */\n count: {\n type: Number,\n default: 5,\n },\n /** 是否禁用评分 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 评分图标的间距 */\n gap: {\n type: Number,\n default: 4,\n },\n /** 自定义评分图标 */\n icon: {\n type: Function as PropType,\n },\n /** 是否显示对应的辅助文字 */\n showText: Boolean,\n /** 评分图标的大小 */\n size: {\n type: String,\n default: '24px',\n },\n /** 评分等级对应的辅助文字。组件内置默认值为:['极差', '失望', '一般', '满意', '惊喜']。自定义值示例:['1分', '2分', '3分', '4分', '5分'] */\n texts: {\n type: Array as PropType,\n default: (): TdRateProps['texts'] => [],\n },\n /** 选择评分的值 */\n value: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 选择评分的值,非受控属性 */\n defaultValue: {\n type: Number,\n default: 0,\n },\n /** 评分数改变时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed, toRefs, ref } from 'vue';\nimport { StarFilledIcon } from 'tdesign-icons-vue-next';\nimport useVModel from '../hooks/useVModel';\nimport props from './props';\nimport { useConfig } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Tooltip from '../tooltip/index';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TRate',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('rate');\n\n const activeColor = isArray(props.color) ? props.color[0] : props.color;\n const defaultColor = isArray(props.color) ? props.color[1] : 'var(--td-bg-color-component)';\n\n const { value: inputValue, modelValue } = toRefs(props);\n const [starValue, setStarValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n\n const hoverValue = ref(undefined);\n const root = ref();\n\n const displayValue = computed(() => Number(hoverValue.value || starValue.value));\n const displayTexts = computed(() => (props.texts.length === 0 ? globalConfig.value.rateText : props.texts));\n const displayText = computed(() => displayTexts.value[Math.ceil(displayValue.value - 1)]);\n\n // 评分图标\n const RateIcon = (iconProps: any) => {\n if (slots.icon !== undefined) {\n return renderTNodeJSX('icon', {\n params: iconProps,\n });\n }\n\n return ;\n };\n\n const getStarValue = (event: MouseEvent, index: number) => {\n if (props.allowHalf) {\n const { left } = root.value.getBoundingClientRect();\n const firstStar = root.value.firstChild.nextSibling as HTMLElement;\n const { width } = firstStar.getBoundingClientRect();\n const { clientX } = event;\n const starMiddle = width * (index - 0.5) + props.gap * (index - 1);\n\n if (clientX - left >= starMiddle) return index;\n if (clientX - left < starMiddle) return index - 0.5;\n }\n\n return index;\n };\n\n const mouseEnterHandler = (event: MouseEvent, index: number) => {\n if (props.disabled) return;\n hoverValue.value = getStarValue(event, index);\n };\n\n const mouseLeaveHandler = () => {\n if (props.disabled) return;\n hoverValue.value = undefined;\n };\n\n const clickHandler = (event: MouseEvent, index: number) => {\n if (props.disabled) return;\n const value = getStarValue(event, index);\n if (props.clearable && value === starValue.value) {\n hoverValue.value = undefined;\n setStarValue(0);\n } else {\n setStarValue(value);\n }\n };\n\n const getStarCls = (index: number) => {\n if (props.allowHalf && index + 0.5 === displayValue.value) return `${classPrefix.value}-rate__item--half`;\n if (index >= displayValue.value) return '';\n if (index < displayValue.value) return `${classPrefix.value}-rate__item--full`;\n };\n\n const { classPrefix } = useConfig('classPrefix');\n\n return () => {\n return (\n
    \n
      \n {[...Array(Number(props.count))].map((_, index) => (\n clickHandler(event, index + 1)}\n onMousemove={(event: MouseEvent) => {\n return mouseEnterHandler(event, index + 1);\n }}\n >\n {props.showText ? (\n \n
      \n \n
      \n
      \n \n
      \n
      \n ) : (\n <>\n
      \n \n
      \n
      \n \n
      \n \n )}\n \n ))}\n
    \n {props.showText &&
    {displayText.value}
    }\n
    \n );\n };\n },\n});\n","import _Rate from './rate';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './type';\n\nexport const Rate = withInstall(_Rate);\n\nexport default Rate;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否添加代码样式 */\n code: Boolean,\n /** 文本内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 是否可复制,可通过配置参数自定义复制操作的具体功能和样式 */\n copyable: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextProps['copyable'],\n },\n /** 文本内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否添加删除线样式 */\n delete: Boolean,\n /** 是否添加不可用样式 */\n disabled: Boolean,\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextProps['ellipsis'],\n },\n /** 文本是否为斜体 */\n italic: Boolean,\n /** 是否添加键盘样式 */\n keyboard: Boolean,\n /** 是否添加标记样式,默认为黄色,可通过配置颜色修改标记样式,如#0052D9 */\n mark: {\n type: [String, Boolean] as PropType,\n default: false as TdTextProps['mark'],\n },\n /** 文本是否加粗 */\n strong: Boolean,\n /** 主题 */\n theme: {\n type: String as PropType,\n validator(val: TdTextProps['theme']): boolean {\n if (!val) return true;\n return ['primary', 'secondary', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 是否添加下划线样式 */\n underline: Boolean,\n};\n","interface Options {\n message?: string;\n format?: string; // MIME type\n onCopy?: (clipboardData: object) => void;\n}\n\nconst defaultMessage = 'Copy to clipboard: #{key}, Enter';\n\nconst format = (message: string) => {\n const copyKey = (/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl') + '+C';\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n};\n\n// inspired by https://github.com/sudodoki/toggle-selection, refactor to esm\nconst deselectCurrent = () => {\n const selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n let active = document.activeElement as any;\n\n const ranges: Range[] = [];\n for (let i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n const tagName = active.tagName.toUpperCase(); // toUpperCase handles XHTML\n switch (tagName) {\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' && selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function (range) {\n selection.addRange(range);\n });\n }\n\n active && active.focus();\n };\n};\n\nconst copy = (text: string, options?: Options) => {\n let message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement('span');\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = 'unset';\n // prevents scrolling to the end of the page\n mark.style.position = 'fixed';\n mark.style.top = '0';\n mark.style.clip = 'rect(0, 0, 0, 0)';\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = 'pre';\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = 'text';\n mark.style.userSelect = 'text';\n mark.addEventListener('copy', function (e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n const successful = document.execCommand('copy');\n if (!successful) {\n throw new Error('copy command was unsuccessful');\n }\n success = true;\n } catch (err) {\n try {\n (window as any).clipboardData.setData(options.format || 'text', text);\n options.onCopy && options.onCopy((window as any).clipboardData);\n success = true;\n } catch (err) {\n message = format('message' in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == 'function') {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n};\n\nexport default copy;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdParagraphProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 段落内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 段落内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdParagraphProps['ellipsis'],\n },\n};\n","import { defineComponent, computed, ref } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './paragraph-props';\nimport TTooltip from '../tooltip/index';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nimport type { TypographyEllipsis } from './type';\n\nexport default defineComponent({\n name: 'TEllipsis',\n components: { TTooltip },\n props: {\n ...props,\n },\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const ellipsisState = computed((): TypographyEllipsis => {\n const ellipsis = props.ellipsis;\n return {\n row: 1,\n expandable: false,\n ...(typeof ellipsis === 'object' ? ellipsis : null),\n };\n });\n\n const ellipsisStyles = computed((): any => {\n const ellipsis = ellipsisState.value;\n const def = {\n overflow: props.ellipsis ? 'hidden' : 'visible',\n textOverflow: props.ellipsis ? 'ellipsis' : 'initial',\n whiteSpace: props.ellipsis ? 'normal' : 'nowrap',\n display: '-webkit-box',\n WebkitLineClamp: ellipsis.row,\n WebkitBoxOrient: 'vertical',\n };\n\n if (isExpand.value) {\n def.overflow = 'visible';\n def.whiteSpace = 'normal';\n def.display = 'initial';\n }\n return def;\n });\n const isExpand = ref(false);\n\n const onExpand = () => {\n isExpand.value = true;\n if (typeof props.ellipsis === 'object') props.ellipsis.onExpand?.(true);\n };\n\n const onCollapse = () => {\n isExpand.value = false;\n if (typeof props.ellipsis === 'object') props.ellipsis.onExpand?.(false);\n };\n\n const renderEllipsisExpand = () => {\n const { suffix } = ellipsisState.value;\n\n const moreNode = (\n \n {suffix || globalConfig.value.expandText}\n \n );\n\n const { tooltipProps, expandable, collapsible } = ellipsisState.value;\n if (!isExpand.value && expandable) {\n return tooltipProps && tooltipProps.content ? (\n \n {moreNode}\n \n ) : (\n moreNode\n );\n }\n if (expandable && isExpand.value && collapsible) {\n return (\n \n {globalConfig.value.collapseText}\n \n );\n }\n };\n\n return () => {\n const { tooltipProps } = ellipsisState.value;\n return (\n \n {tooltipProps && }\n

    {content.value}

    \n {renderEllipsisExpand()}\n \n );\n };\n },\n});\n","import { computed, defineComponent, ref } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './text-props';\nimport copy from './utils/copy-to-clipboard';\nimport { CopyIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport Ellipsis from './ellipsis';\nimport TTooltip from '../tooltip';\nimport TButton from '../button';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\n\nimport type { TdTextProps } from './type';\nimport type { TdTooltipProps } from '../tooltip/type';\n\nexport default defineComponent({\n name: 'TTypographyText',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n const isCopied = ref(false);\n const renderContent = useContent();\n\n const wrapperDecorations = (\n { code, underline, delete: del, strong, keyboard, mark, italic }: TdTextProps,\n content: any,\n ) => {\n let currentContent = content;\n\n function wrap(needed: boolean, Tag: string, styles: object = {}) {\n if (!needed) return;\n currentContent = {currentContent};\n }\n\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark !== false, 'mark', mark ? { color: mark } : {});\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n };\n\n const classList = computed(() => {\n const { theme, disabled } = props;\n const prefix = COMPONENT_NAME.value;\n const list: string[] = [prefix];\n if (disabled) {\n list.push(`${prefix}--disabled`);\n } else if (theme && ['primary', 'secondary', 'success', 'warning', 'error'].includes(theme)) {\n list.push(`${prefix}--${theme}`);\n }\n return list;\n });\n\n const tooltipText = computed(() => {\n const { copyable } = props;\n if (isCopied.value) return globalConfig.value.copiedText;\n else if (typeof copyable === 'object') return copyable.tooltipProps?.content;\n return null;\n });\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const renderCopy = () => {\n const { copyable } = props;\n if (!copyable) return;\n\n let icon: any = isCopied.value ? () => : () => ;\n let tooltipConf: TdTooltipProps = {\n theme: 'default',\n };\n\n let onCopy = () => {};\n if (typeof copyable === 'object') {\n if (copyable.suffix && !isCopied.value) {\n icon = copyable.suffix;\n }\n if (copyable.tooltipProps) {\n tooltipConf = copyable.tooltipProps;\n }\n if (typeof copyable.onCopy === 'function') {\n onCopy = copyable.onCopy;\n }\n }\n return (\n \n onCopyClick(e, onCopy)} />\n \n );\n };\n\n const getChildrenText = () => {\n if (typeof content.value === 'string') {\n return content.value;\n } else if (Array.isArray(content.value)) {\n return content.value.map((v) => v.children).join('');\n }\n };\n\n const onCopyClick = (e: MouseEvent, cb: Function) => {\n e.preventDefault();\n e.stopPropagation();\n\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, 1500);\n\n copy(getChildrenText());\n cb?.();\n };\n\n return () => {\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n ) : (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nimport Text from './text';\n\nexport default defineComponent({\n name: 'TTypography',\n\n setup() {\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n return {renderTNodeJSX('default')};\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTitleProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 段落内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 标题内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdTitleProps['ellipsis'],\n },\n /** 标题等级 */\n level: {\n type: String as PropType,\n default: 'h1' as TdTitleProps['level'],\n validator(val: TdTitleProps['level']): boolean {\n if (!val) return true;\n return ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(val);\n },\n },\n};\n","import { defineComponent, h } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './title-props';\nimport Ellipsis from './ellipsis';\nimport { useContent } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TTypographyTitle',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const renderContent = useContent();\n\n return () => {\n const { level: Tag } = props;\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n \n {h(Tag, ...content)}\n \n ) : (\n <>{h(Tag, { class: COMPONENT_NAME.value }, ...content)}\n );\n };\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './paragraph-props';\nimport TTooltip from '../tooltip/index';\nimport Ellipsis from './ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyParagraph',\n components: { TTooltip },\n props: {\n style: {\n type: Object as PropType>,\n default: () => ({}),\n },\n ...props,\n },\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n return () => {\n return props.ellipsis ? (\n \n {content.value}\n \n ) : (\n

    {content.value}

    \n );\n };\n },\n});\n","import _Typography from './typography';\nimport _Text from './text';\nimport _Title from './title';\nimport _Paragraph from './paragraph';\nimport withInstall from '../utils/withInstall';\n\nexport * from './type';\nimport './style';\n\nexport const Typography = withInstall(_Typography);\nexport const Text = withInstall(_Text);\nexport const Title = withInstall(_Title);\nexport const Paragraph = withInstall(_Paragraph);\n\nexport default Typography;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdAlertProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 关闭按钮。值为 true 则显示默认关闭按钮;值为 false 则不显示按钮;值类型为 string 则直接显示;值类型为 Function 则可以自定关闭按钮 */\n close: {\n type: [String, Boolean, Function] as PropType,\n default: false,\n },\n /** 内容,同 message */\n default: {\n type: [String, Function] as PropType,\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 内容显示最大行数,超出的内容会折叠收起,用户点击后再展开。值为 0 表示不折叠 */\n maxLine: {\n type: Number,\n default: 0,\n },\n /** 内容(子元素) */\n message: {\n type: [String, Function] as PropType,\n },\n /** 跟在告警内容后面的操作区 */\n operation: {\n type: Function as PropType,\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'info' as TdAlertProps['theme'],\n validator(val: TdAlertProps['theme']): boolean {\n return ['success', 'info', 'warning', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 关闭按钮点击时触发 */\n onClose: Function as PropType,\n /** 告警提示框关闭动画结束后触发 */\n onClosed: Function as PropType,\n};\n","import { defineComponent, VNode, ref, onMounted, onBeforeUnmount } from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n HelpCircleFilledIcon as TdHelpCircleFilledIcon,\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { on, off, addClass } from '../utils/dom';\nimport props from './props';\nimport { SlotReturnValue } from '../common';\nimport { useIcon } from '../hooks/icon';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\n\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TAlert',\n props,\n setup(props) {\n const { globalConfig, classPrefix } = useConfig('alert');\n const { CheckCircleFilledIcon, CloseIcon, ErrorCircleFilledIcon, HelpCircleFilledIcon, InfoCircleFilledIcon } =\n useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n HelpCircleFilledIcon: TdHelpCircleFilledIcon,\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n });\n const COMPONENT_NAME = usePrefixClass('alert');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderIconTNode = useIcon();\n // alert的dom引用\n const alertRef = ref(null);\n // description的dom引用\n const descriptionRef = ref(null);\n // desc高度\n const descHeight = ref(0);\n // 是否可见,关闭后置为false\n const visible = ref(true);\n // 是否已收起,使用折叠功能时有效,用于表示是否已折叠;默认折叠\n const collapsed = ref(true);\n\n const renderIcon = () => {\n const Component = {\n info: InfoCircleFilledIcon,\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: ErrorCircleFilledIcon,\n question: HelpCircleFilledIcon,\n };\n const iconContent = renderIconTNode('icon', Component);\n return iconContent ?
    {iconContent}
    : null;\n };\n\n const renderClose = () => {\n const { close } = props;\n let closeContent = null;\n if (close === true || close === '') {\n closeContent = ;\n } else if (isString(close)) {\n closeContent = close;\n } else {\n closeContent = renderIconTNode('close');\n }\n return closeContent ? (\n
    \n {closeContent}\n
    \n ) : null;\n };\n\n const renderTitle = () => {\n const titleContent = renderTNodeJSX('title');\n return titleContent ?
    {titleContent}
    : null;\n };\n\n const renderMessage = () => {\n const operationContent = renderTNodeJSX('operation');\n return (\n
    \n {renderDescription()}\n {operationContent ?
    {operationContent}
    : null}\n
    \n );\n };\n\n const renderDescription = () => {\n let messageContent;\n\n messageContent = renderTNodeJSX('default');\n if (!messageContent) {\n messageContent = renderTNodeJSX('message');\n }\n const contentLength = isArray(messageContent) ? (messageContent as Array).length : 1;\n const hasCollapse = props.maxLine > 0 && props.maxLine < contentLength;\n const height = (descriptionRef.value?.children[0] as HTMLElement)?.offsetHeight;\n if (hasCollapse && collapsed.value) {\n // 折叠\n messageContent = (messageContent as Array).slice(0, props.maxLine as number);\n height && (descriptionRef.value.style.height = `${descHeight.value}px`);\n } else if (hasCollapse) {\n // 展开\n height &&\n (descriptionRef.value.style.height = `${height * (contentLength - props.maxLine) + descHeight.value}px`);\n }\n\n // 如果需要折叠,则元素之间补
    ;否则不补\n return (\n
    \n {hasCollapse\n ? (messageContent as Array).map((content) =>
    {content}
    )\n : messageContent}\n {hasCollapse ? (\n {\n collapsed.value = !collapsed.value;\n }}\n >\n {collapsed.value ? globalConfig.value.expandText : globalConfig.value.collapseText}\n
    \n ) : null}\n \n );\n };\n const renderContent = () => {\n return (\n
    \n {renderTitle()}\n {renderMessage()}\n
    \n );\n };\n const handleClose = (e: MouseEvent) => {\n props.onClose?.({ e });\n addClass(alertRef.value, `${COMPONENT_NAME.value}--closing`);\n };\n\n const handleCloseEnd = (e: TransitionEvent) => {\n const isTransitionTarget = e.target === alertRef.value;\n // 防止子元素冒泡触发\n if (e.propertyName === 'opacity' && isTransitionTarget) {\n visible.value = false;\n props.onClosed?.({ e });\n }\n };\n\n onMounted(() => {\n on(alertRef.value, 'transitionend', handleCloseEnd);\n descHeight.value = descriptionRef.value.offsetHeight;\n });\n onBeforeUnmount(() => {\n off(alertRef.value, 'transitionend', handleCloseEnd);\n });\n\n return () => (\n \n {renderIcon()}\n {renderContent()}\n {renderClose()}\n \n );\n },\n});\n","import { isFunction } from 'lodash-es';\nimport { getCurrentInstance, h } from 'vue';\n\n/**\n * 渲染icon,用于icon、close等渲染图标的场景\n * @example const renderIconTNode = useIcon();\n * @returns renderIconTNode\n * @param iconType 要渲染的icon元素\n * @param defaultIcons 默认icon集合\n */\nexport function useIcon() {\n const instance = getCurrentInstance();\n return function renderIconTNode(iconType: string, defaultIcons?: Record) {\n let iconContent;\n // 传入的是渲染函数\n if (isFunction(instance.props[iconType])) {\n iconContent = instance.props[iconType](h);\n } else if (instance.slots[iconType]) {\n // 插槽slot\n iconContent = instance.slots[iconType] && instance.slots[iconType](null)[0];\n } else if (defaultIcons) {\n const Component = defaultIcons[instance.props.theme as string];\n iconContent = ;\n }\n return iconContent;\n };\n}\n","import _Alert from './alert';\nimport withInstall from '../utils/withInstall';\nimport { TdAlertProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type AlertProps = TdAlertProps;\n\nexport const Alert = withInstall(_Alert);\nexport default Alert;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDrawerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 抽屉挂载的节点,默认挂在组件本身的位置。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 抽屉内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n },\n /** 按下 ESC 时是否触发抽屉关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: undefined,\n },\n /** 点击蒙层时是否触发抽屉关闭事件 */\n closeOnOverlayClick: {\n type: Boolean,\n default: undefined,\n },\n /** 确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 抽屉内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 抽屉关闭时是否销毁节点 */\n destroyOnClose: Boolean,\n /** 抽屉元素类名。 */\n drawerClassName: {\n type: String,\n default: '',\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 或 null 不显示任何内容,值类型为 TNode 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDrawerProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示头部,值类型为 string 则直接显示值,值类型为 TNode 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDrawerProps['header'],\n },\n /** 是否启用抽屉懒加载,启用时抽屉的内容不渲染 */\n lazy: Boolean,\n /** 展开方式,有两种:直接展示在内容上方 和 推开内容区域 */\n mode: {\n type: String as PropType,\n default: 'overlay' as TdDrawerProps['mode'],\n validator(val: TdDrawerProps['mode']): boolean {\n if (!val) return true;\n return ['overlay', 'push'].includes(val);\n },\n },\n /** 抽屉方向 */\n placement: {\n type: String as PropType,\n default: 'right' as TdDrawerProps['placement'],\n validator(val: TdDrawerProps['placement']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,支持 'small', 'medium', 'large','35px', '30%', '3em' 等。纵向抽屉调整的是抽屉宽度,横向抽屉调整的是抽屉高度 */\n size: {\n type: String,\n default: undefined,\n },\n /** 抽屉大小可拖拽调整,横向抽屉调整宽度,纵向抽屉调整高度。`sizeDraggable.max` 和 `sizeDraggable.min` 用于控制拖拽尺寸大小限制 */\n sizeDraggable: {\n type: [Boolean, Object] as PropType,\n default: false as TdDrawerProps['sizeDraggable'],\n },\n /** 组件是否可见 */\n visible: Boolean,\n /** 抽屉层级,样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 抽屉执行关闭动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 抽屉执行打开动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,取消按钮点击时、关闭按钮点击时、ESC 按下时、点击蒙层时均会触发 */\n onClose: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发该事件,同时触发关闭事件 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 键时触发 */\n onEscKeydown: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n /** 抽屉大小拖拽结束时触发,事件参数 `size` 在横向抽屉中表示宽度,在纵向抽屉中表示高度 */\n onSizeDragEnd: Function as PropType,\n};\n","type Placement = 'left' | 'right' | 'top' | 'bottom';\n\ninterface SizeDragLimit {\n max: number;\n min: number;\n}\n\nexport function getSizeDraggable(\n sizeDraggable: boolean | SizeDragLimit,\n limit: { max: number; min: number }\n) {\n if (typeof sizeDraggable === 'boolean') {\n return {\n allowSizeDraggable: sizeDraggable,\n max: limit.max,\n min: limit.min,\n };\n }\n\n return {\n allowSizeDraggable: true,\n max: sizeDraggable.max,\n min: sizeDraggable.min,\n };\n}\n\ntype IOptions = {\n x: number;\n y: number;\n maxWidth: number;\n maxHeight: number;\n min: number;\n max: number;\n};\n\n// > min && < max\nfunction calcSizeRange(size: number, min: number, max: number) {\n return Math.min(Math.max(size, min), max);\n}\n\nexport function calcMoveSize(placement: Placement, opts: IOptions) {\n const { x, y, max, min, maxWidth, maxHeight } = opts;\n let moveSize: number | undefined;\n switch (placement) {\n case 'right':\n // |<--- x --->| |\n // | maxWidth |\n // | size | > min && < max\n moveSize = calcSizeRange(maxWidth - x, min, max);\n break;\n case 'left':\n // |<-- x -->| |\n // x > min && < max\n moveSize = calcSizeRange(x, min, max);\n break;\n case 'top':\n // - - - - - - - -\n // | y |\n // | |\n // - - - - - - - -\n // > min && < max\n // moveSize = Math.min(Math.max(y, min), max);\n moveSize = calcSizeRange(y, min, max);\n break;\n case 'bottom':\n // - - - - - - - -\n // | y |\n // | | maxHeight\n // - - - - - - - -\n // | size |\n // > min && < max\n moveSize = calcSizeRange(maxHeight - y, min, max);\n break;\n default:\n // 参数缺失直接返回\n return moveSize;\n }\n return moveSize;\n}\n","import { computed, ref } from 'vue';\nimport { Styles } from '../../common';\nimport { getSizeDraggable, calcMoveSize } from '@tdesign/common-js/drawer/utils';\nimport type { TdDrawerProps } from '../type';\n\nexport const useDrag = (props: TdDrawerProps) => {\n // 以下为拖拽改变抽屉大小相关 可以抽成hooks\n const isSizeDragging = ref(false);\n const draggedSizeValue = ref(null);\n\n const enableDrag = (e: MouseEvent) => {\n e.stopPropagation(); // 阻止事件冒泡\n // mousedown绑定mousemove和mouseup事件\n document.addEventListener('mouseup', handleMouseup, true);\n document.addEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = true;\n };\n\n const handleMouseup = () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n document.removeEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = false;\n };\n\n const handleMousemove = (e: MouseEvent) => {\n // 鼠标移动时计算draggedSizeValue的值\n const { x, y } = e;\n const maxHeight = document.documentElement.clientHeight;\n const maxWidth = document.documentElement.clientWidth;\n const offsetHeight = 8;\n const offsetWidth = 8;\n // x 轴方向使用最大宽度,y轴方向使用最大高度\n const max = props.placement === 'left' || props.placement === 'right' ? maxWidth : maxHeight;\n // x 轴方向使用默认最小宽度,y轴方向使用默认最小高度\n const min = props.placement === 'left' || props.placement === 'right' ? offsetWidth : offsetHeight;\n const { allowSizeDraggable, max: limitMax, min: limitMin } = getSizeDraggable(props.sizeDraggable, { max, min });\n\n // 不支持拖拽就直接返回\n if (!allowSizeDraggable || !isSizeDragging.value) return;\n\n const moveSize = calcMoveSize(props.placement, {\n x,\n y,\n maxWidth,\n maxHeight,\n max: limitMax,\n min: limitMin,\n });\n\n if (typeof moveSize === 'undefined') return;\n\n draggedSizeValue.value = `${moveSize}px`;\n props.onSizeDragEnd?.({\n e,\n size: moveSize,\n });\n };\n\n const draggableLineStyles = computed(() => {\n // 设置拖拽control的样式\n const isHorizontal = ['right', 'left'].includes(props.placement);\n const oppositeMap = {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top',\n };\n return {\n zIndex: 1,\n position: 'absolute',\n background: 'transparent',\n [oppositeMap[props.placement]]: 0,\n width: isHorizontal ? '16px' : '100%',\n height: isHorizontal ? '100%' : '16px',\n cursor: isHorizontal ? 'col-resize' : 'row-resize',\n } as Styles;\n });\n\n const draggingStyles = computed(() => (isSizeDragging.value ? { userSelect: 'none' } : {}));\n\n return {\n draggedSizeValue,\n enableDrag,\n draggableLineStyles,\n draggingStyles,\n };\n};\n","import { onBeforeUnmount, onMounted, computed, defineComponent, nextTick, onUpdated, ref, watch, Teleport } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { isServer } from '../utils/dom';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport props from './props';\nimport { DrawerCloseContext } from './type';\nimport { useAction } from '../dialog/hooks';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { useDrag } from './hooks';\nimport type { TdDrawerProps } from './type';\nimport useTeleport from '../hooks/useTeleport';\nimport usePopupManager from '../hooks/usePopupManager';\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDrawer',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const destroyOnCloseVisible = ref(false);\n const isVisible = ref(false);\n const styleEl = ref();\n const styleTimer = ref();\n const { globalConfig } = useConfig('drawer');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const COMPONENT_NAME = usePrefixClass('drawer');\n const { draggedSizeValue, enableDrag, draggableLineStyles, draggingStyles } = useDrag(props as TdDrawerProps);\n const computedVisible = computed(() => props.visible);\n const isMounted = ref(false);\n\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n };\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n closeDrawer({ trigger: 'cancel', e });\n };\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n const drawerEle = ref(null);\n const drawerClasses = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.placement}`,\n {\n [`${COMPONENT_NAME.value}--open`]: isVisible.value,\n [`${COMPONENT_NAME.value}--attach`]: props.showInAttachedElement,\n [`${COMPONENT_NAME.value}--without-mask`]: !props.showOverlay,\n },\n props.drawerClassName,\n ]);\n\n const sizeValue = computed(() => {\n if (draggedSizeValue.value) return draggedSizeValue.value;\n const size = props.size ?? globalConfig.value.size;\n const defaultSize = isNaN(Number(size)) ? size : `${size}px`;\n return (\n {\n small: '300px',\n medium: '500px',\n large: '760px',\n }[size] || defaultSize\n );\n });\n const wrapperStyles = computed(() => ({\n transform: isVisible.value ? 'translateX(0)' : undefined,\n width: ['left', 'right'].includes(props.placement) ? sizeValue.value : '',\n height: ['top', 'bottom'].includes(props.placement) ? sizeValue.value : '',\n }));\n\n const wrapperClasses = computed(() => [\n `${COMPONENT_NAME.value}__content-wrapper`,\n `${COMPONENT_NAME.value}__content-wrapper--${props.placement}`,\n ]);\n\n const parentNode = computed(() => drawerEle.value?.parentNode as HTMLElement);\n\n const modeAndPlacement = computed(() => [props.mode, props.placement].join());\n const footerStyle = computed(() => ({\n display: 'flex',\n justifyContent: props.placement === 'right' ? 'flex-start' : 'flex-end',\n }));\n\n const handleEscKeydown = (e: KeyboardEvent) => {\n if (\n (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) &&\n e.key === 'Escape' &&\n isVisible.value &&\n isTopInteractivePopup()\n ) {\n props.onEscKeydown?.({ e });\n closeDrawer({ trigger: 'esc', e });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n };\n\n const clearStyleEl = () => {\n clearTimeout(styleTimer.value);\n styleTimer.value = setTimeout(() => {\n styleEl.value?.parentNode?.removeChild?.(styleEl.value);\n styleEl.value = null;\n }, 150);\n nextTick(() => {\n drawerEle.value?.focus?.();\n });\n };\n\n const createStyleEl = () => {\n if (!styleEl.value) return;\n const hasScrollBar = window.innerWidth > document.documentElement.clientWidth;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_drawer_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ${props.mode === 'push' ? '' : `width: calc(100% - ${scrollWidth}px);`}\n }\n `;\n };\n\n const handlePushMode = () => {\n if (props.mode !== 'push') return;\n nextTick(() => {\n if (!parentNode.value) return;\n parentNode.value.style.cssText = 'transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;';\n });\n };\n\n // push 动画效果处理\n const updatePushMode = () => {\n if (!parentNode.value || props.mode !== 'push') return;\n const marginValueData = {\n left: { name: 'margin-left', value: sizeValue.value },\n right: { name: 'margin-right', value: `-${sizeValue.value}` },\n top: { name: 'margin-top', value: sizeValue.value },\n bottom: { name: 'margin-bottom', value: `-${sizeValue.value}` },\n }[props.placement];\n if (isVisible.value) {\n parentNode.value.style.setProperty(marginValueData.name, marginValueData.value);\n } else {\n parentNode.value.style.removeProperty(marginValueData.name);\n }\n };\n\n // locale 全局配置,插槽,props,默认值,决定了按钮最终呈现\n const getDefaultFooter = () => {\n const confirmBtn = getConfirmBtn({\n confirmBtn: props.confirmBtn as TdDrawerProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n className: `${COMPONENT_NAME.value}__confirm`,\n });\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDrawerProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n });\n return (\n
    \n {props.placement === 'right' ? confirmBtn : null}\n {cancelBtn}\n {props.placement !== 'right' ? confirmBtn : null}\n
    \n );\n };\n\n const { isTopInteractivePopup } = usePopupManager('drawer', {\n visible: computedVisible,\n });\n\n watch(modeAndPlacement, handlePushMode, { immediate: true });\n\n const updateVisibleState = (value: boolean) => {\n if (value) {\n isMounted.value = true;\n }\n\n if (props.destroyOnClose) {\n if (value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n } else {\n isVisible.value = false;\n setTimeout(() => (destroyOnCloseVisible.value = true), 200);\n }\n return;\n }\n\n if (destroyOnCloseVisible.value && value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n return;\n }\n\n setTimeout(() => (isVisible.value = value));\n };\n\n const addStyleElToHead = () => {\n if (\n !props.showInAttachedElement &&\n props.preventScrollThrough &&\n isVisible.value &&\n (isMounted.value || !props.lazy)\n ) {\n if (!styleEl.value) {\n createStyleEl();\n }\n if (styleEl.value && !document.head.contains(styleEl.value)) {\n document.head.appendChild(styleEl.value);\n }\n }\n };\n\n watch(\n () => props.visible,\n (value) => {\n if (isServer) return;\n if (value) {\n addStyleElToHead();\n props.onBeforeOpen?.();\n } else {\n clearStyleEl();\n props.onBeforeClose?.();\n }\n\n updateVisibleState(value);\n },\n { immediate: true },\n );\n\n const handleCloseBtnClick = (e: MouseEvent) => {\n props.onCloseBtnClick?.({ e });\n closeDrawer({ trigger: 'close-btn', e });\n };\n const handleWrapperClick = (e: MouseEvent) => {\n props.onOverlayClick?.({ e });\n if (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick) {\n closeDrawer({ trigger: 'overlay', e });\n }\n };\n\n const closeDrawer = (params: DrawerCloseContext) => {\n props.onClose?.(params);\n context.emit('update:visible', false);\n };\n\n onUpdated(updatePushMode);\n\n onMounted(() => {\n addStyleElToHead();\n window.addEventListener('keydown', handleEscKeydown);\n });\n\n onBeforeUnmount(() => {\n clearStyleEl();\n window.removeEventListener('keydown', handleEscKeydown);\n });\n\n const shouldRender = computed(() => {\n if (!isMounted.value) {\n return !props.lazy;\n } else {\n return isVisible.value || !destroyOnCloseVisible.value;\n }\n });\n\n return () => {\n if (!shouldRender.value) return;\n\n const body = renderContent('body', 'default');\n const headerContent = renderTNodeJSX('header');\n const defaultFooter = getDefaultFooter();\n\n return (\n \n \n {props.showOverlay &&
    }\n
    \n {headerContent &&
    {headerContent}
    }\n {props.closeBtn && (\n
    \n {renderTNodeJSX('closeBtn', )}\n
    \n )}\n
    {body}
    \n {props.footer && (\n
    {renderTNodeJSX('footer', defaultFooter)}
    \n )}\n {props.sizeDraggable &&
    }\n
    \n
    \n
    \n );\n };\n },\n});\n","import { App, createApp, ref, Plugin, defineComponent, h, onMounted, nextTick } from 'vue';\nimport DrawerComponent from './drawer';\nimport { getAttach } from '../utils/dom';\nimport { DrawerOptions, DrawerMethod, DrawerInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDrawer: DrawerMethod = (props: DrawerOptions) => {\n const options = { ...props };\n const wrapper = document.createElement('div');\n const visible = ref(false);\n const { style } = options;\n\n const updateStyle = (style: DrawerOptions['style']) => {\n if (style) {\n (wrapper.firstElementChild as HTMLElement).style.cssText += style;\n }\n };\n\n const component = defineComponent({\n setup(props, { expose }) {\n const drawerOptions = ref>(options);\n onMounted(() => {\n visible.value = true;\n (document.activeElement as HTMLElement).blur();\n nextTick(() => {\n updateStyle(style);\n });\n });\n const update = (newOptions: DrawerOptions) => {\n drawerOptions.value = {\n ...options,\n ...newOptions,\n };\n };\n\n expose({\n update,\n });\n\n return () => {\n const onClose =\n options.onClose ||\n function () {\n visible.value = false;\n };\n delete options.style;\n return h(DrawerComponent, {\n onClose,\n visible: visible.value,\n drawerClassName: drawerOptions.value?.className,\n ...drawerOptions.value,\n });\n };\n },\n });\n const drawerComponent = createApp(component);\n const drawer = drawerComponent.mount(wrapper);\n\n const destroyDrawer = () => {\n visible.value = false;\n setTimeout(() => {\n drawerComponent.unmount();\n wrapper.remove();\n }, 300);\n };\n\n const container = getAttach(options.attach);\n if (container) {\n container.appendChild(wrapper);\n } else {\n console.error('attach is not exist');\n }\n\n const drawerNode: DrawerInstance = {\n show: () => {\n visible.value = true;\n },\n hide: () => {\n visible.value = false;\n },\n update: (newOptions: DrawerOptions) => {\n // className & style由updateClassNameStyle来处理\n drawer.update(omit(newOptions, ['style']));\n updateStyle(newOptions.style);\n },\n destroy: () => {\n destroyDrawer();\n },\n };\n return drawerNode;\n};\n\nexport type DrawerPluginType = Plugin & DrawerMethod;\n\nexport const DrawerPlugin = createDrawer as DrawerPluginType;\n\nDrawerPlugin.install = (app: App): void => {\n app.config.globalProperties.$drawer = createDrawer;\n};\n\nexport default DrawerPlugin;\n","import _Drawer from './drawer';\nimport withInstall from '../utils/withInstall';\nimport { TdDrawerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DrawerProps = TdDrawerProps;\n\nexport const Drawer = withInstall(_Drawer);\nexport { default as DrawerPlugin } from './plugin';\nexport default Drawer;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdGuideProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于自定义渲染计数部分 */\n counter: {\n type: Function as PropType,\n },\n /** 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景,非受控属性 */\n defaultCurrent: {\n type: Number,\n },\n /** 透传 完成 的全部属性,示例:`{ content: '完成', theme: 'primary' }` */\n finishButtonProps: {\n type: Object as PropType,\n },\n /** 是否隐藏计数 */\n hideCounter: Boolean,\n /** 是否隐藏上一步按钮 */\n hidePrev: Boolean,\n /** 是否隐藏跳过按钮 */\n hideSkip: Boolean,\n /** 高亮框的内边距 */\n highlightPadding: {\n type: Number,\n default: 8,\n },\n /** 引导框的类型 */\n mode: {\n type: String as PropType,\n default: 'popup' as TdGuideProps['mode'],\n validator(val: TdGuideProps['mode']): boolean {\n if (!val) return true;\n return ['popup', 'dialog'].includes(val);\n },\n },\n /** 透传 下一步按钮 的全部属性,示例:{ content: '下一步', theme: 'primary' } */\n nextButtonProps: {\n type: Object as PropType,\n },\n /** 透传 上一步按钮 的全部属性,示例:{ content: '上一步', theme: 'default' } */\n prevButtonProps: {\n type: Object as PropType,\n },\n /** 是否出现遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 透传 跳过按钮 的全部属性,{ content: '跳过', theme: 'default' } */\n skipButtonProps: {\n type: Object as PropType,\n },\n /** 用于定义每个步骤的内容,包括高亮的节点、相对位置和具体的文案内容等。 */\n steps: {\n type: Array as PropType,\n },\n /** 提示框的层级 */\n zIndex: {\n type: Number,\n default: 999999,\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n /** 点击完成按钮时触发 */\n onFinish: Function as PropType,\n /** 点击下一步时触发 */\n onNextStepClick: Function as PropType,\n /** 点击上一步时触发 */\n onPrevStepClick: Function as PropType,\n /** 点击跳过按钮时触发 */\n onSkip: Function as PropType,\n};\n","import { elementInViewport } from '../../utils/dom';\n\nexport function getScrollParent(element: HTMLElement) {\n let style = window.getComputedStyle(element);\n const excludeStaticParent = style.position === 'absolute';\n const overflowRegex = /(auto|scroll)/;\n\n if (style.position === 'fixed') return document.body;\n\n for (let parent = element; parent.parentElement; ) {\n parent = parent.parentElement;\n style = window.getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n }\n\n return document.body;\n}\n\nexport function scrollToParentVisibleArea(element: HTMLElement) {\n const parent = getScrollParent(element);\n if (parent === document.body) return;\n // !todo 逻辑待验证\n if (elementInViewport(element, parent)) return;\n parent.scrollTop = element.offsetTop - parent.offsetTop;\n}\n","import { getWindowSize, elementInViewport, scrollTo } from '../../utils/dom';\n\nexport function scrollToElm(elm: HTMLElement) {\n const rect = elm.getBoundingClientRect();\n\n if (!elementInViewport(elm)) {\n const winHeight = getWindowSize().height;\n // const top = rect.bottom - (rect.bottom - rect.top);\n scrollTo(rect.top - (winHeight / 2 - rect.height / 2), {});\n\n // todo 先暂时保留这里的逻辑\n // if (top < 0 || element.clientHeight > winHeight) {\n // window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2));\n // } else {\n // window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2));\n // }\n }\n}\n","import { defineComponent, computed, nextTick, onMounted, ref, toRefs, watch, h, Teleport } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { GuideCrossProps } from './types';\nimport { TdGuideProps, GuideStep } from './type';\nimport { scrollToParentVisibleArea, getRelativePosition, getTargetElm, scrollToElm } from './utils';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { addClass, removeClass, isFixed, getWindowScroll } from '../utils/dom';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport Button from '../button';\nimport Popup, { PopupProps } from '../popup';\n\nexport default defineComponent({\n name: 'TGuide',\n props,\n setup(props: TdGuideProps, context) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('guide');\n const LOCK_CLASS = usePrefixClass('guide--lock');\n const { globalConfig } = useConfig('guide');\n\n const { current, modelValue, hideCounter, hidePrev, hideSkip, steps, zIndex } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n // 覆盖层,用于覆盖所有元素\n const overlayLayerRef = ref();\n // 高亮层,用于高亮元素\n const highlightLayerRef = ref();\n // 提示层,用于高亮元素\n const referenceLayerRef = ref();\n // 当前高亮的元素\n const currentHighlightLayerElm = ref();\n // dialog wrapper ref\n const dialogWrapperRef = ref();\n // dialog ref\n const dialogTooltipRef = ref();\n // ! popup ref 不确定这里的类型是否完全正确\n const popupTooltipRef = ref>();\n // 是否开始展示\n const actived = ref(false);\n // 步骤总数\n const stepsTotal = computed(() => steps.value.length);\n // 当前步骤的信息\n const currentStepInfo = computed(() => steps.value[innerCurrent.value]);\n // 当前是否为 popup\n const isPopup = computed(() => getCurrentCrossProps('mode') === 'popup');\n // 当前元素位置状态\n const currentElmIsFixed = computed(() => isFixed(currentHighlightLayerElm.value || document.body));\n // 获取当前步骤的属性值 用户当前步骤设置 > 用户组件设置的\n const getCurrentCrossProps = (propsName: Key) =>\n currentStepInfo.value[propsName] ?? props[propsName];\n // 获取当前步骤的用户设定的高亮内容\n const currentCustomHighlightContent = computed(() => {\n const { highlightContent } = currentStepInfo.value;\n\n let node: any = highlightContent;\n if (isFunction(highlightContent)) {\n // 支持函数\n node = highlightContent(hWithParams());\n } else if (context.slots.highlightContent) {\n // 支持插槽\n node = context.slots.highlightContent(hWithParams());\n } else if (context.slots['highlight-content']) {\n // 支持插槽\n node = context.slots['highlight-content'](hWithParams());\n } else if (!!highlightContent) {\n // 支持组件\n node = ;\n }\n\n // 给自定义元素添加类名\n if (node) {\n if (!node.props) node.props = {};\n node.props.class = node.props.class || '';\n }\n return node;\n });\n\n // 是否展示高亮区域\n const showCustomHighlightContent = computed(() => Boolean(currentCustomHighlightContent.value && isPopup.value));\n //\n const popupVisible = ref(false);\n const hWithParams = (params: Record = { currentStepInfo: currentStepInfo.value }) => {\n const newH = new Function('return ' + h.toString())();\n return Object.assign({}, newH, params);\n };\n\n // 设置高亮层的位置\n const setHighlightLayerPosition = (highlightLayer: HTMLElement, isReference = false) => {\n // 这里预留了一个相对元素的功能,暂未使用,也是这里导致了 fix #2111\n let { top, left } = getRelativePosition(currentHighlightLayerElm.value);\n let { width, height } = currentHighlightLayerElm.value.getBoundingClientRect();\n const highlightPadding = getCurrentCrossProps('highlightPadding');\n\n if (isPopup.value) {\n width += highlightPadding * 2;\n height += highlightPadding * 2;\n top -= highlightPadding;\n left -= highlightPadding;\n } else {\n const { scrollTop, scrollLeft } = getWindowScroll();\n top += scrollTop;\n left += scrollLeft;\n }\n\n const style = {\n top: `${top}px`,\n left: `${left}px`,\n };\n\n // 展示自定义高亮\n if (showCustomHighlightContent.value) {\n // 高亮框本身不设定宽高,引用用框的宽高设定为用户自定义的宽高\n if (isReference) {\n const { width, height } = highlightLayerRef.value.getBoundingClientRect();\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n } else {\n Object.assign(style, {\n width: 'auto',\n height: 'auto',\n });\n }\n } else {\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n }\n setStyle(highlightLayer, style);\n };\n\n const showPopupGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = getTargetElm(currentStepInfo.value.element);\n if (!currentHighlightLayerElm.value) return;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n setHighlightLayerPosition(referenceLayerRef.value, true);\n scrollToElm(currentHighlightLayerElm.value);\n // fix: https://github.com/Tencent/tdesign-vue-next/issues/2536\n // 这里其实是一个临时解决方案,最合理的是 popup 内部处理\n popupTooltipRef.value?.update();\n });\n };\n\n const destroyTooltipElm = () => {\n referenceLayerRef.value?.parentNode.removeChild(referenceLayerRef.value);\n };\n\n const showDialogGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = dialogTooltipRef.value;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n scrollToElm(currentHighlightLayerElm.value);\n });\n };\n\n const destroyDialogTooltipElm = () => {\n dialogTooltipRef.value?.parentNode.removeChild(dialogTooltipRef.value);\n dialogWrapperRef.value?.parentNode.removeChild(dialogWrapperRef.value);\n };\n\n const showGuide = () => {\n if (isPopup.value) {\n destroyDialogTooltipElm();\n showPopupGuide();\n } else {\n destroyTooltipElm();\n showDialogGuide();\n }\n popupVisible.value = true;\n };\n\n const destroyGuide = () => {\n destroyTooltipElm();\n destroyDialogTooltipElm();\n highlightLayerRef.value?.parentNode.removeChild(highlightLayerRef.value);\n overlayLayerRef.value?.parentNode.removeChild(overlayLayerRef.value);\n removeClass(document.body, LOCK_CLASS.value);\n };\n\n const handleSkip = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onSkip?.({ e, current: innerCurrent.value, total });\n };\n\n const handlePrev = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value - 1, { e, total });\n props.onPrevStepClick?.({\n e,\n prev: innerCurrent.value - 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleNext = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value + 1, { e, total });\n props.onNextStepClick?.({\n e,\n next: innerCurrent.value + 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleFinish = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onFinish?.({ e, current: innerCurrent.value, total });\n };\n\n const initGuide = () => {\n if (innerCurrent.value >= 0 && innerCurrent.value < steps.value.length) {\n if (!actived.value) {\n actived.value = true;\n addClass(document.body, LOCK_CLASS.value);\n }\n showGuide();\n }\n };\n\n watch(innerCurrent, (val) => {\n if (val >= 0 && val < steps.value.length) {\n popupVisible.value = false;\n initGuide();\n } else {\n actived.value = false;\n destroyGuide();\n }\n });\n\n onMounted(() => {\n initGuide();\n });\n\n return () => {\n const renderOverlayLayer = () => (\n
    \n );\n\n const renderHighlightLayer = () => {\n const style = { zIndex: zIndex.value - 1 };\n const highlightClass = [\n `${COMPONENT_NAME.value}__highlight`,\n `${COMPONENT_NAME.value}__highlight--${isPopup.value ? 'popup' : 'dialog'}`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value && isPopup.value ? 'fixed' : 'absolute'}`,\n ];\n const showOverlay = getCurrentCrossProps('showOverlay');\n const maskClass = [`${COMPONENT_NAME.value}__highlight--${showOverlay ? 'mask' : 'nomask'}`];\n\n return (\n
    \n {showCustomHighlightContent.value && currentCustomHighlightContent.value}\n
    \n );\n };\n\n const renderCounter = () => {\n const popupSlotCounter = renderTNodeJSX('counter', {\n params: { total: stepsTotal.value, current: innerCurrent.value },\n });\n\n const popupDefaultCounter = (\n
    \n {popupSlotCounter || `${innerCurrent.value + 1}/${stepsTotal.value}`}\n
    \n );\n return <>{!hideCounter.value && popupDefaultCounter};\n };\n\n const renderAction = (mode: TdGuideProps['mode']) => {\n const isLast = innerCurrent.value === stepsTotal.value - 1;\n const isFirst = innerCurrent.value === 0;\n const buttonSize = mode === 'popup' ? 'small' : 'medium';\n\n return (\n
    \n {!hideSkip.value && !isLast && (\n \n )}\n {!hidePrev.value && !isFirst && (\n \n )}\n {!isLast && (\n \n )}\n {isLast && (\n \n )}\n
    \n );\n };\n\n const renderTitle = () => {\n const functionTitle = isFunction(currentStepInfo.value.title) ? currentStepInfo.value.title() : undefined;\n const slotTitle = context.slots.title ? context.slots.title(hWithParams()) : undefined;\n return functionTitle || slotTitle || currentStepInfo.value.title;\n };\n\n const renderTooltipBody = () => {\n const title =
    {renderTitle()}
    ;\n const bodyRender = currentStepInfo.value.body;\n\n let descBody: any;\n if (isFunction(bodyRender)) {\n descBody = bodyRender(hWithParams());\n } else if (context.slots.body) {\n descBody = context.slots.body({ currentStepInfo: currentStepInfo.value });\n } else if (typeof bodyRender === 'string') {\n descBody = bodyRender;\n } else {\n descBody = ;\n }\n const desc =
    {descBody}
    ;\n\n return (\n <>\n {title}\n {desc}\n \n );\n };\n\n const renderPopupContent = () => {\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n const action = (\n
    \n {renderCounter()}\n {renderAction('popup')}\n
    \n );\n\n return (\n
    \n {renderTooltipBody()}\n {action}\n
    \n );\n };\n\n const renderPopupGuide = () => {\n const { content } = currentStepInfo.value;\n const contentProps = {\n handlePrev,\n handleNext,\n handleSkip,\n handleFinish,\n current: innerCurrent.value,\n total: stepsTotal.value,\n };\n let renderBody;\n if (isFunction(content)) {\n renderBody = () => content(hWithParams(contentProps));\n } else if (context.slots.content) {\n renderBody = () => context.slots.content(hWithParams(contentProps));\n } else if (content) {\n renderBody = () => ;\n } else {\n renderBody = renderPopupContent;\n }\n const classes = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value ? 'fixed' : 'absolute'}`,\n ];\n\n const innerClassName: PopupProps['overlayInnerClassName'] = [\n {\n [`${COMPONENT_NAME.value}__popup--content`]: !!content,\n },\n ];\n\n return (\n \n
    \n \n );\n };\n\n const renderDialogGuide = () => {\n const style = { zIndex: zIndex.value };\n const wrapperClasses = [\n `${COMPONENT_NAME.value}__wrapper`,\n { [`${COMPONENT_NAME.value}__wrapper--center`]: currentStepInfo.value.placement === 'center' },\n ];\n const dialogClasses = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--absolute`,\n `${COMPONENT_NAME.value}__dialog`,\n {\n [`${COMPONENT_NAME.value}__dialog--nomask`]: !getCurrentCrossProps('showOverlay'),\n [currentStepInfo.value.stepOverlayClass]: !!currentStepInfo.value.stepOverlayClass,\n },\n ];\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n return (\n <>\n
    \n
    \n {renderTooltipBody()}\n
    \n {renderCounter()}\n {renderAction('dialog')}\n
    \n
    \n
    \n \n );\n };\n\n const renderGuide = () => {\n return (\n <>\n \n {renderOverlayLayer()}\n {renderHighlightLayer()}\n {isPopup.value ? renderPopupGuide() : renderDialogGuide()}\n \n \n );\n };\n\n return <>{actived.value && renderGuide()};\n };\n },\n});\n","import { getElmCssPropValue, isFixed, getWindowScroll } from '../../utils/dom';\n\n/**\n * 获取元素相对于另一个元素的位置(或者说相对于 body)\n * 感谢 `meouw`: http://stackoverflow.com/a/442474/375966\n */\nexport function getRelativePosition(elm: HTMLElement, relativeElm: HTMLElement = document.body) {\n const { scrollTop, scrollLeft } = getWindowScroll();\n const { top: elmTop, left: elmLeft } = elm.getBoundingClientRect();\n const { top: relElmTop, left: relElmLeft } = relativeElm.getBoundingClientRect();\n const relativeElmPosition = getElmCssPropValue(relativeElm, 'position');\n\n if (\n (relativeElm.tagName.toLowerCase() !== 'body' && relativeElmPosition === 'relative') ||\n relativeElmPosition === 'sticky'\n ) {\n return {\n top: elmTop - relElmTop,\n left: elmLeft - relElmLeft,\n };\n }\n\n if (isFixed(elm)) {\n return {\n top: elmTop,\n left: elmLeft,\n };\n }\n\n return {\n top: elmTop + scrollTop,\n left: elmLeft + scrollLeft,\n };\n}\n","import { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { AttachNode } from '../../common';\n\nexport function getTargetElm(elm: AttachNode): HTMLElement {\n if (elm) {\n let targetElement: HTMLElement = null;\n if (isString(elm)) {\n targetElement = document.querySelector(elm);\n } else if (isFunction(elm)) {\n targetElement = elm() as HTMLElement;\n } else {\n throw new Error('elm should be string or function');\n }\n if (targetElement) {\n return targetElement as HTMLElement;\n }\n if (process?.env?.NODE_ENV !== 'test') {\n throw new Error('There is no element with given.');\n }\n } else {\n return document.body;\n }\n}\n","import _Guide from './guide';\nimport withInstall from '../utils/withInstall';\nimport { TdGuideProps, GuideStep } from './type';\n\nimport './style';\n\n/**\n * TdGuideStepProps is going to be deprecated, use GuideStep instead\n * @deprecated\n */\nexport type TdGuideStepProps = GuideStep;\n\nexport * from './type';\nexport type GuideProps = TdGuideProps;\n\nexport const Guide = withInstall(_Guide);\n\nexport default Guide;\n","import _Message from './message';\nimport withInstall from '../utils/withInstall';\nimport { TdMessageProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\nexport type MessageProps = TdMessageProps;\n\nexport const Message = withInstall(_Message);\nexport { default as MessagePlugin } from './plugin';\nexport default Message;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdNotificationProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: undefined,\n },\n /** 自定义内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 自定义内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 消息显示时长,单位:毫秒。值为 0 表示永久显示 */\n duration: {\n type: Number,\n default: 3000,\n },\n /** 用于自定义底部内容 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 用于自定义消息通知前面的图标,优先级大于 theme 设定的图标。值为 false 则不显示图标,值为 true 显示 theme 设定图标 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 消息类型 */\n theme: {\n type: String as PropType,\n default: 'info' as TdNotificationProps['theme'],\n validator(val: TdNotificationProps['theme']): boolean {\n if (!val) return true;\n return ['info', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 点击关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 计时结束时触发 */\n onDurationEnd: Function as PropType,\n};\n","export const DEFAULT_Z_INDEX = 6000;\nexport const DISTANCE = '16px';\n\nexport const PLACEMENT_OFFSET = {\n 'top-left': {\n left: DISTANCE,\n top: DISTANCE,\n },\n 'top-right': {\n right: DISTANCE,\n top: DISTANCE,\n },\n 'bottom-right': {\n right: DISTANCE,\n bottom: DISTANCE,\n },\n 'bottom-left': {\n left: DISTANCE,\n bottom: DISTANCE,\n },\n};\n\nexport const PLACEMENT_LIST = Object.keys(PLACEMENT_OFFSET);\n","import { PLACEMENT_LIST } from '../consts';\n\ninterface Keyframe {\n composite?: CompositeOperationOrAuto;\n easing?: string;\n offset?: number | null;\n [property: string]: string | number | null | undefined;\n}\ntype CompositeOperationOrAuto = 'accumulate' | 'add' | 'auto' | 'replace';\n\nconst ANIMATION_OPTION = {\n duration: 200,\n easing: 'linear',\n};\n\nconst getFadeInKeyframes = (placement: string, offsetWidth: Number, offsetHeight: Number): Array | null => {\n if (!PLACEMENT_LIST.includes(placement)) return null;\n if (placement === 'top-right') {\n return [\n { opacity: 0, transform: `translateX(${offsetWidth}px)` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n if (placement === 'bottom-right') {\n return [\n { opacity: 0, transform: `translateX(${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n if (placement === 'top-left') {\n return [\n { opacity: 0, transform: `translateX(-${offsetWidth}px)` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n if (placement === 'bottom-left') {\n return [\n { opacity: 0, transform: `translateX(-${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n { opacity: 1, transform: `translateX(0px)` },\n ];\n }\n};\n\nconst getFadeOutKeyframes = (placement: string, offsetWidth: Number, offsetHeight: Number): Array | null => {\n if (!PLACEMENT_LIST.includes(placement)) return null;\n if (placement === 'top-right') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n ];\n }\n if (placement === 'bottom-right') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(${offsetWidth}px)` },\n ];\n }\n if (placement === 'top-left') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(-${offsetWidth}px)`, marginBottom: `-${offsetHeight}px` },\n ];\n }\n if (placement === 'bottom-left') {\n return [\n { opacity: 1, transform: `translateX(0px)` },\n { opacity: 0, transform: `translateX(-${offsetWidth}px)` },\n ];\n }\n};\n\nexport const fadeIn = (dom: HTMLElement, placement: string) => {\n if (!dom) return;\n const offsetHeight = dom?.offsetHeight || 0;\n const offsetWidth = dom?.offsetWidth || 0;\n const keyframes: Array | null = getFadeInKeyframes(placement, offsetWidth, offsetHeight);\n if (!keyframes) return;\n dom.animate && dom.animate(keyframes, ANIMATION_OPTION);\n};\n\nexport const fadeOut = (dom: HTMLElement, placement: string, onFinish: Function) => {\n if (!dom) return;\n const offsetHeight = dom?.offsetHeight || 0;\n const offsetWidth = dom?.offsetWidth || 0;\n const keyframes: Array | null = getFadeOutKeyframes(placement, offsetWidth, offsetHeight);\n if (!keyframes) return onFinish();\n\n const animate = dom.animate && dom.animate(keyframes, ANIMATION_OPTION);\n if (animate) {\n animate.onfinish = () => {\n onFinish();\n };\n } else {\n dom.style.display = 'none';\n onFinish();\n }\n};\n","import { defineComponent, h, onBeforeMount, onMounted, ref } from 'vue';\nimport {\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n} from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport props from './props';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { fadeIn, fadeOut } from './utils';\n\nexport default defineComponent({\n name: 'TNotification',\n props: {\n ...props,\n placement: String, // just for animation\n },\n setup(props, { slots, expose }) {\n const COMPONENT_NAME = usePrefixClass('notification');\n const { classPrefix } = useConfig('classPrefix');\n const { InfoCircleFilledIcon, CheckCircleFilledIcon, CloseIcon } = useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n });\n const renderTNode = useTNodeJSX();\n const renderContent = useContent();\n const timer = ref(null);\n const notificationRef = ref(null);\n\n const close = (e?: MouseEvent) => {\n const dom = notificationRef.value as HTMLElement;\n fadeOut(dom, props.placement, () => {\n props.onCloseBtnClick?.({ e });\n });\n };\n\n const renderIcon = () => {\n let iconContent;\n if (props.icon === false) return null;\n if (isFunction(props.icon)) {\n iconContent = props.icon(h);\n } else if (slots.icon) {\n iconContent = slots.icon(null);\n } else if (props.theme) {\n const iconType =\n props.theme === 'success' ? (\n \n ) : (\n \n );\n iconContent =
    {iconType}
    ;\n }\n return iconContent;\n };\n\n const renderClose = () => {\n const defaultClose = ;\n return (\n \n {renderTNode('closeBtn', defaultClose)}\n \n );\n };\n\n const renderMainContent = () => {\n return
    {renderContent('default', 'content')}
    ;\n };\n\n const clearTimer = () => {\n props.duration && clearTimeout(timer.value);\n };\n\n const setTimer = () => {\n if (!props.duration) {\n return;\n }\n timer.value = Number(\n setTimeout(() => {\n clearTimer();\n const dom = notificationRef.value as HTMLElement;\n fadeOut(dom, props.placement, () => {\n props.onDurationEnd?.();\n });\n }, props.duration),\n );\n };\n\n onBeforeMount(() => {\n props.duration && setTimer();\n });\n\n onMounted(() => {\n const dom = notificationRef.value;\n fadeIn(dom, props.placement);\n });\n\n expose({ close });\n return () => (\n
    \n {renderIcon()}\n
    \n
    \n {renderTNode('title')}\n {renderClose()}\n
    \n {renderMainContent()}\n {renderTNode('footer')}\n
    \n
    \n );\n },\n});\n","import { defineComponent, ref, computed, Ref, CSSProperties } from 'vue';\nimport Notification from './notification';\nimport { TdNotificationProps, NotificationOptions } from './type';\nimport { DEFAULT_Z_INDEX, PLACEMENT_OFFSET, DISTANCE } from './consts';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n props: {\n placement: {\n type: String,\n default: 'top-right',\n validator(v: string): boolean {\n return ['top-left', 'top-right', 'bottom-left', 'bottom-right'].indexOf(v) > -1;\n },\n },\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('notification-list');\n\n const { placement } = props as NotificationOptions;\n\n const list: Ref = ref([]);\n const notificationList = ref([]);\n\n const styles = computed(() => ({\n zIndex: DEFAULT_Z_INDEX,\n ...PLACEMENT_OFFSET[placement],\n }));\n\n const add = (options: TdNotificationProps): number => {\n list.value.push(options);\n return list.value.length - 1;\n };\n\n const remove = (index: number) => {\n list.value.splice(index, 1);\n };\n\n const removeAll = () => {\n list.value = [];\n };\n\n const getOffset = (val: string | number) => {\n if (!val) return;\n return isNaN(Number(val)) ? val : `${val}px`;\n };\n\n const notificationStyles = (item: { offset: NotificationOptions['offset']; zIndex: number }) => {\n const styles: CSSProperties = {\n marginBottom: DISTANCE,\n };\n if (item.offset) {\n styles.position = 'relative';\n styles.left = getOffset(item.offset[0]);\n styles.top = getOffset(item.offset[1]);\n }\n if (item.zIndex) styles['z-index'] = item.zIndex;\n return styles;\n };\n\n const getProps = (index: number, item: NotificationOptions) => {\n return {\n ...item,\n onCloseBtnClick: (e: any) => {\n if (item.onCloseBtnClick) {\n item.onCloseBtnClick(e);\n }\n return remove(index);\n },\n onDurationEnd: () => {\n if (item.onDurationEnd) {\n item.onDurationEnd();\n }\n return remove(index);\n },\n };\n };\n\n const addChild = (el: Element) => {\n if (el) {\n notificationList.value.push(el);\n }\n };\n expose({ add, remove, removeAll, list, notificationList });\n\n return () => {\n if (!list.value.length) return;\n\n return (\n
    \n {list.value.map((item: { offset: NotificationOptions['offset']; zIndex: number; id: number }, index) => (\n \n ))}\n
    \n );\n };\n },\n});\n","import { App, Plugin, createApp, nextTick, ComponentPublicInstance } from 'vue';\nimport NotificationList from './notification-list';\nimport { getAttach } from '../utils/dom';\nimport {\n NotificationOptions,\n NotificationInstance,\n NotificationMethod,\n NotificationInfoMethod,\n NotificationWarningMethod,\n NotificationErrorMethod,\n NotificationSuccessMethod,\n NotificationCloseMethod,\n NotificationCloseAllMethod,\n} from './type';\nimport { AttachNodeReturnValue } from '../common';\nimport './style';\n\nlet seed = 0;\n// 存储不同 attach 和 不同 placement 消息列表实例\nconst instanceMap: Map> = new Map();\n\nconst NotificationFunction = (options: NotificationOptions): Promise => {\n seed += 1;\n const hackOptions = {\n placement: 'top-right',\n zIndex: 6000,\n attach: 'body',\n id: seed,\n ...options,\n };\n hackOptions.content = options.content ? options.content : '';\n\n const attachEl = getAttach(hackOptions.attach);\n\n if (!instanceMap.get(attachEl)) {\n instanceMap.set(attachEl, {});\n }\n let tmpInstance = instanceMap.get(attachEl)[hackOptions.placement];\n if (!tmpInstance) {\n const wrapper = document.createElement('div');\n\n const instance = createApp(NotificationList, {\n placement: hackOptions.placement,\n }).mount(wrapper);\n\n instance.add(hackOptions);\n instanceMap.get(attachEl)[hackOptions.placement] = instance;\n tmpInstance = instance;\n attachEl.appendChild(instance.$el);\n } else {\n tmpInstance.add(hackOptions);\n }\n\n return new Promise((resolve) => {\n const ins = instanceMap.get(attachEl)[hackOptions.placement];\n nextTick(() => {\n const notificationList: NotificationInstance[] = ins.notificationList;\n resolve(notificationList?.find((notify) => notify.$?.vnode?.key === hackOptions.id));\n });\n });\n};\n\nconst showThemeNotification: NotificationMethod = (theme, options) => {\n const hackOptions = { ...options, theme };\n return NotificationFunction(hackOptions);\n};\n\ninterface ExtraApi {\n info: NotificationInfoMethod;\n success: NotificationSuccessMethod;\n warning: NotificationWarningMethod;\n error: NotificationErrorMethod;\n close: NotificationCloseMethod;\n closeAll: NotificationCloseAllMethod;\n}\n\nconst extraApi: ExtraApi = {\n info: (options) => showThemeNotification('info', options),\n success: (options) => showThemeNotification('success', options),\n warning: (options) => showThemeNotification('warning', options),\n error: (options) => showThemeNotification('error', options),\n close: (promise) => {\n promise.then((instance) => instance.close());\n },\n closeAll: () => {\n instanceMap.forEach((attach) => {\n Object.keys(attach).forEach((placement) => {\n attach[placement].removeAll();\n });\n });\n },\n};\n\nexport type NotificationPluginType = Plugin & ExtraApi & NotificationMethod;\n\nconst NotificationPlugin: NotificationPluginType = showThemeNotification as NotificationPluginType;\n\nNotificationPlugin.install = (app: App) => {\n app.config.globalProperties.$notify = showThemeNotification;\n Object.keys(extraApi).forEach((funcName: keyof ExtraApi) => {\n app.config.globalProperties.$notify[funcName] = extraApi[funcName];\n });\n};\n\nObject.keys(extraApi).forEach((funcName: keyof ExtraApi) => {\n // @ts-ignore\n // TODO https://github.com/microsoft/TypeScript/issues/32693\n NotificationPlugin[funcName] = extraApi[funcName];\n});\n\nexport const NotifyPlugin = NotificationPlugin;\n\nexport default NotificationPlugin;\n","import _Notification from './notification';\nimport withInstall from '../utils/withInstall';\nimport { TdNotificationProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\nexport type NotificationProps = TdNotificationProps;\n\nexport const Notification = withInstall(_Notification);\nexport { default as NotifyPlugin } from './plugin';\nexport default Notification;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPopconfirmProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n default: '' as TdPopconfirmProps['cancelBtn'],\n },\n /** 确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n default: '' as TdPopconfirmProps['confirmBtn'],\n },\n /** 确认框内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 触发元素,同 triggerElement */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否在关闭浮层时销毁浮层 */\n destroyOnClose: {\n type: Boolean,\n default: true,\n },\n /** 确认框图标 */\n icon: {\n type: Function as PropType,\n },\n /** 浮层出现位置 */\n placement: {\n type: String as PropType,\n default: 'top' as TdPopconfirmProps['placement'],\n validator(val: TdPopconfirmProps['placement']): boolean {\n if (!val) return true;\n return [\n 'top',\n 'left',\n 'right',\n 'bottom',\n 'top-left',\n 'top-right',\n 'bottom-left',\n 'bottom-right',\n 'left-top',\n 'left-bottom',\n 'right-top',\n 'right-bottom',\n ].includes(val);\n },\n },\n /** 透传 Popup 组件属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示浮层箭头 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 文字提示风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdPopconfirmProps['theme'],\n validator(val: TdPopconfirmProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'warning', 'danger'].includes(val);\n },\n },\n /** 触发元素 */\n triggerElement: {\n type: [String, Function] as PropType,\n },\n /** 是否显示气泡确认框 */\n visible: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示气泡确认框,非受控属性 */\n defaultVisible: Boolean,\n /** 点击取消按钮时触发 */\n onCancel: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 确认框显示或隐藏时触发 */\n onVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed, toRefs } from 'vue';\nimport {\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\n\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\nimport { useContent, useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport useVModel from '../hooks/useVModel';\nimport { useAction } from '../dialog/hooks';\n\nimport type { PopconfirmVisibleChangeContext } from './type';\nimport type { TdDialogProps } from '../dialog/type';\nexport default defineComponent({\n name: 'TPopconfirm',\n props,\n setup(props) {\n const { globalConfig } = useConfig('popconfirm');\n const COMPONENT_NAME = usePrefixClass('popconfirm');\n const { InfoCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const { visible, modelValue } = toRefs(props);\n const [innerVisible, setInnerVisible] = useVModel(\n visible,\n modelValue,\n props.defaultVisible,\n props.onVisibleChange,\n 'visible',\n );\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n setInnerVisible(false, { e, trigger: 'confirm' });\n };\n\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n setInnerVisible(false, { e, trigger: 'cancel' });\n };\n\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n\n const renderTNodeJSX = useTNodeJSX();\n const innerPopupProps = computed(() => {\n return {\n showArrow: props.showArrow,\n overlayClassName: COMPONENT_NAME.value,\n trigger: 'click' as PopupProps['trigger'],\n destroyOnClose: props.destroyOnClose,\n placement: props.placement,\n ...(props.popupProps as PopupProps),\n };\n });\n\n const renderTNodeDefault = useTNodeDefault();\n const renderContent = () => {\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n size: 'small',\n });\n\n const confirmBtn = getConfirmBtn({\n theme: props.theme,\n confirmBtn: props.confirmBtn as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n size: 'small',\n });\n\n const renderIcon = () => {\n const Icon = {\n default: InfoCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n danger: ErrorCircleFilledIcon,\n }[props.theme];\n const theme = props.theme || 'default';\n return renderTNodeDefault('icon', );\n };\n\n return (\n
    \n
    \n {renderIcon()}\n
    {renderTNodeJSX('content')}
    \n
    \n {Boolean(cancelBtn || confirmBtn) && (\n
    \n {cancelBtn}\n {confirmBtn}\n
    \n )}\n
    \n );\n };\n\n const onPopupVisibleChange = (val: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(val, context as PopconfirmVisibleChangeContext);\n };\n\n const renderTNodeContent = useContent();\n\n return () => (\n \n {renderTNodeContent('default', 'triggerElement')}\n \n );\n },\n});\n","import _Popconfirm from './popconfirm';\nimport withInstall from '../utils/withInstall';\nimport { TdPopconfirmProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type PopconfirmProps = TdPopconfirmProps;\n\nexport const Popconfirm = withInstall(_Popconfirm);\nexport default Popconfirm;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdUploadProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文件名过长时,需要省略中间的文本,保留首尾文本。示例:[10, 7],表示首尾分别保留的文本长度 */\n abridgeName: {\n type: Array as PropType,\n },\n /** 接受上传的文件类型,[查看 W3C示例](https://www.w3schools.com/tags/att_input_accept.asp),[查看 MDN 示例](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input/file) */\n accept: {\n type: String,\n default: '',\n },\n /** 上传接口。设接口响应数据为字段 `response`,那么 `response.error` 存在时会判断此次上传失败,并显示错误文本信息;`response.url` 会作为文件上传成功后的地址,并使用该地址显示图片或文件 */\n action: {\n type: String,\n default: '',\n },\n /** 是否允许重复上传相同文件名的文件 */\n allowUploadDuplicateFile: Boolean,\n /** 是否在选择文件后自动发起请求上传文件 */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /** 如果是自动上传模式 `autoUpload=true`,表示全部文件上传之前的钩子函数,函数参数为上传的文件,函数返回值决定是否继续上传,若返回值为 `false` 则终止上传。
    如果是非自动上传模式 `autoUpload=false`,则函数返回值为 `false` 时表示本次选中的文件不会加入到文件列表中,即不触发 `onChange` 事件 */\n beforeAllFilesUpload: {\n type: Function as PropType,\n },\n /** 如果是自动上传模式 `autoUpload=true`,表示单个文件上传之前的钩子函数,若函数返回值为 `false` 则表示不上传当前文件。
    如果是非自动上传模式 `autoUpload=false`,函数返回值为 `false` 时表示从上传文件中剔除当前文件 */\n beforeUpload: {\n type: Function as PropType,\n },\n /** 批量文件/图片上传,`autoUpload=false` 场景下,透传“取消上传”按钮属性 */\n cancelUploadButton: {\n type: [Object, Function] as PropType,\n },\n /** 上传请求所需的额外字段,默认字段有 `file`,表示文件信息。可以添加额外的文件名字段,如:`{file_name: \"custom-file-name.txt\"}`。`autoUpload=true` 时有效。也可以使用 `formatRequest` 完全自定义上传请求的字段 */\n data: {\n type: [Object, Function] as PropType,\n },\n /** 非拖拽场景,指触发上传的元素,如:“选择文件”。如果是拖拽场景,则是指拖拽区域 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于自定义拖拽区域,`theme=custom` 且 `draggable=true` 时有效 */\n dragContent: {\n type: [String, Function] as PropType,\n },\n /** 是否启用拖拽上传,不同的组件风格默认值不同。`theme=file` 或 `theme=image` 时有效 */\n draggable: {\n type: Boolean,\n default: undefined,\n },\n /** 用于完全自定义文件列表界面内容(UI),单文件和多文件均有效 */\n fileListDisplay: {\n type: Function as PropType,\n },\n /** 已上传文件列表,同 `value`。TS 类型:`UploadFile` */\n files: {\n type: Array as PropType,\n default: undefined as TdUploadProps['files'],\n },\n /** 已上传文件列表,同 `value`。TS 类型:`UploadFile`,非受控属性 */\n defaultFiles: {\n type: Array as PropType,\n default: (): TdUploadProps['defaultFiles'] => [],\n },\n /** 转换文件 `UploadFile` 的数据结构,可新增或修改 `UploadFile` 的属性,注意不能删除 `UploadFile` 属性。`action` 存在时有效 */\n format: {\n type: Function as PropType,\n },\n /** 用于新增或修改文件上传请求 参数。`action` 存在时有效。一个请求上传一个文件时,默认请求字段有 `file`。
    一个请求上传多个文件时,默认字段有 `file[0]/file[1]/file[2]/.../length`,其中 `length` 表示本次上传的文件数量。
    ⚠️非常注意,此处的 `file[0]/file[1]` 仅仅是一个字段名,并非表示 `file` 是一个数组,接口获取字段时注意区分。
    可以使用 `name` 定义 `file` 字段的别名。
    也可以使用 `formatRequest` 自定义任意字段,如添加一个字段 `fileList` ,存储文件数组 */\n formatRequest: {\n type: Function as PropType,\n },\n /** 用于格式化文件上传后的接口响应数据,`response` 便是接口响应的原始数据。`action` 存在时有效。
    示例返回值:`{ error, url, status, files }`
    此函数的返回值 `error` 会作为错误文本提醒,表示上传失败的原因,如果存在会判定为本次上传失败。
    此函数的返回值 `url` 会作为单个文件上传成功后的链接。
    `files` 表示一个请求同时上传多个文件后的文件列表 */\n formatResponse: {\n type: Function as PropType,\n },\n /** 设置上传的请求头部,`action` 存在时有效 */\n headers: {\n type: Object as PropType,\n },\n /** 透传图片预览组件全部属性 */\n imageViewerProps: {\n type: Object as PropType,\n },\n /** 用于添加属性到 HTML 元素 `input` */\n inputAttributes: {\n type: Object as PropType,\n },\n /** 多个文件是否作为一个独立文件包,整体替换,整体删除。不允许追加文件,只允许替换文件。`theme=file-flow` 时有效 */\n isBatchUpload: Boolean,\n /** 上传组件文本语言配置,支持自定义配置组件中的全部文本。优先级高于全局配置中语言 */\n locale: {\n type: Object as PropType,\n },\n /** 用于控制文件上传数量,值为 0 则不限制。注意,单文件上传场景,请勿设置 `max` 属性 */\n max: {\n type: Number,\n default: 0,\n },\n /** HTTP 请求类型 */\n method: {\n type: String as PropType,\n default: 'POST' as TdUploadProps['method'],\n validator(val: TdUploadProps['method']): boolean {\n if (!val) return true;\n return ['POST', 'GET', 'PUT', 'OPTION', 'PATCH', 'post', 'get', 'put', 'option', 'patch'].includes(val);\n },\n },\n /** 模拟进度间隔时间,单位:毫秒,默认:300。由于原始的上传请求,小文件上传进度只有 0 和 100,故而新增模拟进度,每间隔 `mockProgressDuration` 毫秒刷新一次模拟进度。小文件设置小一点,大文件设置大一点。注意:当 `useMockProgress` 为真时,当前设置有效 */\n mockProgressDuration: {\n type: Number,\n },\n /** 支持多文件上传 */\n multiple: Boolean,\n /** 文件上传时的名称 */\n name: {\n type: String,\n default: 'file',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: '',\n },\n /** 自定义上传方法。返回值 `status` 表示上传成功或失败;`error` 或 `response.error` 表示上传失败的原因;
    `response` 表示请求上传成功后的返回数据,`response.url` 表示上传成功后的图片/文件地址,`response.files` 表示一个请求上传多个文件/图片后的返回值。
    示例一:`{ status: 'fail', error: '上传失败', response }`。
    示例二:`{ status: 'success', response: { url: 'https://tdesign.gtimg.com/site/avatar.jpg' } }`。
    示例三:`{ status: 'success', files: [{ url: 'https://xxx.png', name: 'xxx.png' }]}` */\n requestMethod: {\n type: Function as PropType,\n },\n /** 是否显示图片的文件名称 */\n showImageFileName: {\n type: Boolean,\n default: true,\n },\n /** 是否在文件列表中显示缩略图,`theme=file-flow` 时有效 */\n showThumbnail: Boolean,\n /** 是否显示上传进度 */\n showUploadProgress: {\n type: Boolean,\n default: true,\n },\n /** 图片文件大小限制,默认单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }` */\n sizeLimit: {\n type: [Number, Object] as PropType,\n },\n /** 文件上传提示文本状态 */\n status: {\n type: String as PropType,\n validator(val: TdUploadProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件风格。custom 表示完全自定义风格;file 表示默认文件上传风格;file-input 表示输入框形式的文件上传;file-flow 表示文件批量上传;image 表示默认图片上传风格;image-flow 表示图片批量上传 */\n theme: {\n type: String as PropType,\n default: 'file' as TdUploadProps['theme'],\n validator(val: TdUploadProps['theme']): boolean {\n if (!val) return true;\n return ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(val);\n },\n },\n /** 组件下方文本提示,可以使用 `status` 定义文本 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 触发上传的元素,`files` 指本次显示的全部文件 */\n trigger: {\n type: Function as PropType,\n },\n /** 透传选择按钮全部属性 */\n triggerButtonProps: {\n type: Object as PropType,\n },\n /** 是否在同一个请求中上传全部文件,默认一个请求上传一个文件。多文件上传时有效 */\n uploadAllFilesInOneRequest: Boolean,\n /** 批量文件/图片上传,`autoUpload=false` 场景下,透传“点击上传”按钮属性 */\n uploadButton: {\n type: [Object, Function] as PropType,\n },\n /** 是否允许粘贴上传剪贴板中的文件 */\n uploadPastedFiles: {\n type: Boolean,\n default: true,\n },\n /** 是否在请求时间超过 300ms 后显示模拟进度。上传进度有模拟进度和真实进度两种。一般大小的文件上传,真实的上传进度只有 0 和 100,不利于交互呈现,因此组件内置模拟上传进度。真实上传进度一般用于大文件上传。 */\n useMockProgress: {\n type: Boolean,\n default: true,\n },\n /** 已上传文件列表,同 `files`。TS 类型:`UploadFile` */\n value: {\n type: Array as PropType,\n default: undefined as TdUploadProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdUploadProps['value'],\n },\n /** 已上传文件列表,同 `files`。TS 类型:`UploadFile`,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdUploadProps['defaultValue'] => [],\n },\n /** 上传请求时是否携带 cookie */\n withCredentials: Boolean,\n /** 点击「取消上传」时触发 */\n onCancelUpload: Function as PropType,\n /** 已上传文件列表发生变化时触发,`trigger` 表示触发本次的来源 */\n onChange: Function as PropType,\n /** 进入拖拽区域时触发 */\n onDragenter: Function as PropType,\n /** 离开拖拽区域时触发 */\n onDragleave: Function as PropType,\n /** 拖拽结束时触发 */\n onDrop: Function as PropType,\n /** 上传失败后触发。`response` 指接口响应结果,`response.error` 会作为错误文本提醒。如果希望判定为上传失败,但接口响应数据不包含 `error` 字段,可以使用 `formatResponse` 格式化 `response` 数据结构。如果是多文件多请求上传场景,请到事件 `onOneFileFail` 中查看 `response` */\n onFail: Function as PropType,\n /** 多文件/图片场景下,单个文件上传失败后触发,如果一个请求上传一个文件,则会触发多次。单文件/图片不会触发 */\n onOneFileFail: Function as PropType,\n /** 单个文件上传成功后触发,在多文件场景下会触发多次。`context.file` 表示当前上传成功的单个文件,`context.response` 表示上传请求的返回数据 */\n onOneFileSuccess: Function as PropType,\n /** 点击图片预览时触发,文件没有预览 */\n onPreview: Function as PropType,\n /** 上传进度变化时触发,真实进度和模拟进度都会触发。
    ⚠️ 原始上传请求,小文件的上传进度只有 0 和 100,故而不会触发 `progress` 事件;只有大文件才有真实的中间进度。如果你希望很小的文件也显示上传进度,保证 `useMockProgress=true` 的情况下,设置 `mockProgressDuration` 为更小的值。
    参数 `options.type=real` 表示真实上传进度,`options.type=mock` 表示模拟上传进度 */\n onProgress: Function as PropType,\n /** 移除文件时触发 */\n onRemove: Function as PropType,\n /** 选择文件或图片之后,上传之前,触发该事件 */\n onSelectChange: Function as PropType,\n /** 上传成功后触发。
    `context.currentFiles` 表示当次请求上传的文件(无论成功或失败),`context.fileList` 表示上传成功后的文件,`context.response` 表示上传请求的返回数据。
    `context.results` 表示单次选择全部文件上传成功后的响应结果,可以在这个字段存在时提醒用户上传成功或失败。
    */\n onSuccess: Function as PropType,\n /** 文件上传校验结束事件,文件数量超出、文件大小超出限制、文件同名、`beforeAllFilesUpload` 返回值为假、`beforeUpload` 返回值为假等场景会触发。
    注意:如果设置允许上传同名文件,即 `allowUploadDuplicateFile=true`,则不会因为文件重名触发该事件。
    结合 `status` 和 `tips` 可以在组件中呈现不同类型的错误(或告警)提示 */\n onValidate: Function as PropType,\n /** 待上传文件列表发生变化时触发。`context.files` 表示事件参数为待上传文件,`context.trigger` 引起此次变化的触发来源 */\n onWaitingUploadFilesChange: Function as PropType,\n};\n","import { PropType } from 'vue';\nimport { CommonDisplayFileProps } from '../types';\n\nexport const commonProps = {\n accept: String,\n files: Array as PropType,\n toUploadFiles: Array as PropType,\n displayFiles: Array as PropType,\n theme: String as PropType,\n abridgeName: Array as PropType,\n placeholder: String,\n classPrefix: String,\n tips: [String, Function],\n status: String as PropType,\n locale: Object as PropType,\n sizeOverLimitMessage: String,\n autoUpload: Boolean,\n uploadPastedFiles: Boolean,\n onPasteFileChange: Function as PropType,\n disabled: Boolean,\n uploading: Boolean,\n tipsClasses: [String, Array, Object] as PropType,\n errorClasses: [String, Array, Object] as PropType,\n placeholderClass: [String, Array, Object] as PropType,\n showUploadProgress: Boolean,\n default: Function as PropType,\n fileListDisplay: Function as PropType,\n onRemove: Function as PropType,\n imageViewerProps: Object as PropType,\n};\n","import { defineComponent, toRefs, computed } from 'vue';\nimport {\n CloseIcon as TdCloseIcon,\n TimeFilledIcon as TdTimeFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport TLoading from '../../loading';\nimport Link from '../../link';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { UploadConfig } from '../../config-provider';\n\nexport interface NormalFileProps extends CommonDisplayFileProps {\n multiple: boolean;\n}\n\nconst NormalFile = defineComponent({\n name: 'UploadNormalFile',\n props: {\n multiple: Boolean,\n ...commonProps,\n },\n setup(props, { slots }) {\n const { theme, disabled, classPrefix } = toRefs(props);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const { CloseIcon, TimeFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseCircleFilledIcon } =\n useGlobalIcon({\n CloseIcon: TdCloseIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n\n const renderTNodeJSX = useTNodeJSX();\n\n const uploadPrefix = `${classPrefix.value}-upload`;\n\n const renderProgress = (percent: number) => (\n
    \n \n {props.showUploadProgress && {percent || 0}%}\n
    \n );\n\n // 文本型预览\n const renderFilePreviewAsText = (files: UploadFile[]) => {\n if (theme.value !== 'file') return null;\n if (!props.multiple && files[0]?.status === 'fail' && props.autoUpload) {\n return null;\n }\n return files.map((file, index) => {\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n \n {file.url ? (\n \n {fileName}\n \n ) : (\n {fileName}\n )}\n {file.status === 'fail' && (\n
    \n \n
    \n )}\n {file.status === 'waiting' && (\n
    \n \n
    \n )}\n {file.status === 'progress' && renderProgress(file.percent)}\n {!disabled.value && file.status !== 'progress' && (\n props.onRemove({ e, file, index })}\n />\n )}\n
    \n );\n });\n };\n\n // 输入框型预览\n const renderFilePreviewAsInput = () => {\n if (theme.value !== 'file-input') return;\n const file: UploadFile = props.displayFiles[0] || [];\n const inputTextClass = [\n `${classPrefix.value}-input__inner`,\n { [`${uploadPrefix}__placeholder`]: !props.displayFiles[0] },\n ];\n const disabledClass = disabled.value ? `${classPrefix.value}-is-disabled` : '';\n const fileName =\n props.abridgeName?.length && file?.name ? abridgeName(file.name, ...props.abridgeName) : file?.name;\n return (\n
    \n
    \n \n {file?.name ? fileName : props.placeholder}\n \n {file?.status === 'progress' && renderProgress(file.percent)}\n {file?.status === 'waiting' && (\n \n )}\n {file.status === 'success' && }\n {file?.name && file.status === 'fail' && (\n \n )}\n {Boolean(!disabled.value && file.name) && (\n props.onRemove({ e, file, index: 0 })}\n />\n )}\n
    \n
    \n );\n };\n\n return () => {\n const classes = [`${uploadPrefix}__single`, `${uploadPrefix}__single-${theme.value}`];\n let fileListDisplay = renderTNodeJSX('fileListDisplay', {\n params: {\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n },\n });\n if (props.fileListDisplay === null || fileListDisplay === null) {\n fileListDisplay = null;\n }\n\n const { displayFiles } = props;\n\n return (\n
    \n {theme.value === 'file-input' && renderFilePreviewAsInput()}\n\n {slots.default?.()}\n\n {theme.value === 'file' && props.placeholder && !displayFiles[0] && (\n {props.placeholder}\n )}\n\n {fileListDisplay === null ? null : fileListDisplay || renderFilePreviewAsText(displayFiles)}\n\n {/* 单文件上传失败要显示失败的原因 */}\n {!props.multiple && displayFiles[0]?.status === 'fail' && theme.value === 'file' ? (\n \n {displayFiles[0].response?.error || locale.value.progress.failText}\n \n ) : null}\n
    \n );\n };\n },\n});\n\nexport default NormalFile;\n","import { Ref, ref } from 'vue';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps } from '../type';\n\nexport interface UploadDragEvents {\n onDragFileChange?: (files: File[]) => void;\n onDragenter?: TdUploadProps['onDragenter'];\n onDragleave?: TdUploadProps['onDragleave'];\n onDrop?: TdUploadProps['onDrop'];\n}\n\nexport default function useDrag(props: UploadDragEvents, accept: Ref) {\n const target = ref(null);\n const dragActive = ref(false);\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault();\n dragActive.value = false;\n\n const { files } = event.dataTransfer;\n const dragFiles: File[] = getFileList(files, accept.value);\n props.onDrop?.({ e: event });\n if (dragFiles?.length) {\n props.onDragFileChange?.(dragFiles);\n }\n };\n\n const handleDragenter = (event: DragEvent) => {\n event.preventDefault();\n target.value = event.target;\n props.onDragenter?.({ e: event });\n dragActive.value = true;\n };\n\n const handleDragleave = (event: DragEvent) => {\n if (event.target !== target.value) return;\n event.preventDefault();\n props.onDragleave?.({ e: event });\n dragActive.value = false;\n };\n\n const handleDragover = (event: DragEvent) => {\n event.preventDefault();\n };\n\n return {\n target,\n dragActive,\n handleDrop,\n handleDragenter,\n handleDragleave,\n handleDragover,\n };\n}\n","import { defineComponent, toRefs, PropType, ref, computed, h } from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { abridgeName, getFileSizeText } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps, UploadFile } from '../type';\nimport Button from '../../button';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport TLoading from '../../loading';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport useGlobalIcon from '../../hooks/useGlobalIcon';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { useTNodeJSX } from '../../hooks';\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface DraggerProps extends CommonDisplayFileProps {\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n}\n\nexport default defineComponent({\n name: 'UploadDraggerFile',\n props: {\n ...commonProps,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n dragEvents: Object as PropType,\n },\n setup(props, { slots }) {\n const { displayFiles, disabled, accept } = toRefs(props);\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const { sizeClassNames } = useCommonClassName();\n const uploadPrefix = `${props.classPrefix}-upload`;\n\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const draggerFileRef = ref();\n\n const classes = computed(() => [\n `${uploadPrefix}__dragger`,\n { [`${uploadPrefix}__dragger-center`]: !displayFiles.value[0] },\n { [`${uploadPrefix}__dragger-error`]: displayFiles.value[0]?.status === 'fail' },\n ]);\n\n const { CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const renderImage = () => {\n if (!props.displayFiles.length) return;\n const file = displayFiles.value[0];\n if (!file) return null;\n const url = file?.url || file?.response?.url;\n return (\n
    \n }\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n\n const renderUploading = () => {\n if (!props.displayFiles.length) return;\n const file = displayFiles.value[0];\n if (!file) return null;\n if (file?.status === 'progress') {\n return (\n
    \n \n {props.showUploadProgress && {file.percent}%}\n
    \n );\n }\n };\n\n const renderMainPreview = () => {\n const file = displayFiles.value[0];\n const fileName = props.abridgeName ? abridgeName(file.name, ...props.abridgeName) : file.name;\n\n const fileInfo = [\n
    \n {fileName}\n {file.status === 'progress' && renderUploading()}\n {file.status === 'success' && }\n {file.status === 'fail' && }\n
    ,\n \n {locale.value.file.fileSizeText}:{getFileSizeText(file.size)}\n ,\n \n {locale.value.file.fileOperationDateText}:{file.uploadTime || '-'}\n ,\n ];\n return (\n
    \n {props.theme === 'image' && renderImage()}\n
    \n {renderTNodeJSX('fileListDisplay', { params: { files: props.displayFiles } }) || fileInfo}\n\n
    \n {['progress', 'waiting'].includes(file.status) && !disabled.value && (\n \n props.cancelUpload?.({\n e,\n file: props.toUploadFiles[0] || props.files[0],\n })\n }\n >\n {locale.value?.cancelUploadText}\n \n )}\n {!props.autoUpload && file.status === 'waiting' && (\n props.uploadFiles?.()}\n class={`${uploadPrefix}__dragger-upload-btn`}\n >\n {locale.value.triggerUploadText.normal}\n \n )}\n
    \n {['fail', 'success'].includes(file?.status) && !disabled.value && (\n
    \n \n {locale.value.triggerUploadText.reupload}\n \n props.onRemove({ e, index: 0, file })}\n >\n {locale.value.triggerUploadText.delete}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const renderDefaultDragElement = () => {\n const unActiveElement = (\n
    \n {locale.value.triggerUploadText?.normal}\n   /  {locale.value.dragger.draggingText}\n
    \n );\n const activeElement =
    {locale.value.dragger.dragDropText}
    ;\n return dragActive.value ? activeElement : unActiveElement;\n };\n\n const getContent = () => {\n const file = displayFiles.value[0];\n if (file && (['progress', 'success', 'fail', 'waiting'].includes(file.status) || !file.status)) {\n return renderMainPreview();\n }\n return (\n
    \n {slots.default?.() || renderDefaultDragElement()}\n
    \n );\n };\n\n return () => (\n \n {props.trigger?.(h, { files: displayFiles.value, dragActive: dragActive.value }) || getContent()}\n
    \n );\n },\n});\n","import { defineComponent, PropType, toRefs, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n DeleteIcon as TdDeleteIcon,\n AddIcon as TdAddIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport Loading from '../../loading';\nimport useGlobalIcon from '../../hooks/useGlobalIcon';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { TdUploadProps, UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\nimport { UploadConfig } from '../../config-provider';\nimport { useTNodeJSX } from '../../hooks';\nimport Link from '../../link';\nimport Image from '../../image';\n\nexport interface ImageCardUploadProps extends CommonDisplayFileProps {\n multiple: TdUploadProps['multiple'];\n max: TdUploadProps['max'];\n disabled?: TdUploadProps['disabled'];\n showUploadProgress: TdUploadProps['showUploadProgress'];\n triggerUpload?: (e: MouseEvent) => void;\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n onPreview?: TdUploadProps['onPreview'];\n}\n\nexport default defineComponent({\n name: 'UploadImageCard',\n props: {\n ...commonProps,\n multiple: Boolean,\n max: Number,\n disabled: Boolean,\n showUploadProgress: Boolean,\n triggerUpload: Function as PropType,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n onPreview: Function as PropType,\n showImageFileName: Boolean,\n },\n setup(props) {\n const { displayFiles, classPrefix, multiple, max } = toRefs(props);\n const locale = computed(() => props.locale as UploadConfig);\n const { BrowseIcon, DeleteIcon, AddIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const renderTNodeJSX = useTNodeJSX();\n\n const showTrigger = computed(() => {\n if (multiple.value) {\n return !max.value || displayFiles.value.length < max.value;\n }\n return !displayFiles.value?.[0];\n });\n\n const renderMainContent = (file: UploadFile, index: number) => {\n return (\n
    \n \n
    \n e.stopPropagation()}>\n t.url || t.raw)}\n defaultIndex={index}\n trigger={(h, { open }) => {\n return (\n {\n props.onPreview?.({ file, index, e });\n open();\n }}\n />\n );\n }}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n \n {!props.disabled && (\n <>\n \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n \n )}\n
    \n
    \n );\n };\n\n const renderProgressFile = (file: UploadFile, loadCard: string) => {\n return (\n
    \n \n

    \n {locale.value?.progress?.uploadingText}\n {props.showUploadProgress ? ` ${file.percent}%` : ''}\n

    \n
    \n );\n };\n\n const renderFailFile = (file: UploadFile, index: number, loadCard: string) => {\n return (\n
    \n \n

    {file.response?.error || locale.value?.progress?.failText}

    \n
    \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n
    \n
    \n );\n };\n\n return () => {\n // render custom UI with fileListDisplay\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n triggerUpload: props.triggerUpload,\n uploadFiles: props.uploadFiles,\n cancelUpload: props.cancelUpload,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: displayFiles.value,\n },\n });\n if (customList) return customList;\n\n const cardItemClasses = `${classPrefix.value}-upload__card-item ${classPrefix.value}-is-background`;\n return (\n
    \n
      \n {displayFiles.value?.map((file: UploadFile, index: number) => {\n const fileNameClassName = `${classPrefix.value}-upload__card-name`;\n\n const loadCard = `${classPrefix.value}-upload__card-container ${classPrefix.value}-upload__card-box`;\n const fileName = props.abridgeName ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n
    • \n {file.status === 'progress' && renderProgressFile(file, loadCard)}\n {file.status === 'fail' && renderFailFile(file, index, loadCard)}\n {!['progress', 'fail'].includes(file.status) && renderMainContent(file, index)}\n {Boolean(fileName && props.showImageFileName) &&\n (file.url ? (\n \n {fileName}\n \n ) : (\n {fileName}\n ))}\n
    • \n );\n })}\n\n {showTrigger.value && (\n
    • \n \n \n

      \n {locale.value?.triggerUploadText?.image}\n

      \n
    \n \n )}\n \n \n );\n };\n },\n});\n","import { computed, defineComponent, toRefs, PropType, ref } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n DeleteIcon as TdDeleteIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n TimeFilledIcon as TdTimeFilledIcon,\n FileExcelIcon as TdFileExcelIcon,\n FilePdfIcon as TdFilePdfIcon,\n FileWordIcon as TdFileWordIcon,\n FilePowerpointIcon as TdFilePowerpointIcon,\n FileIcon as TdFileIcon,\n VideoIcon as TdVideoIcon,\n} from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport useGlobalIcon from '../../hooks/useGlobalIcon';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport TButton from '../../button';\nimport { UploadFile, TdUploadProps } from '../type';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport {\n abridgeName,\n returnFileSize,\n IMAGE_REGEXP,\n FILE_PDF_REGEXP,\n FILE_EXCEL_REGEXP,\n FILE_WORD_REGEXP,\n FILE_PPT_REGEXP,\n VIDEO_REGEXP,\n} from '@tdesign/common-js/upload/utils';\nimport TLoading from '../../loading';\nimport { useTNodeJSX } from '../../hooks';\nimport Link from '../../link';\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface ImageFlowListProps extends CommonDisplayFileProps {\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file?: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n disabled?: boolean;\n isBatchUpload?: boolean;\n draggable?: boolean;\n onPreview?: TdUploadProps['onPreview'];\n uploadButton?: TdUploadProps['uploadButton'];\n cancelUploadButton?: TdUploadProps['cancelUploadButton'];\n}\n\nexport default defineComponent({\n name: 'UploadMultipleFlowList',\n props: {\n ...commonProps,\n showThumbnail: Boolean,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n dragEvents: Object as PropType,\n disabled: Boolean,\n isBatchUpload: Boolean,\n draggable: Boolean,\n showImageFileName: Boolean,\n uploadButton: Object as PropType,\n cancelUploadButton: Object as PropType,\n onPreview: Function as PropType,\n },\n setup(props, { slots }) {\n // locale 已经在 useUpload 中统一处理优先级\n const { uploading, disabled, displayFiles, classPrefix, accept } = toRefs(props);\n const uploadPrefix = computed(() => `${classPrefix.value}-upload`);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const {\n BrowseIcon,\n DeleteIcon,\n CheckCircleFilledIcon,\n ErrorCircleFilledIcon,\n TimeFilledIcon,\n FileExcelIcon,\n FilePdfIcon,\n FileWordIcon,\n FilePowerpointIcon,\n FileIcon,\n VideoIcon,\n } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n FileExcelIcon: TdFileExcelIcon,\n FilePdfIcon: TdFilePdfIcon,\n FileWordIcon: TdFileWordIcon,\n FilePowerpointIcon: TdFilePowerpointIcon,\n FileIcon: TdFileIcon,\n VideoIcon: TdVideoIcon,\n });\n\n const drag = useDrag(props.dragEvents, accept);\n\n const currentPreviewFile = ref([]);\n const previewIndex = ref(0);\n\n const uploadText = computed(() => {\n if (uploading.value) return `${locale.value.progress.uploadingText}`;\n return locale.value.triggerUploadText.normal;\n });\n\n const innerDragEvents = computed(() => {\n const draggable = props.draggable === undefined ? true : props.draggable;\n return draggable\n ? {\n onDrop: drag.handleDrop,\n onDragenter: drag.handleDragenter,\n onDragover: drag.handleDragover,\n onDragleave: drag.handleDragleave,\n }\n : {};\n });\n\n const getStatusMap = () => {\n const iconMap = {\n success: ,\n fail: ,\n progress: ,\n waiting: ,\n };\n const { progress } = locale.value;\n const textMap = {\n success: progress?.successText,\n fail: progress?.failText,\n progress: progress?.uploadingText,\n waiting: progress?.waitingText,\n };\n return {\n iconMap,\n textMap,\n };\n };\n\n const renderEmpty = () => (\n
    \n {drag.dragActive.value ? locale.value.dragger.dragDropText : locale.value.dragger.clickAndDragText}\n
    \n );\n\n const renderImgItem = (file: UploadFile, index: number) => {\n const { iconMap, textMap } = getStatusMap();\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n
  • \n \n {file.status === 'progress' && (\n
    \n {iconMap[file.status as 'progress']}\n

    \n {textMap[file.status as 'progress']}\n {props.showUploadProgress && ` ${file.percent}%`}\n

    \n
    \n )}\n {file.status === 'fail' && (\n
    \n {iconMap[file.status as 'fail']}\n

    {file.response?.error || textMap[file.status as 'fail']}

    \n
    \n )}\n {(['waiting', 'success'].includes(file.status) || (!file.status && file.url)) && (\n \n )}\n
    \n {(file.url || file.raw) && !['progress', 'fail'].includes(file.status) && (\n \n {\n previewIndex.value = index;\n currentPreviewFile.value = displayFiles.value;\n props.onPreview?.({ file, index, e });\n }}\n />\n \n \n )}\n {!disabled.value && (\n props.onRemove({ e, index, file })}\n >\n \n \n )}\n
    \n \n {props.showImageFileName && (\n

    \n {['success', 'waiting'].includes(file.status) && iconMap[file.status]}\n {fileName}\n

    \n )}\n
  • \n );\n };\n\n const renderStatus = (file: UploadFile) => {\n const { iconMap, textMap } = getStatusMap();\n return (\n
    \n {iconMap[file.status]}\n \n {file.response?.error ? file.response?.error || textMap[file.status] : textMap[file.status]}\n {props.showUploadProgress && file.status === 'progress' ? ` ${file.percent || 0}%` : ''}\n \n
    \n );\n };\n\n const renderNormalActionCol = (file: UploadFile, index: number) => (\n \n props.onRemove({ e, index, file })}\n >\n \n );\n\n // batchUpload action col\n const renderBatchActionCol = (index: number) =>\n // 第一行数据才需要合并单元格\n index === 0 ? (\n \n props.onRemove({ e, index: -1, file: undefined })}\n >\n \n ) : null;\n\n const getFileThumbnailIcon = (fileType: string) => {\n if (FILE_PDF_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_EXCEL_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_WORD_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_PPT_REGEXP.test(fileType)) {\n return ;\n }\n if (VIDEO_REGEXP.test(fileType)) {\n return ;\n }\n return ;\n };\n\n const renderFileThumbnail = (file: UploadFile) => {\n if (!file || (!file.raw && file.url)) return null;\n const fileType = file.raw.type;\n const className = `${uploadPrefix.value}__file-thumbnail`;\n if (IMAGE_REGEXP.test(fileType)) {\n return (\n {\n e.preventDefault();\n currentPreviewFile.value = [file];\n previewIndex.value = 0;\n props.onPreview?.({ file, index: 0, e });\n }}\n />\n );\n }\n return
    {getFileThumbnailIcon(fileType)}
    ;\n };\n\n const renderFileList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n \n \n \n \n \n \n {disabled.value ? null : }\n \n \n \n {!displayFiles.value.length && (\n \n \n \n )}\n {displayFiles.value.map((file, index) => {\n // 合并操作出现条件为:当前为合并上传模式且列表内没有待上传文件\n const showBatchUploadAction = props.isBatchUpload;\n const deleteNode =\n showBatchUploadAction && displayFiles.value.every((item) => item.status === 'success' || !item.status)\n ? renderBatchActionCol(index)\n : renderNormalActionCol(file, index);\n const fileName = props.abridgeName?.length ? abridgeName(file.name, ...props.abridgeName) : file.name;\n const thumbnailNode = props.showThumbnail ? (\n
    \n {renderFileThumbnail(file)}\n {fileName}\n
    \n ) : (\n fileName\n );\n const fileNameNode = file.url ? (\n // 此次需要设置disabled为false 否则链接会跟随表单不可点击\n \n {thumbnailNode}\n \n ) : (\n thumbnailNode\n );\n return (\n \n \n \n \n {disabled.value ? null : deleteNode}\n \n );\n })}\n \n
    {locale.value.file?.fileNameText}{locale.value.file?.fileSizeText}{locale.value.file?.fileStatusText}{locale.value.file?.fileOperationText}
    {renderEmpty()}
    \n {fileNameNode}\n {returnFileSize(file.size)}{renderStatus(file)}
    \n );\n };\n\n const renderImageList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onRemove: props.onRemove,\n onPreview: props.onPreview,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n
      \n {props.displayFiles.map((file, index) => renderImgItem(file, index))}\n
    \n );\n };\n\n return () => {\n const cardClassName = `${uploadPrefix.value}__flow-card-area`;\n const cancelUploadDisabled = disabled.value || !uploading.value;\n const hasCancelUploadTNode = slots.uploadButton || isFunction(props.uploadButton);\n const uploadButtonDisabled = Boolean(disabled.value || uploading.value || !displayFiles.value.length);\n const hasUploadButtonTNode = slots.cancelUploadButton || isFunction(props.cancelUploadButton);\n return (\n
    \n
    \n {slots.default?.()}\n {props.placeholder && (\n \n {props.placeholder}\n \n )}\n
    \n\n {props.theme === 'image-flow' && (\n
    \n {displayFiles.value.length ? renderImageList() : renderEmpty()}\n
    \n )}\n\n {props.theme === 'file-flow' &&\n (displayFiles.value.length ? (\n renderFileList()\n ) : (\n
    \n {renderEmpty()}\n
    \n ))}\n\n {!props.autoUpload && (props.uploadButton !== null || props.cancelUploadButton !== null) && (\n
    \n {props.cancelUploadButton !== null &&\n (hasCancelUploadTNode ? (\n renderTNodeJSX('cancelUploadButton', {\n params: {\n disabled: cancelUploadDisabled,\n cancelUploadText: locale.value?.cancelUploadText,\n cancelUpload: props.cancelUpload,\n },\n })\n ) : (\n props.cancelUpload?.({ e })}\n {...(isObject(props.cancelUploadButton) ? props.cancelUploadButton : {})}\n >\n ))}\n {props.uploadButton !== null &&\n (hasUploadButtonTNode ? (\n renderTNodeJSX('uploadButton', {\n params: {\n disabled: uploadButtonDisabled,\n uploading: uploading.value,\n uploadText: uploadText.value,\n uploadFiles: props.uploadFiles,\n },\n })\n ) : (\n props.uploadFiles?.()}\n {...(isObject(props.uploadButton) ? props.uploadButton : {})}\n >\n ))}\n
    \n )}\n\n t.url || t.raw)}\n visible={!!currentPreviewFile.value.length}\n onClose={() => {\n currentPreviewFile.value = [];\n }}\n index={previewIndex.value}\n onIndexChange={(val) => (previewIndex.value = val)}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, toRefs } from 'vue';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { useContent } from '../../hooks/tnode';\nimport { TdUploadProps } from '../type';\n\nexport interface CustomFileProps extends CommonDisplayFileProps {\n dragEvents: UploadDragEvents;\n draggable?: boolean;\n // 拖拽区域\n dragContent?: TdUploadProps['dragContent'];\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n childrenNode?: any;\n}\n\nexport default defineComponent({\n name: 'UploadCustomFile',\n props: {\n ...commonProps,\n dragEvents: Object as PropType,\n draggable: Boolean,\n // 拖拽区域\n dragContent: Function as PropType,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n childrenNode: [String, Function] as PropType,\n },\n setup(props, { slots }) {\n const { classPrefix, displayFiles, accept } = toRefs(props);\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const renderContent = useContent();\n\n const renderDragContent = () => {\n const params = { dragActive: dragActive.value || false, files: displayFiles.value };\n return (\n \n
    \n {renderContent('dragContent', 'trigger', { params }) || props.childrenNode?.(params)}\n
    \n \n );\n };\n\n return () => (\n <>\n {props.draggable ? (\n renderDragContent()\n ) : (\n
    \n {props.childrenNode?.({ files: displayFiles.value }) || slots.default?.()}\n
    \n )}\n \n );\n },\n});\n","import { isFunction, isNumber } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport { getCurrentDate, isOverSizeLimit } from './utils';\nimport xhr from './xhr';\nimport log from '../log/log';\nimport {\n UploadFile,\n SizeLimitObj,\n FileChangeParams,\n FileChangeReturn,\n RequestMethodResponse,\n HandleUploadParams,\n SuccessContext,\n handleSuccessParams,\n UploadTriggerUploadText,\n ErrorContext,\n ResponseType,\n} from './types';\n\nexport interface BeforeUploadExtra {\n /** 图片文件大小限制 */\n sizeLimit?: number | SizeLimitObj;\n /** 上传文件之前的钩子,参数为上传的文件,返回值决定是否上传 */\n beforeUpload?: (file: UploadFile) => boolean | Promise;\n}\n\nexport type BeforeUploadPromiseList = [Promise, undefined | Promise]\n\nexport function handleBeforeUpload(\n file: UploadFile, params: BeforeUploadExtra,\n): Promise<[SizeLimitObj, boolean]> {\n const { sizeLimit, beforeUpload } = params;\n // 文件大小校验\n const sizePromise = new Promise((resolve) => {\n let result: SizeLimitObj = null;\n if (sizeLimit) {\n const sizeLimitObj: SizeLimitObj = isNumber(sizeLimit)\n ? { size: sizeLimit, unit: 'KB' }\n : sizeLimit;\n const limit = isOverSizeLimit(file.size, sizeLimitObj.size, sizeLimitObj.unit);\n if (limit) {\n result = sizeLimitObj;\n }\n }\n resolve(result);\n });\n\n // 自定义校验\n const promiseList: BeforeUploadPromiseList = [sizePromise, undefined];\n if (isFunction(beforeUpload)) {\n const r = beforeUpload(file);\n const p = r instanceof Promise ? r : (new Promise((resolve) => resolve(r)));\n promiseList[1] = p;\n }\n\n // 同时进行文件大小校验和自定义校验函数\n return new Promise((resolve) => {\n Promise.all(promiseList).then((r) => {\n resolve(r);\n });\n });\n}\n\nexport interface OnErrorParams extends ErrorContext {\n formatResponse?: HandleUploadParams['formatResponse'];\n}\n\nexport function handleError(options: OnErrorParams) {\n const { event, files, response, XMLHttpRequest, formatResponse } = options;\n let res = response;\n if (isFunction(formatResponse)) {\n res = formatResponse(response, { file: files[0], currentFiles: files });\n }\n files.forEach((file) => {\n file.status = 'fail';\n file.response = res;\n });\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport function handleSuccess(params: handleSuccessParams) {\n const { event, files, response, XMLHttpRequest } = params;\n if (files?.length <= 0) {\n log.error('Upload', 'Empty File in Success Callback');\n }\n files.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n delete file.response?.error;\n });\n const res = response;\n files[0].url = res.url || files[0].url;\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport type UploadRequestReturn = {\n status?: 'fail' | 'success';\n /** 上传失败的文件,需等待继续上传 */\n failedFiles?: UploadFile[];\n data?: SuccessContext;\n /** 批量文件上传,一个文件一个请求的场景下,响应结果的列表 */\n list?: UploadRequestReturn[];\n}\n\nexport function handleRequestMethodResponse(res: RequestMethodResponse) {\n if (!res) {\n log.error('Upload', '`requestMethodResponse` is required.');\n return false;\n }\n if (!res.status) {\n log.error('Upload', '`requestMethodResponse.status` is missing, which value only can be `success` or `fail`');\n return false;\n }\n if (!['success', 'fail'].includes(res.status)) {\n log.error('Upload', '`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: \\'success\\', response: { url: \\'\\' } }`');\n return false;\n }\n if (res.status === 'success' && (!res.response || (!res.response.url && !res.response.files))) {\n log.warn('Upload', '`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`');\n }\n return true;\n}\n\n/**\n * 一次上传请求的返回结果\n */\nexport function uploadOneRequest(params: HandleUploadParams): Promise {\n const { action, toUploadFiles, requestMethod } = params;\n return new Promise((resolve) => {\n if (!action && !requestMethod) {\n log.error('Upload', 'one of action and requestMethod must be exist.');\n resolve({});\n return;\n }\n if (!toUploadFiles || !toUploadFiles.length) {\n log.warn('Upload', 'No files need to be uploaded');\n resolve({});\n return;\n }\n toUploadFiles.forEach((file) => {\n file.status = 'progress';\n });\n // 自定义上传方法\n if (requestMethod) {\n requestMethod(params.multiple ? toUploadFiles : toUploadFiles[0]).then((res) => {\n if (!handleRequestMethodResponse(res)) {\n resolve({});\n return;\n }\n let response = (res.response || {}) as ResponseType;\n if (isFunction(params.formatResponse)) {\n response = params.formatResponse(response, { file: toUploadFiles[0], currentFiles: toUploadFiles });\n }\n if (res.status === 'fail') {\n response.error = res.error || response.error;\n }\n let resultFiles: UploadFile[] = [];\n if (res.status === 'success' && response.files) {\n // 一个请求上传并返回多个文件\n resultFiles = response.files.map((file: UploadFile) => {\n const fileInfo = toUploadFiles.find((toFile) => (\n (file.name && toFile.name === file.name) || (file.raw && toFile.raw === file.raw)\n ));\n return {\n ...fileInfo,\n ...file,\n status: res.status,\n response,\n };\n });\n } else {\n // 一个请求上传并返回一个文件\n toUploadFiles.forEach((file) => {\n file.status = res.status;\n file.response = response;\n file.url = response.url;\n file.percent = res.status === 'success' ? 100 : 0;\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n resultFiles = toUploadFiles;\n }\n const result = {\n response,\n file: resultFiles[0],\n files: resultFiles,\n };\n if (res.status === 'success') {\n params.onResponseSuccess?.(result);\n } else if (res.status === 'fail') {\n params.onResponseError?.(result);\n }\n resolve({\n status: res.status,\n data: result,\n });\n });\n } else {\n const xhrReq = xhr({\n action: params.action,\n files: params.toUploadFiles,\n useMockProgress: params.useMockProgress,\n mockProgressDuration: params.mockProgressDuration,\n onError: (p: ErrorContext) => {\n const r = handleError({ ...p, formatResponse: params.formatResponse });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n },\n onProgress: params.onResponseProgress,\n onSuccess: (p: SuccessContext) => {\n const { formatResponse } = params;\n let res = p.response;\n if (isFunction(formatResponse)) {\n res = formatResponse(p.response, {\n file: p.file,\n currentFiles: p.files,\n });\n }\n if (res.error) {\n const r = handleError({ ...p, response: res });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n } else {\n p.file.response = res;\n p.files[0].response = res;\n const r = handleSuccess({ ...p, response: res });\n params.onResponseSuccess?.(r);\n resolve({ status: 'success', data: r });\n }\n },\n formatRequest: params.formatRequest,\n data: params.data,\n name: params.name,\n headers: params.headers,\n withCredentials: params.withCredentials,\n method: params.method,\n });\n params.setXhrObject?.({\n files: params.toUploadFiles,\n xhrReq,\n });\n }\n });\n}\n\nfunction updateUploadedFiles(uploadFiles: UploadFile[], resultFiles: UploadFile[]) {\n const existFiles = uploadFiles.filter((t) => t.url);\n const newFiles = existFiles;\n for (let i = 0, len = resultFiles.length; i < len; i++) {\n const file = resultFiles[i];\n const index = uploadFiles.findIndex((item) => (\n (item.raw && item.raw === file.raw) || (item.name && item.name === file.name)\n ));\n const tmpFile = index >= 0 ? { ...uploadFiles[index], ...file } : file;\n newFiles.push(tmpFile);\n }\n return newFiles;\n}\n\n/**\n * 可能单个文件上传,也可能批量文件一次性上传\n * 返回上传成功或上传失败的文件列表\n */\nexport function upload(params: HandleUploadParams):\nPromise {\n const { uploadAllFilesInOneRequest, toUploadFiles, uploadedFiles, isBatchUpload } = params;\n // 一批文件上传,部分文件失败,重新上传失败的文件\n const thisUploadFiles = toUploadFiles.filter((t) => (\n !t.response || (t.response && !t.response.error)\n ));\n return new Promise((resolve) => {\n // 所有文件一次性上传\n if (uploadAllFilesInOneRequest || !params.multiple) {\n uploadOneRequest(params).then((r) => {\n if (r.status === 'success') {\n r.data.files = isBatchUpload || !params.multiple\n ? r.data.files\n : updateUploadedFiles(uploadedFiles, r.data.files);\n }\n const failedFiles = r.status === 'fail' ? r.data.files : [];\n resolve({ ...r, failedFiles });\n });\n return;\n }\n // 一个文件一个文件上传\n const list = thisUploadFiles.map((file) => (\n uploadOneRequest({ ...params, toUploadFiles: [file] })\n ));\n Promise.all(list).then((arr) => {\n const files: UploadFile[] = [];\n const failedFiles: UploadFile[] = [];\n arr.forEach((one) => {\n if (one.status === 'success') {\n files.push(one.data.files[0]);\n } else if (one.status === 'fail') {\n failedFiles.push(one.data.files[0]);\n }\n });\n const tFiles = params.autoUpload\n ? uploadedFiles.concat(files)\n : uploadedFiles;\n const newFiles = isBatchUpload || !params.multiple ? files : tFiles;\n resolve({\n status: files.length ? 'success' : 'fail',\n data: {\n files: newFiles,\n },\n // 上传失败的文件,需等待继续上传\n failedFiles,\n list: arr,\n });\n });\n });\n}\n\nexport function formatToUploadFile(\n files: File[],\n format: FileChangeParams['format'],\n status: UploadFile['status'] = undefined,\n percent = 0,\n) {\n return files.map((fileRaw: File) => {\n let file: UploadFile = fileRaw;\n if (isFunction(format)) {\n file = format(fileRaw);\n }\n const uploadFile: UploadFile = {\n raw: fileRaw,\n lastModified: fileRaw.lastModified,\n name: fileRaw.name,\n size: fileRaw.size,\n type: fileRaw.type,\n percent,\n status,\n ...file,\n };\n return uploadFile;\n });\n}\n\nexport function validateFile(\n params: FileChangeParams\n): Promise {\n const { files, uploadValue, max, allowUploadDuplicateFile } = params;\n return new Promise((resolve) => {\n // 是否允许相同的文件名存在\n let tmpFiles = files.filter((file) => {\n const sameNameFile = uploadValue.find((t) => t.name === file.name);\n return allowUploadDuplicateFile || !sameNameFile;\n });\n\n let hasSameNameFile = false;\n if (tmpFiles.length < files.length) {\n hasSameNameFile = true;\n }\n if (!tmpFiles.length) {\n const tFiles = formatToUploadFile(files, params.format, params.autoUpload ? 'progress' : 'waiting');\n resolve({ hasSameNameFile, file: tFiles?.[0], files: tFiles, validateResult: { type: 'FILTER_FILE_SAME_NAME' } });\n return;\n }\n // 上传文件数量限制\n let lengthOverLimit = false;\n if (max && tmpFiles.length && !params.isBatchUpload) {\n const tmpFilesLenToBeAdded = tmpFiles.length;\n tmpFiles = tmpFiles.slice(0, max - uploadValue.length);\n if (tmpFilesLenToBeAdded + uploadValue.length > max) {\n lengthOverLimit = true;\n }\n }\n\n // 格式化文件对象\n const formattedFiles = formatToUploadFile(tmpFiles, params.format, params.autoUpload ? 'progress' : 'waiting');\n\n // 全量文件,一波校验,整体上传 或 终止上传\n let allFileValidatePromise;\n if (params.beforeAllFilesUpload) {\n const r = params.beforeAllFilesUpload?.(formattedFiles);\n allFileValidatePromise = r instanceof Promise ? r : new Promise((resolve) => resolve(r));\n }\n\n // 单文件合法性校验,一个文件校验不通过其他文件可继续上传\n const promiseList = formattedFiles.map((file: UploadFile) => new Promise((resolve) => {\n handleBeforeUpload(\n file,\n { beforeUpload: params.beforeUpload, sizeLimit: params.sizeLimit },\n ).then(([sizeResult, customResult]) => {\n if (sizeResult) {\n resolve({ file, validateResult: { type: 'FILE_OVER_SIZE_LIMIT', extra: sizeResult } });\n } else if (customResult === false) {\n resolve({ file, validateResult: { type: 'CUSTOM_BEFORE_UPLOAD' } });\n }\n resolve({ file });\n });\n }));\n Promise.all([allFileValidatePromise].concat(promiseList)).then((results) => {\n const [allFilesResult, ...others] = results;\n // 如果 beforeAllFilesUpload 校验未通过\n if (allFilesResult === false) {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n validateResult: { type: 'BEFORE_ALL_FILES_UPLOAD' },\n files: formattedFiles,\n });\n } else {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n fileValidateList: others,\n files: formattedFiles,\n });\n }\n });\n });\n}\n\nexport function getFilesAndErrors(fileValidateList: FileChangeReturn[], getError: (p: {[key: string]: any }) => string) {\n const sizeLimitErrors: FileChangeReturn[] = [];\n const beforeUploadErrorFiles: UploadFile[] = [];\n const toFiles: UploadFile[] = [];\n fileValidateList.forEach((oneFile) => {\n if (oneFile.validateResult?.type === 'CUSTOM_BEFORE_UPLOAD') {\n beforeUploadErrorFiles.push(oneFile.file);\n return;\n }\n if (oneFile.validateResult?.type === 'FILE_OVER_SIZE_LIMIT') {\n if (!oneFile.file.response) {\n oneFile.file.response = {};\n }\n oneFile.file.response.error = oneFile.file.response.error\n || getError(oneFile.validateResult.extra);\n sizeLimitErrors.push(oneFile);\n return;\n }\n toFiles.push(oneFile.file);\n });\n\n return { sizeLimitErrors, beforeUploadErrorFiles, toFiles };\n}\n\n/**\n * 获取文件上传触发元素文本 在全局配置中的字段\n */\nexport function getTriggerTextField(p: {\n status: 'success' | 'fail' | 'progress' | 'waiting',\n multiple: boolean,\n autoUpload: boolean;\n isBatchUpload: boolean;\n}): keyof UploadTriggerUploadText {\n if (p.isBatchUpload && p.status) return 'reupload';\n if (p.status === 'fail') return 'reupload';\n if (p.status === 'progress') return 'uploading';\n if (p.status === 'success' || (!p.autoUpload && p.status === 'waiting')) {\n return p.multiple ? 'continueUpload' : 'reupload';\n }\n return 'fileInput';\n}\n\nexport interface GetDisplayFilesParams {\n multiple: boolean;\n autoUpload: boolean;\n isBatchUpload: boolean;\n uploadValue: UploadFile[];\n toUploadFiles: UploadFile[];\n}\n\n/**\n * 获取文件列表显示\n */\nexport function getDisplayFiles(params: GetDisplayFilesParams) {\n const { multiple, uploadValue, toUploadFiles, autoUpload } = params;\n const waitingUploadFiles = autoUpload\n ? toUploadFiles\n : toUploadFiles.filter((file) => file.status !== 'success');\n if (multiple && !params.isBatchUpload) {\n if (!autoUpload) return uploadValue;\n return (waitingUploadFiles.length ? uploadValue.concat(waitingUploadFiles) : uploadValue) || [];\n }\n return (waitingUploadFiles.length ? waitingUploadFiles : uploadValue) || [];\n}\n","import { isFunction } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport log from '../log/log';\nimport { UploadFile, XhrOptions } from './types';\nimport { getCurrentDate } from './utils';\n\nexport default function xhr({\n method = 'POST',\n action,\n withCredentials = false,\n headers = {},\n data = {},\n file,\n files = [],\n name = 'file',\n useMockProgress = true,\n mockProgressDuration = 300,\n formatRequest,\n onError,\n onProgress,\n onSuccess,\n}: XhrOptions) {\n // support files\n const innerFiles: UploadFile[] = files || [];\n let percent = 0;\n\n // eslint-disable-next-line no-shadow\n const xhr = new XMLHttpRequest();\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n let timer1: NodeJS.Timeout;\n let timer2: NodeJS.Timeout;\n if (useMockProgress && files[0]?.status === 'progress') {\n // 超过 500 毫秒再开启虚拟进度\n const timer2 = setTimeout(() => {\n // 只有真实进度一直不存在时才需要模拟进度\n timer1 = setInterval(() => {\n if (percent + 10 < 100) {\n percent = Math.max(percent + 10, percent);\n if (files[0] && percent !== files[0].percent) {\n files[0].percent = percent;\n onProgress({\n percent,\n file: file || innerFiles[0],\n files: innerFiles.map((file) => ({ ...file, percent })),\n type: 'mock',\n XMLHttpRequest: xhr,\n });\n }\n } else {\n clearInterval(timer1);\n }\n }, mockProgressDuration);\n clearTimeout(timer2);\n }, mockProgressDuration);\n }\n\n let requestData: { [key: string]: any } = {};\n if (data) {\n const extraData = isFunction(data) ? data(innerFiles) : data;\n Object.assign(requestData, extraData);\n }\n innerFiles.forEach((file, index) => {\n const fileField = innerFiles.length > 1 ? `${name}[${index}]` : name;\n requestData[fileField] = file.raw;\n });\n if (innerFiles.length === 1) {\n requestData[name] = innerFiles[0].raw;\n } else {\n requestData[name] = innerFiles.map((file) => file.raw);\n }\n requestData.length = innerFiles.length;\n\n if (formatRequest) {\n requestData = formatRequest(requestData);\n }\n\n // set send data\n const formData = new FormData();\n Object.keys(requestData).forEach((key) => {\n formData.append(key, requestData[key]);\n });\n\n xhr.open(method, action, true);\n // custom request headers\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n\n xhr.onerror = (event: ProgressEvent) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n clearInterval(timer1);\n clearTimeout(timer2);\n };\n\n xhr.ontimeout = (event) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n };\n\n if (xhr.upload) {\n xhr.upload.onprogress = (event: ProgressEvent) => {\n let realPercent = 0;\n if (event.total > 0) {\n realPercent = Math.round((event.loaded / event.total) * 100);\n }\n percent = Math.max(realPercent, percent);\n if (percent !== realPercent && innerFiles[0]?.percent !== percent) {\n const progressFiles = innerFiles.map((item) => ({ ...item, percent }));\n onProgress({\n event,\n percent,\n file: file || progressFiles[0],\n files: progressFiles,\n type: 'real',\n XMLHttpRequest: xhr,\n });\n }\n };\n }\n\n // eslint-disable-next-line consistent-return\n xhr.onload = (event: ProgressEvent) => {\n let response: { [key: string]: any } = {};\n response.XMLHttpRequest = xhr;\n const isFail = xhr.status < 200 || xhr.status >= 300;\n if (isFail) {\n return onError({\n event,\n file,\n files: innerFiles,\n response,\n XMLHttpRequest: xhr,\n });\n }\n const text = xhr.responseText || xhr.response;\n try {\n response = JSON.parse(text);\n } catch (e) {\n response = text;\n log.error('Upload', 'response does not a valid json');\n }\n clearInterval(timer1);\n clearTimeout(timer2);\n innerFiles.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n if (typeof response === 'object') {\n response.XMLHttpRequest = xhr;\n }\n onSuccess({\n event,\n file: file || innerFiles[0],\n files: [...innerFiles],\n XMLHttpRequest: xhr,\n response,\n });\n };\n\n xhr.send(formData);\n // @ts-ignore\n xhr.upload.requestParams = requestData;\n // @ts-ignore\n xhr.upload.requestHeaders = headers;\n\n return xhr;\n}\n","import { ref, computed, toRefs } from 'vue';\nimport { merge } from 'lodash-es';\nimport { SizeLimitObj, TdUploadProps, UploadChangeContext, UploadFile, UploadRemoveContext } from '../type';\nimport {\n getFilesAndErrors,\n validateFile,\n upload,\n getTriggerTextField,\n getDisplayFiles,\n formatToUploadFile,\n} from '@tdesign/common-js/upload/main';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport useVModel from '../../hooks/useVModel';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport type ValidateParams = Parameters[0];\n\n/**\n * 上传组件全部逻辑,方便脱离 UI,自定义 UI 组件\n */\nexport default function useUpload(props: TdUploadProps) {\n const inputRef = ref();\n // TODO: Form 表单控制上传组件是否禁用\n const { disabled, autoUpload, isBatchUpload, multiple, files, modelValue, defaultFiles } = toRefs(props);\n const { globalConfig, t, classPrefix } = useConfig('upload');\n const [uploadValue, setUploadValue] = useVModel(files, modelValue, defaultFiles.value, props.onChange, 'files');\n const xhrReq = ref<{ files: UploadFile[]; xhrReq: XMLHttpRequest }[]>([]);\n const toUploadFiles = ref([]);\n const sizeOverLimitMessage = ref('');\n\n const locale = computed(() => merge({}, globalConfig.value, props.locale));\n\n const tipsClasses = `${classPrefix.value}-upload__tips ${classPrefix.value}-size-s`;\n const errorClasses = [tipsClasses].concat(`${classPrefix.value}-upload__tips-error`);\n const placeholderClass = `${classPrefix.value}-upload__placeholder`;\n\n // 单文件场景:触发元素文本\n const triggerUploadText = computed(() => {\n const field = getTriggerTextField({\n isBatchUpload: isBatchUpload.value,\n multiple: multiple.value,\n status: uploadValue.value?.[0]?.status,\n autoUpload: autoUpload.value,\n }) as keyof typeof locale.value.triggerUploadText;\n return locale.value.triggerUploadText[field];\n });\n\n const uploading = ref(false);\n\n // 文件列表显示的内容(自动上传和非自动上传有所不同)\n const displayFiles = computed(() => {\n return getDisplayFiles({\n multiple: props.multiple,\n toUploadFiles: toUploadFiles.value,\n uploadValue: uploadValue.value,\n autoUpload: autoUpload.value,\n isBatchUpload: isBatchUpload.value,\n });\n });\n\n const uploadFilePercent = (params: { file: UploadFile; percent: number }) => {\n const { file, percent } = params;\n const operationUploadFiles = autoUpload.value ? toUploadFiles : uploadValue;\n const index = operationUploadFiles.value.findIndex((item) => file.raw === item.raw);\n operationUploadFiles.value[index] = { ...operationUploadFiles.value[index], percent };\n };\n\n const updateFilesProgress = () => {\n if (props.autoUpload) {\n toUploadFiles.value = [...toUploadFiles.value];\n }\n };\n\n const onResponseError = (p: OnResponseErrorContext) => {\n if (!p || !p.files || !p.files[0]) return;\n const { response, event, files } = p;\n updateFilesProgress();\n props.onOneFileFail?.({\n e: event,\n file: files?.[0],\n currentFiles: files,\n failedFiles: files,\n response,\n });\n // 单选或多文件替换,需要清空上一次上传成功的文件\n if (!props.multiple || props.isBatchUpload) {\n setUploadValue([], {\n trigger: 'progress-fail',\n e: p.event,\n file: p.files[0],\n });\n }\n };\n\n // 多文件上传场景,单个文件进度\n const onResponseProgress = (p: InnerProgressContext) => {\n updateFilesProgress();\n props.onProgress?.({\n e: p.event,\n file: p.file,\n currentFiles: p.files,\n percent: p.percent,\n type: p.type,\n XMLHttpRequest: p.XMLHttpRequest,\n });\n };\n\n // 多文件上传场景,单个文件上传成功后\n const onResponseSuccess = (p: SuccessContext) => {\n // 只有多个上传请求同时触发时才需 onOneFileSuccess\n if (props.multiple && !props.uploadAllFilesInOneRequest) {\n updateFilesProgress();\n props.onOneFileSuccess?.({\n e: p.event,\n file: p.files[0],\n response: p.response,\n });\n }\n };\n\n function getSizeLimitError(sizeLimitObj: SizeLimitObj) {\n const limit = sizeLimitObj;\n return limit.message\n ? t(limit.message, { sizeLimit: limit.size })\n : `${t(locale.value.sizeLimitMessage, { sizeLimit: limit.size })} ${limit.unit}`;\n }\n\n const handleNotAutoUpload = (toFiles: UploadFile[]) => {\n const tmpFiles = props.multiple && !isBatchUpload.value ? uploadValue.value.concat(toFiles) : toFiles;\n if (!tmpFiles.length) return;\n setUploadValue(tmpFiles, {\n trigger: 'add',\n index: uploadValue.value.length,\n file: toFiles[0],\n files: toFiles,\n });\n toUploadFiles.value = [];\n };\n\n const onFileChange = (files: File[]) => {\n if (disabled.value) return;\n const params = { currentSelectedFiles: formatToUploadFile([...files], props.format) };\n props.onSelectChange?.([...files], params);\n validateFile({\n uploadValue: uploadValue.value,\n // @ts-ignore\n files: [...files],\n allowUploadDuplicateFile: props.allowUploadDuplicateFile,\n max: props.multiple ? props.max : 0,\n sizeLimit: props.sizeLimit,\n isBatchUpload: isBatchUpload.value,\n autoUpload: autoUpload.value,\n format: props.format,\n beforeUpload: props.beforeUpload,\n beforeAllFilesUpload: props.beforeAllFilesUpload,\n }).then((args) => {\n // 自定义全文件校验不通过\n if (args.validateResult?.type === 'BEFORE_ALL_FILES_UPLOAD') {\n const params: ValidateParams = { type: 'BEFORE_ALL_FILES_UPLOAD', files: args.files };\n props.onValidate?.(params);\n return;\n }\n // 文件数量校验不通过\n if (args.lengthOverLimit) {\n const params: ValidateParams = { type: 'FILES_OVER_LENGTH_LIMIT', files: args.files };\n props.onValidate?.(params);\n if (!args.files.length) return;\n }\n // 过滤相同的文件名\n if (args.hasSameNameFile) {\n const params: ValidateParams = { type: 'FILTER_FILE_SAME_NAME', files: args.files };\n props.onValidate?.(params);\n }\n // 文件大小校验结果处理(已过滤超出限制的文件)\n if (args.fileValidateList instanceof Array) {\n const { sizeLimitErrors, beforeUploadErrorFiles, toFiles } = getFilesAndErrors(\n args.fileValidateList,\n getSizeLimitError,\n );\n const tmpWaitingFiles = autoUpload.value ? toFiles : toUploadFiles.value.concat(toFiles);\n toUploadFiles.value = tmpWaitingFiles;\n props.onWaitingUploadFilesChange?.({ files: tmpWaitingFiles, trigger: 'validate' });\n // 文件大小处理\n if (sizeLimitErrors[0]) {\n sizeOverLimitMessage.value = sizeLimitErrors[0].file.response.error;\n props.onValidate?.({ type: 'FILE_OVER_SIZE_LIMIT', files: sizeLimitErrors.map((t) => t.file) });\n } else {\n sizeOverLimitMessage.value = '';\n // 自定义方法 beforeUpload 拦截的文件\n if (beforeUploadErrorFiles.length) {\n const params: ValidateParams = { type: 'CUSTOM_BEFORE_UPLOAD', files: beforeUploadErrorFiles };\n props.onValidate?.(params);\n }\n }\n // 如果是自动上传\n if (autoUpload.value) {\n uploadFiles(tmpWaitingFiles);\n } else {\n handleNotAutoUpload(tmpWaitingFiles);\n }\n }\n });\n\n // 清空 元素的文件,避免出现重复文件无法选择的情况\n inputRef.value.value = null;\n };\n\n const onNormalFileChange = (e: InputEvent) => {\n const fileList = getFileList((e.target as HTMLInputElement).files);\n onFileChange?.(fileList);\n };\n\n function onDragFileChange(files: File[]) {\n onFileChange?.(files);\n }\n\n function onPasteFileChange(e: ClipboardEvent) {\n onFileChange?.([...e.clipboardData.files]);\n }\n\n /**\n * 上传文件。对外暴露方法,修改时需谨慎\n * @param toFiles 本地上传的文件列表\n */\n function uploadFiles(toFiles?: UploadFile[]) {\n const notUploadedFiles = uploadValue.value.filter((t) => t.status !== 'success');\n const files = autoUpload.value ? toFiles || toUploadFiles.value : notUploadedFiles;\n if (!files || !files.length) return;\n uploading.value = true;\n xhrReq.value = [];\n upload({\n action: props.action,\n headers: props.headers,\n method: props.method,\n name: props.name,\n withCredentials: props.withCredentials,\n uploadedFiles: uploadValue.value,\n toUploadFiles: files,\n multiple: props.multiple,\n isBatchUpload: isBatchUpload.value,\n autoUpload: props.autoUpload,\n uploadAllFilesInOneRequest: props.uploadAllFilesInOneRequest,\n useMockProgress: props.useMockProgress,\n data: props.data,\n mockProgressDuration: props.mockProgressDuration,\n requestMethod: props.requestMethod,\n formatRequest: props.formatRequest,\n formatResponse: props.formatResponse,\n onResponseProgress,\n onResponseSuccess,\n onResponseError,\n setXhrObject: (xhr) => {\n if (xhr.files[0]?.raw && xhrReq.value.find((item) => item.files[0]?.raw === xhr.files[0].raw)) return;\n xhrReq.value = xhrReq.value.concat(xhr);\n },\n }).then(\n // 多文件场景时,全量文件完成后\n ({ status, data, list, failedFiles }) => {\n uploading.value = false;\n if (status === 'success') {\n setUploadValue([...data.files], {\n trigger: 'add',\n file: data.files[0],\n });\n xhrReq.value = [];\n props.onSuccess?.({\n fileList: data.files,\n currentFiles: files,\n file: files[0],\n // 只有全部请求完成后,才会存在该字段\n results: list?.map((t) => t.data),\n // 单文件单请求有一个 response,多文件多请求有多个 response\n response: data.response || list.map((t) => t.data.response),\n XMLHttpRequest: data.XMLHttpRequest,\n });\n } else if (failedFiles?.[0]) {\n props.onFail?.({\n e: data.event,\n file: failedFiles[0],\n failedFiles,\n currentFiles: files,\n response: data.response,\n XMLHttpRequest: data.XMLHttpRequest,\n });\n }\n\n // 非自动上传,文件都在 uploadValue,不涉及 toUploadFiles\n if (autoUpload.value) {\n toUploadFiles.value = failedFiles;\n props.onWaitingUploadFilesChange?.({ files: failedFiles, trigger: 'uploaded' });\n }\n },\n );\n }\n\n function onInnerRemove(p: UploadRemoveContext) {\n sizeOverLimitMessage.value = '';\n p.e.stopPropagation?.();\n const changePrams: UploadChangeContext = {\n e: p.e,\n trigger: 'remove',\n index: p.index,\n file: p.file,\n };\n // remove all files for batchUpload\n if (props.isBatchUpload || !props.multiple) {\n toUploadFiles.value = [];\n props.onWaitingUploadFilesChange?.({ files: [], trigger: 'remove' });\n setUploadValue([], changePrams);\n } else if (!props.autoUpload) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n // autoUpload 场景下, p.index < uploadValue.length 表示移除已经上传成功的文件;反之表示移除待上传列表文件\n // eslint-disable-next-line\n if (p.index < uploadValue.value.length) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n toUploadFiles.value.splice(p.index - uploadValue.value.length, 1);\n toUploadFiles.value = [...toUploadFiles.value];\n props.onWaitingUploadFilesChange?.({ files: [...toUploadFiles.value], trigger: 'remove' });\n }\n }\n props.onRemove?.(p);\n }\n\n const triggerUpload = (e?: MouseEvent) => {\n if (disabled.value || !inputRef.value) return;\n e?.stopPropagation?.();\n (inputRef.value as HTMLInputElement).click();\n };\n\n const cancelUpload = (context?: { file?: UploadFile; e?: MouseEvent }) => {\n xhrReq.value?.forEach((item) => {\n item.xhrReq?.abort();\n });\n uploading.value = false;\n\n // autoUpload do not need to reset to waiting state\n if (autoUpload.value) {\n toUploadFiles.value = [];\n } else {\n setUploadValue(\n uploadValue.value.map((item) => {\n if (item.status !== 'success') {\n return { ...item, status: 'waiting' };\n }\n return item;\n }),\n { trigger: 'abort' },\n );\n }\n\n if (context?.file && !autoUpload.value) {\n onInnerRemove?.({ file: context.file, e: context.e, index: 0 });\n }\n\n props.onCancelUpload?.();\n };\n\n return {\n t,\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n uploadValue,\n displayFiles,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n disabled,\n xhrReq,\n uploadFilePercent,\n uploadFiles,\n onFileChange,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n onInnerRemove,\n triggerUpload,\n cancelUpload,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport { UploadIcon as TdUploadIcon } from 'tdesign-icons-vue-next';\nimport props from './props';\nimport NormalFile from './components/normal-file';\nimport DraggerFile from './components/dragger-file';\nimport ImageCard from './components/image-card';\nimport MultipleFlowList from './components/multiple-flow-list';\nimport Button from '../button';\nimport { CommonDisplayFileProps, UploadProps } from './types';\nimport CustomFile from './components/custom-file';\n\nimport { UploadDragEvents } from './hooks/useDrag';\nimport useUpload from './hooks/useUpload';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\n\nexport default defineComponent({\n name: 'TUpload',\n props,\n setup(props: UploadProps, { slots, expose }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const {\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n displayFiles,\n uploadValue,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n onInnerRemove,\n uploadFiles,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n triggerUpload,\n cancelUpload,\n uploadFilePercent,\n } = useUpload(props);\n const disabled = useDisabled();\n\n const { UploadIcon } = useGlobalIcon({\n UploadIcon: TdUploadIcon,\n });\n\n const triggerUploadButtonText = computed(\n () => props.triggerButtonProps?.default || props.triggerButtonProps?.content || triggerUploadText.value,\n );\n\n expose({\n upload: inputRef.value,\n uploading,\n triggerUpload,\n uploadFiles,\n cancelUpload,\n uploadFilePercent,\n });\n\n const renderTrigger = () => {\n const getDefaultTrigger = () => {\n if (props.theme === 'file-input') {\n return (\n \n );\n }\n return (\n \n );\n };\n return (\n renderContent('default', 'trigger', {\n params: { dragActive: false, files: uploadValue.value },\n }) || getDefaultTrigger()\n );\n };\n\n const commonDisplayFileProps = computed(() => ({\n accept: props.accept,\n files: uploadValue.value,\n toUploadFiles: toUploadFiles.value,\n displayFiles: displayFiles.value,\n theme: props.theme,\n placeholder: props.placeholder,\n disabled: disabled.value,\n tips: props.tips,\n status: props.status,\n sizeOverLimitMessage: sizeOverLimitMessage.value,\n uploading: uploading.value,\n classPrefix: classPrefix.value,\n tipsClasses,\n errorClasses,\n placeholderClass,\n locale: locale.value,\n autoUpload: props.autoUpload,\n abridgeName: props.abridgeName,\n showUploadProgress: props.showUploadProgress,\n fileListDisplay: props.fileListDisplay,\n onRemove: onInnerRemove,\n uploadPastedFiles: props.uploadPastedFiles,\n onPasteFileChange: onPasteFileChange,\n imageViewerProps: props.imageViewerProps,\n }));\n\n const dragProps: UploadDragEvents = {\n onDragFileChange,\n onDragenter: props.onDragenter,\n onDragleave: props.onDragleave,\n onDrop: props.onDrop,\n };\n\n const uploadClasses = computed(() => [\n `${classPrefix.value}-upload`,\n {\n [`${classPrefix.value}-upload--theme-${props.theme}`]: props.theme === 'file-input',\n },\n ]);\n\n const getNormalFileNode = () => (\n \n
    \n {renderTrigger()}\n
    \n \n );\n\n const getSingleFileDraggerUploadNode = () => (\n \n );\n\n const getImageCardUploadNode = () => (\n \n );\n\n const getFlowListNode = () => (\n \n
    \n {!props.draggable && renderTrigger()}\n
    \n \n );\n\n const getCustomFile = () => (\n \n {renderTrigger()}\n \n );\n\n return () => (\n
    \n \n {['file', 'file-input'].includes(props.theme) && !props.draggable && getNormalFileNode()}\n {['file', 'image'].includes(props.theme) && props.draggable && getSingleFileDraggerUploadNode()}\n {props.theme === 'image' && !props.draggable && getImageCardUploadNode()}\n {['image-flow', 'file-flow'].includes(props.theme) && getFlowListNode()}\n {props.theme === 'custom' && getCustomFile()}\n\n {Boolean(props.tips || slots.tips) && (\n \n {renderTNodeJSX('tips')}\n \n )}\n {sizeOverLimitMessage.value && {sizeOverLimitMessage.value}}\n
    \n );\n },\n});\n","import _Upload from './upload';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './types';\n\nexport const Upload = withInstall(_Upload);\nexport default Upload;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdConfigProviderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 全局配置 */\n globalConfig: {\n type: Object as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { provideConfig } from './hooks/useConfig';\n\nexport default defineComponent({\n name: 'TConfigProvider',\n props,\n setup(props) {\n provideConfig(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n return () => <>{renderTNodeJSX('default')};\n },\n});\n","import withInstall from '../utils/withInstall';\nimport _ConfigProvider from './config-provider';\nimport { TdConfigProviderProps } from './type';\n\nexport * from './type';\nexport type ConfigProviderProps = TdConfigProviderProps;\n\nexport const ConfigProvider = withInstall(_ConfigProvider);\nexport default ConfigProvider;\n","import { App } from 'vue';\nimport * as components from './components';\n\nexport function install(app: App, config?: Record): void {\n Object.keys(components).forEach((key) => {\n if (/directive/i.test(key)) return;\n // @ts-ignore\n /plugin/i.test(key) ? app.use(components[key]) : app.use(components[key], config);\n });\n}\n\nexport * from './components';\nexport * from './common';\nexport default {\n install,\n version: typeof PKG_VERSION === 'undefined' ? '' : PKG_VERSION, // eslint-disable-line\n};\n"],"names":["_arrayLikeToArray","arr","len","length","i","arr2","Array","_iterableToArray","iter","Symbol","iterator","from","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","test","_toConsumableArray","isArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","TypeError","nonIterableSpread","_typeof","_toPropertyKey","arg","key","input","hint","prim","toPrimitive","undefined","res","String","Number","_defineProperty","obj","value","toPropertyKey","defineProperty","enumerable","configurable","writable","freeGlobal","global","freeSelf","self","root","Function","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","toStringTag","baseGetTag","isOwn","tag","unmasked","e","result","getRawTag","objectToString","isObjectLike","isSymbol","arrayMap","array","iteratee","index","isArray$1","symbolProto","symbolToString","baseToString","reWhitespace","reTrimStart","baseTrim","string","charAt","trimmedEndIndex","replace","isObject","type","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","INFINITY","toFinite","toInteger","remainder","identity","isFunction","uid","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","toSource","func","reIsHostCtor","funcProto","reIsNative","RegExp","baseIsNative","getNative","object","getValue","WeakMap","objectCreate","create","baseCreate","proto","copyArray","source","nativeNow","Date","now","count","lastCalled","baseSetToString","setToString","stamp","remaining","arguments","apply","baseIsNaN","arrayIncludes","fromIndex","strictIndexOf","predicate","fromRight","baseFindIndex","baseIndexOf","reIsUint","isIndex","baseAssignValue","eq","assignValue","objValue","copyObject","props","customizer","isNew","newValue","nativeMax","Math","max","overRest","start","transform","args","otherArgs","thisArg","this","baseRest","isLength","isArrayLike","isIterateeCall","createAssigner","assigner","sources","guard","isPrototype","Ctor","baseIsArguments","propertyIsEnumerable","isArguments","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer","typedArrayTags","baseUnary","freeProcess","process","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","push","overArg","nativeKeys","baseKeys","baseKeysIn","nativeKeysIn","isProto","keysIn","reIsDeepProp","reIsPlainProp","isKey","nativeCreate","Hash","entries","clear","entry","set","assocIndexOf","__data__","size","has","get","data","splice","ListCache","pop","Map","getMapData","map","MapCache","hash","memoize","resolver","memoized","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","charCodeAt","match","number","quote","subString","stringToPath$1","castPath","toKey","baseGet","path","defaultValue","arrayPush","values","offset","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","depth","isStrict","flatten","flatRest","getPrototype","getPrototypeOf","objectCtorString","isPlainObject","baseSlice","end","castSlice","reHasUnicode","hasUnicode","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","stringToArray","unicodeToArray","split","asciiToArray","methodName","upperFirst$1","strSymbols","chr","trailing","deburrLetter","reLatin","reComboMark","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","words","pattern","hasUnicodeWord","unicodeWords","asciiWords","reApos","createCompounder","callback","accumulator","initAccum","arrayReduce","deburr","camelCase","word","toLowerCase","upperFirst","camelCase$1","nativeCeil","ceil","chunk","resIndex","Stack","pairs","LARGE_ARRAY_SIZE","allocUnsafe","cloneBuffer","buffer","isDeep","copy","arrayFilter","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","getSymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","DataView","Promise","Set","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","getTag$1","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","reFlags","symbolValueOf","cloneTypedArray","typedArray","byteOffset","initCloneByTag","regexp","dataView","cloneDataView","lastIndex","initCloneObject","nodeIsMap","isMap","nodeIsSet","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","initCloneArray","isFunc","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","stacked","forEach","subValue","add","arrayEach","cloneDeep","CLONE_DEEP_FLAG","SetCache","arraySome","cacheHas","equalArrays","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","message","convert","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsEqual","isStrictComparable","matchesStrictComparable","srcValue","baseMatches","matchData","getMatchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsMatch","baseHasIn","hasIn","hasFunc","hasPath","baseProperty","property","basePropertyDeep","baseIteratee","baseFor","iterable","baseForOwn","baseEach","eachFunc","collection","createBaseEach","now$2","nativeMin","min","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","assignMergeValue","isArrayLikeObject","safeGet","baseMergeDeep","srcIndex","mergeFunc","isCommon","isTyped","baseMerge","mergeWith","_mergeWith","arrayIncludesWith","comparator","baseDifference","includes","valuesLength","outer","computed","valuesIndex","difference$1","last","reRegExpChar","reHasRegExpChar","escapeRegExp","baseFilter","baseGt","isString","castArrayLikeObject","intersection","arrays","mapped","caches","maxLength","Infinity","baseIntersection","intersection$1","isBoolean","nodeIsDate","isDate","isDate$3","isEmpty","isEqual","isNumber","isNil","isNull","isUndefined","kebabCase","kebabCase$1","baseLt","baseExtremum","current","merge","merge$2","baseUnset","parent","customOmitClone","omit","paths","omit$1","baseSet","nested","basePickBy","nativeFloor","floor","baseRepeat","asciiSize","stringSize","unicodeSize","padStart","chars","strLength","charsLength","createPadding","pick","basePick","pick$1","range","step","baseRange","createRange","range$1","remove","indexes","previous","basePullAt","sum","baseSum","throttle","createSet","baseUniq","seenIndex","idCounter","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","r","l","t","u","a","f","next","done","iterableToArrayLimit","nonIterableRest","s","c","h","d","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","p","w","D","ms","Q","g","S","_","O","b","locale","$L","utc","$u","x","$x","$offset","parse","$d","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","extend","$i","isDayjs","en","Ls","default","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","ll","lll","llll","relativeTime","future","past","mm","hh","dd","MM","yy","require$$0","EAnimationType","defaultGlobalConfig","classPrefix","animation","include","exclude","attach","calendar","firstDayOfWeek","fillWithZero","controllerConfig","icon","autocomplete","dialog","closeOnEscKeydown","closeOnOverlayClick","confirmBtnTheme","info","warning","danger","success","popconfirm","table","expandIcon","sortIcon","filterIcon","treeExpandAndFoldIcon","hideSortTips","select","clearIcon","filterable","drawer","tree","folderIcon","datePicker","steps","checkIcon","errorIcon","closeIcon","form","requiredMark","empty","titleText","maintenance","fail","networkError","image","autoComplete","pagination","itemsPerPage","jumpTo","page","total","cascader","loadingText","placeholder","yearSelection","monthSelection","yearRadio","monthRadio","hideWeekend","showWeekend","today","thisMonth","week","cellMonth","transfer","title","timePicker","dayjsLocale","confirm","anteMeridiem","postMeridiem","content","loadingMoreText","filterInputPlaceholder","sortAscendingOperationText","sortCancelOperationText","sortDescendingOperationText","clearFilterResultButtonText","columnConfigButtonText","columnConfigTitleText","columnConfigDescriptionText","confirmText","cancelText","resetText","selectAllText","searchResultText","treeSelect","quarter","quarters","rangeSeparator","direction","dayAriaLabel","weekAbbreviation","yearAriaLabel","monthAriaLabel","selectTime","selectDate","nextYear","preYear","nextMonth","preMonth","preDecade","nextDecade","upload","sizeLimitMessage","cancelUploadText","triggerUploadText","fileInput","normal","reupload","continueUpload","delete","uploading","dragger","dragDropText","draggingText","clickAndDragText","file","fileNameText","fileSizeText","fileStatusText","fileOperationText","fileOperationDateText","progress","uploadingText","waitingText","failText","successText","errorMessage","url","required","whitespace","enum","idcard","telnumber","validator","boolean","colonText","list","alert","expandText","collapseText","anchor","copySuccessText","copyText","colorPicker","swatchColorTitle","recentColorTitle","clearConfirmText","singleColor","gradientColor","guide","finishButtonProps","theme","nextButtonProps","skipButtonProps","prevButtonProps","errorText","imageViewer","mirrorTipText","rotateTipText","originalSizeTipText","typography","copiedText","rate","rateText","descriptions","chat","stopBtnText","refreshTipText","copyTipText","likeTipText","dislikeTipText","copyCodeBtnText","copyCodeSuccessText","clearHistoryBtnText","copyTextSuccess","copyTextFail","confirmClearHistory","loadingEndText","uploadImageText","uploadAttachmentText","configProviderInjectKey","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","getCurrentInstance","inject","mergedGlobalConfig","globalConfig","assign","_len","_key","translated","provideConfig","defaultData","injectConfig","provide","usePrefixClass","concat","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","error","selected","active","checked","hidden","visible","expanded","indeterminate","setStyle","el","styles","style","_objectWithoutProperties","excluded","target","sourceKeys","indexOf","objectWithoutPropertiesLoose","sourceSymbolKeys","getValidAttrs","newObj","getBackgroundColor","color","unshift","to","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","DOM_STYLE_PROPS","GradientIcon","defineComponent","setup","circleRef","onMounted","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","window","_window$getComputedSt","getComputedStyle","fontSize","ua","isSafari","isIosWechat","transformOrigin","matched","endColor","_objectSpread","background","circleAdapter","classes","_createVNode","class","viewBox","version","width","height","xmlns","createVNode","performance","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","hr","upTime","uptime","moduleLoadTime","loadTime","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","handle","rafModule","fn","raf$2","raf_1","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","element","event","handler","attachEvent","off","removeEventListener","detachEvent","hasClass","cls","Error","classList","contains","className","addClass","curClass","j","clsName","removeClass","getAttach","node","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","getScroll","isLeft","method","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","fnc","nextScrollTop","pageXOffset","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","requestSubmit","HTMLFormElement","submitter","createElement","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getPropertyValue","isFixed","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","hasOwn","val","getPropertyValFromObj","getDefaultNode","defaultNode","isVNode","getChildren","childList","innerGetChildren","item","children","Fragment","getParams","params","handleSlots","instance","_instance$$slots$came","_instance$$slots","_instance$$slots$keba","_instance$$slots2","$slots","renderTNodeJSX","propsNode","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","slots","filter","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","vProps","vnode","isPropExplicitlySet","useTNodeDefault","useContent","name1","name2","toParams","node1","node2","useTeleport","innerTriggerNode","getElement","watch","props$1x","delay","fullscreen","Boolean","indicator","inheritColor","preventScrollThrough","showOverlay","text","zIndex","_Loading","inheritAttrs","_ref","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","timer","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","Teleport","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","component","loadingOptions","reactive","render","LoadingComponent","app","createApp","mount","parentRelativeClass","console","hide","unmount","produceLoading","_fullScreenLoadingIns","LoadingPlugin","install","config","globalProperties","$loading","INSTANCE_KEY","createInstance","_binding$modifiers","modifiers","mapKeys","vLoading","mounted","updated","_value$loading","oldValue","unmounted","_el$INSTANCE_KEY","withInstall","comp","alias","directive","componentPlugin","Loading","props$1w","ghost","href","loadingProps","shape","variant","onClick","expand","ripple","fade","useRipple","fixedRippleColor","keepAnimation","rippleContainer","keepRipple","keepExpand","_animationConfig$excl","_animationConfig$incl","animationConfig","keepFade","handleAddRipple","dom","rippleColor","_el$dataset","dataset","cssVariable","getRippleColor","button","elStyle","elBorder","borderWidth","border","offsetWidth","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","child","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","TButton","COMPONENT_NAME","_useCommonClassName","btnRef","isDisabled","mergeTheme","buttonClass","buttonContent","TLoading","iconOnly","buttonAttrs","tabindex","Button","_Button","renderFn","kebabAttrs","reduce","camelString","camel2Kebab","DEFAULT_CLASS_PREFIX","ConfigContext","COMMON_SIZE_CLASS_NAMES","fill","addRectangle","useSizeProps","_useSizeProps","finalCls","finalStyle","finalProps","_props$onClick","arrowTriangleDownFilled","arrowTriangleUpFilled","backtop","browseOff","clipPath","browse","caretRightSmall","checkCircleFilled","check","chevronDown","chevronLeftDouble","chevronLeft","chevronRightCircle","chevronRightDouble","chevronRight","chevronUp","closeCircleFilled","close","_delete","download","edit1","ellipsis","errorCircleFilled","fileCopy","fileExcel","filePdf","filePowerpoint","fileWord","helpCircleFilled","imageError","infoCircleFilled","minusRectangle","mirror","pageFirst","pageLast","rotation","search","setting","starFilled","timeFilled","video","zoomIn","zoomOut","loadDefaultIcons","Icon","props2","propsSize","sizeClassName","sizeStyle","finalUrl","classNames","querySelectorAll","svg","setAttribute","_props2$onClick","props$1u","hover","prefixIcon","suffixIcon","underline","_Link","emits","emit","linkClass","handleClick","linkContent","prefix","Link","props$1t","align","gutter","justify","calcSize","useListener","listener","onBeforeUnmount","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1s","flex","lg","md","order","pull","sm","span","xxl","_Col","rowContext","colClasses","ColSizeClasses","acc","currSize","sizeProp","sizeObject","getColClasses","colStyle","paddingObj","getPaddingStyle","parseFlex","rowGutter","paddingLeft","paddingRight","Row","Col","_Layout","hasSide","props$1r","_Header","props$1q","_Footer","props$1p","_Aside","props$1o","_Content","Aside","Layout","Header","Footer","Content","props$1n","dashed","layout","_Divider","dividerClassNames","Divider","props$1m","breakLine","separator","useChildComponentSlots","childComponentName","_slots","_slots$default","_item$type$name","endsWith","useChildSlots","_slots$default2","Comment","flat","useFlatChildrenSlots","getFlatChildren","some","vNode","sizeMap","defaultNeedPolyfill","_chromeMatch$","_safariMatch$","_fireFoxMatch$","chromeMatch","safariMatch","fireFoxMatch","getFlexGapPolyFill","_Space","forceFlexGapPolyfill","getChildSlots","needPolyfill","renderStyle","renderGap","_renderGap$split2","columnGap","gap","separatorContent","spaceClassNames","renderChildren","showSeparator","_Fragment","Space","props$1l","bordered","colon","column","contentStyle","itemLayout","items","labelStyle","tableLayout","descriptionsKey","ItemsType","renderCustomNode","renderVNodeTNode","_node$props","prop","slot","itemTypeIsProps","itemsType","DescriptionsRow","row","itemType","descriptionsProps","layoutIsHorizontal","itemLayoutIsHorizontal","label","labelClass","labelSpan","colspan","contentClass","contentSpan","_Descriptions","getChildByName","getRows","temp","reset","_item$props","tableClass","props$1k","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","gen","reject","_next","_throw","then","_asyncToGenerator","err","__esModule","_regeneratorRuntime","asyncIterator","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","prev","stop","rval","complete","finish","catch","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","props$1j","offsetBottom","offsetTop","onFixedChange","_Affix","_document","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","handleScroll","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","_context","unbindScroll","onActivated","onDeactivated","expose","Affix","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","execCommand","actions_cut","selectedText","fakeCopyAction","fakeElement","isRTL","getAttribute","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","_defineProperties","descriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getAttributeValue","attribute","Clipboard","_Emitter","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","trigger","_this","_classCallCheck","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","delegateTarget","currentTarget","clearSelection","focus","getSelection","removeAllRanges","selector","destroy","actions","support","queryCommandSupported","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","__unused_webpack_exports","closest","_delegate","useCapture","listenerFn","elements","bind","nodeList","is","listenNode","listenNodeList","listenSelector","isReadOnly","setSelectionRange","selection","selectNodeContents","addRange","E","ctx","once","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","definition","ANCHOR_SHARP_REGEXP","getOffsetTop","clientTop","props$1i","affixProps","bounds","cursor","targetOffset","onChange","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_ref2","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_ref3","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","immediate","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1g","closeBtn","onClose","onCloseBtnClick","onDurationEnd","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","ANIMATION_OPTION","fadeIn","placement","fadeInKeyframes","getFadeInKeyframes","setDomStyleAfterAnimation","animate","fadeOut","onFinish","fadeOutKeyframes","marginOffset","getFadeOutKeyframes","styleAfterFadeOut","onfinish","styleAfterAnimation","_Message","_useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","renderTNode","msgRef","status","_props2$onClose","_props2$onCloseBtnCli","clearTimer","setTimer","_props2$onClose2","_props2$onDurationEnd","renderIcon","question","onBeforeMount","onMouseenter","onMouseleave","defaultClose","DEFAULT_Z_INDEX","getUniqueId","MessageList","messageList","getOffset","msgStyles","addChild","msg","mg","removeAll","TMessage","getProps","instanceMap","MessageFunction","handleParams","attachDom","mgKey","wrapper","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","MessagePlugin","$message","funcName","props$1f","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","state","attributes","effect","initialStyles","strategy","arrow","reference","requires","getBasePlacement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetLeft","getLayoutRect","rootNode","getRootNode","isSameNode","host","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","arrow$1","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","passive","getOppositePlacement","getOppositeVariationPlacement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","clientLeft","getInnerBoundingClientRect","winScroll","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getHTMLElementScroll","visited","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","merged","orderModifiers","existing","_ref$options","cleanupFn","noopFn","update","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","sizeClassNames","statusClassNames","useDefaultValue","propsName","_getCurrentInstance","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useVModel","modelValue","isVM","isVMP","_len3","_key3","logSet","log","warn","msgContent","IMAGE_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","getCurrentDate","needTime","abridgeName","inputName","leftCount","rightCount","leftLength","rightLength","isCn","escape","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","trim","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","fileRaw","reader","FileReader","readAsDataURL","onload","_event$target","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","unobserve","disconnect","observe","addObserver","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","contentRect","_props2$forwardRef","newContentRect","newRect","oldRect","rect1","rect2","_children$","Container","triggerEl","mountContent","emitResize","unmountContent","onResize","onVnodeMounted","POPUP_ATTR_NAME","POPUP_PARENT_ATTR_NAME","getPopperTree","upwards","selectors","recurse","childId","parentKey","_Popup","expandAnimation","_process$env","showTimeout","hideTimeout","_toRefs","_useVModel2","setVisible","overlayEl","popperEl","containerRef","isOverlayHover","env","TEST","assertMouseLeave","onMouseLeave","offs","prefixCls","commonCls","_props2$delay","_delay2$","show","clean","getOverlayStyle","updateOverlayInnerStyle","updatePopper","parentElement","getTriggerType","destroyPopper","_popper","_containerRef$value","ev","clearAllTimeout","onDocumentMouseDown","_popperEl$value","_triggerEl$value","activedPopper","_props2$onOverlayClic","preventDefault","handlerFn","handleEvent","evt","_process$env2","code","getOverlay","getOverlayState","updateScrollTop","handleOnScroll","_props2$onScroll","_e$target","debounceOnScrollBottom","_props2$onScrollToBot","hidePopup","overlay","_withDirectives","withDirectives","mergeProps","visibility","_vShow","Popup","_AnchorTarget","_useConfig","FileCopyIcon","TdFileCopyIcon","toCopyText","div","clip","Message","iconClassName","Anchor","AnchorItem","AnchorTarget","props$1e","itemsAfterCollapse","itemsBeforeCollapse","maxItemWidth","maxItems","props$1d","maxWidth","router","props$1c","_Tooltip","popupRef","innerVisible","setInnerVisible","innerTooltipVisible","_useMouse","onMouseMove","clientX","clientY","useMouse","offsetX","onTipVisibleChange","tooltipOverlayClassName","offsetStyle","popupEl","_popupRef$value","_popupRef$value$updat","Tooltip","localTBreadcrumbOrigin","_BreadcrumbItem","isEllipsisItem","breadcrumbText","localTBreadcrumb","themeClassName","isCutOff","separatorClass","disableClass","maxLengthClass","textFlowClass","maxWithStyle","maxWith","proxy","onBeforeUpdate","bindEvent","open","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","valueIsZeroOrUndefined","_Breadcrumb","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","_useBreadcrumbOptions","getChildComponentSlots","breadcrumbOptions","_props$options","breadcrumbItems","currentIndex","option","itemsSlots","getSlotOrProp","slotName","_child$props","_children$slotName","slotContent","useBreadcrumbOptions","ellipsisItems","ellipsisContent","_useEllipsis","getBreadcrumbItems","shouldShowEllipsis","_maxItems$value","currentMaxItems","totalItems","itemsCollapseSum","getDisplayItems","beforeItems","afterItems","getEllipsisItems","sliceItems","isLast","useEllipsis","BreadcrumbItem","Breadcrumb","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1b","hideAfterItemClick","maxHeight","panelBottomContent","panelTopContent","_DropdownMenu","dropdownClass","dropdownMenuClass","scrollTopMap","itemHeight","menuRef","isOverMaxHeight","deep","getContent","renderOptions","_data$forEach","menu","idx","optionItem","onViewIdx","renderIdx","DropdownItem","TDivider","_data$onClick","getOptionsFromChildren","menuNode","_menuNode$","_menuNode$3","_menuNode$4","_menuNode$2","_menuNode$2$default","groupChildren","_item$children","_item$children$conten","_item$children2","_item$children2$prefi","_item$children3","_item$children3$prefi","_item$children4","_item$children4$defau","_groupChildren$filter","_groupChildren$filter2","slotPrefixIcon","contentCtx","_v$type","childrenCtx","_v$type2","itemProps","_item$type","_Dropdown","popupElem","isPopupVisible","manualCloseTimeout","_props2$popupProps","_delay$","handleMenuClick","_props2$popupProps2","_props2$popupProps2$o","_props2$popupProps3","_props2$popupProps3$o","handleVisibleChange","_props2$popupProps4","_props2$popupProps4$o","_props2$popupProps5","_props2$popupProps5$o","_renderTNodeJSX","_props2$popupProps6","_getChildComponentSlo","_getChildComponentSlo2","_instance$slots$dropd","menuSlot","dropdown","useDropdownOptions","popupParams","_options$value","DropdownMenu","Dropdown","props$1a","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","_createClass","getTreePaths","ans","getTreeSameParentNodes","DFS","VMenu","isMutex","expandValues","v2","pNode","activeValues","sameParentNodes","sameLevelSubmenuValues","_node$children","_Menu","onCollapsed","mode","menuClass","innerClasses","expandWidth","activeValue","setActiveValue","_useDefaultValue2","setExpand","_props2$onCollapsed","vMenu","isHead","tmp","props$19","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$18","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","removeBtnClick","onClickNav","navItemClass","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","traversalTabNavs","tabNavs","_step","_iterator","_createForOfIteratorHelper","itemNode","handleTarget","resultTarget","TTabNav","resizeObserver","panels","ChevronLeftIcon","TdChevronLeftIcon","AddIcon","TdAddIcon","navsContainerRef","navsWrapRef","leftOperationsRef","rightOperationsRef","toRightBtnRef","activeTabRef","maxScrollLeft","showAction","_props$placement","getRefs","navsContainer","navsWrap","leftOperations","rightOperations","toRightBtn","activeTab","isVerticalPlacement","canToLeft","canToRight","wrapTransformStyle","navsContainerStyle","iconBaseClass","leftIconClass","rightIconClass","addIconClass","navContainerClass","navScrollContainerClass","navsWrapClass","setOffset","calcValidOffset","navsContainerWidth","activeTabWidth","diffWidth","calcPrevOrNextOffset","handleWheel","deltaX","deltaY","handleActiveTabScroll","depElement","tabWidth","tabOffset","rightOperationsWidth","leftOperationsWidth","calculateOffset","getMaxScrollLeft","observer","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","$el","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","endIndex","setNavsWrap","useDragSort","renderNavsContent","_panel$children","nav","tabClick","Transition","appear","navContent","onWheel","_Tabs","tabValue","setTabValue","onTabAdd","_props2$onAdd","onTabChange","onTabRemove","_props2$onRemove","getSlotPanels","flatContent","ct","renderHeader","_props2$list","actionContent","panelsData","selfItem","tabNavProps","_props2$list2","TTabPanel","Tabs","TabPanel","props$17","FakeArrow","stroke","_Submenu","submenu","setSubPopup","closeParentPopup","menuItems","popupVisible","isCursorInPopup","isOpen","_expandValues$value","isNested","popupWrapperRef","subPopupRef","submenuRef","transitionClass","submenuClass","arrowClass","addMenuItem","related","relatedTarget","loopInPopup","handleMouseLeavePopup","passSubPopupRefToParent","handleMouseEnter","targetInPopup","handleMouseLeave","inPopup","toElement","handleEnterPopup","handleSubmenuItemClick","renderPopup","popupWrapper","realPopup","_menu$vMenu","_node","_node2","_node3","normalSubmenu","needRotate","events","silent","$options","_useCollapseAnimation","beforeEnter","oldPaddingTop","paddingTop","oldPaddingBottom","paddingBottom","enter","oldOverflow","afterEnter","beforeLeave","leave","afterLeave","onEnter","onAfterEnter","onBeforeLeave","onLeave","vShow","renderSubmenu","_HeadMenu","_ctx$slots$default2","_ctx$slots3","_ctx$slots$content2","_ctx$slots4","setExpanded","handleTabChange","handleClickSubMenuItem","handleSubmenuExpand","getChild","_activeMenuItem$onCli","activeMenuItem","innerRef","logoRef","operationRef","initVMenu","parentValue","_node$type","_node$type2","nodeValue","_props2$logo","_ctx$slots$logo","_ctx$slots5","_props2$operations","_ctx$slots$operations","_ctx$slots6","_ctx$slots$options","_ctx$slots7","_ctx$slots$default3","_ctx$slots8","_ctx$slots$content3","_ctx$slots9","_item$vnode$","props$16","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$15","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$14","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","readonly","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useCLASSNAMES","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","extra","help","successBorder","ValidateStatus","FormInjectionKey","FormItemInjectionKey","useLengthLimit","limitNumber","_params$value2","innerStatus","_limitNumber$value$sp2","tStatus","onValidateChange","_params$value$onValid","_params$value3","getValueByLimitNumber","inputValue","oldStr","_params$value","getOutputValue","useInput","isComposition","compositionValue","clearIconRef","innerClickElement","innerValue","setInnerValue","isHover","renderType","inputRef","_useLengthLimit","showClear","_inputRef$value","setInputElValue","inputEl","sV","inputValueChangeHandle","_innerValue$value","_inputRef$value4","oldVal","isNumberType","newVal","blur","_inputRef$value2","emitFocus","_props$onFocus","formatAndEmitBlur","_props$onBlur","_clearIconRef$value","tagName","_clearIconRef$value2","isClearIcon","handleBlur","onHandleCompositionend","_props$onCompositione","onHandleCompositionstart","_props$onCompositions","onRootClick","_inputRef$value3","emitPassword","toggleType","handleInput","checkInputType","inputType","emitClear","_props$onClear","onClearIconMousedown","useInputWidth","inputPreRef","observerTimer","updateInputWidth","_Input","showInput","keepWrapperWidth","BrowseIcon","TdBrowseIcon","BrowseOffIcon","TdBrowseOffIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","INPUT_WRAP_CLASS","INPUT_TIPS_CLASS","_useInput","inputHandle","inputEventHandler","mouseEvent","handleKeydown","_props$onEnter","_props$onKeydown","tmpValue","handleKeyUp","_props$onKeyup","handleKeypress","_props$onKeypress","onHandlePaste","_props$onPaste","clipData","clipboardData","pasteValue","getData","onHandleMousewheel","_props$onWheel","onInputMouseenter","_props$onMouseenter","onInputMouseleave","_props$onMouseleave","useInputEventHandler","tPlaceholder","_props2$placeholder","inputAttrs","_props2$autocomplete","unselectable","spellcheck","wrapClasses","inputEvents","_compositionValue$val","_inputValue$value","_compositionValue$val2","passwordIcon","limitNode","labelContent","suffixContent","passwordClass","onMousedown","tipsClasses","inputGroupProps","separate","_InputGroup","CLASS","Input","InputGroup","props$13","allowInputOverLimit","decimalPlaces","inputProps","largeNumber","fillZero","isInputNumber","num","eCount","negativeCount","dotCount","removeInvalidZero","decimal","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","minIndex","largePositiveNumberAdd","_num1$split2","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","compareLargeIntegerNumber","compareLargeDecimalNumber","formatENumber","_num$split2","_num$split4","integer","_num$split4$","initDecimal","zeroCount","multipleZero","n1","d2","isInfinity","isSafeNumber","MIN_SAFE_INTEGER","compareNumber","isSafeNumberCompare","isInfinityCompare","_formatENumber$split2","integer1","decimal1","_formatENumber$split4","integer2","decimal2","integer1IsNegative","integer2IsNegative","compareLargeNumber","largeIntegerNumberSubtract","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split2","_maxNumber$split2$","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","formatDecimal","places","toFixed","_num$toString$split2","largeNumberToFixed","_decimalPlaces$enable2","_decimalPlaces$enable","enableRound","decimalPlacesToFixedNum","_number$split2","_decimalNumber$match","leadZeroNum","leadNineNum","needAdded","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","getStepValue","op","lastValue","tStep","isFirstNegative","isSecondNegative","largeNumberAdd","largeNumberSubtract","putInRangeNumber","getMaxOrMinValidateResult","specialCode","formatUnCompleteNumber","isToFixed","useInputNumber","tValue","setTValue","userInput","tDisabled","isReadonly","isError","disabledReduce","canReduceNumber","disabledAdd","canAddNumber","reduceClasses","addClasses","getUserInput","inputStr","activeElement","fixedNumber","completeValue","_props$onValidate","handleStepValue","overLimit","handleReduce","handleAdd","_props$onBlur3","_props$onBlur2","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","tmpMatched","canInputNumber","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","TInput","InputNumber","props$12","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$11","excessTagsDisplayType","trimLeft","trimRight","tinycolor","opts","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","q","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","_splitcomplement","_analogous","results","slices","part","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","toUpperCase","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$10","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$$","defaultChecked","checkedProps","uncheckedProps","ARROW_DOWN_REG","ARROW_UP_REG","ARROW_LEFT_REG","ARROW_RIGHT_REG","ESCAPE_REG","SPACE_REG","ENTER_REG","SHIFT_REG","CLEAR_REG","ALL_REG","CHECKED_CODE_REG","_CheckTag","innerChecked","setInnerChecked","checkTagProps","keyboardEventListener","_e$key","onCheckboxFocus","onCheckboxBlur","Tag","props$_","_CheckTagGroup","checkTagGroupClasses","onCheckTagChange","getTagContent","CheckTag","CheckTagGroup","_TagInput","NAME_CLASS","CLEAR_CLASS","BREAK_LINE_CLASS","_useDefault2","useDefault","tInputValue","setTInputValue","_toRefs2","_useHover","addHover","cancelHover","useHover","isFocused","_useDragSorter","sortOnDraggable","onDragOverCheck","draggingIndex","dragStartData","isDropped","startInfo","nodeX","nodeWidth","mouseX","onDragOver","record","targetClassNameRegExp","_target$getBoundingCl","targetNodeMiddleX","draggingNodeLeft","draggingNodeRight","onDragStart","_target$getBoundingCl2","onDrop","onDragEnd","getDragProps","onDragstart","onDragover","onDragend","dragging","useDragSorter","_useTagScroll","tagInputRef","scrollDistance","scrollElement","mouseEnterTimer","isScrollable","updateScrollElement","inputElement","updateScrollDistance","_scrollElement$value","behavior","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","_tagValue","setTagValue","tagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","_tagValue$value","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","_props$valueDisplayOp2","valueDisplayOptions","usePlaceholder","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp3","_props$valueDisplayOp4","renderPlaceholder","_props$valueDisplayOp5","_props$valueDisplayOp6","singleInputValue","renderSelectSingle","_context$attrs","iKeys","getInputValue","prefixContent","_context$slots","inputClassProps","overlayState","_popupRef$value2","_SelectInput","BASE_CLASS_BORDERLESS","BASE_CLASS_MULTIPLE","BASE_CLASS_POPUP_VISIBLE","BASE_CLASS_EMPTY","selectInputRef","_useOverlayInnerStyle","_useSingle","_useMultiple","isMultipleFocus","tags","onTagInputChange","_props$onTagChange","tagInputValue","multipleInputValue","renderSelectMultiple","useMultiple","isFocus","_popupVisible$value","addKeyboardEventListener","_props2$onPopupVisibl","_selectInputRef$value","_ctx$e","_tagInputRef$value$fo","tabIndex","_popupVisible$value2","visibleProps","mainContent","tipsNode","SelectInput","props$Z","checkAll","props$Y","lazyLoad","CheckboxGroupInjectionKey","marginBottom","IntersectionObserver","io","isIntersecting","rootMargin","_Checkbox","needRipple","stopLabelTrigger","labelRef","checkboxGroupData","tName","tChecked","_checkboxGroupData$va","isCheckAll","checkedValues","maxExceeded","tIndeterminate","labelClasses","handleChange","handleCheckboxChange","onCheckedChange","handleLabelClick","_useCheckboxLazyLoad","ioObserver","showCheckbox","handleLazyLoad","useCheckboxLazyLoad","_useKeyboardEvent","useKeyboardEvent","props$X","_Group$1","optionList","intersectionLen","optionItems","onCheckAllChange","getAllCheckboxValue","currentValue","_props2$options","_optionList$value","Checkbox","nodes","getOptionListBySlots","role","CheckboxGroup","_Group","getSingleContent","optionsMap","getNewMultipleValue","optionValue","valueIndex","isCheck","selectInjectKey","_Option","createAble","rowIndex","trs","scrollType","isVirtual","bufferSize","selectProvider","isReachMax","selectValue","isSelected","selectName","liRef","isIndeterminate","hoverIndex","labelText","handleCheckboxClick","_selectProvider$value","_selectProvider$value2","handleCreate","handleValueChange","selectedOptions","getSelectedOptions","handlePopupVisibleChange","emitBlur","_selectProvider$value3","currentOption","optionChild","props$W","_OptionGroup","_props2$label","props$V","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","threshold","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","visibleData","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","translateY","firstRow","updateVisibleData","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","_container$value","refreshContainer","ob","intersectionRatio","_container$value2","handleRowMounted","useVirtualScroll","popupContentRef","isFixedRowHeight","rowHeight","_ref$trs","_ref$visibleData","_ref$handleScroll","handleVirtualScroll","_ref$scrollHeight","_ref$translateY","_ref$handleRowMounted","lastScrollY","onInnerVirtualScroll","_props$popupContentRe","_props$popupContentRe2","cursorStyle","panelStyle","SelectPanel","TdSelectProps","renderDefaultTNode","tSelect","showCreateOption","displayOptions","_usePanelVirtualScrol","renderOptionsContent","OptionGroup","group","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","_useSelectOptions","optionsCache","dynamicIndex","innerOptions","getFormatOption","_keys$value","optionsSlots","groupSlots","_group$props","groupOption","_step2","_iterator2","_step3","_iterator3","optionsList","getOptionsList","_step4","_iterator4","filterMethods","_option$label","_option$label$toLower","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","displayText","resLabel","getMultipleContent","valueDisplayParams","_val$slice","_optionsMap$value$get","removeTag","displayValue","isFilterable","isRemoteSearch","_props2$onRemove2","_ref4$trigger","_props2$onCreate","optionalList","lockedValues","formattedOrgValue","_useKeyboardControl","filteredOptions","virtualFilteredOptions","_selectPanelRef$value","handleKeyDown","_optionsList$value$ne","_optionsList$value$ne2","optionsListLength","newIndex","finalOptions","_finalOptions$hoverIn","useKeyboardControl","SelectProvider","handlerInputChange","handleOptionEmitBlur","checkValueInvalid","handleSearch","_props2$onSearch","_selectPanelRef$value2","handlerPopupVisibleChange","handlerPopupScrollToBottom","_ref6","_popupProps$onScroll","_popupProps$onScrollT","newCache","addCache","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref7","restPopupProps","onkeydown","_ref8","_ref9","_props2$onEnter","_ref0","_props2$onBlur2","_ref1","picker","Select","props$U","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$T","defaultCurrent","foldedMaxPageBtn","maxPageBtn","pageEllipsisMode","pageSize","defaultPageSize","pageSizeOptions","selectProps","showFirstAndLastPageBtn","showJumper","showPageNumber","showPageSize","showPreviousAndNextBtn","totalContent","onCurrentChange","onPageSizeChange","_Pagination","innerCurrent","setInnerCurrent","innerPageSize","setInnerPageSize","PageFirstIcon","TdPageFirstIcon","PageLastIcon","TdPageLastIcon","ChevronLeftDoubleIcon","TdChevronLeftDoubleIcon","ChevronRightDoubleIcon","TdChevronRightDoubleIcon","_usePaginationClasses","pageCount","paginationClass","totalClass","sizerClass","preBtnClass","nextBtnClass","btnWrapClass","btnMoreClass","jumperClass","jumperInputClass","simpleClass","getButtonClass","usePaginationClasses","CLASS_MAP","_useMoreAction","prevMore","nextMore","curPageLeftCount","curPageRightCount","isPrevMoreShow","isNextMoreShow","useMoreAction","jumpIndex","isFolded","sizeOptions","isMidEllipsis","pages","foldedStart","foldedEnd","toPage","pageIndex","pageInfo","handlePageChange","prevPage","nextPage","prevMorePage","nextMorePage","onSelectorChange","isIndexChange","_props2$onChange2","onJumperChange","trunc","Jumper","TInputAdornment","$event","onMouseover","onMouseout","props$S","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","_props2$onChange3","Pagination","PaginationMini","props$R","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$Q","onHover","stickyItemProps","popup","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$P","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$O","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","optionClasses","tOptions","onOptionClick","liNode","onKeyInnerPress","_tOptions$value$newIn","findIndex","_tOptions$value$_newI","addKeyboardListener","removeKeyboardListener","labelNode","_slots$option","HighlightOption","_AutoComplete","optionListRef","triggerWidth","popupClasses","popupInnerClasses","innerInputProps","_optionListRef$value","onInnerCompositionend","_props2$onComposition","onInnerCompositionstart","_props2$onComposition2","onInnerSelect","_props2$onSelect","listContent","topContent","bottomContent","panelContent","AutoComplete","getFakeArrowIconClass","cascaderContext","getNodeStatusClass","checkStrictly","expandedActive","isLeaf","treeStore","showAllLevels","getNodes","getPath","at","getPanels","treeNodes","getFullPathLabel","getTreeValue","treeValue","isEmptyValues","handleRemoveTagEffect","setValue","setChecked","isChecked","getNode","getModel","Item","getCascaderItemClass","getCascaderItemIconClass","RenderLabelInner","inputVal","texts","doms","RenderLabelContent","RenderCheckBox","checkProps","isOptionChildAndMultiple","props$M","load","valueMode","Panel","CascaderProps","renderTNodeJSXDefault","handleExpand","propsTrigger","setTreeNodes","setExpend","refreshNodes","replaceExpanded","resetChecked","expendClickEffect","renderItem","getExpanded","isSelectAll","valueChangeEffect","renderList","isFilter","segment","_props$cascaderContex","nodeKey","TreeNodeModel","actived","getLevel","getIndex","isFirst","newData","insertAfter","_node$parent","getParents","getRoot","getSiblings","childrenModel","walk","shift","pnode","syncAttrs","cleanData","attr","dataAttrValue","settableStatus","activable","checkable","settableProps","syncableProps","privateKey","TreeNode","propChildren","propLabel","propDisabled","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","expandAll","uniqueId","nodeMap","privateMap","initActived","initExpanded","loadChildren","initChecked","updateChecked","reflow","checkedMap","expandLevel","expandedMap","isActivable","activedMap","appendTo","updateRelated","_this3","targetPosNode","siblings","prevLength","prevIndex","sibling","insert","updateParents","filterMap","_loadChildren","_this4","setDisabled","parents","_this$tree","hasFilter","nodeModel","_this$tree2","allowFoldNodeOnFilter","expandVisible","disableCheck","isDisabledState","_tree$config","isCheckable","childChecked","lockState","isExpanded","isVisible","updateChildren","directly","shouldExpandNodes","expandParent","_tree$config2","isExpandMutex","snode","afterExpanded","setActived","isActived","isAction","getActived","prevKeys","activeMultiple","hasEnableUnCheckedChild","expectState","getChecked","spreadChildrenChecked","spreadParentChecked","getRelatedNodes","isRest","_this5","spreadChildren","_this6","spreadParents","TreeStore","onLoad","onReflow","onUpdate","updatedMap","prevFilter","updateTick","shouldReflow","emitter","all","hasChanged","refreshState","getParent","conf","para","spec","parseNodeData","pm","lockFilterPathNodes","stateId","updatedNodes","nodePrivateKey","resetActived","added","difference","removed","setExpandedDirectly","updateExpanded","withParents","_this$config","childNode","relatedNodes","relatedNode","allNodes","lock","currentFilter","useCascaderContext","setPopupVisible","_useContext","statusContext","scopeVal","expend","setInputVal","useContext","updatedTreeNodes","_cascaderContext$valu","treeNodesEffect","updateExpend","_cascaderContext$valu2","tn","expandedArr","treeStoreExpendEffect","replaceChecked","_props$keys","reload","store","JSON","stringify","treeProps","setConfig","_cascaderContext$valu3","isValueInvalid","getCascaderValue","getCascaderItems","_statusContext$treeSt","_Cascader","_useCascaderContext","_node2$","inputPlaceholder","arrayValue","renderValueDisplay","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr0","_props2$selectInputPr1","_props2$selectInputPr10","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","dayjs","TIME_FORMAT","extractTimeFormat","parseToDayjs","timeOfDay","dateText","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValidDate","formatDate","newDate","targetFormat","_ref3$dayjsLocale","autoSwap","dayjsDateList","da","formatRange","dayJsDate","formatSingle","calcFormatTime","timeFormat","timeArr","timeFormatArr","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","useSingleValue","_value$value","_value$value2","_value$value3","_value$value4","formatRef","cacheValue","_extends","isBetween","weeks","weekYear","longDateFormat","localeData","isoWeekYear","isoWeek","offsetName","zone","A","afternoon","milliseconds","SS","SSS","ss","H","HH","DD","Do","MMM","MMMM","Y","YY","YYYY","Z","ZZ","regex","parser","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","getDaysInMonth","isSameYear","date1","date2","isSameQuarter","isSameMonth","isSameWeek","isSameDate","compareAsc","d1","outOfRanges","getToday","subtractMonth","addMonth","getWeeks","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","getFirstDayOfMonth","appendDay","getLastDayOfMonth","maxDays","daysArr","currentDay","firstDayOfMonth","lastDayOfMonth","dayjsObj","setDate","additional","dataList","flagActive","_objectDestructuringEmpty","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","_item","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","_value$some","extractTimeObj","matchedMeridiem","_matchedTimeStr$0$spl2","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","weekOfYear","quarterOfYear","advancedFormat","dayJsIsBetween","datePickerProps","needConfirm","presets","presetsPlacement","timePickerProps","onConfirm","onPick","onPresetClick","TDateHeader","onMonthChange","onYearChange","onJumperClick","yearOptions","initOptions","showMonthPicker","nearestYear","_yearOptions$value$fi","monthOptions","extraYear","maxYear","loadMoreYear","labelMap","handlePanelTopClick","handlePanelBottomClick","_e$stopPropagation","_e$stopPropagation2","_props$onMonthChange","TSelect","_props$onYearChange","createTextVNode","TDatePickerCell","Dayjs","cellClass","_extractTimeObj","nextHours","setHours","setMinutes","setSeconds","setMilliseconds","_props$onMouseEnter","_extractTimeObj2","TDateTable","onCellClick","onCellMouseEnter","onCellMouseLeave","weekArr","wi","showThead","activeRowCss","targetValue","_value$map3","targetDayjs","isSomeYearWeek","_startObj$locale","_startObj$locale$week","_endObj$locale","_endObj$locale$week","_value$map2","startObj","endObj","startYear","startWeek","endYear","endWeek","targetObj","targetYear","targetWeek","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$L","disableTime","hideDisabledTime","onInput","onOpen","BooleanType","validateInputValue","formatInputValue","hour","minute","second","milliSecond","panelOffset","SinglePanel","panelColProps","cols","Props","localeMeridiems","triggerScroll","resetTriggerScroll","isShowPanel","bodyRef","maskRef","colsRef","dayjsValue","isStepsSet","updateTimeScrollPos","renderCol","getPickerCols","getItemHeight","_maskRef$value","maskDom","timeItemCanUsed","colIdx","_props$disableTime","millisecond","partial","getColList","colStep","colList","_props$disableTime2","getScrollDistance","itemIdx","_getItemHeight","timeItemTotalHeight","_colsRef$idx","_props$onChange","formattedVal","_getItemHeight2","availableArr","calcVal","closestLookup","_dayjsValue$value$col","_dayjsValue$value","currentHour","_scrollCtrl$scrollTo","scrollCtrl","scrollToTime","_scrollCtrl$scrollTo2","isAutoScroll","_dayjsValue$value$col2","_dayjsValue$value2","_getColList","isCurrent","colItem","_dayjsValue$value$col3","_dayjsValue$value3","colVal","_cols$value$map","_cols$value","_cols$value$map2","_cols$value2","_props$onChange2","_props$onChange3","handleTimeItemClick","_TimePickerPanel","panelProps","activeIndex","isFooterDisplay","handleConfirmClick","panelRef","showNowTimeBtn","formattedValue","panelColUpdate","renderFooter","presetValue","presetVal","_props$handleConfirmC","TPanelContent","tableData","onTimePickerChange","defaultTimeValue","_props$onJumperClick","_props$onCellClick","_props$onCellMouseEnt","TTimePickerPanel","_isSlot","TDateFooter","selectedValue","onConfirmClick","presetsClass","footerClass","_props$onPresetClick","preset","_props$onConfirmClick","TExtraContent","showPanelFooter","useDisableDate","availableMode","isEnabled","before","after","compareMin","compareMax","isEnabledDate","useRangeValue","isFirstValueSelected","PARTIAL_MAP","first","useTableData","_props$firstDayOfWeek","monthLocal","quarterLocal","_ref6$disableDate","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getQuarters","_params$disableDate","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","getMonths","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","yearArr","getYears","TSinglePanel","onPanelClick","_getDefaultFormat","disableDateOptions","panelContentProps","extraProps","_props$onPanelClick","_DatePicker","_useSingleValue","isHoverCell","defaultInputProps","newMonth","newYear","newTime","_props$popupProps$ove","_props$popupProps","_props$popupProps2","_props$popupProps3","_props$popupProps3$on","_props$popupProps4","_props$popupProps4$on","CalendarIcon","TdCalendarIcon","_props2$onPick","processDate","onTagRemoveClick","removeDate","onTagClearClick","monthCount","_props2$onPick2","nextDate","_props2$onConfirm","nextValue","_formatRef$value","dateValue","covertToDate","_inputRef$value$focus","datePickerPanelProps","onTimeChange","_DatePickerPanel","triggerMap","_props$onTimeChange","_props$onConfirm","_props$onYearChange2","_props$onMonthChange2","panelClick","dateRangePickerProps","panelPreselection","rangeInputProps","props$K","calcArrayValue","_RangeInput","_innerValue$value2","isShowClearIcon","inputRefs","firstInputRef","secondInputRef","handleClear","handleEnter","rangeValue","handleFocus","_props2$onMouseenter","_props2$onMouseleave","firstInputElement","secondInputElement","_inputRefs$value","_ref3$position","_inputRefs$value2","_ref4$position","_inputRefs$value3","_ref5$position","_innerValue$value3","_innerValue$value8","prefixIconContent","suffixIconContent","RangeInputContent","_innerValue$value4","_innerValue$value5","_innerValue$value6","_ref10","_innerValue$value7","_ref12","_props2$onClick2","_ref13","_innerValue$value9","_ref14","_innerValue$value0","_ref15","_innerValue$value1","_ref16","_innerValue$value10","props$J","_RangeInputPopup","RangeInput","RangeInputPopup","TRangePanel","hoverValue","hidePreselection","startTableData","endTableData","dateCorrection","partialIndex","onlyYearSelect","_DateRangePicker","_useRange","isMountedRef","_useRangeValue","useRange","notValidIndex","nextIndex","correctedDate","nextInputValue","changedInputValue","currentDate","nextTime","_props2$onPresetClick","nextVal","_year$value","_year$value2","_year$value3","_year$value4","_initYearMonthTime","defaultYear","defaultMonth","TRangeInputPopup","dateRangePickerPanelProps","_DateRangePickerPanel","DatePicker","DatePickerPanel","DateRangePicker","DateRangePickerPanel","defaults","_merge","default_date_options","isValidFormat","strictMode","formatDelimiter","delimiters","delimiter","dateDelimiter","dateAndFormat","zippedArr","zip","dateObj","_n","F","_step$value","_iterableToArrayLimit","dateWord","formatWord","fullYear","startsWith","parsedYear","getUTCDate","isFinite","invalidType","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","parts","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","require$$1","isIP","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","defaultMaxEmailLength","domain","lower_domain","host_blacklist","_checkHost","host_whitelist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","blacklisted_chars","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","require$$2","require$$3","require$$4","require$$5","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","allow_query_components","protocol","auth","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","wrapped_ipv6","require_port","VALIDATE_MAP","email","isEmail","strs","validate","validateOneRule","_validateOneRule","rule","validateResult","vOptions","vValidateFun","validateRule","_x3","_x4","_validate","rules","props$I","for","labelAlign","labelWidth","showErrorMessage","statusIcon","getFormItemClassName","_FormItem","CLASS_NAMES","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","requiredMarkPosition","_form$requiredMarkPos","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","resetHandler","resetField","resetType","_args","lodashSet","emptyValue","lodashGet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","validateOnly","_callee4","_yield$analysisValida2","_context4","setValidateMessage","validateMessage","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","props$H","formControlledComponents","preventSubmitDefault","scrollToFirstError","submitWithWarningMessage","onReset","onSubmit","_Form","formRef","formClass","FORM_ITEM_CLASS_PREFIX","getFirstError","firstKey","tmpClassName","resArr","getElementsByClassName","scrollIntoView","needValidate","fields","formatValidateResult","validateResultList","_props2$onValidate","showErrorMessage2","firstError","_ref6$trigger","submitParams","submit","resetParams","clearValidate","_props2$onSubmit","_props2$onReset","_resetParams$value","_resetParams$value2","Form","FormItem","props$G","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$F","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","MutationObserver","getCurrentScope","onScopeDispose","radioGroupRef","updateInnerValue","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","mutation","characterData","subtree","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$E","inputNumberProps","marks","showStep","tooltipProps","onChangeEnd","getStopStyle","formatSliderValue","initialProps","useSliderTooltip","tooltipConfig","tooltipRef","showTooltip","normalizeProps","validProps","_tooltipConfig$value","vertical","formatLabel","toggleTooltip","toState","sliderPropsInjectKey","_SliderButton","_useSliderTooltip","parentProps","buttonRef","slideButtonProps","isClick","startX","startY","startPos","newPos","rangeDiff","currentPos","wrapperStyle","toggleDragging","setPosition","pos","perStepLen","precision","_tooltipRef$value$upd","_tooltipRef$value","onDragging","resetSize","parentSliderSize","sliderSize","touch","touches","onButtonDown","onKeyDown","stepLength","onNativeKeyDown","onTouchstart","TTooltip","TSliderMark","point","onClickMarkPoint","changeValue","_props$onClickMarkPoi","hiddenTextarea","_Slider","sliderValue","setSliderValue","sliderContainerRef","sliderRef","firstButtonRef","secondButtonRef","firstValue","secondValue","containerClass","sliderClass","sliderRailClass","runwayStyle","barStart","minValue","currentDiff","maxValue","barSize","stepCount","stepWidth","precisions","decimalArr","setValues","maxLimit","minLimit","preValue","emitChange","fixValue","isAlreadyMount","valuetext","percent","getFixValue","onSliderClick","_props2$onChangeEnd","sliderOffsetLeft","_props2$onChangeEnd2","_newVal","newStates","prevStates","markList","markConfig","prefixName","renderMask","markProps","legalMarks","marksList","onChangeFn","renderInputNumber","sliderInputState","_config$value$step$to","initialState","_inputProps$inputNumb","inputTheme","sliderNumberClass","changeFn","_config$value","_config$value$onChang","useSliderInput","TSliderButton","onMouseup","_props2$onChangeEnd3","_props2$onChangeEnd4","firstInputVal","secondInputVal","Slider","SliderButton","props$D","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","props$C","autosize","calcTextareaHeight","targetElement","_hiddenTextarea","minRows","maxRows","_calculateNodeSize","paddingSize","borderSize","boxSizing","sizingStyle","calculateNodeSize","isBorderbox","singleRowHeight","calcHeight","rows","rowsHeight","minHeight","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","startIndex","paginationProps","handleDataChange","dragoverIndex","dragoverPos","currentDraggingIndex","currentDragoverIndex","sourceItem","targetItem","sourceIndex","currentElement","elemHeight","dragY","insertAreaHeight","onDragLeave","isAllChecked","allValue","totalCount","lastPage","handlePaginationChange","_props2$onPageChange","handleCheckedChange","_props2$onCheckedChan","handleCheckedAllChange","query","_slot4","_slot2","isDraggable","TCheckboxGroup","_slot3","renderEmpty","TCheckbox","titleNode","props$A","operation","showCheckAll","targetDraggable","targetSort","TransferOperations","leftDisabled","rightDisabled","moveToRight","moveToLeft","getIconRight","getIconLeft","getIcon","renderButton","_props2$operation","_Transfer","valueList","leftButtonDisabled","rightButtonDisabled","transferData","sourceList","targetList","hasFooter","showPagination","showSearch","footerOption","emptyOption","searchOption","disabledOption","titleOption","paginationOption","sourceChecked","targetChecked","transferTo","toDirection","newTargetValue","oldTargetValue","selfCheckedValue","movedValue","transferToRight","transferToLeft","renderTransferList","scopedSlots","bottomDistance","onMoveToRight","onMoveToLeft","Transfer","_TimePicker","TimeIcon","TdTimeIcon","inputClasses","handleShowPopup","_props2$onOpen","handleInputChange","handleInputBlur","handleClickConfirm","handlePanelChange","TSelectInput","TimePickerPanel","props$z","_TimeRangePicker","currentPanelIdx","handleTimeChange","_currentValue$value$","_currentValue$value$2","handleOnPick","_currentValue$value$3","_currentValue$value$4","_props2$onInput","autoSwapTime","_currentValue$value","endTime","startDayjs","endDayjs","pickValue","pickedRangeValue","_currentValue$value$5","_currentValue$value$6","TimePicker","TimeRangePicker","_params$value$data","_params$value$scroll","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","fixedRows","isVirtualScroll","getVisibleRangeConfig","_container$value$scro","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","_getVisibleRangeConfi","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","_ref3$top","preventResizeRefresh","addIndexToData","initHeightList","rowData","_rowData$ref$value","trHeight","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","TreeItemDefinition","onDrag","getCreateElement","Vue","refsProps","defaultPropName","eventPropName","tdUseVModel","tdUseDefaultValue","DragPosition","useDraggable","treeItemRef","dragStates","isDragOver","isDragging","dropPosition","setDragStatus","dragEvent","_drag$handleDragStart","_drag$handleDragEnd","_drag$handleDragOver","_drag$handleDragLeave","_drag$handleDrop","drag","treeScope","handleDragStart","throttleUpdateDropPosition","handleDragEnd","handleDragOver","handleDragLeave","handleDrop","_rootNode$getBounding","offsetY","pageY","gapHeight","updateDropPosition","_evt$dataTransfer","dataTransfer","setData","emitEvent","evtName","apiName","getParentsToRoot","getMark","getParentMarks","getTNode","_conf$node","tnode","isTreeNodeValue","useTreeAction","treeState","_state$vmValue","vmValue","_state$vmActived","vmActived","tActived","setTActived","_state$vmExpanded","vmExpanded","tExpanded","setTExpanded","evtCtx","pathMatchClass","replaceActived","toggleExpanded","toggleActived","toggleChecked","useItemEvents","clicked","evtContext","Event","_srcTarget$className","_srcTarget$className$","_treeScope$treeProps","expandOnClickNode","srcTarget","isBranchTrigger","useRenderIcon","handleMousedown","CaretRightSmallIcon","isDefaultIcon","iconNode","TdCaretRightSmallIcon","ignore","onmousedown","useRenderLabel","shouldStopLabelTrigger","isNormalBranchNode","isLazyLoadChildBranchNode","checkboxDisabled","itemCheckProps","_labelNode","TCheckBox","inner","useTreeItem","virtualConfig","treeContentRef","scrollProps","_useRenderLine","renderLine","line","iconVisible","lineNode","lineClasses","shadowStyles","useRenderLine","_useRenderOperations","renderOperations","opNode","useRenderOperations","_useDraggable","_useLazyLoad","childRef","tRowHeight","isInit","hasLazyLoadHolder","cb","useLazyLoad","tryNotifyVirtualScrollRowUpdate","itemNodes","renderItemNode","levelStyle","getItemStyles","getItemClassList","onDragleave","treeItemProps","itemKey","TreeItem","_useItemState","refProps","useItemState","useTreeNodes","scope","_useTreeEvents","_useTreeAction","evtState","shouldExpand","shouldActive","markName","markValue","useTreeEvents","nodesEmpty","cacheMap","refreshVisibleNodes","hasVisibleNode","refreshVirtualNodes","renderTreeNodes","treeNodeViews","nodeUniqueId","useTreeScroll","isScrolling","virtualScrollParams","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$y","defaultActived","allowDrop","onActive","_TdTree","_useTreeState","setStore","useTreeState","_useTreeStore","updateStoreConfig","storeProps","filterChanged","prevExpanded","expandFilterPath","pathValues","checkFilterExpand","newFilter","previousFilter","handleLoad","nVal","previousVal","rebuild","useTreeStore","dragNode","_props$allowDrop","dropNode","Inside","Before","useDragHandle","_useTreeScroll","_useTreeNodes","_useTreeStyles","treeClasses","treeContentStyles","scrollStyles","cursorStyles","translate","useTreeStyles","setItem","setupMethod","getItem","getItems","appendNodes","getNodeIndex","pathNodes","getTreeData","itemData","parentData","_allNodes$value$filte","_refProps$scroll$valu","_refProps$scroll$valu2","cname","emptyNode","emptyContent","treeNodeList","$props","TransitionGroup","topValue","placeholderStyles","placeholderEl","Tree","tdWithInstall","props$x","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","_treeSelectValue$valu","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$w","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","CMYK","CSS","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","cmyk","RGBA","HSLA","HSVA","HEX8","finalFormat","getFormatsColorMap","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","getColorFormatMap","getColorFormatInputs","configs","useBaseClassName","baseClassName","PanelHeader","togglePopup","onModeChange","modeValue","handleModeChange","_props2$colorModes","DELETE_KEYS","LinearGradient","refSlider","sliderRect","isMoved","payload","addUsedColor","handleDegreeChange","handleSelectedIdChange","handleColorsChange","isEnded","handleMove","percentLeft","updateActiveThumbLeft","handleEnd","handleKeyup","toLocaleLowerCase","handleThumbBarClick","newPoint","_props$color","thumbBackground","handleStart","TInputNumber","SaturationPanel","refPanel","refThumb","dragInstance","panelRect","saturation","handleDrag","_getSaturationAndValu","getSaturationAndValueByCoordinate","panelBackground","ColorSlider","railStyle","paddingStyle","HueSlider","AlphaSlider","isDragEnd","alpha","FormatInputs","lastModelValue","updateModelValue","throttleUpdate","_props2$color","object2color","FormatPanel","formatModel","newProps","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","innerRecentColors","setInnerRecentColors","getModeByColor","defaultEmptyColor","initColorFormat","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","getFormattedColor","newMode","isGradientMode","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","onlySupportGradient","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","onTriggerClear","_props$onTriggerClear","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$v","alt","hideOnLoadFailed","imageProps","onError","props$u","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","triggerHandleLoad","handleLoadImage","imageStrSrc","replaceImageSrc","tmpUrl","hasError","isLoaded","shouldLoad","_props2$onLoad","loadEvent","handleError","_props2$onError","hasMouseEvent","imageClasses","shouldShowOverlay","handleToggleOverlay","renderImage","renderTNodDefault","ImageIcon","Image","_Avatar","avatarGroup","avatar","avatarChild","isImgExist","scale","sizeValue","isCustomSize","customAvatarSize","customImageSize","customCharacterSize","handleImgLoadError","setScaleParams","$avatar","$avatarChild","avatarWidth","avatarChildWidth","isIconOnly","avatarClass","props$t","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$s","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$r","cell","cellAppend","head","isShowWeekendDefault","preventCellContextmenu","onCellDoubleClick","onCellRightClick","onControllerChange","MIN_YEAR","DAY_CN_MAP","dt","addDate","days","createMonthCellsData","curSelectedYear","curSelectedMonth","realFirstDayOfWeek","curDate","curDateList","begin","beginDateColIndex","getCellColIndex","createCellData","belongTo","weekOrder","formattedDate","filterDate","formattedFilterDate","isShowWeekend","judgeIsCurrent","nextMonthCellNum","createDefaultCurDate","useState","curSelectedMode","controlSize","setCurrentDate","toToday","checkDayVisible","re","getDefaultControllerConfigData","radioGroupProps","weekend","showWeekendButtonProps","hideWeekendButtonProps","currentDayButtonProps","currentMonthButtonProps","useColHeaders","weekDisplayText","getWeekDisplay","weekNum","numStr","weekText","cellColHeaders","clickTypeEmitEventMap","dblclick","contextmenu","CalendarCellItem","prefixClass","tableBodyCell","tableBodyCell4Now","tableBodyCellDisplay","tableBodyCellCsontent","_props$fillWithZero","dateNum","allowSlot","cellCls","_props$item","isNow","clickCell","emitName","onDblclick","onContextmenu","_Calendar","_useState","control","controlSection","controlSectionCell","controlTag","tableHead","tableHeadRow","tableHeadCell","tableBody","tableBodyRow","useCalendarClass","controller","dayJsFilterDate","configData","_props$controllerConf","checkControllerVisible","checkControllerDisabled","emitControllerChange","userController","rangeFromTo","_props2$range","v1","checkMonthAndYearSelectedDisabled","beginYear","dateSelect","yearSelectOptionList","isYearSelectVisible","isYearSelectDisabled","monthSelectOptionList","_rangeFromTo$value","_rangeFromTo$value2","beginMon","adjustMonth","isMonthSelectVisible","isMonthSelectDisabled","modeSelect","weekendBtn","vBind","currentBtn","cellClickEmit","eventPropsName","cellData","doubleClickCell","rightClickCell","monthCellsData","utils","yearCellsData","monthsArr","rowCount","TRadioGroup","TCheckTag","weekIndex","itemIndex","onRightclick","cellIndex","Calendar","props$q","cover","description","header","headerBordered","hoverShadow","shadow","subtitle","_Card","baseCls","defaultClass","headerCls","headerWrapperCls","headerAvatarCls","headerTitleCls","headerSubTitleCls","headerDescriptionCls","actionsCls","bodyCls","coverCls","footerCls","footerWrapperCls","isPoster2","showTitle","showHeader","showSubtitle","showAvatar","showDescription","showStatus","showActions","showFooter","showCover","showLoading","showContent","isHeaderRender","isFooterRender","textCover","Card","props$p","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","flatChildren","renderActions","props$o","imageStyle","MaintenanceSvg","NetworkErrorSvg","EmptySvg","FailSvg","SuccessSvg","_Empty","components","TImage","propsImage","propsDescription","propsTitle","defaultMaps","emptyClasses","titleClasses","descriptionClasses","actionClass","typeImageProps","_defaultMaps$type$val","showImage","_slots$image","_typeImageProps$value","_slots$title","_typeImageProps$value2","_slots$description","Empty","popupStackType","PopupManager","popupStack","getNextZIndex","zIndexStack","popupType","_this$popupStack$popu","popupManager","usePopupManager","runOnMounted","isTopInteractivePopup","useDrag","initTransform","mouseDownHandler","pageX","_transform$value","translateX","mouseMoveHandler","mouseUpHandler","resetTransform","TImageItem","rotate","placementSrc","isSvg","imageReferrerpolicy","loaded","_useDrag","svgElRef","imgStyle","placementImgStyle","boxStyle","createSvgShadow","_element$classList","response","svgText","shadowRoot","svgElement","svgViewBox","viewBoxValues","svgViewBoxWidth","bbox","calculatedViewBox","fetch","statusText","innerHTML","attachShadow","getBBox","mainImagePreviewUrl","placementImagePreviewUrl","ImageErrorIcon","TImageViewerIcon","wrapClass","props$n","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","newOptions","getConfirmBtn","globalConfirm","globalConfirmBtnTheme","confirmBtnAction","getDefaultConfirmBtnProps","getCancelBtn","globalCancel","cancelBtnAction","getDefaultCancelBtnProps","getScrollbarWidth","getCSSValue","dialogCardProps","mousePosition","_DialogCard","directives","windowInnerWidth","windowInnerHeight","targetEvent","disX","disY","dialogW","dialogH","mouseMoverHandler","documentEvent","dialogProps","rootRef","_useAction","_props$onCancel","isModeLess","isFullScreen","closeBtnAction","_props$onCloseBtnClic","onStopDown","resetPosition","dialogClass","confirmBtnLoading","_confirmBtn$value","defaultFooter","footerContent","headerClassName","closeClassName","bodyClassName","footerClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","isMounted","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","stopImmediatePropagation","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","shouldRender","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","dialogComponent","setConfirmLoading","DialogPlugin","$dialog","Dialog","DialogCard","props$m","closeOnOverlay","imageScale","images","defaultIndex","navigationArrow","viewerScale","onDownload","onIndexChange","TImageViewerUtils","onRotate","onZoomIn","onZoomOut","onMirror","currentImage","mainImage","TToolTip","MirrorIcon","RotationIcon","ZoomOutIcon","ZoomInIcon","DownloadIcon","TImageViewerModal","renderJSX","TDialog","thumbnail","EVENT_CODE","formatImages","File","isImageInfo","_ImageViewer","_props2$defaultIndex","isExpand","showOverlayValue","indexValue","setIndexValue","visibleValue","setVisibleValue","animationEnd","animationTimer","headerClass","zIndexValue","_props2$zIndex","toggleExpand","_useMirror","resetMirror","useMirror","_useScale","defaultScale","setScale","resetScale","newScale","useScale","_useRotate","resetRotate","useRotate","onRest","_images$value$indexVa","prevImage","nextImage","onDownloadClick","imgSrc","_imgSrc$split","_imgSrc$split$split","_imgSrc$split$split$s","canvas","getContext","drawImage","toBlob","blob","URL","createObjectURL","revokeObjectURL","downloadFile","openHandler","clickOverlayHandler","keydownHandler","up","down","esc","_divRef$value","_divRef$value$focus","transStyle","onImgClick","renderNavigationArrow","rotateDeg","renderCloseBtn","ImageViewer","props$l","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$k","asyncLoading","stripe","onLoadMore","LOAD_MORE","_List","listRef","listItems","computedListItems","listItemSlots","_useListVirtualScroll","listStyle","useListVirtualScroll","listClass","listElement","scrollBottom","loadingClass","renderLoading","handleLoadMore","_props2$onLoadMore","propsHeaderContent","propsFooterContent","TListItem","props$j","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$i","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","SMALL","LARGE","MEDIUM","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getLabelContent","CIRCLE_ICONS","NORMAL_ICONS","separateClasses","cx","cy","Progress","props$h","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$g","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","formatValue","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$f","autoplay","loop","navigation","stopOnHover","cardScale","swiperItemProps","isSwitching","getWrapAttribute","swiperItemLength","itemWidth","_SwiperItem","disposeIndex","translateIndex","isActivity","inStage","itemStyle","defaultNavigation","showSlideBtn","_Swiper","swiperTimer","swiperSwitchingTimer","isBeginToEnd","isEndToBegin","navActiveIndex","isHovering","swiperWrap","navigationConfig","propsToUpdateSetTimer","swiperWrapClass","containerStyle","swiperItems","swiperItemList","swiperItem","TSwiperItem","cloneVNode","swiperTo","goNext","goPrevious","_swiperWrap$value","renderNavigation","fractionIndex","navigationSlot","renderPagination","onMouseEnterNavigationItem","onClickNavigationItem","renderSwiperItems","Swiper","SwiperItem","baseTableProps","activeRowKeys","defaultActiveRowKeys","activeRowType","allowResizeColumnWidth","cellEmptyContent","columns","disableDataPage","disableSpaceInactiveRow","firstFullRow","footData","footerAffixProps","footerAffixedBottom","footerSummary","headerAffixProps","headerAffixedTop","horizontalScrollAffixedBottom","keyboardRowHover","lastFullRow","paginationAffixedBottom","resizable","rowAttributes","rowClassName","rowKey","rowspanAndColspan","rowspanAndColspanInFooter","tableContentWidth","verticalAlign","onActiveChange","onActiveRowAction","onColumnResizeChange","onRowClick","onRowDblclick","onRowMousedown","onRowMouseenter","onRowMouseleave","onRowMouseover","onRowMouseup","onScrollX","onScrollY","getNodeDepth","depthMap","maxDepth","_col$children","getChildrenNodeWidth","countNew","childrenList","getThRowspanAndColspan","columnsDepth","rowspanAndColspanMap","leafColumns","_col$children2","rowspan","useClassName","tableBaseClass","columnResizableTable","overflowVisible","paginationWrap","tdLastRow","tdFirstCol","thCellInner","tableRowEdit","cellEditable","cellEditWrap","striped","emptyRow","headerFixed","columnFixed","widthOverflow","multipleHeader","footerAffixed","horizontalBarAffixed","affixedHeader","affixedHeaderElm","affixedFooterElm","affixedFooterWrap","scrollbarDivider","fullHeight","resizeLine","obviousScrollbar","affixedHeaderWrap","tdAlignClasses","tableHeaderClasses","thBordered","fixed","tableFooterClasses","tableAlignClasses","middle","tableRowFixedClasses","firstBottom","withoutBorderBottom","tableColFixedClasses","lastLeft","firstRight","leftShadow","rightShadow","tableLayoutClasses","tdEllipsisClass","tableFullRowClasses","base","innerFullRow","innerFullElement","tableExpandClasses","iconBox","iconCell","rowExpanded","rowFolded","rowInner","tableSortClasses","sortable","sortColumn","doubleIcon","iconDirection","asc","desc","iconActive","iconDefault","tableSelectedClasses","checkCell","tableFilterClasses","popupContent","bottomButtons","contentInner","iconWrap","asyncLoadingClass","isFocusClass","isLoadingClass","isLoadMoreClass","tableTreeClasses","inlineCol","leafNode","tableDraggableClasses","rowDraggable","rowHandlerDraggable","colDraggable","chosen","dragSortTh","virtualScrollClasses","positiveRotate90","negativeRotate180","TEllipsis","tooltipContent","flag","isOverflow","ellipsisClasses","innerEllipsisClassName","onMouseAround","cellNode","rProps","colIndex","useTableHeader","_useClassName","spansAndLeafNodes","thList","thRows","_children","thRowData","isMultipleHeader","renderTitleWidthIcon","ellipsisTitle","isEllipsis","ellipsisOverlayClassName","useColumnResize","originalSelectStart","originalDragStart","isWidthOverflow","tableContentRef","showColumnShadow","getThWidthList","updateThWidthList","setTableElmWidth","updateTableAfterColumnResize","resizeLineRef","effectColMap","hasDocument","onselectstart","ondragstart","getSiblingResizableCol","setEffectColMap","prevNode","nextNode","parentPrevCol","colKey","parentNextCol","prevSibling","nextSibling","resizeLineParams","draggingCol","draggingStart","effectCol","resizeLineStyle","isColRightFixActive","getMinMaxColWidth","targetCol","_targetCol$resize","_targetCol$resize2","propMinWidth","minColWidth","maxColWidth","getOtherResizeInfo","effectPrevCol","targetBoundRect","tableBoundRect","resizeLinePos","colLeft","_getMinMaxColWidth","minResizeLineLeft","maxResizeLineLeft","getNormalResizeInfo","getFixedToLeftResizeInfo","onColumnMouseover","_col$resizable","thRightCursor","thLeftCursor","isFixedToRight","prevEl","previousElementSibling","_effectColMap$value$c","_effectPrevCol$resiza","onColumnMousedown","_tableContentRef$valu","_effectColMap$value$c2","_effectColMap$value$c3","effectNextCol","colkey","_getMinMaxColWidth2","getFixedToRightResizeInfo","_effectColMap$value$c4","moveDistance","thWidthList","currentCol","currentSibling","newThWidthList","tmpCurrentCol","canResizeSiblingColWidth","isWidthAbnormal","_getMinMaxColWidth3","targetNextColWidth","getSiblingColCanResizable","tableWidth","getTotalTableWidth","columnsWidth","getColumnFixedStyles","rowAndColFixedPosition","fixedPos","thClasses","lastLeftFixedCol","firstRightFixedCol","useFixed","finalColumns","tableRef","isFixedHeader","tableElmRef","scrollbarWidth","virtualScrollHeaderPos","tableElmWidth","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","_allowResizeColumnWid","notNeedThWidthList","getColumnMap","levelNodes","columnInfo","newColumnsMap","shadowLastScrollLeft","setFixedLeftPos","initialColumnMap","colInfo","lastColIndex","lastCol","lastColInfo","setFixedRightPos","_col$children3","updateRowAndColFixedPosition","tableContentElm","thead","trList","thLen","_obj$col","th","innerText","setFixedColPosition","tbody","tfoot","fixedTopRows","fixedBottomRows","_props$rowKey","rowId","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","setFixedRowPosition","updateColumnFixedShadow","skipScrollLimit","isShowRight","isShowLeft","updateFixedStatus","_getColumnMap","colMapInfo","nextColMapInfo","lastColMapInfo","setIsLastOrFirstFixedCol","_fixedRows$value","updateFixedHeader","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","HTMLCollection","updateThWidthListHandler","_tableContentRef$valu2","_tableElmRef$value","reduceWidth","elmRect","updateTableWidth","_tableContentRef$valu3","preFinalColumns","finalColKeys","preColKeys","reduceKeys","rootThWidthList","oldTotalWidth","contentWidth","widthToReserve","refreshTable","scrollDiv","getScrollbarWidthWithCSS","isWatchResize","hasResizeObserver","_resizeObserver2","_props$onScrollX","_props$onScrollY","setUseFixedTableElmRef","addTableResizeObserver","tableElement","usePagination","innerPagination","isPaginateData","updateDataSourceAndPaginate","_pagination$value","_pagination$value2","_pagination$value3","_innerPagination$valu","_innerPagination$valu2","_props$pagination","_props$pagination$onC","_props$onPageChange","useAffix","affixHeaderRef","affixFooterRef","horizontalScrollbarRef","paginationRef","showAffixHeader","showAffixFooter","showAffixPagination","isMousedown","isMouseInScrollableArea","isAffixed","lastScrollLeft","onHorizontalScroll","toUpdateScrollElement","isAffixedBottomElementShow","elementRect","tableRect","headerHeight","updateAffixHeaderOrFooter","_affixFooterRef$value","headerRect","footerRect","footerHeight","horizontalScrollbarRect","pageRect","onDocumentScroll","onFootScroll","onHeaderScroll","horizontalScrollbarScroll","onTableContentScroll","onFootMouseEnter","onFootMouseLeave","onHeaderMouseEnter","onMouseEnterScrollableArea","onHeaderMouseLeave","onMouseLeaveScrollableArea","onScrollbarMouseEnter","onScrollbarMouseLeave","onTableContentMouseEnter","onTableContentMouseLeave","activatingTouchScrollListenerCleanups","setupElementTouchScrollListener","debounceOffScrollListener","onElementTouchScroll","onElementTouchStart","composedPath","removeElementTouchScrollListener","elementTouchScrollCleanups","removeHorizontalScrollListeners","addVerticalScrollListener","addHorizontalScrollListeners","setTableContentRef","tableContent","formatRowAttributes","attrList","attrItem","attrProperty","formatRowClassNames","rowClassNames","rowClassList","customClasses","rName","tClass","formatClassNames","getCurrentRowByKey","_columns$i","_columns$i2","getAffixProps","mainAffixProps","subAffixProps","getCellKey","rowValue","useRowspanAndColspan","skipSpansMap","onTrRowspanOrColspan","skipSpansValue","maxRowIndex","maxColIndex","cellKey","skipped","_skipSpansMap$value","colLen","updateSkipSpansMap","TABLE_PROPS","ROW_LISTENERS","renderCell","tCurrent","tPageSize","TrElement","dataLength","tableElm","trRef","trStyles","rowLength","virtualTranslateY","fixedBottom","firstFixedBottomRow","getRowFixedStyles","trAttributes","_trStyles$value","notifyVirtualSizeUpdate","_props$virtualConfig","renderEllipsisCell","cellParams","_trStyles$value2","columVNodeList","cellSpans","spanState","_spanState","_spanState2","tdStyles","normalAttrs","renderTd","columnLength","trListeners","_props","getTrListeners","extendTableProps","TBody","renderExpandedRow","activeRow","hoverRow","tbodyClasses","_this$data","_this$data2","_this$virtualConfig","_this$virtualConfig2","getFullRow","tType","fullRowNode","isFixedToLeft","trNodeList","properties","renderData","_this$activeRow","trProps","trNode","onRowMounted","expandedContent","posStyle","useStyle","tableSize","_size$value","tableClasses","tableContentStyles","tableElementStyles","THead","thDraggable","columnResizeParams","theadRef","classnames","theadClasses","colspanSkipMap","processColumns","getTableNode","_parent","thBorderMap","thRowspanAndColspan","renderThNodeList","thRow","thStyles","colParams","thCustomClasses","thClassName","isLeftFixedActive","isRightFixedActive","canDragSort","withoutChildren","innerTh","resizeColumnListener","_this$columnResizePar","_this$columnResizePar2","_thList$index","onMousemove","_this$columnResizePar3","_this$columnResizePar4","TFoot","virtualScroll","renderTFootCell","foot","_this$footData","footerDomList","_this$thWidthList","useRowHighlight","currentOperationRowIndex","isShiftPressed","shiftSelectionState","areaSelectionStartIndex","tActiveRow","setTActiveRow","getActiveRowList","onHighlightRow","newActiveRowData","newActiveRowKeys","activeRowList","currentRowData","handleShiftActive","handleInactive","handleActive","clearShiftAreaSelection","keyboardDownListener","_props$onActiveRowAct2","activeKeys","_props$onActiveRowAct","_props$onActiveRowAct3","_props$onActiveRowAct4","keyboardUpListener","_e$key2","addHighlightKeyboardListener","removeHighlightKeyboardListener","_BaseTable","onLeafColumnsChange","tableBodyRef","bottomContentRef","tableFootHeight","_useStyle","_useTableHeader","_spansAndLeafNodes$va","_props2$size","_useElementLazyRender","showElement","_ioObserver$value","_ioObserver$value$uno","useElementLazyRender","_useFixed","_useAffix","_usePagination","dynamicBaseTableClasses","tableElmClasses","showRightDivider","dividerBottom","_bottomContentRef$val","_paginationRef$value","bottomRect","paginationRect","_useRowHighlight","_useHoverKeyboardEven","currentHoverRowIndex","tableRefTabIndex","needKeyboardRowHover","onHoverRow","ctrlKey","metaKey","clearHoverRow","addRowHoverKeyboardListener","removeRowHoverKeyboardListener","useHoverKeyboardEvent","_props2$onLeafColumns","syncThWidthList","useVirtualScrollNew","getTFootHeight","_tableElmRef$value$qu","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","_this$spansAndLeafNod","_this$allowResizeColu","_this$affixHeaderRef","_this$tableFootHeight","_this$tableFootHeight2","_affixHeaderHeight$va","_this$tableContentRef","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_this$affixHeaderRef2","affixHeaderWrapHeight","headerOpacity","affixHeaderWrapHeightStyle","affixedLeftBorder","affixHeaderWithWrap","marginScrollbarWidth","affixedFooter","virtualStyle","tableBodyProps","getCustomLoadingText","primaryTableProps","columnController","columnControllerVisible","defaultColumnControllerVisible","displayColumns","defaultDisplayColumns","dragSortOptions","editableCellState","editableRowKeys","expandOnRowClick","expandedRow","expandedRowKeys","defaultExpandedRowKeys","filterRow","defaultFilterValue","indeterminateSelectedRowKeys","multipleSort","reserveSelectedRowOnPaginate","rowSelectionAllowUncheck","rowSelectionType","selectOnRowClick","selectedRowKeys","defaultSelectedRowKeys","showSortColumnBgColor","defaultSort","sortOnRowDraggable","onAsyncLoadingClick","onColumnChange","onColumnControllerVisibleChange","onDisplayColumnsChange","onExpandChange","onFilterChange","onRowEdit","onRowValidate","onSelectChange","onSortChange","ColumnCheckboxGroup","uniqueKey","allCheckedColumnKeys","allCheckedKeys","intersectionKeys","isCheckedAll","onCheckAllColumnsChange","changeParams","newKeys","handleCheckChange","getColumnKeys","useColumnController","SettingIcon","TdSettingIcon","dialogInstance","enabledColKeys","_columnController$val","tDisplayColumns","setTDisplayColumns","columnCheckboxKeys","checkboxGroupList","_columnController$val2","groupColumns","_columnController$val3","groupList","_column$children","oneItem","getOneColumnItem","len1","_groupList$j","getCheckboxGroupOptions","getCheckboxOptions","_columnController$val4","_props$onColumnChange","currentColumn","handleToggleColumnController","_columnController$val8","_columnController$val5","widthMode","displayType","columnControllerTopContent","columnControllerBottomContent","_columnController$val6","_columnController$val7","_props$onColumnContro","_props$onColumnContro2","renderColumnController","_props$columnControll","isColumnController","hideTriggerButton","buttonProps","isRowSelectedDisabled","selectColumn","getColumnDataByKey","_columns$i$children","getColumnIndexByKey","_columns$i$children2","getColumnsResetValue","resetValue","useRowSelect","currentPaginateData","selectedRowClassNames","tSelectedRowKeys","setTSelectedRowKeys","selectedRowDataMap","selectionType","_selectColumn$value","canSelectedRows","_selectColumn$value2","_selectColumn$value3","getRowSelectDisabledData","handleSelectChange","selectedRowIndex","isExisted","selectedRowData","currentRowKey","handleSelectAll","_selectedRowKeys$valu","reRowKey","canSelectedRowKeys","disabledSelectedRowKeys","allIds","_selectColumn$value4","disabledRowClass","selectedRowClass","showRowSelect","formatToRowSelectColumn","_p$row","_getRowSelectDisabled","selectBoxProps","_e$e","_props$indeterminateS","renderSelectCell","onInnerSelectRowClick","_getRowSelectDisabled2","selectedColIndex","handleRowSelectWithAreaSelection","validAreaSelection","areaSelectionKeys","toCheck","clearedKeys","newSelectedRowKeys","SorterButton","sortType","sortOrder","allowSortTypes","getSortIcon","activeClass","sortClassName","descending","onSortIconClick","tooltips","sortButton","_this$hideSortTips","cancelTips","useSorter","originalData","tSortInfo","setTSortInfo","tData","setTData","sorterFuncMap","getSorterFuncMap","innerSort","sortArray","sortMap","sortBy","sorter","handleDataSort","sortInfo","isEmptyArraySort","isEmptyObjectSort","formatedSort","sortResult","sortFunc","handleSortHeaderClick","getSingleNextSort","getMultipleNextSort","currentData","currentDataSource","getSortOrder","tmpSortInfo","tmpInnerSortInfo","_ret","isSortInfoSame","renderSortIcon","_sortMap$value$col$co","sorterButtonsProps","TableFilterController","tFilterValue","innerFilterValue","primaryTableElement","triggerElementRef","FilterIcon","TdFilterIcon","filterPopupVisible","renderComponent","filterComponentProps","isVueComponent","tProps","getFilterContent","_column$filter","_column$filter2","_column$filter3","_props$innerFilterVal","single","_column$filter$props","_column$filter4","_column$filter$props$","_column$filter$props2","confirmEvents","getBottomButtons","showConfirmAndReset","onFilterPopupVisibleChange","_props$onVisibleChang","_this$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","isFilterValueExist","isArrayTrue","useFilter","primaryTableRef","isTableOverflowHidden","setTFilterValue","hasEmptyCondition","newFilterValue","getFilterResultContent","getAllColumns","_col$filter","_col$filter2","onInnerFilterChange","emitFilterChange","_column$filter$resetV","onResetAll","renderFilterIcon","_primaryTableRef$valu","renderFirstFilterRow","_props$data","filterContent","setFilterPrimaryTableRef","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutPropertiesLoose","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","toggleClass","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","childNum","includeDragEl","currentChild","Sortable","lastChild","lastElementChild","getRelativeScrollOffset","winScroller","includeSelf","elem","gotSelf","elemCSS","isRectEqual","Polymer","jQuery","Zepto","getChildContainingRectFromElement","ghostEl","_rect$left","_rect$top","_rect$right","_rect$bottom","animated","childRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animationResetTimer","currentRect","animatingX","animatingY","forRepaintDummy","repaint","plugins","initializeByDefault","PluginManager","plugin","pluginName","pluginEvent","eventCanceled","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","originalEvent","dragEl","parentEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","oldIndex","oldDraggableIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","targetEl","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","inputs","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","lastElRect","childContainingRect","spacer","_ghostIsLast","changed","firstElRect","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","toArray","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","swapDragArrayElement","removeNode","insertNodeAt","fatherNode","refNode","dragCol","isRowDraggable","isRowHandlerDraggable","isColDraggable","getDataPageIndex","_pagination$current","_pagination$pageSize","registerOneLevelColDragEvent","recover","onEnd","_props$onDragSort2","oldElement","newElement","registerColDragEvent","primaryTableCmp","timerA","_element$children","dragContainer","baseOptions","registerRowDragEvent","$refs","setDragSortPrimaryTableRef","setDragSortColumns","_toArray","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditableCell","oldCell","errors","onRuleChange","onEditableChange","_props$col$edit","isKeepEditMode","_col$value$edit","edit","keepEditMode","isEdit","defaultEditable","editValue","Edit1Icon","TdEdit1Icon","updateEditedCellValue","isUpdateCurrentRow","editOnListeners","_col$value$edit2","_col$value$edit2$on","editedRow","currentRow","restKeys","newRow","editProps","componentProps","_edit$abortEditOnEven","tmpProps","abortEditOnEvent","isAbortEditOnChange","_edit$abortEditOnEven2","validateEdit","_props$onValidate2","updateAndSaveAbort","outsideAbortEvent","_editOnListeners$valu","_editOnListeners$valu2","_props$onEditableChan","_edit$abortEditOnEven3","isCellEditable","tListeners","onEdited","itemEvent","newRowData","onEditChange","_editProps$value","_editProps$value$onCh","_props$onRuleChange","_editOnListeners$valu3","_editOnListeners$valu4","_col$value$edit4","_col$value$edit3","validateTrigger","documentClickHandler","_e$composedPath","_node2$classList","enterEdit","_props$onEditableChan2","_props$col$edit2","cellValue","_props$onRuleChange2","_col$value$edit6","_errorList$value","_col$value$edit7","_errorList$value2","_col$value$edit5","showEditIcon","Component","tmpEditOnListeners","onEventName","useRowEdit","cellRuleMap","errorListMap","editableKeysMap","getEditableKeysMap","editingCells","editedFormData","getErrorListMapByErrors","errorMap","validateOneRowData","rowRules","_t$errorList","validateTableCellData","cellKeys","existKeys","_v$props$rowKey","promiseList","_cellKey$split","allErrorListMap","_editableRowKeys$valu","keyStr","validateTableData","rList","validateRowData","_props$onRowValidate","tTrigger","clearValidateData","onUpdateEditedCell","lastRowData","getEditRowData","_props$editableRowKey","editedRowData","tmpRow","onPrimaryTableCellEditChange","OMIT_PROPS","_PrimaryTable","_props$size","_useColumnController","_useRowExpand","ChevronRightCircleIcon","TdChevronRightCircleIcon","tExpandedRowKeys","setTExpandedRowKeys","showExpandedRow","showExpandIconColumn","isFirstColumnFixed","_props$columns","onToggleExpand","currentId","expandedRowData","renderExpandIcon","getExpandColumn","isFixedLeft","onInnerExpandRowClick","getExpandedRowClass","_tExpandedRowKeys$val","useRowExpand","_useRowSelect","_useFilter","dragSortParams","_useAsyncLoading","onLoadClick","_props$onAsyncLoading","renderAsyncLoading","asyncLoadingNode","useAsyncLoading","_useEditableRow","useEditableRow","innerKeyboardRowHover","innerDisableSpaceInactiveRow","primaryTableClasses","tRowClassNames","tRowAttributes","tAttributes","baseTableRef","onEditableCellChange","_props$onRowEdit","getColumns","parentDisplay","_tDisplayColumns$valu","_item$edit","_tDisplayColumns$valu2","titleContent","cellProps","_errorListMap$value","tColumns","onInnerPageChange","onInnerActiveRowAction","onSingleRowClick","onShowElementChange","formatNode","api","renderInnerNode","condition","innerNode","_props$keyboardRowHov","_props$disableSpaceIn","isBottomController","BaseTable","enhancedTableProps","beforeDragSort","expandedTreeNodes","defaultExpandedTreeNodes","onAbnormalDragSort","onExpandedTreeNodesChange","onTreeExpandChange","TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL","getUniqueRowValue","TableTreeStore","treeDataMap","_this$treeDataMap","initialTreeDataMap","childrenKey","getAllUniqueKeys","getExpandedChildrenKeys","rowList","rowState","toggleExpandData","_r$rowIndex","updateExpandRow","changeRow","childrenNodes","updateChildrenRowState","updateRowExpandLength","expandChildrenLength","updateRowIndex","minRowIndex","newRowValue","updateRowData","oldChildren","currentRowIndex","removeNumber","validateDataExist","isShowNewNode","tmpData","newChildrenData","firstNewChildrenIndex","oneData","mapState","validateDataDoubleExist","newState","newChildrenCount","newDataSource","tmpNewData","dataSourceLen","dataIndex","childrenIndex","startRowValue","endRowValue","startState","endState","reason","startLastIndex","endLastIndex","startRowList","endRowList","middleRowList","allSwapList","expandAllRowIndex","expandLoop","tmpParent","_tmpParent","foldAll","treeData","updateDisabledState","_state$parent","expandLen","clearRowExpandLength","kidRowIndex","useTreeDataExpand","rowDataKeys","isDefaultExpandAllExecute","isDefaultExpandedTreeNodesExecute","tExpandedTreeNode","setTExpandedTreeNode","changedExpandTreeNode","expandedNode","updateExpandState","_diffExpandedTreeNode","newExpandedNode","oldExpandedNode","removedList","addedList","newExpandedNodeMap","oldExpandedNodeMap","diffExpandedTreeNode","expandTreeNode","foldTreeNode","oldExpandedTreeNode","onExpandFoldIconClick","_props$onTreeExpandCh","expandedNodes","expandedChildrenKeys","updateExpandOnDataChange","_tree$value","_tExpandedTreeNode$va","defaultExpandAll","useTreeData","AddRectangleIcon","TdAddRectangleIcon","MinusRectangleIcon","TdMinusRectangleIcon","treeNodeCol","shallowRef","_props$tree","_useTreeDataExpand","checkedColumn","resetData","initialTreeStore","defaultNeedExpand","needExpandAll","_store$value$treeData","_props$tree2","treeNodeColumnIndex","_props$tree5","_columns2$treeNodeCol","_columns2$treeNodeCol2","getTreeNodeColumnCol","swapData","_props$onAbnormalDrag","updateData","removeChildren","appendToRoot","formatTreeColumn","newCol","defaultFoldIcon","cellInfo","currentState","_props$tree3","_props$tree4","indent","getTreeNodeStyle","_store$value$treeData2","defaultExpandIcon","_store$value","getTreeExpandedRow","childrenMap","getChildrenData","allChildren","allChildrenKeys","leafNodeKeys","selectableChildren","_treeDataMap$get","tItem","nextLevelData","useTreeSelect","tIndeterminateSelectedRowKeys","parentMap","parentTmp","checkedLength","parentTmpIndex","updateIndeterminateState","onInnerSelectChange","rowKeys","extraData","newRowKeys","newExtraData","removeKeys","removeChildrenKeys","selectedKeys","checkedChildrenKeys","updateParentCheckedState","getRowDataByKeys","handleSelect","_EnhancedTable","_useTreeData","treeInstanceFunctions","_useTreeSelect","onDragSortChange","onEnhancedTableRowClick","_props$onRowClick","expandTreeNodeOnClick","getScrollRowIndex","rowStateData","enhancedProps","PrimaryTable","EnhancedTable","Table","TimeLineProps","DefaultAlign","horizontal","TimelineInjectKey","DEFAULT_PROVIDER","itemsStatus","renderAlign","props$e","dotColor","DEFAULT_THEME","_TimelineItem","TimelineProvider","getPositionClassName","_props2$labelAlign","_TimelineProvider$val","timelineItemAlign","_TimelineProvider$val2","dotElement","dotContentClass","_dotElement$props","_Timeline","TimeLineProvide","globalAlign","timelineItems","hasLabelItem","TimelineItem","Timeline","props$d","expandIconPlacement","_Collapse","borderlessClass","collapseValue","setCollapseValue","getUniqId","props$c","destroyOnCollapse","headerRightContent","_CollapsePanel","clickableClass","updateCollapseValue","_inject","disableAll","renderParentTNode","iconRef","panelExpandIcon","handleHeaderRightContentClick","tNodeRender","renderBody","Collapse","CollapsePanel","props$b","isRepeat","lineSpace","movable","moveInterval","watermarkContent","_Watermark","backgroundImage","watermarkRef","watermarkContentRef","gapX","gapY","backgroundRepeat","bgImageOptions","injectWaterMark","ratio","canvasWidth","canvasHeight","globalAlpha","markWidth","markHeight","fillStyle","fillRect","contents","_item$isGrayscale","isGrayscale","img","crossOrigin","referrerPolicy","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_item$fontColor","fontColor","_item$fontSize","_item$fontFamily","fontFamily","_item$fontWeight","fontWeight","markSize","font","textAlign","textBaseline","fillText","generateBase64Url","base64Url","_watermarkRef$value","backgroundSize","keyframesStyle","p1","styleElement","styleSheet","sheet","insertRule","cssRules","isRemoved","removedNodes","isModified","Watermark","props$a","allowHalf","_Rate","activeColor","defaultColor","starValue","setStarValue","displayTexts","RateIcon","iconProps","StarFilledIcon","getStarValue","starMiddle","mouseLeaveHandler","getStarCls","clickHandler","mouseEnterHandler","Rate","props$9","copyable","italic","keyboard","strong","reselectPrevious","rangeCount","ranges","getRangeAt","deselectCurrent","whiteSpace","webkitUserSelect","userSelect","clearData","onCopy","copyKey","prompt","removeRange","props$8","Ellipsis","ellipsisState","expandable","ellipsisStyles","def","WebkitLineClamp","WebkitBoxOrient","_props2$ellipsis$onEx","_props2$ellipsis","onCollapse","_props2$ellipsis$onEx2","_props2$ellipsis2","renderEllipsisExpand","moreNode","_ellipsisState$value","collapsible","_Text","isCopied","wrapperDecorations","del","currentContent","needed","_currentContent","tooltipText","_copyable$tooltipProp","renderCopy","CopyIcon","tooltipConf","onCopyClick","_Typography","props$7","_Title","_Paragraph","Typography","Title","Paragraph","props$6","maxLine","_Alert","renderIconTNode","iconType","defaultIcons","iconContent","alertRef","descriptionRef","descHeight","renderClose","closeContent","handleClose","renderDescription","_descriptionRef$value","messageContent","contentLength","hasCollapse","handleCloseEnd","isTransitionTarget","propertyName","operationContent","Alert","props$5","drawerClassName","sizeDraggable","onSizeDragEnd","calcSizeRange","isSizeDragging","draggedSizeValue","handleMouseup","handleMousemove","_props$onSizeDragEnd","limit","_getSizeDraggable","allowSizeDraggable","limitMax","limitMin","moveSize","calcMoveSize","draggableLineStyles","isHorizontal","draggingStyles","enableDrag","_Drawer","destroyOnCloseVisible","styleTimer","closeDrawer","drawerEle","drawerClasses","defaultSize","wrapperStyles","wrapperClasses","_drawerEle$value","modeAndPlacement","footerStyle","justifyContent","handleEscKeydown","clearStyleEl","_styleEl$value","_styleEl$value$remove","_drawerEle$value2","_drawerEle$value2$foc","addStyleElToHead","createStyleEl","updateVisibleState","handleCloseBtnClick","handleWrapperClick","marginValueData","setProperty","removeProperty","headerContent","createDrawer","updateStyle","drawerOptions","_drawerOptions$value","DrawerComponent","drawerComponent","DrawerPlugin","$drawer","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","notify","_notify$$","NotificationFunction","NotificationPlugin","$notify","props$2","_Popconfirm","innerPopupProps","renderTNodeDefault","Popconfirm","props$1","allowUploadDuplicateFile","autoUpload","beforeAllFilesUpload","beforeUpload","cancelUploadButton","dragContent","fileListDisplay","defaultFiles","formatRequest","formatResponse","headers","imageViewerProps","inputAttributes","isBatchUpload","mockProgressDuration","requestMethod","showImageFileName","showThumbnail","showUploadProgress","sizeLimit","triggerButtonProps","uploadAllFilesInOneRequest","uploadButton","uploadPastedFiles","useMockProgress","withCredentials","onCancelUpload","onDragenter","onFail","onOneFileFail","onOneFileSuccess","onPreview","onProgress","onSuccess","onWaitingUploadFilesChange","commonProps","toUploadFiles","displayFiles","sizeOverLimitMessage","onPasteFileChange","placeholderClass","NormalFile","TimeFilledIcon","TdTimeFilledIcon","uploadPrefix","renderProgress","renderFilePreviewAsInput","_props$abridgeName","inputTextClass","disabledClass","_displayFiles$","_displayFiles$0$respo","_files$","dragActive","_props$onDrop","_props$onDragFileChan","dragFiles","onDragFileChange","handleDragenter","_props$onDragenter","handleDragleave","_props$onDragleave","handleDragover","DraggerFile","triggerUpload","uploadFiles","cancelUpload","dragEvents","draggerFileRef","_displayFiles$value$","_file$response","raw","renderUploading","_locale$value$trigger","unActiveElement","_locale$value","fileInfo","uploadTime","_props$cancelUpload","_props$uploadFiles","renderMainPreview","_props$trigger","ImageCard","showTrigger","_displayFiles$value","renderMainContent","_props$onPreview","_props$onRemove","renderProgressFile","loadCard","renderFailFile","_locale$value2","_props$onRemove2","_displayFiles$value2","_locale$value3","customList","cardItemClasses","fileNameClassName","MultipleFlowList","FileExcelIcon","TdFileExcelIcon","FilePdfIcon","TdFilePdfIcon","FileWordIcon","TdFileWordIcon","FilePowerpointIcon","TdFilePowerpointIcon","FileIcon","TdFileIcon","VideoIcon","TdVideoIcon","currentPreviewFile","previewIndex","uploadText","innerDragEvents","getStatusMap","iconMap","waiting","textMap","renderStatus","_file$response2","_file$response3","_getStatusMap2","getFileThumbnailIcon","renderFileThumbnail","_props$onPreview2","renderFileList","_locale$value$file","_locale$value$file2","_locale$value$file3","_locale$value$file4","deleteNode","renderBatchActionCol","renderNormalActionCol","thumbnailNode","fileNameNode","returnFileSize","renderImageList","_getStatusMap","renderImgItem","_locale$value4","cardClassName","cancelUploadDisabled","hasCancelUploadTNode","uploadButtonDisabled","hasUploadButtonTNode","CustomFile","childrenNode","_props$childrenNode2","_props$childrenNode","handleBeforeUpload","sizePromise","sizeLimitObj","fileSize","units","isOverSizeLimit","XMLHttpRequest","currentFiles","uploadOneRequest","handleRequestMethodResponse","resultFiles","toFile","_response","_params$onResponseSuc","onResponseSuccess","_params$onResponseErr","onResponseError","_params$setXhrObject","xhrReq","timer1","timer2","_ref$method","_ref$withCredentials","_ref$headers","_ref$data","_ref$files","_ref$name","_ref$useMockProgress","_ref$mockProgressDura","innerFiles","xhr","requestData","fileField","formData","FormData","setRequestHeader","onerror","ontimeout","onprogress","_innerFiles$","realPercent","progressFiles","responseText","send","requestParams","requestHeaders","_params$onResponseErr2","onResponseProgress","_params$onResponseErr3","_params$onResponseSuc2","handleSuccess","setXhrObject","uploadedFiles","thisUploadFiles","failedFiles","one","tFiles","newFiles","tmpFile","updateUploadedFiles","formatToUploadFile","lastModified","useUpload","uploadValue","setUploadValue","_uploadValue$value","field","waitingUploadFiles","getDisplayFiles","updateFilesProgress","_props$onOneFileFail","_props$onProgress","_props$onOneFileSucce","getSizeLimitError","onFileChange","_props$onSelectChange","currentSelectedFiles","tmpFiles","sameNameFile","hasSameNameFile","lengthOverLimit","tmpFilesLenToBeAdded","allFileValidatePromise","formattedFiles","_params$beforeAllFile","sizeResult","customResult","_results","allFilesResult","others","fileValidateList","validateFile","_args$validateResult","_props$onValidate3","_props$onWaitingUploa","_props$onValidate4","_getFilesAndErrors","getError","sizeLimitErrors","beforeUploadErrorFiles","toFiles","oneFile","_oneFile$validateResu","_oneFile$validateResu2","getFilesAndErrors","tmpWaitingFiles","_props$onValidate5","handleNotAutoUpload","notUploadedFiles","_xhr$files$","_item$files$","_props$onSuccess","_props$onWaitingUploa2","_props$onFail","onInnerRemove","_p$e$stopPropagation","_p$e","_props$onWaitingUploa3","changePrams","_props$onWaitingUploa4","uploadFilePercent","operationUploadFiles","onNormalFileChange","_xhrReq$value","_props$onCancelUpload","_item$xhrReq","abort","_Upload","_useUpload","UploadIcon","TdUploadIcon","triggerUploadButtonText","_props2$triggerButton","_props2$triggerButton2","renderTrigger","commonDisplayFileProps","dragProps","uploadClasses","Upload","_ConfigProvider","ConfigProvider","use","tdesign","PKG_VERSION"],"mappings":"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AAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,KCjDnB,SAASrF,GACd,OAAiB,MAAVqF,QAAiBhF,EAAYgF,GAAOrF,KCL3C0Q,GAAU,8CAeVC,GAAczL,OANJ,kDAMoB,KClBlC,IAAI0L,GAAc,4CCAlB,IAAIC,GAAmB,qECAvB,IAAI1B,GAAgB,kBAKhB2B,GAAiB,kBACjBC,GAAe,4BAKfC,GAAe,4BAEfC,GAAeC,8OAIfC,GAAU,IAAMF,GAAe,IAE/BG,GAAW,OACXC,GAAY,IAAMP,GAAiB,IACnCQ,GAAU,IAAMP,GAAe,IAC/BQ,GAAS,KAAOpC,GAAgB8B,GAAeG,GAAWN,GAAiBC,GAAeC,GAAe,IAIzGxB,GAAa,kCACbC,GAAa,qCACb+B,GAAU,IAAMR,GAAe,IAI/BS,GAAc,MAAQH,GAAU,IAAMC,GAAS,IAC/CG,GAAc,MAAQF,GAAU,IAAMD,GAAS,IAC/CI,GAAkB,qCAClBC,GAAkB,qCAClBlC,GAAWmC,gFACXlC,GAAW,oBAIXC,GAAQD,GAAWD,IAHP,gBAAwB,CAbtB,KAAOP,GAAgB,IAaaK,GAAYC,IAAYI,KAAK,KAAO,IAAMF,GAAWD,GAAW,MAIlHoC,GAAU,MAAQ,CAACT,GAAW7B,GAAYC,IAAYI,KAAK,KAAO,IAAMD,GAGxEmC,GAAgB7M,OAAO,CACzBsM,GAAU,IAAMF,GAAU,IAAMK,GAAkB,MAAQ,CAACR,GAASK,GAAS,KAAK3B,KAAK,KAAO,IAC9F6B,GAAc,IAAME,GAAkB,MAAQ,CAACT,GAASK,GAAUC,GAAa,KAAK5B,KAAK,KAAO,IAChG2B,GAAU,IAAMC,GAAc,IAAME,GACpCH,GAAU,IAAMI,GATD,mDADA,mDAafR,GACAU,IACAjC,KAAK,KAAM,KC/Bb,SAASmC,GAAM/O,EAAQgP,EAASpJ,GAI9B,OAHA5F,EAASjE,GAASiE,QAGF5C,KAFhB4R,EAAUpJ,OAAQxI,EAAY4R,GFhBhC,SAAwBhP,GACtB,OAAO4N,GAAiBxR,KAAK4D,EAC/B,CEiBWiP,CAAejP,GDmC1B,SAAsBA,GACpB,OAAOA,EAAOoK,MAAM0E,KAAkB,EACxC,CCrCoCI,CAAalP,GHnBjD,SAAoBA,GAClB,OAAOA,EAAOoK,MAAMuD,KAAgB,EACtC,CGiB2DwB,CAAWnP,GAE7DA,EAAOoK,MAAM4E,IAAY,EAClC,CC3BA,IAGII,GAASnN,OAHA,YAGe,KAS5B,SAASoN,GAAiBC,GACxB,OAAO,SAAStP,GACd,OCPJ,SAAqBV,EAAOC,EAAUgQ,EAAaC,GACjD,IAAIhQ,GAAS,EACTzE,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,OAKvC,IAHIyU,GAAazU,IACfwU,EAAcjQ,IAAQE,MAEfA,EAAQzE,GACfwU,EAAchQ,EAASgQ,EAAajQ,EAAME,GAAQA,EAAOF,GAE3D,OAAOiQ,CACT,CDJWE,CAAYV,GLoBvB,SAAgB/O,GAEd,OADAA,EAASjE,GAASiE,KACDA,EAAOG,QAAQsN,GAASD,IAAcrN,QAAQuN,GAAa,GAC9E,CKvB6BgC,CAAO1P,GAAQG,QAAQiP,GAAQ,KAAME,EAAU,IAE5E,CEEA,IAAIK,GAAYN,IAAiB,SAASrQ,EAAQ4Q,EAAMpQ,GAEtD,OADAoQ,EAAOA,EAAKC,cACL7Q,GAAUQ,ECNVsQ,GAAW/T,GDMkB6T,GCNDC,eDMSD,EAC9C,IAEAG,GAAeJ,GEvBXK,GAAapL,KAAKqL,KAClBtL,GAAYC,KAAKC,IAuBrB,SAASqL,GAAM5Q,EAAOwJ,EAAMlD,GAExBkD,GADGlD,EAAQJ,GAAelG,EAAOwJ,EAAMlD,QAAkBxI,IAAT0L,GACzC,EAEAnE,GAAU1D,EAAU6H,GAAO,GAEpC,IAAI/N,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,OACvC,IAAKA,GAAU+N,EAAO,EACpB,MAAO,GAMT,IAJA,IAAItJ,EAAQ,EACR2Q,EAAW,EACXnR,EAAS9D,MAAM8U,GAAWjV,EAAS+N,IAEhCtJ,EAAQzE,GACbiE,EAAOmR,KAActE,GAAUvM,EAAOE,EAAQA,GAASsJ,GAEzD,OAAO9J,CACT,CCjCA,SAASoR,GAAM5H,GACb,IAAIS,EAAO7D,KAAKyD,SAAW,IAAIM,GAAUX,GACzCpD,KAAK0D,KAAOG,EAAKH,IACnB,CAGAsH,GAAMtU,UAAU2M,MCXhB,WACErD,KAAKyD,SAAW,IAAIM,GACpB/D,KAAK0D,KAAO,CACd,EDSAsH,GAAMtU,UAAkB,OEZxB,SAAqBiB,GACnB,IAAIkM,EAAO7D,KAAKyD,SACZ7J,EAASiK,EAAa,OAAElM,GAG5B,OADAqI,KAAK0D,KAAOG,EAAKH,KACV9J,CACT,EFOAoR,GAAMtU,UAAUkN,IGbhB,SAAkBjM,GAChB,OAAOqI,KAAKyD,SAASG,IAAIjM,EAC3B,EHYAqT,GAAMtU,UAAUiN,IIdhB,SAAkBhM,GAChB,OAAOqI,KAAKyD,SAASE,IAAIhM,EAC3B,EJaAqT,GAAMtU,UAAU6M,IKPhB,SAAkB5L,EAAKW,GACrB,IAAIuL,EAAO7D,KAAKyD,SAChB,GAAII,aAAgBE,GAAW,CAC7B,IAAIkH,EAAQpH,EAAKJ,SACjB,IAAKQ,IAAQgH,EAAMtV,OAASuV,IAG1B,OAFAD,EAAM1I,KAAK,CAAC5K,EAAKW,IACjB0H,KAAK0D,OAASG,EAAKH,KACZ1D,KAET6D,EAAO7D,KAAKyD,SAAW,IAAIW,GAAS6G,EACtC,CAGA,OAFApH,EAAKN,IAAI5L,EAAKW,GACd0H,KAAK0D,KAAOG,EAAKH,KACV1D,IACT,EC5BA,IAAIc,GAAgC,gBAAJtJ,IAAPuJ,EAAOvJ,YAAAA,EAAPuJ,KAAuBA,IAAYA,EAAQC,UAAYD,EAG5EE,GAAaH,IAAgC,WAAJ,oBAANI,OAAM,YAAA1J,EAAN0J,UAAsBA,SAAWA,OAAOF,UAAYE,OAMvFC,GAHgBF,IAAcA,GAAWF,UAAYD,GAG5B9H,EAAKmI,YAASnJ,EACvCmT,GAAchK,GAASA,GAAOgK,iBAAcnT,EAUhD,SAASoT,GAAYC,EAAQC,GAC3B,GAAIA,EACF,OAAOD,EAAOxU,QAEhB,IAAIlB,EAAS0V,EAAO1V,OAChBiE,EAASuR,GAAcA,GAAYxV,GAAU,IAAI0V,EAAOvU,YAAYnB,GAGxE,OADA0V,EAAOE,KAAK3R,GACLA,CACT,CCvBA,SAAS4R,GAAYtR,EAAOsE,GAM1B,IALA,IAAIpE,GAAS,EACTzE,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,OACnCoV,EAAW,EACXnR,EAAS,KAEJQ,EAAQzE,GAAQ,CACvB,IAAI2C,EAAQ4B,EAAME,GACdoE,EAAUlG,EAAO8B,EAAOF,KAC1BN,EAAOmR,KAAczS,EAEzB,CACA,OAAOsB,CACT,CCJA,SAAS6R,KACP,MAAO,EACT,CChBA,IAGI7K,GAHcnK,OAAOC,UAGckK,qBAGnC8K,GAAmBjV,OAAOkV,sBAS1BC,GAAcF,GAA+B,SAAS1O,GACxD,OAAc,MAAVA,EACK,IAETA,EAASvG,OAAOuG,GACTwO,GAAYE,GAAiB1O,IAAS,SAAS6O,GACpD,OAAOjL,GAAqBhK,KAAKoG,EAAQ6O,EAC3C,IACF,EARqCJ,GCbrC,IASIK,GATmBrV,OAAOkV,sBASqB,SAAS3O,GAE1D,IADA,IAAIpD,EAAS,GACNoD,GACL0I,GAAU9L,EAAQgS,GAAW5O,IAC7BA,EAASqJ,GAAarJ,GAExB,OAAOpD,CACT,EAPuC6R,GCDvC,SAASM,GAAe/O,EAAQgP,EAAUC,GACxC,IAAIrS,EAASoS,EAAShP,GACtB,OAAO9F,EAAQ8F,GAAUpD,EAAS8L,GAAU9L,EAAQqS,EAAYjP,GAClE,CCNA,SAASkP,GAAWlP,GAClB,OAAO+O,GAAe/O,EAAQX,GAAMuP,GACtC,CCDA,SAASO,GAAanP,GACpB,OAAO+O,GAAe/O,EAAQ8F,GAAQgJ,GACxC,CCVA,IAAIM,GAAWrP,GAAU/D,EAAM,YCA3BqT,GAAUtP,GAAU/D,EAAM,WCA1BsT,GAAMvP,GAAU/D,EAAM,OCKtBuT,GAAS,eAETC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBpQ,EAAS4P,IAC9BS,GAAgBrQ,EAASyH,IACzB6I,GAAoBtQ,EAAS6P,IAC7BU,GAAgBvQ,EAAS8P,IACzBU,GAAoBxQ,EAASU,IAS7B+P,GAAS1T,GAGR6S,IAAYa,GAAO,IAAIb,GAAS,IAAIc,YAAY,MAAQP,IACxD1I,IAAOgJ,GAAO,IAAIhJ,KAAQsI,IAC1BF,IAAWY,GAAOZ,GAAQc,YAAcX,IACxCF,IAAOW,GAAO,IAAIX,KAAQG,IAC1BvP,IAAW+P,GAAO,IAAI/P,KAAYwP,MACrCO,GAAS,SAAS3U,GAChB,IAAIsB,EAASL,EAAWjB,GACpBoI,EA/BQ,mBA+BD9G,EAAsBtB,EAAMxB,iBAAckB,EACjDoV,EAAa1M,EAAOlE,EAASkE,GAAQ,GAEzC,GAAI0M,EACF,OAAQA,GACN,KAAKR,GAAoB,OAAOD,GAChC,KAAKE,GAAe,OAAON,GAC3B,KAAKO,GAAmB,OAAON,GAC/B,KAAKO,GAAe,OAAON,GAC3B,KAAKO,GAAmB,OAAON,GAGnC,OAAO9S,IAIX,IAAAyT,GAAeJ,GCrDX9T,GAHc1C,OAAOC,UAGQyC,eCDjC,IAAImU,GAAatU,EAAKsU,WCMtB,SAASC,GAAiBC,GACxB,IAAI5T,EAAS,IAAI4T,EAAY1W,YAAY0W,EAAYC,YAErD,OADA,IAAIH,GAAW1T,GAAQ2J,IAAI,IAAI+J,GAAWE,IACnC5T,CACT,CCZA,IAAI8T,GAAU,OCEd,IAAIpT,GAAcrE,EAASA,EAAOS,eAAYsB,EAC1C2V,GAAgBrT,GAAcA,GAAYmB,aAAUzD,ECMxD,SAAS4V,GAAgBC,EAAYvC,GACnC,IAAID,EAASC,EAASiC,GAAiBM,EAAWxC,QAAUwC,EAAWxC,OACvE,OAAO,IAAIwC,EAAW/W,YAAYuU,EAAQwC,EAAWC,WAAYD,EAAWlY,OAC9E,CC2BA,SAASoY,GAAe/Q,EAAQvD,EAAK6R,GACnC,IF5BmBO,EDHAmC,EACfpU,EG8BA8G,EAAO1D,EAAOlG,YAClB,OAAQ2C,GACN,IA3BiB,uBA4Bf,OAAO8T,GAAiBvQ,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAI0D,GAAM1D,GAEnB,IAjCc,oBAkCZ,OCzCN,SAAuBiR,EAAU3C,GAC/B,IAAID,EAASC,EAASiC,GAAiBU,EAAS5C,QAAU4C,EAAS5C,OACnE,OAAO,IAAI4C,EAASnX,YAAYuU,EAAQ4C,EAASH,WAAYG,EAASR,WACxE,CDsCaS,CAAclR,EAAQsO,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAOsC,GAAgB5Q,EAAQsO,GAEjC,IAjDS,eA2DT,IAxDS,eAyDP,OAAO,IAAI5K,EARb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAK1D,GAElB,IAtDY,kBAuDV,OHvDApD,EAAS,IADMoU,EGwDIhR,GHvDClG,YAAYkX,EAAOxQ,OAAQkQ,GAAQtR,KAAK4R,KACzDG,UAAYH,EAAOG,UACnBvU,EG0DL,IAzDY,kBA0DV,OF3DeiS,EE2DI7O,EF1DhB2Q,GAAgBlX,OAAOkX,GAAc/W,KAAKiV,IAAW,GE4D9D,CE/DA,SAASuC,GAAgBpR,GACvB,MAAqC,mBAAtBA,EAAOlG,aAA8B2J,GAAYzD,GAE5D,CAAA,EADAK,GAAWgJ,GAAarJ,GAE9B,CCVA,IAAIqR,GAAY5M,IAAYA,GAAS6M,MAmBjCA,GAAQD,GAAY/M,GAAU+M,ICXlC,SAAmB/V,GACjB,OAAOyB,EAAazB,IAVT,gBAUmB2U,GAAO3U,EACvC,ECVA,IAAIiW,GAAY9M,IAAYA,GAAS+M,MAmBjCA,GAAQD,GAAYjN,GAAUiN,ICXlC,SAAmBjW,GACjB,OAAOyB,EAAazB,IAVT,gBAUmB2U,GAAO3U,EACvC,ECcImW,GAAU,qBAKVC,GAAU,oBAIVC,GAAY,kBAoBZC,GAAgB,CAAA,EA+BpB,SAASC,GAAUvW,EAAOwW,EAAS1P,EAAYzH,EAAKqF,EAAQ+R,GAC1D,IAAInV,EACA0R,EAnEgB,EAmEPwD,EACTE,EAnEgB,EAmEPF,EACTG,EAnEmB,EAmEVH,EAKb,GAHI1P,IACFxF,EAASoD,EAASoC,EAAW9G,EAAOX,EAAKqF,EAAQ+R,GAAS3P,EAAW9G,SAExDN,IAAX4B,EACF,OAAOA,EAET,IAAKoB,EAAS1C,GACZ,OAAOA,EAET,IAAI2J,EAAQ/K,EAAQoB,GACpB,GAAI2J,GAEF,GADArI,Eb7FJ,SAAwBM,GACtB,IAAIvE,EAASuE,EAAMvE,OACfiE,EAAS,IAAIM,EAAMpD,YAAYnB,GAOnC,OAJIA,GAA6B,iBAAZuE,EAAM,IAAkBf,GAAevC,KAAKsD,EAAO,WACtEN,EAAOQ,MAAQF,EAAME,MACrBR,EAAOhC,MAAQsC,EAAMtC,OAEhBgC,CACT,CamFasV,CAAe5W,IACnBgT,EACH,OAAO/N,GAAUjF,EAAOsB,OAErB,CACL,IAAIH,EAAMwT,GAAO3U,GACb6W,EAAS1V,GAAOiV,IA7EX,8BA6EsBjV,EAE/B,GAAI2H,GAAS9I,GACX,OAAO8S,GAAY9S,EAAOgT,GAE5B,GAAI7R,GAAOkV,IAAalV,GAAOgV,IAAYU,IAAWnS,GAEpD,GADApD,EAAUoV,GAAUG,EAAU,CAAE,EAAGf,GAAgB9V,IAC9CgT,EACH,OAAO0D,EC7Gf,SAAuBxR,EAAQR,GAC7B,OAAOkC,GAAW1B,EAAQsO,GAAatO,GAASR,EAClD,CD4GYoS,CAAc9W,EE7G1B,SAAsB0E,EAAQQ,GAC5B,OAAOR,GAAUkC,GAAW1B,EAAQsF,GAAOtF,GAASR,EACtD,CF2GiCqS,CAAazV,EAAQtB,IG9GtD,SAAqBkF,EAAQR,GAC3B,OAAOkC,GAAW1B,EAAQoO,GAAWpO,GAASR,EAChD,CH6GYsS,CAAYhX,EI9GxB,SAAoB0E,EAAQQ,GAC1B,OAAOR,GAAUkC,GAAW1B,EAAQnB,GAAKmB,GAASR,EACpD,CJ4G+BuS,CAAW3V,EAAQtB,QAEvC,CACL,IAAKsW,GAAcnV,GACjB,OAAOuD,EAAS1E,EAAQ,GAE1BsB,EAASmU,GAAezV,EAAOmB,EAAK6R,EACtC,CACF,CAEAyD,IAAUA,EAAQ,IAAI/D,IACtB,IAAIwE,EAAUT,EAAMnL,IAAItL,GACxB,GAAIkX,EACF,OAAOA,EAETT,EAAMxL,IAAIjL,EAAOsB,GAEb4U,GAAMlW,GACRA,EAAMmX,SAAQ,SAASC,GACrB9V,EAAO+V,IAAId,GAAUa,EAAUZ,EAAS1P,EAAYsQ,EAAUpX,EAAOyW,GACvE,IACST,GAAMhW,IACfA,EAAMmX,SAAQ,SAASC,EAAU/X,GAC/BiC,EAAO2J,IAAI5L,EAAKkX,GAAUa,EAAUZ,EAAS1P,EAAYzH,EAAKW,EAAOyW,GACvE,IAGF,IAII5P,EAAQ8C,OAAQjK,GAJLiX,EACVD,EAAS7C,GAAeD,GACxB8C,EAASlM,GAASzG,IAEkB/D,GASzC,OKzJF,SAAmB4B,EAAOC,GAIxB,IAHA,IAAIC,GAAS,EACTzE,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,SAE9ByE,EAAQzE,IAC8B,IAAzCwE,EAASD,EAAME,GAAQA,EAAOF,KAKtC,CLuIE0V,CAAUzQ,GAAS7G,GAAO,SAASoX,EAAU/X,GACvCwH,IAEFuQ,EAAWpX,EADXX,EAAM+X,IAIR1Q,GAAYpF,EAAQjC,EAAKkX,GAAUa,EAAUZ,EAAS1P,EAAYzH,EAAKW,EAAOyW,GAChF,IACOnV,CACT,CAxGAgV,GAAcH,IAAWG,GA7BV,kBA8BfA,GAfqB,wBAeWA,GAdd,qBAelBA,GA9Bc,oBA8BWA,GA7BX,iBA8BdA,GAfiB,yBAeWA,GAdX,yBAejBA,GAdc,sBAcWA,GAbV,uBAcfA,GAbe,uBAaWA,GA5Bb,gBA6BbA,GA5BgB,mBA4BWA,GAAcD,IACzCC,GA3BgB,mBA2BWA,GA1Bd,gBA2BbA,GA1BgB,mBA0BWA,GAzBX,mBA0BhBA,GAhBe,uBAgBWA,GAfJ,8BAgBtBA,GAfgB,wBAeWA,GAdX,yBAcsC,EACtDA,GArCe,kBAqCWA,GAAcF,IACxCE,GA5BiB,qBA4BW,EM/C5B,SAASiB,GAAUvX,GACjB,OAAOuW,GAAUvW,EAAOwX,EAC1B,CCdA,SAASC,GAASpK,GAChB,IAAIvL,GAAS,EACTzE,EAAmB,MAAVgQ,EAAiB,EAAIA,EAAOhQ,OAGzC,IADAqK,KAAKyD,SAAW,IAAIW,KACXhK,EAAQzE,GACfqK,KAAK2P,IAAIhK,EAAOvL,GAEpB,CCVA,SAAS4V,GAAU9V,EAAOsE,GAIxB,IAHA,IAAIpE,GAAS,EACTzE,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,SAE9ByE,EAAQzE,GACf,GAAI6I,EAAUtE,EAAME,GAAQA,EAAOF,GACjC,OAAO,EAGX,OAAO,CACT,CCZA,SAAS+V,GAASxL,EAAO9M,GACvB,OAAO8M,EAAMd,IAAIhM,EACnB,CFaAoY,GAASrZ,UAAUiZ,IAAMI,GAASrZ,UAAU6L,KGV5C,SAAqBjK,GAEnB,OADA0H,KAAKyD,SAASF,IAAIjL,EAbC,6BAcZ0H,IACT,EHQA+P,GAASrZ,UAAUiN,IIfnB,SAAqBrL,GACnB,OAAO0H,KAAKyD,SAASE,IAAIrL,EAC3B,ECUA,SAAS4X,GAAYhW,EAAOsB,EAAOsT,EAAS1P,EAAY+Q,EAAWpB,GACjE,IAAIqB,EAjBqB,EAiBTtB,EACZuB,EAAYnW,EAAMvE,OAClB2a,EAAY9U,EAAM7F,OAEtB,GAAI0a,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAaxB,EAAMnL,IAAI1J,GACvBsW,EAAazB,EAAMnL,IAAIpI,GAC3B,GAAI+U,GAAcC,EAChB,OAAOD,GAAc/U,GAASgV,GAActW,EAE9C,IAAIE,GAAS,EACTR,GAAS,EACT6W,EA/BuB,EA+Bf3B,EAAoC,IAAIiB,QAAW/X,EAM/D,IAJA+W,EAAMxL,IAAIrJ,EAAOsB,GACjBuT,EAAMxL,IAAI/H,EAAOtB,KAGRE,EAAQiW,GAAW,CAC1B,IAAIK,EAAWxW,EAAME,GACjBuW,EAAWnV,EAAMpB,GAErB,GAAIgF,EACF,IAAIwR,EAAWR,EACXhR,EAAWuR,EAAUD,EAAUtW,EAAOoB,EAAOtB,EAAO6U,GACpD3P,EAAWsR,EAAUC,EAAUvW,EAAOF,EAAOsB,EAAOuT,GAE1D,QAAiB/W,IAAb4Y,EAAwB,CAC1B,GAAIA,EACF,SAEFhX,GAAS,EACT,KACF,CAEA,GAAI6W,GACF,IAAKT,GAAUxU,GAAO,SAASmV,EAAUE,GACnC,IAAKZ,GAASQ,EAAMI,KACfH,IAAaC,GAAYR,EAAUO,EAAUC,EAAU7B,EAAS1P,EAAY2P,IAC/E,OAAO0B,EAAKlO,KAAKsO,EAErB,IAAI,CACNjX,GAAS,EACT,KACF,OACK,GACD8W,IAAaC,IACXR,EAAUO,EAAUC,EAAU7B,EAAS1P,EAAY2P,GACpD,CACLnV,GAAS,EACT,KACF,CACF,CAGA,OAFAmV,EAAc,OAAE7U,GAChB6U,EAAc,OAAEvT,GACT5B,CACT,CC1EA,SAASkX,GAAW3M,GAClB,IAAI/J,GAAS,EACTR,EAAS9D,MAAMqO,EAAIT,MAKvB,OAHAS,EAAIsL,SAAQ,SAASnX,EAAOX,GAC1BiC,IAASQ,GAAS,CAACzC,EAAKW,EAC1B,IACOsB,CACT,CCRA,SAASmX,GAAWxN,GAClB,IAAInJ,GAAS,EACTR,EAAS9D,MAAMyN,EAAIG,MAKvB,OAHAH,EAAIkM,SAAQ,SAASnX,GACnBsB,IAASQ,GAAS9B,CACpB,IACOsB,CACT,CCPA,IAkBIU,GAAcrE,EAASA,EAAOS,eAAYsB,EAC1C2V,GAAgBrT,GAAcA,GAAYmB,aAAUzD,ECxBxD,IAMImB,GAHc1C,OAAOC,UAGQyC,eCCjC,IAGIsV,GAAU,qBACVuC,GAAW,iBACXrC,GAAY,kBAMZxV,GAHc1C,OAAOC,UAGQyC,eAgBjC,SAAS8X,GAAgBjU,EAAQxB,EAAOsT,EAAS1P,EAAY+Q,EAAWpB,GACtE,IAAImC,EAAWha,EAAQ8F,GACnBmU,EAAWja,EAAQsE,GACnB4V,EAASF,EAAWF,GAAW/D,GAAOjQ,GACtCqU,EAASF,EAAWH,GAAW/D,GAAOzR,GAKtC8V,GAHJF,EAASA,GAAU3C,GAAUE,GAAYyC,IAGhBzC,GACrB4C,GAHJF,EAASA,GAAU5C,GAAUE,GAAY0C,IAGhB1C,GACrB6C,EAAYJ,GAAUC,EAE1B,GAAIG,GAAapQ,GAASpE,GAAS,CACjC,IAAKoE,GAAS5F,GACZ,OAAO,EAET0V,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADAvC,IAAUA,EAAQ,IAAI/D,IACdkG,GAAYpP,GAAa9E,GAC7BkT,GAAYlT,EAAQxB,EAAOsT,EAAS1P,EAAY+Q,EAAWpB,GFdnE,SAAoB/R,EAAQxB,EAAO/B,EAAKqV,EAAS1P,EAAY+Q,EAAWpB,GACtE,OAAQtV,GACN,IAzBc,oBA0BZ,GAAKuD,EAAOyQ,YAAcjS,EAAMiS,YAC3BzQ,EAAO8Q,YAActS,EAAMsS,WAC9B,OAAO,EAET9Q,EAASA,EAAOqO,OAChB7P,EAAQA,EAAM6P,OAEhB,IAlCiB,uBAmCf,QAAKrO,EAAOyQ,YAAcjS,EAAMiS,aAC3B0C,EAAU,IAAI7C,GAAWtQ,GAAS,IAAIsQ,GAAW9R,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOuD,IAAI/B,GAASxB,GAEtB,IAxDW,iBAyDT,OAAOwB,EAAOjG,MAAQyE,EAAMzE,MAAQiG,EAAOyU,SAAWjW,EAAMiW,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOzU,GAAWxB,EAAQ,GAE5B,IAjES,eAkEP,IAAIkW,EAAUZ,GAEhB,IAjES,eAkEP,IAAIV,EA5EiB,EA4ELtB,EAGhB,GAFA4C,IAAYA,EAAUX,IAElB/T,EAAO0G,MAAQlI,EAAMkI,OAAS0M,EAChC,OAAO,EAGT,IAAIZ,EAAUT,EAAMnL,IAAI5G,GACxB,GAAIwS,EACF,OAAOA,GAAWhU,EAEpBsT,GAtFuB,EAyFvBC,EAAMxL,IAAIvG,EAAQxB,GAClB,IAAI5B,EAASsW,GAAYwB,EAAQ1U,GAAS0U,EAAQlW,GAAQsT,EAAS1P,EAAY+Q,EAAWpB,GAE1F,OADAA,EAAc,OAAE/R,GACTpD,EAET,IAnFY,kBAoFV,GAAI+T,GACF,OAAOA,GAAc/W,KAAKoG,IAAW2Q,GAAc/W,KAAK4E,GAG9D,OAAO,CACT,CEhDQmW,CAAW3U,EAAQxB,EAAO4V,EAAQtC,EAAS1P,EAAY+Q,EAAWpB,GAExE,KArDyB,EAqDnBD,GAAiC,CACrC,IAAI8C,EAAeN,GAAYnY,GAAevC,KAAKoG,EAAQ,eACvD6U,EAAeN,GAAYpY,GAAevC,KAAK4E,EAAO,eAE1D,GAAIoW,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe5U,EAAO1E,QAAU0E,EAC/C+U,EAAeF,EAAerW,EAAMlD,QAAUkD,EAGlD,OADAuT,IAAUA,EAAQ,IAAI/D,IACfmF,EAAU2B,EAAcC,EAAcjD,EAAS1P,EAAY2P,EACpE,CACF,CACA,QAAKyC,IAGLzC,IAAUA,EAAQ,IAAI/D,IDtDxB,SAAsBhO,EAAQxB,EAAOsT,EAAS1P,EAAY+Q,EAAWpB,GACnE,IAAIqB,EAtBqB,EAsBTtB,EACZkD,EAAW9F,GAAWlP,GACtBiV,EAAYD,EAASrc,OAIzB,GAAIsc,GAHW/F,GAAW1Q,GACD7F,SAEMya,EAC7B,OAAO,EAGT,IADA,IAAIhW,EAAQ6X,EACL7X,KAAS,CACd,IAAIzC,EAAMqa,EAAS5X,GACnB,KAAMgW,EAAYzY,KAAO6D,EAAQrC,GAAevC,KAAK4E,EAAO7D,IAC1D,OAAO,CAEX,CAEA,IAAIua,EAAanD,EAAMnL,IAAI5G,GACvBwT,EAAazB,EAAMnL,IAAIpI,GAC3B,GAAI0W,GAAc1B,EAChB,OAAO0B,GAAc1W,GAASgV,GAAcxT,EAE9C,IAAIpD,GAAS,EACbmV,EAAMxL,IAAIvG,EAAQxB,GAClBuT,EAAMxL,IAAI/H,EAAOwB,GAGjB,IADA,IAAImV,EAAW/B,IACNhW,EAAQ6X,GAAW,CAE1B,IAAIhT,EAAWjC,EADfrF,EAAMqa,EAAS5X,IAEXuW,EAAWnV,EAAM7D,GAErB,GAAIyH,EACF,IAAIwR,EAAWR,EACXhR,EAAWuR,EAAU1R,EAAUtH,EAAK6D,EAAOwB,EAAQ+R,GACnD3P,EAAWH,EAAU0R,EAAUhZ,EAAKqF,EAAQxB,EAAOuT,GAGzD,UAAmB/W,IAAb4Y,EACG3R,IAAa0R,GAAYR,EAAUlR,EAAU0R,EAAU7B,EAAS1P,EAAY2P,GAC7E6B,GACD,CACLhX,GAAS,EACT,KACF,CACAuY,IAAaA,EAAkB,eAAPxa,EAC1B,CACA,GAAIiC,IAAWuY,EAAU,CACvB,IAAIC,EAAUpV,EAAOlG,YACjBub,EAAU7W,EAAM1E,YAGhBsb,GAAWC,KACV,gBAAiBrV,MAAU,gBAAiBxB,IACzB,mBAAX4W,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDzY,GAAS,EAEb,CAGA,OAFAmV,EAAc,OAAE/R,GAChB+R,EAAc,OAAEvT,GACT5B,CACT,CCRS0Y,CAAatV,EAAQxB,EAAOsT,EAAS1P,EAAY+Q,EAAWpB,GACrE,CC/DA,SAASwD,GAAYja,EAAOkD,EAAOsT,EAAS1P,EAAY2P,GACtD,OAAIzW,IAAUkD,IAGD,MAATlD,GAA0B,MAATkD,IAAmBzB,EAAazB,KAAWyB,EAAayB,GACpElD,GAAUA,GAASkD,GAAUA,EAE/ByV,GAAgB3Y,EAAOkD,EAAOsT,EAAS1P,EAAYmT,GAAaxD,GACzE,CCfA,SAASyD,GAAmBla,GAC1B,OAAOA,GAAUA,IAAU0C,EAAS1C,EACtC,CCHA,SAASma,GAAwB9a,EAAK+a,GACpC,OAAO,SAAS1V,GACd,OAAc,MAAVA,IAGGA,EAAOrF,KAAS+a,SACP1a,IAAb0a,GAA2B/a,KAAOlB,OAAOuG,KAEhD,CCNA,SAAS2V,GAAYnV,GACnB,IAAIoV,ECFN,SAAsB5V,GAIpB,IAHA,IAAIpD,EAASyC,GAAKW,GACdrH,EAASiE,EAAOjE,OAEbA,KAAU,CACf,IAAIgC,EAAMiC,EAAOjE,GACb2C,EAAQ0E,EAAOrF,GAEnBiC,EAAOjE,GAAU,CAACgC,EAAKW,EAAOka,GAAmBla,GACnD,CACA,OAAOsB,CACT,CDTkBiZ,CAAarV,GAC7B,OAAwB,GAApBoV,EAAUjd,QAAeid,EAAU,GAAG,GACjCH,GAAwBG,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAAS5V,GACd,OAAOA,IAAWQ,GEAtB,SAAqBR,EAAQQ,EAAQoV,EAAWxT,GAC9C,IAAIhF,EAAQwY,EAAUjd,OAClBA,EAASyE,EACT0Y,GAAgB1T,EAEpB,GAAc,MAAVpC,EACF,OAAQrH,EAGV,IADAqH,EAASvG,OAAOuG,GACT5C,KAAS,CACd,IAAIyJ,EAAO+O,EAAUxY,GACrB,GAAK0Y,GAAgBjP,EAAK,GAClBA,EAAK,KAAO7G,EAAO6G,EAAK,MACtBA,EAAK,KAAM7G,GAEnB,OAAO,CAEX,CACA,OAAS5C,EAAQzE,GAAQ,CAEvB,IAAIgC,GADJkM,EAAO+O,EAAUxY,IACF,GACX6E,EAAWjC,EAAOrF,GAClB+a,EAAW7O,EAAK,GAEpB,GAAIiP,GAAgBjP,EAAK,IACvB,QAAiB7L,IAAbiH,KAA4BtH,KAAOqF,GACrC,OAAO,MAEJ,CACL,IAAI+R,EAAQ,IAAI/D,GAChB,GAAI5L,EACF,IAAIxF,EAASwF,EAAWH,EAAUyT,EAAU/a,EAAKqF,EAAQQ,EAAQuR,GAEnE,UAAiB/W,IAAX4B,EACE2Y,GAAYG,EAAUzT,EAAU8T,EAA+C3T,EAAY2P,GAC3FnV,GAEN,OAAO,CAEX,CACF,CACA,OAAO,CACT,CF1CgCoZ,CAAYhW,EAAQQ,EAAQoV,GAE5D,CGXA,SAASK,GAAUjW,EAAQrF,GACzB,OAAiB,MAAVqF,GAAkBrF,KAAOlB,OAAOuG,EACzC,CCmBA,SAASkW,GAAMlW,EAAQwI,GACrB,OAAiB,MAAVxI,GCdT,SAAiBA,EAAQwI,EAAM2N,GAO7B,IAJA,IAAI/Y,GAAS,EACTzE,GAHJ6P,EAAOH,GAASG,EAAMxI,IAGJrH,OACdiE,GAAS,IAEJQ,EAAQzE,GAAQ,CACvB,IAAIgC,EAAM2N,GAAME,EAAKpL,IACrB,KAAMR,EAAmB,MAAVoD,GAAkBmW,EAAQnW,EAAQrF,IAC/C,MAEFqF,EAASA,EAAOrF,EAClB,CACA,OAAIiC,KAAYQ,GAASzE,EAChBiE,KAETjE,EAAmB,MAAVqH,EAAiB,EAAIA,EAAOrH,SAClBuK,GAASvK,IAAWkJ,GAAQlH,EAAKhC,KACjDuB,EAAQ8F,IAAW6D,GAAY7D,GACpC,CDN2BoW,CAAQpW,EAAQwI,EAAMyN,GACjD,CExBA,SAASI,GAAa1b,GACpB,OAAO,SAASqF,GACd,OAAiB,MAAVA,OAAiBhF,EAAYgF,EAAOrF,GAE/C,CCgBA,SAAS2b,GAAS9N,GAChB,OAAOvC,GAAMuC,GAAQ6N,GAAa/N,GAAME,ICnB1C,SAA0BA,GACxB,OAAO,SAASxI,GACd,OAAOuI,GAAQvI,EAAQwI,GAE3B,CDemD+N,CAAiB/N,EACpE,CEhBA,SAASgO,GAAalb,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKyD,EAEW,UAAhBvE,EAAOc,GACFpB,EAAQoB,ICHUkN,EDIDlN,EAAM,GCJCoa,EDIGpa,EAAM,GCHtC2K,GAAMuC,IAASgN,GAAmBE,GAC7BD,GAAwBnN,GAAME,GAAOkN,GAEvC,SAAS1V,GACd,IAAIiC,EAAW2E,GAAI5G,EAAQwI,GAC3B,YAAqBxN,IAAbiH,GAA0BA,IAAayT,EAC3CQ,GAAMlW,EAAQwI,GACd+M,GAAYG,EAAUzT,EAAU8T,KDHhCJ,GAAYra,GAEXgb,GAAShb,GCPlB,IAA6BkN,EAAMkN,CDQnC,CEfA,ICNuBjU,GDMnBgV,GCLK,SAASzW,EAAQ7C,EAAU6R,GAMhC,IALA,IAAI5R,GAAS,EACTsZ,EAAWjd,OAAOuG,GAClBmC,EAAQ6M,EAAShP,GACjBrH,EAASwJ,EAAMxJ,OAEZA,KAAU,CACf,IAAIgC,EAAMwH,EAAMV,GAAY9I,IAAWyE,GACvC,IAA+C,IAA3CD,EAASuZ,EAAS/b,GAAMA,EAAK+b,GAC/B,KAEJ,CACA,OAAO1W,GCTX,SAAS2W,GAAW3W,EAAQ7C,GAC1B,OAAO6C,GAAUyW,GAAQzW,EAAQ7C,EAAUkC,GAC7C,CCFA,IAAIuX,GCDJ,SAAwBC,EAAUpV,GAChC,OAAO,SAASqV,EAAY3Z,GAC1B,GAAkB,MAAd2Z,EACF,OAAOA,EAET,IAAK3T,GAAY2T,GACf,OAAOD,EAASC,EAAY3Z,GAM9B,IAJA,IAAIxE,EAASme,EAAWne,OACpByE,EAAQqE,EAAY9I,GAAU,EAC9B+d,EAAWjd,OAAOqd,IAEdrV,EAAYrE,MAAYA,EAAQzE,KACa,IAA/CwE,EAASuZ,EAAStZ,GAAQA,EAAOsZ,KAIvC,OAAOI,EAEX,CDlBeC,CAAeJ,IEW9BK,GAJU,WACR,OAAOhb,EAAK0E,KAAKC,KACnB,ECZI4B,GAAYC,KAAKC,IACjBwU,GAAYzU,KAAK0U,IAwDrB,SAASC,GAAS1X,EAAM2X,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACA5a,EACA6a,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACT1M,GAAW,EAEf,GAAmB,mBAAR1L,EACT,MAAM,IAAInF,UAzEQ,uBAmFpB,SAASwd,EAAWC,GAClB,IAAIlV,EAAOyU,EACPvU,EAAUwU,EAKd,OAHAD,EAAWC,OAAWvc,EACtB2c,EAAiBI,EACjBnb,EAAS6C,EAAK0B,MAAM4B,EAASF,EAE/B,CAqBA,SAASmV,EAAaD,GACpB,IAAIE,EAAoBF,EAAOL,EAM/B,YAAyB1c,IAAjB0c,GAA+BO,GAAqBb,GACzDa,EAAoB,GAAOJ,GANJE,EAAOJ,GAM8BH,CACjE,CAEA,SAASU,IACP,IAAIH,EAAOpX,KACX,GAAIqX,EAAaD,GACf,OAAOI,EAAaJ,GAGtBN,EAAUW,WAAWF,EA3BvB,SAAuBH,GACrB,IAEIM,EAAcjB,GAFMW,EAAOL,GAI/B,OAAOG,EACHZ,GAAUoB,EAAab,GAJDO,EAAOJ,IAK7BU,CACN,CAmBqCC,CAAcP,GACnD,CAEA,SAASI,EAAaJ,GAKpB,OAJAN,OAAUzc,EAINmQ,GAAYmM,EACPQ,EAAWC,IAEpBT,EAAWC,OAAWvc,EACf4B,EACT,CAcA,SAAS2b,IACP,IAAIR,EAAOpX,KACP6X,EAAaR,EAAaD,GAM9B,GAJAT,EAAWpW,UACXqW,EAAWvU,KACX0U,EAAeK,EAEXS,EAAY,CACd,QAAgBxd,IAAZyc,EACF,OAzEN,SAAqBM,GAMnB,OAJAJ,EAAiBI,EAEjBN,EAAUW,WAAWF,EAAcd,GAE5BQ,EAAUE,EAAWC,GAAQnb,CACtC,CAkEa6b,CAAYf,GAErB,GAAIG,EAIF,OAFAa,aAAajB,GACbA,EAAUW,WAAWF,EAAcd,GAC5BU,EAAWJ,EAEtB,CAIA,YAHgB1c,IAAZyc,IACFA,EAAUW,WAAWF,EAAcd,IAE9Bxa,CACT,CAGA,OA3GAwa,EAAO7Y,EAAS6Y,IAAS,EACrBpZ,EAASqZ,KACXO,IAAYP,EAAQO,QAEpBJ,GADAK,EAAS,YAAaR,GACH9U,GAAUhE,EAAS8Y,EAAQG,UAAY,EAAGJ,GAAQI,EACrErM,EAAW,aAAckM,IAAYA,EAAQlM,SAAWA,GAoG1DoN,EAAUI,OApCV,gBACkB3d,IAAZyc,GACFiB,aAAajB,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUzc,CACjD,EA+BAud,EAAUK,MA7BV,WACE,YAAmB5d,IAAZyc,EAAwB7a,EAASub,EAAaxX,KACvD,EA4BO4X,CACT,CChLA,SAASM,GAAiB7Y,EAAQrF,EAAKW,SACtBN,IAAVM,IAAwByG,GAAG/B,EAAOrF,GAAMW,SAC9BN,IAAVM,KAAyBX,KAAOqF,KACnC8B,GAAgB9B,EAAQrF,EAAKW,EAEjC,CCWA,SAASwd,GAAkBxd,GACzB,OAAOyB,EAAazB,IAAU6H,GAAY7H,EAC5C,CCtBA,SAASyd,GAAQ/Y,EAAQrF,GACvB,IAAY,gBAARA,GAAgD,mBAAhBqF,EAAOrF,KAIhC,aAAPA,EAIJ,OAAOqF,EAAOrF,EAChB,CCaA,SAASqe,GAAchZ,EAAQQ,EAAQ7F,EAAKse,EAAUC,EAAW9W,EAAY2P,GAC3E,IAAI9P,EAAW8W,GAAQ/Y,EAAQrF,GAC3B+a,EAAWqD,GAAQvY,EAAQ7F,GAC3B6X,EAAUT,EAAMnL,IAAI8O,GAExB,GAAIlD,EACFqG,GAAiB7Y,EAAQrF,EAAK6X,OADhC,CAIA,ICbqBlX,EDajBgH,EAAWF,EACXA,EAAWH,EAAUyT,EAAW/a,EAAM,GAAKqF,EAAQQ,EAAQuR,QAC3D/W,EAEAme,OAAwBne,IAAbsH,EAEf,GAAI6W,EAAU,CACZ,IAAIlU,EAAQ/K,EAAQwb,GAChBvQ,GAAUF,GAASb,GAASsR,GAC5B0D,GAAWnU,IAAUE,GAAUL,GAAa4Q,GAEhDpT,EAAWoT,EACPzQ,GAASE,GAAUiU,EACjBlf,EAAQ+H,GACVK,EAAWL,EAEJ6W,GAAkB7W,GACzBK,EAAW/B,GAAU0B,GAEdkD,GACPgU,GAAW,EACX7W,EAAW8L,GAAYsH,GAAU,IAE1B0D,GACPD,GAAW,EACX7W,EAAWsO,GAAgB8E,GAAU,IAGrCpT,EAAW,GAGNkH,GAAckM,IAAa7R,GAAY6R,IAC9CpT,EAAWL,EACP4B,GAAY5B,GACdK,EC9CCJ,GADc5G,ED+CU2G,EC9CN6D,GAAOxK,IDgDlB0C,EAASiE,KAAajD,EAAWiD,KACzCK,EAAW8O,GAAgBsE,KAI7ByD,GAAW,CAEf,CACIA,IAEFpH,EAAMxL,IAAImP,EAAUpT,GACpB4W,EAAU5W,EAAUoT,EAAUuD,EAAU7W,EAAY2P,GACpDA,EAAc,OAAE2D,IAElBmD,GAAiB7Y,EAAQrF,EAAK2H,EAnD9B,CAoDF,CExEA,SAAS+W,GAAUrZ,EAAQQ,EAAQyY,EAAU7W,EAAY2P,GACnD/R,IAAWQ,GAGfiW,GAAQjW,GAAQ,SAASkV,EAAU/a,GAEjC,GADAoX,IAAUA,EAAQ,IAAI/D,IAClBhQ,EAAS0X,GACXsD,GAAchZ,EAAQQ,EAAQ7F,EAAKse,EAAUI,GAAWjX,EAAY2P,OAEjE,CACH,IAAIzP,EAAWF,EACXA,EAAW2W,GAAQ/Y,EAAQrF,GAAM+a,EAAW/a,EAAM,GAAKqF,EAAQQ,EAAQuR,QACvE/W,OAEaA,IAAbsH,IACFA,EAAWoT,GAEbmD,GAAiB7Y,EAAQrF,EAAK2H,EAChC,CACD,GAAEwD,GACL,CCLA,IAAIwT,GAAYjW,IAAe,SAASrD,EAAQQ,EAAQyY,EAAU7W,GAChEiX,GAAUrZ,EAAQQ,EAAQyY,EAAU7W,EACtC,IAEAmX,GAAeD,GC7Bf,SAASE,GAAkBtc,EAAO5B,EAAOme,GAIvC,IAHA,IAAIrc,GAAS,EACTzE,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,SAE9ByE,EAAQzE,GACf,GAAI8gB,EAAWne,EAAO4B,EAAME,IAC1B,OAAO,EAGX,OAAO,CACT,CCEA,SAASsc,GAAexc,EAAOyL,EAAQxL,EAAUsc,GAC/C,IAAIrc,GAAS,EACTuc,EAAWtY,GACX8X,GAAW,EACXxgB,EAASuE,EAAMvE,OACfiE,EAAS,GACTgd,EAAejR,EAAOhQ,OAE1B,IAAKA,EACH,OAAOiE,EAELO,IACFwL,EAAS1L,EAAS0L,EAAQrE,GAAUnH,KAElCsc,GACFE,EAAWH,GACXL,GAAW,GAEJxQ,EAAOhQ,QA/BK,MAgCnBghB,EAAW1G,GACXkG,GAAW,EACXxQ,EAAS,IAAIoK,GAASpK,IAExBkR,EACA,OAASzc,EAAQzE,GAAQ,CACvB,IAAI2C,EAAQ4B,EAAME,GACd0c,EAAuB,MAAZ3c,EAAmB7B,EAAQ6B,EAAS7B,GAGnD,GADAA,EAASme,GAAwB,IAAVne,EAAeA,EAAQ,EAC1C6d,GAAYW,GAAaA,EAAU,CAErC,IADA,IAAIC,EAAcH,EACXG,KACL,GAAIpR,EAAOoR,KAAiBD,EAC1B,SAASD,EAGbjd,EAAO2I,KAAKjK,EACb,MACSqe,EAAShR,EAAQmR,EAAUL,IACnC7c,EAAO2I,KAAKjK,EAEhB,CACA,OAAOsB,CACT,CCtCA,IAMAod,GANiB/W,IAAS,SAAS/F,EAAOyL,GACxC,OAAOmQ,GAAkB5b,GACrBwc,GAAexc,EAAO8L,GAAYL,EAAQ,EAAGmQ,IAAmB,IAChE,EACN,IChBA,SAASmB,GAAK/c,GACZ,IAAIvE,EAAkB,MAATuE,EAAgB,EAAIA,EAAMvE,OACvC,OAAOA,EAASuE,EAAMvE,EAAS,QAAKqC,CACtC,CCXA,IAAIkf,GAAe,sBACfC,GAAkBta,OAAOqa,GAAa1Z,QAiB1C,SAAS4Z,GAAaxc,GAEpB,OADAA,EAASjE,GAASiE,KACAuc,GAAgBngB,KAAK4D,GACnCA,EAAOG,QAAQmc,GAAc,QAC7Btc,CACN,CCnBA,SAASyc,GAAWvD,EAAYtV,GAC9B,IAAI5E,EAAS,GAMb,OALAga,GAASE,GAAY,SAASxb,EAAO8B,EAAO0Z,GACtCtV,EAAUlG,EAAO8B,EAAO0Z,IAC1Bla,EAAO2I,KAAKjK,EAEhB,IACOsB,CACT,CCTA,SAAS0d,GAAOhf,EAAOkD,GACrB,OAAOlD,EAAQkD,CACjB,CCaA,SAAS+b,GAASjf,GAChB,MAAuB,iBAATA,IACVpB,EAAQoB,IAAUyB,EAAazB,IArBrB,mBAqB+BiB,EAAWjB,EAC1D,CCnBA,IAAI2b,GAAYzU,KAAK0U,ICCrB,SAASsD,GAAoBlf,GAC3B,OAAOwd,GAAkBxd,GAASA,EAAQ,EAC5C,CCWA,IAAImf,GAAexX,IAAS,SAASyX,GACnC,IAAIC,EAAS1d,EAASyd,EAAQF,IAC9B,OAAQG,EAAOhiB,QAAUgiB,EAAO,KAAOD,EAAO,GFJhD,SAA0BA,EAAQvd,EAAUsc,GAS1C,IARA,IAAIE,EAAWF,EAAaD,GAAoBnY,GAC5C1I,EAAS+hB,EAAO,GAAG/hB,OACnB2a,EAAYoH,EAAO/hB,OACnBkb,EAAWP,EACXsH,EAAS9hB,MAAMwa,GACfuH,EAAYC,IACZle,EAAS,GAENiX,KAAY,CACjB,IAAI3W,EAAQwd,EAAO7G,GACfA,GAAY1W,IACdD,EAAQD,EAASC,EAAOoH,GAAUnH,KAEpC0d,EAAY5D,GAAU/Z,EAAMvE,OAAQkiB,GACpCD,EAAO/G,IAAa4F,IAAetc,GAAaxE,GAAU,KAAOuE,EAAMvE,QAAU,KAC7E,IAAIoa,GAASc,GAAY3W,QACzBlC,CACN,CACAkC,EAAQwd,EAAO,GAEf,IAAItd,GAAS,EACTqW,EAAOmH,EAAO,GAElBf,EACA,OAASzc,EAAQzE,GAAUiE,EAAOjE,OAASkiB,GAAW,CACpD,IAAIvf,EAAQ4B,EAAME,GACd0c,EAAW3c,EAAWA,EAAS7B,GAASA,EAG5C,GADAA,EAASme,GAAwB,IAAVne,EAAeA,EAAQ,IACxCmY,EACER,GAASQ,EAAMqG,GACfH,EAAS/c,EAAQkd,EAAUL,IAC5B,CAEL,IADA5F,EAAWP,IACFO,GAAU,CACjB,IAAIpM,EAAQmT,EAAO/G,GACnB,KAAMpM,EACEwL,GAASxL,EAAOqS,GAChBH,EAASe,EAAO7G,GAAWiG,EAAUL,IAE3C,SAASI,CAEb,CACIpG,GACFA,EAAKlO,KAAKuU,GAEZld,EAAO2I,KAAKjK,EACd,CACF,CACA,OAAOsB,CACT,CE9CMme,CAAiBJ,GACjB,EACN,IAEAK,GAAeP,GCNf,SAASQ,GAAU3f,GACjB,OAAiB,IAAVA,IAA4B,IAAVA,GACtByB,EAAazB,IArBJ,oBAqBciB,EAAWjB,EACvC,CCrBA,IAAI4f,GAAazW,IAAYA,GAAS0W,OAqBtCC,GAFaF,GAAa5W,GAAU4W,ICXpC,SAAoB5f,GAClB,OAAOyB,EAAazB,IAVR,iBAUkBiB,EAAWjB,EAC3C,ECEIa,GAHc1C,OAAOC,UAGQyC,eAmCjC,SAASkf,GAAQ/f,GACf,GAAa,MAATA,EACF,OAAO,EAET,GAAI6H,GAAY7H,KACXpB,EAAQoB,IAA0B,iBAATA,GAA4C,mBAAhBA,EAAMwL,QAC1D1C,GAAS9I,IAAUwJ,GAAaxJ,IAAUuI,GAAYvI,IAC1D,OAAQA,EAAM3C,OAEhB,IAAI8D,EAAMwT,GAAO3U,GACjB,GApDW,gBAoDPmB,GAnDO,gBAmDUA,EACnB,OAAQnB,EAAMoL,KAEhB,GAAIjD,GAAYnI,GACd,OAAQoK,GAASpK,GAAO3C,OAE1B,IAAK,IAAIgC,KAAOW,EACd,GAAIa,GAAevC,KAAK0B,EAAOX,GAC7B,OAAO,EAGX,OAAO,CACT,CC5CA,SAAS2gB,GAAQhgB,EAAOkD,GACtB,OAAO+W,GAAYja,EAAOkD,EAC5B,CCAA,SAAS+c,GAASjgB,GAChB,MAAuB,iBAATA,GACXyB,EAAazB,IA9BF,mBA8BYiB,EAAWjB,EACvC,CCfA,SAASkgB,GAAMlgB,GACb,OAAgB,MAATA,CACT,CCLA,SAASmgB,GAAOngB,GACd,OAAiB,OAAVA,CACT,CCFA,SAASogB,GAAYpgB,GACnB,YAAiBN,IAAVM,CACT,CCIA,IAAIqgB,GAAY1O,IAAiB,SAASrQ,EAAQ4Q,EAAMpQ,GACtD,OAAOR,GAAUQ,EAAQ,IAAM,IAAMoQ,EAAKC,aAC5C,IAEAmO,GAAeD,GClBf,SAASE,GAAOvgB,EAAOkD,GACrB,OAAOlD,EAAQkD,CACjB,CCCA,SAASsd,GAAa5e,EAAOC,EAAUsc,GAIrC,IAHA,IAAIrc,GAAS,EACTzE,EAASuE,EAAMvE,SAEVyE,EAAQzE,GAAQ,CACvB,IAAI2C,EAAQ4B,EAAME,GACd2e,EAAU5e,EAAS7B,GAEvB,GAAe,MAAXygB,SAAiC/gB,IAAb8e,EACfiC,GAAYA,IAAY/e,EAAS+e,GAClCtC,EAAWsC,EAASjC,IAE1B,IAAIA,EAAWiC,EACXnf,EAAStB,CAEjB,CACA,OAAOsB,CACT,CCKA,IAAIof,GAAQ3Y,IAAe,SAASrD,EAAQQ,EAAQyY,GAClDI,GAAUrZ,EAAQQ,EAAQyY,EAC5B,IAEAgD,GAAeD,GCzBf,SAASE,GAAUlc,EAAQwI,GAGzB,OAAiB,OADjBxI,ECJF,SAAgBA,EAAQwI,GACtB,OAAOA,EAAK7P,OAAS,EAAIqH,EAASuI,GAAQvI,EAAQyJ,GAAUjB,EAAM,GAAI,GACxE,CDEW2T,CAAOnc,EADhBwI,EAAOH,GAASG,EAAMxI,aAEUA,EAAOsI,GAAM2R,GAAKzR,IACpD,CENA,SAAS4T,GAAgB9gB,GACvB,OAAOkO,GAAclO,QAASN,EAAYM,CAC5C,CCHA,IAwBI+gB,GAAOjT,IAAS,SAASpJ,EAAQsc,GACnC,IAAI1f,EAAS,CAAA,EACb,GAAc,MAAVoD,EACF,OAAOpD,EAET,IAAI0R,GAAS,EACbgO,EAAQrf,EAASqf,GAAO,SAAS9T,GAG/B,OAFAA,EAAOH,GAASG,EAAMxI,GACtBsO,IAAWA,EAAS9F,EAAK7P,OAAS,GAC3B6P,CACT,IACAtG,GAAWlC,EAAQmP,GAAanP,GAASpD,GACrC0R,IACF1R,EAASiV,GAAUjV,EAAQkW,EAAwDsJ,KAGrF,IADA,IAAIzjB,EAAS2jB,EAAM3jB,OACZA,KACLujB,GAAUtf,EAAQ0f,EAAM3jB,IAE1B,OAAOiE,CACT,IAEA2f,GAAeF,GCxCf,SAASG,GAAQxc,EAAQwI,EAAMlN,EAAO8G,GACpC,IAAKpE,EAASgC,GACZ,OAAOA,EAST,IALA,IAAI5C,GAAS,EACTzE,GAHJ6P,EAAOH,GAASG,EAAMxI,IAGJrH,OACdwY,EAAYxY,EAAS,EACrB8jB,EAASzc,EAEI,MAAVyc,KAAoBrf,EAAQzE,GAAQ,CACzC,IAAIgC,EAAM2N,GAAME,EAAKpL,IACjBkF,EAAWhH,EAEf,GAAY,cAARX,GAA+B,gBAARA,GAAiC,cAARA,EAClD,OAAOqF,EAGT,GAAI5C,GAAS+T,EAAW,CACtB,IAAIlP,EAAWwa,EAAO9hB,QAELK,KADjBsH,EAAWF,EAAaA,EAAWH,EAAUtH,EAAK8hB,QAAUzhB,KAE1DsH,EAAWtE,EAASiE,GAChBA,EACCJ,GAAQ2G,EAAKpL,EAAQ,IAAM,GAAK,CAAA,EAEzC,CACA4E,GAAYya,EAAQ9hB,EAAK2H,GACzBma,EAASA,EAAO9hB,EAClB,CACA,OAAOqF,CACT,CCnCA,SAAS0c,GAAW1c,EAAQsc,EAAO9a,GAKjC,IAJA,IAAIpE,GAAS,EACTzE,EAAS2jB,EAAM3jB,OACfiE,EAAS,CAAA,IAEJQ,EAAQzE,GAAQ,CACvB,IAAI6P,EAAO8T,EAAMlf,GACb9B,EAAQiN,GAAQvI,EAAQwI,GAExBhH,EAAUlG,EAAOkN,IACnBgU,GAAQ5f,EAAQyL,GAASG,EAAMxI,GAAS1E,EAE5C,CACA,OAAOsB,CACT,CC1BA,IAGI+f,GAAcna,KAAKoa,MAUvB,SAASC,GAAWjf,EAAQpE,GAC1B,IAAIoD,EAAS,GACb,IAAKgB,GAAUpE,EAAI,GAAKA,EAfH,iBAgBnB,OAAOoD,EAIT,GACMpD,EAAI,IACNoD,GAAUgB,IAEZpE,EAAImjB,GAAYnjB,EAAI,MAElBoE,GAAUA,SAELpE,GAET,OAAOoD,CACT,CCvBA,IAAIkgB,GAAYzG,GAAa,UCRzBvM,GAAgB,kBAQhBC,GAAW,IAAMD,GAAgB,IACjCE,GAAU,kDACVC,GAAS,2BAETC,GAAc,KAAOJ,GAAgB,IACrCK,GAAa,kCACbC,GAAa,qCAIbC,GAPa,MAAQL,GAAU,IAAMC,GAAS,IAOtB,IACxBK,GAAW,oBAEXC,GAAQD,GAAWD,IADP,gBAAwB,CAACH,GAAaC,GAAYC,IAAYI,KAAK,KAAO,IAAMF,GAAWD,GAAW,MAElHI,GAAW,MAAQ,CAACP,GAAcF,GAAU,IAAKA,GAASG,GAAYC,GAAYL,IAAUS,KAAK,KAAO,IAGxGE,GAAY7K,OAAOoK,GAAS,MAAQA,GAAS,KAAOQ,GAAWF,GAAO,KCf1E,SAASwS,GAAWnf,GAClB,OAAOiM,GAAWjM,GDuBpB,SAAqBA,GAEnB,IADA,IAAIhB,EAAS8N,GAAUyG,UAAY,EAC5BzG,GAAU1Q,KAAK4D,MAClBhB,EAEJ,OAAOA,CACT,CC5BMogB,CAAYpf,GACZkf,GAAUlf,EAChB,CCPA,IAAIgQ,GAAapL,KAAKqL,KCoBtB,SAASoP,GAASrf,EAAQjF,EAAQukB,GAChCtf,EAASjE,GAASiE,GAGlB,IAAIuf,GAFJxkB,EAASkG,EAAUlG,IAEMokB,GAAWnf,GAAU,EAC9C,OAAQjF,GAAUwkB,EAAYxkB,EDdhC,SAAuBA,EAAQukB,GAG7B,IAAIE,GAFJF,OAAkBliB,IAAVkiB,EAAsB,IAAM1f,EAAa0f,IAEzBvkB,OACxB,GAAIykB,EAAc,EAChB,OAAOA,EAAcP,GAAWK,EAAOvkB,GAAUukB,EAEnD,IAAItgB,EAASigB,GAAWK,EAAOtP,GAAWjV,EAASokB,GAAWG,KAC9D,OAAOrT,GAAWqT,GACdvT,GAAUgB,GAAc/N,GAAS,EAAGjE,GAAQ6R,KAAK,IACjD5N,EAAO/C,MAAM,EAAGlB,EACtB,CCIO0kB,CAAc1kB,EAASwkB,EAAWD,GAAStf,EAC5CA,CACN,CChBA,IAAI0f,GAAOlU,IAAS,SAASpJ,EAAQsc,GACnC,OAAiB,MAAVtc,EAAiB,CAAA,ECT1B,SAAkBA,EAAQsc,GACxB,OAAOI,GAAW1c,EAAQsc,GAAO,SAAShhB,EAAOkN,GAC/C,OAAO0N,GAAMlW,EAAQwI,EACvB,GACF,CDK+B+U,CAASvd,EAAQsc,EAChD,IAEAkB,GAAeF,GEjBXxW,GAHahO,MAAMY,UAGCoN,OCNxB,IAAI8G,GAAapL,KAAKqL,KAClBtL,GAAYC,KAAKC,ICyCrB,IAAIgb,GChCJ,SAAqBhc,GACnB,OAAO,SAASkB,EAAO+G,EAAKgU,GAa1B,OAZIA,GAAuB,iBAARA,GAAoBta,GAAeT,EAAO+G,EAAKgU,KAChEhU,EAAMgU,OAAO1iB,GAGf2H,EAAQ/D,EAAS+D,QACL3H,IAAR0O,GACFA,EAAM/G,EACNA,EAAQ,GAER+G,EAAM9K,EAAS8K,GFPrB,SAAmB/G,EAAO+G,EAAKgU,EAAMjc,GAKnC,IAJA,IAAIrE,GAAS,EACTzE,EAAS4J,GAAUqL,IAAYlE,EAAM/G,IAAU+a,GAAQ,IAAK,GAC5D9gB,EAAS9D,MAAMH,GAEZA,KACLiE,EAAO6E,EAAY9I,IAAWyE,GAASuF,EACvCA,GAAS+a,EAEX,OAAO9gB,CACT,CEAW+gB,CAAUhb,EAAO+G,EADxBgU,OAAgB1iB,IAAT0iB,EAAsB/a,EAAQ+G,EAAM,GAAK,EAAK9K,EAAS8e,GAC3Bjc,GAEvC,CDgBYmc,GAEZC,GAAeJ,GEdf,SAASK,GAAO5gB,EAAOsE,GACrB,IAAI5E,EAAS,GACb,IAAMM,IAASA,EAAMvE,OACnB,OAAOiE,EAET,IAAIQ,GAAS,EACT2gB,EAAU,GACVplB,EAASuE,EAAMvE,OAGnB,IADA6I,EAAYgV,GAAahV,KAChBpE,EAAQzE,GAAQ,CACvB,IAAI2C,EAAQ4B,EAAME,GACdoE,EAAUlG,EAAO8B,EAAOF,KAC1BN,EAAO2I,KAAKjK,GACZyiB,EAAQxY,KAAKnI,GAEjB,CAEA,OJ/BF,SAAoBF,EAAO6gB,GAIzB,IAHA,IAAIplB,EAASuE,EAAQ6gB,EAAQplB,OAAS,EAClCwY,EAAYxY,EAAS,EAElBA,KAAU,CACf,IAAIyE,EAAQ2gB,EAAQplB,GACpB,GAAIA,GAAUwY,GAAa/T,IAAU4gB,EAAU,CAC7C,IAAIA,EAAW5gB,EACXyE,GAAQzE,GACV0J,GAAOlN,KAAKsD,EAAOE,EAAO,GAE1B8e,GAAUhf,EAAOE,EAErB,CACF,CAEF,CIcE6gB,CAAW/gB,EAAO6gB,GACXnhB,CACT,CCpBA,SAAS2J,GAAIvG,EAAQwI,EAAMlN,GACzB,OAAiB,MAAV0E,EAAiBA,EAASwc,GAAQxc,EAAQwI,EAAMlN,EACzD,CCfA,SAAS4iB,GAAIhhB,GACX,OAAQA,GAASA,EAAMvE,OCTzB,SAAiBuE,EAAOC,GAKtB,IAJA,IAAIP,EACAQ,GAAS,EACTzE,EAASuE,EAAMvE,SAEVyE,EAAQzE,GAAQ,CACvB,IAAIojB,EAAU5e,EAASD,EAAME,SACbpC,IAAZ+gB,IACFnf,OAAoB5B,IAAX4B,EAAuBmf,EAAWnf,EAASmf,EAExD,CACA,OAAOnf,CACT,CDFMuhB,CAAQjhB,EAAO6B,GACf,CACN,CE6BA,SAASqf,GAAS3e,EAAM2X,EAAMC,GAC5B,IAAIO,GAAU,EACVzM,GAAW,EAEf,GAAmB,mBAAR1L,EACT,MAAM,IAAInF,UAnDQ,uBAyDpB,OAJI0D,EAASqZ,KACXO,EAAU,YAAaP,IAAYA,EAAQO,QAAUA,EACrDzM,EAAW,aAAckM,IAAYA,EAAQlM,SAAWA,GAEnDgM,GAAS1X,EAAM2X,EAAM,CAC1BQ,QAAWA,EACXJ,QAAWJ,EACXjM,SAAYA,GAEhB,CC7DA,IASIkT,GAAc/O,IAAQ,EAAIyE,GAAW,IAAIzE,GAAI,CAAE,EAAC,KAAK,IAT1C,IASoE,SAAS3G,GAC1F,OAAO,IAAI2G,GAAI3G,EACjB,ECJA,WACE,ECMF,SAAS2V,GAASphB,EAAOC,EAAUsc,GACjC,IAAIrc,GAAS,EACTuc,EAAWtY,GACX1I,EAASuE,EAAMvE,OACfwgB,GAAW,EACXvc,EAAS,GACT6W,EAAO7W,EAEX,GAAI6c,EACFN,GAAW,EACXQ,EAAWH,QAER,GAAI7gB,GAvBY,IAuBgB,CACnC,IAAI4N,EAAMpJ,EAAW,KAAOkhB,GAAUnhB,GACtC,GAAIqJ,EACF,OAAOwN,GAAWxN,GAEpB4S,GAAW,EACXQ,EAAW1G,GACXQ,EAAO,IAAIV,EACb,MAEEU,EAAOtW,EAAW,GAAKP,EAEzBid,EACA,OAASzc,EAAQzE,GAAQ,CACvB,IAAI2C,EAAQ4B,EAAME,GACd0c,EAAW3c,EAAWA,EAAS7B,GAASA,EAG5C,GADAA,EAASme,GAAwB,IAAVne,EAAeA,EAAQ,EAC1C6d,GAAYW,GAAaA,EAAU,CAErC,IADA,IAAIyE,EAAY9K,EAAK9a,OACd4lB,KACL,GAAI9K,EAAK8K,KAAezE,EACtB,SAASD,EAGT1c,GACFsW,EAAKlO,KAAKuU,GAEZld,EAAO2I,KAAKjK,EACb,MACSqe,EAASlG,EAAMqG,EAAUL,KAC7BhG,IAAS7W,GACX6W,EAAKlO,KAAKuU,GAEZld,EAAO2I,KAAKjK,GAEhB,CACA,OAAOsB,CACT,CClEA,IAAI4hB,GAAY,ECwBhB,IAAIC,GAAUxb,IAAS,SAASyX,GAC9B,IAAIjB,EAAaQ,GAAKS,GAEtB,OADAjB,EAAkC,mBAAdA,EAA2BA,OAAaze,ECf9D,SAAiB0f,EAAQvd,EAAUsc,GACjC,IAAI9gB,EAAS+hB,EAAO/hB,OACpB,GAAIA,EAAS,EACX,OAAOA,EAAS2lB,GAAS5D,EAAO,IAAM,GAKxC,IAHA,IAAItd,GAAS,EACTR,EAAS9D,MAAMH,KAEVyE,EAAQzE,GAIf,IAHA,IAAIuE,EAAQwd,EAAOtd,GACfyW,GAAY,IAEPA,EAAWlb,GACdkb,GAAYzW,IACdR,EAAOQ,GAASsc,GAAe9c,EAAOQ,IAAUF,EAAOwd,EAAO7G,GAAW1W,EAAUsc,IAIzF,OAAO6E,GAAStV,GAAYpM,EAAQ,GAAIO,EAAUsc,EACpD,CDHSiF,CAAQlQ,GAAYkM,EAAQ5B,SAAoB9d,EAAWye,EACpE,IAEAkF,GAAeF,GEjCA,SAASG,GAAgBnmB,GACtC,GAAIK,MAAMoB,QAAQzB,GAAM,OAAOA,CACjC,CCFe,SAASomB,KACtB,MAAM,IAAIvkB,UAAU,4IACtB,CCEe,SAASwkB,GAAermB,EAAKG,GAC1C,OAAOmmB,GAAetmB,ICLT,SAA+BumB,EAAGC,GAC/C,IAAIC,EAAI,MAAQF,EAAI,KAAO,oBAAsB/lB,QAAU+lB,EAAE/lB,OAAOC,WAAa8lB,EAAE,cACnF,GAAI,MAAQE,EAAG,CACb,IAAIviB,EACFnD,EACAZ,EACAumB,EACAC,EAAI,GACJC,GAAI,EACJhmB,GAAI,EACN,IACE,GAAIT,GAAKsmB,EAAIA,EAAEtlB,KAAKolB,IAAIM,KAAM,IAAML,EAAG,CACrC,GAAIxlB,OAAOylB,KAAOA,EAAG,OACrBG,GAAI,CACN,MAAO,OAASA,GAAK1iB,EAAI/D,EAAEgB,KAAKslB,IAAIK,QAAUH,EAAE7Z,KAAK5I,EAAErB,OAAQ8jB,EAAEzmB,SAAWsmB,GAAII,GAAI,GACrF,CAAC,MAAOL,GACP3lB,GAAI,EAAIG,EAAIwlB,CACd,CAAU,QACR,IACE,IAAKK,GAAK,MAAQH,EAAU,SAAMC,EAAID,EAAU,SAAKzlB,OAAO0lB,KAAOA,GAAI,MACzE,CAAU,QACR,GAAI9lB,EAAG,MAAMG,CACf,CACF,CACA,OAAO4lB,CACT,CACF,CDrBgCI,CAAqB/mB,EAAKG,IAAMyB,EAA2B5B,EAAKG,IAAM6mB,IACtG,CEJe,4RCFqDvb,UAA0I,WAAwB,IAAIgb,EAAE,IAAIviB,EAAE,IAAInD,EAAE,KAAKwlB,EAAE,cAAcpmB,EAAE,SAAS8mB,EAAE,SAASP,EAAE,OAAOC,EAAE,MAAM/lB,EAAE,OAAOsmB,EAAE,QAAQN,EAAE,UAAUO,EAAE,OAAOC,EAAE,OAAOZ,EAAE,eAAea,EAAE,6FAA6FC,EAAE,sFAAsFC,EAAE,CAACjmB,KAAK,KAAKkmB,SAAS,2DAA2DpV,MAAM,KAAKqV,OAAO,wFAAwFrV,MAAM,KAAKsV,QAAQ,SAASjB,GAAG,IAAIviB,EAAE,CAAC,KAAK,KAAK,KAAK,MAAMnD,EAAE0lB,EAAE,IAAI,MAAM,IAAIA,GAAGviB,GAAGnD,EAAE,IAAI,KAAKmD,EAAEnD,IAAImD,EAAE,IAAI,GAAG,GAAGyjB,EAAE,SAASlB,EAAEviB,EAAEnD,GAAG,IAAIwlB,EAAE9jB,OAAOgkB,GAAG,OAAOF,GAAGA,EAAErmB,QAAQgE,EAAEuiB,EAAE,GAAGpmB,MAAM6D,EAAE,EAAEqiB,EAAErmB,QAAQ6R,KAAKhR,GAAG0lB,CAAE,EAACmB,EAAE,CAACX,EAAEU,EAAEE,EAAE,SAASpB,GAAG,IAAIviB,GAAGuiB,EAAEqB,YAAY/mB,EAAEgJ,KAAKge,IAAI7jB,GAAGqiB,EAAExc,KAAKoa,MAAMpjB,EAAE,IAAIZ,EAAEY,EAAE,GAAG,OAAOmD,GAAG,EAAE,IAAI,KAAKyjB,EAAEpB,EAAE,EAAE,KAAK,IAAIoB,EAAExnB,EAAE,EAAE,IAAK,EAACwnB,EAAE,SAASlB,EAAEviB,EAAEnD,GAAG,GAAGmD,EAAE8jB,OAAOjnB,EAAEinB,OAAO,OAAOvB,EAAE1lB,EAAEmD,GAAG,IAAIqiB,EAAE,IAAIxlB,EAAEknB,OAAO/jB,EAAE+jB,SAASlnB,EAAEmnB,QAAQhkB,EAAEgkB,SAAS/nB,EAAE+D,EAAEikB,QAAQjO,IAAIqM,EAAEW,GAAGD,EAAElmB,EAAEZ,EAAE,EAAEumB,EAAExiB,EAAEikB,QAAQjO,IAAIqM,GAAGU,GAAG,EAAE,GAAGC,GAAG,UAAUX,GAAGxlB,EAAEZ,IAAI8mB,EAAE9mB,EAAEumB,EAAEA,EAAEvmB,KAAK,EAAG,EAACwmB,EAAE,SAASF,GAAG,OAAOA,EAAE,EAAE1c,KAAKqL,KAAKqR,IAAI,EAAE1c,KAAKoa,MAAMsC,EAAG,EAAC2B,EAAE,SAAS3B,GAAG,MAAM,CAACc,EAAEL,EAAEI,EAAEH,EAAEkB,EAAEznB,EAAEwmB,EAAET,EAAE2B,EAAElB,EAAED,EAAET,EAAEiB,EAAEV,EAAEA,EAAE9mB,EAAEooB,GAAGhC,EAAEiC,EAAE5B,GAAGH,IAAIhkB,OAAOgkB,GAAG,IAAIzR,cAAc1P,QAAQ,KAAK,GAAI,EAACohB,EAAE,SAASD,GAAG,YAAO,IAASA,CAAC,GAAGgC,EAAE,KAAKH,EAAE,CAAA,EAAGA,EAAEG,GAAGlB,EAAE,IAAIa,EAAE,iBAAiBM,EAAE,SAASjC,GAAG,OAAOA,aAAakC,MAAMlC,IAAIA,EAAE2B,GAAI,EAACC,EAAE,SAAS5B,EAAEviB,EAAEnD,EAAEwlB,GAAG,IAAIpmB,EAAE,IAAI+D,EAAE,OAAOukB,EAAE,GAAG,iBAAiBvkB,EAAE,CAAC,IAAI+iB,EAAE/iB,EAAE8Q,cAAcsT,EAAErB,KAAK9mB,EAAE8mB,GAAGlmB,IAAIunB,EAAErB,GAAGlmB,EAAEZ,EAAE8mB,GAAG,IAAIP,EAAExiB,EAAEkO,MAAM,KAAK,IAAIjS,GAAGumB,EAAExmB,OAAO,EAAE,OAAOumB,EAAEC,EAAE,GAAG,KAAK,CAAC,IAAIC,EAAEziB,EAAE5C,KAAKgnB,EAAE3B,GAAGziB,EAAE/D,EAAEwmB,CAAC,CAAC,OAAOJ,GAAGpmB,IAAIsoB,EAAEtoB,GAAGA,IAAIomB,GAAGkC,CAAE,EAACG,EAAE,SAASnC,EAAEviB,GAAG,GAAGwkB,EAAEjC,GAAG,OAAOA,EAAE0B,QAAQ,IAAIpnB,EAAE,UAAQgB,EAASmC,GAAEA,EAAE,GAAG,OAAOnD,EAAEinB,KAAKvB,EAAE1lB,EAAEqJ,KAAK3B,UAAU,IAAIkgB,EAAE5nB,EAAG,EAAC8nB,EAAEjB,EAAEiB,EAAErC,EAAE6B,EAAEQ,EAAE1oB,EAAEuoB,EAAEG,EAAER,EAAE,SAAS5B,EAAEviB,GAAG,OAAO0kB,EAAEnC,EAAE,CAACqC,OAAO5kB,EAAE6kB,GAAGC,IAAI9kB,EAAE+kB,GAAGC,EAAEhlB,EAAEilB,GAAGC,QAAQllB,EAAEklB,WAAW,IAAIT,EAAE,WAAW,SAASpB,EAAEd,GAAGlc,KAAKwe,GAAGV,EAAE5B,EAAEqC,OAAO,MAAK,GAAIve,KAAK8e,MAAM5C,GAAGlc,KAAK4e,GAAG5e,KAAK4e,IAAI1C,EAAEyC,GAAG,CAAE,EAAC3e,KAAK6d,IAAG,CAAE,CAAC,IAAIT,EAAEJ,EAAEtmB,UAAU,OAAO0mB,EAAE0B,MAAM,SAAS5C,GAAGlc,KAAK+e,GAAG,SAAS7C,GAAG,IAAIviB,EAAEuiB,EAAEuB,KAAKjnB,EAAE0lB,EAAEuC,IAAI,GAAG,OAAO9kB,EAAE,OAAO,IAAI+D,KAAKshB,KAAK,GAAGV,EAAEnC,EAAExiB,GAAG,OAAO,IAAI+D,KAAK,GAAG/D,aAAa+D,KAAK,OAAO,IAAIA,KAAK/D,GAAG,GAAG,iBAAiBA,IAAI,MAAM3C,KAAK2C,GAAG,CAAC,IAAIqiB,EAAEriB,EAAEqL,MAAM8X,GAAG,GAAGd,EAAE,CAAC,IAAIpmB,EAAEomB,EAAE,GAAG,GAAG,EAAEU,GAAGV,EAAE,IAAI,KAAKiD,UAAU,EAAE,GAAG,OAAOzoB,EAAE,IAAIkH,KAAKA,KAAKwhB,IAAIlD,EAAE,GAAGpmB,EAAEomB,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEU,IAAI,IAAIhf,KAAKse,EAAE,GAAGpmB,EAAEomB,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEU,EAAE,CAAC,CAAC,OAAO,IAAIhf,KAAK/D,EAAG,CAA5X,CAA6XuiB,GAAGlc,KAAKmf,MAAM,EAAE/B,EAAE+B,KAAK,WAAW,IAAIjD,EAAElc,KAAK+e,GAAG/e,KAAKof,GAAGlD,EAAEmD,cAAcrf,KAAKsf,GAAGpD,EAAEqD,WAAWvf,KAAKwf,GAAGtD,EAAEuD,UAAUzf,KAAK0f,GAAGxD,EAAEyD,SAAS3f,KAAK4f,GAAG1D,EAAE2D,WAAW7f,KAAK8f,GAAG5D,EAAE6D,aAAa/f,KAAKggB,GAAG9D,EAAE+D,aAAajgB,KAAKkgB,IAAIhE,EAAEiE,iBAAiB,EAAE/C,EAAEgD,OAAO,WAAW,OAAO9B,CAAC,EAAElB,EAAEiD,QAAQ,WAAW,QAAQrgB,KAAK+e,GAAGpoB,aAAaslB,EAAG,EAACmB,EAAEkD,OAAO,SAASpE,EAAEviB,GAAG,IAAInD,EAAE6nB,EAAEnC,GAAG,OAAOlc,KAAKugB,QAAQ5mB,IAAInD,GAAGA,GAAGwJ,KAAKwgB,MAAM7mB,EAAG,EAACyjB,EAAEqD,QAAQ,SAASvE,EAAEviB,GAAG,OAAO0kB,EAAEnC,GAAGlc,KAAKugB,QAAQ5mB,EAAG,EAACyjB,EAAEsD,SAAS,SAASxE,EAAEviB,GAAG,OAAOqG,KAAKwgB,MAAM7mB,GAAG0kB,EAAEnC,EAAG,EAACkB,EAAEuD,GAAG,SAASzE,EAAEviB,EAAEnD,GAAG,OAAO8nB,EAAEnC,EAAED,GAAGlc,KAAKrG,GAAGqG,KAAKuD,IAAI/M,EAAE0lB,EAAE,EAAEkB,EAAEwD,KAAK,WAAW,OAAOphB,KAAKoa,MAAM5Z,KAAKvE,UAAU,IAAI,EAAE2hB,EAAE3hB,QAAQ,WAAW,OAAOuE,KAAK+e,GAAG8B,SAAU,EAACzD,EAAEmD,QAAQ,SAASrE,EAAEviB,GAAG,IAAInD,EAAEwJ,KAAKgc,IAAIsC,EAAEnC,EAAExiB,IAAIA,EAAE0iB,EAAEiC,EAAET,EAAE3B,GAAGD,EAAE,SAASC,EAAEviB,GAAG,IAAI/D,EAAE0oB,EAAER,EAAEtnB,EAAEkoB,GAAGhhB,KAAKwhB,IAAI1oB,EAAE4oB,GAAGzlB,EAAEuiB,GAAG,IAAIxe,KAAKlH,EAAE4oB,GAAGzlB,EAAEuiB,GAAG1lB,GAAG,OAAOwlB,EAAEpmB,EAAEA,EAAE4qB,MAAMpE,EAAG,EAACU,EAAE,SAASZ,EAAEviB,GAAG,OAAO2kB,EAAER,EAAEtnB,EAAEsqB,SAAS5E,GAAG/d,MAAM3H,EAAEsqB,OAAO,MAAM9E,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAMnlB,MAAM8C,IAAInD,EAAG,EAACumB,EAAE/c,KAAK0f,GAAG1C,EAAEhd,KAAKsf,GAAGlC,EAAEpd,KAAKwf,GAAGnC,EAAE,OAAOrd,KAAK0e,GAAG,MAAM,IAAI,OAAOrC,GAAG,KAAKO,EAAE,OAAOZ,EAAEC,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAKU,EAAE,OAAOX,EAAEC,EAAE,EAAEe,GAAGf,EAAE,EAAEe,EAAE,GAAG,KAAK3mB,EAAE,IAAI6nB,EAAEle,KAAK+gB,UAAUC,WAAW,EAAEjD,GAAGhB,EAAEmB,EAAEnB,EAAE,EAAEA,GAAGmB,EAAE,OAAOjC,EAAED,EAAEoB,EAAEW,EAAEX,GAAG,EAAEW,GAAGf,GAAG,KAAKZ,EAAE,KAAKS,EAAE,OAAOC,EAAEO,EAAE,QAAQ,GAAG,KAAKlB,EAAE,OAAOW,EAAEO,EAAE,UAAU,GAAG,KAAKX,EAAE,OAAOI,EAAEO,EAAE,UAAU,GAAG,KAAKznB,EAAE,OAAOknB,EAAEO,EAAE,eAAe,GAAG,QAAQ,OAAOrd,KAAK4d,QAAQ,EAAER,EAAEoD,MAAM,SAAStE,GAAG,OAAOlc,KAAKugB,QAAQrE,GAAE,EAAI,EAACkB,EAAE6D,KAAK,SAAS/E,EAAEviB,GAAG,IAAInD,EAAEH,EAAEioB,EAAET,EAAE3B,GAAGG,EAAE,OAAOrc,KAAK0e,GAAG,MAAM,IAAIzC,GAAGzlB,EAAE,GAAGA,EAAE4lB,GAAGC,EAAE,OAAO7lB,EAAEqmB,GAAGR,EAAE,OAAO7lB,EAAEmmB,GAAGN,EAAE,QAAQ7lB,EAAEomB,GAAGP,EAAE,WAAW7lB,EAAE2lB,GAAGE,EAAE,QAAQ7lB,EAAEkmB,GAAGL,EAAE,UAAU7lB,EAAEZ,GAAGymB,EAAE,UAAU7lB,EAAEwlB,GAAGK,EAAE,eAAe7lB,GAAGH,GAAGymB,EAAEzmB,IAAI+lB,EAAEpc,KAAKwf,IAAI7lB,EAAEqG,KAAK0f,IAAI/lB,EAAE,GAAGtD,IAAIsmB,GAAGtmB,IAAIumB,EAAE,CAAC,IAAIG,EAAE/c,KAAK4d,QAAQra,IAAIsZ,EAAE,GAAGE,EAAEgC,GAAG9C,GAAGa,GAAGC,EAAEoC,OAAOnf,KAAK+e,GAAGhC,EAAExZ,IAAIsZ,EAAErd,KAAK0U,IAAIlU,KAAKwf,GAAGzC,EAAEmE,gBAAgBnC,QAAQ9C,GAAGjc,KAAK+e,GAAG9C,GAAGa,GAAG,OAAO9c,KAAKmf,OAAOnf,IAAK,EAACod,EAAE7Z,IAAI,SAAS2Y,EAAEviB,GAAG,OAAOqG,KAAK4d,QAAQqD,KAAK/E,EAAEviB,EAAE,EAAEyjB,EAAExZ,IAAI,SAASsY,GAAG,OAAOlc,KAAKse,EAAET,EAAE3B,KAAM,EAACkB,EAAEzN,IAAI,SAASqM,EAAEK,GAAG,IAAIQ,EAAEZ,EAAEjc,KAAKgc,EAAE7jB,OAAO6jB,GAAG,IAAIc,EAAEwB,EAAET,EAAExB,GAAGU,EAAE,SAASb,GAAG,IAAIviB,EAAE0kB,EAAEpC,GAAG,OAAOqC,EAAER,EAAEnkB,EAAE8jB,KAAK9jB,EAAE8jB,OAAOje,KAAK2hB,MAAMjF,EAAEF,IAAIC,IAAI,GAAGa,IAAIH,EAAE,OAAO3c,KAAKuD,IAAIoZ,EAAE3c,KAAKsf,GAAGtD,GAAG,GAAGc,IAAIF,EAAE,OAAO5c,KAAKuD,IAAIqZ,EAAE5c,KAAKof,GAAGpD,GAAG,GAAGc,IAAIV,EAAE,OAAOW,EAAE,GAAG,GAAGD,IAAIzmB,EAAE,OAAO0mB,EAAE,GAAG,IAAIC,GAAGH,EAAE,CAAA,EAAGA,EAAEH,GAAG/iB,EAAEkjB,EAAEV,GAAG3lB,EAAEqmB,EAAEjnB,GAAGsmB,EAAEW,GAAGC,IAAI,EAAEM,EAAEpd,KAAK+e,GAAG8B,UAAU7E,EAAEgB,EAAE,OAAOsB,EAAER,EAAEV,EAAEpd,KAAM,EAACod,EAAEgE,SAAS,SAASlF,EAAEviB,GAAG,OAAOqG,KAAK2P,KAAK,EAAEuM,EAAEviB,EAAE,EAAEyjB,EAAEiE,OAAO,SAASnF,GAAG,IAAIviB,EAAEqG,KAAKxJ,EAAEwJ,KAAK+gB,UAAU,IAAI/gB,KAAKqgB,UAAU,OAAO7pB,EAAE8qB,aAAarF,EAAE,IAAID,EAAEE,GAAG,uBAAuBtmB,EAAE0oB,EAAEhB,EAAEtd,MAAM0c,EAAE1c,KAAK4f,GAAGzD,EAAEnc,KAAK8f,GAAG1D,EAAEpc,KAAKsf,GAAGjpB,EAAEG,EAAEymB,SAASN,EAAEnmB,EAAE0mB,OAAOb,EAAE7lB,EAAE+qB,SAAS3E,EAAE,SAASV,EAAE1lB,EAAEZ,EAAE8mB,GAAG,OAAOR,IAAIA,EAAE1lB,IAAI0lB,EAAEviB,EAAEqiB,KAAKpmB,EAAEY,GAAGK,MAAM,EAAE6lB,EAAG,EAACG,EAAE,SAASX,GAAG,OAAOoC,EAAE5B,EAAEA,EAAE,IAAI,GAAGR,EAAE,IAAK,EAACY,EAAET,GAAG,SAASH,EAAEviB,EAAEnD,GAAG,IAAIwlB,EAAEE,EAAE,GAAG,KAAK,KAAK,OAAO1lB,EAAEwlB,EAAEvR,cAAcuR,GAAG,OAAOA,EAAEjhB,QAAQgiB,GAAG,SAASb,EAAEF,GAAG,OAAOA,GAAG,SAASE,GAAG,OAAOA,GAAG,IAAI,KAAK,OAAOhkB,OAAOyB,EAAEylB,IAAIvoB,OAAO,GAAG,IAAI,OAAO,OAAOynB,EAAE5B,EAAE/iB,EAAEylB,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOhD,EAAE,EAAE,IAAI,KAAK,OAAOkC,EAAE5B,EAAEN,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,OAAOQ,EAAEpmB,EAAEgrB,YAAYpF,EAAEO,EAAE,GAAG,IAAI,OAAO,OAAOC,EAAED,EAAEP,GAAG,IAAI,IAAI,OAAOziB,EAAE6lB,GAAG,IAAI,KAAK,OAAOlB,EAAE5B,EAAE/iB,EAAE6lB,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOtnB,OAAOyB,EAAE+lB,IAAI,IAAI,KAAK,OAAO9C,EAAEpmB,EAAEirB,YAAY9nB,EAAE+lB,GAAGrpB,EAAE,GAAG,IAAI,MAAM,OAAOumB,EAAEpmB,EAAEkrB,cAAc/nB,EAAE+lB,GAAGrpB,EAAE,GAAG,IAAI,OAAO,OAAOA,EAAEsD,EAAE+lB,IAAI,IAAI,IAAI,OAAOxnB,OAAOwkB,GAAG,IAAI,KAAK,OAAO4B,EAAE5B,EAAEA,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOG,EAAE,GAAG,IAAI,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,OAAOC,EAAEJ,EAAEP,GAAE,GAAI,IAAI,IAAI,OAAOW,EAAEJ,EAAEP,GAAE,GAAI,IAAI,IAAI,OAAOjkB,OAAOikB,GAAG,IAAI,KAAK,OAAOmC,EAAE5B,EAAEP,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOjkB,OAAOyB,EAAEqmB,IAAI,IAAI,KAAK,OAAO1B,EAAE5B,EAAE/iB,EAAEqmB,GAAG,EAAE,KAAK,IAAI,MAAM,OAAO1B,EAAE5B,EAAE/iB,EAAEumB,IAAI,EAAE,KAAK,IAAI,IAAI,OAAOtqB,EAAE,OAAO,KAAhtB,CAAstBsmB,IAAItmB,EAAEmF,QAAQ,IAAI,GAAG,GAAG,EAAEqiB,EAAEG,UAAU,WAAW,OAAO,IAAI/d,KAAK2hB,MAAMnhB,KAAK+e,GAAG4C,oBAAoB,GAAI,EAACvE,EAAEwE,KAAK,SAAS5F,EAAEa,EAAEZ,GAAG,IAAIa,EAAEC,EAAE/c,KAAKgd,EAAEsB,EAAET,EAAEhB,GAAGO,EAAEiB,EAAErC,GAAGqB,GAAGD,EAAEG,YAAYvd,KAAKud,aAAa5jB,EAAEukB,EAAEle,KAAKod,EAAEW,EAAE,WAAW,OAAOO,EAAElB,EAAEL,EAAEK,IAAI,OAAOJ,GAAG,KAAKJ,EAAEE,EAAEiB,IAAI,GAAG,MAAM,KAAKpB,EAAEG,EAAEiB,IAAI,MAAM,KAAK1B,EAAES,EAAEiB,IAAI,EAAE,MAAM,KAAK1nB,EAAEymB,GAAGoB,EAAEb,GAAG,OAAO,MAAM,KAAKjB,EAAEU,GAAGoB,EAAEb,GAAG,MAAM,MAAM,KAAKlB,EAAEW,EAAEoB,EAAE1nB,EAAE,MAAM,KAAKkmB,EAAEI,EAAEoB,EAAEvkB,EAAE,MAAM,KAAK/D,EAAEknB,EAAEoB,EAAEhC,EAAE,MAAM,QAAQY,EAAEoB,EAAE,OAAOjC,EAAEa,EAAEwB,EAAElC,EAAEU,EAAE,EAAEM,EAAE8D,YAAY,WAAW,OAAOlhB,KAAKwgB,MAAM7D,GAAG6C,EAAE,EAAEpC,EAAE2D,QAAQ,WAAW,OAAOhD,EAAE/d,KAAKwe,GAAI,EAACpB,EAAEmB,OAAO,SAASrC,EAAEviB,GAAG,IAAIuiB,EAAE,OAAOlc,KAAKwe,GAAG,IAAIhoB,EAAEwJ,KAAK4d,QAAQ5B,EAAE8B,EAAE5B,EAAEviB,GAAE,GAAI,OAAOqiB,IAAIxlB,EAAEgoB,GAAGxC,GAAGxlB,CAAC,EAAE4mB,EAAEQ,MAAM,WAAW,OAAOU,EAAER,EAAE9d,KAAK+e,GAAG/e,KAAK,EAAEod,EAAE0D,OAAO,WAAW,OAAO,IAAIpjB,KAAKsC,KAAKvE,UAAU,EAAE2hB,EAAEyE,OAAO,WAAW,OAAO7hB,KAAKqgB,UAAUrgB,KAAK8hB,cAAc,IAAI,EAAE1E,EAAE0E,YAAY,WAAW,OAAO9hB,KAAK+e,GAAG+C,aAAa,EAAE1E,EAAEzmB,SAAS,WAAW,OAAOqJ,KAAK+e,GAAGgD,aAAc,EAAC/E,CAAC,CAA/sJ,GAAmtJgF,EAAE5D,EAAE1nB,UAAU,OAAO2nB,EAAE3nB,UAAUsrB,EAAE,CAAC,CAAC,MAAMhG,GAAG,CAAC,KAAKpmB,GAAG,CAAC,KAAK8mB,GAAG,CAAC,KAAKP,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKO,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKC,IAAIpN,SAAS,SAASyM,GAAG8F,EAAE9F,EAAE,IAAI,SAASviB,GAAG,OAAOqG,KAAK2gB,GAAGhnB,EAAEuiB,EAAE,GAAGA,EAAE,QAAQmC,EAAE4D,OAAO,SAAS/F,EAAEviB,GAAG,OAAOuiB,EAAEgG,KAAKhG,EAAEviB,EAAEykB,EAAEC,GAAGnC,EAAEgG,IAAG,GAAI7D,CAAC,EAAEA,EAAEE,OAAOT,EAAEO,EAAE8D,QAAQhE,EAAEE,EAAEuC,KAAK,SAAS1E,GAAG,OAAOmC,EAAE,IAAInC,EAAG,EAACmC,EAAE+D,GAAGrE,EAAEG,GAAGG,EAAEgE,GAAGtE,EAAEM,EAAER,EAAE,CAAA,EAAGQ,CAAC,CAAj6N1kB,uCCAfuH,UAAwL,SAASvH,GAAgB,SAASykB,EAAEzkB,GAAG,OAAOA,GAAG,UAAQnC,EAASmC,IAAG,YAAYA,EAAEA,EAAE,CAAC2oB,QAAQ3oB,EAAE,CAAC,IAAIuiB,EAAEkC,EAAEzkB,GAAGkjB,EAAE,CAAC9lB,KAAK,QAAQkmB,SAAS,uIAA8BpV,MAAM,KAAK6Z,cAAc,6FAAuB7Z,MAAM,KAAK4Z,YAAY,mDAAgB5Z,MAAM,KAAKqV,OAAO,0KAAwCrV,MAAM,KAAK2Z,YAAY,qGAAyC3Z,MAAM,KAAKsV,QAAQ,SAASxjB,EAAEykB,GAAG,MAAM,MAAMA,EAAEzkB,EAAE,SAAIA,EAAE,QAAI,EAACqnB,UAAU,EAAEuB,UAAU,EAAEC,QAAQ,CAACC,GAAG,QAAQC,IAAI,WAAWC,EAAE,aAAaC,GAAG,2BAAYC,IAAI,2CAAkBC,KAAK,+CAAsB7G,EAAE,WAAW8G,GAAG,2BAAYC,IAAI,iCAAkBC,KAAK,sCAAuBC,aAAa,CAACC,OAAO,WAAMC,KAAK,WAAM1G,EAAE,eAAKU,EAAE,iBAAOiG,GAAG,kBAAQzG,EAAE,iBAAO0G,GAAG,kBAAQzG,EAAE,WAAM0G,GAAG,YAAOvG,EAAE,iBAAOwG,GAAG,kBAAQzG,EAAE,WAAM0G,GAAG,aAAQlC,SAAS,SAAS5nB,EAAEykB,GAAG,IAAIlC,EAAE,IAAIviB,EAAEykB,EAAE,OAAOlC,EAAE,IAAI,eAAKA,EAAE,IAAI,eAAKA,EAAE,KAAK,eAAKA,EAAE,KAAK,eAAKA,EAAE,KAAK,eAAK,cAAI,GAAG,OAAOA,EAAC,QAASqC,OAAO1B,EAAE,MAAK,GAAIA,CAAC,CAAhlCuB,CAAEsF,GAAAA,wBCItE,ICEHC,YAAAA,GAAAA,OACVA,EAAS,OAAA,SACTA,EAAS,OAAA,SACTA,EAAO,KAAA,OAHGA,CAAA,EAAAA,IAAA,CAAA,GAMCC,GAAsB5K,GJVpB,CACb6K,YAAa,IACbC,UAAW,CACTC,QAAS,CAAC,SAAU,SAAU,QAC9BC,QAAS,IAEXC,OAAQ,KACRC,SAAU,CACRC,eAAgB,EAChBC,cAAc,EACdC,sBAAkB,GAEpBC,KAAM,CAAC,EACP1sB,MAAO,CACL2sB,aAAc,IAEhBC,OAAQ,CACNC,mBAAmB,EACnBC,qBAAqB,EACrBC,gBAAiB,CACfrC,QAAS,UACTsC,KAAM,UACNC,QAAS,UACTC,OAAQ,UACRC,QAAS,YAGbtT,QAAS,CAAC,EACVuT,WAAY,CACVL,gBAAiB,CACfrC,QAAS,UACTuC,QAAS,UACTC,OAAQ,YAGZG,MAAO,CAELC,gBAAY,EAEZC,cAAU,EAEVC,gBAAY,EAEZC,2BAAuB,EAEvBC,cAAc,EAEd5hB,KAAM,UAER6hB,OAAQ,CAENC,eAAW,EACXC,YAAY,GAEdC,OAAQ,CACNjB,mBAAmB,EACnBC,qBAAqB,EACrBhhB,KAAM,SAERiiB,KAAM,CAEJC,gBAAY,GAEdC,WAAY,CACV1B,eAAgB,GAElB2B,MAAO,CACLC,eAAW,EACXC,eAAW,GAEbvsB,IAAK,CACHwsB,eAAW,GAEbC,KAAM,CACJC,kBAAc,GAEhBC,MAAO,CACLC,UAAW,CACTC,iBAAa,EACbvB,aAAS,EACTwB,UAAM,EACNH,WAAO,EACPI,kBAAc,GAEhBC,MAAO,CACLH,iBAAa,EACbvB,aAAS,EACTwB,UAAM,EACNH,WAAO,EACPI,kBAAc,KGvFL,CACbE,aAAc,CACZN,MAAO,4BAETO,WAAY,CACVC,aAAc,uBACdC,OAAQ,eACRC,KAAM,SACNC,MAAO,qCAETC,SAAU,CACRZ,MAAO,2BACPa,YAAa,qBACbC,YAAa,sBAEfhD,SAAU,CACRiD,cAAe,gBACfC,eAAgB,iBAChBC,UAAW,SACXC,WAAY,SACZC,YAAa,2BACbC,YAAa,2BACbC,MAAO,eACPC,UAAW,eACXC,KAAM,mDACNC,UAAW,kHAEbC,SAAU,CACRC,MAAO,6BACP1B,MAAO,2BACPc,YAAa,oDAEfa,WAAY,CACVC,YAAa,QACbrqB,IAAK,eACLsqB,QAAS,eACTC,aAAc,eACdC,aAAc,eACdjB,YAAa,4BAEf1C,OAAQ,CACNyD,QAAS,eACTtS,OAAQ,gBAEV+P,OAAQ,CACNuC,QAAS,eACTtS,OAAQ,gBAEVqP,WAAY,CACViD,QAAS,CACPG,QAAS,gBAEXzS,OAAQ,CACNyS,QAAS,iBAGbnD,MAAO,CACLmB,MAAO,2BACPa,YAAa,yDACboB,gBAAiB,uCACjBC,uBAAwB,qEACxBC,2BAA4B,2BAC5BC,wBAAyB,uCACzBC,4BAA6B,2BAC7BC,4BAA6B,2BAC7BC,uBAAwB,qBACxBC,sBAAuB,iCACvBC,4BAA6B,6FAC7BC,YAAa,eACbC,WAAY,eACZC,UAAW,eACXC,cAAe,eACfC,iBAAkB,iFAEpB3D,OAAQ,CACNa,MAAO,2BACPa,YAAa,qBACbC,YAAa,sBAEfvB,KAAM,CACJS,MAAO,4BAET+C,WAAY,CACV/C,MAAO,2BACPa,YAAa,qBACbC,YAAa,sBAEfrB,WAAY,CACVmC,YAAa,QACbd,YAAa,CACXzJ,KAAM,iCACNE,MAAO,iCACPD,KAAM,iCACN0L,QAAS,iCACTzB,KAAM,4BAER1K,SAAU,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UACzCC,OAAQ,CACN,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,aAEFmM,SAAU,CAAC,qBAAO,qBAAO,qBAAO,sBAChCC,eAAgB,MAChBC,UAAW,MACXlI,OAAQ,aACRmI,aAAc,SACdC,iBAAkB,SAClBC,cAAe,SACfC,eAAgB,SAChB1B,QAAS,eACT2B,WAAY,2BACZC,WAAY,2BACZC,SAAU,qBACVC,QAAS,qBACTC,UAAW,qBACXC,SAAU,qBACVC,UAAW,2BACXC,WAAY,2BACZxsB,IAAK,gBAEPysB,OAAQ,CACNC,iBAAkB,+DAClBC,iBAAkB,2BAClBC,kBAAmB,CACjBC,UAAW,2BACX/D,MAAO,uCACPgE,OAAQ,2BAERC,SAAU,2BACVC,eAAgB,2BAChBC,OAAQ,eACRC,UAAW,sBAEbC,QAAS,CACPC,aAAc,2BACdC,aAAc,uCACdC,iBAAkB,4HAEpBC,KAAM,CACJC,aAAc,qBACdC,aAAc,2BACdC,eAAgB,eAChBC,kBAAmB,eACnBC,sBAAuB,4BAEzBC,SAAU,CACRC,cAAe,qBACfC,YAAa,qBACbC,SAAU,2BACVC,YAAa,6BAGjB1F,KAAM,CACJ2F,aAAc,CACZpO,KAAM,8CACNqO,IAAK,8CACLC,SAAU,sBACVC,WAAY,kCACZvsB,IAAK,2JACLyU,IAAK,2JACLxe,IAAK,gEACLu2B,KAAM,6CACNC,OAAQ,8CACRC,UAAW,8CACXviB,QAAS,8CACTwiB,UAAW,wCACXC,QAAS,4EACTpnB,OAAQ,yCAEVqnB,UAAW,UAEb10B,MAAO,CACLsvB,YAAa,sBAEfqF,KAAM,CACJtF,YAAa,yDACboB,gBAAiB,wCAEnBmE,MAAO,CACLC,WAAY,2BACZC,aAAc,gBAEhBC,OAAQ,CACNC,gBAAiB,uCACjBC,SAAU,4BAEZC,YAAa,CACXC,iBAAkB,uCAClBC,iBAAkB,uCAClBC,iBAAkB,iFAClBC,YAAa,eACbC,cAAe,gBAEjBC,MAAO,CACLC,kBAAmB,CACjBjF,QAAS,eACTkF,MAAO,WAETC,gBAAiB,CACfnF,QAAS,qBACTkF,MAAO,WAETE,gBAAiB,CACfpF,QAAS,eACTkF,MAAO,WAETG,gBAAiB,CACfrF,QAAS,qBACTkF,MAAO,YAGX7G,MAAO,CACLiH,UAAW,uCACXzG,YAAa,kCAEf0G,YAAa,CACXD,UAAW,uFACXE,cAAe,eACfC,cAAe,eACfC,oBAAqB,4BAEvBC,WAAY,CACVtB,WAAY,eACZC,aAAc,eACdsB,WAAY,4BAEdC,KAAM,CACJC,SAAU,CAAC,eAAM,eAAM,eAAM,eAAM,iBAErC9H,MAAO,CACLC,UAAW,CACTC,YAAa,qBACbvB,QAAS,eACTwB,KAAM,eACNH,MAAO,2BACPI,aAAc,6BAGlB2H,aAAc,CACZ7B,UAAW,UAEb8B,KAAM,CACJlH,YAAa,oCACbmH,YAAa,eACbC,eAAgB,2BAChBC,YAAa,eACbC,YAAa,eACbC,eAAgB,eAChBC,gBAAiB,2BACjBC,oBAAqB,qBACrBC,oBAAqB,uCACrBC,gBAAiB,yDACjBC,aAAc,mDACdC,oBAAqB,2EACrB9H,YAAa,wBACb+H,eAAgB,iCAChBC,gBAAiB,2BACjBC,qBAAsB,8BC/PbC,GAA2El5B,OAAO,iBCPzFm5B,GAAmBC,EAA0BA,MAUnC,SAAAC,KAGd,IAFAC,EAAmBrxB,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,QAAA,EACnBsxB,EACAtxB,UAAAvI,OAAAuI,EAAAA,kBAAAlG,EACMy3B,EAAqBC,EAAAA,qBAAuBC,EAAAA,OAAOR,GAAyB,MAAQC,GACpFQ,EAAqB9Y,EAAAA,UAAS,WAAA,OAAM2Y,eAAAA,EAAoBn3B,QAASsrB,MACjEiM,EAAe/Y,EAAAA,UAAS,WAAA,OAAMrgB,OAAOq5B,OAAO,GAAIF,EAAmBt3B,MAAMi3B,GAAgBC,MA4BxF,MAAA,CACLtT,EAtBQ,SAAatS,GAA4B,IAAAmmB,IAAAA,EAAA7xB,UAAAvI,OAAbkK,MAAa/J,MAAAi6B,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAbnwB,EAAamwB,EAAA9xB,GAAAA,UAAA8xB,GAC3C,IAACnsB,EAAQhE,EAAA,GACX,GAAA0X,GAAS3N,GAAU,CACrB,IAAK/F,EAAa,OAAA+F,EAClB,IACMqmB,EAAarmB,EAAQ7O,QADX,uBAC4B,SAACiK,EAAOrN,GAClD,OAAIkM,EACK3L,OAAO2L,EAAKlM,IAEd,EACT,IACO,OAAAs4B,CACT,CACI,OAAAj0B,EAAW4N,GAER/J,EAAKlK,OACHiU,EAAAzL,WAAA,EAAW0B,GADO+J,EAAQgT,EAACA,GAG7B,IAKP/jB,OAAQg3B,EACRA,aAAAA,EACAhM,YA9BkB/M,EAAAA,UAAS,WAC3B,OAAO8Y,EAAmBt3B,MAAMurB,WAClC,IA8BF,CAOa,IAAAqM,GAAgB,SAAC/wB,GACtB,IAAAgxB,EAActgB,GAAU+T,IACxBgM,EAAqB9Y,EAAAA,UAAS,WAAA,OAClCrgB,OAAOq5B,OAAO,IDnDQlM,ECmDMuM,EDnDqCC,ECmDWjxB,EAAM0wB,aDlDpFtZ,GAAWqN,EAAqBwM,GAAc,SAACnxB,EAAUyT,GACnD,GAAAxb,EAAQ+H,GACH,OAAAyT,CAEX,MALuB,IAACkR,EAA2CwM,CCmD8B,IAS1F,OANPC,UAAQlB,GAAyBS,GAE5BR,GAAiB92B,QACpB82B,GAAiB92B,MAAQs3B,EAAmBt3B,OAGvCs3B,CACT,EC5EO,SAASU,GAAef,GAC7B,IAAQ1L,EAAgByL,GAAU,eAA1BzL,YACR,OAAO/M,YAAS,WACd,OAAOyY,EAAgB,GAAAgB,OAAG1M,EAAYvrB,MAAAi4B,KAAAA,OAAShB,GAAkB1L,EAAYvrB,KAC/E,GACF,CAEO,SAASk4B,KACd,IAAQ3M,EAAgByL,GAAU,eAA1BzL,YAED,MAAA,CACL4M,KAAM3Z,YAAS,WAAA,MAAO,CACpB4Z,SAAAH,OAAU1M,EAAYvrB,MAAA,WACtBq4B,UAAAJ,OAAW1M,EAAYvrB,MAAA,WACvBs4B,SAAAL,OAAU1M,EAAYvrB,MAAA,WACtBgqB,QAAS,GACTuO,MAAAN,OAAO1M,EAAYvrB,MAAA,YACnBw4B,MAAAP,OAAO1M,EAAYvrB,MAAA,YACnBy4B,MAAAR,GAAAA,OAAU1M,EAAYvrB,MAAA,oBACtB,IACF04B,OAAQla,YAAS,WAAA,MAAO,CACtBma,WAAAV,OAAY1M,EAAYvrB,MAAA,eACxB44B,YAAAX,OAAa1M,EAAYvrB,MAAA,iBACzB64B,YAAAZ,OAAa1M,EAAYvrB,MAAA,gBACzB84B,WAAAb,OAAY1M,EAAYvrB,MAAA,eACxBysB,WAAAwL,OAAY1M,EAAYvrB,MAAA,eACxB+4B,SAAAd,OAAU1M,EAAYvrB,MAAA,aACtBusB,WAAA0L,OAAY1M,EAAYvrB,MAAA,eACxBg5B,YAAAf,OAAa1M,EAAYvrB,MAAA,gBACzBi5B,UAAAhB,OAAW1M,EAAYvrB,MAAA,cACvBk5B,WAAAjB,OAAY1M,EAAYvrB,MAAA,eACxBygB,WAAAwX,OAAY1M,EAAYvrB,MAAA,eACxBm5B,UAAAlB,OAAW1M,EAAYvrB,MAAA,cACvBo5B,WAAAnB,OAAY1M,EAAYvrB,MAAA,eACxBq5B,YAAApB,OAAa1M,EAAYvrB,MAAA,gBACzBs5B,cAAArB,GAAAA,OAAkB1M,EAAYvrB,MAAA,yBAGpC,CClCA,SAASu5B,GAASC,EAAiBC,GACpBt7B,OAAO4F,KAAK01B,GACpBtiB,SAAQ,SAAC9X,GAGTm6B,EAAAE,MAAMr6B,GAAOo6B,EAAOp6B,EACzB,GAGF,CCfe,SAASs6B,GAAyBz0B,EAAQ00B,GACvD,GAAc,MAAV10B,EAAgB,MAAO,GAC3B,IACI7F,EAAK/B,EADLu8B,ECHS,SAAuC30B,EAAQ00B,GAC5D,GAAc,MAAV10B,EAAgB,MAAO,GAC3B,IAEI7F,EAAK/B,EAFLu8B,EAAS,CAAA,EACTC,EAAa37B,OAAO4F,KAAKmB,GAE7B,IAAK5H,EAAI,EAAGA,EAAIw8B,EAAWz8B,OAAQC,IACjC+B,EAAMy6B,EAAWx8B,GACbs8B,EAASG,QAAQ16B,IAAQ,IAC7Bw6B,EAAOx6B,GAAO6F,EAAO7F,IAEvB,OAAOw6B,CACT,CDReG,CAA6B90B,EAAQ00B,GAElD,GAAIz7B,OAAOkV,sBAAuB,CAChC,IAAI4mB,EAAmB97B,OAAOkV,sBAAsBnO,GACpD,IAAK5H,EAAI,EAAGA,EAAI28B,EAAiB58B,OAAQC,IACvC+B,EAAM46B,EAAiB38B,GACnBs8B,EAASG,QAAQ16B,IAAQ,GACxBlB,OAAOC,UAAUkK,qBAAqBhK,KAAK4G,EAAQ7F,KACxDw6B,EAAOx6B,GAAO6F,EAAO7F,GAEzB,CACA,OAAOw6B,CACT,kCEFO,SAASK,GAA6Cn6B,GAC3D,IAAMo6B,EAAqB,CAAA,EAQpB,OANPh8B,OAAO4F,KAAKhE,GAAKoX,SAAQ,SAAC9X,GACnB+gB,GAAYrgB,EAAIV,MAAS8gB,GAAOpgB,EAAIV,MACvC86B,EAAO96B,GAAkBU,EAAIV,GAEjC,IAEO86B,CACT,CA6BO,SAASC,GAAmBC,GAC7B,GAAApb,GAASob,GACJ,OAAAA,EAEL,GAAAz7B,EAAQy7B,GAIH,OAHHA,EAAM,IAAsB,MAAhBA,EAAM,GAAG,IACvBA,EAAMC,QAAQ,SAET,oBAAArC,OAAoBoC,EAAMnrB,KAAK,KAAG,MAErC,IACJrR,EACEw8B,EADFx8B,KAAM08B,EACJF,EADIE,GAAAC,EACJH,EADQpJ,UAAAA,OAAY,IAAAuJ,EAAA,WAAAA,EAAeC,EAAAd,GACnCU,EAAAK,IACA32B,EAAO5F,OAAO4F,KAAK02B,GACvB,GAAI12B,EAAK1G,OAAQ,CAKT,IAAAs9B,GAJN52B,EAAOA,EAAK62B,MAAK,SAAC9W,EAAGkC,GAEZ,OADG6U,WAAW/W,EAAEgX,OAAO,EAAGhX,EAAEzmB,OAAS,IAAMw9B,WAAW7U,EAAE8U,OAAO,EAAG9U,EAAE3oB,OAAS,GAEtF,KACqBwO,KAAI,SAACxM,mBAAgBo7B,EAAKp7B,eAA6BA,EAAK,IACjF,MAAA44B,mBAAAA,OAA0BhH,EAAAgH,MAAAA,OAAc0C,EAAQzrB,KAAK,KAAG,IAC1D,CACO,MAAA+oB,mBAAAA,OAAmBhH,eAAcpzB,EAAS,MAAAo6B,OAAAsC,EAAA,IACnD,CAMO,SAASQ,KACV,GAAqB,oBAAdC,YAA8BA,UAAW,OAAOn7B,OAAOo7B,iBAE5D,IAAEC,EAAcF,UAAdE,UAEFC,EAAOD,EAAUnB,QAAQ,eAAsB,GAAAmB,EAAUnB,QAAQ,SAAU,EAE3EqB,EAASF,EAAUnB,QAAQ,YAAmB,GAAAmB,EAAUnB,QAAQ,YAAa,EACnF,GAAIoB,EAAM,CACF,IAAAE,EAAO,IAAI92B,OAAO,uBAClBmI,EAAQwuB,EAAUxuB,MAAM2uB,GAC9B,IAAK3uB,EAAc,OAAA,EACb,IAAA4uB,EAAaT,WAAWnuB,EAAM,IAC7B,OAAA4uB,EAAa,EAAI,EAAIA,CAC9B,CACA,OAAIF,EAEK,GAGFv7B,OAAOo7B,gBAChB,CAgCgB,SAAAM,GAAmBC,EAAaC,GACxC,IAAAC,EAAkBzb,GAASwb,GACjC,IAAKD,GAAsB,IAAfA,EAAIn+B,OACd,OAAIq+B,EACK,CACLr+B,OAAQ,EACRs+B,WAAYH,GAGT,EAGT,IADA,IAAIp+B,EAAM,EACDE,EAAI,EAAGA,EAAIk+B,EAAIn+B,OAAQC,IAAK,CACnC,IAAIs+B,EAAsB,EAMtB,GAJoBA,EADpBJ,EAAI/uB,WAAWnP,GAAK,IACA,EAEA,EAEpBo+B,GAAmBt+B,EAAMw+B,EAAsBH,EAC1C,MAAA,CACLp+B,OAAQD,EACRu+B,WAAYH,EAAIj9B,MAAM,EAAGjB,IAGtBF,GAAAw+B,CACT,CACA,OAAIF,EACK,CACLr+B,OAAQD,EACRu+B,WAAYH,GAGTp+B,CACT,CAqCO,SAASy+B,GAASC,GACvB,OAAO7b,GAAS6b,MAAS7D,OAAG6D,EAAY,MAAAA,CAC1C,CAOA,IAAMC,GAAkB,CACtB,cACA,iBACA,eACA,gBACA,cACA,cACA,YACA,eACA,iBACA,iBACA,QACA,cACA,eACA,aACA,cACA,qlBClOF,IAAAC,GAAeC,kBAAgB,CAC7Bx9B,KAAM,mBACNy9B,MAAQ,WACN,IAAM3Q,EAAcyM,KACdmE,EAAYpF,EAAAA,MAQlB,OANAqF,EAAAA,WAAU,WACRC,EAAAA,UAAS,YCRf,SAAsCC,GAAyB,IAAAC,EAAAC,EAAAC,EACzDC,EAAa,CAAA,EAEjB,GAAKJ,GAAgC,oBAAXK,OAA1B,CAIA,IAAAC,EAA4BL,QAA5BA,EAA4BI,cAAAH,IAAAD,WAAAC,EAAAD,EAAQM,qCAARL,EAAAl+B,KAAAi+B,EAA2BD,GAA/CjC,EAAOuC,EAAPvC,MAAOyC,EAAAF,EAAAE,SAITC,UAAAN,EAAKE,qBAAmB,UAAnBF,EAAQzB,iBAARyB,IAAmBA,OAAnBA,EAAAA,EAAmBvB,UACxB8B,EAAW,SAASt+B,KAAKq+B,KAAQ,SAASr+B,KAAKq+B,GAE/CE,EAAc,mCAAmCv+B,KAAKq+B,KAAQ,SAASr+B,KAAKq+B,GAU9E,IAPAC,GAAYC,KACDP,EAAA,CACXQ,gBAAiB,UACjB51B,UAAW,SAAA2wB,OAASj1B,SAAS85B,EAAU,IAAM,GAAA,OAI7CzC,GAASU,KAAiB,GAAI,CAC1B,IAAAoC,EAAU9C,EAAM3tB,MAAM,WACtB0wB,EAAWD,iBAAkBA,EAAQ,gBAAOA,EAAQ,GAAAlF,MAAAA,OAAOkF,EAAQ,GAAW,QAAA,GACpF5D,GAAS+C,EAAYe,GAAAA,MAChBX,GAAA,GAAA,CACHY,mDAAArF,OAAoDmF,EAAkBnF,WAAAA,OAAAoC,EAAA,cAE1E,MACEd,GAAS+C,EAAYe,GAAAA,MAChBX,GAAA,GAAA,CACHY,WAAY,KA7BhB,CAgCF,CD5BQC,CAAcpB,EAAUn8B,MAC1B,GACF,IAEO,WACC,IAAAvB,EAAAw5B,GAAAA,OAAU1M,EAAYvrB,MAAA,sBACtBw9B,EAAU,CAAC/+B,EAAM,GAAAw5B,OAAG1M,EAAYvrB,MAAoB,kBAE1D,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAEWF,EAAAG,QAAA,YAAAC,QAAA,MAAAC,MAAA,MAAAC,OAAA,MAAAC,MAAA,8BAAA,CAAAN,EAAAO,YAAA,gBAAA,CAAA3X,EAAA,IAAA5B,EAAA,IAAAoZ,MAAA,KAAAC,OAAA,MAAA,CAAAL,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OAQUx5B,gBAAmB09B,GAAA,UAK5C,2JEnCF,OAAA8B,YAAA54B,OAAA6D,oBAAAA,SAAAA,OAAAA,SAAAA,QAAAg1B,QACYC,GAAA11B,QAAA,WACV,OAAA21B,IAAIC,GAAA,GACN,IAAAn1B,QAAAg1B,YACc,WAFR,IAAAI,EAIN,OAAa,KADTA,EAAAJ,KACS,GAAAI,EAAiB,EAC9B,KAEIC,EAAA,IAAAr1B,QAAAs1B,WAAAC,EAAiBF,GAAjBn5B,KAAAC,KACE84B,GAAO11B,QAFJ,WAAA,OAAArD,KAAAC,MAAAq5B,CAIT,iBACIP,GAA4B11B,QAA5B,4ECNJ,IAPA,IAAIpD,GAAM+lB,GAA0B3iB,QAChC/H,GAAyB,oBAAXi8B,OAAyBp8B,GAASo8B,OAChDgC,GAAU,CAAC,MAAO,UAClBC,GAAS,iBACTC,GAAMn+B,GAAK,UAAYk+B,IACvBE,GAAMp+B,GAAK,SAAWk+B,KAAWl+B,GAAK,gBAAkBk+B,IAEpDthC,GAAI,GAAIuhC,IAAOvhC,GAAIqhC,GAAQthC,OAAQC,KACzCuhC,GAAMn+B,GAAKi+B,GAAQrhC,IAAK,UAAYshC,IACpCE,GAAMp+B,GAAKi+B,GAAQrhC,IAAK,SAAWshC,KAC5Bl+B,GAAKi+B,GAAQrhC,IAAK,gBAAkBshC,IAI7C,IAAIC,KAAQC,GAAK,CACf,IAAIngB,GAAO,EACPogB,GAAK,EACLC,GAAQ,GACRC,GAAgB,IAAO,GAE3BJ,GAAM,SAASjtB,GACb,GAAoB,IAAjBotB,GAAM3hC,OAAc,CACrB,IAAI6hC,EAAO75B,KACP2e,EAAO9c,KAAKC,IAAI,EAAG83B,IAAiBC,EAAOvgB,KAC/CA,GAAOqF,EAAOkb,EACdpiB,YAAW,WACT,IAAIqiB,EAAKH,GAAMzgC,MAAM,GAIrBygC,GAAM3hC,OAAS,EACf,IADgB,IAAA+hC,EAAAA,WAEd,IAAID,EAAG7hC,GAAG+hC,UACR,IACEF,EAAG7hC,GAAGsU,SAAS+M,GAChB,CAAC,MAAMtd,GACNyb,YAAW,WAAa,MAAMzb,CAAG,GAAE,EACpC,GANG/D,EAAI,EAAGA,EAAI6hC,EAAG9hC,OAAQC,IAAG8hC,GASlC,GAAEl4B,KAAK2hB,MAAM7E,GACf,CAMD,OALAgb,GAAM/0B,KAAK,CACTq1B,SAAUP,GACVntB,SAAUA,EACVytB,WAAW,IAENN,IAGTD,GAAM,SAASQ,GACb,IAAI,IAAIhiC,EAAI,EAAGA,EAAI0hC,GAAM3hC,OAAQC,IAC5B0hC,GAAM1hC,GAAGgiC,SAAWA,IACrBN,GAAM1hC,GAAG+hC,WAAY,GAI7B,CAEAE,GAAc92B,QAAG,SAAS+2B,GAIxB,OAAOX,GAAIvgC,KAAKoC,GAAM8+B,EACxB,EACAC,GAAAh3B,QAAA4U,OAAwB,WACtByhB,GAAIj5B,MAAMnF,GAAMkF,UAClB,EACuB85B,GAAAA,QAAAC,SAAG,SAASj7B,GAC5BA,IACHA,EAAShE,IAEXgE,EAAOk7B,sBAAwBf,GAC/Bn6B,EAAOm7B,qBAAuBf,EAChC,oBC1CagB,GAAiC,SAACrf,EAASpZ,EAAO+G,EAAK2xB,GAC5D,IAAAC,GAAU5xB,EAAM/G,GAAS,EAC3BoV,EAAOgE,GAAWsf,EAAW,GACjC,OAAItjB,EAAO,EACFujB,EAASvjB,EAAOA,EAAOA,EAAOpV,EAIhC24B,IAFCvjB,GAAA,GAEgBA,EAAOA,EAAO,GAAKpV,CAC7C,EC5Ba44B,GAA6B,oBAAXtD,OAGlBuD,IACND,IAAYE,SAASC,iBACjB,SACLC,EACAC,EACAC,EACAxkB,GAEIskB,GAAWC,GAASC,GACdF,EAAAD,iBAAiBE,EAAOC,EAASxkB,IAIxC,SAACskB,EAAeC,EAAeC,GAChCF,GAAWC,GAASC,GACrBF,EAAgBG,YAAAvI,KAAAA,OAAiBqI,GAASC,IAKpCE,IACNR,IAAYE,SAASO,oBACjB,SACLL,EACAC,EACAC,EACAxkB,GAEIskB,GAAWC,GACLD,EAAAK,oBAAoBJ,EAAOC,EAASxkB,IAI3C,SAACskB,EAAeC,EAAeC,GAChCF,GAAWC,GACZD,EAAgBM,YAAA1I,KAAAA,OAAiBqI,GAASC,IAoBjC,SAAAK,GAASpH,EAAaqH,GAChC,IAACrH,IAAOqH,EAAY,OAAA,EACpB,IAAqB,IAArBA,EAAI9G,QAAQ,KAAmB,MAAA,IAAI+G,MAAM,uCAC7C,OAAItH,EAAGuH,UACEvH,EAAGuH,UAAUC,SAASH,GAExB,IAAA5I,OAAIuB,EAAGyH,UAAalH,KAAAA,QAAQ9B,IAAAA,OAAI4I,SAAU,CACnD,CAEgB,SAAAK,GAAS1H,EAAaqH,GACpC,GAAKrH,EAAL,CAIA,IAHA,IAAI2H,EAAW3H,EAAGyH,UACZzD,GAAWqD,GAAO,IAAItxB,MAAM,KAEzBjS,EAAI,EAAG8jC,EAAI5D,EAAQngC,OAAQC,EAAI8jC,EAAG9jC,IAAK,CAC9C,IAAM+jC,EAAU7D,EAAQlgC,GACnB+jC,IAED7H,EAAGuH,UACFvH,EAAAuH,UAAU1pB,IAAIgqB,GACPT,GAASpH,EAAI6H,KACvBF,GAAAlJ,IAAAA,OAAgBoJ,IAEpB,CACK7H,EAAGuH,YACNvH,EAAGyH,UAAYE,EAfR,CAiBX,CAEgB,SAAAG,GAAY9H,EAAaqH,GACnC,GAACrH,GAAOqH,EAAR,CAIJ,IAHM,IAAArD,EAAUqD,EAAItxB,MAAM,KACtB4xB,EAAAlJ,IAAAA,OAAeuB,EAAGyH,UAAA,KAEb3jC,EAAI,EAAG8jC,EAAI5D,EAAQngC,OAAQC,EAAI8jC,EAAG9jC,IAAK,CAC9C,IAAM+jC,EAAU7D,EAAQlgC,GACnB+jC,IAED7H,EAAGuH,UACFvH,EAAAuH,UAAUve,OAAO6e,GACXT,GAASpH,EAAI6H,KACtBF,EAAWA,EAAS1+B,QAAA,IAAAw1B,OAAYoJ,EAAY,KAAA,MAEhD,CACK7H,EAAGuH,YACHvH,EAAAyH,WAAiBE,GAtGsB,IAAI1+B,QAAQ,6BAA8B,IAuFrE,CAiBnB,CAEa,IAAA8+B,GAAY,SAACC,EAAWC,GACnC,IAAMC,EAAah+B,EAAW89B,GAAQA,EAAKC,GAAeD,EAC1D,OAAKE,EAGDziB,GAASyiB,GACJvB,SAASwB,cAAcD,GAE5BA,aAAsBE,YACjBF,EAEFvB,SAAS0B,KARP1B,SAAS0B,IASpB,EASaC,GAAqB,WAAiE,IAAhEC,EAAAn8B,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAA6B,OAC1D,OAAAqZ,GAAS8iB,GACJ5B,SAASwB,cAAcI,GAE5Br+B,EAAWq+B,GACNA,IAEFA,CACT,EASA,SAASC,GAASjiC,GACT,OAAAA,GAAOA,IAAQA,EAAI48B,MAC5B,CAYgB,SAAAsF,GAAUpI,EAAsBqI,GAE1C,GAAAjC,KAAapG,EACR,OAAA,EAEH,IAAAsI,EAASD,EAAS,aAAe,YACnC5gC,EAAS,EAQN,OAPH0gC,GAASnI,GACDv4B,EAAAu4B,EAAkBqI,EAAS,cAAgB,eAC5CrI,aAAkBuI,SAC3B9gC,EAASu4B,EAAOwI,gBAAgBF,GACvBtI,IACTv4B,EAAUu4B,EAAuBsI,IAE5B7gC,CACT,CASgB,SAAAghC,GAASzI,EAAgB0I,GACvC,IAAAC,EAAwED,EAAhER,UAAAA,OAAYpF,IAAA6F,EAAA7F,OAAA6F,EAAAC,EAAoDF,EAA5CxC,SAAAA,OAAW,MAAA,IAAK0C,EAAAC,EAA4BH,EAA5BI,OAAAA,OAAS7C,IAAT4C,EAAS5C,KAC/C8C,EAAYX,GAAUF,GACtBc,EAAYz9B,KAAKC,MAChB,OAAA,IAAI0O,SAAQ,SAACpU,GAClB,IAAMmjC,EAAM,WACJ,IACArmB,EADYrX,KAAKC,MACEw9B,EACnBE,EAAgBJ,EAAOz7B,KAAK0U,IAAIa,EAAMsjB,GAAW6C,EAAW/I,EAAQkG,GACtEiC,GAASD,GACVA,EAAqBO,SAAS3F,OAAOqG,YAAaD,GAC1ChB,aAAqBK,UAA2C,iBAA/BL,EAAUvjC,YAAYC,KAC/DsjC,EAAuBM,gBAAgBO,UAAYG,EAEnDhB,EAA0Ba,UAAYG,EAGvClE,GADEpiB,EAAOsjB,EACL+C,EAIAnjC,IAGRk/B,GAAIiE,EACN,GACF,CA6Ba,IAAAG,GAAiB,SAC5BC,GAEA,IAAAC,EAA6CD,EAArCE,YAAAA,OAAc,IAAdD,EAAc,EAAGA,EAAAE,EAAoBH,EAApBI,YACzB,YADuC,IAAdD,EAAc,KAClBD,CACvB,EAwBaG,GAAgB,SAAC1J,GACxB,KAAEA,aAAkB2J,iBAChB,MAAA,IAAI1C,MAAM,kCAEZ,IAAA2C,EAAYtD,SAASuD,cAAc,SACzCD,EAAU9gC,KAAO,SACjB8gC,EAAUtK,QAAS,EACnBU,EAAO8J,YAAYF,GACnBA,EAAUG,QACV/J,EAAOgK,YAAYJ,EACrB,EASgB,SAAAK,GAAkBC,EAAkBljB,GAC5C,IAAAmjB,EAAOD,EAAIE,wBACjB,GAAIpjB,EAAQ,CACJ,IAAAqjB,EAAarjB,EAAOojB,wBAC1B,OACED,EAAKG,KAAOD,EAAWC,KACvBH,EAAKI,MAAQF,EAAWE,MACxBJ,EAAKK,QAAUH,EAAWG,QAC1BL,EAAKM,OAASJ,EAAWI,KAE7B,CACA,OAAON,EAAKG,KAAO,GAAKH,EAAKI,MAAQ,GAAKJ,EAAKK,OAAS,IAAM1H,OAAO4H,aAAeP,EAAKM,OAAS3H,OAAO6H,UAC3G,CAQgB,SAAAC,GAAmBpE,EAAsBqE,GACvD,IAAIC,EAAY,GAMZ,OAJAxE,SAASyE,aAAezE,SAASyE,YAAY/H,mBAC/C8H,EAAYxE,SAASyE,YAAY/H,iBAAiBwD,EAAS,MAAMwE,iBAAiBH,IAGhFC,GAAaA,EAAUxyB,YAClBwyB,EAAUxyB,cAGZwyB,CACT,CAOO,SAASG,GAAQzE,GACtB,IAAM9a,EAAI8a,EAAQ0E,WAElB,SAAKxf,GAAoB,SAAfA,EAAEyf,YAIoC,UAA5CP,GAAmBpE,EAAS,aAIzByE,GAAQvf,GACjB,CAMO,SAAS0f,KACR,IAAEpD,EAAS1B,SAAT0B,KACFqD,EAAS/E,SAASkC,gBAIjB,MAAA,CAAEO,UAHSjG,OAAOwI,aAAeD,EAAOtC,WAAaf,EAAKe,UAG7CwC,WAFDzI,OAAOqG,aAAekC,EAAOE,YAAcvD,EAAKuD,WAGrE,CCzWA,IAAQvkC,GAAmB1C,OAAOC,UAA1ByC,eAEKwkC,GAAS,SAAmBC,EAAQjmC,UAAkDwB,GAAevC,KAAKgnC,EAAKjmC,EAAG,EAClHkmC,GAAwB,SACnCD,EACAjmC,GAAA,OAC4BgmC,GAAOC,EAAKjmC,GAAOimC,EAAIjmC,QAAO,CAAA,ECWrD,SAASmmC,GAAezpB,GACzB,IAAA0pB,EAOG,OANH/iC,EAASqZ,IAAY,gBAAiBA,EACxC0pB,EAAc1pB,EAAQ0pB,aACbC,EAAAA,QAAQ3pB,IAAYkD,GAASlD,MACxB0pB,EAAA1pB,GAGT0pB,CACT,CAEO,SAASE,GAAY7V,GAC1B,IAAM8V,EAAqB,GACrBC,EAAmB,SAAC/V,GACpB,GAAClxB,EAAQkxB,GASN,OARPA,EAAQ3Y,SAAQ,SAAC2uB,GACf,GAAIA,EAAKC,UAAYnnC,EAAQknC,EAAKC,UAAW,CAC3C,GAAID,EAAKnjC,OAASqjC,EAAAA,SAAU,OAC5BH,EAAiBC,EAAKC,SACxB,MACEH,EAAU37B,KAAK67B,EAEnB,IACOF,GAGT,OAAOC,EAAiB/V,EAC1B,CAEO,SAASmW,GAAUlqB,GACxB,OAAOrZ,EAASqZ,IAAY,WAAYA,EAAUA,EAAQmqB,OAAS,EACrE,CAOgB,SAAAC,GAAYC,EAAmCF,EAA6BznC,GAAc,IAAA4nC,EAAAC,EAAAC,EAAAC,EAEpGhF,aAAO8E,EAAAF,EAASK,QAAOx0B,GAAUxT,WAA1B4nC,WAAAA,EAAAA,EAAA/nC,KAAAgoC,EAAmCJ,GAC1C,OAAA1E,KAEJA,UAAA+E,GAAOC,EAAAJ,EAASK,QAAOpmB,GAAU5hB,WAA1B8nC,WAAAA,EAAAA,EAAAjoC,KAAAkoC,EAAmCN,KAEnC,KACT,CAWO,IAAMQ,GAAiB,SAACN,EAAmC3nC,EAAcsd,GAExE,IAIF4qB,EAJET,EAASD,GAAUlqB,GACnB0pB,EAAcD,GAAezpB,GAgB/B,GAZAtd,KAAQ2nC,IACVO,EAAYP,EAAS3nC,KAWL,IAAdkoC,GAAqC,OAAdA,EACvB,OAAc,IAAdA,GAAsBlB,EACjBU,GAAYC,EAAUF,EAAQznC,IAASgnC,EAI5C/hC,EAAWijC,GAAmBA,EAAUriB,EAAAA,EAAG4hB,GAC1B,MAAC,EAAWA,EAAQ,IAAI7nB,SAASsoB,KAEjCP,EAASK,OAAOx0B,GAAUxT,KAAU2nC,EAASK,OAAOpmB,GAAU5hB,KAC1E0nC,GAAYC,EAAUF,EAAQznC,GAEhCkoC,CACT,ECpGA,SAASR,GAAYC,EAAqC3nC,EAAcynC,GAA6B,IAAAU,EAAAC,EAAAC,EAAAC,EAS/FvF,aAAOqF,EAAAT,EAASY,OAAM/0B,GAAUxT,WAAzBmoC,WAAAA,EAAAA,EAAAtoC,KAAAuoC,EAAkCX,GACzC,OAAA1E,GAAQA,EAAKyF,QAAO,SAACrjB,GAAA,MAA4B,kBAAtBA,EAAEjhB,KAAKtE,UAA8B,IAAEhB,SAEtEmkC,UAAAsF,GAAOC,EAAAX,EAASY,OAAM3mB,GAAU5hB,WAAzBqoC,WAAAA,EAAAA,EAAAxoC,KAAAyoC,EAAkCb,KAC7B1E,EAAKyF,QAAO,SAACrjB,GAAA,MAA4B,kBAAtBA,EAAEjhB,KAAKtE,UAA8B,IAAEhB,OAHemkC,EAI9E,IACT,CAKA,SAAS0F,GAAY1F,GACnB,QAAI,MAAC,EAAW,KAAM,IAAInjB,SAASmjB,MAChBA,aAAgBhkC,MAAQgkC,EAAO,CAACA,IAC9ByF,QAAO,SAACzF,eAAoC,qBAA3BA,SAAM2F,QAAAA,EAAN3F,EAAM7+B,gBAAAwkC,SAAN3F,EAAYnjC,eACxChB,MACZ,CA2BO,IAAM+pC,GAAc,WACzB,IAAMhB,EAAWhP,EAAAA,qBACV,OAAA,SAAU34B,EAAcsd,GAEvB,IAAAsrB,EAAepB,GAAUlqB,GAGzB0pB,EAAcD,GAAezpB,GAE7BurB,EDjBH,SAAsBvrB,GAC3B,SAAOrZ,EAASqZ,MAAY,cAAeA,KAAUA,EAAQwrB,SAC/D,CCewBC,CAAazrB,GAE3B0rB,EAAarB,EAASY,MAAM/0B,GAAUxT,KAAU2nC,EAASY,MAAM3mB,GAAU5hB,IAE/E,GAAI6oC,GAAeG,EAEV,OAAAtB,GAAYC,EAAU3nC,EAAM4oC,GAI/B,GArCV,SAA6BjB,EAAqC1B,GAChE,IAAMgD,GAAStB,aAAA,EAAAA,EAAUuB,MAAM9gC,QAAS,CAAA,EACjC,OAAAw+B,GAAOqC,EAAQz1B,GAAUyyB,KAAcW,GAAOqC,EAAQrnB,GAAUqkB,GACzE,CAkCUkD,CAAoBxB,EAAU3nC,GAAO,CAEjCkoC,IAAAA,EAAYP,EAASv/B,MAAMoL,GAAUxT,KAAU2nC,EAASv/B,MAAMwZ,GAAU5hB,IAE1EkoC,IAAc,IAAdA,GAAqC,OAAdA,EAAoB,OAE/C,OAAkB,IAAdA,EACKR,GAAYC,EAAU3nC,EAAM4oC,IAAiB5B,EAGlD/hC,EAAWijC,GAAmBA,EAAUriB,EAAAA,EAAG+iB,GAE1B,MAAC,EAAW,IAAIhpB,SAASsoB,IAC1Bc,EACXtB,GAAYC,EAAU3nC,EAAM4oC,GAG9BV,CACT,CAEA,GAAIc,EACK,OAAAtB,GAAYC,EAAU3nC,EAAM4oC,GAG/B,IAAAV,EAAYP,EAASv/B,MAAMoL,GAAUxT,KAAU2nC,EAASv/B,MAAMwZ,GAAU5hB,IAC1E,OAAc,IAAdkoC,GAAqC,OAAdA,GACT,IAAdA,EACKlB,EAEL/hC,EAAWijC,GAAmBA,EAAUriB,EAAAA,EAAG+iB,GACxCV,OALH,EAQV,EAWakB,GAAkB,WAC7B,IAAMnB,EAAiBU,KAChB,OAAA,SAAU3oC,EAAcsd,GACvB,IAAA0pB,EAAcD,GAAezpB,GAC5B,OAAA2qB,EAAejoC,EAAMsd,IAAY0pB,EAE5C,EAaaqC,GAAa,WACxB,IAAMpB,EAAiBU,KAChB,OAAA,SAAUW,EAAeC,EAAejsB,GAEvC,IAAAmqB,EAASD,GAAUlqB,GACnB0pB,EAAcD,GAAezpB,GAE7BksB,EAAW/B,EAAS,CAAEA,OAAAA,QAAW,EAEjCgC,EAAQxB,EAAeqB,EAAOE,GAC9BE,EAAQzB,EAAesB,EAAOC,GAE9BtoC,EAAMunC,GAAYgB,GAASC,EAAQD,EAClC,OAAAhB,GAAYvnC,GAAO8lC,EAAc9lC,EAE5C,ECnJMyoC,GAAc,SAClBzc,EACA8V,GAGM,IAAAlH,EAAK72B,EAAWioB,GAAUnN,WAASmN,GAAUoL,MAAIpL,GACjD0c,EAAmB3kC,EAAW+9B,GAAejjB,WAASijB,GAAe1K,MAAI0K,GAEzEpB,EAAUtJ,EAAAA,MAEVuR,EAAa,WACjBjI,EAAQrgC,MAAQuhC,GAAUhH,EAAGv6B,MAAOqoC,EAAiBroC,QAOhD,OAJGo8B,EAAAA,WAAA,WAAA,OAAMkM,OAEhBC,EAAAA,MAAM,CAAChO,EAAI8N,IAAmB,WAAA,OAAMC,OAE7BjI,CACT,ECnBemI,GAAA,CAEb7c,OAAQ,CACNhpB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB8nC,MAAO,CACL9lC,KAAM9C,OACNmqB,QAAS,GAGX0e,WAAYC,QAEZC,UAAW,CACTjmC,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGX6e,aAAcF,QAEdhQ,QAAS,CACPh2B,KAAMgmC,QACN3e,SAAS,GAGX8e,qBAAsB,CACpBnmC,KAAMgmC,QACN3e,SAAS,GAGX+e,YAAa,CACXpmC,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,UAGXgf,KAAM,CACJrmC,KAAM,CAAC/C,OAAQe,WAGjBsoC,OAAQ,CACNtmC,KAAM9C,SC1CVqpC,GAAejN,kBAAgB,CAC7Bx9B,KAAM,WACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAyB,IAAhBmgC,EAAAoC,EAAApC,MAAOqC,IAAAA,MACdC,EAAmBvS,OAAI,GAEvBwS,EAnBD,CACL9qC,KAAMu5B,GAAe,WACrBwR,YAAaxR,GAAe,mBAC5ByR,gBAAiBzR,GAAe,uBAChC0R,UAAW1R,GAAe,iBAC1B2R,aAAc3R,GAAe,oBAC7B4R,cAAe5R,GAAe,mBAC9B6R,UAAW7R,GAAe,iBAC1B8R,kBAAmB9R,GAAe,2BAW1Bv5B,EAAM8qC,EAAN9qC,KAAM+qC,EAAAD,EAAAC,YAAaC,EAAiBF,EAAjBE,gBAAiBC,EAAAH,EAAAG,UAAWC,IAAAA,aAAcC,EAAeL,EAAfK,cAAeC,EAAAN,EAAAM,UAAWC,EAAkBP,EAAlBO,kBAGzFve,EAAcyM,KACd0O,EAAiBU,KACjB2C,EAAgBjC,KACd3P,EAASD,KAATC,KAEF6R,EAAa,WACjBV,EAAiBtpC,OAAQ,EACnB,IAAAiqC,EAAQntB,YAAW,WACvBwsB,EAAiBtpC,OAAQ,EACzBod,aAAa6sB,EACf,GAAGpjC,EAAM4hC,QAGLyB,EAAkB9B,IAAY,WAAA,OAAMvhC,EAAM8kB,UAE1Cwe,EAAe3rB,EAAAA,UAAS,WAAA,OAAMmqB,SAAS9hC,EAAM4hC,OAAU5hC,EAAM4hC,OAASa,EAAiBtpC,UAGvFy5B,EAASjb,EAAAA,UAAS,WACtB,IAAMib,EAAwB,CAAA,EAOvBA,YANc,IAAjB5yB,EAAMoiC,SACRxP,EAAOwP,OAASpiC,EAAMoiC,QAEnB,CAAC,QAAS,SAAU,SAAS5qB,SAASxX,EAAMuE,QAC/CquB,EAAO,aAAe5yB,EAAMuE,MAEvBquB,CACT,IAEM2Q,EAAa5rB,EAAAA,UAAS,WAAA,OAAMmqB,QAAQ9hC,EAAM,SAAWmgC,EAAM,SAAWngC,EAAMipB,SAAWkX,EAAMlX,YAC7Fua,EAAiB7rB,EAAAA,UAAS,WAAA,OAAM3X,EAAMiiC,sBAAwBjiC,EAAM6hC,cACpE4B,EAAW9rB,EAAAA,UAAS,WAAA,OAAMmqB,QAAQ9hC,EAAMmiC,MAAQhC,EAAMgC,SACtDuB,EAAkB/rB,EAAAA,UAAS,WAAA,OAAM4rB,EAAWpqC,OAAS6G,EAAM8xB,SAAWwR,EAAanqC,SACnFwqC,EAAwBhsB,EAAAA,UAAS,WAAA,OAAM3X,EAAM6hC,YAAc7hC,EAAM8xB,SAAWwR,EAAanqC,SACzFyqC,EAAsBjsB,EAAAA,UAAS,WAAA,OAAM3X,EAAM8kB,QAAU9kB,EAAM8xB,SAAWwR,EAAanqC,SACnFw9B,EAAUhf,EAAAA,UAAS,WACvB,IAAMksB,EAAc,CAClBlB,EAAYxpC,MACZulC,GAAsBpN,EAAKn4B,MAAO6G,EAAMuE,MAAItL,EACzCgqC,CAAAA,EAAAA,EAAkB9pC,MAAQ6G,EAAMgiC,eAE/B8B,EAAoB,CAAClsC,EAAKuB,MAAOypC,EAAgBzpC,MAAOwpC,EAAYxpC,MAAO2pC,EAAa3pC,OAEvF,MAAA,CACL0qC,YAAAA,EACAE,cAAeF,EAAYzS,OAAO,CAACx5B,EAAKuB,MAAO6pC,EAAU7pC,MAAOF,EAAG6pC,CAAAA,EAAAA,EAAa3pC,MAAQ6G,EAAMkiC,eAC9F8B,mBAAoBH,EAAYzS,OAAO,CACrCx5B,EAAKuB,MACL6pC,EAAU7pC,MAAAF,EAEP6pC,CAAAA,EAAAA,EAAa3pC,MAAQ6G,EAAMkiC,eAGhC4B,kBAAAA,EACAG,cAAeJ,EAAYzS,OAAO,CAACx5B,EAAKuB,QAE5C,IAEQ24B,EAAYoS,EAAAA,OAAOlkC,GAAnB8xB,QAeR,OAbA4P,EAAAA,MAAM,CAAC5P,IAAU,SAAAqS,GAAiBxnB,GAAAwnB,EAAA,GAAN,IAEbhB,IACXK,EAAerqC,OAASkhC,GAASf,SAAS0B,KAAM6H,EAAU1pC,QAE1DqqC,EAAerqC,OAASshC,GAAYnB,SAAS0B,KAAM6H,EAAU1pC,MAEjE,IAEAo8B,EAAAA,WAAU,WACRv1B,EAAM4hC,OAASuB,GACjB,IAEO,WACL,IAAAiB,EAA6FzN,EAAQx9B,MAA7F2qC,EAAmBM,EAAnBN,kBAAmBD,EAAAO,EAAAP,YAAaG,IAAAA,mBAAoBD,EAAeK,EAAfL,cAAeE,EAAAG,EAAAH,cAErEI,EAAmBzN,EAAAO,YAAAhC,GAAA,CAAA5wB,KAAoBvE,EAAMuE,MAAM,MACnDw9B,EAAYjQ,EAAQ34B,OAAS0mC,EAAe,YAAawE,GACzDlC,EAAOsB,EAAStqC,OAASy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe1M,EAAYvrB,MAAwB,mBAAA,CAAA0mC,EAAe,UAGjG,OAAI7/B,EAAM6hC,WACH8B,EAAsBxqC,OAAU6G,EAAM8xB,QAEzC8E,EAAAA,YAAA0N,EAAAA,SAAA,CAAAtS,UAAqBhyB,EAAM8kB,SAAWue,EAAgBlqC,MAAAu6B,GAAW2P,EAAgBlqC,0EACnE2qC,EAAmBjR,MAAOD,EAAOz5B,OAAWqpC,IAAA5L,EAAAO,YAAA,MAAA,CAAAN,MAC1CgN,GACT9B,CAAAA,EACAI,MAAA,IANkD,KAczDoB,EAAWpqC,MACby9B,EAAAO,kBAAAoN,aAAA,CAAA1N,MACckM,EAAc5pC,OAAWqpC,GAAA,CAClCU,EAAc,UAAW,WACzBQ,EAAgBvqC,OACfy9B,EAAAO,YAAA,MAAA,CAAAN,MAAYmN,EAAAnR,MAA2BD,EAAOz5B,OAC3C4oC,CAAAA,EACAI,MAQPniC,EAAM8kB,OACH8e,EAAoBzqC,OAAU24B,EAAQ34B,MAC3Cy9B,EAAAA,YAAA0N,EAAAA,SAAA,CAAAtS,UACuBhyB,EAAM8kB,SAAWue,EAAgBlqC,MAAAu6B,GAAW2P,EAAgBlqC,0EACnE4qC,EAAelR,MAAOD,EAAOz5B,OAAWqpC,GAAA,CACjDT,EACAI,IAAA,IALkD,KAYpDrQ,EAAQ34B,8CACD8qC,EAAepR,MAAOD,EAAOz5B,OAAWqpC,GACjDT,CAAAA,EACAI,IAED,KAER,mOC5JF,IAAIqC,GAA6C,KAgBjD,SAASC,GAAczkC,GACf,IAAA0kC,EAfR,SAA2B1kC,GAWlB,OAVyB6Z,GAC9B,CACEgoB,YAAY,EACZ/c,OAAQ,OACRgN,SAAS,EACTmQ,sBAAsB,GAExBjiC,EAIJ,CAGsB2kC,CAAkB3kC,GAElC,GAAA0kC,EAAY7C,YAAc2C,GACrB,OAAAA,GAGT,IAAMI,EAAYxP,EAAAA,gBAAgB,CAChCC,MAAQ,WAEC,MAAA,CACLwP,eAFqBC,WAASJ,GAIlC,EACAK,OAAS,WACP,OAAOtnB,EAAAA,EAAEunB,oWAAkBxO,IACtB31B,KAAKgkC,gBAEZ,IAGI/f,EAAS4V,GAAUgK,EAAY7C,WAAa,OAAS6C,EAAY5f,QAEjEmgB,EAAMC,YAAUN,GAChB9S,EAAUmT,EAAIE,MAAM7L,SAASuD,cAAc,QAC3CuI,EAAsBjU,GAAe,6BAA6Bh4B,MAClE0pC,EAAY1R,GAAe,iBAqB1B,OApBgBuT,EAAYzC,sBAAwByC,EAAY7C,YAG5DxH,GAAAf,SAAS0B,KAAM6H,EAAU1pC,OAGhC2rB,EACFuV,GAASvV,EAAQsgB,GAEjBC,QAAQnT,MAAM,uBAGyB,CACvCoT,KAAM,WACJxT,EAAQA,SAAU,EAClB2I,GAAY3V,EAAQsgB,GACR3K,GAAAnB,SAAS0B,KAAM6H,EAAU1pC,OACrC8rC,EAAIM,SACN,EAGJ,CAEA,SAASC,GAAexlC,GAEtB,OAAc,IAAVA,EACFwkC,GAA4BC,GAAc,CACxC5C,YAAY,EACZ/P,SAAS,EACThN,OAAQ,OACRmd,sBAAsB,KAKZ,IAAVjiC,GAEFylC,QAAAA,EAAAjB,cAAAiB,GAAAA,EAA2BH,YACCd,GAAA,OAGvBC,GAAczkC,GANA,IAAAylC,CAOvB,CAIaC,IAAAA,GAAmCF,GAEhDE,GAAcC,QAAU,SAACV,GAEnBA,EAAAW,OAAOC,iBAAiBC,SAAWN,EACzC,EC/FA,IAAMO,GAAejvC,OAAO,aAEtBkvC,GAAiB,SAACrT,EAAiBlwB,GACvC,IAAAwjC,EAAqCxjC,EAAQyjC,UAArCrE,EAAAoE,EAAApE,WAAYG,EAAaiE,EAAbjE,aACd9sB,EAA0B,CAC9B4P,OAAQ,kBAAM6N,CAAA,EACdkP,WAAYA,SAAAA,EACZG,aAAcA,SAAAA,EACdlQ,QAASrvB,EAAQtJ,OAGf0C,EAAS4G,EAAQtJ,QCQvB,SAAiB0E,EAAQ7C,GACvB,IAAIP,EAAS,CAAA,EACbO,EAAWqZ,GAAarZ,GAExBwZ,GAAW3W,GAAQ,SAAS1E,EAAOX,EAAKqF,GACtC8B,GAAgBlF,EAAQO,EAAS7B,EAAOX,EAAKqF,GAAS1E,EACxD,GAEF,CDfIgtC,CAAQ1jC,EAAQtJ,OAAO,SAACA,EAAOX,GAC7B0c,EAAQ1c,GAAOW,CACjB,IAKFw5B,EAAGoT,IAAgB,CACjB7wB,QAAAA,EACAqqB,SAAUiG,GAAetwB,GAE7B,EAEakxB,GAAsB,CACjCC,iBAAQ1T,EAAIlwB,GACNA,EAAQtJ,OACV6sC,GAAerT,EAAIlwB,EAEvB,EACA6jC,iBAAQ3T,EAAIlwB,GACV,IAE+B8jC,EAFzBhH,EAAW5M,EAAGoT,IACZ5sC,EAAoBsJ,EAApBtJ,MACHggB,GAAQhgB,EADesJ,EAAb+jC,aAEqBD,QAA5BA,EAAUptC,eAAAA,EAAO24B,eAAWyU,IAAAA,EAAAA,EAAAptC,GAEhC6sC,GAAerT,EAAIlwB,GAEnB88B,SAAAA,EAAUA,SAAS+F,OAGzB,EACAmB,UAAAA,SAAU9T,GAAI,IAAA+T,EACT,QAAAA,EAAA/T,EAAAoT,WAAA,IAAAW,GAAAA,EAAenH,SAAS+F,MAC7B,GEjDF,SAASqB,GACPC,EACAC,EACAC,GAEA,IAAMC,EAAkBH,EAOjB,OALSG,EAAApB,QAAU,SAACV,EAAUrtC,GACnCqtC,EAAIL,UAAUiC,GAASjvC,GAAQmvC,EAAgBnvC,KAAMgvC,GACrDE,GAAa7B,EAAI6B,UAAUA,EAAUlvC,KAAMkvC,EAAUF,OAGhDG,CACT,CCAaC,IAAAA,GAAUL,GAAYtE,GAAUA,GAASzqC,KAAM,CAAEA,KAAM,UAAWgvC,KAAMR,KCNtEa,GAAA,CAEbrV,MAAOkQ,QAEP7Y,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX4D,KAAM,CACJjrB,KAAM/C,OACNoqB,aAAS,GAGX+jB,MAAOpF,QAEPqF,KAAM,CACJrrC,KAAM/C,OACNoqB,QAAS,IAGXgC,KAAM,CACJrpB,KAAMhC,UAGRg4B,QAASgQ,QAETsF,aAAc,CACZtrC,KAAMxE,QAGR+vC,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,YACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,YAAa,SAAU,QAAS,UAAUjnB,SAASinB,EAC7D,GAGFl6B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,cAAe,QAAS,SAAU,SAASjnB,SAASinB,EAC9D,GAGF1G,OAAQ,CACNj8B,KAAMhC,UAGRQ,IAAK,CACHwB,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,IAAK,OAAOjnB,SAASinB,EACzC,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,SAAU,UAAW,WAAWjnB,SAASinB,EACzE,GAGF3iC,KAAM,CACJA,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAS,UAAUjnB,SAASinB,EAChD,GAGF6I,QAAS,CACPxrC,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,UAAW,SAAU,QAAQjnB,SAASinB,EACxD,GAGF8I,QAASztC,UCrGH0tC,GAAyBhjB,GAAzBgjB,OAAQC,GAAiBjjB,GAAjBijB,OAAQC,GAASljB,GAATkjB,KCiCA,SAAAC,GAAUhV,EAAsBiV,GAChD,ID/BElX,EAEFmX,EC6BAC,EAAkB5X,MAAI,MACtBxL,EAAcyM,KAGZ4W,GDnCArX,EAAiBP,GAAU,aAA3BO,aAMD,CACLsX,YALIH,EAAgB,SAAC/rC,GAAyB,IAAAmsC,EAAAC,EACxCC,EAAkBzX,EAAav3B,MAC9B,OAAAgvC,KAA6CF,QAA1BA,EAACE,EAAgBtjB,eAAhBojB,IAAyBA,GAAzBA,EAAyBzwB,SAAS1b,MAAkC,QAAzBosC,EAAAC,EAAgBvjB,eAAS,IAAAsjB,OAAA,EAAzBA,EAAyB1wB,SAAS1b,MAG9E0rC,IAC1BO,WAAYF,EAAcJ,IAC1BW,SAAUP,EAAcH,MC0BlBK,WAGFM,EAAkB,SAAC7tC,GACvB,IAAM8tC,EAAM3V,EAAGx5B,MACTovC,EApCa,SAAC5V,EAAiBiV,GAA8B,IAAAY,EAErE,GAAIZ,EACK,OAAAA,EAGL,GAAAjV,iBAAA6V,EAAA7V,EAAI8V,sBAAJD,EAAaf,OAER,OADa9U,EAAG8V,QAAQhB,OAIjC,IAAMiB,EAAc1S,iBAAiBrD,GAAIqL,iBAAiB,kBAC1D,OAAI0K,GAfqB,qBAmB3B,CAoBwBC,CAAeL,EAAKV,aAAA,EAAAA,EAAkBzuC,OAC1D,GAAiB,IAAbqB,EAAEouC,QAAiBjW,GAAOoV,KAG5BO,EAAIpO,UAAUC,YAAA/I,OAAY1M,EAAYvrB,MAAiB,gBACvDmvC,EAAIpO,UAAUC,SAAS/I,GAAAA,OAAG1M,EAAYvrB,MAAmB,kBACzDmvC,EAAIpO,UAAUC,SAAS,GAAA/I,OAAG1M,EAAYvrB,MAAA,iBACtCmvC,EAAIpO,UAAUC,SAAA/I,GAAAA,OAAY1M,EAAYvrB,MAAkB,iBAHxD,CAOI,IAAA0vC,EAAU7S,iBAAiBsS,GAE3BQ,EAAW3sC,SAAS0sC,EAAQE,YAAa,IACzCC,EAASF,EAAW,EAAIA,EAAW,EACnC9R,EAAQsR,EAAIW,YACZhS,EAASqR,EAAIY,aAEsB,OAArCpB,EAAgB3uC,MAAM+kC,aACxBxL,GAASoV,EAAgB3uC,MAAO,CAC9BgwC,SAAU,WACV5L,QAAAnM,OAAS,EAAI4X,EAAA,MACb1L,OAAAlM,OAAQ,EAAI4X,EAAA,MACZhS,gBAAUA,EAAA,MACVC,iBAAWA,EAAA,MACXmS,aAAcP,EAAQO,aACtBC,cAAe,OACfC,SAAU,WAERhB,EAAAxL,YAAYgL,EAAgB3uC,QAG5B,IAAAsuC,EAASnO,SAASuD,cAAc,OAEtCnK,GAAS+U,EAAQ,CACf8B,UAAW,IACXC,WAAY,IACZ/L,gBAAUzG,EAAA,MACVA,SAAA5F,OAAU4F,EAAQ,GAAA,MAClBC,OAAQ,OACRwS,WAAA,aAAArY,OAjFS,IAiFgB,gDAAAA,OAAqDsY,IAAS,aACvFjpC,UAAW,eACX4oC,cAAe,OACfF,SAAU,WACV/G,OAAQ,EACRuH,gBAAiBpB,EACjBqB,QAAS,QAKF,IADH,IAAAC,MAAY9rC,QACT1G,EAAIixC,EAAIpJ,SAAS1oC,OAAQC,EAAI,EAAGA,EAAIY,IAAKZ,EAAG,CAC7C,IAAAqzC,EAAQxB,EAAIpJ,SAASzoC,GACiB,KAAvCqzC,EAAsBjX,MAAMuP,QAAiB0H,IAAUhC,EAAgB3uC,QACzE2wC,EAAsBjX,MAAMuP,OAAS,IAChCyH,EAAAzlC,IAAI0lC,GAAO,GAErB,CAGM,IAAAC,EAAezB,EAAIzV,MAAMsW,SAAWb,EAAIzV,MAAMsW,SAAWnT,iBAAiBsS,GAAKa,SAChE,KAAjBY,GAAwC,WAAjBA,IAEzBzB,EAAIzV,MAAMsW,SAAW,YAEvBrB,EAAgB3uC,MAAM6wC,aAAavC,EAAQK,EAAgB3uC,MAAM8wC,YAEjEh0B,YAAW,WACFwxB,EAAA5U,MAAMpyB,+BAA0Bu2B,EAAA,SACtC,GAEH,IAAMkT,EAAoB,WACxBzC,EAAO5U,MAAM8W,gBAhHE,mBAkHVhX,EAAGx5B,QAERw5B,EAAGx5B,MAAM0gC,oBAAoB,YAAaqQ,GAAmB,GAC7DvX,EAAGx5B,MAAM0gC,oBAAoB,eAAgBqQ,GAAmB,GAEhEj0B,YAAW,WACTwxB,EAAO9rB,SACuC,IAA1CmsB,EAAgB3uC,MAAM+lC,SAAS1oC,QAAcsxC,EAAgB3uC,MAAMwiB,QACzE,GAAG+tB,OAEL/W,EAAGx5B,MAAMogC,iBAAiB,YAAa2Q,GAAmB,GAC1DvX,EAAGx5B,MAAMogC,iBAAiB,eAAgB2Q,GAAmB,EA5E3D,GA+EJ3U,EAAAA,WAAU,WACR,IAAM+S,EAAM3V,aAAAA,EAAAA,EAAIx5B,MACXmvC,IAEWR,EAAA3uC,MAAQmgC,SAASuD,cAAc,OAE3CyL,EAAA/O,iBAAiB,cAAe8O,GAAiB,GACvD,IAEA8B,EAAAA,aAAY,WAAM,IAAAC,EAChBzX,SAAWyX,QAAXA,EAAAzX,EAAIx5B,iBAAOixC,GAAXA,EAAWvQ,oBAAoB,cAAewO,GAAiB,EACjE,GACF,CChIO,SAASgC,GAAYC,GAC1B,IAAMC,EAAkBha,EAAAA,qBAClBia,EAAoB7yB,EAAAA,UAAS,WAAA,OAAM4yB,EAAgBvqC,MAAMgyB,YAEzDyY,EAAeja,EAAAA,OAA6B,eAAuBl5B,OAAA2G,OAAO,OAEhF,OAAO0Z,YAAS,WAAM,IAAA+yB,EAAAC,EAAAC,EAChB,OAAA9xB,GAAUwxB,SAAS,QAAAI,EAATJ,EAASO,sBAATH,IAASA,OAATA,EAAAA,EAAyBvxC,OAAemxC,EAAQO,eAAe1xC,MAEzE2f,GAAU0xB,EAAkBrxC,OAAeqxC,EAAkBrxC,MAE7D2f,GAAUwxB,SAAS,QAAAK,EAATL,EAASQ,qBAATH,IAASA,OAATA,EAAAA,EAAwBxxC,OAAemxC,EAAQQ,cAAc3xC,QAEvE2f,WAAA8xB,EAAUH,EAAazY,gBAAA,IAAA4Y,OAAA,EAAbA,EAAuBzxC,QAAesxC,EAAazY,SAAS74B,KAG5E,GACF,okBC1BA,IAAA4xC,GAAe3V,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAyB,IAAhBwiC,EAAAD,EAAAC,MAAOrC,IAAAA,MACdN,EAAiBU,KACjB2C,EAAgBjC,KAChB+J,EAAiB7Z,GAAe,UACtC8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KACV4Z,EAAShb,EAAAA,MAEfyX,GAAUuD,GAEV,IAAMC,EAAad,KAEbe,EAAazzB,EAAAA,UAAS,WACpB,IAAEwW,EAAmBnuB,EAAnBmuB,MAAOmZ,EAAYtnC,EAAZsnC,QACX,OAAAnZ,IACY,SAAZmZ,EAA2B,UACxB,UACT,IAEM+D,EAAc1zB,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAC9B4Z,EAAe7xC,OAAA,GAAAi4B,OACf4Z,EAAe7xC,MAAAi4B,cAAAA,OAAkBpxB,EAAMsnC,YAAAlW,OACvC4Z,EAAe7xC,MAAA,YAAAi4B,OAAgBga,EAAWjyC,OAAAi4B,GAAAA,OAC1C4Z,EAAe7xC,MAAA,YAAAi4B,OAAgBpxB,EAAMqnC,OAAApuC,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAErCq4B,EAAKn4B,MAAM6G,EAAMuE,MAAuB,WAAfvE,EAAMuE,MAC/BstB,EAAO14B,MAAM64B,SAAWmZ,EAAWhyC,OACnC04B,EAAO14B,MAAM24B,QAAU9xB,EAAM8xB,SAAA,GAAAV,OAC1B4Z,EAAe7xC,MAAiB6G,WAAAA,EAAMknC,OACzC5V,EAAKn4B,MAAMy4B,MAAQ5xB,EAAM4xB,WAI9B,OAAO,WACD,IAAA0Z,EAAgBpI,EAAc,UAAW,WACvC/d,EAAOnlB,EAAM8xB,QACjB8E,EAAAA,YAAA2U,GAAA/U,GAAA,CAAgBwL,cAAc,GAAUhiC,EAAMonC,oBAE9CvH,EAAe,QAEX2L,EAAWrmB,IAASmmB,EACpBvT,EACJ/3B,EAAM+3B,QAAUoI,EAAMpI,6CACJiT,EAAe7xC,MAAkB,aAAA,CAAA0mC,EAAe,YAC9D,KAEUyL,EAAAA,EAAA1U,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAgC4Z,EAAe7xC,MAAA,WAAgBmyC,CAAAA,IAAwB,GACnGnmB,IACcmmB,EAAA,CAACnmB,EAAMmmB,IAErBvT,IACFuT,EAAgB,CAACA,GAAela,OAAO2G,IAGzC,IAKM0T,EAAc,CAClB5U,MAAA,GAAAzF,OAAAt5B,EAAWuzC,EAAYlyC,OAAA,CAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAAa4Z,EAAe7xC,MAAqB,eAAAqyC,KACxE1vC,KAAMkE,EAAMlE,KACZk2B,SAAUmZ,EAAWhyC,OAAS6G,EAAM8xB,QACpCqV,KAAMnnC,EAAMmnC,KACZuE,SAAUP,EAAWhyC,WAAQ,EAAY,KAGpC,OAAAskB,EAAAA,GAZAzd,EAAM1F,KAAO0F,EAAMmnC,KAAa,IAC9BnnC,EAAM1F,KAAO,SAYVk8B,GAAAA,GAAAA,GAAA,CAERtG,IAAKgb,GACF1I,GACAiJ,GAAA,GAAA,CACHlE,QAASvnC,EAAMunC,UAEjB,CAAC+D,IAGP,IChFWK,GAAShF,GAAYiF,ICTnB,SAAS3yC,GAAgBC,EAAKV,EAAKW,GAYhD,OAXIX,KAAOU,EACT5B,OAAO+B,eAAeH,EAAKV,EAAK,CAC9BW,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZN,EAAIV,GAAOW,EAGND,CACT,qkBCJA,SAAA2yC,GAAkBlR,EAAe36B,GACzB8rC,IAAAA,EAAax0C,OAAO4F,KAAKy9B,EAAK6H,OAAOuJ,QAAO,SAACtxC,EAAQjC,GAP7D,IAAqBwzC,SASVC,GATUD,EASExzC,EARH,CAAC,cAAe,WAAY,YAChCgf,SAASw0B,GAAuBA,EAAYpwC,QAAQ,+BAAgC,SAAS0P,cACpG0gC,IAMsBrR,EAAK6H,MAAMhqC,GAC/BiC,CACN,GAAA,CAAA,UACIgjB,EAAAA,EACLkd,EAAKrgC,IAAAk8B,GAAAA,GAAA,CAAA,EAEAsV,GACA9rC,IAEJ26B,EAAKuE,UAAY,IAAIl6B,KAAK,SAAA8kC,GAAA,OAAmB+B,GAAS/B,EAAO,CAAA,EAAA,IAAA,CCrBrDoC,IAmBPC,GAnB8B,ICIC5nC,SAAAA,GAAAA,OAC7B6nC,ECG4E,eAC1E1nB,EAAgBynB,GAEjB,MAAA,CACL7a,KAAM,CACJnO,QAAS,GACTuO,GAAA,GAAAN,OAAO1M,EAAA,YACP6M,MAAA,GAAAH,OAAU1M,EAAA,WACV8M,OAAA,GAAAJ,OAAW1M,EAAA,WACX+M,MAAA,GAAAL,OAAU1M,EAAA,WACViN,GAAA,GAAAP,OAAO1M,EAAA,YACPkN,MAAA,GAAAR,OAAU1M,EAAA,qBAEZmN,OAAQ,CACNC,QAAA,GAAAV,OAAY1M,EAAA,eACZsN,SAAA,GAAAZ,OAAa1M,EAAA,gBACbuN,QAAA,GAAAb,OAAY1M,EAAA,eACZkB,QAAA,GAAAwL,OAAY1M,EAAA,eACZwN,MAAA,GAAAd,OAAU1M,EAAA,aACVgB,QAAA,GAAA0L,OAAY1M,EAAA,eACZyN,SAAA,GAAAf,OAAa1M,EAAA,gBACb0N,OAAA,GAAAhB,OAAW1M,EAAA,cACX2N,QAAA,GAAAjB,OAAY1M,EAAA,eACZ9K,QAAA,GAAAwX,OAAY1M,EAAA,eACZ4N,OAAA,GAAAlB,OAAW1M,EAAA,cACX6N,QAAA,GAAAnB,OAAY1M,EAAA,eACZ8N,SAAA,GAAApB,OAAa1M,EAAA,gBACb+N,cAAA,GAAArB,OAAkB1M,EAAA,sBAAA,CD9BU2M,GAAqBC,KAE/C8I,EAAYziB,EAAAA,UAAS,WACrBpT,OAAAA,EAAKpL,SAASizC,EACTA,EAAwB7nC,EAAKpL,OAE/B,MAYF,MAAA,CAAE05B,MATKlb,EAAAA,UAAS,uBACF,IAAfpT,EAAKpL,OAAuBoL,EAAKpL,SAASizC,EACrC,GAEF,CACLnW,SAAU1xB,EAAKpL,UAIHihC,UAAAA,EAAA,qkBEdlB,IAAMZ,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,mGAE9K4uB,GAAelX,EAAAA,gBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,uBAAwByiB,EAAUjhC,MAAA,IACvEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,kEAE9KlN,GAAe4kB,EAAAA,gBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,aAAcyiB,EAAUjhC,MAAA,IAC7DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,0CAE9KmvB,GAAezX,EAAAA,gBAAgB,CAC7Bx9B,KAAM,8BACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,oCAAqCyiB,EAAUjhC,MAAA,IACpFuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,0CAE9KovB,GAAe1X,EAAAA,gBAAgB,CAC7Bx9B,KAAM,4BACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kCAAmCyiB,EAAUjhC,MAAA,IAClFuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wHAE9KqvB,GAAe3X,EAAAA,gBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,iBAAkByiB,EAAUjhC,MAAA,IACjEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,k5CAE9KsvB,GAAe5X,EAAAA,gBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,oBAAqByiB,EAAUjhC,MAAA,IACpEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,IAAIkoC,MAAQ,CAACyK,SAAW,yBAAyB/N,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,8sBAElPwvB,GAAe9X,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,4EAE9KqH,GAAeqQ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kBAAmByiB,EAAUjhC,MAAA,IAClEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,uDAE9KyvB,GAAe/X,EAAAA,gBAAgB,CAC7Bx9B,KAAM,sBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,2BAA4ByiB,EAAUjhC,MAAA,IAC3EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,oOAE9K0vB,GAAehY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,wBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,6BAA8ByiB,EAAUjhC,MAAA,IAC7EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,sHAE9K2vB,GAAejY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,eAAgByiB,EAAUjhC,MAAA,IAC/DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wHAE9K4vB,GAAelY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,sBAAuByiB,EAAUjhC,MAAA,IACtEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,+MAE9K6vB,GAAenY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,wBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,6BAA8ByiB,EAAUjhC,MAAA,IAC7EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wGAE9K8vB,GAAepY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,sBAAuByiB,EAAUjhC,MAAA,IACtEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,0TAE9K+vB,GAAerY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,yBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,8BAA+ByiB,EAAUjhC,MAAA,IAC9EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,yMAE9KgwB,GAAetY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,yBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,8BAA+ByiB,EAAUjhC,MAAA,IAC9EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wGAE9KiwB,GAAevY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,uBAAwByiB,EAAUjhC,MAAA,IACvEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,kHAE9KkwB,GAAexY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,oBAAqByiB,EAAUjhC,MAAA,IACpEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,+TAE9KmwB,GAAezY,EAAAA,gBAAgB,CAC7Bx9B,KAAM,wBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,6BAA8ByiB,EAAUjhC,MAAA,IAC7EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,sNAE9KowB,GAAe1Y,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,eAAgByiB,EAAUjhC,MAAA,IAC/DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,0EAE9KtR,GAAegpB,EAAAA,gBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,cAAeyiB,EAAUjhC,MAAA,IAC9DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,2JAE9KqwB,GAAe3Y,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,iJAE9KswB,GAAe5Y,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kBAAmByiB,EAAUjhC,MAAA,IAClEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wPAE9KuwB,GAAe7Y,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,qFAE9KwwB,GAAe9Y,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kBAAmByiB,EAAUjhC,MAAA,IAClEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,uMAE9KywB,GAAe/Y,EAAAA,gBAAgB,CAC7Bx9B,KAAM,wBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,6BAA8ByiB,EAAUjhC,MAAA,IAC7EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,+DAE9KwU,GAAekD,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,eAAgByiB,EAAUjhC,MAAA,IAC/DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,+GAE9K0wB,GAAehZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,mBAAoByiB,EAAUjhC,MAAA,IACnEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,8dAE9K2wB,GAAejZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,oBAAqByiB,EAAUjhC,MAAA,IACpEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,0aAE9K4wB,GAAelZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kBAAmByiB,EAAUjhC,MAAA,IAClEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,4MAE9K6wB,GAAenZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,qBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,yBAA0ByiB,EAAUjhC,MAAA,IACzEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,kMAE9K8wB,GAAepZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,mBAAoByiB,EAAUjhC,MAAA,IACnEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,2FAE9KqO,GAAeqJ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,cAAeyiB,EAAUjhC,MAAA,IAC9DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,uIAE9K0iB,GAAehL,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,+pBAE9K+wB,GAAerZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,uBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,4BAA6ByiB,EAAUjhC,MAAA,IAC5EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,olBAE9KgxB,GAAetZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,qBAAsByiB,EAAUjhC,MAAA,IACrEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,6ZAE9K4J,GAAe8N,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,eAAgByiB,EAAUjhC,MAAA,IAC/DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,sNAE9KixB,GAAevZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,uBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,4BAA6ByiB,EAAUjhC,MAAA,IAC5EuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wEAE9KkxB,GAAexZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,qBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,yBAA0ByiB,EAAUjhC,MAAA,IACzEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,2OAE9KmxB,GAAezZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,sHAE9KoxB,GAAe1Z,EAAAA,gBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,oBAAqByiB,EAAUjhC,MAAA,IACpEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,yIAE9KqxB,GAAe3Z,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,mBAAoByiB,EAAUjhC,MAAA,IACnEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,gCAE9K/B,GAAeyZ,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,6FAE9KsxB,GAAe5Z,EAAAA,gBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kBAAmByiB,EAAUjhC,MAAA,IAClEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,uOAE9KsE,GAAeoT,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,eAAgByiB,EAAUjhC,MAAA,IAC/DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,mdAE9KuxB,GAAe7Z,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,6iBAE9KwxB,GAAe9Z,EAAAA,gBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,iBAAkByiB,EAAUjhC,MAAA,IACjEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,uLAE9KyxB,GAAe/Z,EAAAA,gBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,qBAAsByiB,EAAUjhC,MAAA,IACrEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,oNAE9K0xB,GAAeha,EAAAA,gBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,qBAAsByiB,EAAUjhC,MAAA,IACrEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,yTAE9K9H,GAAewf,EAAAA,gBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,cAAeyiB,EAAUjhC,MAAA,IAC9DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,0LAE9KuN,GAAemK,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,gBAAiByiB,EAAUjhC,MAAA,IAChEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wHAE9K2xB,GAAeja,EAAAA,gBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,eAAgByiB,EAAUjhC,MAAA,IAC/DuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,giBAE9K4xB,GAAela,EAAAA,gBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,iBAAkByiB,EAAUjhC,MAAA,IACjEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,+kBCxB9C,IAAMqgC,GAAmB,CAACl/B,IAAM,MAAMkoC,MAAQ,CAAC6J,KAAO,OAAOvV,QAAU,YAAYE,MAAQ,MAAMC,OAAS,OAAOiI,SAAW,CAAC,CAAC5kC,IAAM,OAAOkoC,MAAQ,CAAC6J,KAAO,eAAe3uB,EAAI,wfAE9K6xB,GAAena,EAAAA,gBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACLuE,KAAM,CACJzI,KAAM/C,QAERwuC,QAAS,CACPzrC,KAAMhC,WAGVu7B,MAAAA,SAAMr1B,EAAAuiC,GAAkB,IAATC,IAAAA,MAGgB+J,EAAAA,GAFX50B,EAAAA,UAAS,WAAA,OAAM3X,EAAMuE,IAAA,KAE/B61B,EAAAoS,EAAApS,UAAWvH,EAAA2Z,EAAA3Z,MAEb4Z,EAAW90B,EAAAA,UAAS,WAAA,MAAM,CAAC,SAAU,kBAAmByiB,EAAUjhC,MAAA,IAClEuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAY3D,GAAAA,EAAM15B,OAAWqpC,EAAM3P,MAAA,IACzD8Z,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAO4V,EAAStzC,MAChB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAuB,UAANwF,EAAMunC,eAAA,IAAAqF,OAAA,EAANA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,SAExC,OAAA,WAAA,OAAMqxC,GAASrS,GAASmT,EAAWxzC,MAAA,WCjCxCigC,GAA6B,oBAAXtD,OCGxB,IAAA91B,GAAe,CAEbpI,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,aAAS,GAGXwJ,IAAK,CACH7wB,KAAM,CAAC/C,OAAQpC,OACfwsB,aAAS,GAGXqsB,iBAAkB,CAChB1zC,KAAMgmC,QACN3e,SAAS,GAGXokB,QAASztC,8kBCbX,IAAQ4qB,GAAgBynB,GCRXsD,GAAO9I,GDYLvR,EAAAA,gBAAgB,CAC7Bx9B,KAAM,OACNoI,MAAAA,GACAq1B,MAAAA,SAAMqa,EAAAnN,GAAkB,IAATC,IAAAA,MACPmN,EAAYh4B,EAAAA,UAAS,WAAA,OAAM+3B,EAAMnrC,IAAA,IACjC3M,EAAO+f,EAAAA,UAAS,WAAA,OAAM+3B,EAAM93C,MAAQ,EAAA,IAEa20C,EAAAA,GAAaoD,GAAjDC,EAAApD,EAAXpS,UAAiCyV,EAAArD,EAAP3Z,MAE5Bid,EAAWn4B,EAAAA,UAAS,WACpBgV,IAAAA,EAAM,UACJ+iB,EAAAA,EAAM/iB,eAAeh2B,MAAQ+4C,EAAM/iB,IAAIyE,SAAW,CAACse,EAAM/iB,KAC3D+iB,EAAMF,kBAAA7iB,EAAsBvpB,KAdb,uDAeZupB,KAGHojB,EAAap4B,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC7B1M,GAAA,SAAA,GAAA0M,OACA1M,GAAA0M,UAAAA,OAAoBx5B,EAAKuB,OAC5By2C,EAAcz2C,MAAA,IAIVuzC,EAAa/0B,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAYqZ,GAAAA,EAAU12C,OAAWqpC,EAAM3P,MAAA,iBAEzD,WACF77B,MAAAA,KAAK,IAAImW,IAAI2iC,EAAS32C,QAAoBmX,SAAS,SAAAqc,IFvC/D,SAA4BA,EAAayN,GACnChB,IAAAA,IAGCE,UAAa3M,GAAsB,iBAARA,KAE5B2M,SAAS0W,iBAAA5e,IAAAA,OAAqBgJ,EAAAhJ,UAAAA,OAAkBzE,EAASn2B,OAAAA,OAAS,GAAlE8iC,CAIE2W,IAAAA,EAAM3W,SAASuD,cAAc,YAC/BqT,aAAa,QAAS9V,KACtB8V,aAAa,MAAOvjB,YACfqO,KAAK8B,YAAYmT,GAAA,EE2BDtjB,EAAA,GAAAyE,OAAQ1M,GAAA,+CAIzBioB,EAAah1B,EAAAA,UAAS,WAAA,MAAA,CAC1Bkf,MAAOkZ,EAAW52C,MAClB05B,MAAO6Z,EAAWvzC,MAClBouC,QAAU,SAAA/sC,gBAAwB,UAANk1C,EAAMnI,eAAA,IAAA4I,OAAA,EAANA,EAAA14C,KAAAi4C,EAAgB,CAAEl1C,EAAAA,SAGzC,OAAA,WAAA,OAAMijB,EAAAA,EAAE,MAAOkvB,EAAWxzC,MAAOskB,EAAAA,EAAE,MAAO,CAAE0pB,KAAMuI,EAAM/iB,QAAAyE,OAAUx5B,EAAKuB,OAAAi4B,WAAAA,OAAqBx5B,EAAKuB,cCjDrE,SCKxBi3C,GAAA,CAEbnnB,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX6qB,SAAU,CACRlyC,KAAM,CAAC/C,OAAQ+oC,UAGjBuO,MAAO,CACLv0C,KAAM/C,OACNoqB,QAAS,YACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,aAAajnB,SAASinB,EACzC,GAGF0I,KAAM,CACJrrC,KAAM/C,OACNoqB,QAAS,IAGXmtB,WAAY,CACVx0C,KAAMhC,UAGRyK,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF8R,WAAY,CACVz0C,KAAMhC,UAGRk5B,OAAQ,CACNl3B,KAAM/C,OACNoqB,QAAS,IAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,SAAU,UAAW,WAAWjnB,SAASinB,EACzE,GAGF+R,UAAW1O,QAEXyF,QAASztC,UCrEX22C,GAAerb,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAAA,GACA0wC,MAAO,CAAC,SACRrb,eAAMr1B,EAAAA,GAAiB,IAAR2wC,EAAApO,EAAAoO,KACPzN,EAAgBjC,KAChBpB,EAAiBU,KACjByK,EAAiB7Z,GAAe,QACtC8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KACR5M,EAAgByL,GAAU,eAA1BzL,YACFymB,EAAad,KAEbuG,EAAYj5B,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC5B4Z,EAAe7xC,OAAAi4B,GAAAA,OACf4Z,EAAe7xC,MAAA,YAAAi4B,OAAgBpxB,EAAMmuB,OAAAl1B,EAAAA,EAAAA,EAAAA,EAErCq4B,CAAAA,EAAAA,EAAKn4B,MAAM6G,EAAMuE,MAAuB,WAAfvE,EAAMuE,MAC/BstB,EAAO14B,MAAM64B,SAAWmZ,EAAWhyC,UAAAi4B,OAChC1M,EAAYvrB,MAAuB6G,iBAAAA,EAAMwwC,cAAApf,OACzC4Z,EAAe7xC,yBAAgB6G,EAAMqwC,QAAWlF,EAAWhyC,WAI7D03C,EAAc,SAACpX,GACd0R,EAAWhyC,OAAOw3C,EAAK,QAASlX,IAEvC,OAAO,WACC,IAAAqX,EAAc5N,EAAc,UAAW,WACvC6N,EAASlR,EAAe,cACxB9H,EAAS8H,EAAe,cAE9B,OAAAjJ,EAAAA,YAAA,IAAA,CAAAC,MAAA/+B,EAEe84C,EAAUz3C,OAAKguC,KACpBgE,EAAWhyC,QAAU6G,EAAMmnC,UAAO,EAAYnnC,EAAMmnC,KAAAnU,OACjDhzB,EAAMgzB,OAAqBhzB,EAAMgzB,YAAlB,EAAkBgb,SAC/BhuC,EAAMguC,SAAuBhuC,EAAMguC,cAAlB,UACnB6C,GAERE,CAAAA,EAAAna,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAyB4Z,EAAe7xC,MAAA,kBAAuB43C,CAAAA,IAAiB,KAChFD,EACA/Y,EAAAnB,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAyB4Z,EAAe7xC,MAAA,kBAAuB4+B,CAAAA,IAAiB,OAIzF,IC1CWiZ,GAAOrK,GAAY8J,ICAjBQ,GAAA,CAEbC,MAAO,CACLp1C,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,MAAO,SAAU,UAAW,WAAY,MAAO,SAAU,UAAUjnB,SAASinB,EAC/F,GAGF0S,OAAQ,CACNr1C,KAAM,CAAC9C,OAAQ1B,OAAQX,OACvBwsB,QAAS,GAGXiuB,QAAS,CACPt1C,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,MAAO,SAAU,eAAgB,iBAAiBjnB,SAASinB,EAC9E,GAGFnkC,IAAK,CACHwB,KAAM/C,OACNoqB,QAAS,QCpCAkuB,GAAW,SAACra,GAehB,OAbHA,EAAQ,IACH,KACEA,GAAS,KAAOA,EAAQ,IAC1B,KACEA,GAAS,KAAOA,EAAQ,KAC1B,KACEA,GAAS,MAAQA,EAAQ,KAC3B,KACEA,GAAS,MAAQA,EAAQ,KAC3B,KAEA,KAGX,ECVgB,SAAAsa,GAAYx1C,EAAcy1C,GACxChc,EAAAA,WAAU,WACDO,OAAAyD,iBAAiBz9B,EAAMy1C,EAChC,IAEAC,EAAAA,iBAAgB,WACP1b,OAAA+D,oBAAoB/9B,EAAMy1C,EACnC,GACF,CCJO,SAASE,KACd,IAAMltC,EAAO2rB,EAAIA,IAAAmhB,GAASjY,GAAW,EAAItD,OAAO6H,aAOzC,OAFP2T,GAAY,UAJO,WACjB/sC,EAAKpL,MAAQk4C,GAASjY,GAAW,EAAItD,OAAO6H,eAKvCp5B,CACT,okBCZA,IAAAmtC,GAAetc,kBAAgB,CAC7Bx9B,KAAM,OACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAQmxC,EAAWjN,EAAAA,OAAOlkC,GAAlBmxC,OACFtR,EAAiBU,KAEvBrP,EAAAA,QACE,aACA4T,WAAS,CACPqM,OAAAA,KAIJ,IAAM5sC,EAAOktC,KAEPzG,EAAiB7Z,GAAe,OAChCwgB,EAAah6B,EAAAA,UAAS,WAAA,OCXhB,SAAc/f,EAAcoI,GACpC,IAAEoxC,EAAmBpxC,EAAnBoxC,QAASF,EAAUlxC,EAAVkxC,MACV,MAAA,CACLt5C,EAAAqB,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEMx5B,EAAA,MAAAw5B,OAASggB,GAAYA,GAAAhgB,GAAAA,OAErBx5B,EAAAw5B,YAAAA,OAAe8f,GAAUA,GAGnC,CDCsCU,CAAc5G,EAAe7xC,MAAO6G,MAEhE6xC,EAAWl6B,EAAAA,UAAS,WAAA,OCKd,SAAaw5B,EAA8BW,GACzD,IAAMD,EAAW,CAAA,EACXE,EAAiB,SAACZ,GACtB,OAAA75C,OAAOq5B,OAAOkhB,EAAU,CACtBrI,cAAApY,OAAe+f,GAAS,EAAA,MACxBa,eAAA5gB,OAAgB+f,GAAS,EAAA,OAC1B,EAEGc,EAAiB,SAACd,GACtB,OAAA75C,OAAOq5B,OAAOkhB,EAAU,CACtBK,iBAAWf,EAAAA,OACZ,EAEGgB,EAAc,CAClB/4B,SAAU,SAAC+3B,GACL/3B,GAAS+3B,IACXY,EAAeZ,EAEnB,EACAp5C,QAAS,SAACo5C,GACJp5C,EAAQo5C,IAAWA,EAAO36C,SAChB27C,EAAA/4B,SAAS+3B,EAAO,IAExB/3B,GAAS+3B,EAAO,KAClBc,EAAed,EAAO,IAGpBt1C,EAASs1C,EAAO,MAAQ53B,GAAY43B,EAAO,GAAGW,KACjCX,EAAAA,EAAO,GAAGW,IAGvBj2C,EAASs1C,EAAO,MAAQ53B,GAAY43B,EAAO,GAAGW,KACjCX,EAAAA,EAAO,GAAGW,IAG/B,EACAj2C,SAAU,SAACs1C,GAGLt1C,EAASs1C,IAAWA,EAAOW,KACzB/5C,EAAQo5C,IAAWA,EAAO36C,QAEb26C,EAAAA,EAAOW,GAAa,IAEpBX,EAAAA,EAAOW,GAAa,KAGnCC,EAAeZ,EAAOW,IAG5B,GAOK,OAJPx6C,OAAO4F,KAAKi1C,GAAa7hC,SAAQ,SAAC2uB,GAChCkT,EAAYlT,GAAMkS,EACpB,IAEOU,CACT,CD/DoCO,CAAapyC,EAAMmxC,OAAQ5sC,EAAKpL,UAEhE,OAAO,WAAM,IAAAk5C,EAvBW90B,EAwBT+0B,EAAQtyC,EAAb1F,IAEN,OAAAs8B,EAAAA,YAAA0b,EAAA,CAAAzb,MAAY8a,EAAWx4C,MAAA05B,MAAcgf,EAAS14C,OA1B1B,mBAAAokB,EA2BjB80B,EAAAxS,EAAe,aA3BE0S,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA2BO80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,IAIjC,IE3BaG,GAAA,CAEbC,KAAM,CACJ32C,KAAM,CAAC/C,OAAQC,SAGjB05C,GAAI,CACF52C,KAAM,CAAC9C,OAAQ1B,SAGjBq7C,GAAI,CACF72C,KAAM,CAAC9C,OAAQ1B,SAGjBmP,OAAQ,CACN3K,KAAM9C,OACNmqB,QAAS,GAGXyvB,MAAO,CACL92C,KAAM9C,OACNmqB,QAAS,GAGX0vB,KAAM,CACJ/2C,KAAM9C,OACNmqB,QAAS,GAGX/f,KAAM,CACJtH,KAAM9C,OACNmqB,QAAS,GAGX2vB,GAAI,CACFh3C,KAAM,CAAC9C,OAAQ1B,SAGjBy7C,KAAM,CACJj3C,KAAM9C,QAGRsB,IAAK,CACHwB,KAAM/C,OACNoqB,QAAS,OAGXwO,GAAI,CACF71B,KAAM,CAAC9C,OAAQ1B,SAGjBo6B,GAAI,CACF51B,KAAM,CAAC9C,OAAQ1B,SAGjB07C,IAAK,CACHl3C,KAAM,CAAC9C,OAAQ1B,UC1DnB,IAAA27C,GAAe7d,kBAAgB,CAC7Bx9B,KAAM,OACN44B,OAAQ,CAAC,cACTxwB,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,OAChC0O,EAAiBU,KACjB2S,EAAa1iB,EAAAA,OAAwB,aAAqBl5B,OAAA2G,OAAO,OAEjEsG,EAAOktC,KAEP0B,EAAax7B,EAAAA,UAAS,WAAA,OF0IhB,SAAc/f,EAAcoI,GAC1C,IAAQ+yC,EAAoC/yC,EAApC+yC,KAAMH,EAA8B5yC,EAA9B4yC,MAAOnsC,EAAuBzG,EAAvByG,OAAQrD,EAAepD,EAAfoD,KAAMyvC,EAAS7yC,EAAT6yC,KAG7BO,EAFW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,OAEhBrH,QAAO,SAACsH,EAAKC,GAC3C,IAAMC,EAAWvzC,EAAMszC,GACnBE,EAAkB,CAAA,EAMf,OALHp6B,GAASm6B,GACXC,EAAWT,KAAOQ,EACT13C,EAAS03C,KAClBC,EAAaD,GAAY,IAEpB/c,GAAAA,GAAA,CAAA,EACF6c,GAAA,GAAAp6C,EAAAA,EAAAA,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACCx5B,EAAQw5B,KAAAA,OAAAkiB,EAAA,KAAAliB,OAAYoiB,EAAWT,OAAUx5B,GAAYi6B,EAAWT,OAAI3hB,GAAAA,OACpEx5B,EAAAw5B,KAAAA,OAAQkiB,EAAkBliB,WAAAA,OAAAoiB,EAAWZ,OAAUz2C,SAASq3C,EAAWZ,MAAO,KAAO,GAAA,GAAAxhB,OACjFx5B,EAAAw5B,KAAAA,OAAQkiB,EAAmBliB,YAAAA,OAAAoiB,EAAW/sC,QAAWtK,SAASq3C,EAAW/sC,OAAQ,KAAO,GAAA2qB,GAAAA,OACpFx5B,OAAAw5B,OAAQkiB,EAAiB,UAAAliB,OAAAoiB,EAAWpwC,MAASjH,SAASq3C,EAAWpwC,KAAM,KAAO,GAAA,GAAAguB,OAC9Ex5B,EAAA,KAAAw5B,OAAQkiB,EAAiBliB,UAAAA,OAAAoiB,EAAWX,MAAS12C,SAASq3C,EAAWX,KAAM,KAAO,GAEtF,GAAG,CAAE,GAEE,OAAArc,GAAAv9B,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OACDx5B,IAAS,MAAAw5B,OACTx5B,EAAA,KAAAw5B,OAAQ2hB,IAAUx5B,GAAYw5B,IAAI,GAAA3hB,OAClCx5B,EAAAw5B,WAAAA,OAAcwhB,GAAUA,MAAAxhB,OACxBx5B,EAAA,YAAAw5B,OAAe3qB,GAAWA,MAAA2qB,OAC1Bx5B,EAAA,UAAAw5B,OAAahuB,GAASA,MAAAguB,OACtBx5B,EAAA,UAAAw5B,OAAayhB,GAASA,GACvBO,EAEP,CEzKsCK,CAAczI,EAAe7xC,MAAO6G,MAEhE0zC,EAAW/7B,EAAAA,UAAS,WACxB,IF2FyBw5B,EAA8BW,EACrD6B,EACAC,EAMAzB,EEnGIuB,EAAmC,CAAA,EACjCjB,EAASzyC,EAATyyC,KAGR,GAFSiB,IAAAA,EAASjB,KFwEjB,SAAmBA,GACpB,OAAAr5B,GAASq5B,GACX,GAAArhB,OAAUqhB,EAAQrhB,KAAAA,OAAAqhB,EAAA,MAGhB,2BAA2B56C,KAAK46C,GAClCrhB,OAAAA,OAAcqhB,GAETA,CACT,CEjF+BoB,CAAUpB,IAE/BS,EAAY,CACR,IAAUY,EAAcZ,EAAtB/B,OACR75C,OAAOq5B,OAAO+iB,GFqFSvC,EErFgB2C,EFqFchC,EErFHvtC,EAAKpL,MFsFvDw6C,EAAa,CAAA,EACbC,EAAkB,SAACzC,GACvB,OAAA75C,OAAOq5B,OAAOgjB,EAAY,CACxBI,eAAA3iB,OAAgB+f,EAAS,EAAA,MACzB6C,aAAA5iB,GAAAA,OAAiB+f,EAAS,EAAA,OAC3B,EAEGgB,EAAc,CAClB/4B,SAAU,SAAC+3B,GACL/3B,GAAS+3B,IACXyC,EAAgBzC,EAEpB,EACAp5C,QAAS,SAACo5C,GACJp5C,EAAQo5C,IAAWA,EAAO36C,SACxB4iB,GAAS+3B,EAAO,KAClByC,EAAgBzC,EAAO,IAErBt1C,EAASs1C,EAAO,KAAOA,EAAO,GAAGW,IACnBX,EAAAA,EAAO,GAAGW,IAGhC,EACAj2C,SAAU,SAACs1C,GAELt1C,EAASs1C,KAAYp5C,EAAQo5C,IAAWA,EAAOW,IACjD8B,EAAgBzC,EAAOW,GAE3B,GAGFx6C,OAAO4F,KAAKi1C,GAAa7hC,SAAQ,SAAC2uB,GAChCkT,EAAYlT,GAAMkS,EACpB,IAEOwC,GExHH,CACOD,OAAAA,CACT,IAEA,OAAO,WAAM,IAAArB,EA3BW90B,EA4BT+0B,EAAQtyC,EAAb1F,IAEN,OAAAs8B,EAAAA,YAAA0b,EAAA,CAAAzb,MAAYsc,EAAWh6C,MAAA05B,MAAc6gB,EAASv6C,OA9B1B,mBAAAokB,EA+BjB80B,EAAAxS,EAAe,aA/BE0S,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA+BO80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,IAIjC,IC7BW4B,GAAMtN,GAAY+K,IAClBwC,GAAMvN,GAAYsM,ICJ/BkB,GAAe/e,kBAAgB,CAC7Bx9B,KAAM,UACNy9B,MAAQ,WACA,IAAA+e,EAAUlkB,OAAI,GACd2P,EAAiBU,KACjByK,EAAiB7Z,GAAe,UAChCwF,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAC7BqzB,EAAe7xC,MAAAF,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET4Z,EAAe7xC,MAAA,gBAAsBi7C,EAAQj7C,WAM9C,OAFC+3B,EAAAA,QAAA,SAAU,CAAEkjB,QAAAA,IAEb,WAAA,OAAAxd,EAAAA,YAAA,UAAA,CAAAC,MAAsBF,EAAQx9B,OAAQ0mC,CAAAA,EAAe,aAC9D,IClBawU,GAAA,CAEbpd,OAAQ,CACNn7B,KAAM/C,OACNoqB,QAAS,KCJbmxB,GAAelf,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,kBAChC0O,EAAiBU,KACvB,OAAO,WAAA,OAAA3J,EAAAA,YAAA,SAAA,CAAAC,MACUmU,EAAe7xC,MAAA05B,MAAc7yB,EAAMi3B,OAAS,CAAEA,OAAQj3B,EAAMi3B,QAAW,CAAC,GACpF4I,CAAAA,EAAe,aAGtB,ICXa0U,GAAA,CAEbtd,OAAQ,CACNn7B,KAAM/C,OACNoqB,QAAS,KCJbqxB,GAAepf,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,kBAChC0O,EAAiBU,KAEvB,OAAO,WAAA,OAAA3J,EAAAA,YAAA,SAAA,CAAAC,MACUmU,EAAe7xC,MAAA05B,MAAc7yB,EAAMi3B,OAAS,CAAEA,OAAQj3B,EAAMi3B,QAAW,CAAC,GACpF4I,CAAAA,EAAe,aAGtB,ICZa4U,GAAA,CAEbzd,MAAO,CACLl7B,KAAM/C,OACNoqB,QAAS,KCJbuxB,GAAetf,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAEo0C,EAAY5jB,EAAAA,OAA0B,SAAiBl5B,OAAA2G,OAAO,OAA9Dm2C,QACFpJ,EAAiB7Z,GAAe,iBAChC0O,EAAiBU,KACvB,GAAK6T,EAUL,OARA7e,EAAAA,WAAU,WACR6e,EAAQj7C,OAAQ,CAClB,IAEAgxC,EAAAA,aAAY,WACViK,EAAQj7C,OAAQ,CAClB,IAEO,WACC,IAAAy5B,EAAS5yB,EAAMg3B,MAAQ,CAAEA,MAAOh3B,EAAMg3B,OAAU,GAEpD,OAAAJ,EAAAA,YAAA,QAAA,CAAAC,MAAcmU,EAAe7xC,MAAA05B,MAAcD,GACxCiN,CAAAA,EAAe,aAIxB,ICtBa8U,GAAA,CAEb1rB,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,YCXnB86C,GAAexf,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAAA,GACAq1B,MAAQ,WACA,IAAA2V,EAAiB7Z,GAAe,mBAChC+R,EAAgBjC,KAEf,OAAA,WAAA,OAAArK,EAAAA,YAAA,OAAA,CAAAC,MAAmBmU,EAAe7xC,QAAQ+pC,EAAc,UAAW,aAC5E,ICGW2R,GAAQlO,GAAY+N,IACpBI,GAASnO,GAAYwN,IACrBY,GAASpO,GAAY2N,IACrBU,GAASrO,GAAY6N,IACrBS,GAAUtO,GAAYiO,ICXpBM,GAAA,CAEbhE,MAAO,CACLp1C,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,UAAUjnB,SAASinB,EAC9C,GAGFxV,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBq7C,OAAQrT,QAER3e,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBs7C,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,ICvCJ4W,GAAejgB,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,WAChC+R,EAAgBjC,KACtB,OAAO,WACL,IAAQmU,EAA0Bp1C,EAA1Bo1C,OAAQD,EAAkBn1C,EAAlBm1C,OAAQjE,EAAUlxC,EAAVkxC,MAClBhS,EAAWgE,EAAc,UAAW,WAEpCoS,EAAoB,CAAAlkB,GAAAA,OACrB4Z,EAAe7xC,OAClB,CAAA,GAAAi4B,OAAI4Z,EAAe7xC,MAAA,MAAAi4B,OAAUgkB,IAAQn8C,EAAAA,EAAAA,EAAAm4B,GAAAA,GAAAA,OAE/B4Z,EAAe7xC,MAAkB,cAAEg8C,GAAA/jB,GAAAA,OACnC4Z,EAAe7xC,MAAqB,iBAAE+lC,GAAA9N,GAAAA,OACtC4Z,EAAe7xC,MAAoBi4B,gBAAAA,OAAA8f,KAAYhS,IAIvD,OAAAtI,EAAAA,YAAA,MAAA,CAAAC,MACcye,GACTpW,CAAAA,yCAA4B8L,EAAe7xC,MAAA,iBAAA,CAAsB+lC,MAI1E,ICtBWqW,GAAU5O,GAAY0O,ICApBG,GAAA,CAEbtE,MAAO,CACLp1C,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,MAAO,SAAU,YAAYjnB,SAASinB,EACzD,GAGFgX,UAAW3T,QAEX1X,UAAW,CACTtuB,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,cAAcjnB,SAASinB,EAC7C,GAGFiX,UAAW,CACT55C,KAAM,CAAC/C,OAAQe,WAGjByK,KAAM,CACJzI,KAAM,CAAC/C,OAAQC,OAAQrC,OACvBwsB,QAAS,WCVN,SAASwyB,KACd,IAAMpW,EAAWhP,EAAAA,qBACV,OAAA,SAACqlB,EAA4BzV,GAA2B,IAAA0V,EAAAC,EAMtD,OALF3V,IACHA,EAAQZ,EAASY,OAIZrB,IAFS,QAAA+W,EAAA1V,SAAA,IAAA0V,GAAiB,QAAjBC,EAAAD,EAAiB,eAAA,IAAAC,OAAA,EAAjBA,EAAAr+C,KAAAo+C,KAAsB,IAEVzV,QAAO,SAACnB,GACjC,IAAA8W,EAAA,OAAwBA,QAAxBA,EAAA9W,EAAKnjC,KAAmBlE,gBAAAm+C,SAAxBA,EAA8BC,SAASJ,EAAkB,IAGhE,CASO,SAASK,KAWd,IAAM1W,EAAWhP,EAAAA,qBACjB,OAAO,WAAM,IAAA2lB,EACH/V,EAAUZ,EAAVY,MAGD,QAFSA,SAAiB+V,QAAjBA,EAAA/V,qBAAiB+V,SAAjBA,EAAAz+C,KAAA0oC,KAAsB,IAGnCC,QAAO,SAACnB,GACP,QAAyB,WAArB5mC,EAAO4mC,EAAKnjC,QAAsBmjC,EAAKC,WAGpCD,EAAKnjC,OAASq6C,SACvB,IACCnxC,KAAI,SAACi6B,GACJ,OAAIA,EAAKC,UAAYnnC,EAAQknC,EAAKC,WAAaD,EAAKnjC,OAASqjC,EAAAA,SAAiBF,EAAKC,SAC5ED,CACT,IACCmX,OAEP,CAOO,SAASC,KAcP,OAbP,SAASC,EAAgBpX,GACvB,IAAMzkC,EAAuB,GAUtB,OATEykC,EAAA5uB,SAAQ,SAACw5B,GACZjL,UAAQiL,IAAUA,EAAMhuC,OAASqjC,YAAYxoC,MAAMoB,QAAQ+xC,EAAM5K,UACnEzkC,EAAO2I,KAAKpE,MAAZvE,EAAA3C,EAAew+C,EAAgBxM,EAAM5K,YAC5BL,EAAAA,QAAQiL,IAAU,CAACxF,EAAUA,SAAA6R,WAASI,MAAK,SAACC,GAAA,OAAUA,IAAU1M,EAAMhuC,IAAO,KAGtFrB,EAAO2I,KAAK0mC,EAEhB,IACOrvC,CACT,CAEF,okBCvFA,IAAMg8C,GAAU,CAAEllB,MAAO,MAAOC,OAAQ,OAAQC,MAAO,QACjDilB,GlHoGC,WAA8B,IAAAC,EAAAC,EAAAC,EAC/B,GAAqB,oBAAd1iB,YAA8BA,UAAkB,OAAA,EAC3D,IAAM+B,EAAK/B,UAAUE,UACfyiB,EAAc5gB,EAAGrwB,MAAM,yCAC7B,GAAI7M,OAAO89C,SAAcH,QAAAA,EAAdG,EAAc,UAAdH,IAAcA,OAAdA,EAAAA,EAAkBjuC,MAAM,KAAK,IAAM,IAAY,OAAA,EACpD,IAAAquC,EAAc7gB,EAAGrwB,MAAM,0CAC7B,GAAI7M,OAAO+9C,SAAcH,QAAAA,EAAdG,EAAc,UAAdH,IAAcA,OAAdA,EAAAA,EAAkBluC,MAAM,KAAK,IAAM,GAAW,OAAA,EAEzD,GADkBwrB,MACD,GAAW,OAAA,EACtB,IAAA8iB,EAAe9gB,EAAGrwB,MAAM,kBAC9B,OAAI7M,OAAOg+C,SAAeH,QAAAA,EAAfG,EAAe,UAAfH,IAAeA,OAAfA,EAAAA,EAAmBnuC,MAAM,KAAK,IAAM,GAEjD,CkHhH4BuuC,GAE5BC,GAAe9hB,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CAEHm3C,qBAAsBrV,UAExBzM,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,SAChC0O,EAAiBU,KACjB6W,EAAgBnB,KAChBK,EAAkBD,KAElBgB,EAAe1/B,EAAAA,UAAS,WAAA,OAAM3X,EAAMm3C,sBAAwBT,MAE5DY,EAAc3/B,EAAAA,UAAwB,WAC1C,IAAI4/B,EAAY,GACZx/C,EAAQiI,EAAMuE,MAChBgzC,EAAYv3C,EAAMuE,KACfS,KAAI,SAACuY,GACJ,OAAInE,GAASmE,GAAI6T,GAAAA,OAAU7T,EAAA,MACvBnF,GAASmF,IAAM,CAAC,QAAS,SAAU,SAAS/F,SAAS+F,GAAWk5B,GAAQl5B,GACrEA,CACT,IACClV,KAAK,KACC+P,GAASpY,EAAMuE,MACxBgzC,EAAY,CAAC,QAAS,SAAU,SAAS//B,SAASxX,EAAMuE,MAAQkyC,GAAQz2C,EAAMuE,MAAoBvE,EAAMuE,KAC/F6U,GAASpZ,EAAMuE,QACxBgzC,KAAAnmB,OAAepxB,EAAMuE,KAAA,OAGvB,IAAMsuB,EAA4C,CAAA,EAClD,GAAIwkB,EAAal+C,MAAO,CACtB,IAA+Cq+C,EAAA76B,GAAnB46B,EAAU7uC,MAAM,KAAG,GAAxC+uC,EAAWD,EAAA,GAAAtF,EAAMsF,EAAA,GACxB3kB,EAAM,yBAA2B4kB,EACjC5kB,EAAM,sBAAwBqf,GAAUuF,CAC1C,MACE5kB,EAAM6kB,IAAMH,EAEP,OAAA1kB,CACT,IAkBA,OAAO,WACL,IAjBMqM,EACAyY,EAgBAC,EAAkB,CAAAxmB,GAAAA,OACnB4Z,EAAe7xC,OAAAF,EAAAA,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEZ4Z,EAAe7xC,iBAAe6G,OAAAA,EAAMkxC,OAAUlxC,EAAMkxC,OAAA9f,GAAAA,OACpD4Z,EAAe7xC,MAAS6G,KAAAA,OAAAA,EAAMoqB,WAAcpqB,EAAMoqB,WAAA,GAAAgH,OAClD4Z,EAAe7xC,MAAsB6G,gBAAAA,EAAMy1C,cAAArkB,OAC3C4Z,EAAe7xC,MAAA,cAAoBk+C,EAAal+C,QAKtD,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAY+gB,EAAA/kB,MAAwBykB,EAAYn+C,OAC7C0+C,EA7BC3Y,EAAWoX,EAAgBc,KAC3BO,EAAmB9X,EAAe,aACjCX,EAASl6B,KAAI,SAAC8kC,EAAO7uC,GAEtB,GADe4jC,EAAAA,QAAQiL,IAAUA,EAAMhuC,OAASwoC,WAC7B,OAAA,KAEvB,IAAMwT,EAAgB78C,EAAQ,IAAMikC,EAAS1oC,QAAUmhD,EACvD,OAAA/gB,EAAAO,YAAA4gB,EAAA5Y,SAAA,KAAA,CAAAvI,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEmB4Z,EAAe7xC,MAAA,UAAA,CAAe2wC,IAC5CgO,GAAAlhB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAgC4Z,EAAe7xC,MAAA,oBAAA,CAAyBw+C,KAG/E,OAoBJ,IChFWK,GAAQrR,GAAYuQ,ICAlBe,GAAA,CAEbC,SAAUpW,QAEVqW,MAAOrW,QAEPsW,OAAQ,CACNt8C,KAAM9C,OACNmqB,QAAS,GAGXk1B,aAAc,CACZv8C,KAAMxE,QAGRghD,WAAY,CACVx8C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGF8Z,MAAO,CACLz8C,KAAMnF,OAGR6hD,WAAY,CACV18C,KAAMxE,QAGR89C,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFl6B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFga,YAAa,CACX38C,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQjnB,SAASinB,EACpC,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,YClEN4+C,GAAqD5hD,OAAO,iBCA7D6hD,YAAAA,GAAAA,OACVA,EAAQ,MAAA,QACRA,EAAQ,MAAA,QAFEA,CAAA,EAAAA,IAAA,CAAA,GCaL,SAASC,GAAiBje,GAA2E,IAAb0E,EAAStgC,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,CAAA,EAClG,OAAAqZ,GAASuiB,GACJA,EAEL99B,EAAW89B,GACNA,EAAKld,IAAG4hB,GAEbxiC,EAAW89B,eAAAA,EAAMoK,QACZpK,EAAKoK,OAAOtnB,EAAAA,EAAG4hB,GAGjB1E,CACT,CASgB,SAAAke,GAAiBle,EAAauG,EAAeC,GAAgB,IAAA2X,EACrEC,EAAoB,QAApBD,EAAOne,EAAK36B,aAAQ,IAAA84C,OAAA,EAAbA,EAAa5X,GACtB,GAAA6X,EAAa,OAAAA,EAEjB,IAAM7Z,EAAWvE,EAAKuE,SAChB8Z,GAAO9Z,eAAAA,EAAWgC,MAAUhC,eAAAA,EAAWiC,IAEzC,OAAA6X,EAAaA,aAAO,EAAPA,IAEV,IACT,CAQgB,SAAAC,GAAgBC,EAAsBja,GACpD,OAAOia,IAAcP,GAAU34C,KACjC,CCnDA,IAAAm5C,GAAe/jB,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAO,CACLo5C,IAAKziD,MACL0iD,SAAUtgD,QAEZs8B,MAAAA,SAAMr1B,GACE,IAAAs5C,EAAoB9oB,SAAOkoB,IAC3B1N,EAAiB7Z,GAAe,gBAC9BT,EAAiBP,GAAU,gBAA3BO,aACF6oB,EAAqB5hC,EAAAA,UAAS,WAAA,MAAmC,eAA7B2hC,EAAkBlE,UACtDoE,EAAyB7hC,EAAAA,UAAS,WAAA,MAAuC,eAAjC2hC,EAAkBhB,cAE1DmB,EAAQ,SAAC9e,GACb,IAAM+e,EAAa,CAAAtoB,GAAAA,OAAI4Z,EAAe7xC,MAAc,YAEhDsgD,EAAQ,KACR1G,EAAO,KACPkG,GAAgBj5C,EAAMq5C,WACxBI,EAAQ9e,EAAK8e,MACb1G,EAAOpY,EAAKoY,OAEZ0G,EAAQZ,GAAiBle,EAAM,SAC/BoY,EAAOpY,EAAK36B,MAAM+yC,MAGpB,IAAM4G,EAAYJ,EAAmBpgD,MAASqgD,EAAuBrgD,MAAQ,EAAI45C,EAAQ,EAEvF,OAAAnc,EAAAO,iBAAAoN,aAAA,CAAAqV,QAAaD,EAAA9iB,MAAkB6iB,GAAgB,CAAE7mB,MAAOymB,EAAkBd,aACvEiB,CAAAA,EACAH,EAAkBnB,OAASznB,EAAav3B,MAAMg0B,aAK/ClE,EAAU,SAAC0R,GACf,IAAMkf,EAAe,CAAAzoB,GAAAA,OAAI4Z,EAAe7xC,MAAgB,cAEpD8vB,EAAU,KACV8pB,EAAO,KACPkG,GAAgBj5C,EAAMq5C,WACxBpwB,EAAU0R,EAAK1R,QACf8pB,EAAOpY,EAAKoY,OAEZ9pB,EAAU4vB,GAAiBle,EAAM,UAAW,WAC5CoY,EAAOpY,EAAK36B,MAAM+yC,MAEd,IAAA+G,EAAcP,EAAmBpgD,MACnC45C,EAAO,GAAKyG,EAAuBrgD,MAC1B,EAAP45C,EAAW,EACXA,EACF,EAEJ,OAAAnc,EAAAO,iBAAAoN,aAAA,CAAAqV,QACeE,EAAAjjB,MAAoBgjB,GAAA,CAAoBhnB,MAAOymB,EAAkBjB,eAAA,CAC3EpvB,KAiDP,OAAO,WAAA,OAAA2N,EAAAA,YAAAmhB,EAAAA,SAAA,KAAA,CAEFwB,EAAmBpgD,MAChBqgD,EAAuBrgD,MA3CzBy9B,EAAAO,uBAEDn3B,EAAMo5C,IAAIp0C,KAAI,SAAC21B,GACd,OAAA/D,EAAAO,YAAA4gB,WAAA,KAAA,CACG0B,EAAM9e,GACN1R,EAAQ0R,IAEZ,8DAMI36B,EAAMo5C,IAAIp0C,KAAI,SAAC21B,GAAA,OAAS8e,EAAM9e,QAAK/D,EAAAO,YAAA,KAAA,KAAA,CACnCn3B,EAAMo5C,IAAIp0C,KAAI,SAAC21B,GAAA,OAAS1R,EAAQ0R,UAgCjC6e,EAAuBrgD,MA5BzBy9B,EAAAO,YAAA4gB,EAAA5Y,SAEDn/B,KAAAA,CAAAA,EAAMo5C,IAAIp0C,KAAI,SAAC21B,wBAEX8e,KAAAA,KAAAA,CAAAA,EAAM9e,GACN1R,EAAQ0R,IAEZ,+BAMA36B,KAAAA,CAAAA,EAAMo5C,IAAIp0C,KAAI,SAAC21B,GACd,OAAA/D,EAAAO,YAAA4gB,EAAA5Y,SAAAvI,KAAAA,CAAAA,EAAAO,uBACOsiB,EAAM9e,8BACN1R,EAAQ0R,MAEhB,QAeP,IC5FFof,GAAe3kB,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,gBAC9BG,EAASD,KAATC,KACF0oB,EAAiBrE,KACjB9V,EAAiBU,KACjB2Y,EAAYhpB,EAAAA,IAAeyoB,GAAU34C,OAGrCi6C,EAAU,WAOR,IAAE7B,EAAmBp4C,EAAnBo4C,OAAQhD,EAAWp1C,EAAXo1C,OAEZmD,EAA8B,GAE9B,GAAAxgD,EAAQiI,EAAMu4C,OAMhBA,EAAQv4C,EAAMu4C,MAAMvzC,KAAI,SAACi6B,GAAU,MAAA,CACjCwa,MAAOb,GAAiB3Z,EAAKwa,OAC7BxwB,QAAS2vB,GAAiB3Z,EAAKhW,SAC/B8pB,KAAM9T,EAAK8T,MAAQ,EACnB,IACFmG,EAAU//C,MAAQw/C,GAAU34C,UACvB,CACC,IAAAmgC,EAAQ6Z,EAAe,qBACR,IAAjB7Z,EAAM3pC,SAEA+hD,EAAApY,EACR+Y,EAAU//C,MAAQw/C,GAAUxY,MAEhC,CAGA,GAAe,aAAXiV,EACF,MAAO,CAACmD,GAIV,IAAI2B,EAA6B,GAC7BC,EAAQ/B,EAGNt/C,EAA8B,GAmC7B,OAlCDy/C,EAAAjoC,SAAQ,SAAC2uB,EAAMhkC,GACnB,IAKOm/C,EALHrH,EAAO,EACPkG,GAAgBC,EAAU//C,OAGrB45C,GAFPA,EAAO15B,GAAM4lB,EAAK8T,MAAQA,EAAO9T,EAAK8T,MAExBqF,EAASA,EAASrF,GAE3B9T,EAAAj/B,MAAQi/B,EAAKj/B,OAAS,CAAA,EAEpB+yC,GADPA,EAAO15B,GAAW,UAAL4lB,EAAKj/B,aAAA,IAAAo6C,OAAA,EAALA,EAAYrH,MAAQA,EAAO9T,EAAKj/B,MAAM+yC,MACrCqF,EAASA,EAASrF,EAChC9T,EAAKj/B,MAAM+yC,KAAOA,GAGhBoH,GAASpH,GAEXmH,EAAK92C,KAAK67B,GACDkb,GAAApH,IAGTj6C,EAAIsK,KAAK82C,GACTA,EAAO,CAACjb,GACRkb,EAAQ/B,EAASrF,GAGf93C,IAAUs9C,EAAM/hD,OAAS,IAEvByiD,GAAgBC,EAAU//C,OAC5B8lC,EAAK8T,MAAQoH,EAEblb,EAAKj/B,MAAM+yC,MAAQoH,EAErBrhD,EAAIsK,KAAK82C,GAEb,IACOphD,GAGTo4B,UAAQwnB,GAAiB14C,GAyBzB,OAAO,WAAA,OAAA42B,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,OAAA,EALrBwvB,EAAQkX,EAAe,SACtBlX,EAAAiO,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAuB4Z,EAAe7xC,MAAA,aAAkBwvB,CAAAA,IAAe,KAnBxE0xB,EAAa,CAAA,GAAAjpB,OACd4Z,EAAe7xC,MAAA,UAClBm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAAAm4B,CAAAA,EAAAA,GAAAA,OACX4Z,EAAe7xC,MAAuB6G,iBAAsB,UAAtBA,EAAMy4C,aAAwBx/C,QAAAm4B,OACpE4Z,EAAe7xC,wBAAwB6G,EAAMk4C,WAGnDthB,EAAAA,YAAA,QAAA,CAAAC,MAAcwjB,GAAAzjB,CAAAA,EAAAA,0BAETqjB,IAAUj1C,KAAI,SAACo0C,GAAA,OAAAxiB,EAAAA,YAAAuiB,GAAA,CAAA,YACcD,EAAU//C,MAAOigD,IAAKA,mBAXzC,IACXiB,EAkBA1xB,EAUV,IC9Ia2xB,GAAA,CAEbrxB,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB2/C,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBi5C,KAAM,CACJj3C,KAAM9C,OACNmqB,QAAS,ICtBbo3B,GAAenlB,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAAA,KCMWw6C,GAAe7T,GAAYoT,IAC3BU,GAAmB9T,GAAY4T,ICZ5C,SAASG,GAAmBC,EAAK3sC,EAAS4sC,EAAQC,EAAOC,EAAQtiD,EAAKD,GACpE,IACE,IAAIktB,EAAOk1B,EAAIniD,GAAKD,GAChBY,EAAQssB,EAAKtsB,KAClB,CAAC,MAAO+4B,GAEP,YADA0oB,EAAO1oB,EAET,CACIzM,EAAKrI,KACPpP,EAAQ7U,GAER+T,QAAQc,QAAQ7U,GAAO4hD,KAAKF,EAAOC,EAEvC,CACe,SAASE,GAAkBriB,GACxC,OAAO,WACL,IAAI/+B,EAAOiH,KACTH,EAAO3B,UACT,OAAO,IAAImO,SAAQ,SAAUc,EAAS4sC,GACpC,IAAID,EAAMhiB,EAAG35B,MAAMpF,EAAM8G,GACzB,SAASm6C,EAAM1hD,GACbuhD,GAAmBC,EAAK3sC,EAAS4sC,EAAQC,EAAOC,EAAQ,OAAQ3hD,EAClE,CACA,SAAS2hD,EAAOG,GACdP,GAAmBC,EAAK3sC,EAAS4sC,EAAQC,EAAOC,EAAQ,QAASG,EACnE,CACAJ,OAAMhiD,EACR,IAEJ,kDC7BA,SAASR,EAAQnB,GAGf,OAAQ6K,EAAAH,QAAiBvJ,EAAU,mBAAqBvB,QAAU,iBAAmBA,OAAOC,SAAW,SAAUG,GAC/G,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAK,mBAAqBJ,QAAUI,EAAES,cAAgBb,QAAUI,IAAMJ,OAAOS,UAAY,gBAAkBL,CACnH,EAAE6K,EAA4BH,QAAAs5C,YAAA,EAAMn5C,EAAOH,QAAiB,QAAIG,EAAOH,QAAUvJ,EAAQnB,EAC5F,CACA6K,EAAAH,QAAiBvJ,EAAS0J,EAA4BH,QAAAs5C,YAAA,EAAMn5C,EAAOH,QAAiB,QAAIG,EAAOH,yBCT/F,IAAIvJ,EAAUksB,WAAgC,QAC9C,SAAS42B;;AAEPp5C,EAAiBH,QAAAu5C,EAAsB,WACrC,OAAO3gD,CACX,EAAKuH,EAAAH,QAAAs5C,YAA4B,EAAMn5C,EAAOH,QAAiB,QAAIG,EAAOH,QACxE,IAAImb,EACFviB,EAAI,CAAE,EACNqiB,EAAIvlB,OAAOC,UACXF,EAAIwlB,EAAE7iB,eACN9C,EAAII,OAAO+B,gBAAkB,SAAU0jB,EAAGviB,EAAGqiB,GAC3CE,EAAEviB,GAAKqiB,EAAE1jB,KACV,EACD1C,EAAI,mBAAqBK,OAASA,OAAS,CAAE,EAC7CmmB,EAAIxmB,EAAEM,UAAY,aAClBymB,EAAI/mB,EAAE2kD,eAAiB,kBACvBp+B,EAAIvmB,EAAE0D,aAAe,gBACvB,SAASkhD,EAAOt+B,EAAGviB,EAAGqiB,GACpB,OAAOvlB,OAAO+B,eAAe0jB,EAAGviB,EAAG,CACjCrB,MAAO0jB,EACPvjB,YAAY,EACZC,cAAc,EACdC,UAAU,IACRujB,EAAEviB,EACP,CACD,IACE6gD,EAAO,CAAA,EAAI,GACZ,CAAC,MAAOt+B,GACPs+B,EAAS,SAAgBt+B,EAAGviB,EAAGqiB,GAC7B,OAAOE,EAAEviB,GAAKqiB,EAEjB,CACD,SAASy+B,EAAKv+B,EAAGviB,EAAGqiB,EAAGxlB,GACrB,IAAIZ,EAAI+D,GAAKA,EAAEjD,qBAAqBgkD,EAAY/gD,EAAI+gD,EAClDt+B,EAAI3lB,OAAO2G,OAAOxH,EAAEc,WACpBimB,EAAI,IAAIg+B,EAAQnkD,GAAK,IACvB,OAAOH,EAAE+lB,EAAG,UAAW,CACrB9jB,MAAOsiD,EAAiB1+B,EAAGF,EAAGW,KAC5BP,CACL,CACD,SAASy+B,EAAS3+B,EAAGviB,EAAGqiB,GACtB,IACE,MAAO,CACL/gB,KAAM,SACNvD,IAAKwkB,EAAEtlB,KAAK+C,EAAGqiB,GAElB,CAAC,MAAOE,GACP,MAAO,CACLjhB,KAAM,QACNvD,IAAKwkB,EAER,CACF,CACDviB,EAAE8gD,KAAOA,EACT,IAAI79B,EAAI,iBACNX,EAAI,iBACJI,EAAI,YACJK,EAAI,YACJK,EAAI,CAAA,EACN,SAAS29B,IAAc,CACvB,SAASI,IAAsB,CAC/B,SAASC,IAA+B,CACxC,IAAIl9B,EAAI,CAAA,EACR28B,EAAO38B,EAAGzB,GAAG,WACX,OAAOpc,IACX,IACE,IAAI6c,EAAIpmB,OAAO6P,eACb+W,EAAIR,GAAKA,EAAEA,EAAElX,EAAO,MACtB0X,GAAKA,IAAMrB,GAAKxlB,EAAEI,KAAKymB,EAAGjB,KAAOyB,EAAIR,GACrC,IAAIa,EAAI68B,EAA2BrkD,UAAYgkD,EAAUhkD,UAAYD,OAAO2G,OAAOygB,GACnF,SAASm9B,EAAsB9+B,GAC7B,CAAC,OAAQ,QAAS,UAAUzM,SAAQ,SAAU9V,GAC5C6gD,EAAOt+B,EAAGviB,GAAG,SAAUuiB,GACrB,OAAOlc,KAAKi7C,QAAQthD,EAAGuiB,EAC/B,GACA,GACG,CACD,SAASg/B,EAAch/B,EAAGviB,GACxB,SAASwhD,EAAOn/B,EAAG3lB,EAAGT,EAAGwmB,GACvB,IAAIO,EAAIk+B,EAAS3+B,EAAEF,GAAIE,EAAG7lB,GAC1B,GAAI,UAAYsmB,EAAE1hB,KAAM,CACtB,IAAIkhB,EAAIQ,EAAEjlB,IACRklB,EAAIT,EAAE7jB,MACR,OAAOskB,GAAK,UAAYplB,EAAQolB,IAAMpmB,EAAEI,KAAKgmB,EAAG,WAAajjB,EAAEwT,QAAQyP,EAAEw+B,SAASlB,MAAK,SAAUh+B,GAC/Fi/B,EAAO,OAAQj/B,EAAGtmB,EAAGwmB,EACtB,IAAE,SAAUF,GACXi/B,EAAO,QAASj/B,EAAGtmB,EAAGwmB,EAChC,IAAaziB,EAAEwT,QAAQyP,GAAGs9B,MAAK,SAAUh+B,GAC/BC,EAAE7jB,MAAQ4jB,EAAGtmB,EAAEumB,EAChB,IAAE,SAAUD,GACX,OAAOi/B,EAAO,QAASj/B,EAAGtmB,EAAGwmB,EACvC,GACO,CACDA,EAAEO,EAAEjlB,IACL,CACD,IAAIskB,EACJ3lB,EAAE2J,KAAM,UAAW,CACjB1H,MAAO,SAAe4jB,EAAG1lB,GACvB,SAAS6kD,IACP,OAAO,IAAI1hD,GAAE,SAAUA,EAAGqiB,GACxBm/B,EAAOj/B,EAAG1lB,EAAGmD,EAAGqiB,EAC5B,GACS,CACD,OAAOA,EAAIA,EAAIA,EAAEk+B,KAAKmB,EAA4BA,GAA8BA,GACjF,GAEJ,CACD,SAAST,EAAiBjhD,EAAGqiB,EAAGxlB,GAC9B,IAAIH,EAAIumB,EACR,OAAO,SAAUhnB,EAAGwmB,GAClB,GAAI/lB,IAAMgmB,EAAG,MAAM,IAAI+c,MAAM,gCAC7B,GAAI/iC,IAAMqmB,EAAG,CACX,GAAI,UAAY9mB,EAAG,MAAMwmB,EACzB,MAAO,CACL9jB,MAAO4jB,EACPK,MAAM,EAET,CACD,IAAK/lB,EAAEikC,OAAS7kC,EAAGY,EAAEkB,IAAM0kB,IAAK,CAC9B,IAAIO,EAAInmB,EAAE8kD,SACV,GAAI3+B,EAAG,CACL,IAAIR,EAAIo/B,EAAoB5+B,EAAGnmB,GAC/B,GAAI2lB,EAAG,CACL,GAAIA,IAAMY,EAAG,SACb,OAAOZ,CACR,CACF,CACD,GAAI,SAAW3lB,EAAEikC,OAAQjkC,EAAEglD,KAAOhlD,EAAEilD,MAAQjlD,EAAEkB,SAAS,GAAI,UAAYlB,EAAEikC,OAAQ,CAC/E,GAAIpkC,IAAMumB,EAAG,MAAMvmB,EAAIqmB,EAAGlmB,EAAEkB,IAC5BlB,EAAEklD,kBAAkBllD,EAAEkB,IAChC,KAAe,WAAalB,EAAEikC,QAAUjkC,EAAEmlD,OAAO,SAAUnlD,EAAEkB,KACrDrB,EAAIgmB,EACJ,IAAIwB,EAAIg9B,EAASlhD,EAAGqiB,EAAGxlB,GACvB,GAAI,WAAaqnB,EAAE5iB,KAAM,CACvB,GAAI5E,EAAIG,EAAE+lB,KAAOG,EAAIT,EAAG4B,EAAEnmB,MAAQqlB,EAAG,SACrC,MAAO,CACLzkB,MAAOulB,EAAEnmB,IACT6kB,KAAM/lB,EAAE+lB,KAEX,CACD,UAAYsB,EAAE5iB,OAAS5E,EAAIqmB,EAAGlmB,EAAEikC,OAAS,QAASjkC,EAAEkB,IAAMmmB,EAAEnmB,IAC7D,EAEJ,CACD,SAAS6jD,EAAoB5hD,EAAGqiB,GAC9B,IAAIxlB,EAAIwlB,EAAEye,OACRpkC,EAAIsD,EAAEzD,SAASM,GACjB,GAAIH,IAAM6lB,EAAG,OAAOF,EAAEs/B,SAAW,KAAM,UAAY9kD,GAAKmD,EAAEzD,SAAiB,SAAM8lB,EAAEye,OAAS,SAAUze,EAAEtkB,IAAMwkB,EAAGq/B,EAAoB5hD,EAAGqiB,GAAI,UAAYA,EAAEye,SAAW,WAAajkC,IAAMwlB,EAAEye,OAAS,QAASze,EAAEtkB,IAAM,IAAIJ,UAAU,oCAAsCd,EAAI,aAAcumB,EAC1R,IAAInnB,EAAIilD,EAASxkD,EAAGsD,EAAEzD,SAAU8lB,EAAEtkB,KAClC,GAAI,UAAY9B,EAAEqF,KAAM,OAAO+gB,EAAEye,OAAS,QAASze,EAAEtkB,IAAM9B,EAAE8B,IAAKskB,EAAEs/B,SAAW,KAAMv+B,EACrF,IAAIX,EAAIxmB,EAAE8B,IACV,OAAO0kB,EAAIA,EAAEG,MAAQP,EAAEriB,EAAEiiD,YAAcx/B,EAAE9jB,MAAO0jB,EAAEM,KAAO3iB,EAAEkiD,QAAS,WAAa7/B,EAAEye,SAAWze,EAAEye,OAAS,OAAQze,EAAEtkB,IAAMwkB,GAAIF,EAAEs/B,SAAW,KAAMv+B,GAAKX,GAAKJ,EAAEye,OAAS,QAASze,EAAEtkB,IAAM,IAAIJ,UAAU,oCAAqC0kB,EAAEs/B,SAAW,KAAMv+B,EAC7P,CACD,SAAS++B,EAAa5/B,GACpB,IAAIviB,EAAI,CACNoiD,OAAQ7/B,EAAE,IAEZ,KAAKA,IAAMviB,EAAEqiD,SAAW9/B,EAAE,IAAK,KAAKA,IAAMviB,EAAEsiD,WAAa//B,EAAE,GAAIviB,EAAEuiD,SAAWhgC,EAAE,IAAKlc,KAAKm8C,WAAW55C,KAAK5I,EACzG,CACD,SAASyiD,EAAclgC,GACrB,IAAIviB,EAAIuiB,EAAEmgC,YAAc,GACxB1iD,EAAEsB,KAAO,gBAAiBtB,EAAEjC,IAAKwkB,EAAEmgC,WAAa1iD,CACjD,CACD,SAASghD,EAAQz+B,GACflc,KAAKm8C,WAAa,CAAC,CACjBJ,OAAQ,SACN7/B,EAAEzM,QAAQqsC,EAAc97C,MAAOA,KAAKs5C,OAAM,EAC/C,CACD,SAAS3zC,EAAOhM,GACd,GAAIA,GAAK,KAAOA,EAAG,CACjB,IAAIqiB,EAAIriB,EAAEyiB,GACV,GAAIJ,EAAG,OAAOA,EAAEplB,KAAK+C,GACrB,GAAI,mBAAqBA,EAAE2iB,KAAM,OAAO3iB,EACxC,IAAK2iD,MAAM3iD,EAAEhE,QAAS,CACpB,IAAIU,GAAK,EACPT,EAAI,SAAS0mB,IACX,OAASjmB,EAAIsD,EAAEhE,QAAS,GAAIa,EAAEI,KAAK+C,EAAGtD,GAAI,OAAOimB,EAAKhkB,MAAQqB,EAAEtD,GAAIimB,EAAKC,MAAO,EAAID,EACpF,OAAOA,EAAKhkB,MAAQ4jB,EAAGI,EAAKC,MAAO,EAAID,GAE3C,OAAO1mB,EAAE0mB,KAAO1mB,CACjB,CACF,CACD,MAAM,IAAI0B,UAAUE,EAAQmC,GAAK,mBAClC,CACD,OAAOmhD,EAAkBpkD,UAAYqkD,EAA4B1kD,EAAE6nB,EAAG,cAAe,CACnF5lB,MAAOyiD,EACPriD,cAAc,IACZrC,EAAE0kD,EAA4B,cAAe,CAC/CziD,MAAOwiD,EACPpiD,cAAc,IACZoiD,EAAkByB,YAAc/B,EAAOO,EAA4B5+B,EAAG,qBAAsBxiB,EAAE6iD,oBAAsB,SAAUtgC,GAChI,IAAIviB,EAAI,mBAAqBuiB,GAAKA,EAAEplB,YACpC,QAAS6C,IAAMA,IAAMmhD,GAAqB,uBAAyBnhD,EAAE4iD,aAAe5iD,EAAE5C,MAC1F,EAAK4C,EAAE8iD,KAAO,SAAUvgC,GACpB,OAAOzlB,OAAOimD,eAAiBjmD,OAAOimD,eAAexgC,EAAG6+B,IAA+B7+B,EAAEygC,UAAY5B,EAA4BP,EAAOt+B,EAAGC,EAAG,sBAAuBD,EAAExlB,UAAYD,OAAO2G,OAAO8gB,GAAIhC,CACzM,EAAKviB,EAAEijD,MAAQ,SAAU1gC,GACrB,MAAO,CACLk/B,QAASl/B,EAEf,EAAK8+B,EAAsBE,EAAcxkD,WAAY8jD,EAAOU,EAAcxkD,UAAWimB,GAAG,WACpF,OAAO3c,IACR,IAAGrG,EAAEuhD,cAAgBA,EAAevhD,EAAEkjD,MAAQ,SAAU3gC,EAAGF,EAAGxlB,EAAGH,EAAGT,QACnE,IAAWA,IAAMA,EAAIyW,SACrB,IAAI+P,EAAI,IAAI8+B,EAAcT,EAAKv+B,EAAGF,EAAGxlB,EAAGH,GAAIT,GAC5C,OAAO+D,EAAE6iD,oBAAoBxgC,GAAKI,EAAIA,EAAEE,OAAO49B,MAAK,SAAUh+B,GAC5D,OAAOA,EAAEK,KAAOL,EAAE5jB,MAAQ8jB,EAAEE,MAClC,GACG,EAAE0+B,EAAsB98B,GAAIs8B,EAAOt8B,EAAG/B,EAAG,aAAcq+B,EAAOt8B,EAAG9B,GAAG,WACnE,OAAOpc,IACR,IAAGw6C,EAAOt8B,EAAG,YAAY,WACxB,MAAO,oBACR,IAAGvkB,EAAE0C,KAAO,SAAU6f,GACrB,IAAIviB,EAAIlD,OAAOylB,GACbF,EAAI,GACN,IAAK,IAAIxlB,KAAKmD,EAAGqiB,EAAEzZ,KAAK/L,GACxB,OAAOwlB,EAAE8gC,UAAW,SAASxgC,IAC3B,KAAON,EAAErmB,QAAS,CAChB,IAAIumB,EAAIF,EAAEhY,MACV,GAAIkY,KAAKviB,EAAG,OAAO2iB,EAAKhkB,MAAQ4jB,EAAGI,EAAKC,MAAO,EAAID,CACpD,CACD,OAAOA,EAAKC,MAAO,EAAID,EAE1B,EAAE3iB,EAAEgM,OAASA,EAAQg1C,EAAQjkD,UAAY,CACxCI,YAAa6jD,EACbrB,MAAO,SAAe3/C,GACpB,GAAIqG,KAAK+8C,KAAO,EAAG/8C,KAAKsc,KAAO,EAAGtc,KAAKw7C,KAAOx7C,KAAKy7C,MAAQv/B,EAAGlc,KAAKuc,MAAO,EAAIvc,KAAKs7C,SAAW,KAAMt7C,KAAKy6B,OAAS,OAAQz6B,KAAKtI,IAAMwkB,EAAGlc,KAAKm8C,WAAW1sC,QAAQ2sC,IAAiBziD,EAAG,IAAK,IAAIqiB,KAAKhc,KAAM,MAAQgc,EAAEnhB,OAAO,IAAMrE,EAAEI,KAAKoJ,KAAMgc,KAAOsgC,OAAOtgC,EAAEnlB,MAAM,MAAQmJ,KAAKgc,GAAKE,EACrR,EACD8gC,KAAM,WACJh9C,KAAKuc,MAAO,EACZ,IAAIL,EAAIlc,KAAKm8C,WAAW,GAAGE,WAC3B,GAAI,UAAYngC,EAAEjhB,KAAM,MAAMihB,EAAExkB,IAChC,OAAOsI,KAAKi9C,IACb,EACDvB,kBAAmB,SAA2B/hD,GAC5C,GAAIqG,KAAKuc,KAAM,MAAM5iB,EACrB,IAAIqiB,EAAIhc,KACR,SAAS43B,EAAOphC,EAAGH,GACjB,OAAO+lB,EAAEnhB,KAAO,QAASmhB,EAAE1kB,IAAMiC,EAAGqiB,EAAEM,KAAO9lB,EAAGH,IAAM2lB,EAAEye,OAAS,OAAQze,EAAEtkB,IAAMwkB,KAAM7lB,CACxF,CACD,IAAK,IAAIA,EAAI2J,KAAKm8C,WAAWxmD,OAAS,EAAGU,GAAK,IAAKA,EAAG,CACpD,IAAIT,EAAIoK,KAAKm8C,WAAW9lD,GACtB+lB,EAAIxmB,EAAEymD,WACR,GAAI,SAAWzmD,EAAEmmD,OAAQ,OAAOnkB,EAAO,OACvC,GAAIhiC,EAAEmmD,QAAU/7C,KAAK+8C,KAAM,CACzB,IAAIpgC,EAAInmB,EAAEI,KAAKhB,EAAG,YAChBumB,EAAI3lB,EAAEI,KAAKhB,EAAG,cAChB,GAAI+mB,GAAKR,EAAG,CACV,GAAInc,KAAK+8C,KAAOnnD,EAAEomD,SAAU,OAAOpkB,EAAOhiC,EAAEomD,UAAU,GACtD,GAAIh8C,KAAK+8C,KAAOnnD,EAAEqmD,WAAY,OAAOrkB,EAAOhiC,EAAEqmD,WAC/C,MAAM,GAAIt/B,GACT,GAAI3c,KAAK+8C,KAAOnnD,EAAEomD,SAAU,OAAOpkB,EAAOhiC,EAAEomD,UAAU,OACjD,CACL,IAAK7/B,EAAG,MAAM,IAAIid,MAAM,0CACxB,GAAIp5B,KAAK+8C,KAAOnnD,EAAEqmD,WAAY,OAAOrkB,EAAOhiC,EAAEqmD,WAC/C,CACF,CACF,CACF,EACDN,OAAQ,SAAgBz/B,EAAGviB,GACzB,IAAK,IAAIqiB,EAAIhc,KAAKm8C,WAAWxmD,OAAS,EAAGqmB,GAAK,IAAKA,EAAG,CACpD,IAAI3lB,EAAI2J,KAAKm8C,WAAWngC,GACxB,GAAI3lB,EAAE0lD,QAAU/7C,KAAK+8C,MAAQvmD,EAAEI,KAAKP,EAAG,eAAiB2J,KAAK+8C,KAAO1mD,EAAE4lD,WAAY,CAChF,IAAIrmD,EAAIS,EACR,KACD,CACF,CACDT,IAAM,UAAYsmB,GAAK,aAAeA,IAAMtmB,EAAEmmD,QAAUpiD,GAAKA,GAAK/D,EAAEqmD,aAAermD,EAAI,MACvF,IAAIwmB,EAAIxmB,EAAIA,EAAEymD,WAAa,CAAA,EAC3B,OAAOjgC,EAAEnhB,KAAOihB,EAAGE,EAAE1kB,IAAMiC,EAAG/D,GAAKoK,KAAKy6B,OAAS,OAAQz6B,KAAKsc,KAAO1mB,EAAEqmD,WAAYl/B,GAAK/c,KAAKk9C,SAAS9gC,EACvG,EACD8gC,SAAU,SAAkBhhC,EAAGviB,GAC7B,GAAI,UAAYuiB,EAAEjhB,KAAM,MAAMihB,EAAExkB,IAChC,MAAO,UAAYwkB,EAAEjhB,MAAQ,aAAeihB,EAAEjhB,KAAO+E,KAAKsc,KAAOJ,EAAExkB,IAAM,WAAawkB,EAAEjhB,MAAQ+E,KAAKi9C,KAAOj9C,KAAKtI,IAAMwkB,EAAExkB,IAAKsI,KAAKy6B,OAAS,SAAUz6B,KAAKsc,KAAO,OAAS,WAAaJ,EAAEjhB,MAAQtB,IAAMqG,KAAKsc,KAAO3iB,GAAIojB,CACzN,EACDogC,OAAQ,SAAgBjhC,GACtB,IAAK,IAAIviB,EAAIqG,KAAKm8C,WAAWxmD,OAAS,EAAGgE,GAAK,IAAKA,EAAG,CACpD,IAAIqiB,EAAIhc,KAAKm8C,WAAWxiD,GACxB,GAAIqiB,EAAEigC,aAAe//B,EAAG,OAAOlc,KAAKk9C,SAASlhC,EAAEqgC,WAAYrgC,EAAEkgC,UAAWE,EAAcpgC,GAAIe,CAC3F,CACF,EACDqgC,MAAS,SAAgBlhC,GACvB,IAAK,IAAIviB,EAAIqG,KAAKm8C,WAAWxmD,OAAS,EAAGgE,GAAK,IAAKA,EAAG,CACpD,IAAIqiB,EAAIhc,KAAKm8C,WAAWxiD,GACxB,GAAIqiB,EAAE+/B,SAAW7/B,EAAG,CAClB,IAAI1lB,EAAIwlB,EAAEqgC,WACV,GAAI,UAAY7lD,EAAEyE,KAAM,CACtB,IAAI5E,EAAIG,EAAEkB,IACV0kD,EAAcpgC,EACf,CACD,OAAO3lB,CACR,CACF,CACD,MAAM,IAAI+iC,MAAM,wBACjB,EACDikB,cAAe,SAAuB1jD,EAAGqiB,EAAGxlB,GAC1C,OAAOwJ,KAAKs7C,SAAW,CACrBplD,SAAUyP,EAAOhM,GACjBiiD,WAAY5/B,EACZ6/B,QAASrlD,GACR,SAAWwJ,KAAKy6B,SAAWz6B,KAAKtI,IAAMwkB,GAAIa,CAC9C,GACApjB,CACL,CACAuH,EAAAH,QAAiBu5C,EAAqBp5C,EAA4BH,QAAAs5C,YAAA,EAAMn5C,EAAOH,QAAiB,QAAIG,EAAOH,aC7S3G,IAAIu8C,GAAU55B,GAAwC3iB,UACtDw8C,GAAiBD,GAGjB,IACEE,mBAAqBF,EACvB,CAAE,MAAOG,GACmB,YAALjmD,oBAAVkmD,WAAUlmD,YAAAA,EAAVkmD,aACTA,WAAWF,mBAAqBF,GAEhCrkD,SAAS,IAAK,yBAAdA,CAAwCqkD,GAE5C,CCLe,IAAAK,GAAA,CAEbtjB,UAAW,CACTp/B,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,WAAT,OAAgB,WAAA,OAAM2S,MAAA,CAAA,GAGxB7M,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB2kD,aAAc,CACZ3iD,KAAM9C,OACNmqB,QAAS,GAGXu7B,UAAW,CACT5iD,KAAM9C,OACNmqB,QAAS,GAGXif,OAAQ,CACNtmC,KAAM9C,QAGR2lD,cAAe7kD,UC5BjB8kD,GAAexpB,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAAA,GACA0wC,MAAO,CAAC,eACRrb,eAAMr1B,EAAOsqC,GAAS,IAAAuU,EACd7T,EAAiB7Z,GAAe,SAChC0O,EAAiBU,KAEjBue,EAAe5uB,MAAiB,MAChC6uB,EAAW7uB,MAAiB,MAC5B8uB,EAAgB9uB,EAAAA,IAAc,QAAd2uB,EAAIvlB,gBAAU,IAAAulB,OAAA,EAAVA,EAAUhiB,cAAc,QAC5CoiB,EAAU/uB,OAAI,GACdgvB,EAAShvB,OAAI,GAEbivB,EAAkBjvB,EAAAA,MAClBkvB,EAAalvB,EAAAA,MACfmvB,EAAQ,EAENC,EAAe,WACdL,EAAQ9lD,QACHkmD,EAAAvpB,OAAOiD,uBAAsB,WAAM,IAAAwmB,EAAAC,EACjCH,EAAA,EACF,IAWFI,EAXEld,EAIwCgd,QAJxCA,EAIW,QAJXC,EAIFV,EAAa3lD,aAAbqmD,IAAaA,OAAbA,EAAAA,EAAoBpiB,+BAAsBmiB,IAAAA,EAAAA,EAAK,CAAEjiB,IAAK,EAAGtG,MAAO,EAAGC,OAAQ,GAHxEyoB,EAAAnd,EAALjF,IACOqiB,EAAApd,EAAPvL,MACQ4oB,EAAArd,EAARtL,OAGE4oB,EAAe,EACfV,EAAgBhmD,iBAAiB4hC,cACpB8kB,EAAAV,EAAgBhmD,MAAMikC,wBAAwBE,KAI/D,IAAMwiB,EAAUJ,EAAYG,EAMtBE,EAAaF,GAFjBV,EAAgBhmD,MAAMgmD,EAAgBhmD,iBAAiB6mD,OAAS,cAAgB,gBAChFJ,GACkD5/C,EAAMy+C,aAY1D,GAREgB,GAFGlmC,GAAYvZ,EAAM0+C,YAAcoB,GAAW9/C,EAAM0+C,UAEzCmB,EAAe7/C,EAAM0+C,WACtBnlC,GAAYvZ,EAAMy+C,eAAiBiB,GAAaK,GAE/CA,EAKThB,EAAS5lD,MAAO,CAClB,IAAM8mD,GAAuB,IAAbR,EACVS,EAAoBpB,EAAa3lD,MAAMghC,SAAS6kB,EAAc7lD,OAEhE8mD,GACOlB,EAAA5lD,MAAMihC,UAAY4Q,EAAe7xC,MAC1CimD,EAAWjmD,MAAQ,CACjBmkC,cAAQmiB,EAAA,MACRzoB,gBAAU2oB,EAAA,MACV1oB,iBAAW2oB,EAAA,MACXxd,OAAQpiC,EAAMoiC,QAGX8d,IACWlB,EAAA7lD,MAAM05B,MAAMmE,MAAA5F,GAAAA,OAAWuuB,EAAA,MACvBX,EAAA7lD,MAAM05B,MAAMoE,OAAA7F,GAAAA,OAAYwuB,EAAA,MACzBd,EAAA3lD,MAAM2jC,YAAYkiB,EAAc7lD,UAGtC4lD,EAAA5lD,MAAMgnD,gBAAgB,SAC/Bf,EAAWjmD,WAAQ,EACE+mD,GAAAlB,EAAc7lD,MAAMwiB,UAGnC2uB,EAAAqG,KAAK,cAAesP,EAAS,CAAE3iB,IAAKtkC,OAAOymD,KAC/C5iD,EAAWmD,EAAM2+C,gBAAgB3+C,EAAM2+C,cAAcsB,EAAS,CAAE3iB,IAAKtkC,OAAOymD,IAClF,CAEAR,EAAQ9lD,OAAQ,CAClB,IACA8lD,EAAQ9lD,OAAQ,IAIdinD,+BAAa,SAAAC,IAAA,OAAAlF,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAAA,OAAAmjC,EAAAnjC,KAAA,EACXqY,EAASA,WAAA,KAAA,EAAA,IACX0pB,EAAO/lD,MAAA,CAAAmnD,EAAAnjC,KAAA,EAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,UAAA,KAAA,EACK2C,EAAAhmD,MAAQ8hC,GAAmBj7B,EAAMk7B,WAC9C7B,GAAA8lB,EAAgBhmD,MAAO,SAAUmmD,GACjCjmB,GAAAvD,OAAQ,SAAUwpB,GACrBJ,EAAO/lD,OAAQ,EAAA,KAAA,EAAA,IAAA,MAAA,OAAAmnD,EAAAzC,OAAA,GAAAwC,EACjB,KAAA,OAAA,8CAEME,EAAe,WACdpB,EAAgBhmD,OAAU+lD,EAAO/lD,QAClCygC,GAAAulB,EAAgBhmD,MAAO,SAAUmmD,GACjC1lB,GAAA9D,OAAQ,SAAUwpB,GAClBD,GACFvpB,OAAOkD,qBAAqBqmB,GAE9BH,EAAO/lD,OAAQ,IAsCjB,OAnCAuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAM0+C,SAAA,IACZ,WACeY,GACf,IAGF5d,EAAAA,OACE,WAAA,OAAM1hC,EAAMy+C,YAAA,IACZ,WACea,GACf,IAGF5d,EAAAA,OACE,WAAA,OAAM1hC,EAAMoiC,MAAA,IACZ,WACekd,GACf,IAGF/pB,EAAAA,UAAU6qB,GAEVI,EAAAA,YAAYJ,GAEZK,EAAAA,cAAcF,GAEd/O,EAAAA,gBAAgB+O,GAEhBjW,EAAQoW,OAAO,CACbvB,gBAAAA,EACAL,aAAAA,EACAQ,aAAAA,IAGK,WAAA,OAAA1oB,EAAAA,YAAA,MAAA,CAAA1G,IACK4uB,GAAA,CAAAloB,EAAAO,YAAA,MAAA,CAAAjH,IACE6uB,EAAUlsB,MAAOusB,EAAWjmD,OACnC0mC,CAAAA,EAAe,eAIxB,ICtJW8gB,GAAQha,GAAYiY;;;;;;;aCDjC,IAAiDgC,IASxC,WACT,OAAiB,WACP,IAAIC,EAAuB,CAE/B,IACC,SAASC,EAAyBC,EAAqBC,GAK9DA,EAAoBtjC,EAAEqjC,EAAqB,CACzC59B,QAAW,WAAa,OAAqB89B,CAAY,IAI3D,IAAIC,EAAeF,EAAoB,KACnCG,EAAoCH,EAAoB3pD,EAAE6pD,GAE1DE,EAASJ,EAAoB,KAC7BK,EAA8BL,EAAoB3pD,EAAE+pD,GAEpDE,EAAaN,EAAoB,KACjCO,EAA8BP,EAAoB3pD,EAAEiqD,GAOxD,SAASE,EAAQ1lD,GACf,IACE,OAAOw9B,SAASmoB,YAAY3lD,EAC7B,CAAC,MAAOm/C,GACP,OAAO,CACR,CACH,CAUA,IAMiCyG,EANR,SAA4B1uB,GACnD,IAAI2uB,EAAeJ,IAAiBvuB,GAEpC,OADAwuB,EAAQ,OACDG,GAwCLC,EAAiB,SAAwBzoD,EAAO+b,GAClD,IAAI2sC,EA/BN,SAA2B1oD,GACzB,IAAI2oD,EAAyD,QAAjDxoB,SAASkC,gBAAgBumB,aAAa,OAC9CF,EAAcvoB,SAASuD,cAAc,YAEzCglB,EAAYhvB,MAAMoD,SAAW,OAE7B4rB,EAAYhvB,MAAMmW,OAAS,IAC3B6Y,EAAYhvB,MAAMmvB,QAAU,IAC5BH,EAAYhvB,MAAMovB,OAAS,IAE3BJ,EAAYhvB,MAAMsW,SAAW,WAC7B0Y,EAAYhvB,MAAMivB,EAAQ,QAAU,QAAU,UAE9C,IAAII,EAAYpsB,OAAOwI,aAAehF,SAASkC,gBAAgBO,UAI/D,OAHA8lB,EAAYhvB,MAAMyK,IAAM,GAAGlM,OAAO8wB,EAAW,MAC7CL,EAAY3R,aAAa,WAAY,IACrC2R,EAAY1oD,MAAQA,EACb0oD,CACT,CAaoBM,CAAkBhpD,GACpC+b,EAAQgmB,UAAU4B,YAAY+kB,GAC9B,IAAIF,EAAeJ,IAAiBM,GAGpC,OAFAL,EAAQ,QACRK,EAAYlmC,SACLgmC,GA6BwBS,EAnBP,SAA6BpvB,GACrD,IAAI9d,EAAUnW,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAChFm8B,UAAW5B,SAAS0B,MAElB2mB,EAAe,GAYnB,MAVsB,iBAAX3uB,EACT2uB,EAAeC,EAAe5uB,EAAQ9d,GAC7B8d,aAAkBqvB,mBAAqB,CAAC,OAAQ,SAAU,MAAO,MAAO,YAAY7qC,SAASwb,aAAuC,EAASA,EAAOl3B,MAE7J6lD,EAAeC,EAAe5uB,EAAO75B,MAAO+b,IAE5CysC,EAAeJ,IAAiBvuB,GAChCwuB,EAAQ,SAGHG,GAKT,SAAStpD,EAAQa,GAAmV,OAAtOb,EAArD,mBAAXvB,QAAoD,iBAApBA,OAAOC,SAAmC,SAAiBmC,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXpC,QAAyBoC,EAAIvB,cAAgBb,QAAUoC,IAAQpC,OAAOS,UAAY,gBAAkB2B,GAAiBb,EAAQa,EAAO,CAU1X,IA2CiCopD,EA3CJ,WAC3B,IAAIptC,EAAUnW,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAE9EwjD,EAAkBrtC,EAAQstC,OAC1BA,OAA6B,IAApBD,EAA6B,OAASA,EAC/CrnB,EAAYhmB,EAAQgmB,UACpBlI,EAAS9d,EAAQ8d,OACjBmP,EAAOjtB,EAAQitB,KAEnB,GAAe,SAAXqgB,GAAgC,QAAXA,EACvB,MAAM,IAAIvoB,MAAM,sDAIlB,QAAephC,IAAXm6B,EAAsB,CACxB,IAAIA,GAA8B,WAApB36B,EAAQ26B,IAA4C,IAApBA,EAAOnxB,SASnD,MAAM,IAAIo4B,MAAM,+CARhB,GAAe,SAAXuoB,GAAqBxvB,EAAOyvB,aAAa,YAC3C,MAAM,IAAIxoB,MAAM,qFAGlB,GAAe,QAAXuoB,IAAqBxvB,EAAOyvB,aAAa,aAAezvB,EAAOyvB,aAAa,aAC9E,MAAM,IAAIxoB,MAAM,yGAKrB,CAGD,OAAIkI,EACKigB,EAAajgB,EAAM,CACxBjH,UAAWA,IAKXlI,EACgB,QAAXwvB,EAAmBd,EAAY1uB,GAAUovB,EAAapvB,EAAQ,CACnEkI,UAAWA,SAFf,GASF,SAASwnB,EAAiBxpD,GAAqW,OAAxPwpD,EAArD,mBAAX5rD,QAAoD,iBAApBA,OAAOC,SAA4C,SAAiBmC,GAAO,cAAcA,GAAoC,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXpC,QAAyBoC,EAAIvB,cAAgBb,QAAUoC,IAAQpC,OAAOS,UAAY,gBAAkB2B,GAAiBwpD,EAAiBxpD,EAAO,CAI9Z,SAASypD,EAAkB3vB,EAAQhzB,GAAS,IAAK,IAAIvJ,EAAI,EAAGA,EAAIuJ,EAAMxJ,OAAQC,IAAK,CAAE,IAAImsD,EAAa5iD,EAAMvJ,GAAImsD,EAAWtpD,WAAaspD,EAAWtpD,aAAc,EAAOspD,EAAWrpD,cAAe,EAAU,UAAWqpD,IAAYA,EAAWppD,UAAW,GAAMlC,OAAO+B,eAAe25B,EAAQ4vB,EAAWpqD,IAAKoqD,GAAgB,CAM7T,SAASC,EAAgB3rD,EAAGwnB,GAA+G,OAA1GmkC,EAAkBvrD,OAAOimD,gBAAkB,SAAyBrmD,EAAGwnB,GAAsB,OAAjBxnB,EAAEsmD,UAAY9+B,EAAUxnB,GAAa2rD,EAAgB3rD,EAAGwnB,EAAK,CAE1K,SAASokC,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3E7kD,KAAKhH,UAAUC,SAASC,KAAKwrD,QAAQC,UAAU3kD,KAAM,IAAI,WAAc,MAAW,CAAO,CAAC,MAAO/D,GAAK,OAAO,EAAU,CANnQ6oD,GAA6B,OAAO,WAAkC,IAAsC5oD,EAAlC6oD,EAAQC,EAAgBR,GAAkB,GAAIC,EAA2B,CAAE,IAAIQ,EAAYD,EAAgB1iD,MAAMlJ,YAAa8C,EAASwoD,QAAQC,UAAUI,EAAOvkD,UAAWykD,QAAqB/oD,EAAS6oD,EAAMtkD,MAAM6B,KAAM9B,WAAc,OAEpX,SAAoCnF,EAAMnC,GAAQ,OAAIA,GAAoC,WAA3BirD,EAAiBjrD,IAAsC,mBAATA,EAE7G,SAAgCmC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI6pD,eAAe,6DAAgE,OAAO7pD,CAAO,CAFX8pD,CAAuB9pD,GAAtCnC,CAA8C,CAFiMksD,CAA2B9iD,KAAMpG,GAAa,CAQza,SAAS8oD,EAAgBrsD,GAAwJ,OAAnJqsD,EAAkBjsD,OAAOimD,eAAiBjmD,OAAO6P,eAAiB,SAAyBjQ,GAAK,OAAOA,EAAEsmD,WAAalmD,OAAO6P,eAAejQ,IAAcqsD,EAAgBrsD,EAAK,CAa7M,SAAS0sD,EAAkB7rB,EAAQyB,GACjC,IAAIqqB,EAAY,kBAAkBzyB,OAAO2G,GAEzC,GAAKyB,EAAQipB,aAAaoB,GAI1B,OAAOrqB,EAAQuoB,aAAa8B,EAC9B,CAOA,IAAIC,EAAyB,SAAUC,IAxCvC,SAAmBC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9rD,UAAU,sDAAyD6rD,EAASzsD,UAAYD,OAAO2G,OAAOgmD,GAAcA,EAAW1sD,UAAW,CAAEI,YAAa,CAAEwB,MAAO6qD,EAAUxqD,UAAU,EAAMD,cAAc,KAAe0qD,GAAYpB,EAAgBmB,EAAUC,EAAc,CAyC/XC,CAAUJ,EAAWC,GAErB,IA7CoBI,EAAaC,EAAYC,EA6CzCC,EAASxB,EAAagB,GAM1B,SAASA,EAAUS,EAASrvC,GAC1B,IAAIsvC,EAUJ,OAlEJ,SAAyBjlB,EAAU4kB,GAAe,KAAM5kB,aAAoB4kB,GAAgB,MAAM,IAAIhsD,UAAU,oCAAyC,CA0DrJssD,CAAgB5jD,KAAMijD,IAEtBU,EAAQF,EAAO7sD,KAAKoJ,OAEd6jD,eAAexvC,GAErBsvC,EAAMG,YAAYJ,GAEXC,CACR,CAqJD,OApNoBL,EAuEPL,EAvEoBM,EAuET,CAAC,CACvB5rD,IAAK,iBACLW,MAAO,WACL,IAAI+b,EAAUnW,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF8B,KAAK2hD,OAAmC,mBAAnBttC,EAAQstC,OAAwBttC,EAAQstC,OAAS3hD,KAAK+jD,cAC3E/jD,KAAKmyB,OAAmC,mBAAnB9d,EAAQ8d,OAAwB9d,EAAQ8d,OAASnyB,KAAKgkD,cAC3EhkD,KAAKshC,KAA+B,mBAAjBjtB,EAAQitB,KAAsBjtB,EAAQitB,KAAOthC,KAAKikD,YACrEjkD,KAAKq6B,UAAoD,WAAxCwnB,EAAiBxtC,EAAQgmB,WAA0BhmB,EAAQgmB,UAAY5B,SAAS0B,IAClG,GAMA,CACDxiC,IAAK,cACLW,MAAO,SAAqBorD,GAC1B,IAAIQ,EAASlkD,KAEbA,KAAK0wC,SAAW8P,IAAiBkD,EAAS,SAAS,SAAU/pD,GAC3D,OAAOuqD,EAAOxd,QAAQ/sC,EAC9B,GACK,GAMA,CACDhC,IAAK,UACLW,MAAO,SAAiBqB,GACtB,IAAI+pD,EAAU/pD,EAAEwqD,gBAAkBxqD,EAAEyqD,cAChCzC,EAAS3hD,KAAK2hD,OAAO+B,IAAY,OACjCpiB,EAAOmgB,EAAgB,CACzBE,OAAQA,EACRtnB,UAAWr6B,KAAKq6B,UAChBlI,OAAQnyB,KAAKmyB,OAAOuxB,GACpBpiB,KAAMthC,KAAKshC,KAAKoiB,KAGlB1jD,KAAK8vC,KAAKxO,EAAO,UAAY,QAAS,CACpCqgB,OAAQA,EACRrgB,KAAMA,EACNoiB,QAASA,EACTW,eAAgB,WACVX,GACFA,EAAQY,QAGVrvB,OAAOsvB,eAAeC,iBACvB,GAEJ,GAMA,CACD7sD,IAAK,gBACLW,MAAO,SAAuBorD,GAC5B,OAAOX,EAAkB,SAAUW,EACpC,GAMA,CACD/rD,IAAK,gBACLW,MAAO,SAAuBorD,GAC5B,IAAIe,EAAW1B,EAAkB,SAAUW,GAE3C,GAAIe,EACF,OAAOhsB,SAASwB,cAAcwqB,EAEjC,GAQA,CACD9sD,IAAK,cAMLW,MAAO,SAAqBorD,GAC1B,OAAOX,EAAkB,OAAQW,EAClC,GAKA,CACD/rD,IAAK,UACLW,MAAO,WACL0H,KAAK0wC,SAASgU,SACf,IA7K0ClB,EA8KzC,CAAC,CACH7rD,IAAK,OACLW,MAAO,SAAc65B,GACnB,IAAI9d,EAAUnW,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAChFm8B,UAAW5B,SAAS0B,MAEtB,OAAOonB,EAAapvB,EAAQ9d,EAC7B,GAOA,CACD1c,IAAK,MACLW,MAAO,SAAa65B,GAClB,OAAO0uB,EAAY1uB,EACpB,GAOA,CACDx6B,IAAK,cACLW,MAAO,WACL,IAAIqpD,EAASzjD,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAAC,OAAQ,OACtFymD,EAA4B,iBAAXhD,EAAsB,CAACA,GAAUA,EAClDiD,IAAYnsB,SAASosB,sBAIzB,OAHAF,EAAQl1C,SAAQ,SAAUkyC,GACxBiD,EAAUA,KAAansB,SAASosB,sBAAsBlD,EAC9D,IACaiD,CACR,IAjN6DrB,GAAYzB,EAAkBwB,EAAY5sD,UAAW6sD,GAAiBC,GAAa1B,EAAkBwB,EAAaE,GAoN3KP,CACT,CA3K6B,CA2K1B3C,KAE8BF,EAAa6C,CAEvC,EAED,IACC,SAAS/hD,GAOhB,GAAuB,oBAAZ4jD,UAA4BA,QAAQpuD,UAAUquD,QAAS,CAC9D,IAAIznD,EAAQwnD,QAAQpuD,UAEpB4G,EAAMynD,QAAUznD,EAAM0nD,iBACN1nD,EAAM2nD,oBACN3nD,EAAM4nD,mBACN5nD,EAAM6nD,kBACN7nD,EAAM8nD,qBAC1B,CAmBAlkD,EAAOH,QAVP,SAAkB43B,EAAS8rB,GACvB,KAAO9rB,GAvBc,IAuBHA,EAAQ33B,UAAiC,CACvD,GAA+B,mBAApB23B,EAAQosB,SACfpsB,EAAQosB,QAAQN,GAClB,OAAO9rB,EAETA,EAAUA,EAAQ0E,UACrB,CACL,CAKO,EAED,IACC,SAASn8B,EAAQmkD,EAA0BlF,GAElD,IAAImF,EAAUnF,EAAoB,KAYlC,SAASoF,EAAU5sB,EAAS8rB,EAAUxpD,EAAMiP,EAAUs7C,GAClD,IAAIC,EAAa/U,EAASvyC,MAAM6B,KAAM9B,WAItC,OAFAy6B,EAAQD,iBAAiBz9B,EAAMwqD,EAAYD,GAEpC,CACHd,QAAS,WACL/rB,EAAQK,oBAAoB/9B,EAAMwqD,EAAYD,EACjD,EAET,CA6CA,SAAS9U,EAAS/X,EAAS8rB,EAAUxpD,EAAMiP,GACvC,OAAO,SAASvQ,GACZA,EAAEwqD,eAAiBmB,EAAQ3rD,EAAEw4B,OAAQsyB,GAEjC9qD,EAAEwqD,gBACFj6C,EAAStT,KAAK+hC,EAASh/B,GAGnC,CAEAuH,EAAOH,QA3CP,SAAkB2kD,EAAUjB,EAAUxpD,EAAMiP,EAAUs7C,GAElD,MAAyC,mBAA9BE,EAAShtB,iBACT6sB,EAAUpnD,MAAM,KAAMD,WAIb,mBAATjD,EAGAsqD,EAAUI,KAAK,KAAMltB,UAAUt6B,MAAM,KAAMD,YAI9B,iBAAbwnD,IACPA,EAAWjtB,SAAS0W,iBAAiBuW,IAIlC5vD,MAAMY,UAAUyN,IAAIvN,KAAK8uD,GAAU,SAAU/sB,GAChD,OAAO4sB,EAAU5sB,EAAS8rB,EAAUxpD,EAAMiP,EAAUs7C,EAC5D,IACA,CAwBO,EAED,aACUvF,EAAyBl/C,GAQzCA,EAAQ+4B,KAAO,SAASxhC,GACpB,YAAiBN,IAAVM,GACAA,aAAiB4hC,aACE,IAAnB5hC,EAAM0I,UASjBD,EAAQ6kD,SAAW,SAASttD,GACxB,IAAI2C,EAAOxE,OAAOC,UAAUC,SAASC,KAAK0B,GAE1C,YAAiBN,IAAVM,IACU,sBAAT2C,GAAyC,4BAATA,IAChC,WAAY3C,IACK,IAAjBA,EAAM3C,QAAgBoL,EAAQ+4B,KAAKxhC,EAAM,MASrDyI,EAAQnG,OAAS,SAAStC,GACtB,MAAwB,iBAAVA,GACPA,aAAiBJ,QAS5B6I,EAAQ+2B,GAAK,SAASx/B,GAGlB,MAAgB,sBAFL7B,OAAOC,UAAUC,SAASC,KAAK0B,GAMvC,EAED,IACC,SAAS4I,EAAQmkD,EAA0BlF,GAElD,IAAI0F,EAAK1F,EAAoB,KACzB7E,EAAW6E,EAAoB,KA6FnCj/C,EAAOH,QAlFP,SAAgBoxB,EAAQl3B,EAAMiP,GAC1B,IAAKioB,IAAWl3B,IAASiP,EACrB,MAAM,IAAIkvB,MAAM,8BAGpB,IAAKysB,EAAGjrD,OAAOK,GACX,MAAM,IAAI3D,UAAU,oCAGxB,IAAKuuD,EAAG/tB,GAAG5tB,GACP,MAAM,IAAI5S,UAAU,qCAGxB,GAAIuuD,EAAG/rB,KAAK3H,GACR,OAsBR,SAAoB2H,EAAM7+B,EAAMiP,GAG5B,OAFA4vB,EAAKpB,iBAAiBz9B,EAAMiP,GAErB,CACHw6C,QAAS,WACL5qB,EAAKd,oBAAoB/9B,EAAMiP,EAClC,EAET,CA9Be47C,CAAW3zB,EAAQl3B,EAAMiP,GAE/B,GAAI27C,EAAGD,SAASzzB,GACjB,OAsCR,SAAwByzB,EAAU3qD,EAAMiP,GAKpC,OAJApU,MAAMY,UAAU+Y,QAAQ7Y,KAAKgvD,GAAU,SAAS9rB,GAC5CA,EAAKpB,iBAAiBz9B,EAAMiP,EACpC,IAEW,CACHw6C,QAAS,WACL5uD,MAAMY,UAAU+Y,QAAQ7Y,KAAKgvD,GAAU,SAAS9rB,GAC5CA,EAAKd,oBAAoB/9B,EAAMiP,EAC/C,GACS,EAET,CAlDe67C,CAAe5zB,EAAQl3B,EAAMiP,GAEnC,GAAI27C,EAAGjrD,OAAOu3B,GACf,OA0DR,SAAwBsyB,EAAUxpD,EAAMiP,GACpC,OAAOoxC,EAAS7iB,SAAS0B,KAAMsqB,EAAUxpD,EAAMiP,EACnD,CA5De87C,CAAe7zB,EAAQl3B,EAAMiP,GAGpC,MAAM,IAAI5S,UAAU,4EAE5B,CA4DO,EAED,IACC,SAAS4J,GA4ChBA,EAAOH,QA1CP,SAAgB43B,GACZ,IAAImoB,EAEJ,GAAyB,WAArBnoB,EAAQ2E,SACR3E,EAAQ2rB,QAERxD,EAAenoB,EAAQrgC,WAEtB,GAAyB,UAArBqgC,EAAQ2E,UAA6C,aAArB3E,EAAQ2E,SAAyB,CACtE,IAAI2oB,EAAattB,EAAQipB,aAAa,YAEjCqE,GACDttB,EAAQ0W,aAAa,WAAY,IAGrC1W,EAAQpT,SACRoT,EAAQutB,kBAAkB,EAAGvtB,EAAQrgC,MAAM3C,QAEtCswD,GACDttB,EAAQ2mB,gBAAgB,YAG5BwB,EAAenoB,EAAQrgC,KAC1B,KACI,CACGqgC,EAAQipB,aAAa,oBACrBjpB,EAAQ2rB,QAGZ,IAAI6B,EAAYlxB,OAAOsvB,eACnB9pC,EAAQge,SAAS7d,cAErBH,EAAM2rC,mBAAmBztB,GACzBwtB,EAAU3B,kBACV2B,EAAUE,SAAS5rC,GAEnBqmC,EAAeqF,EAAUxvD,UAC5B,CAED,OAAOmqD,CACX,CAKO,EAED,IACC,SAAS5/C,GAEhB,SAASolD,IAET,CAGAA,EAAE5vD,UAAY,CACZ8hC,GAAI,SAAUzhC,EAAMmT,EAAUq8C,GAC5B,IAAI5sD,EAAIqG,KAAKrG,IAAMqG,KAAKrG,EAAI,CAAA,GAO5B,OALCA,EAAE5C,KAAU4C,EAAE5C,GAAQ,KAAKwL,KAAK,CAC/Bu1B,GAAI5tB,EACJq8C,IAAKA,IAGAvmD,IACR,EAEDwmD,KAAM,SAAUzvD,EAAMmT,EAAUq8C,GAC9B,IAAIxtD,EAAOiH,KACX,SAAS0wC,IACP33C,EAAKggC,IAAIhiC,EAAM25C,GACfxmC,EAAS/L,MAAMooD,EAAKroD,UAC1B,CAGI,OADAwyC,EAAStyB,EAAIlU,EACNlK,KAAKw4B,GAAGzhC,EAAM25C,EAAU6V,EAChC,EAEDzW,KAAM,SAAU/4C,GAMd,IALA,IAAI8M,EAAO,GAAGhN,MAAMD,KAAKsH,UAAW,GAChCuoD,IAAWzmD,KAAKrG,IAAMqG,KAAKrG,EAAI,CAAA,IAAK5C,IAAS,IAAIF,QACjDjB,EAAI,EACJF,EAAM+wD,EAAO9wD,OAETC,EAAIF,EAAKE,IACf6wD,EAAO7wD,GAAGkiC,GAAG35B,MAAMsoD,EAAO7wD,GAAG2wD,IAAK1iD,GAGpC,OAAO7D,IACR,EAED+4B,IAAK,SAAUhiC,EAAMmT,GACnB,IAAIvQ,EAAIqG,KAAKrG,IAAMqG,KAAKrG,EAAI,CAAA,GACxB+sD,EAAO/sD,EAAE5C,GACT4vD,EAAa,GAEjB,GAAID,GAAQx8C,EACV,IAAK,IAAItU,EAAI,EAAGF,EAAMgxD,EAAK/wD,OAAQC,EAAIF,EAAKE,IACtC8wD,EAAK9wD,GAAGkiC,KAAO5tB,GAAYw8C,EAAK9wD,GAAGkiC,GAAG1Z,IAAMlU,GAC9Cy8C,EAAWpkD,KAAKmkD,EAAK9wD,IAY3B,OAJC+wD,EAAWhxD,OACRgE,EAAE5C,GAAQ4vD,SACHhtD,EAAE5C,GAENiJ,IACR,GAGHkB,EAAOH,QAAUulD,EACjBplD,EAAOH,QAAQ6lD,YAAcN,CAGtB,GAKOO,EAA2B,CAAA,EAG/B,SAAS1G,EAAoB2G,GAE5B,GAAGD,EAAyBC,GAC3B,OAAOD,EAAyBC,GAAU/lD,QAG3C,IAAIG,EAAS2lD,EAAyBC,GAAY,CAGjD/lD,QAAS,CAAE,GAOZ,OAHAi/C,EAAoB8G,GAAU5lD,EAAQA,EAAOH,QAASo/C,GAG/Cj/C,EAAOH,OACd,CAoCD,OA9BCo/C,EAAoB3pD,EAAI,SAAS0K,GAChC,IAAI6lD,EAAS7lD,GAAUA,EAAOm5C,WAC7B,WAAa,OAAOn5C,EAAgB,SACpC,WAAa,OAAOA,GAErB,OADAi/C,EAAoBtjC,EAAEkqC,EAAQ,CAAE3qC,EAAG2qC,IAC5BA,GAOR5G,EAAoBtjC,EAAI,SAAS9b,EAASimD,GACzC,IAAI,IAAIrvD,KAAOqvD,EACX7G,EAAoB9pD,EAAE2wD,EAAYrvD,KAASwoD,EAAoB9pD,EAAE0K,EAASpJ,IAC5ElB,OAAO+B,eAAeuI,EAASpJ,EAAK,CAAEc,YAAY,EAAMmL,IAAKojD,EAAWrvD,MAQ3EwoD,EAAoB9pD,EAAI,SAASgC,EAAK6/C,GAAQ,OAAOzhD,OAAOC,UAAUyC,eAAevC,KAAKyB,EAAK6/C,IAOzFiI,EAAoB,KAt2BpB,GAw2BT,OACR,EAj3BEj/C,EAAAH,QAAiBg/C,+BCNNkH,GAAsB,UAInB,SAAAC,GAAa/0B,EAAqBkI,GAChD,IAAQoC,EAAQtK,EAAOoK,wBAAfE,IACR,OAAIpC,IAAcpF,OAETwH,EAAMhE,SAASkC,gBAAgBwsB,UAEjC1qB,EAAOpC,EAA0BkC,wBAAwBE,GAClE,CCHe,IAAA2qB,GAAA,CAEbC,WAAY,CACVpsD,KAAMxE,QAGR6wD,OAAQ,CACNrsD,KAAM9C,OACNmqB,QAAS,GAGX+X,UAAW,CACTp/B,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,WAAT,OAAe,WAAA,OAAM2S,MAAA,CAAA,GAGvBsyB,OAAQ,CACNtsD,KAAMhC,UAGRyK,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,MAAO,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4pB,aAAc,CACZvsD,KAAM9C,OACNmqB,QAAS,GAGXmlC,SAAUxuD,SAEVytC,QAASztC,UC3CEyuD,GAMRzxD,OAAO,0BCmBZ,IAAA0xD,GAAepzB,kBAAgB,CAC7Bx9B,KAAM,UACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAiC,IAATwiC,EAAAD,EAAAC,MACtBimB,EAAYv4B,MAAwB,MACpCw4B,EAAQx4B,MAAc,IACtBkC,EAASlC,MAAI,IACbivB,EAAkBjvB,MAAsB,MACxCy4B,EAAmBz4B,OAAa,GAChC04B,EAAkB9jB,WAAS,CAAA,GAC3BkG,EAAiB7Z,GAAe,UAChC03B,EAAwB13B,GAAe,gBACvC23B,EAA+B33B,GAAe,uBACpD8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KACVuO,EAAiBU,KAMjBtF,EAAqB,WACzB,IAAI7B,GAAJ,CAGM,IAAE8B,EAAcl7B,EAAdk7B,UACQikB,EAAAhmD,MAAQ4vD,GAAwB7tB,GAC7C7B,GAAA8lB,EAAgBhmD,MAAO,SAAUmmD,GACvBA,GAJb,GASIA,EAAe,WACnB,IAAIqJ,EAAiBxvD,MAArB,CACM,IAAEgvD,EAAyBnoD,EAAzBmoD,OAAQE,EAAiBroD,EAAjBqoD,aACVW,EAA2C,GAC7C52B,EAAS,GAgBb,GAdMs2B,EAAAvvD,MAAMmX,SAAQ,SAAC24C,GACb,IAAAz7B,EAAS07B,EAAgBD,GAC/B,GAAKz7B,EAAL,CAGA,IAAM8P,EAAMyqB,GAAav6B,EAAQ2xB,EAAgBhmD,OAC7CmkC,EAAM6qB,EAASE,GACjBW,EAAQ5lD,KAAK,CACX6lD,KAAAA,EACA3rB,IAAAA,GALJ,CAQF,IAEI0rB,EAAQxyD,OAEV47B,EADe42B,EAAQjd,QAAO,SAAC6R,EAAMuL,GAAS,OAAAvL,EAAKtgB,IAAM6rB,EAAI7rB,IAAMsgB,EAAOuL,KAC1DF,KAElBG,EAAqBh3B,EAvBO,GA8BxB82B,EAAkB,SAACD,GACjB,IAAAI,EAAUJ,EAAKpjD,MAAMiiD,IAC3B,GAAKuB,EAAL,CAGA,IAAM77B,EAAS8L,SAASgwB,eAAeD,EAAQ,IAC/C,GAAK77B,EAGE,OAAAA,CALP,GA+BI47B,EAAA,WAAA,IAAAG,EAAAvO,GAAAG,GAAAmC,MAAuB,SAAA+C,EAAO4I,GAAgC,IAAAO,EAAA,OAAArO,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAAA,GAC9DiV,EAAOj5B,QAAU8vD,EAAM,CAAA3I,EAAAnjC,KAAA,EAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,UAAA,KAAA,EAIQ,OADnCpqB,EAAOj5B,MAAQ8vD,EACT,QAANjpD,EAAAA,EAAMsoD,gBAANtoD,IAAMwpD,GAANxpD,EAAAA,KAAAA,EAAiBipD,EAAM72B,EAAOj5B,OAAKmnD,EAAAnjC,KAAA,EAC7BqY,EAASA,WAAA,KAAA,EACEi0B,IAAA,KAAA,EAAA,IAAA,MAAA,OAAAnJ,EAAAzC,OAAA,GAAAwC,EACnB,KAAA,OARM+I,SAAAM,GAAA,OAAAH,EAAAvqD,MAAA6B,KAAA9B,UAAA,EAAA,GAaA0qD,EAAmB,WAAM,IAAAE,EACvBttB,EAAgBstB,UAAVlB,EAAUtvD,aAAVwwD,IAAUA,OAAVA,EAAAA,EAAiB7uB,yBAAkBjJ,EAAO14B,MAAMi5B,OAAU,OACtE,GAAKiK,EAAL,CAIA,IAAmBiB,EAA8BjB,EAAzCqiB,UAA8BznB,EAAWoF,EAAzB6M,aACxB5xC,OAAOq5B,OAAOi4B,EAAiB,CAC7BtrB,cAAQA,EAAA,MACRrG,iBAAWA,EAAA,MACX2S,QAAS,GALX,MAFStyC,OAAAq5B,OAAOi4B,EAAiB,CAAA,IAsB7BgB,EAAA,WAAA,IAAAC,EAAA7O,GAAAG,GAAAmC,MAAiB,SAAAwM,EAAOb,GAAgC,IAAAz7B,EAAA66B,EAAAtsB,EAAA2iB,EAAAphB,EAAA,OAAA6d,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EAEnC,GADnBqQ,EAAS07B,EAAgBD,GAC/BG,EAAqBH,GAChBz7B,EAAA,CAAAu8B,EAAA5sC,KAAA,EAAA,KAAA,CAAA,OAAA4sC,EAAAvN,OAAA,UAAA,KAAA,EAK+B,OAJpCmM,EAAiBxvD,OAAQ,EACjBkvD,EAAiBroD,EAAjBqoD,aACFtsB,EAAYX,GAAU+jB,EAAgBhmD,OACtCulD,EAAYqJ,GAAav6B,EAAQ2xB,EAAgBhmD,OACjDmkC,EAAMvB,EAAY2iB,EAAY2J,EAAA0B,EAAA5sC,KAAA,GAC9Bse,GAAS6B,EAAK,CAClBpC,UAAWikB,EAAgBhmD,QAC5B,KAAA,GACDwvD,EAAiBxvD,OAAQ,EAAA,KAAA,GAAA,IAAA,MAAA,OAAA4wD,EAAAlM,OAAA,GAAAiM,EAC3B,KAAA,OAbMF,SAAAI,GAAA,OAAAH,EAAA7qD,MAAA6B,KAAA9B,UAAA,EAAA,GA8CN,OA5BAw2B,EAAAA,UAAAylB,GAAAG,GAAAmC,MAAU,SAAA2M,IAAA,OAAA9O,GAAAG,MAAA,SAAA4O,GAAA,cAAAA,EAAAtM,KAAAsM,EAAA/sC,MAAA,KAAA,EACW,GAAA8d,KACf7I,EAAOj5B,MAAO,CAAA+wD,EAAA/sC,KAAA,EAAA,KAAA,CAAA,OAAA+sC,EAAA/sC,KAAA,EACVqY,EAASA,WAAA,KAAA,EACfo0B,EAAex3B,EAAOj5B,OAAK,KAAA,EAAA,IAAA,MAAA,OAAA+wD,EAAArM,OAAA,GAAAoM,EAE9B,MACD9f,EAAAA,aAAY,WACLgV,EAAgBhmD,OACjBygC,GAAAulB,EAAgBhmD,MAAO,SAAUmmD,EACvC,IACA6K,EAAAA,aAAY,WAENhL,EAAgBhmD,OACdygC,GAAAulB,EAAgBhmD,MAAO,SAAUmmD,GAEpBrkB,GACrB,IACA/J,EAAAA,QACEq3B,GACAzjB,WAAS,CACPslB,aAhGiB,SAACnB,GACfnB,GAAoBjwD,KAAKoxD,KAA2C,IAAlCP,EAAMvvD,MAAM+5B,QAAQ+1B,IAGrDP,EAAAvvD,MAAMiK,KAAK6lD,IA6FfoB,eAtFmB,SAACpB,GACtBP,EAAMvvD,MAAQuvD,EAAMvvD,MAAMinC,QAAO,SAACkqB,GAAA,OAASA,IAASrB,MAsFlDW,eAAAA,EACAW,gBAlDoB,SAACtB,GAAyD,IAAA9Y,UAChFnwC,EAAAA,EAAMunC,eAANvnC,OAAAA,EAAAA,KAAAA,EAAgBipD,IAkDd72B,OAAAA,KAGG,WACC,IAhMuB7U,EAgMrBhZ,EAAqBvE,EAArBuE,KAAM2jD,EAAeloD,EAAfkoD,WACR9tB,EAAY,CAAC4Q,EAAe7xC,MAAOm4B,EAAKn4B,MAAMoL,IAE9C0kB,wCACMw/B,EAAA5xB,MAAkBuD,GAAeoI,IAAA5L,EAAAO,YAAA,MAAA,CAAAN,MAC7BgyB,EAAsB1vD,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACjB03B,EAA6B3vD,wBAAwByvD,GACjE4B,CAvC6B3qB,EAAe,WAC9BjJ,EAAAO,YAAA,MAAA,CAAAN,MAAYiyB,EAA6B3vD,OAAO,UAyClE0mC,EAAe,aAIpB,OAAIqoB,EACFtxB,EAAAA,YAAA+pB,GAAkBuH,EA/MS,mBAAA3qC,EA+MI0L,IA/MJspB,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA+MI0L,EAAA,CAAA9F,QAAA,WAAA,MAAA,CAAA8F,EAAA,IAG1BA,EAEX,ukBC/NF,IAAMwhC,GAAaj0B,GAAAA,MCEJ,CAEb2Q,KAAM,CACJrrC,KAAM/C,OACNoqB,QAAS,GACTyJ,UAAU,GAGZoG,OAAQ,CACNl3B,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,MAAO,CAAC,QAAS,SAAU,UAAW,QAAQjnB,SAASinB,EACzD,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXunC,aAAc,CACZ5uD,KAAMgmC,QACN3e,SAAS,KDxBR,CAAA,EAAA,CACHgkB,KAAM,CACJrrC,KAAM/C,OACN6zB,UAAU,EACVK,UAAAA,SAAU/O,GACD,OAAA4pC,GAAoBjwD,KAAKqmB,EAClC,KAIJysC,GAAev1B,kBAAgB,CAC7Bx9B,KAAM,cACN44B,OAAQ,CACNo6B,QAAS,CAAEznC,aAAS,IAEtBnjB,MAAOyqD,GACPp1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP3S,EAASgD,EAAOA,OAAA+3B,QAAoB,GACpCsC,EAAmB15B,GAAe,gBAChCU,EAAWR,KAAXQ,OACFi5B,EAAW,WACRt9B,EAAA48B,aAAapqD,EAAMmnC,OAEtB4jB,EAAa,WACX,IAAE5jB,EAASnnC,EAATmnC,KACHA,GACL3Z,EAAO68B,eAAeljB,IAElB0J,EAAc,SAACr2C,GACb,IAAE2sC,EAAgBnnC,EAAhBmnC,KAAMxe,EAAU3oB,EAAV2oB,MACT3oB,EAAM0qD,cAAcl9B,EAAOo8B,eAAeziB,GACxC3Z,EAAA+8B,gBAAgB,CAAEpjB,KAAAA,EAAMxe,MAAOvQ,GAASuQ,GAASA,OAAQ,EAAWnuB,EAAAA,KA6B7E,OAdAknC,EAAAA,OACE,WAAA,OAAM1hC,EAAMmnC,IAAA,IACZ,WACa4jB,IACFD,GACX,GACA,CAAEE,WAAW,IAEfz1B,EAAAA,WAAU,WACCu1B,GACX,IACA3gB,EAAAA,aAAY,WACC4gB,GACb,IACO,WACC,IAAE5jB,EAAiBnnC,EAAjBmnC,KAAMnU,EAAWhzB,EAAXgzB,OACGkM,EAA+BiB,EAAA,QAAd8qB,EAAc9qB,EAArBxX,MACrBA,EA9BY,WACZ,IAEFuiC,EAFIviC,EAAU3oB,EAAV2oB,MACOsiC,EAAc9qB,EAArBxX,MASD,OAPHvQ,GAASuQ,GACAuiC,EAAAviC,EACF9rB,EAAW8rB,GACpBuiC,EAAWviC,EAAMlL,EAAAA,GACRwtC,IACTC,EAAWD,EAAU,OAEhBC,EAmBOC,GACRC,EAAYhzC,GAASuQ,GAASA,EAAQ,KACtCyJ,EAAS5E,EAAO4E,SAAW+U,EAC3BkkB,EAAepyD,EAAAA,EAAA,CAAA,EAClB4xD,EAAiB1xD,OAAQ,GACzB04B,EAAO14B,MAAMi5B,OAASA,GAEnBk5B,EAAaryD,EAAAm4B,CAAAA,EAAAA,GAAAA,OACby5B,EAAiB1xD,MAAe,UAAA,GAGpC,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYw0B,GAAA,CAAAz0B,EAAAO,YAAA,IAAA,CAAAgQ,KACDA,EAAMxe,MAAOyiC,QAAkBE,EAAAt4B,OAAoBA,EAAAuU,QAAiBsJ,GAC1E,CAAAoa,EAAYA,EAAU,MAAQtiC,IAEhCuW,GAAYA,EAAS,QAI9B,IE3FWqsB,GAAuB,CAAC,OAAQ,UAAW,UAAW,QAAS,WAAY,WAElFC,GAAW,OAEJC,GAAmB,CAC9BnuB,IAAK,CACHA,IAAKkuB,GACLjuB,KAAM,MACN98B,UAAW,oBAEbirD,OAAQ,CACNnuB,KAAM,MACND,IAAK,MACL78B,UAAW,qCAEb88B,KAAM,CACJA,KAAMiuB,GACNluB,IAAK,MACL78B,UAAW,oBAEb+8B,OAAQ,CACNA,OAAQguB,GACRjuB,KAAM,MACN98B,UAAW,oBAEbg9B,MAAO,CACLA,MAAO+tB,GACPluB,IAAK,MACL78B,UAAW,mBACXkrD,QAAS,OACTC,cAAe,SACfC,WAAY,YAEd,WAAY,CACVtuB,KAAMiuB,GACNluB,IAAKkuB,IAEP,YAAa,CACX/tB,MAAO+tB,GACPluB,IAAKkuB,GACLG,QAAS,OACTC,cAAe,SACfC,WAAY,YAEd,eAAgB,CACdpuB,MAAO+tB,GACPhuB,OAAQguB,GACRG,QAAS,OACTC,cAAe,SACfC,WAAY,YAEd,cAAe,CACbtuB,KAAMiuB,GACNhuB,OAAQguB,KAICM,GAAiBx0D,OAAO4F,KAAKuuD,IChD3BM,GAAA,CAEbC,SAAU,CACRlwD,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,aAAS,GAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBo/B,SAAU,CACRp9B,KAAM9C,OACNmqB,QAAS,KAGXgC,KAAM,CACJrpB,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,UAAW,UAAW,QAAS,WAAY,WAAWjnB,SAASinB,EACjF,GAGFwtB,QAASnyD,SAEToyD,gBAAiBpyD,SAEjBqyD,cAAeryD,UCvCV,SAASsyD,GAAcC,GAC5B,IAAQ37B,EAAiBP,GAAU,QAA3BO,aAEF47B,EAAyB,CAAA,EAMxB,OAJPh1D,OAAO4F,KAAKmvD,GAAQ/7C,SAAQ,SAAC9X,GAA6B,IAAA+zD,EACxDD,EAAW9zD,YAAO+zD,EAAA77B,EAAav3B,aAAQ,IAAAozD,OAAA,EAArBA,EAAqB/zD,KAAQ6zD,EAAO7zD,EACxD,IAEO8zD,CACT,CCJA,IAAME,GAAmB,CACvBtzB,SAAU,IACV4C,OAAQ,UAGV,SAAS2wB,GAAOnkB,EAAkBokB,GAChC,GAAKpkB,EAAL,CACM,IAEAqkB,EAuCR,SAA4BD,EAAmBzjB,EAAqBC,GAC9D,IAAC4iB,GAAet0C,SAASk1C,GAAmB,OAAA,KAChD,GAAI,CAAC,WAAY,OAAQ,eAAel1C,SAASk1C,GACxC,MAAA,CACL,CAAE9iB,QAAS,EAAGJ,WAAA,IAAApY,OAAgB6X,EAAgB,OAC9C,CAAEW,QAAS,EAAGJ,WAAY,MAG9B,GAAI,CAAC,YAAa,QAAS,gBAAgBhyB,SAASk1C,GAC3C,MAAA,CACL,CAAE9iB,QAAS,EAAGoI,YAAA,IAAA5gB,OAAiB6X,EAAgB,OAC/C,CAAEW,QAAS,EAAGoI,YAAa,MAG/B,GAAI,CAAC,MAAO,UAAUx6B,SAASk1C,GACtB,MAAA,CACL,CAAE9iB,QAAS,EAAGL,UAAA,IAAAnY,OAAe8X,EAAiB,OAC9C,CAAEU,QAAS,EAAGL,UAAW,MAG7B,GAAI,CAAC,UAAU/xB,SAASk1C,GACf,MAAA,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,kBAAA2wB,OAA6B8X,EAAqB,WAChE,CAAEU,QAAS,EAAGnpC,UAAW,wBAG/B,CAjEkDmsD,CAAmBF,GAF/CpkB,eAAAA,EAAKW,cAAe,GACnBX,eAAAA,EAAKY,eAAgB,GAE1C,GAAKyjB,EAELE,GAA0BvkB,EADDqkB,EAAgBA,EAAgBn2D,OAAS,IAElE8xC,EAAIwkB,SAAWxkB,EAAIwkB,QAAQH,EAAiBH,GAPlC,CAQZ,CAEA,SAASO,GAAQzkB,EAAkBokB,EAAmBM,GACpD,GAAK1kB,EAAL,CACM,IACA2kB,EAyDR,SAA6BP,EAAmBxjB,GAC1C,IAAC4iB,GAAet0C,SAASk1C,GAAmB,OAAA,KAChD,GAAI,CAAC,cAAe,SAAU,gBAAgBl1C,SAASk1C,GAAY,CAE1D,MAAA,CACL,CAAE9iB,QAAS,EAAGL,UAAW,OACzB,CAAEK,QAAS,EAAGL,oBAHQL,EAAA,OAK1B,CACA,IAAMgkB,aAAmBhkB,EAAA,MAClB,MAAA,CACL,CAAEU,QAAS,EAAGL,UAAW,OACzB,CAAEK,QAAS,EAAGL,UAAW2jB,GAE7B,CAvEmDC,CAAoBT,GADhDpkB,eAAAA,EAAKY,eAAgB,GAE1C,IAAK+jB,EAAkB,OAAOD,IACxB,IAAAI,EAAoBH,EAAiBA,EAAiBz2D,OAAS,GACrEq2D,GAA0BvkB,EAAK8kB,GAE/B,IAAMzoC,EAAY2jB,EAAIwkB,SAAWxkB,EAAIwkB,QAAQG,EAAkBT,IAC3D7nC,EACFA,EAAU0oC,SAAW,WAEnB/kB,EAAIzV,MAAM84B,QAAU,OACXqB,MAIX1kB,EAAIzV,MAAM84B,QAAU,OACXqB,IAjBD,CAmBZ,CAEA,SAASH,GAA0BvkB,EAAkBglB,GAEnD,IADM,IAAApwD,EAAO5F,OAAO4F,KAAKowD,GAChB72D,EAAI,EAAGA,EAAIyG,EAAK1G,OAAQC,GAAK,EAAG,CACvC,IAAM+B,EAAM0E,EAAKzG,GAGb6xC,EAAAzV,MAAMr6B,GAAO80D,EAAoB90D,EACvC,CACF,okBCtCA,IAAA+0D,GAAen4B,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACH0sD,UAAW3zD,SAEbs8B,eAAMr1B,EAAAA,GAA0B,IAAjBmgC,EAAAoC,EAAApC,MAAOugB,IAAAA,OACd1V,EAAiB7Z,GAAe,WACtCq8B,EACEpB,GAAc,CACZqB,qBAAsBC,GACtBC,sBAAuBC,GACvBC,sBAAuBC,GACvBC,qBAAsBC,GACtBC,UAAWC,KANPT,EAAsBD,EAAtBC,qBAAsBE,EAAAH,EAAAG,sBAAuBE,IAAAA,sBAAuBE,EAAsBP,EAAtBO,qBAAsBE,EAAAT,EAAAS,UAQ5FvpC,EAAcyM,KAEdg9B,EAAc5tB,KACd2C,EAAgBjC,KAEhBmtB,EAASl+B,MAAI,MACbkT,EAAQlT,MAAI,MAEZyG,EAAUhf,EAAAA,UAAS,WACvB,IAAM02C,EAAkC,CAAA,EAEjC,OADI9C,GAAAj7C,SAAQ,SAACyM,GAAA,OAAOsxC,EAAOj9B,GAAAA,OAAG1M,EAAYvrB,MAAY,QAAAi4B,OAAArU,IAAO/c,EAAMmuB,QAAUpR,KAC7E,CACLiuB,EAAe7xC,MACfk1D,EAAAp1D,EAAA,CAAA,EAAA,GAAAm4B,OAEM1M,EAAYvrB,sBAAsB6G,EAAMgsD,UAAY7rB,EAAM6rB,UAGpE,IAEMle,EAAQ,SAACtzC,GAAmB,IAAA8zD,EAAAC,EAChB,QAAhBvuD,EAAAA,EAAMisD,eAAU,IAAAqC,GAAhBtuD,EAAAA,KAAAA,EAAgB,CAAEukD,QAAS,cAAe/pD,EAAAA,IACpC,QAANwF,EAAAA,EAAMksD,uBAAA,IAAAqC,GAANvuD,EAAAA,KAAAA,EAAwB,CAAExF,EAAAA,KAGtBg0D,EAAa,WACjBxuD,EAAMk5B,UAAY3iB,aAAa6sB,EAAMjqC,QAGjCs1D,EAAW,WACVzuD,EAAMk5B,WAGXkK,EAAMjqC,MAAQH,OACZid,YAAW,WACEu4C,IAEHzB,GADOqB,EAAOj1D,MACN6G,EAAM0sD,WAAW,WAAM,IAAAgC,EAAAC,EAC/B,QAAN3uD,EAAAA,EAAMisD,eAAA,IAAAyC,GAAN1uD,EAAAA,KAAAA,EAAgB,CAAEukD,QAAS,iBACL,QAAtBvkD,EAAAA,EAAMmsD,qBAAgB,IAAAwC,GAAtB3uD,EAAAA,KAAAA,EACF,GACF,GAAGA,EAAMk5B,aAaP01B,EAAa,WACjB,IAAmB,IAAf5uD,EAAMmlB,KAAV,CACI,GAAAtoB,EAAWmD,EAAMmlB,MAAcnlB,OAAAA,EAAMmlB,KAAK1H,EAAAA,GAC9C,GAAI0iB,EAAMhb,KACD,OAAAgb,EAAMhb,KAAK,MAEpB,IAAMsqB,EAAO,CACXhqB,KAAMgoC,EACN7nC,QAAS+nC,EACTjoC,QAASmoC,EACT37B,MAAO27B,EACPgB,SAAUd,EACVj8B,QAASyZ,IACTvrC,EAAMmuB,OACR,OAAAyI,cAAA6Y,EAAA,KAAA,KAb0B,GA2BrB,OAXPqf,EAAAA,eAAc,WACZ9uD,EAAMk5B,UAAYu1B,GACpB,IAEAl5B,EAAAA,WAAU,WAEDk3B,GADQ2B,EAAOj1D,MACP6G,EAAM0sD,UACvB,IAEOhM,EAAA,CAAE5S,MAAAA,IAEF,WAAA,OAAAlX,EAAAA,YAAA,MAAA,CAAA1G,IACKk+B,EAAAv3B,MAAeF,EAAQx9B,MAAA41D,aAAqBP,EAAAQ,aAA0BP,GAAA,CAC7EG,IACA1rB,EAAc,UAAW,YAvCtB+rB,EAAAr4B,EAAAO,YAAA82B,EAA0B,KAAA,MAChCr3B,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OACkB4Z,EAAe7xC,MAAA,WAAAouC,QAAyBuG,GAAA,CACrDqgB,EAAY,WAAYc,QAJX,IACZA,EA2CV,ukBCpHK,IAAMC,GAAkB,IAEzBC,GAAe,WACnB,IAAIj3B,EAAK,EACT,OAAO,WAEE,OADDA,GAAA,EAGV,CANqB,GAQRk3B,GAAch6B,EAAAA,gBAAgB,CACzCx9B,KAAM,eACNoI,MAAO,CACLoiC,OAAQ,CACNtmC,KAAM9C,OACNmqB,QAAS,GAEXupC,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,KAGbkS,eAAMr1B,EAAAuiC,GAAmB,IAAVme,EAAAne,EAAAme,OACP1V,EAAiB7Z,GAAe,iBAChC/D,EAAO8C,MAAI,IACXm/B,EAAcn/B,MAAI,IAElB0C,EAASjb,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAAA,GAClBi1B,GAAiBzrD,EAAM0sD,YAAA,GAAA,CAC3BtqB,OAAQpiC,EAAMoiC,SAAW8sB,GAAkBlvD,EAAMoiC,OAAS8sB,IAAA,IAStDvzC,EAAS,SAAC1gB,GACTmyB,EAAAj0B,MAAMwL,OAAO1J,EAAO,IAOrBq0D,EAAY,SAAC7wB,GACjB,GAAKA,EACL,OAAO0e,MAAMnkD,OAAOylC,IAAQA,YAASA,EAAA,OAGjC8wB,EAAY,SAACtwB,GACjB,OACEA,EAAKx4B,QAAU,CACb0iC,SAAU,WACV5L,KAAM+xB,EAAUrwB,EAAKx4B,OAAO,IAC5B62B,IAAKgyB,EAAUrwB,EAAKx4B,OAAO,MAuB3B+oD,EAAW,SAAC78B,GACZA,GACU08B,EAAAl2D,MAAMiK,KAAKuvB,IAM3B,OAFA+tB,EAAO,CAAElwC,IArDG,SAACi/C,GACX,IAAMC,WAAUD,GAAK,GAAA,CAAAj3D,IAAK22D,OAE1B,OADK/hC,EAAAj0B,MAAMiK,KAAKssD,GACTA,EAAGl3D,KAkDEm3D,UA3CI,WAChBviC,EAAKj0B,MAAQ,IA0CUi0B,KAAAA,EAAMiiC,YAAAA,IAExB,WACD,GAACjiC,EAAKj0B,MAAM3C,OAEhB,OAAAogC,EAAAA,YAAA,MAAA,CAAAC,MACcmU,EAAe7xC,MAAO05B,MAAOD,EAAOz5B,OAC7Ci0B,CAAAA,EAAKj0B,MAAM6L,KAAI,SAACi6B,EAAMhkC,GACrB,OAAA27B,EAAAO,YAAAy4B,GAAArrB,aAAA,CAAA/rC,IAAeymC,EAAKzmC,IAAAq6B,MAAY08B,EAAUtwB,GAAO/O,IAAKs/B,GAhC7C,SAACv0D,EAAegkC,GACxB,OAAAzI,GAAAA,GAAA,CAAA,EACFyI,GAAA,CAAA,EAAA,CACHitB,gBAAiB,SAAC1xD,GAIhB,OAHIykC,EAAKitB,iBACPjtB,EAAKitB,gBAAgB1xD,GAEhBmhB,EAAO1gB,EAChB,EACAkxD,cAAe,WAIb,OAHIltB,EAAKktB,eACPltB,EAAKktB,gBAEAxwC,EAAO1gB,EAChB,IAkBwE40D,CAAS50D,EAAOgkC,IAAO,KAC5F,MAIT,ukBC3DF,IAAM6wB,OAAuFhrD,IAc7F,IAAMirD,GAAkB,SAAC/vD,GACjB,IAAAkV,EAbR,SAAsBmqB,GACpB,IAAMnqB,EAA0BshB,GAAA,CAC9B0C,SAAU,IACVpU,OAAQ,OACRsd,OAAQ8sB,GACRxC,UAAW,OACRrtB,GAGE,OADPnqB,EAAQ+T,QAAUoW,EAAOpW,QAClB/T,CACT,CAGkB86C,CAAahwD,GACrB8kB,EAAsB5P,EAAtB4P,OAAQ4nC,EAAcx3C,EAAdw3C,UACVuD,EAAYv1B,GAAU5V,GACvBgrC,GAAYrrD,IAAIwrD,IACPH,GAAA1rD,IAAI6rD,EAAW,CAAA,GAE7B,IACIC,EADExxC,EAAIoxC,GAAYrrD,IAAIwrD,GAAWvD,GAErC,GAAKhuC,EAYKwxC,EAAAxxC,EAAElO,IAAI0E,OAZR,CACA,IAAAi7C,EAAU72B,SAASuD,cAAc,OAEjC0C,EAAW2F,YAAUkqB,GAAa,CACtChtB,OAAQltB,EAAQktB,OAChBsqB,UAAWx3C,EAAQw3C,YAClBvnB,MAAMgrB,GAEDD,EAAA3wB,EAAS/uB,IAAI0E,GACT46C,GAAArrD,IAAIwrD,GAAWvD,GAAantB,EACxC0wB,EAAUnzB,YAAYqzB,EACxB,CAIO,OAAA,IAAIjjD,SAAQ,SAACc,GAClB,IAAMoiD,EAAMN,GAAYrrD,IAAIwrD,GAAWvD,GACvCl3B,EAAAA,UAAS,WACP,IAAMi6B,EAA8BW,EAAIf,YAChCrhD,EAAAyhD,aAAA,EAAAA,EAAKY,MAAK,SAACX,GAAA,IAAAY,EAAA,OAAa,QAANA,EAAAZ,EAAG/xC,SAAG2yC,IAAAA,GAAAA,QAAAA,EAANA,EAAMxvB,iBAAAwvB,SAANA,EAAa93D,OAAQ03D,CAAK,IACtD,GACF,GACF,EAEMK,GAAkC,SAACpiC,EAAOkR,EAAQnG,GAClD,IAAAhkB,EAA0B,CAAEiZ,MAAAA,GAOhC,OANI/V,GAASinB,GACXnqB,EAAQ+T,QAAUoW,GACTxjC,EAASwjC,IAAaA,aAAkB1oC,QACjDue,EAAAshB,GAAAA,MAAethB,GAAYmqB,KAE5BnG,GAAyB,IAAbA,KAAoBhkB,EAAQgkB,SAAWA,GAC7C62B,GAAgB76C,EACzB,EAeMs7C,GAAqB,CACzB/qC,KAAM,SAAC4Z,EAAQnG,UAAaq3B,GAAiB,OAAQlxB,EAAQnG,EAAQ,EACrEtT,QAAS,SAACyZ,EAAQnG,UAAaq3B,GAAiB,UAAWlxB,EAAQnG,EAAQ,EAC3ExT,QAAS,SAAC2Z,EAAQnG,UAAaq3B,GAAiB,UAAWlxB,EAAQnG,EAAQ,EAC3EhH,MAAO,SAACmN,EAAQnG,UAAaq3B,GAAiB,QAASlxB,EAAQnG,EAAQ,EACvE21B,SAAU,SAACxvB,EAAQnG,UAAaq3B,GAAiB,WAAYlxB,EAAQnG,EAAQ,EAC7EpH,QAAS,SAACuN,EAAQnG,UAAaq3B,GAAiB,UAAWlxB,EAAQnG,EAAQ,EAC3E4U,MAAO,SAAC2iB,GACNA,EAAQ1V,MAAK,SAACxb,GAAa,OAAAA,aAAA,EAAAA,EAAUuO,UACvC,EACA4iB,SAAU,WACJZ,cAAuBhrD,KACbgrD,GAAAx/C,SAAQ,SAACwU,GACnBxtB,OAAO4F,KAAK4nB,GAAQxU,SAAQ,SAACo8C,GACV5nC,EAAO4nC,GACft/B,KAAO,EAClB,GACF,GAEJ,GAGWujC,GAAgBJ,GAE7BI,GAAchrB,QAAU,SAACV,GACnBA,EAAAW,OAAOC,iBAAiB+qB,SAAWL,GAEvCj5D,OAAO4F,KAAKszD,IAAUlgD,SAAQ,SAACugD,GAC7B5rB,EAAIW,OAAOC,iBAAiB+qB,SAASC,GAAYL,GAASK,EAC5D,GACF,EAOAv5D,OAAO4F,KAAKszD,IAAUlgD,SAAQ,SAACugD,GAG7BF,GAAcE,GAAYL,GAASK,EACrC,ICvJe,IAAAC,GAAA,CAEb54B,GAAI,CACFp8B,KAAM/C,OACNoqB,QAAS,GACTyJ,UAAU,GAGZtyB,IAAK,CACHwB,KAAM/C,OACNoqB,QAAS,QCjBFma,GAAM,MACNE,GAAS,SACTC,GAAQ,QACRF,GAAO,OACPwzB,GAAO,OACPC,GAAiB,CAAC1zB,GAAKE,GAAQC,GAAOF,IACtC/8B,GAAQ,QACR+G,GAAM,MAEN0pD,GAAW,WACXC,GAAS,SAETC,GAAmCH,GAAejlB,QAAO,SAAUsH,EAAKqZ,GACjF,OAAOrZ,EAAIjiB,OAAO,CAACs7B,EAAY,IAAMlsD,GAAOksD,EAAY,IAAMnlD,IAChE,GAAG,IACQ6pD,GAA0B,GAAGhgC,OAAO4/B,GAAgB,CAACD,KAAOhlB,QAAO,SAAUsH,EAAKqZ,GAC3F,OAAOrZ,EAAIjiB,OAAO,CAACs7B,EAAWA,EAAY,IAAMlsD,GAAOksD,EAAY,IAAMnlD,IAC3E,GAAG,IAaQ8pD,GAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC7BT,SAASC,GAAY93B,GAClC,OAAOA,GAAWA,EAAQ2E,UAAY,IAAI7yB,cAAgB,IAC5D,CCFe,SAASimD,GAAU52B,GAChC,GAAY,MAARA,EACF,OAAO7E,OAGT,GAAwB,oBAApB6E,EAAKnjC,WAAkC,CACzC,IAAIg6D,EAAgB72B,EAAK62B,cACzB,OAAOA,GAAgBA,EAAczzB,aAAwBjI,MAC/D,CAEA,OAAO6E,CACT,CCTA,SAAS82B,GAAU92B,GAEjB,OAAOA,aADU42B,GAAU52B,GAAMgrB,SACIhrB,aAAgBgrB,OACvD,CAEA,SAAS+L,GAAc/2B,GAErB,OAAOA,aADU42B,GAAU52B,GAAMI,aACIJ,aAAgBI,WACvD,CAEA,SAAS42B,GAAah3B,GAEpB,MAA0B,oBAAfi3B,aAKJj3B,aADU42B,GAAU52B,GAAMi3B,YACIj3B,aAAgBi3B,WACvD,CCwDe,IAAAC,GAAA,CACbj6D,KAAM,cACNk6D,SAAS,EACTC,MAAO,QACPp5B,GA5EF,SAAqB4J,GACnB,IAAIyvB,EAAQzvB,EAAKyvB,MACjB16D,OAAO4F,KAAK80D,EAAMzL,UAAUj2C,SAAQ,SAAU1Y,GAC5C,IAAIi7B,EAAQm/B,EAAMp/B,OAAOh7B,IAAS,CAAA,EAC9Bq6D,EAAaD,EAAMC,WAAWr6D,IAAS,CAAA,EACvC4hC,EAAUw4B,EAAMzL,SAAS3uD,GAExB85D,GAAcl4B,IAAa83B,GAAY93B,KAO5CliC,OAAOq5B,OAAO6I,EAAQ3G,MAAOA,GAC7Bv7B,OAAO4F,KAAK+0D,GAAY3hD,SAAQ,SAAU1Y,GACxC,IAAIuB,EAAQ84D,EAAWr6D,IAET,IAAVuB,EACFqgC,EAAQ2mB,gBAAgBvoD,GAExB4hC,EAAQ0W,aAAat4C,GAAgB,IAAVuB,EAAiB,GAAKA,EAErD,IACF,GACF,EAoDE+4D,OAlDF,SAAgB3I,GACd,IAAIyI,EAAQzI,EAAMyI,MACdG,EAAgB,CAClBjB,OAAQ,CACN/nB,SAAU6oB,EAAM98C,QAAQk9C,SACxB70B,KAAM,IACND,IAAK,IACL2kB,OAAQ,KAEVoQ,MAAO,CACLlpB,SAAU,YAEZmpB,UAAW,CAAC,GASd,OAPAh7D,OAAOq5B,OAAOqhC,EAAMzL,SAAS2K,OAAOr+B,MAAOs/B,EAAcjB,QACzDc,EAAMp/B,OAASu/B,EAEXH,EAAMzL,SAAS8L,OACjB/6D,OAAOq5B,OAAOqhC,EAAMzL,SAAS8L,MAAMx/B,MAAOs/B,EAAcE,OAGnD,WACL/6D,OAAO4F,KAAK80D,EAAMzL,UAAUj2C,SAAQ,SAAU1Y,GAC5C,IAAI4hC,EAAUw4B,EAAMzL,SAAS3uD,GACzBq6D,EAAaD,EAAMC,WAAWr6D,IAAS,CAAA,EAGvCi7B,EAFkBv7B,OAAO4F,KAAK80D,EAAMp/B,OAAO54B,eAAepC,GAAQo6D,EAAMp/B,OAAOh7B,GAAQu6D,EAAcv6D,IAE7Em0C,QAAO,SAAUlZ,EAAO1e,GAElD,OADA0e,EAAM1e,GAAY,GACX0e,CACR,GAAE,CAAE,GAEA6+B,GAAcl4B,IAAa83B,GAAY93B,KAI5CliC,OAAOq5B,OAAO6I,EAAQ3G,MAAOA,GAC7Bv7B,OAAO4F,KAAK+0D,GAAY3hD,SAAQ,SAAUuzC,GACxCrqB,EAAQ2mB,gBAAgB0D,EAC1B,IACF,IAEJ,EASE0O,SAAU,CAAC,kBCjFE,SAASC,GAAiB9F,GACvC,OAAOA,EAAUhkD,MAAM,KAAK,EAC9B,CCHO,IAAIpI,GAAMD,KAAKC,IACXyU,GAAM1U,KAAK0U,IACXiN,GAAQ3hB,KAAK2hB,MCFT,SAASywC,KACtB,IAAIC,EAASv+B,UAAUw+B,cAEvB,OAAc,MAAVD,GAAkBA,EAAOE,QAAUj8D,MAAMoB,QAAQ26D,EAAOE,QACnDF,EAAOE,OAAO5tD,KAAI,SAAUi6B,GACjC,OAAOA,EAAK4zB,MAAQ,IAAM5zB,EAAKlI,OACjC,IAAG1uB,KAAK,KAGH8rB,UAAUE,SACnB,CCTe,SAASy+B,KACtB,OAAQ,iCAAiCj7D,KAAK46D,KAChD,CCCe,SAASr1B,GAAsB5D,EAASu5B,EAAcC,QAC9C,IAAjBD,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAIC,EAAaz5B,EAAQ4D,wBACrB81B,EAAS,EACTC,EAAS,EAETJ,GAAgBrB,GAAcl4B,KAChC05B,EAAS15B,EAAQyP,YAAc,GAAIjnB,GAAMixC,EAAWj8B,OAASwC,EAAQyP,aAAmB,EACxFkqB,EAAS35B,EAAQ0P,aAAe,GAAIlnB,GAAMixC,EAAWh8B,QAAUuC,EAAQ0P,cAAoB,GAG7F,IACIkqB,GADO3B,GAAUj4B,GAAW+3B,GAAU/3B,GAAW1D,QAC3Bs9B,eAEtBC,GAAoBP,MAAsBE,EAC1CxzC,GAAKyzC,EAAW11B,MAAQ81B,GAAoBD,EAAiBA,EAAeE,WAAa,IAAMJ,EAC/Ft1C,GAAKq1C,EAAW31B,KAAO+1B,GAAoBD,EAAiBA,EAAe1U,UAAY,IAAMyU,EAC7Fn8B,EAAQi8B,EAAWj8B,MAAQk8B,EAC3Bj8B,EAASg8B,EAAWh8B,OAASk8B,EACjC,MAAO,CACLn8B,MAAOA,EACPC,OAAQA,EACRqG,IAAK1f,EACL6f,MAAOje,EAAIwX,EACXwG,OAAQ5f,EAAIqZ,EACZsG,KAAM/d,EACNA,EAAGA,EACH5B,EAAGA,EAEP,CCrCe,SAAS21C,GAAc/5B,GACpC,IAAIy5B,EAAa71B,GAAsB5D,GAGnCxC,EAAQwC,EAAQyP,YAChBhS,EAASuC,EAAQ0P,aAUrB,OARI7oC,KAAKge,IAAI40C,EAAWj8B,MAAQA,IAAU,IACxCA,EAAQi8B,EAAWj8B,OAGjB32B,KAAKge,IAAI40C,EAAWh8B,OAASA,IAAW,IAC1CA,EAASg8B,EAAWh8B,QAGf,CACLzX,EAAGga,EAAQ85B,WACX11C,EAAG4b,EAAQklB,UACX1nB,MAAOA,EACPC,OAAQA,EAEZ,CCvBe,SAASkD,GAASngB,EAAQ8vB,GACvC,IAAI0pB,EAAW1pB,EAAM2pB,aAAe3pB,EAAM2pB,cAE1C,GAAIz5C,EAAOmgB,SAAS2P,GAClB,OAAO,EAEJ,GAAI0pB,GAAY7B,GAAa6B,GAAW,CACzC,IAAIr2C,EAAO2sB,EAEX,EAAG,CACD,GAAI3sB,GAAQnD,EAAO05C,WAAWv2C,GAC5B,OAAO,EAITA,EAAOA,EAAK+gB,YAAc/gB,EAAKw2C,IAChC,OAAQx2C,EACV,CAGH,OAAO,CACT,CCrBe,SAAS6Y,GAAiBwD,GACvC,OAAO+3B,GAAU/3B,GAASxD,iBAAiBwD,EAC7C,CCFe,SAASo6B,GAAep6B,GACrC,MAAO,CAAC,QAAS,KAAM,MAAMtG,QAAQo+B,GAAY93B,KAAa,CAChE,CCFe,SAASq6B,GAAmBr6B,GAEzC,QAASi4B,GAAUj4B,GAAWA,EAAQg4B,cACtCh4B,EAAQF,WAAaxD,OAAOwD,UAAUkC,eACxC,CCFe,SAASs4B,GAAct6B,GACpC,MAA6B,SAAzB83B,GAAY93B,GACPA,EAMPA,EAAQu6B,cACRv6B,EAAQ0E,aACRyzB,GAAan4B,GAAWA,EAAQm6B,KAAO,OAEvCE,GAAmBr6B,EAGvB,CCVA,SAASw6B,GAAoBx6B,GAC3B,OAAKk4B,GAAcl4B,IACoB,UAAvCxD,GAAiBwD,GAAS2P,SAInB3P,EAAQy6B,aAHN,IAIX,CAwCe,SAASC,GAAgB16B,GAItC,IAHA,IAAI1D,EAASy7B,GAAU/3B,GACnBy6B,EAAeD,GAAoBx6B,GAEhCy6B,GAAgBL,GAAeK,IAA6D,WAA5Cj+B,GAAiBi+B,GAAc9qB,UACpF8qB,EAAeD,GAAoBC,GAGrC,OAAIA,IAA+C,SAA9B3C,GAAY2C,IAA0D,SAA9B3C,GAAY2C,IAAwE,WAA5Cj+B,GAAiBi+B,GAAc9qB,UAC3HrT,EAGFm+B,GAhDT,SAA4Bz6B,GAC1B,IAAI26B,EAAY,WAAWt8D,KAAK46D,MAGhC,GAFW,WAAW56D,KAAK46D,OAEff,GAAcl4B,IAII,UAFXxD,GAAiBwD,GAEnB2P,SACb,OAAO,KAIX,IAAIirB,EAAcN,GAAct6B,GAMhC,IAJIm4B,GAAayC,KACfA,EAAcA,EAAYT,MAGrBjC,GAAc0C,IAAgB,CAAC,OAAQ,QAAQlhC,QAAQo+B,GAAY8C,IAAgB,GAAG,CAC3F,IAAIC,EAAMr+B,GAAiBo+B,GAI3B,GAAsB,SAAlBC,EAAI5zD,WAA4C,SAApB4zD,EAAIC,aAA0C,UAAhBD,EAAIE,UAAiF,IAA1D,CAAC,YAAa,eAAerhC,QAAQmhC,EAAIG,aAAsBL,GAAgC,WAAnBE,EAAIG,YAA2BL,GAAaE,EAAIj0B,QAAyB,SAAfi0B,EAAIj0B,OACjO,OAAOg0B,EAEPA,EAAcA,EAAYl2B,UAE9B,CAEA,OAAO,IACT,CAgByBu2B,CAAmBj7B,IAAY1D,CACxD,CCpEe,SAAS4+B,GAAyBhI,GAC/C,MAAO,CAAC,MAAO,UAAUx5B,QAAQw5B,IAAc,EAAI,IAAM,GAC3D,CCDO,SAASiI,GAAO5/C,EAAK5b,EAAOmH,GACjC,OAAOs0D,GAAQ7/C,EAAK8/C,GAAQ17D,EAAOmH,GACrC,CCFe,SAASw0D,GAAmBC,GACzC,OAAOz9D,OAAOq5B,OAAO,CAAA,ECDd,CACL2M,IAAK,EACLG,MAAO,EACPD,OAAQ,EACRD,KAAM,GDHuCw3B,EACjD,CEHe,SAASC,GAAgB77D,EAAO+D,GAC7C,OAAOA,EAAK6uC,QAAO,SAAUkpB,EAASz8D,GAEpC,OADAy8D,EAAQz8D,GAAOW,EACR87D,CACR,GAAE,CAAE,EACP,CC4Ee,IAAAC,GAAA,CACbt9D,KAAM,QACNk6D,SAAS,EACTC,MAAO,OACPp5B,GApEF,SAAe4J,GACb,IAAI4yB,EAEAnD,EAAQzvB,EAAKyvB,MACbp6D,EAAO2qC,EAAK3qC,KACZsd,EAAUqtB,EAAKrtB,QACfkgD,EAAepD,EAAMzL,SAAS8L,MAC9BgD,EAAgBrD,EAAMsD,cAAcD,cACpCE,EAAgB/C,GAAiBR,EAAMtF,WACvC8I,EAAOd,GAAyBa,GAEhCh/D,EADa,CAACgnC,GAAME,IAAOvK,QAAQqiC,IAAkB,EAClC,SAAW,QAElC,GAAKH,GAAiBC,EAAtB,CAIA,IAAIN,EAxBgB,SAAyB/S,EAASgQ,GAItD,OAAO8C,GAAsC,iBAH7C9S,EAA6B,mBAAZA,EAAyBA,EAAQ1qD,OAAOq5B,OAAO,CAAA,EAAIqhC,EAAMyD,MAAO,CAC/E/I,UAAWsF,EAAMtF,aACb1K,GACkDA,EAAUgT,GAAgBhT,EAASgP,IAC7F,CAmBsB0E,CAAgBxgD,EAAQ8sC,QAASgQ,GACjD2D,EAAYpC,GAAc6B,GAC1BQ,EAAmB,MAATJ,EAAel4B,GAAMC,GAC/Bs4B,EAAmB,MAATL,EAAeh4B,GAASC,GAClCq4B,EAAU9D,EAAMyD,MAAMnD,UAAU/7D,GAAOy7D,EAAMyD,MAAMnD,UAAUkD,GAAQH,EAAcG,GAAQxD,EAAMyD,MAAMvE,OAAO36D,GAC9Gw/D,EAAYV,EAAcG,GAAQxD,EAAMyD,MAAMnD,UAAUkD,GACxDQ,EAAoB9B,GAAgBkB,GACpCa,EAAaD,EAA6B,MAATR,EAAeQ,EAAkBE,cAAgB,EAAIF,EAAkBz5B,aAAe,EAAI,EAC3H45B,EAAoBL,EAAU,EAAIC,EAAY,EAG9ChhD,EAAMggD,EAAca,GACpBt1D,EAAM21D,EAAaN,EAAUp/D,GAAOw+D,EAAcc,GAClDnK,EAASuK,EAAa,EAAIN,EAAUp/D,GAAO,EAAI4/D,EAC/C1vD,EAASkuD,GAAO5/C,EAAK22C,EAAQprD,GAE7B81D,EAAWZ,EACfxD,EAAMsD,cAAc19D,KAASu9D,EAAwB,CAAA,GAA0BiB,GAAY3vD,EAAQ0uD,EAAsBkB,aAAe5vD,EAASilD,EAAQyJ,EAnBzJ,CAoBF,EAkCEjD,OAhCF,SAAgB3I,GACd,IAAIyI,EAAQzI,EAAMyI,MAEdsE,EADU/M,EAAMr0C,QACWskB,QAC3B47B,OAAoC,IAArBkB,EAA8B,sBAAwBA,EAErD,MAAhBlB,IAKwB,iBAAjBA,IACTA,EAAepD,EAAMzL,SAAS2K,OAAOp2B,cAAcs6B,MAOhDj7B,GAAS63B,EAAMzL,SAAS2K,OAAQkE,KAIrCpD,EAAMzL,SAAS8L,MAAQ+C,EACzB,EASE7C,SAAU,CAAC,iBACXgE,iBAAkB,CAAC,oBCxFN,SAASC,GAAa9J,GACnC,OAAOA,EAAUhkD,MAAM,KAAK,EAC9B,CCOA,IAAI+tD,GAAa,CACfn5B,IAAK,OACLG,MAAO,OACPD,OAAQ,OACRD,KAAM,QAeD,SAASm5B,GAAYnN,GAC1B,IAAIoN,EAEAzF,EAAS3H,EAAM2H,OACf0F,EAAarN,EAAMqN,WACnBlK,EAAYnD,EAAMmD,UAClBmK,EAAYtN,EAAMsN,UAClBC,EAAUvN,EAAMuN,QAChB3tB,EAAWogB,EAAMpgB,SACjB4tB,EAAkBxN,EAAMwN,gBACxBC,EAAWzN,EAAMyN,SACjBC,EAAe1N,EAAM0N,aACrBh5B,EAAUsrB,EAAMtrB,QAChBi5B,EAAaJ,EAAQt3C,EACrBA,OAAmB,IAAf03C,EAAwB,EAAIA,EAChCC,EAAaL,EAAQl5C,EACrBA,OAAmB,IAAfu5C,EAAwB,EAAIA,EAEhCtN,EAAgC,mBAAjBoN,EAA8BA,EAAa,CAC5Dz3C,EAAGA,EACH5B,EAAGA,IACA,CACH4B,EAAGA,EACH5B,EAAGA,GAGL4B,EAAIqqC,EAAMrqC,EACV5B,EAAIisC,EAAMjsC,EACV,IAAIw5C,EAAON,EAAQ98D,eAAe,KAC9Bq9D,EAAOP,EAAQ98D,eAAe,KAC9Bs9D,EAAQ/5B,GACRg6B,EAAQj6B,GACRk6B,EAAM1hC,OAEV,GAAIkhC,EAAU,CACZ,IAAI/C,EAAeC,GAAgBhD,GAC/BuG,EAAa,eACbC,EAAY,cAchB,GAZIzD,IAAiB1C,GAAUL,IAGmB,WAA5Cl7B,GAFJi+B,EAAeJ,GAAmB3C,IAEC/nB,UAAsC,aAAbA,IAC1DsuB,EAAa,eACbC,EAAY,eAOZhL,IAAcpvB,KAAQovB,IAAcnvB,IAAQmvB,IAAcjvB,KAAUo5B,IAActvD,GACpFgwD,EAAQ/5B,GAGR5f,IAFcqgB,GAAWg2B,IAAiBuD,GAAOA,EAAIpE,eAAiBoE,EAAIpE,eAAen8B,OACzFg9B,EAAawD,IACEb,EAAW3/B,OAC1BrZ,GAAKm5C,EAAkB,GAAK,EAG9B,GAAIrK,IAAcnvB,KAASmvB,IAAcpvB,IAAOovB,IAAclvB,KAAWq5B,IAActvD,GACrF+vD,EAAQ75B,GAGRje,IAFcye,GAAWg2B,IAAiBuD,GAAOA,EAAIpE,eAAiBoE,EAAIpE,eAAep8B,MACzFi9B,EAAayD,IACEd,EAAW5/B,MAC1BxX,GAAKu3C,EAAkB,GAAK,CAEhC,CAEA,IAgBMY,EAhBFC,EAAetgE,OAAOq5B,OAAO,CAC/BwY,SAAUA,GACT6tB,GAAYP,IAEXoB,GAAyB,IAAjBZ,EAlFd,SAA2B10B,EAAMi1B,GAC/B,IAAIh4C,EAAI+iB,EAAK/iB,EACT5B,EAAI2kB,EAAK3kB,EACTk6C,EAAMN,EAAIO,kBAAoB,EAClC,MAAO,CACLv4C,EAAGwC,GAAMxC,EAAIs4C,GAAOA,GAAO,EAC3Bl6C,EAAGoE,GAAMpE,EAAIk6C,GAAOA,GAAO,EAE/B,CA0EsCE,CAAkB,CACpDx4C,EAAGA,EACH5B,EAAGA,GACF2zC,GAAUL,IAAW,CACtB1xC,EAAGA,EACH5B,EAAGA,GAML,OAHA4B,EAAIq4C,EAAMr4C,EACV5B,EAAIi6C,EAAMj6C,EAENm5C,EAGKz/D,OAAOq5B,OAAO,CAAE,EAAEinC,IAAeD,EAAiB,CAAE,GAAiBJ,GAASF,EAAO,IAAM,GAAIM,EAAeL,GAASF,EAAO,IAAM,GAAIO,EAAel3D,WAAa+2D,EAAIO,kBAAoB,IAAM,EAAI,aAAev4C,EAAI,OAAS5B,EAAI,MAAQ,eAAiB4B,EAAI,OAAS5B,EAAI,SAAU+5C,IAG5RrgE,OAAOq5B,OAAO,CAAE,EAAEinC,IAAejB,EAAkB,CAAE,GAAkBY,GAASF,EAAOz5C,EAAI,KAAO,GAAI+4C,EAAgBW,GAASF,EAAO53C,EAAI,KAAO,GAAIm3C,EAAgBl2D,UAAY,GAAIk2D,GAC9L,CA4Ce,IChKXsB,GAAU,CACZA,SAAS,GAsCI,ICzCX/yD,GAAO,CACTq4B,KAAM,QACNE,MAAO,OACPD,OAAQ,MACRF,IAAK,UAEQ,SAAS46B,GAAqBxL,GAC3C,OAAOA,EAAU9wD,QAAQ,0BAA0B,SAAU06B,GAC3D,OAAOpxB,GAAKoxB,EACd,GACF,CCVA,IAAIpxB,GAAO,CACT1E,MAAO,MACP+G,IAAK,SAEQ,SAAS4wD,GAA8BzL,GACpD,OAAOA,EAAU9wD,QAAQ,cAAc,SAAU06B,GAC/C,OAAOpxB,GAAKoxB,EACd,GACF,CCPe,SAAS8H,GAAgBzD,GACtC,IAAI68B,EAAMjG,GAAU52B,GAGpB,MAAO,CACL4D,WAHei5B,EAAIr7B,YAInBJ,UAHcy7B,EAAIl5B,YAKtB,CCNe,SAAS85B,GAAoB5+B,GAQ1C,OAAO4D,GAAsBy2B,GAAmBr6B,IAAU+D,KAAOa,GAAgB5E,GAAS+E,UAC5F,CCXe,SAAS85B,GAAe7+B,GAErC,IAAI8+B,EAAoBtiC,GAAiBwD,GACrC8P,EAAWgvB,EAAkBhvB,SAC7BivB,EAAYD,EAAkBC,UAC9BC,EAAYF,EAAkBE,UAElC,MAAO,6BAA6B3gE,KAAKyxC,EAAWkvB,EAAYD,EAClE,CCLe,SAASE,GAAgB99B,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAazH,QAAQo+B,GAAY32B,KAAU,EAEvDA,EAAK62B,cAAcx2B,KAGxB02B,GAAc/2B,IAAS09B,GAAe19B,GACjCA,EAGF89B,GAAgB3E,GAAcn5B,GACvC,CCJe,SAAS+9B,GAAkBl/B,EAASpM,GACjD,IAAIurC,OAES,IAATvrC,IACFA,EAAO,IAGT,IAAIwrC,EAAeH,GAAgBj/B,GAC/Bq/B,EAASD,KAAqE,OAAlDD,EAAwBn/B,EAAQg4B,oBAAyB,EAASmH,EAAsB39B,MACpHw8B,EAAMjG,GAAUqH,GAChB5lC,EAAS6lC,EAAS,CAACrB,GAAKpmC,OAAOomC,EAAIpE,gBAAkB,GAAIiF,GAAeO,GAAgBA,EAAe,IAAMA,EAC7GE,EAAc1rC,EAAKgE,OAAO4B,GAC9B,OAAO6lC,EAASC,EAChBA,EAAY1nC,OAAOsnC,GAAkB5E,GAAc9gC,IACrD,CCzBe,SAAS+lC,GAAiB57B,GACvC,OAAO7lC,OAAOq5B,OAAO,CAAE,EAAEwM,EAAM,CAC7BI,KAAMJ,EAAK3d,EACX8d,IAAKH,EAAKvf,EACV6f,MAAON,EAAK3d,EAAI2d,EAAKnG,MACrBwG,OAAQL,EAAKvf,EAAIuf,EAAKlG,QAE1B,CCqBA,SAAS+hC,GAA2Bx/B,EAASy/B,EAAgB7G,GAC3D,OAAO6G,IAAmBhI,GAAW8H,GCzBxB,SAAyBv/B,EAAS44B,GAC/C,IAAIoF,EAAMjG,GAAU/3B,GAChB0/B,EAAOrF,GAAmBr6B,GAC1B45B,EAAiBoE,EAAIpE,eACrBp8B,EAAQkiC,EAAK38B,YACbtF,EAASiiC,EAAKhD,aACd12C,EAAI,EACJ5B,EAAI,EAER,GAAIw1C,EAAgB,CAClBp8B,EAAQo8B,EAAep8B,MACvBC,EAASm8B,EAAen8B,OACxB,IAAIkiC,EAAiBrG,MAEjBqG,IAAmBA,GAA+B,UAAb/G,KACvC5yC,EAAI4zC,EAAeE,WACnB11C,EAAIw1C,EAAe1U,UAEvB,CAEA,MAAO,CACL1nB,MAAOA,EACPC,OAAQA,EACRzX,EAAGA,EAAI44C,GAAoB5+B,GAC3B5b,EAAGA,EAEP,CDDwDw7C,CAAgB5/B,EAAS44B,IAAaX,GAAUwH,GAdxG,SAAoCz/B,EAAS44B,GAC3C,IAAIj1B,EAAOC,GAAsB5D,GAAS,EAAoB,UAAb44B,GASjD,OARAj1B,EAAKG,IAAMH,EAAKG,IAAM9D,EAAQwuB,UAC9B7qB,EAAKI,KAAOJ,EAAKI,KAAO/D,EAAQ6/B,WAChCl8B,EAAKK,OAASL,EAAKG,IAAM9D,EAAQ08B,aACjC/4B,EAAKM,MAAQN,EAAKI,KAAO/D,EAAQ+C,YACjCY,EAAKnG,MAAQwC,EAAQ+C,YACrBY,EAAKlG,OAASuC,EAAQ08B,aACtB/4B,EAAK3d,EAAI2d,EAAKI,KACdJ,EAAKvf,EAAIuf,EAAKG,IACPH,CACT,CAG0Hm8B,CAA2BL,EAAgB7G,GAAY2G,GEtBlK,SAAyBv/B,GACtC,IAAIm/B,EAEAO,EAAOrF,GAAmBr6B,GAC1B+/B,EAAYn7B,GAAgB5E,GAC5BwB,EAA0D,OAAlD29B,EAAwBn/B,EAAQg4B,oBAAyB,EAASmH,EAAsB39B,KAChGhE,EAAQ12B,GAAI44D,EAAKz8B,YAAay8B,EAAK38B,YAAavB,EAAOA,EAAKyB,YAAc,EAAGzB,EAAOA,EAAKuB,YAAc,GACvGtF,EAAS32B,GAAI44D,EAAKM,aAAcN,EAAKhD,aAAcl7B,EAAOA,EAAKw+B,aAAe,EAAGx+B,EAAOA,EAAKk7B,aAAe,GAC5G12C,GAAK+5C,EAAUh7B,WAAa65B,GAAoB5+B,GAChD5b,GAAK27C,EAAUx9B,UAMnB,MAJiD,QAA7C/F,GAAiBgF,GAAQk+B,GAAM9uC,YACjC5K,GAAKlf,GAAI44D,EAAK38B,YAAavB,EAAOA,EAAKuB,YAAc,GAAKvF,GAGrD,CACLA,MAAOA,EACPC,OAAQA,EACRzX,EAAGA,EACH5B,EAAGA,EAEP,CFCkM67C,CAAgB5F,GAAmBr6B,IACrO,CAsBe,SAASkgC,GAAgBlgC,EAASmgC,EAAUC,EAAcxH,GACvE,IAAIyH,EAAmC,oBAAbF,EAlB5B,SAA4BngC,GAC1B,IAAIsgC,EAAkBpB,GAAkB5E,GAAct6B,IAElDugC,EADoB,CAAC,WAAY,SAAS7mC,QAAQ8C,GAAiBwD,GAAS2P,WAAa,GACnDuoB,GAAcl4B,GAAW06B,GAAgB16B,GAAWA,EAE9F,OAAKi4B,GAAUsI,GAKRD,EAAgB15B,QAAO,SAAU64B,GACtC,OAAOxH,GAAUwH,IAAmB9+B,GAAS8+B,EAAgBc,IAAmD,SAAhCzI,GAAY2H,EAC9F,IANS,EAOX,CAK6De,CAAmBxgC,GAAW,GAAGpI,OAAOuoC,GAC/FG,EAAkB,GAAG1oC,OAAOyoC,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgB/tB,QAAO,SAAUouB,EAASlB,GAC3D,IAAI97B,EAAO67B,GAA2Bx/B,EAASy/B,EAAgB7G,GAK/D,OAJA+H,EAAQ78B,IAAMh9B,GAAI68B,EAAKG,IAAK68B,EAAQ78B,KACpC68B,EAAQ18B,MAAQ1oB,GAAIooB,EAAKM,MAAO08B,EAAQ18B,OACxC08B,EAAQ38B,OAASzoB,GAAIooB,EAAKK,OAAQ28B,EAAQ38B,QAC1C28B,EAAQ58B,KAAOj9B,GAAI68B,EAAKI,KAAM48B,EAAQ58B,MAC/B48B,CACR,GAAEnB,GAA2Bx/B,EAASygC,EAAqB7H,IAK5D,OAJA8H,EAAaljC,MAAQkjC,EAAaz8B,MAAQy8B,EAAa38B,KACvD28B,EAAajjC,OAASijC,EAAa18B,OAAS08B,EAAa58B,IACzD48B,EAAa16C,EAAI06C,EAAa38B,KAC9B28B,EAAat8C,EAAIs8C,EAAa58B,IACvB48B,CACT,CGjEe,SAASE,GAAe73B,GACrC,IAOIu0B,EAPAxE,EAAY/vB,EAAK+vB,UACjB94B,EAAU+I,EAAK/I,QACfkzB,EAAYnqB,EAAKmqB,UACjB6I,EAAgB7I,EAAY8F,GAAiB9F,GAAa,KAC1DmK,EAAYnK,EAAY8J,GAAa9J,GAAa,KAClD2N,EAAU/H,EAAU9yC,EAAI8yC,EAAUt7B,MAAQ,EAAIwC,EAAQxC,MAAQ,EAC9DsjC,EAAUhI,EAAU10C,EAAI00C,EAAUr7B,OAAS,EAAIuC,EAAQvC,OAAS,EAGpE,OAAQs+B,GACN,KAAKj4B,GACHw5B,EAAU,CACRt3C,EAAG66C,EACHz8C,EAAG00C,EAAU10C,EAAI4b,EAAQvC,QAE3B,MAEF,KAAKuG,GACHs5B,EAAU,CACRt3C,EAAG66C,EACHz8C,EAAG00C,EAAU10C,EAAI00C,EAAUr7B,QAE7B,MAEF,KAAKwG,GACHq5B,EAAU,CACRt3C,EAAG8yC,EAAU9yC,EAAI8yC,EAAUt7B,MAC3BpZ,EAAG08C,GAEL,MAEF,KAAK/8B,GACHu5B,EAAU,CACRt3C,EAAG8yC,EAAU9yC,EAAIga,EAAQxC,MACzBpZ,EAAG08C,GAEL,MAEF,QACExD,EAAU,CACRt3C,EAAG8yC,EAAU9yC,EACb5B,EAAG00C,EAAU10C,GAInB,IAAI28C,EAAWhF,EAAgBb,GAAyBa,GAAiB,KAEzE,GAAgB,MAAZgF,EAAkB,CACpB,IAAIhkE,EAAmB,MAAbgkE,EAAmB,SAAW,QAExC,OAAQ1D,GACN,KAAKr2D,GACHs2D,EAAQyD,GAAYzD,EAAQyD,IAAajI,EAAU/7D,GAAO,EAAIijC,EAAQjjC,GAAO,GAC7E,MAEF,KAAKgR,GACHuvD,EAAQyD,GAAYzD,EAAQyD,IAAajI,EAAU/7D,GAAO,EAAIijC,EAAQjjC,GAAO,GAKnF,CAEA,OAAOugE,CACT,CC3De,SAAS0D,GAAexI,EAAO98C,QAC5B,IAAZA,IACFA,EAAU,CAAA,GAGZ,IAAIulD,EAAWvlD,EACXwlD,EAAqBD,EAAS/N,UAC9BA,OAAmC,IAAvBgO,EAAgC1I,EAAMtF,UAAYgO,EAC9DC,EAAoBF,EAASrI,SAC7BA,OAAiC,IAAtBuI,EAA+B3I,EAAMI,SAAWuI,EAC3DC,EAAoBH,EAASd,SAC7BA,OAAiC,IAAtBiB,EtCbY,kBsCaqCA,EAC5DC,EAAwBJ,EAASb,aACjCA,OAAyC,IAA1BiB,EAAmC5J,GAAW4J,EAC7DC,EAAwBL,EAASM,eACjCA,OAA2C,IAA1BD,EAAmC5J,GAAS4J,EAC7DE,EAAuBP,EAASQ,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBT,EAASzY,QAC5BA,OAA+B,IAArBkZ,EAA8B,EAAIA,EAC5CnG,EAAgBD,GAAsC,iBAAZ9S,EAAuBA,EAAUgT,GAAgBhT,EAASgP,KACpGmK,EAAaJ,IAAmB7J,GtCpBf,YsCoBoCA,GACrD0F,EAAa5E,EAAMyD,MAAMvE,OACzB13B,EAAUw4B,EAAMzL,SAAS0U,EAAcE,EAAaJ,GACpDK,EAAqB1B,GAAgBjI,GAAUj4B,GAAWA,EAAUA,EAAQ6hC,gBAAkBxH,GAAmB7B,EAAMzL,SAAS2K,QAASyI,EAAUC,EAAcxH,GACjKkJ,EAAsBl+B,GAAsB40B,EAAMzL,SAAS+L,WAC3D+C,EAAgB+E,GAAe,CACjC9H,UAAWgJ,EACX9hC,QAASo9B,EACTxE,SAAU,WACV1F,UAAWA,IAET6O,EAAmBxC,GAAiBzhE,OAAOq5B,OAAO,CAAA,EAAIimC,EAAYvB,IAClEmG,EAAoBT,IAAmB7J,GAASqK,EAAmBD,EAGnEG,EAAkB,CACpBn+B,IAAK89B,EAAmB99B,IAAMk+B,EAAkBl+B,IAAMy3B,EAAcz3B,IACpEE,OAAQg+B,EAAkBh+B,OAAS49B,EAAmB59B,OAASu3B,EAAcv3B,OAC7ED,KAAM69B,EAAmB79B,KAAOi+B,EAAkBj+B,KAAOw3B,EAAcx3B,KACvEE,MAAO+9B,EAAkB/9B,MAAQ29B,EAAmB39B,MAAQs3B,EAAct3B,OAExEi+B,EAAa1J,EAAMsD,cAAc7uD,OAErC,GAAIs0D,IAAmB7J,IAAUwK,EAAY,CAC3C,IAAIj1D,EAASi1D,EAAWhP,GACxBp1D,OAAO4F,KAAKu+D,GAAiBnrD,SAAQ,SAAU9X,GAC7C,IAAImjE,EAAW,CAACl+B,GAAOD,IAAQtK,QAAQ16B,IAAQ,EAAI,GAAK,EACpDg9D,EAAO,CAACl4B,GAAKE,IAAQtK,QAAQ16B,IAAQ,EAAI,IAAM,IACnDijE,EAAgBjjE,IAAQiO,EAAO+uD,GAAQmG,CACzC,GACF,CAEA,OAAOF,CACT,CC5De,SAASG,GAAqB5J,EAAO98C,QAClC,IAAZA,IACFA,EAAU,CAAA,GAGZ,IAAIulD,EAAWvlD,EACXw3C,EAAY+N,EAAS/N,UACrBiN,EAAWc,EAASd,SACpBC,EAAea,EAASb,aACxB5X,EAAUyY,EAASzY,QACnB6Z,EAAiBpB,EAASoB,eAC1BC,EAAwBrB,EAASsB,sBACjCA,OAAkD,IAA1BD,EAAmCE,GAAgBF,EAC3EjF,EAAYL,GAAa9J,GACzB0E,EAAayF,EAAYgF,EAAiB1K,GAAsBA,GAAoB/wB,QAAO,SAAUssB,GACvG,OAAO8J,GAAa9J,KAAemK,CACpC,IAAI7F,GACDiL,EAAoB7K,EAAWhxB,QAAO,SAAUssB,GAClD,OAAOqP,EAAsB7oC,QAAQw5B,IAAc,CACrD,IAEiC,IAA7BuP,EAAkBzlE,SACpBylE,EAAoB7K,GAItB,IAAI8K,EAAYD,EAAkBlwB,QAAO,SAAUsH,EAAKqZ,GAOtD,OANArZ,EAAIqZ,GAAa8N,GAAexI,EAAO,CACrCtF,UAAWA,EACXiN,SAAUA,EACVC,aAAcA,EACd5X,QAASA,IACRwQ,GAAiB9F,IACbrZ,CACR,GAAE,CAAE,GACL,OAAO/7C,OAAO4F,KAAKg/D,GAAWnoC,MAAK,SAAU9W,EAAGkC,GAC9C,OAAO+8C,EAAUj/C,GAAKi/C,EAAU/8C,EAClC,GACF,CC+Fe,IAAAg9C,GAAA,CACbvkE,KAAM,OACNk6D,SAAS,EACTC,MAAO,OACPp5B,GA5HF,SAAc4J,GACZ,IAAIyvB,EAAQzvB,EAAKyvB,MACb98C,EAAUqtB,EAAKrtB,QACftd,EAAO2qC,EAAK3qC,KAEhB,IAAIo6D,EAAMsD,cAAc19D,GAAMwkE,MAA9B,CAoCA,IAhCA,IAAIC,EAAoBnnD,EAAQqlD,SAC5B+B,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBrnD,EAAQsnD,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8BxnD,EAAQynD,mBACtC3a,EAAU9sC,EAAQ8sC,QAClB2X,EAAWzkD,EAAQykD,SACnBC,EAAe1kD,EAAQ0kD,aACvBqB,EAAc/lD,EAAQ+lD,YACtB2B,EAAwB1nD,EAAQ2mD,eAChCA,OAA2C,IAA1Be,GAA0CA,EAC3Db,EAAwB7mD,EAAQ6mD,sBAChCc,EAAqB7K,EAAM98C,QAAQw3C,UACnC6I,EAAgB/C,GAAiBqK,GAEjCF,EAAqBD,IADHnH,IAAkBsH,IACqChB,EAAiB,CAAC3D,GAAqB2E,IAjCtH,SAAuCnQ,GACrC,GAAI8F,GAAiB9F,KAAeqE,GAClC,MAAO,GAGT,IAAI+L,EAAoB5E,GAAqBxL,GAC7C,MAAO,CAACyL,GAA8BzL,GAAYoQ,EAAmB3E,GAA8B2E,GACrG,CA0B6IC,CAA8BF,IACrKzL,EAAa,CAACyL,GAAoBzrC,OAAOurC,GAAoB5wB,QAAO,SAAUsH,EAAKqZ,GACrF,OAAOrZ,EAAIjiB,OAAOohC,GAAiB9F,KAAeqE,GAAO6K,GAAqB5J,EAAO,CACnFtF,UAAWA,EACXiN,SAAUA,EACVC,aAAcA,EACd5X,QAASA,EACT6Z,eAAgBA,EAChBE,sBAAuBA,IACpBrP,EACN,GAAE,IACCsQ,EAAgBhL,EAAMyD,MAAMnD,UAC5BsE,EAAa5E,EAAMyD,MAAMvE,OACzB+L,EAAY,IAAIn4D,IAChBo4D,GAAqB,EACrBC,EAAwB/L,EAAW,GAE9B36D,EAAI,EAAGA,EAAI26D,EAAW56D,OAAQC,IAAK,CAC1C,IAAIi2D,EAAY0E,EAAW36D,GAEvB2mE,EAAiB5K,GAAiB9F,GAElC2Q,EAAmB7G,GAAa9J,KAAelsD,GAC/C88D,EAAa,CAAChgC,GAAKE,IAAQtK,QAAQkqC,IAAmB,EACtD7mE,EAAM+mE,EAAa,QAAU,SAC7Bh0B,EAAWkxB,GAAexI,EAAO,CACnCtF,UAAWA,EACXiN,SAAUA,EACVC,aAAcA,EACdqB,YAAaA,EACbjZ,QAASA,IAEPub,EAAoBD,EAAaD,EAAmB5/B,GAAQF,GAAO8/B,EAAmB7/B,GAASF,GAE/F0/B,EAAczmE,GAAOqgE,EAAWrgE,KAClCgnE,EAAoBrF,GAAqBqF,IAG3C,IAAIC,EAAmBtF,GAAqBqF,GACxCE,EAAS,GAUb,GARInB,GACFmB,EAAOr6D,KAAKkmC,EAAS8zB,IAAmB,GAGtCX,GACFgB,EAAOr6D,KAAKkmC,EAASi0B,IAAsB,EAAGj0B,EAASk0B,IAAqB,GAG1EC,EAAOC,OAAM,SAAUrwB,GACzB,OAAOA,CACT,IAAI,CACF8vB,EAAwBzQ,EACxBwQ,GAAqB,EACrB,KACF,CAEAD,EAAU74D,IAAIsoD,EAAW+Q,EAC3B,CAEA,GAAIP,EAqBF,IAnBA,IAEI3kC,EAAQ,SAAeolC,GACzB,IAAIC,EAAmBxM,EAAWf,MAAK,SAAU3D,GAC/C,IAAI+Q,EAASR,EAAUx4D,IAAIioD,GAE3B,GAAI+Q,EACF,OAAOA,EAAO/lE,MAAM,EAAGimE,GAAID,OAAM,SAAUrwB,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAIuwB,EAEF,OADAT,EAAwBS,EACjB,SAIFD,EAnBY9B,EAAiB,EAAI,EAmBZ8B,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFFplC,EAAMolC,GAEK,KACxB,CAGE3L,EAAMtF,YAAcyQ,IACtBnL,EAAMsD,cAAc19D,GAAMwkE,OAAQ,EAClCpK,EAAMtF,UAAYyQ,EAClBnL,EAAM7X,OAAQ,EA5GhB,CA8GF,EAQEoc,iBAAkB,CAAC,UACnB7xD,KAAM,CACJ03D,OAAO,IC7IX,SAASyB,GAAev0B,EAAUnM,EAAM2gC,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBt+C,EAAG,EACH5B,EAAG,IAIA,CACL0f,IAAKgM,EAAShM,IAAMH,EAAKlG,OAAS6mC,EAAiBlgD,EACnD6f,MAAO6L,EAAS7L,MAAQN,EAAKnG,MAAQ8mC,EAAiBt+C,EACtDge,OAAQ8L,EAAS9L,OAASL,EAAKlG,OAAS6mC,EAAiBlgD,EACzD2f,KAAM+L,EAAS/L,KAAOJ,EAAKnG,MAAQ8mC,EAAiBt+C,EAExD,CAEA,SAASu+C,GAAsBz0B,GAC7B,MAAO,CAAChM,GAAKG,GAAOD,GAAQD,IAAMgZ,MAAK,SAAUynB,GAC/C,OAAO10B,EAAS00B,IAAS,CAC3B,GACF,CCwBe,IAAAC,GAAA,CACbrmE,KAAM,SACNk6D,SAAS,EACTC,MAAO,OACPQ,SAAU,CAAC,iBACX55B,GA5BF,SAAgB4wB,GACd,IAAIyI,EAAQzI,EAAMyI,MACd98C,EAAUq0C,EAAMr0C,QAChBtd,EAAO2xD,EAAM3xD,KACbsmE,EAAkBhpD,EAAQzO,OAC1BA,OAA6B,IAApBy3D,EAA6B,CAAC,EAAG,GAAKA,EAC/Cx5D,EAAO0sD,GAAWrlB,QAAO,SAAUsH,EAAKqZ,GAE1C,OADArZ,EAAIqZ,GA5BD,SAAiCA,EAAW+I,EAAOhvD,GACxD,IAAI8uD,EAAgB/C,GAAiB9F,GACjCyR,EAAiB,CAAC5gC,GAAMD,IAAKpK,QAAQqiC,IAAkB,GAAK,EAAI,EAEhEhzB,EAAyB,mBAAX97B,EAAwBA,EAAOnP,OAAOq5B,OAAO,CAAE,EAAE8kC,EAAO,CACxE/I,UAAWA,KACPjmD,EACF23D,EAAW77B,EAAK,GAChB87B,EAAW97B,EAAK,GAIpB,OAFA67B,EAAWA,GAAY,EACvBC,GAAYA,GAAY,GAAKF,EACtB,CAAC5gC,GAAME,IAAOvK,QAAQqiC,IAAkB,EAAI,CACjD/1C,EAAG6+C,EACHzgD,EAAGwgD,GACD,CACF5+C,EAAG4+C,EACHxgD,EAAGygD,EAEP,CASqBC,CAAwB5R,EAAWsF,EAAMyD,MAAOhvD,GAC1D4sC,CACR,GAAE,CAAE,GACDkrB,EAAwB75D,EAAKstD,EAAMtF,WACnCltC,EAAI++C,EAAsB/+C,EAC1B5B,EAAI2gD,EAAsB3gD,EAEW,MAArCo0C,EAAMsD,cAAcD,gBACtBrD,EAAMsD,cAAcD,cAAc71C,GAAKA,EACvCwyC,EAAMsD,cAAcD,cAAcz3C,GAAKA,GAGzCo0C,EAAMsD,cAAc19D,GAAQ8M,CAC9B,GC2Fe,IAAA85D,GAAA,CACb5mE,KAAM,kBACNk6D,SAAS,EACTC,MAAO,OACPp5B,GA/HF,SAAyB4J,GACvB,IAAIyvB,EAAQzvB,EAAKyvB,MACb98C,EAAUqtB,EAAKrtB,QACftd,EAAO2qC,EAAK3qC,KACZykE,EAAoBnnD,EAAQqlD,SAC5B+B,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBrnD,EAAQsnD,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrD5C,EAAWzkD,EAAQykD,SACnBC,EAAe1kD,EAAQ0kD,aACvBqB,EAAc/lD,EAAQ+lD,YACtBjZ,EAAU9sC,EAAQ8sC,QAClByc,EAAkBvpD,EAAQwpD,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBzpD,EAAQ0pD,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDr1B,EAAWkxB,GAAexI,EAAO,CACnC2H,SAAUA,EACVC,aAAcA,EACd5X,QAASA,EACTiZ,YAAaA,IAEX1F,EAAgB/C,GAAiBR,EAAMtF,WACvCmK,EAAYL,GAAaxE,EAAMtF,WAC/BmS,GAAmBhI,EACnB0D,EAAW7F,GAAyBa,GACpCiH,ECrCY,MDqCSjC,ECrCH,IAAM,IDsCxBlF,EAAgBrD,EAAMsD,cAAcD,cACpC2H,EAAgBhL,EAAMyD,MAAMnD,UAC5BsE,EAAa5E,EAAMyD,MAAMvE,OACzB4N,EAA4C,mBAAjBF,EAA8BA,EAAatnE,OAAOq5B,OAAO,CAAA,EAAIqhC,EAAMyD,MAAO,CACvG/I,UAAWsF,EAAMtF,aACbkS,EACFG,EAA2D,iBAAtBD,EAAiC,CACxEvE,SAAUuE,EACVtC,QAASsC,GACPxnE,OAAOq5B,OAAO,CAChB4pC,SAAU,EACViC,QAAS,GACRsC,GACCE,EAAsBhN,EAAMsD,cAAc7uD,OAASurD,EAAMsD,cAAc7uD,OAAOurD,EAAMtF,WAAa,KACjGhoD,EAAO,CACT8a,EAAG,EACH5B,EAAG,GAGL,GAAKy3C,EAAL,CAIA,GAAIiH,EAAe,CACjB,IAAI2C,EAEAC,EAAwB,MAAb3E,EAAmBj9B,GAAMC,GACpC4hC,EAAuB,MAAb5E,EAAmB/8B,GAASC,GACtClnC,EAAmB,MAAbgkE,EAAmB,SAAW,QACpC9zD,EAAS4uD,EAAckF,GACvBxlD,EAAMtO,EAAS6iC,EAAS41B,GACxB5+D,EAAMmG,EAAS6iC,EAAS61B,GACxBC,EAAWV,GAAU9H,EAAWrgE,GAAO,EAAI,EAC3CY,EAAS0/D,IAAcr2D,GAAQw8D,EAAczmE,GAAOqgE,EAAWrgE,GAC/D8oE,EAASxI,IAAcr2D,IAASo2D,EAAWrgE,IAAQymE,EAAczmE,GAGjE6+D,EAAepD,EAAMzL,SAAS8L,MAC9BsD,EAAY+I,GAAUtJ,EAAe7B,GAAc6B,GAAgB,CACrEp+B,MAAO,EACPC,OAAQ,GAENqoC,EAAqBtN,EAAMsD,cAAc,oBAAsBtD,EAAMsD,cAAc,oBAAoBtT,QvBhFtG,CACL1kB,IAAK,EACLG,MAAO,EACPD,OAAQ,EACRD,KAAM,GuB6EFgiC,EAAkBD,EAAmBJ,GACrCM,EAAkBF,EAAmBH,GAMrCM,EAAW9K,GAAO,EAAGqI,EAAczmE,GAAMo/D,EAAUp/D,IACnDmpE,EAAYb,EAAkB7B,EAAczmE,GAAO,EAAI6oE,EAAWK,EAAWF,EAAkBR,EAA4BxE,SAAWpjE,EAASsoE,EAAWF,EAAkBR,EAA4BxE,SACxMoF,EAAYd,GAAmB7B,EAAczmE,GAAO,EAAI6oE,EAAWK,EAAWD,EAAkBT,EAA4BxE,SAAW8E,EAASI,EAAWD,EAAkBT,EAA4BxE,SACzMvE,EAAoBhE,EAAMzL,SAAS8L,OAAS6B,GAAgBlC,EAAMzL,SAAS8L,OAC3EuN,EAAe5J,EAAiC,MAAbuE,EAAmBvE,EAAkBhO,WAAa,EAAIgO,EAAkBqD,YAAc,EAAI,EAC7HwG,EAAwH,OAAjGZ,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBzE,IAAqB0E,EAAwB,EAEvJa,EAAYr5D,EAASk5D,EAAYE,EACjCE,EAAkBpL,GAAO+J,EAAS7J,GAAQ9/C,EAF9BtO,EAASi5D,EAAYG,EAAsBD,GAEK7qD,EAAKtO,EAAQi4D,EAAS9J,GAAQt0D,EAAKw/D,GAAax/D,GAChH+0D,EAAckF,GAAYwF,EAC1Br7D,EAAK61D,GAAYwF,EAAkBt5D,CACrC,CAEA,GAAIg2D,EAAc,CAChB,IAAIuD,EAEAC,EAAyB,MAAb1F,EAAmBj9B,GAAMC,GAErC2iC,GAAwB,MAAb3F,EAAmB/8B,GAASC,GAEvC0iC,GAAU9K,EAAcmH,GAExB5rC,GAAmB,MAAZ4rC,EAAkB,SAAW,QAEpC4D,GAAOD,GAAU72B,EAAS22B,GAE1BI,GAAOF,GAAU72B,EAAS42B,IAE1BI,IAAuD,IAAxC,CAAChjC,GAAKC,IAAMrK,QAAQqiC,GAEnCgL,GAAyH,OAAjGP,EAAgD,MAAvBhB,OAA8B,EAASA,EAAoBxC,IAAoBwD,EAAyB,EAEzJQ,GAAaF,GAAeF,GAAOD,GAAUnD,EAAcpsC,IAAQgmC,EAAWhmC,IAAQ2vC,GAAuBxB,EAA4BvC,QAEzIiE,GAAaH,GAAeH,GAAUnD,EAAcpsC,IAAQgmC,EAAWhmC,IAAQ2vC,GAAuBxB,EAA4BvC,QAAU6D,GAE5IK,GAAmBhC,GAAU4B,GzBzH9B,SAAwBvrD,EAAK5b,EAAOmH,GACzC,IAAI4d,EAAIy2C,GAAO5/C,EAAK5b,EAAOmH,GAC3B,OAAO4d,EAAI5d,EAAMA,EAAM4d,CACzB,CyBsHoDyiD,CAAeH,GAAYL,GAASM,IAAc9L,GAAO+J,EAAS8B,GAAaJ,GAAMD,GAASzB,EAAS+B,GAAaJ,IAEpKhL,EAAcmH,GAAWkE,GACzBh8D,EAAK83D,GAAWkE,GAAmBP,EACrC,CAEAnO,EAAMsD,cAAc19D,GAAQ8M,CAvE5B,CAwEF,EAQE6xD,iBAAkB,CAAC,WE1HN,SAASqK,GAAiBC,EAAyB5M,EAAch2B,QAC9D,IAAZA,IACFA,GAAU,GAGZ,ICnBoCtD,EDmBhCmmC,EAA0BpP,GAAcuC,GACxC8M,EAAuBrP,GAAcuC,IAf3C,SAAyBz6B,GACvB,IAAI2D,EAAO3D,EAAQ4D,wBACf81B,EAASlxC,GAAMmb,EAAKnG,OAASwC,EAAQyP,aAAe,EACpDkqB,EAASnxC,GAAMmb,EAAKlG,QAAUuC,EAAQ0P,cAAgB,EAC1D,OAAkB,IAAXgqB,GAA2B,IAAXC,CACzB,CAU4D6N,CAAgB/M,GACtEz4B,EAAkBq4B,GAAmBI,GACrC92B,EAAOC,GAAsByjC,EAAyBE,EAAsB9iC,GAC5EgjC,EAAS,CACX1iC,WAAY,EACZxC,UAAW,GAET+6B,EAAU,CACZt3C,EAAG,EACH5B,EAAG,GAkBL,OAfIkjD,IAA4BA,IAA4B7iC,MACxB,SAA9BqzB,GAAY2C,IAChBoE,GAAe78B,MACbylC,GCnCgCtmC,EDmCTs5B,KClCd1C,GAAU52B,IAAU+2B,GAAc/2B,GCLlC,SAA8BnB,GAC3C,MAAO,CACL+E,WAAY/E,EAAQ+E,WACpBxC,UAAWvC,EAAQuC,UAEvB,CDGWmlC,CAAqBvmC,GAFrByD,GAAgBzD,IDoCnB+2B,GAAcuC,KAChB6C,EAAU15B,GAAsB62B,GAAc,IACtCz0C,GAAKy0C,EAAaoF,WAC1BvC,EAAQl5C,GAAKq2C,EAAajM,WACjBxsB,IACTs7B,EAAQt3C,EAAI44C,GAAoB58B,KAI7B,CACLhc,EAAG2d,EAAKI,KAAO0jC,EAAO1iC,WAAau4B,EAAQt3C,EAC3C5B,EAAGuf,EAAKG,IAAM2jC,EAAOllC,UAAY+6B,EAAQl5C,EACzCoZ,MAAOmG,EAAKnG,MACZC,OAAQkG,EAAKlG,OAEjB,CGvDA,SAAS2b,GAAM1M,GACb,IAAIlhC,EAAM,IAAIF,IACVq8D,EAAU,IAAIh0D,IACd1S,EAAS,GAKb,SAASs5B,EAAKqtC,GACZD,EAAQ3wD,IAAI4wD,EAASxpE,MACN,GAAGw5B,OAAOgwC,EAAS7O,UAAY,GAAI6O,EAAS7K,kBAAoB,IACtEjmD,SAAQ,SAAU+wD,GACzB,IAAKF,EAAQ38D,IAAI68D,GAAM,CACrB,IAAIC,EAAct8D,EAAIP,IAAI48D,GAEtBC,GACFvtC,EAAKutC,EAET,CACF,IACA7mE,EAAO2I,KAAKg+D,EACd,CAQA,OAzBAl7B,EAAU51B,SAAQ,SAAU8wD,GAC1Bp8D,EAAIZ,IAAIg9D,EAASxpE,KAAMwpE,MAkBzBl7B,EAAU51B,SAAQ,SAAU8wD,GACrBD,EAAQ38D,IAAI48D,EAASxpE,OAExBm8B,EAAKqtC,EAET,IACO3mE,CACT,CCvBA,IAAI8mE,GAAkB,CACpB7U,UAAW,SACXxmB,UAAW,GACXksB,SAAU,YAGZ,SAASoP,KACP,IAAK,IAAI5wC,EAAO7xB,UAAUvI,OAAQkK,EAAO,IAAI/J,MAAMi6B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EnwB,EAAKmwB,GAAQ9xB,UAAU8xB,GAGzB,OAAQnwB,EAAK61C,MAAK,SAAU/c,GAC1B,QAASA,GAAoD,mBAAlCA,EAAQ4D,sBACrC,GACF,CAEO,SAASqkC,GAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAA,GAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCP,GAAkBO,EAC3E,OAAO,SAAsBxP,EAAWpB,EAAQh8C,QAC9B,IAAZA,IACFA,EAAU6sD,GAGZ,ICxC6BppC,EAC3BqpC,EDuCEhQ,EAAQ,CACVtF,UAAW,SACXuV,iBAAkB,GAClB/sD,QAAS5d,OAAOq5B,OAAO,CAAA,EAAI4wC,GAAiBQ,GAC5CzM,cAAe,CAAE,EACjB/O,SAAU,CACR+L,UAAWA,EACXpB,OAAQA,GAEVe,WAAY,CAAE,EACdr/B,OAAQ,CAAC,GAEPsvC,EAAmB,GACnBC,GAAc,EACd5iC,EAAW,CACbyyB,MAAOA,EACPoQ,WAAY,SAAoBC,GAC9B,IAAIntD,EAAsC,mBAArBmtD,EAAkCA,EAAiBrQ,EAAM98C,SAAWmtD,EACzFC,IACAtQ,EAAM98C,QAAU5d,OAAOq5B,OAAO,CAAA,EAAIoxC,EAAgB/P,EAAM98C,QAASA,GACjE88C,EAAMuQ,cAAgB,CACpBjQ,UAAWb,GAAUa,GAAaoG,GAAkBpG,GAAaA,EAAU+I,eAAiB3C,GAAkBpG,EAAU+I,gBAAkB,GAC1InK,OAAQwH,GAAkBxH,IAI5B,IElE4BhrB,EAC9Bs8B,EFiEMP,EDhCG,SAAwB/7B,GAErC,IAAI+7B,EAAmBrvB,GAAM1M,GAE7B,OAAOmrB,GAAetlB,QAAO,SAAUsH,EAAK0e,GAC1C,OAAO1e,EAAIjiB,OAAO6wC,EAAiB7hC,QAAO,SAAUghC,GAClD,OAAOA,EAASrP,QAAUA,CAC3B,IACF,GAAE,GACL,CCuB+B0Q,EElEKv8B,EFkEsB,GAAG9U,OAAOywC,EAAkB7P,EAAM98C,QAAQgxB,WEjE9Fs8B,EAASt8B,EAAU6F,QAAO,SAAUy2B,EAAQ5oD,GAC9C,IAAI8oD,EAAWF,EAAO5oD,EAAQhiB,MAK9B,OAJA4qE,EAAO5oD,EAAQhiB,MAAQ8qE,EAAWprE,OAAOq5B,OAAO,CAAA,EAAI+xC,EAAU9oD,EAAS,CACrE1E,QAAS5d,OAAOq5B,OAAO,CAAA,EAAI+xC,EAASxtD,QAAS0E,EAAQ1E,SACrDxQ,KAAMpN,OAAOq5B,OAAO,CAAA,EAAI+xC,EAASh+D,KAAMkV,EAAQlV,QAC5CkV,EACE4oD,CACR,GAAE,CAAE,GAEElrE,OAAO4F,KAAKslE,GAAQx9D,KAAI,SAAUxM,GACvC,OAAOgqE,EAAOhqE,EAChB,MF4DM,OAJAw5D,EAAMiQ,iBAAmBA,EAAiB7hC,QAAO,SAAUniB,GACzD,OAAOA,EAAE6zC,OACX,IA+FFE,EAAMiQ,iBAAiB3xD,SAAQ,SAAUiyB,GACvC,IAAI3qC,EAAO2qC,EAAK3qC,KACZ+qE,EAAepgC,EAAKrtB,QACpBA,OAA2B,IAAjBytD,EAA0B,CAAE,EAAGA,EACzCzQ,EAAS3vB,EAAK2vB,OAElB,GAAsB,mBAAXA,EAAuB,CAChC,IAAI0Q,EAAY1Q,EAAO,CACrBF,MAAOA,EACPp6D,KAAMA,EACN2nC,SAAUA,EACVrqB,QAASA,IAGP2tD,EAAS,aAEbX,EAAiB9+D,KAAKw/D,GAAaC,EACrC,CACF,IA/GStjC,EAASujC,QACjB,EAMDC,YAAa,WACX,IAAIZ,EAAJ,CAIA,IAAIa,EAAkBhR,EAAMzL,SACxB+L,EAAY0Q,EAAgB1Q,UAC5BpB,EAAS8R,EAAgB9R,OAG7B,GAAKsQ,GAAiBlP,EAAWpB,GAAjC,CAKAc,EAAMyD,MAAQ,CACZnD,UAAWsO,GAAiBtO,EAAW4B,GAAgBhD,GAAoC,UAA3Bc,EAAM98C,QAAQk9C,UAC9ElB,OAAQqC,GAAcrC,IAOxBc,EAAM7X,OAAQ,EACd6X,EAAMtF,UAAYsF,EAAM98C,QAAQw3C,UAKhCsF,EAAMiQ,iBAAiB3xD,SAAQ,SAAU8wD,GACvC,OAAOpP,EAAMsD,cAAc8L,EAASxpE,MAAQN,OAAOq5B,OAAO,CAAE,EAAEywC,EAAS18D,KACzE,IAEA,IAAK,IAAIzJ,EAAQ,EAAGA,EAAQ+2D,EAAMiQ,iBAAiBzrE,OAAQyE,IACzD,IAAoB,IAAhB+2D,EAAM7X,MAAV,CAMA,IAAI8oB,EAAwBjR,EAAMiQ,iBAAiBhnE,GAC/C09B,EAAKsqC,EAAsBtqC,GAC3BuqC,EAAyBD,EAAsB/tD,QAC/CulD,OAAsC,IAA3ByI,EAAoC,CAAE,EAAGA,EACpDtrE,EAAOqrE,EAAsBrrE,KAEf,mBAAP+gC,IACTq5B,EAAQr5B,EAAG,CACTq5B,MAAOA,EACP98C,QAASulD,EACT7iE,KAAMA,EACN2nC,SAAUA,KACNyyB,EAdR,MAHEA,EAAM7X,OAAQ,EACdl/C,GAAS,CAzBZ,CATD,CAqDD,EAGD6nE,QC1I2BnqC,ED0IV,WACf,OAAO,IAAIzrB,SAAQ,SAAUc,GAC3BuxB,EAASwjC,cACT/0D,EAAQgkD,EACV,GACF,EC7IG,WAUL,OATKgQ,IACHA,EAAU,IAAI90D,SAAQ,SAAUc,GAC9Bd,QAAQc,UAAU+sC,MAAK,WACrBinB,OAAUnpE,EACVmV,EAAQ2qB,IACV,GACF,KAGKqpC,IDoILzc,QAAS,WACP+c,IACAH,GAAc,CAChB,GAGF,IAAKX,GAAiBlP,EAAWpB,GAC/B,OAAO3xB,EAmCT,SAAS+iC,IACPJ,EAAiB5xD,SAAQ,SAAUqoB,GACjC,OAAOA,GACT,IACAupC,EAAmB,EACrB,CAEA,OAvCA3iC,EAAS6iC,WAAWltD,GAAS6lC,MAAK,SAAUiX,IACrCmQ,GAAejtD,EAAQiuD,eAC1BjuD,EAAQiuD,cAAcnR,MAqCnBzyB,EAEX,CGzLA,IACI6jC,GAA4B3B,GAAgB,CAC9CI,iBAFqB,C3B+BR,CACbjqE,KAAM,iBACNk6D,SAAS,EACTC,MAAO,QACPp5B,GAAI,WAAgB,EACpBu5B,OAxCF,SAAgB3vB,GACd,IAAIyvB,EAAQzvB,EAAKyvB,MACbzyB,EAAWgD,EAAKhD,SAChBrqB,EAAUqtB,EAAKrtB,QACfmuD,EAAkBnuD,EAAQ+rD,OAC1BA,OAA6B,IAApBoC,GAAoCA,EAC7CC,EAAkBpuD,EAAQquD,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CxtC,EAASy7B,GAAUS,EAAMzL,SAAS2K,QAClCqR,EAAgB,GAAGnxC,OAAO4gC,EAAMuQ,cAAcjQ,UAAWN,EAAMuQ,cAAcrR,QAYjF,OAVI+P,GACFsB,EAAcjyD,SAAQ,SAAUsoD,GAC9BA,EAAar/B,iBAAiB,SAAUgG,EAASujC,OAAQ7K,GAC3D,IAGEsL,GACFztC,EAAOyD,iBAAiB,SAAUgG,EAASujC,OAAQ7K,IAG9C,WACDgJ,GACFsB,EAAcjyD,SAAQ,SAAUsoD,GAC9BA,EAAa/+B,oBAAoB,SAAU0F,EAASujC,OAAQ7K,GAC9D,IAGEsL,GACFztC,EAAO+D,oBAAoB,SAAU0F,EAASujC,OAAQ7K,IAG5D,EASEvzD,KAAM,CAAC,G4B7BM,CACb9M,KAAM,gBACNk6D,SAAS,EACTC,MAAO,OACPp5B,GApBF,SAAuB4J,GACrB,IAAIyvB,EAAQzvB,EAAKyvB,MACbp6D,EAAO2qC,EAAK3qC,KAKhBo6D,EAAMsD,cAAc19D,GAAQwiE,GAAe,CACzC9H,UAAWN,EAAMyD,MAAMnD,UACvB94B,QAASw4B,EAAMyD,MAAMvE,OACrBkB,SAAU,WACV1F,UAAWsF,EAAMtF,WAErB,EAQEhoD,KAAM,CAAC,G7B2IM,CACb9M,KAAM,gBACNk6D,SAAS,EACTC,MAAO,cACPp5B,GA9CF,SAAuBwL,GACrB,IAAI6tB,EAAQ7tB,EAAM6tB,MACd98C,EAAUivB,EAAMjvB,QAChBsuD,EAAwBtuD,EAAQ6hD,gBAChCA,OAA4C,IAA1ByM,GAA0CA,EAC5DC,EAAoBvuD,EAAQ8hD,SAC5BA,OAAiC,IAAtByM,GAAsCA,EACjDC,EAAwBxuD,EAAQ+hD,aAChCA,OAAyC,IAA1ByM,GAA0CA,EACzD9L,EAAe,CACjBlL,UAAW8F,GAAiBR,EAAMtF,WAClCmK,UAAWL,GAAaxE,EAAMtF,WAC9BwE,OAAQc,EAAMzL,SAAS2K,OACvB0F,WAAY5E,EAAMyD,MAAMvE,OACxB6F,gBAAiBA,EACjB94B,QAAoC,UAA3B+zB,EAAM98C,QAAQk9C,UAGgB,MAArCJ,EAAMsD,cAAcD,gBACtBrD,EAAMp/B,OAAOs+B,OAAS55D,OAAOq5B,OAAO,CAAA,EAAIqhC,EAAMp/B,OAAOs+B,OAAQwF,GAAYp/D,OAAOq5B,OAAO,CAAA,EAAIinC,EAAc,CACvGd,QAAS9E,EAAMsD,cAAcD,cAC7BlsB,SAAU6oB,EAAM98C,QAAQk9C,SACxB4E,SAAUA,EACVC,aAAcA,OAIe,MAA7BjF,EAAMsD,cAAcjD,QACtBL,EAAMp/B,OAAOy/B,MAAQ/6D,OAAOq5B,OAAO,CAAA,EAAIqhC,EAAMp/B,OAAOy/B,MAAOqE,GAAYp/D,OAAOq5B,OAAO,CAAA,EAAIinC,EAAc,CACrGd,QAAS9E,EAAMsD,cAAcjD,MAC7BlpB,SAAU,WACV6tB,UAAU,EACVC,aAAcA,OAIlBjF,EAAMC,WAAWf,OAAS55D,OAAOq5B,OAAO,GAAIqhC,EAAMC,WAAWf,OAAQ,CACnE,wBAAyBc,EAAMtF,WAEnC,EAQEhoD,KAAM,CAAC,G4B7J6Di/D,GAAal9D,GAAQm9D,GAAMC,GAAiBxR,GX4CnG,CACbz6D,KAAM,OACNk6D,SAAS,EACTC,MAAO,OACPwE,iBAAkB,CAAC,mBACnB59B,GAlCF,SAAc4J,GACZ,IAAIyvB,EAAQzvB,EAAKyvB,MACbp6D,EAAO2qC,EAAK3qC,KACZolE,EAAgBhL,EAAMyD,MAAMnD,UAC5BsE,EAAa5E,EAAMyD,MAAMvE,OACzB4M,EAAmB9L,EAAMsD,cAAcuO,gBACvCC,EAAoBtJ,GAAexI,EAAO,CAC5C+I,eAAgB,cAEdgJ,EAAoBvJ,GAAexI,EAAO,CAC5CiJ,aAAa,IAEX+I,EAA2BnG,GAAeiG,EAAmB9G,GAC7DiH,EAAsBpG,GAAekG,EAAmBnN,EAAYkH,GACpEoG,EAAoBnG,GAAsBiG,GAC1CG,EAAmBpG,GAAsBkG,GAC7CjS,EAAMsD,cAAc19D,GAAQ,CAC1BosE,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBnS,EAAMC,WAAWf,OAAS55D,OAAOq5B,OAAO,GAAIqhC,EAAMC,WAAWf,OAAQ,CACnE,+BAAgCgT,EAChC,sBAAuBC,GAE3B,MajDA,SAAwB9yC,KAChB,IAAE3M,EAAgByL,KAAhBzL,YAEF0/C,EAAiB,CACrB7yC,SAAAH,OAAU1M,EAAYvrB,MAAA,WACtBq4B,UAAAJ,OAAW1M,EAAYvrB,MAAA,WACvBs4B,SAAAL,OAAU1M,EAAYvrB,MAAA,WACtBgqB,QAAS,GACTuO,MAAAN,OAAO1M,EAAYvrB,MAAA,YACnBw4B,MAAAP,OAAO1M,EAAYvrB,MAAA,YACnBy4B,MAAAR,GAAAA,OAAU1M,EAAYvrB,MAAA,qBAGlBkrE,EAAmB,CACvBvyC,WAAAV,OAAY1M,EAAYvrB,MAAA,eACxB44B,YAAAX,OAAa1M,EAAYvrB,MAAA,iBACzB64B,YAAAZ,OAAa1M,EAAYvrB,MAAA,gBACzB84B,WAAAb,OAAY1M,EAAYvrB,MAAA,eACxBysB,WAAAwL,OAAY1M,EAAYvrB,MAAA,eACxB+4B,SAAAd,OAAU1M,EAAYvrB,MAAA,aACtBusB,WAAA0L,OAAY1M,EAAYvrB,MAAA,eACxBg5B,YAAAf,OAAa1M,EAAYvrB,MAAA,gBACzBi5B,UAAAhB,OAAW1M,EAAYvrB,MAAA,cACvBk5B,WAAAjB,OAAY1M,EAAYvrB,MAAA,eACxBygB,WAAAwX,OAAY1M,EAAYvrB,MAAA,eACxBm5B,UAAAlB,OAAW1M,EAAYvrB,MAAA,cACvBo5B,WAAAnB,OAAY1M,EAAYvrB,MAAA,eACxBq5B,YAAApB,OAAa1M,EAAYvrB,MAAA,gBACzBs5B,cAAArB,GAAAA,OAAkB1M,EAAYvrB,MAAA,sBAEzB,MAAA,CACLurB,YAAAA,EACA0/C,eAAAA,EACAC,iBAAAA,EACAt0B,WAAY,CACVxrC,KAAM6/D,EACN/V,OAAQgW,GAGd,CCrCA,SAAwBC,GACtBnrE,EACAmN,EACAgiD,EACAic,GAEA,IAAAC,EAAwBj0C,EAAAA,qBAAhBogB,EAAA6zB,EAAA7zB,KAAM7P,EAAM0jC,EAAN1jC,MACR2jC,EAAwBv0C,EAAAA,MAExB2Q,EAASC,EAAM9gC,OAAS,GAK9B,OAHE1I,OAAOC,UAAUyC,eAAevC,KAAKopC,EAAQ0jC,IAC7CjtE,OAAOC,UAAUyC,eAAevC,KAAKopC,EAAQrnB,GAAU+qD,IAGhD,CACLprE,EACA,SAACgH,GACMwwC,YAAAvf,OAAUmzC,GAAapkE,GAAQ,IAAAywB,IAAAA,EAAA7xB,UAAAvI,OADxBkK,MAAS/J,MAAAi6B,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAATnwB,EAASmwB,EAAA9xB,GAAAA,UAAA8xB,GAEVy3B,SAAAA,EAAAtpD,WAAAmB,EAAAA,CAAAA,GAAAixB,OAAa1wB,GAC1B,IAIJ+jE,EAActrE,MAAQmN,EACf,CACLm+D,EACA,SAACtkE,GACCskE,EAActrE,MAAQgH,EAAA,IAAAukE,IAAAA,EAAA3lE,UAAAvI,OADVkK,MAAS/J,MAAA+tE,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAATjkE,EAASikE,EAAA5lE,GAAAA,UAAA4lE,GAEVrc,SAAAA,EAAAtpD,WAAAmB,EAAAA,CAAAA,GAAAixB,OAAa1wB,GAC1B,GAEJ,CC9BA,SAAwBkkE,KAChB,IAAAC,EAAU30C,MAAI,GACpBgB,UANwC,iCAMJ2zC,GACpCC,EAAAA,WAAU,WACRD,EAAQ1rE,OAAS,CACnB,GACF,okBCPA,SAAwB4rE,GACtB5rE,EACA6rE,EACA1+D,EACAgiD,GAE+B,IAD/BzqB,yDAAW,QAEX2mC,EAAwBj0C,EAAAA,qBAAhBogB,EAAA6zB,EAAA7zB,KAAM7P,EAAM0jC,EAAN1jC,MACR2jC,EAAwBv0C,EAAAA,MAExB2Q,EAASC,EAAM9gC,OAAS,GACxBilE,EACJ3tE,OAAOC,UAAUyC,eAAevC,KAAKopC,EAAQ,eAC7CvpC,OAAOC,UAAUyC,eAAevC,KAAKopC,EAAQ,eACzCqkC,EACJ5tE,OAAOC,UAAUyC,eAAevC,KAAKopC,EAAQhD,IAC7CvmC,OAAOC,UAAUyC,eAAevC,KAAKopC,EAAQrnB,GAAUqkB,IAEzD,OAAIonC,EACK,CACLD,EACA,SAAC7kE,GACCwwC,EAAK,oBAAqBxwC,GAAQ,IAAAywB,IAAAA,EAAA7xB,UAAAvI,OADtBkK,MAAS/J,MAAAi6B,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAATnwB,EAASmwB,EAAA9xB,GAAAA,UAAA8xB,GAEVy3B,SAAAA,EAAAtpD,WAAAmB,EAAAA,CAAAA,GAAAixB,OAAa1wB,GAC1B,GAIAwkE,EACK,CACL/rE,EACA,SAACgH,GACMwwC,YAAAvf,OAAUyM,GAAY19B,GAAQ,IAAAukE,IAAAA,EAAA3lE,UAAAvI,OADvBkK,MAAS/J,MAAA+tE,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAATjkE,EAASikE,EAAA5lE,GAAAA,UAAA4lE,GAEVrc,SAAAA,EAAAtpD,WAAAmB,EAAAA,CAAAA,GAAAixB,OAAa1wB,GAC1B,IAIJ+jE,EAActrE,MAAQmN,EACf,CACLm+D,EACA,SAACtkE,GACCskE,EAActrE,MAAQgH,EAAA,IAAAglE,IAAAA,EAAApmE,UAAAvI,OADVkK,MAAS/J,MAAAwuE,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAT1kE,EAAS0kE,EAAArmE,GAAAA,UAAAqmE,GAEV9c,SAAAA,EAAAtpD,WAAAmB,EAAAA,CAAAA,GAAAixB,OAAa1wB,GAC1B,GAEJ,CChDA,IAAM2kE,OAAal4D,IAEbm4D,YACCl1C,EAAe9d,GACV+yB,QAAAkgC,KAAA,WAAAn0C,OAAgBhB,EAAA,WAAAgB,OAAuB9e,GACjD,EAHIgzD,YAIKl1C,EAAe9d,GAChB,IAAAkzD,aAAAp0C,OAAwBhB,EAAuBgB,WAAAA,OAAA9e,GACjD+yD,GAAO7gE,IAAIghE,KACfH,GAAO70D,IAAIg1D,GACXngC,QAAQkgC,KAAKC,GACf,EATIF,YAUEl1C,EAAe9d,GACX+yB,QAAAnT,MAAA,WAAAd,OAAiBhB,EAAA,YAAAgB,OAAwB9e,GACnD,EAZIgzD,YAaMl1C,EAAe9d,GACjB,IAAAkzD,aAAAp0C,OAAwBhB,EAAwBgB,YAAAA,OAAA9e,GAClD+yD,GAAO7gE,IAAIghE,KACfH,GAAO70D,IAAIg1D,GACXngC,QAAQnT,MAAMszC,GAChB,ECpBWC,GAAe,qDAEfC,GAAkB,UAClBC,GAAoB,yCACpBC,GAAmB,2CACnBC,GAAkB,qBAClBC,GAAe,8EAMtBC,GAAiB,CACrB,UAN0B,wCAO1B,UAAWD,GACX,UAd8B,oFAe9B,OAAQ,6BACR,OAAQ,uBACR,QAAS,4EACT,OAAQ,6BACR,QAAS,sEACT,OAAQ,kCACR,QAAS,8EACT,OAAQ,0BACR,OAAQ,eACR,OAAQ,0BACR,OAAQ,oBACR,OAAQ,iCACR,OAAQ,6BACR,OAAQ,sBACR,QAAS,wCACT,OAAQ,oDACR,OAAQ,mDACR,OAAQ,4CACR,OAAQ,cACR,OAAQ,cACR,OAAQ,qBAqBGE,GAAW,CACtBC,EAAG,EACHC,GAAI,KACJC,GAAI,QACJC,GAAI,YAoBU,SAAAC,KAAiC,IAAlBC,0DACvB5oD,EAAI,IAAInf,KACVigB,EAAyBd,EAAE0C,WAAa,EACpC5B,EAAAA,EAAQ,OAAK4S,OAAI5S,GAAUA,EACnC,IAAMF,YAAUZ,EAAEwC,cAAiB,KAAAkR,OAAA5S,OAAA4S,OAAS1T,EAAE4C,WACxC1K,EAAAwb,GAAAA,OAAU1T,EAAEgD,uBAAchD,EAAEkD,aAAgBwQ,KAAAA,OAAA1T,EAAEoD,cAChD,OAAAwlD,EAAiB,CAAChoD,EAAM1I,GAAMvN,KAAK,KAChCiW,CACT,CASO,SAASioD,GACdC,GAGQ,IAFRC,EAAY1nE,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EACZ2nE,yDAAa,EAEP9uE,EAAO4uE,EACTG,EAAa,EACbC,EAAc,EAClB,IAAKhvE,EAAa,MAAA,GAClB,IAAA,IAASnB,EAAI,EAAGA,EAAImB,EAAKpB,OAAQC,IAAK,CACpC,IAAMkoB,EAAI/mB,EAAKnB,GACTowE,EAAmC,IAA5BC,OAAOnoD,GAAGuU,QAAQ,MAC3Bz8B,EAAgB,EAAZgwE,GAAiBE,EAAaF,EAE5BE,GAAAE,EAAc,EAAoB,EACjCpwE,EAAIA,EAAIiwE,GAAcE,EAAcF,IAErCE,GAAAC,EAAe,EAAqB,EAEhD,CACA,OAAOjvE,EAAKgE,QACV,IAAI8B,cAAA0zB,OAAcu1C,EAAA,aAAAv1C,OAAsBw1C,UACxC,aAEJ,CA4EgB,SAAAG,GAAiBC,EAAgBC,EAAkBC,GACjE,IAAMC,EAAcF,GAAYC,EAChC,IAAKF,EAAe,OAAA,EAEpB,IAAKG,EAAoB,OAAA,EAGzB,IADM,IAAAC,EAAaJ,EAAOt+D,MAAM,KAAK1D,KAAI,SAACkZ,GAAA,OAAMA,EAAEmpD,UACzC5wE,EAAI,EAAGF,EAAM6wE,EAAW5wE,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAM6wE,EAAUF,EAAW3wE,GAC3B,GAAIsvE,GAAeuB,IAAYvB,GAAeuB,GAASzvE,KAAKsvE,GACnD,OAAA,EAGL,GADW,IAAIzpE,OAAO4pE,EAAS,KACxBzvE,KAAKsvE,GACP,OAAA,CAEX,CACO,OAAA,CACT,CAEgB,SAAAI,GAAYC,GAE1B,IAFgE,IAArBR,EAAAjoE,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAiB,GACtD0oE,EAAmB,GAChBhxE,EAAI,EAAGA,EAAI+wE,EAAMhxE,OAAQC,IAC5BswE,GAAiBC,EAAQQ,EAAM/wE,GAAGqF,KAAM0rE,EAAM/wE,GAAGmB,OAC1C6vE,EAAArkE,KAAKokE,EAAM/wE,IAGjB,OAAAgxE,CACT,CClOO,SAASC,GAAmBC,GAC3B,IAAAC,EAAa13C,MAAI,IAiBvB,OAfAwR,EAAAA,MACE,CAACimC,IACD,SAAAplC,EAAAgnB,GAA2B,IDmLKse,ECnL9BF,EAAyBhrD,GAAA4lB,EAAA,GAAnB,GAAA5lB,GAAA4sC,EAAA,GAAa,KACDoe,IACI,iBAAXA,GDiLmBE,EC7KVF,ED8KjB,IAAIz6D,SAAQ,SAACc,GAClB,GAAK65D,EAAL,CAIM,IAAAC,EAAS,IAAIC,WACnBD,EAAOE,cAAcH,GACdC,EAAAG,OAAS,SAACxuC,GAAqC,IAAAyuC,EAC5Cl6D,UAAAk6D,EAAAzuC,EAAMzG,cAANk1C,WAAAA,EAAAA,EAAcztE,QAJxB,MAFEuT,EAAQ,GAQZ,KCxLgC+sC,MAAK,SAACpuB,GAChCi7C,EAAWzuE,MAAQwzB,CACrB,IALEi7C,EAAWzuE,MAAQwuE,EAMvB,GACA,CAAE3c,WAAW,IAGR,CAAE4c,WAAAA,EACX,CCbe,IAAAO,GAAA,CAEbrjD,OAAQ,CACNhpB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,QAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB8nC,MAAO,CACL9lC,KAAM,CAAC9C,OAAQrC,QAGjByxE,eAAgBtmC,QAEhB9P,SAAU8P,QAEVumC,eAAgBvmC,QAEhBwmC,iBAAkB,CAChBxsE,KAAM,CAAC/C,OAAQzB,OAAQX,QAGzB4xE,sBAAuB,CACrBzsE,KAAM,CAAC/C,OAAQzB,OAAQX,QAGzB6xE,kBAAmB,CACjB1sE,KAAM,CAACgmC,QAASxqC,OAAQwC,WAG1B2uE,aAAc,CACZ3sE,KAAM,CAACgmC,QAASxqC,OAAQwC,WAG1B4yD,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,OAGXulD,cAAe,CACb5sE,KAAMxE,QAGRqxE,UAAW7mC,QAEXyiB,QAAS,CACPzoD,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAS,QAAS,YAAa,gBAAgBjnB,SAASinB,EAC3E,GAGFmqC,eAAgB,CACd9sE,KAAM,CAAC/C,OAAQe,WAGjBy4B,QAAS,CACPz2B,KAAMgmC,QACN3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMgmC,QACN3e,aAAS,GAGX0lD,eAAgB/mC,QAEhBM,OAAQ,CACNtmC,KAAM9C,QAGR8vE,eAAgBhvE,SAEhBivE,SAAUjvE,SAEVkvE,iBAAkBlvE,SAElBmvE,gBAAiBnvE,UC7FK,SAAAovE,GACtBhuC,EACAnwB,GAEA,GAAsB,oBAAX+qB,SAEOA,QAAWA,OAAsCqzC,gBAEnE,CAEA,IAAIC,EAAoC,KAElCC,EAAkB,WACjBD,GAAsBluC,EAAU/hC,QACnBiwE,EAAAE,UAAUpuC,EAAU/hC,OACtCiwE,EAAkBG,aACEH,EAAA,OAUpBluC,GAAAwG,EAAAA,MACExG,GACA,SAACvI,GACiB02C,IAChB12C,GAXc,SAACA,IACCy2C,EAAA,IAAID,eAAep+D,IACrBy+D,QAAQ72C,GAShB82C,CAAY92C,EACpB,GACA,CAAEq4B,WAAW,EAAMv0C,MAAO,SAG9B+6B,EAAAA,iBAAgB,WACE63B,GAClB,GA7BgB,CA8BlB,CCpBA,SAASK,KAAoC,IACrCC,EAAkB,GAUxB,OAXuC5qE,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,IAE9BuR,SAAQ,SAACw5B,GACZ/xC,EAAQ+xC,GACH6/B,EAAAvmE,KAAApE,MAAA2qE,EAAA7xE,EAAQgyC,IACNA,EAAMhuC,OAASqjC,WACxBwqC,EAAOvmE,KAAKpE,MAAZ2qE,EAAA7xE,EAAe4xE,GAAY5/B,EAAM5K,YAEjCyqC,EAAOvmE,KAAK0mC,EAEhB,IACO6/B,EAAOvpC,QACZ,SAAC5iB,WAEGA,IACCA,EAAE1hB,OAASq6C,EAAAA,SACT34B,EAAE1hB,OAASqjC,YAAkC,IAAtB3hB,EAAE0hB,SAAS1oC,QAClCgnB,EAAE1hB,OAAS8tE,QAA0C,KAAjCpsD,EAAE0hB,SAAoBmoC,QAAW,GAGhE,CAWA,SAASwC,GAA4BjiB,GACnC,IAAMroB,EAAWhP,EAAAA,qBACXoC,EAAKzC,EAAAA,MAYJ,OAVPqF,EAAAA,WAAU,WACL5C,EAAAx5B,MAAQyuD,EAAOroB,EACpB,IACAulC,EAAAA,WAAU,WACF,IAAAgF,EAAQliB,EAAOroB,GACjB5M,EAAGx5B,QAAU2wE,IACfn3C,EAAGx5B,MAAQ2wE,EAEf,IAEOn3C,CACT,CAGA,IAAMo3C,GAAU30C,EAAAA,gBAAgB,CAC9Bx9B,KAAM,gBACNoI,MAAO,CACLgqE,WAAYlwE,UAEd42C,MAAO,CAAC,UACRrb,eAAMr1B,EAAAA,GAAwB,IAAf2wC,EAAApO,EAAAoO,KAAMxQ,IAAAA,MACbxN,EAAKk3C,IAAW,SAACI,GAGrB,OAFsBA,EAAGjwD,OAAO8mB,MAEXnO,GAAGu3C,kBAC1B,IACMC,EAAcj6C,EAAAA,MAgBpB,OAdAwR,EAAAA,MAAM/O,GAAI,WAAM,IAAAy3C,UACdpqE,EAAAA,EAAMgqE,kBAAa,IAAAI,GAAnBpqE,EAAAA,KAAAA,EAAmB2yB,EAAGx5B,MACxB,IAEA+vE,GAAkBv2C,GAAI,SAAA42B,GAAuC,IAAtB8gB,EAAsB1tD,GAAA4sC,EAAA,GAAtB,GAAb4gB,YACxBA,EAAYhxE,MAAQkxE,CACtB,IAEM3oC,EAAAA,MAAAyoC,GAAa,SAACG,EAASC,GAjDjC,IAAuBC,EAAyBC,IAkDfF,IAlDVC,EAkDCF,KAjDPG,GACVD,GAAUC,IACV,CAAC,QAAS,SAAU,IAAK,KAAel0B,MAAK,SAAC1zB,GAAM,OAAA2nD,EAAM3nD,KAAO4nD,EAAM5nD,EAAE,KAgDxE8tB,EAAK,SAET,IAEO,WAAM,IAAAmF,EAAA40B,EACLxrC,EAAWwqC,GAAkB5zB,QAAlBA,EAAY3V,EAAM,mBAAA2V,SAANA,EAAAr+C,KAAA0oC,IAC7B,OAAIjB,EAAS1oC,OAAS,YAAKk0E,EAAAxrC,EAAS,UAAA,IAAAwrC,OAAA,EAATA,EAAa5uE,QAAS8tE,OACxChzC,EAAAO,yBAAO+H,IAETA,EAAS,GAEpB,IAII+V,GAAU7f,EAAAA,gBAAgB,CAC9Bx9B,KAAM,gBACN84C,MAAO,CAAC,UACRrb,eAAMr1B,EAAAA,GAAwB,IAAf2wC,EAAAknB,EAAAlnB,KAAMxQ,IAAAA,MAMnB,OAJA+oC,GADkBW,IAAW,SAACI,GAAA,OAAOA,EAAGnpC,MAAMnO,GAAGuM,SAAS,OAC7B,WAC3ByR,EAAK,SACP,IAEO,WACL,OAAA/Z,EAAAA,YAAA,MAAA,CAAA/D,MAAA,wDAA0EsN,CAAAA,EAAM,YAEpF,IAIFwqC,GAAev1C,kBAAgB,CAC7Bx9B,KAAM,kBACN0qC,cAAc,EACdtiC,MAAO,CACLga,OAAQ1iB,OACRi7B,QAASuP,QACThd,OAAQ9kB,GAAM8kB,OACdklD,WAAYlwE,UAEd42C,MAAO,CAAC,SAAU,kBAClBrb,eAAMr1B,EAAOmkC,GAAgC,IAA9BwM,IAAAA,KAAMnO,EAAO2B,EAAP3B,MAAOrC,EAAAgE,EAAAhE,MAAOugB,IAAAA,OAC3BkqB,EAAY16C,EAAAA,MACZ26C,EAAe36C,OAAI,GAEzB,SAAS46C,IACPn6B,EAAK,SACP,CAuBA,OArBApb,EAAAA,WAAU,WACRwD,uBAAsB,WACpB8xC,EAAa1xE,MAAQ6G,EAAMuyB,OAC7B,GACF,IAEAmP,EAAAA,OACE,WAAA,OAAM1hC,EAAMuyB,OACZ,IAAA,SAACA,GACKA,IACFs4C,EAAa1xE,MAAQ6G,EAAMuyB,QAE/B,IAGKmuB,EAAA,CACLqqB,eAAiB,WACfF,EAAa1xE,OAAQ,CACvB,IAGK,WAAM,IAAAk5C,EAjJS90B,EAkJdkkB,EAAa,kBAAM/G,GAAU16B,EAAM8kB,OAAQ8lD,EAAUzxE,MAAK,EAChE,OAAAy9B,EAAAO,YAAA4gB,EAAA5Y,SAAAvI,KAAAA,CAAAA,EAAAA,YAAAmzC,GAAA,CAAAlzC,MAGa2L,EACP,MAAAwnC,WAAY,SAACr3C,GACX3yB,EAAMgqE,WAAWr3C,GACjBi4C,EAAUzxE,MAAQw5B,YAEVm4C,IA3JIvtD,EA2JJ80B,EAETlS,EAAM,UA7JO,mBAAA5iB,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,uCA+JfstD,EAAa1xE,OACZy9B,EAAAA,YAAA0N,EAAAA,SAAA,CAAAtS,UAAqByP,IAAc/N,GAAI+N,KAAW,CAAAte,QAAA,WAAA,MAAAyT,CAAAA,EAAAO,YAAA8d,GAAA,CAAA+1B,SAC7BF,EAAAG,eAA4B,WAAA,OAAMt6B,EAAK,iBACvD,GAAA,CAAAxtB,QAAA,WAAA,MAAAgd,CAAAA,EAAMlX,SAAWkX,EAAMlX,UAAQ,IAAA,MAO9C,ukBC/JF,IAAMiiD,GAAkB,gBAClBC,GAAyB,uBAM/B,SAASC,GAAclzC,EAAqBmzC,GAC1C,IAAMj+C,EAAO,GACPk+C,EAAY,CAACH,GAAwBD,IAE3C,OAAKhzC,GACDmzC,GACQC,EAAA73C,QAAQ63C,EAAUzmE,OAO9B,SAAS0mE,EAAQrzC,GACEoB,SAAS0W,qBAAA5e,OAAqBk6C,EAAU,gBAAOpzC,SACvD5nB,SAAQ,SAACqiB,GAChBvF,EAAKhqB,KAAKuvB,GACV,IAAM64C,EAAU74C,EAAGovB,aAAaupB,EAAU,IACtCE,GAAWA,IAAYtzC,GACzBqzC,EAAQC,EAEZ,GACF,CAbAD,CAAQrzC,GAED9K,GAPSA,CAmBlB,CAEA,IAAMq+C,GAAY30E,SA0BlB,IAAA40E,GAAet2C,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACH2rE,gBAAiB,CACf7vE,KAAMgmC,WAGVzM,eAAMr1B,EAAAA,GAAmB,IAAA4rE,EAanB1a,EAEA2a,EACAC,EAhBSprB,EAAAne,EAAAme,OACbqrB,EAA6C7nC,SAAOlkC,GAOpDgsE,EAAArvD,GAN8BooD,GADbgH,EAATx5C,QAAiCw5C,EAAX/G,WAI5BhlE,EAAM6oE,eACN7oE,EAAMipE,gBACN,WACF,GANO12C,EAASy5C,EAAA,GAAAC,EAAUD,EAAA,GAOpBnsC,EAAiBU,KACjB2C,EAAgBjC,KAQhB2pC,EAAY16C,MAAiB,MAC7Bg8C,EAAYh8C,MAAiB,MAC7Bi8C,EAAWj8C,MAAiB,MAC5Bk8C,EAAel8C,MAAsB,MACrCm8C,EAAiBn8C,OAAI,GAErBgI,EAAwB,oBAAZ71B,iBAAYupE,EAAevpE,QAAQiqE,WAAA,IAAAV,GAARA,EAAaW,KAAO,GAAKhuE,KAAKC,MAAMhH,SAAS,IACpFwiB,EAASwW,EAAOA,OAAAi7C,QAAW,GAEjCv6C,EAAAA,QAAQu6C,GAAW,CACjBvzC,GAAAA,EACAs0C,iBAAkBC,IAGd,IAzDevvC,EACjBwvC,EAwDEC,EAAYx7C,GAAe,SACjBy7C,EAAcv7C,KAAtBQ,OACF+P,EAAQjqB,EAAAA,UAAS,WAAM,IAAAk1D,EAAAC,EACrBlrC,EAA0B,UAAlB5hC,EAAMukD,QAAsB,CAAC,EAAG,GAAK,GAAGnzB,OAAay7C,UAAN7sE,EAAM4hC,aAAAirC,IAAAA,EAAAA,EAAS,CAAC,IAAK,MAC3E,MAAA,CACLE,KAAMnrC,EAAM,GACZ0D,KAAYwnC,QAAZA,EAAMlrC,EAAM,UAAAkrC,IAAAA,EAAAA,EAAMlrC,EAAM,GAE5B,IAEM2iB,GAnEernB,EAmEW0tC,EAlE5B8B,EAA0B,GACzB,CACLl8D,aAAyC1U,EAASy1C,GAC3Cz1C,IACFu9B,GAAA6D,EAAI/jC,MAAO2C,EAAMy1C,GACpBm7B,EAAKtpE,MAAK,WACJw2B,GAAAsD,EAAI/jC,MAAO2C,EAAMy1C,EACvB,IACF,EACAy7B,MAAQ,WACNN,EAAKp8D,SAAQ,SAACopB,GAAY,OAAAA,aAAAA,EAAAA,OAC1BgzC,EAAKl2E,OAAS,CAChB,IAsJA,SAASy2E,IACD,IAAExE,EAAiBzoE,EAAjByoE,aAER,GAAKmC,EAAUzxE,OAAU+yE,EAAU/yE,MAC/B,OAAA0D,EAAW4rE,GACNA,EAAamC,EAAUzxE,MAAO+yE,EAAU/yE,OAE7C0C,EAAS4sE,GACJA,OADL,CAGN,CAEA,SAASyE,IACD,IAAE1E,EAAsBxoE,EAAtBwoE,kBAEHoC,EAAUzxE,OAAU+yE,EAAU/yE,QAC/B0D,EAAW2rE,GACb91C,GAASw5C,EAAU/yE,MAAOqvE,EAAkBoC,EAAUzxE,MAAO+yE,EAAU/yE,QAC9D0C,EAAS2sE,IACT91C,GAAAw5C,EAAU/yE,MAAOqvE,GAE9B,CAEA,SAAS2E,IA9Lb,IAA4BzgB,EA+LtB,GAAKyf,EAAShzE,OAAUo5B,EAAQp5B,MAChC,GAAI+3D,EAKF,GAAI0Z,EAAUzxE,MAAMs6D,wBAAyB7B,WACpCV,EAAAc,MAAMzL,SAAS+L,UAAYsY,EAAUzxE,MAC5C+3D,EAAO4R,aACF,CAGE9oD,IAFD,IAAAmjB,EAAOytC,EAAUzxE,MAAMikC,wBACzBpjB,EAAS4wD,EAAUzxE,MAChB6gB,GAAUA,IAAWsf,SAAS0B,MACnChhB,EAASA,EAAOozD,cAEDpzD,IAAWsf,SAAS0B,MAAwB,IAAfmC,EAAKnG,OAA+B,IAAhBmG,EAAKlG,OAK1Dg1C,GAAA,EAAO,CAAE1nB,QAAS8oB,EAAe,CAAEvxE,KAAM,kBAH7Co1D,EAAAc,MAAMzL,SAAS+L,UAAYsY,EAAUzxE,MAC5C+3D,EAAO4R,SAIX,MAIF5R,EAASkS,GAAawH,EAAUzxE,MAAOgzE,EAAShzE,MAAOq9B,GAAA,CACrDk2B,WA1NoBA,EA0NU1sD,EAAM0sD,UAzNnCA,EAAU9wD,QAAQ,eAAgB,UAAUA,QAAQ,mBAAoB,SA0NzEunE,cAAe,WACb3tC,EAAAA,SAAS23C,EACX,GACGntE,EAAM0oE,eAEb,CAEA,SAAS4E,IACK,IAAAC,EAIcC,EAJtBtc,IACFqc,QAAAA,EAAArc,aAAAqc,GAAAA,EAAQhoB,UACC2L,EAAA,MAEPlxD,EAAMooE,yBACRoF,EAAApB,EAAajzE,oBAAbq0E,EAAoBzC,iBAExB,CASA,SAASzlC,EAAKmoC,GACIC,IAChB5B,EAAc71D,YAAW,WACZg2D,GAAA,EAAO,CAAE1nB,QAAS8oB,EAAeI,GAAKjzE,EAAGizE,GACtD,GAAG7rC,EAAMzoC,MAAMmsC,KACjB,CAEA,SAASooC,IACPn3D,aAAas1D,GACbt1D,aAAau1D,EACf,CAEA,SAASuB,EAAeI,GACtB,OAAQA,aAAAA,EAAAA,EAAI3xE,MACL,IAAA,aAEA,IAAA,aACI,MAAA,wBACJ,IAAA,UACI,MAAA,wBACJ,IAAA,WACI,MAAA,uBACJ,IAAA,QACI,MAAA,wBACJ,IAAA,eACA,IAAA,UACI,MAAA,cACJ,IAAA,YACI,MAAA,WAAA,QAEA,MAAA,wBAEb,CAEA,SAAS6xE,EAAoBF,GAAgB,IAAAG,EAAAC,EAE3C,aAAAD,EAAIzB,EAAShzE,aAAA,IAAAy0E,GAATA,EAAgBzzC,SAASszC,EAAGz6C,iBAKhC66C,EAAIjD,EAAUzxE,aAAA,IAAA00E,GAAVA,EAAiB1zC,SAASszC,EAAGz6C,SAAjC,CAKM,IAAA86C,EAAgB1C,GAAclzC,GAAIm4B,MAAK,SAAC19B,GAAA,OAAOA,EAAGwH,SAASszC,EAAGz6C,WAElE86C,GACA1C,GAAc0C,EAAc/rB,aAAaopB,KAAyB,GAAM50B,MAAK,SAAC5jB,GAAA,OAAOA,IAAOw5C,EAAShzE,KAAK,KAK5GmsC,EAAKmoC,EAXL,CAYF,CAEA,SAAShB,EAAagB,IACpBpB,EAAelzE,OAAQ,EACD,UAAlB6G,EAAMukD,SAAuBqmB,EAAUzxE,MAAMghC,SAASszC,EAAGz6C,WAEpCo4C,GAAclzC,GAAIqe,MAAK,SAAC5jB,GACzC,IAAAwK,EAAOxK,EAAGyK,wBAEhB,OAAOqwC,EAAGjuD,EAAI2d,EAAK3d,GAAKiuD,EAAGjuD,EAAI2d,EAAK3d,EAAI2d,EAAKnG,OAASy2C,EAAG7vD,EAAIuf,EAAKvf,GAAK6vD,EAAG7vD,EAAIuf,EAAKvf,EAAIuf,EAAKlG,MAC9F,MAEEqO,EAAKmoC,GACLzzD,SAAAA,EAAQwyD,iBAAiBiB,IAE7B,CAEA,SAAS1e,IACPsd,EAAelzE,OAAQ,EACnBo5B,EAAQp5B,OAA2B,UAAlB6G,EAAMukD,SACTmpB,GAEpB,CAEA,SAAS5E,EAAetuE,GAAe,IAAAuzE,EAC/B,QAAN/tE,EAAAA,EAAM8oE,sBAAA,IAAAiF,GAAN/tE,EAAAA,KAAAA,EAAuB,CAAExF,EAAAA,GAC3B,CA3PAknC,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAMukD,QAASqmB,EAAUzxE,MAAK,IACrC,WACOyxE,EAAUzxE,QACforD,EAAQyoB,QAEAzoB,EAAA/zC,IAEJ,CACE6/B,MAAO,aACP8U,MAAO,UACP,eAAgB,cAChBpoB,MAAO,SAET/8B,EAAMukD,UACR,SAACkpB,GACKztE,EAAMgyB,WAEM,gBAAZy7C,EAAG3xE,MACL2xE,EAAGO,iBAGY,UAAZP,EAAG3xE,MAAgC,gBAAZ2xE,EAAG3xE,OAA2By2B,EAAQp5B,MA6I1E,SAAcs0E,GACIC,IAChB7B,EAAc51D,YAAW,WACvBg2D,GAAW,EAAM,CAAE1nB,QAAS8oB,EAAeI,IAC7C,GAAG7rC,EAAMzoC,MAAM4zE,KACjB,CA7IQA,CAAKU,GAJHnoC,EAAKmoC,GAKT,IAGMlpB,EAAA/zC,IAEJ,CACE6/B,MAAO,aACP8U,MAAO,YAETnlD,EAAMukD,SACRjf,GAEJ,IAGF5D,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAMyoE,aAAczoE,EAAMwoE,kBAAmB0D,EAAU/yE,MAAK,IACnE,WAC0B+zE,IACXC,GACf,IAGFzrC,EAAAA,OACE,WAAA,OAAM1hC,EAAM0sD,SAAA,IACZ,WACgB4gB,IACDH,GACf,IAGFzrC,EAAAA,OACE,WAAA,OAAMnP,EAAQp5B,KACd,IAAA,SAACo5B,GACC,GAAIA,EAUF,OATG8G,GAAAC,SAAU,YAAaq0C,GAAqB,QACzB,UAAlB3tE,EAAMukD,S7MlJb,SACL/qB,EACAC,EACAC,EACAxkB,GAEA,IAAM+4D,EAAYpxE,EAAW68B,GAAWA,EAAUA,EAAQw0C,YACpDnjE,EAAW,SAACojE,GAChBF,EAAUE,GACNv0C,GAAAJ,EAASC,EAAO1uB,EAAUmK,IAG7BmkB,GAAAG,EAASC,EAAO1uB,EAAUmK,EAC/B,C6MsIYmyC,CAAKujB,EAAUzxE,MAAO,WAAW,SAACs0E,GAAsB,IAAAW,EAChDC,EAA0B,oBAAZhsE,SAAmC,UAARA,QAAQiqE,WAAR8B,IAAQA,GAARA,EAAa7B,KAAO,KAAO,SACtEkB,EAAGY,OAASA,GACd/oC,EAAKmoC,EAET,KAIA7zC,GAAAN,SAAU,YAAaq0C,GAAqB,EAClD,IAGFxjC,EAAAA,aAAY,WACImjC,IACEI,IACZ9zC,GAAAN,SAAU,YAAaq0C,GAAqB,EAClD,IAEOjtB,EAAA,CACLoiB,OAAQqK,EACRmB,WAAY,WAAZ,OAAkBpC,EAAU/yE,KAAA,EAC5Bo1E,gBAAiB,iBAAO,CACtBl+B,MAAOg8B,EAAelzE,MACxB,EAEA20C,MAAO,WAAP,OAAaxI,GAAK,IAkKd,IAAAkpC,EAAkBh+C,EAAOA,OAAA,uBAAmB,GAElD,SAASi+C,EAAej0E,GAAe,IAAAk0E,EACrCC,EAAkDn0E,EAAEw4B,OAA5C+I,EAAA4yC,EAAA5yC,UAAWm6B,EAAcyY,EAAdzY,aAAcsD,EAAAmV,EAAAnV,aAG3BoV,EAAyB55D,IAAS,SAACxa,GAAMwF,IAAAA,EAAAA,OAAyB,QAAzBA,EAAAA,EAAMgpE,wBAAmB,IAAA6F,OAAA,EAAzB7uE,EAAAA,KAAAA,EAAyB,CAAExF,EAAAA,GAAG,GAAG,KAG5E07D,EAAe71D,KAAKoa,MAAMshB,KAAey9B,GAE3CoV,EAAuBp0E,GAEnB,QAANwF,EAAAA,EAAM+oE,gBAAA,IAAA2F,GAAN1uE,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,GACrB,CAUA,OATAknC,EAAAA,OACE,WAAA,MAAM,CAACnP,EAAQp5B,MAAO+yE,EAAU/yE,MAAK,IACrC,WACMo5B,EAAQp5B,OAAS+yE,EAAU/yE,OAASq1E,IACtCA,SAAAA,EAAkBtC,EAAU/yE,OAEhC,IAGK,WACC,IAAA8vB,EAAU4W,EAAe,WACzBivC,EAAY9uE,EAAMqoE,gBAAkB,CAAC,QAAI,EAAW,MAAM7wD,SAASyR,GAEnE8lD,EACJx8C,EAAQp5B,QAAU6G,EAAMooE,eAAA4G,EAAAC,eAAAr4C,cAAA2N,MAAAA,EAAA2qC,WAAAj2E,EAAAA,EAGjBiyE,GAAAA,GAAkBhzC,GAClBizC,GAAyBnxD,aAAAA,EAAAA,EAAQke,IAAA,CAAArB,MAE7B,CAAC81C,EAAUxzE,MAAO6G,EAAMsoE,kBAC/Bp4C,IAAK,SAACA,GAAAA,OAAsBi8C,EAAShzE,MAAQ+2B,CAAAA,EAAAA,MACtC,CAAC,CAAEkS,OAAQpiC,EAAMoiC,QAAU6qC,IAAmB6B,GAAa,CAAEK,WAAY,mBAEvErG,eACK/Z,EAAAC,aACAyd,IAEd,CAAA71C,EAAAO,YAAA,MAAA,CAAAN,MACS,CAAA,GAAAzF,OACFu7C,EAAUxzE,MAAA,aAAAF,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEPu7C,EAAUxzE,MAAyBif,mBAAAA,GAASpY,EAAMipB,UAAOmI,GAAAA,OACzDu7C,EAAUxzE,MAA0B6G,oBAAAA,EAAM2oE,WAC7CiE,EAAUzzE,MAAM64B,SAAWhyB,EAAMgyB,UAEpChyB,EAAMuoE,uBACRr4C,IACKg8C,EAAAnD,SACK0F,GAAA,CAETxlD,EACAjpB,EAAM2oE,WAAa/xC,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAeu7C,EAAUxzE,MAAgB,YAAA,YAAAi2E,QAnBvD78C,EAAQp5B,SAsBhB,KAEN,OAAAy9B,EAAAA,YAAA+zC,GAAA,CAAAz6C,IAES,SAACA,UAAck8C,EAAajzE,MAAQ+2B,CACzC,EAAA85C,WAAY,SAAC95C,GAAS,OAAA06C,EAAUzxE,MAAQ+2B,CAAAA,EAAAA,iBACtB,WAChB,GAAIqC,EAAQp5B,MAAO,CACJg0E,IAEP,IAAA/pC,EAAQntB,YAAW,WAECi3D,IACxB32D,aAAa6sB,KACZ,GACL,CACF,EAAA4nC,SACU,WACJz4C,EAAQp5B,OACGg0E,aAGR56C,EAAQp5B,MACjB2rB,OAAQ9kB,EAAM8kB,QAEb,CACCmE,QAAS,6DAEI0jD,EAAUxzE,MAAmB6G,eAAAA,OAAAA,EAAM2rE,gBAAkB,UAAY,sBAEjEwB,eACKG,GAzcZ,mBAAA/vD,EA2cDwxD,IA3cCx8B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA2cDwxD,6BAAAA,MA3cC,IAAAxxD,CAqcH,EASH4F,QAAS,WAAA,OAAM+f,EAAc,UAAW,iBAAgB,IAKlE,ICneWmsC,GAAQ1oC,GAAY+kC,ICAjC4D,GAAel6C,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACbovC,EAAsCp/C,GAAU,UAAxCO,EAAA6+C,EAAA7+C,aAAchM,EAAY6qD,EAAZ7qD,YACd8qD,EAAiBpjB,GAAc,CAAEojB,aAAcC,KAA/CD,aACFxkC,EAAiB7Z,GAAe,UAKhCu+C,EAAa,WAEX,IhFNavtC,EACjBwtC,EACAC,EgFII3yD,EAAIqc,SAASuD,cAAc,KAC/B5f,EAAAkqB,KAAA/V,IAAAA,OAAWpxB,EAAMk4B,IhFPAiK,EgFQVllB,EAAEkqB,KhFPTwoC,EAAMr2C,SAASuD,cAAc,OAC7B+yC,EAAO,IAAI9rB,GAAU6rB,EAAK,CAC9BxtC,KAAO,WACE,OAAAA,CACT,IAEFwtC,EAAI5yC,QACJ6yC,EAAKrqB,UACLoqB,EAAIh0D,SgFAAk0D,GAAQjqD,QAAQ8K,EAAav3B,MAAMs0B,gBAAiB,MAEtD,OAAO,WACC,IAAWyR,EAAaiB,EAAA,QACjBmS,EAAYtyC,EAAjB1F,IAAU49B,EAAOl4B,EAAPk4B,GACZkC,EAAY,CAAAhJ,GAAAA,OAAI4Z,EAAe7xC,MAAe,aAC9C22E,EAAA1+C,GAAAA,OAAmB1M,EAAYvrB,MAAA,SACrC,OAAAy9B,EAAAA,YAAA0b,EAAA,CAAApa,GACWA,EAAArB,MAAWuD,GAAA,CAAAjX,QAAA,WAAA,MACjB+b,CAAAA,GAAYA,EAAS,MAAItI,EAAAA,YAAAy4C,GAAA,CAAApmD,QACVyH,EAAav3B,MAAMu0B,4CAA2CoiD,uDACrDJ,GAAA,MAAA,IAAA,IAKjC,IC5BWK,GAASppC,GAAY6hB,IACrBwnB,GAAarpC,GAAYgkB,IACzBslB,GAAetpC,GAAY2oC,ICNzBY,GAAA,CAEbhiC,SAAU,CACRpyC,KAAM,CAAC/C,OAAQe,WAGjBq2E,mBAAoB,CAClBr0E,KAAM9C,OACNmqB,aAAS,GAGXitD,oBAAqB,CACnBt0E,KAAM9C,OACNmqB,aAAS,GAGXktD,aAAc,CACZv0E,KAAM/C,OACNoqB,aAAS,GAGXmtD,SAAU,CACRx0E,KAAM9C,OACNmqB,aAAS,GAGXjO,QAAS,CACPpZ,KAAMnF,OAGR++C,UAAW,CACT55C,KAAM,CAAC/C,OAAQe,WAGjBq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAASjnB,SAASinB,EAC5B,ICxCW8xC,GAAA,CAEbtnD,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,SAAUxC,SAG3B6rB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU8P,QAEVqF,KAAM,CACJrrC,KAAM/C,OACNoqB,QAAS,IAGXgC,KAAM,CACJrpB,KAAMhC,UAGR02E,SAAU,CACR10E,KAAM/C,OACNoqB,aAAS,GAGXvnB,QAASkmC,QAET2uC,OAAQ,CACN30E,KAAMxE,QAGR07B,OAAQ,CACNl3B,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAS,UAAW,QAAQjnB,SAASinB,EACzD,GAGF/K,GAAI,CACF53B,KAAM,CAAC/C,OAAQzB,SAGjBiwC,QAASztC,UC7CI42E,GAAA,CAEb9uC,MAAO,CACL9lC,KAAM9C,QAGRovE,eAAgB,CACdtsE,KAAMgmC,QACN3e,SAAS,GAGX+V,SAAU,CACRp9B,KAAM9C,QAGR0zD,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,OAGXwlD,UAAW,CACT7sE,KAAMgmC,QACN3e,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAAU,UAAW,SAASjnB,SAASinB,EAClF,ukBC7BJ,IAAAkyC,GAAev7C,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAOw2B,GAAAA,MACF2xC,IACAnoE,IAELq1B,eAAMr1B,EAAOonD,GACL,IAAAhkB,EAAQlT,MAAI,MACZ0gD,EAAW1gD,MAAI,MAErB67C,EAAgC7nC,SAAOlkC,GAOvCgsE,EAAArvD,GANwCooD,GADhCgH,EAAAx5C,QAAoBw5C,EAAX/G,WAIfhlE,EAAM6oE,eACN7oE,EAAMipE,gBACN,WACF,GANO4H,EAAc7E,EAAA,GAAA8E,EAAe9E,EAAA,GAO9B/B,EAAK15C,EAAAA,qBACLwgD,EAAsB7gD,EAAAA,IAAIlwB,EAAMuyB,SAAWvyB,EAAM6oE,gBACjDnkD,EAAcyM,KACd0O,EAAiBU,KACjB2C,EAAgBjC,KAChB+vC,EC/Bc,WAChB,IAAAxxD,EAAI0Q,MAAI,GACRtS,EAAIsS,MAAI,GAER+gD,EAAc,SAACz2E,GACnBglB,EAAErmB,MAAQqB,EAAE02E,QACZtzD,EAAEzkB,MAAQqB,EAAE22E,SAWP,OARF/3C,KACH7D,EAAAA,WAAU,WACRO,OAAOyD,iBAAiB,YAAa03C,EAAa,CAAEhZ,SAAS,GAC/D,IACA9tB,EAAAA,aAAY,WACHrU,OAAA+D,oBAAoB,YAAao3C,EAC1C,KAEK,CACLzxD,EAAAA,EACA5B,EAAAA,EAEJ,CDUkBwzD,GAAN5xD,EAAEwxD,EAAFxxD,EACF6xD,EAAUnhD,EAAAA,IAAI1Q,EAAErmB,OAEtBo8B,EAAAA,WAAU,WACJv1B,EAAMk5B,UAAY63C,EAAoB53E,QAClCiqC,EAAAjqC,MAAQ8c,YAAW,WACP66D,GAAA,EAAO,CAAA,GACvBv6D,aAAa6sB,EAAMjqC,OACnBiqC,EAAMjqC,MAAQ,IAChB,GAAG6G,EAAMk5B,UAEb,IAEM,IAAAo4C,EAAqB,SAAC7yC,EAAc2oB,GAEpChkB,EAAMjqC,OAA0B,cAAjBiuD,aAAAA,EAAAA,EAAK7C,WACpB9lB,IACF4yC,EAAQl4E,MAAQqmB,EAAErmB,OAEpB23E,EAAgBryC,EAAK2oB,KAGjBmqB,EAA0B55D,EAAAA,UAAS,WAChC,MAAA,CAAAyZ,GAAAA,OACF1M,EAAYvrB,MAAAF,YAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACT1M,EAAYvrB,2BAAkB6G,EAAMmuB,OAAUnuB,EAAMmuB,OAC1DnuB,EAAMsoE,iBAEV,IAEMH,EAAaxwD,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GACtB,CAAA,GAAAyzC,aAAAA,EAAAA,EAAInpC,MAAM9gC,QAAS,CAAA,GAAC,GAAA,CACxB0sD,UAA+B,UAApB1sD,EAAM0sD,UAAwB,cAAgB1sD,EAAM0sD,UAC/Dic,UAA+B,UAApB3oE,EAAM0sD,WAAgC1sD,EAAM2oE,UACvDL,iBAAkBiJ,EAAwBp4E,MAC1C8vE,gBAAiBqI,EACjBt/C,SAAUhyB,EAAMgyB,UAAA,IAGZw2C,EAAoB7wD,EAAAA,UAAS,WACjC,GAAwB,UAApB3X,EAAM0sD,WAA2C,IAAlB2kB,EAAQl4E,MACzC,OAAO6G,EAAMwoE,kBAET,IAAAgJ,EAAc,SAAC5G,GAA4B,MAAA,CAC/CnqE,+BAAyB4wE,EAAQl4E,MAAQyxE,EAAUxtC,wBAAwBG,KAAA,SAE7E,OAAIv9B,EAAMwoE,kBACD,SAACoC,EAAwB6G,GAA0B,OAAAj7C,GAAAA,GACrDg7C,CAAAA,EAAAA,EAAY5G,IACX/tE,EAAWmD,EAAMwoE,mBACjBxoE,EAAMwoE,kBAAkBoC,EAAW6G,GACnCzxE,EAAMwoE,oBAGPgJ,CACT,IAEA9vC,EAAAA,OACE,WAAA,OAAMqvC,EAAoB53E,KAAA,IAC1B,WACMiqC,EAAMjqC,QAAU43E,EAAoB53E,QACtCod,aAAa6sB,EAAMjqC,OACnBiqC,EAAMjqC,MAAQ,KAElB,IAaF,OAHAiuD,EAAI1G,OAAO,CACTysB,aARoB,WAAM,IAAAuE,EAAAC,UAC1BD,EAAAd,EAASz3E,8BAATu4E,EAAgB5O,cAAS,IAAA6O,GAAzBA,EAAAl6E,KAAAi6E,MASK,WACC,IAAAzoD,EAAU4W,EAAe,WAC/B,OAAK5W,GAAYjpB,EAAMipB,QAGvB2N,EAAAO,YAAAk4C,GAAA9qC,EAAAA,WAEQrqB,GAAKiuD,EAAWhvE,MAAO,CAAC,UAAW,YACvC,CAAA+2B,IAAK0gD,oBACcpI,EAAkBrvE,cAC5B03E,EAAa13E,mCAKrB+pC,EAAc,UAAW,oBAHxBja,QAAS,kBAAMA,CAAA,IATZia,EAAc,UAAW,kBAgBtC,IEzHW0uC,GAAUjrC,GAAYgqC,ukBCInC,IAAMkB,GAA2C,CAC/Cn8B,UAAW,GACXvnB,MAAO,QACPkiD,kBAAc,GAGhByB,GAAe18C,kBAAgB,CAC7Bx9B,KAAM,kBACN0qC,cAAc,EACdtiC,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACH+xE,eAAgBjwC,UAElBzM,eAAMr1B,EAAAA,GAAkB,IAATwiC,EAAAD,EAAAC,MACPU,EAAgBjC,KAChBpB,EAAiBU,KAEjByxC,EAAiB9hD,EAAAA,MACjB+hD,EAAmBzhD,EAAAA,OAAO,cAAeqhD,IACzCK,EAAiBhiD,EAAAA,IAAI+hD,aAAAA,EAAAA,EAAkB9jD,OACvCgkD,EAAWjiD,OAAI,GACf8a,EAAiB7Z,GAAe,oBAChCihD,EAAiBjhD,GAAe,yBAChCkhD,EAAelhD,GAAe,eAC9Byf,EAAYzf,GAAe,QAC3BmhD,EAAiBnhD,GAAe,qBAChCohD,EAAgBphD,GAAe,6BAC/BqhD,EAAe76D,EAAAA,UAAS,WAC5B,IAAM04D,EAAe4B,aAAAA,EAAAA,EAAkB5B,aACjCoC,EAAkBzyE,EAAMwwE,UAAYH,GAAgB,MACnD,MAAA,CAAEG,SAAU,GAAAp/C,OAAGqhD,EAAY,MACpC,IACQC,EAAUniD,EAAAA,qBAAVmiD,MAERn9C,EAAAA,WAAU,WACJy8C,EAAe74E,QACRg5E,EAAAh5E,MAAQijC,GAAe41C,EAAe74E,OAEnD,IACAw5E,EAAAA,gBAAe,WACTX,EAAe74E,QACRg5E,EAAAh5E,MAAQijC,GAAe41C,EAAe74E,OAEnD,IAEA,IAUMy5E,EAAY,SAACp4E,GAVC,IACZi2E,EAUDzwE,EAAMgyB,WACTx3B,EAAEwzE,iBACmB,WAAjBhuE,EAAMgzB,OACRhzB,EAAMmnC,KAAOrR,OAAO+8C,KAAK7yE,EAAMmnC,MAAQrR,OAAO+8C,KAAK7yE,EAAM0zB,KAbvD+8C,EAASzwE,EAAMywE,QAAUiC,EAAMI,QAEjC9yE,EAAM0zB,IAAM+8C,EACdzwE,EAAMpE,QAAU60E,EAAO70E,QAAQoE,EAAM0zB,IAAM+8C,EAAOrtE,KAAKpD,EAAM0zB,IAEtDoC,OAAAi9C,SAAS5rC,KAAOnnC,EAAMmnC,QAejC,OAAO,WACL,IAAM6rC,EAAY,CAAChoC,EAAe7xC,MAAO+4E,EAAe/4E,OAClD85E,EAAY,CAACV,EAAcp5E,OAE7B6G,EAAMgyB,UACEihD,EAAA7vE,KAAKivE,EAAal5E,OAG9B,IAlFkCokB,EAkF5B21D,EAAY,CAChB3rC,QAAS,SAAC/sC,GACJwF,EAAMgyB,UACRx3B,EAAE24E,iBAGN,GAGIlqD,EAAUia,EAAc,UAAW,WACnCkwC,EAAAx8C,EAAAO,YAAA,OAAA,CACQN,MAAOy7C,EAAen5E,MAAO05B,MAAO2/C,EAAar5E,OAAM,CAChE0mC,EAAe,QAAMjJ,EAAAA,YAAA,OAAA,CAAA1G,IACX8hD,EAAAn7C,MAAA,GAAAzF,OAA0BkhD,EAAen5E,MACjD,UAAA,CAAA8vB,MAIHoqD,EAAAz8C,EAAAA,YAAA,OAAAJ,GAAA,CAA0BK,MAAOo8C,GAAcC,GAAcE,CAAAA,IAc/D,OAZGpzE,EAAMmnC,OAAQnnC,EAAM0zB,IAAQ1zB,EAAMgyB,WAC3BihD,EAAA7vE,KAAKwtC,EAAUz3C,OACzBk6E,EAAAz8C,EAAAA,YAAA,IAAA2N,aAAA,CAAA1N,MACYo8C,EAAA9rC,KAAiBnnC,EAAMmnC,KAAAnU,OAAchzB,EAAMgzB,QAAYkgD,EAAA,CAAA3rC,QAAoBqrC,IAAA,CAClFQ,KAIHpzE,SAAAA,EAAO+xE,iBACTsB,EAAAz8C,EAAAO,YAAA,MAAA,CAAAtE,MAAA,iBAAA,CAA0C5J,KAG1C2N,EAAAO,kBAAAoN,aAAA,CAAA1N,MAAYm8C,GAAexwC,YAAiBxiC,EAAMgyB,UAAYhyB,EAAMunC,UAAA,CACjE4qC,EAASh5E,gCAA0B,WAAA,OAAM8vB,CAAA,IAnHZ1L,EAmHsB81D,EAnHtB,mBAAA91D,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAmHsB81D,EAAY,CAAAlwD,QAAA,WAAA,MAAA,CAAZkwD,EAAY,KAAaA,EAAAz8C,EAAAO,YAAA,OAAA,CAAAN,MAEpEu7C,EAAej5E,YACf,CACLm6E,aAAcnB,EAASh5E,MAAQ,WAAa,SAG7C84E,CAAAA,EAAiBv8B,cAK5B,ukBC/HF,SAAS69B,GAAuB90C,GACvB,OAAQ,IAARA,QAAqB,IAARA,CACtB,okBCEa,ICCb+0C,GAAep+C,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAA+rE,EAAgC7nC,SAAOlkC,GAA/BmuB,EAAA49C,EAAA59C,MAAOkiD,EAAatE,EAAbsE,aACTrlC,EAAiB7Z,GAAe,cAChC0O,EAAiBU,KACvBitB,EAA2CpB,GAAc,CACvDqnB,iBAAkBC,GAClBC,aAAcC,KAFRH,EAAAjmB,EAAAimB,iBAAkBE,EAAanmB,EAAbmmB,aAKpBj+B,EADmB7V,EAAe,cACFjJ,EAAAA,YAAA68C,EAAkB,KAAA,MAWxD,OATAviD,EAAAA,QACE,cACA4T,WAAS,CACP4Q,UAAAA,EACAvnB,MAAAA,EACAkiD,aAAAA,KAIG,WACL,IAAAwD,EDzB8B,SAAC7zE,GACnC,IAAM8zE,EAAyBn+B,KAoDxB,MAAA,CACLo+B,kBAnDwBp8D,EAAAA,UAAS,WAAM,IAAAq8D,EACjCC,EAA6C,GAC/CC,EAAe,UAGfF,EAAAh0E,EAAMkV,eAAN8+D,OAAAA,EAAex9E,QACXwJ,EAAAkV,QAAQ5E,SAAQ,SAAC6jE,GACrBF,EAAgB7wE,KAAKozB,GAAAA,MAChB29C,GAAA,GAAA,CACHl5E,MAAOi5E,MAEX,IAII,IAAAE,EAAaN,EAAuB,mBAgCnC,OA/BH/7E,EAAQq8E,IACCA,EAAA9jE,SAAQ,SAACw5B,GACZ,IAAAuqC,EAAgB,SAACC,EAAkBz2C,GAAqB,IAAA02C,EAC5D,GAAIzqC,SAAAA,EAAO5K,SAAU,CAAA,IAAAs1C,EACbt1C,EAAW4K,EAAM5K,SACjBu1C,EAAmCD,QAAnCA,EAAct1C,EAASo1C,cAAYE,SAArBA,EAAA/8E,KAAAynC,GACpB,GAAIu1C,EACF,MAAiB,YAAbH,GAA0Bv8E,EAAQ08E,IAEhBA,EACjBr0C,QAAO,SAACnB,UAASJ,EAAQA,QAAAI,IAAS7mB,GAAS6mB,aAAA,EAAAA,EAAMC,SAAS,IAC1Dl6B,KAAI,SAACi6B,GAAA,OAAUA,aAAAA,EAAAA,EAAcC,QAAQ,IACrC72B,KAAK,KAGHosE,CAEX,CAEA,OAAqBF,QAArBA,EAAOzqC,EAAM9pC,aAANu0E,IAAcA,OAAdA,EAAAA,EAAc12C,IAGvBo2C,EAAgB7wE,KAAKozB,GAAAA,GAAA,CAAA,EAChBsT,EAAM9pC,OAAA,GAAA,CACTipB,QAASorD,EAAc,UAAW,WAClClvD,KAAM,WAAA,OAAMkvD,EAAc,OAAQ,OAAM,EACxCp5E,MAAOi5E,MAEX,IAGKD,CACT,IAKF,CC/BoCS,CAAqB10E,GAA3C+zE,EAAAF,EAAAE,kBAGFY,EAAgBZ,EAAkB56E,MAAMzB,MAC5CsI,EAAMowE,oBACN2D,EAAkB56E,MAAM3C,OAASwJ,EAAMmwE,oBASnCyE,EAPe/0C,EAAe,WAAY,CAC9CR,OAAQ,CACNkZ,MAAOo8B,EACPj/B,UAAAA,MAIoC9e,EAAAA,YAAA+8C,EAAc,KAAA,MAEtDkB,EFzCqB,SACzB70E,EACA80E,EACAF,GAEA,IAAA7I,EAA8D7nC,SAAOlkC,GAA7DswE,EAAUvE,EAAVuE,SAAUF,EAAArE,EAAAqE,oBAAqBD,EAAmBpE,EAAnBoE,mBAGjC4E,EAAqBp9D,EAAAA,UAAS,WAAM,IAAAq9D,EAClCz8B,EAAQu8B,EAAmB37E,MAC3B87E,EAAoC,QAApCD,EAAkB1E,EAASn3E,aAAS,IAAA67E,EAAAA,EAAA,EACpCE,EAAa38B,EAAM/hD,OACnB2+E,EAAmB/E,EAAoBj3E,MAAQg3E,EAAmBh3E,MAItE,OAAA87E,EAAkB,IACjB1B,GAAuBnD,EAAoBj3E,QAAUo6E,GAAuBpD,EAAmBh3E,SAE5FmsE,GAAM,aAAc,4KACjB,KAOL2P,GAAmB,GAAKC,GAAcD,GAAmBE,GAAoBD,EAKnF,IAGME,EAAkBz9D,EAAAA,UAAS,WAC/B,IAAM4gC,EAAQu8B,EAAmB37E,MAGjC,IAFqB47E,EAAmB57E,MAG/B,OAAAo/C,EAGT,IAAM28B,EAAa38B,EAAM/hD,OACnB6+E,EAAc98B,EAAM7gD,MAAM,EAAG04E,EAAoBj3E,OACjDm8E,EAAa/8B,EAAM7gD,MAAMw9E,EAAa/E,EAAmBh3E,MAAO+7E,GAE/D,MAAA,GAAA9jD,OAAAt5B,EACFu9E,GACH,CAAA,CACEpsD,QAAS2rD,EACT5iD,UAAU,EACV+/C,gBAAgB,IAClBj6E,EACGw9E,GAEP,IAGMC,EAAmB59D,EAAAA,UAAS,WAChC,IAAM4gC,EAAQu8B,EAAmB37E,MAC7B,IAAC47E,EAAmB57E,MACtB,MAAO,GAEH,IAAAq8E,EAAaj9B,EAAM7gD,MAAM04E,EAAoBj3E,MAAOo/C,EAAM/hD,OAAS25E,EAAmBh3E,OAC5F,OAAOq8E,EAAWxwE,KAAI,SAACi6B,EAAMhkC,GAAW,OAAAu7B,GAAAA,GAAA,CAAA,EACnCyI,GAAA,CAAA,EAAA,CACHw2C,OAAQx6E,IAAUu6E,EAAWh/E,OAAS,GAAA,GAE1C,IAEO,MAAA,CACL4+E,gBAAAA,EACAG,iBAAAA,EAEJ,CElCkCG,CAAY11E,EAAO+zE,EAAmBa,GAE5D3rD,EAFkB4rD,EAAhBO,gBACsBj8E,MACR6L,KAAI,SAACi6B,EAA6BhkC,GACtD,MAAoB,WAAhB5C,EAAO4mC,IAAqB,YAAaA,EAC3CrI,EAAAO,YAAAw+C,GAAApxC,aAAA,CAAA/rC,IACuByC,GAAWgkC,GAC7B,CAAA9b,QAAA,WAAA,MAAA8b,CAAAA,EAAKhW,YAILgW,CACT,IAEA,OAAArI,EAAAA,YAAA,MAAA,CAAAC,MAAmBmU,EAAe7xC,OAAA,CAAQ8vB,IAE9C,ICtDW2sD,GAAajvC,GAAY6sC,IACzBmC,GAAiBhvC,GAAYmrC,ICH3B+D,GAAA,CAEbzjD,OAAQ0P,QAER7Y,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGX6O,SAAU8P,QAEVg0C,QAASh0C,QAETwO,WAAY,CACVx0C,KAAMhC,UAGRq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ1B,SAGzBiwC,QAASztC,6kBC9BX,IAAAi8E,GAAe3gD,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAOw2B,GAAAA,MACFq/C,IAAA,CAAA,EAAA,CACHG,eAAgB,CACdl6E,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,KAEX8yD,eAAgB,CACdn6E,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,IAEX+yD,UAAWp0C,UAEbzM,MAAAA,SAAMr1B,GACJ,IAAM6/B,EAAiBU,KACjB2C,EAAgBjC,KAEhBk1C,EAAUjmD,EAAAA,MAENyX,GAAA3nC,EAAMk2E,UAAY,KAAOC,GAC7B,IAAA7lC,EAAazQ,EAAe,cAC5Bu2C,EAAoBjlD,GAAe,kBACnCklD,EAAkB,SAAC77E,GAAkB,IAAAoyC,EACrC5sC,EAAMgyB,kBACJ4a,EAAA5sC,EAAAunC,eAAA,IAAAqF,GAAAA,EAAAn1C,KAAAuI,EAAUA,EAAM7G,MAAO,CAC3BqB,EAAAA,KAIJ,OAAO,WACC,IAAAyuB,EAAUia,EAAc,UAAW,WACnCvM,EAAU,CACdy/C,EAAkBj9E,SAAAi4B,OACfglD,EAAkBj9E,kBAAAi4B,OAAgBpxB,EAAMmuB,OAAAl1B,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAErCglD,EAAkBj9E,MAAA,YAAkB6G,EAAMoyB,WAAAhB,OAC1CglD,EAAkBj9E,oBAAoB6G,EAAMgyB,WAIpD,OAAA4E,EAAAA,YAAA,KAAA,CAAAC,MAEWF,EACP4Q,QAAS8uC,QACF,CACL7F,SAAUx7C,GAASh1B,EAAMg2E,gBACzBM,SAAUthD,GAASh1B,EAAMi2E,qBAEtBE,GAAA,CAEJn2E,EAAMswC,WAAa1Z,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAeglD,EAAkBj9E,MAAA,UAAA,CAAem3C,IAAoB,KACvFrnB,IAIT,ICxDastD,GAAA,CAEbnsD,UAAW,CACTtuB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASjnB,SAASinB,EACpC,GAGFzM,SAAU8P,QAEV00C,mBAAoB,CAClB16E,KAAMgmC,QACN3e,SAAS,GAGX6yD,eAAgB,CACdl6E,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,KAGXszD,UAAW,CACT36E,KAAM9C,OACNmqB,QAAS,KAGX8yD,eAAgB,CACdn6E,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,IAGXjO,QAAS,CACPpZ,KAAMnF,MACNwsB,QAAS,WAAT,MAA2C,EAAC,GAG9CuzD,mBAAoB,CAClB56E,KAAM,CAAC/C,OAAQe,WAGjB68E,gBAAiB,CACf76E,KAAM,CAAC/C,OAAQe,WAGjB4yD,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,cACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CACL,MACA,OACA,QACA,SACA,WACA,YACA,cACA,eACA,WACA,cACA,YACA,gBACAjnB,SAASinB,EACb,GAGF0pC,WAAY,CACVrsE,KAAMxE,QAGRitD,QAAS,CACPzoD,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAS,QAAS,gBAAgBjnB,SAASinB,EAC9D,GAGF8I,QAASztC,yOC9EX,IAAA88E,GAAexhD,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAA62E,EAAgB1lD,GAAe,YAC/B2lD,EAAoB3lD,GAAe,kBACnC4lD,EAAejyC,WAAiC,CAAA,GAChDkyC,EAAa9mD,MAAI,MACjB+mD,EAAU/mD,EAAAA,MACVgnD,EAAkBhnD,OAAI,GACpBujD,EAAqBrnB,GAAc,CACzCqnB,iBAAkBC,KADZD,iBAUFn0B,EAAe,SAAC9kD,EAAe28E,GAC7B,IAAEp7C,EAAcvhC,EAAEw4B,OAAhB+I,UACRg7C,EAAaI,GAAQp7C,GAGvBxG,EAAAA,WAAU,WACW,IAAAG,EAAfuhD,EAAQ99E,QACSgD,SAAiBu5B,UAARI,cAAAJ,IAAQA,OAARA,EAAAA,EAAQM,iBAAiBihD,EAAQ99E,OAAO89B,OAAQ,KAC1Dj3B,EAAMy2E,YAAWS,EAAgB/9E,OAAQ,IAE7D69E,EAAW79E,MAAQmgC,SAASwB,cAAA1J,IAAAA,OAAkBylD,EAAc19E,MAAA,WAAeqgE,aAAe,CAC5F,IAEM,IAAA4d,EAAa,SAACnuD,GACd,OAAApsB,EAAWosB,GACNA,EAAQxL,EAAAA,GAEVwL,GAIHouD,EAAgB,SAAC3yE,EAA6ByyE,GAAiB,IAAAG,EAE/Dp0C,EADE5sC,EAAsB,GAuFrB,OArFF,QAAAghF,EAAA5yE,EAAA4L,eAAAgnE,IAAAA,GAAAA,EAAA7/E,KAAAiN,GAAU,SAAC6yE,EAAMC,GACd,IAAAC,mWAAAjhD,CAAA,CAAA,EAAmB+gD,GACnBG,EAAYF,EAAMn3E,KAAKqL,KAAKqrE,EAAaI,GAAQH,EAAW79E,OAC5Dw+E,EAAYD,GAAa,EAAIA,EAAYF,EAE3CC,EAAWv4C,UACbu4C,EAAWv4C,SAAWm4C,EAAcI,EAAWv4C,SAAUi4C,EAAO,GAE9Dj0C,EAAAtM,EAAAO,YAAA,MAAA,CAAA3+B,IAAUg/E,GAAA5gD,CAAAA,EAAAO,YAAAygD,GAAA,CAAA/kD,MAEC4kD,EAAW5kD,MAAAgE,MACX,CAAAzF,GAAAA,OAAIylD,EAAc19E,MAAA,UAAA,GAAAi4B,OAAkBylD,EAAc19E,MAAuBs+E,kBAAAA,eACzEA,EAAWt+E,MAClBg1B,MAAOspD,EAAWtpD,MAClBiE,OAAQqlD,EAAWrlD,OAAAke,WACPmnC,EAAWnnC,WAAAte,SACbylD,EAAWzlD,wBACLhyB,EAAMi2E,8BACNj2E,EAAMg2E,0BACX,GAAA,CAAA7yD,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEIylD,EAAc19E,MAAA,mBAAA,CAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACXylD,EAAc19E,sBAAqBi+E,CAAAA,EAAWK,EAAWxuD,WAAO2N,EAAAO,YAAAs8C,EAAA,CAAA58C,MAAA,GAAAzF,OACpDylD,EAAc19E,MAAA,oBAAAoL,KAAA,MAAA,QAAAqyB,EAAAA,YAAA,MAAA,CAAAC,MAGnC,CAAA,GAAAzF,OACFylD,EAAc19E,MAAAF,qBAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEXylD,EAAc19E,MAA2B6G,uBAAAA,OAAAA,EAAMoqB,WAAcpqB,EAAMoqB,kBAGpE,CACL+e,SAAU,WACV7L,OAAAlM,OAAQumD,EAAYX,EAAW79E,MAAA,QACjC,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAGS,IAAAzF,OACFylD,EAAc19E,mBAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAEXylD,EAAc19E,6BAA6Bs+E,EAAWzlD,iBAGvD,CACLmX,SAAU,SACVstC,UAAArlD,GAAAA,OAAcpxB,EAAMy2E,UAAA,gBAEZ,SAACj8E,GAAkB,OAAA8kD,EAAa9kD,EAAG28E,EAAO,EAEpD,GAAA,CAAAvgD,EAAAA,YAAA,KAAA,KAAA,CAAK6gD,EAAWv4C,eAAA,IAIrBu4C,EAAW3B,QAAAl/C,cAAAihD,GAAyB,KAAA,MAAA,QAKvC30C,EAAAtM,EAAAO,YAAA,MAAA,CAAA3+B,IAAUg/E,GAAA5gD,CAAAA,EAAAO,YAAAygD,GAAA,CAAA/kD,MAEC4kD,EAAW5kD,MAClBgE,MAAO,CAAA,GAAAzF,OAAIylD,EAAc19E,MAAA,UAAes+E,EAAW,OACnDt+E,MAAOs+E,EAAWt+E,MAAAg1B,MACXspD,EAAWtpD,MAClBiE,OAAQqlD,EAAWrlD,OAAAke,WACPmnC,EAAWnnC,WACvBte,SAAUylD,EAAWzlD,SAAAikD,eACLj2E,EAAMi2E,eAAAD,eACNh2E,EAAMg2E,eACtBzuC,QACEkwC,EAAWzlD,UAAYylD,EAAWv4C,SAC9B,WAAA,OAAM,MACN,SAAC/lC,EAAiDmxC,GAChD,OAxGI,SAACp1B,GAAkE,IAAA4iE,EAAA3nC,EACjFzrC,EAAkBwQ,EAAlBxQ,KAAM4lC,EAAYp1B,EAAZo1B,QACR5lC,SAAAozE,QAAAA,EAAApzE,EAAA6iC,mBAAAuwC,GAAAA,EAAArgF,KAAAiN,EAAUA,EAAM4lC,WACtBtqC,EAAAA,EAAMunC,eAAU,IAAA4I,GAAhBnwC,EAAAA,KAAAA,EAAgB0E,EAAM4lC,GAqGJ+rC,CAAgB,CAAE3xE,KAAM+yE,EAAYntC,QAAAA,GAG5C,GAAA,CAAAnnB,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAgBylD,EAAc19E,MAAqB,gBAAA,CAAAi+E,EAAWK,EAAWxuD,WAAS,IAEnFwuD,EAAW3B,QAAAl/C,cAAAihD,GAAyB,KAAA,MAAA,OAI3CvhF,EAAI8M,KAAK8/B,EACX,IACO5sC,GAGT,OAAO,WAEH,OAAAsgC,EAAAA,YAAA,MAAA,CAAAC,MACS,CACLigD,EAAkB39E,MAAAi4B,GAAAA,OACf0lD,EAAkB39E,MAAAi4B,MAAAA,OAAUpxB,EAAMoqB,WAAAnxB,EAAAm4B,CAAAA,EAAAA,GAAAA,OAE/B0lD,EAAkB39E,MAAoB+9E,cAAAA,EAAgB/9E,cAGvD,CACLs9E,UAAArlD,GAAAA,OAAcpxB,EAAMy2E,UAAA,OAEtBvmD,IAAK+mD,EACLlO,SAAU,SAACvuE,GAAkB,OAAA8kD,EAAa9kD,EAAG,MAE5C68E,EAAcr3E,EAAMkV,QAAS,KAItC,ukBC5JW,IAAA6iE,GAAyB,SAACC,GAAgD,IAAAC,EAAAC,EAAAC,EACrF,IAAKH,EAAU,MAAO,GAEtB,GAAIjgF,EAAQigF,IAAwD,mBAA7BC,QAAbA,EAAAD,EAAS,UAAIC,IAAAA,GAAAA,QAAAA,EAAbA,EAAan8E,YAAbm8E,IAAaA,OAAbA,EAAAA,EAAiCrgF,MAA0B,CAAA,IAAAwgF,EAAAC,EAG7EC,EAA6BF,QAAbA,EAAAJ,EAAS,UAAII,IAAAA,GAAA,QAAAA,EAAbA,EAAal5C,gBAAA,IAAAk5C,GAAoB,QAApBC,EAAbD,EAAiC,eAAA,IAAAC,OAAA,EAAjCA,EAAA5gF,KAAA2gF,GAClB,GAAArgF,EAAQugF,GACV,OAAOP,GAAuBO,EAElC,CAEI,OAAAvgF,EAAQigF,IACVA,EAAWA,EAASjsC,QAAO,SAACsH,EAAKpU,GAExB,OADDoU,EAAAA,EAAIjiB,OAAOr5B,EAAQknC,EAAKC,UAAYD,EAAKC,SAAWD,EAE5D,GAAG,KAEAj6B,KAAI,SAACi6B,GAAS,IAAAs5C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACPvE,EAAoB8D,QAApBA,EAAet5C,EAAKC,gBAAAs5C,IAAAD,GAA4B,QAA5BC,EAALD,EAAuBtvD,eAAU,IAAAuvD,OAAA,EAAjCA,EAAA/gF,KAAA8gF,GACfU,GAAuB,QAALR,EAAAx5C,EAAKC,gBAAA,IAAAu5C,WAAAC,EAALD,EAAuBnoC,kBAAvBooC,WAAAA,EAAAA,EAAAjhF,KAAAghF,cAA0CE,EAAA15C,EAAKC,iCAALy5C,EAAwB,sBAAiB,IAAAC,OAAA,EAAzCA,EAAAnhF,KAAAkhF,IAC5DL,EAAsBO,QAAtBA,EAAiB55C,EAAKC,gBAAA45C,IAAAD,WAAAC,EAALD,EAAA,eAAiC,IAAAC,OAAA,EAAjCA,EAAArhF,KAAAohF,GAGjBK,EAAaZ,SAAeS,QAAAA,EAAfT,EAAel4C,kBAAA24C,SAAfA,EAAAthF,KAAA6gF,GACjB,SAACp6D,GAAa,IAAAi7D,EAAA,OAAC,CAAC,gBAAiB,iBAAiB3hE,SAAY2hE,QAAZA,EAAUj7D,EAAEpiB,gBAAAq9E,SAAFA,EAA6BvhF,KAAI,IAGzFwhF,EAAcd,SAAeU,QAAAA,EAAfV,EAAel4C,kBAAA44C,SAAfA,EAAAvhF,KAAA6gF,GAClB,SAACp6D,GAAA,IAAAm7D,EAAA,OACEjhE,GAAS8F,EAAEghB,WAAa,CAAC,gBAAiB,iBAAiB1nB,iBAAU6hE,EAAAn7D,EAAEpiB,YAAFu9E,WAAAA,EAAAA,EAA6BzhF,KAAI,IAIrG0hF,EAAYhiF,OAAO4F,KAAK+hC,EAAKj/B,OAAS,CAAE,GAAE+rC,QAAO,SAAC/rC,EAA0B69B,GAAa,IAAA07C,EAWtF,MARoB,KAAzBt6C,EAAKj/B,MAAM69B,IACwB,2BAAlC07C,EAAAt6C,EAAKnjC,YAAoB,IAAAy9E,OAAA,EAAzBA,EAAyB3hF,OAC1B,CAAC,SAAU,UAAW,YAAY4f,SAASqmB,GAErC79B,EAAAoL,GAAUyyB,KAAa,EAE7B79B,EAAMoL,GAAUyyB,IAAaoB,EAAKj/B,MAAM69B,GAEnC79B,CACT,GAAG,CAAE,GAEE,OAAAw2B,GAAAA,GAAAA,GAAA,CACLvN,QAASwrD,GAAeyE,GAAcZ,GACnCgB,GACCL,EAAiB,CAAE3oC,WAAY,kBAAM2oC,CAAA,GAAmB,CAAA,GAAC,GAAA,CAC7D/5C,UAAUk6C,eAAAA,EAAa5iF,QAAS,EAAIuhF,GAAuBqB,GAAe,MAE9E,IACCh5C,QAAO,SAACliB,WAAQA,EAAE+K,WAInBlxB,EAAQigF,IAAajgF,UAAQmgF,EAAAF,EAAS,uBAATE,EAAah5C,UAAkB64C,WAAAI,EAAuBH,EAAS,UAAA,IAAAG,OAAA,EAATA,EAAaj5C,UAE7F,EACT,qkBC1DA,IAAAs6C,GAAepkD,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAmC,IAATwiC,EAAAD,EAAAC,MACxB3C,EAAiBU,KACjByK,EAAiB7Z,GAAe,YAChCsoD,EAAYvpD,MAAI,MAChBwpD,EAAiBxpD,OAAI,GAErBypD,EAAqBhiE,EAAAA,UAAS,WAAM,IAAAiiE,EAAAC,EAClCj4C,EAA0B,QAA1Bg4C,EAAQ55E,EAAMmoE,kBAAY,IAAAyR,OAAA,EAAlB55E,EAAkB4hC,MAChC,OAAIxoB,GAASwoB,GAAeA,EAAQ,GAChC7pC,EAAQ6pC,IAA4B,QAAZi4C,EAAAj4C,EAAM,UAAM,IAAAi4C,EAAAA,EAAAj4C,EAAM,IAAM,GAC7C,GACT,IAEMk4C,EAAkB,SAACp1E,EAAsB4lC,GAA+B,IAAA6F,EAC9C4pC,EAAAC,EAAAC,EAAAC,EAA1Bl6E,EAAMw2E,qBACRvgE,YAAW,WAAA,OAAOyjE,EAAevgF,OAAQ,IAAQwgF,EAAmBxgF,eAEpE6G,EAAAA,EAAMmoE,kBAAA,IAAA4R,GAA8BC,QAA9BA,EAANh6E,EAAkBipE,uBAAlBjpE,IAAoCg6E,GAApCh6E,EAAAA,KAAAA,GAAoC,EAAOsqC,GAGrC2vC,QAANj6E,EAAAA,EAAMmoE,kBAAA+R,IAAAD,GAAoCC,QAApCA,EAANl6E,EAAmB,4BAAnBA,IAA0Ck6E,GAA1Cl6E,EAAAA,KAAAA,GAA0C,EAAOsqC,IAGnDtqC,SAAiBmwC,QAAjBnwC,EAAAA,EAAOunC,mBAAU4I,GAAjBnwC,EAAAA,KAAAA,EAAiB0E,EAAM4lC,IAGnB6vC,EAAsB,SAAC5nD,EAAkB+X,GAAuC,IAAA8vC,EAAAC,EAAAC,EAAAC,EACpFb,EAAevgF,MAAQo5B,UAEvBvyB,EAAAA,EAAMmoE,kBAAA,IAAAiS,GAA8BC,QAA9BA,EAANr6E,EAAkBipE,uBAAlBjpE,IAAoCq6E,GAApCr6E,EAAAA,KAAAA,EAAoCuyB,EAAS+X,GAGvCgwC,QAANt6E,EAAAA,EAAMmoE,kBAAAoS,IAAAD,GAAoCC,QAApCA,EAANv6E,EAAmB,4BAAnBA,IAA0Cu6E,GAA1Cv6E,EAAAA,KAAAA,EAA0CuyB,EAAS+X,IAGrD,OAAO,WAAM,IAAAkwC,EAAAC,EACLl2B,EAAsC,QAAtCi2B,EAAU36C,EAAe,kBAAa,IAAA26C,OAAA,EAA5BA,EAA4B,GACtCtlE,EDoBZ,SAA2ClV,GAAuD,IAAA06E,EAAAC,EAAA36C,EAAA46C,EAC1F9G,EAAyBn+B,KACzBpW,EAAWhP,EAAAA,qBACXsqD,GACsC,QAAzCH,EAAA5G,EAAuB,uBAAkB,IAAA4G,GAAA,QAAAA,EAAzCA,EAAyC,UAAA,IAAAA,WAAAA,EAAzCA,EAA6Cx7C,uBAA8B,UAA3Ew7C,EAA2E,eAAA,IAAAC,OAAA,EAA3EA,EAAAljF,KAAAijF,MAAyF,QAAd16C,EAAKT,EAASY,aAAA,IAAAH,GAAkB,QAAlB46C,EAAT56C,EAAgB86C,gBAAW,IAAAF,OAAA,EAA3BA,EAAAnjF,KAAAuoC,IAO5E,OALiBroB,EAAAA,UAAS,WAC/B,OAAI3X,EAAMkV,SAAWlV,EAAMkV,QAAQ1e,OAAS,EAAUwJ,EAAMkV,QAErD6iE,GAAuB8C,EAChC,GAEF,CChCsBE,CAAmB/6E,GAE7Bg7E,EAAcxkD,GAAAA,GAAAA,MACfgM,GAAA,GAAA,CACHxQ,SAAUhyB,EAAMgyB,SAChB06B,UAAW1sD,EAAM0sD,UACjBnI,QAASvkD,EAAMukD,SACZrqC,GAAKla,EAAMmoE,WAAY,CAAC,kBAAmB,uBAAoB,GAAA,CAClEI,sBAAuB,CACrBv9B,EAAe7xC,MACsCshF,QADtCA,EACdz6E,EAAMmoE,kBAANnoE,IAAoDy6E,OAApDz6E,EAAAA,EAAoDuoE,yBAIzD,OAAA3xC,EAAAO,YAAAk4C,GAAA9qC,aAAA,CAAA6jC,gBAEoB,EAAAl4C,IACXupD,EAAAlnD,QACImnD,EAAevgF,MACxB8vE,gBAAiBkR,EACjBxO,iBAAA,GACIqP,8BAaHz2B,IAXCt7B,QAAS,uDAEJ4W,EAAe,mBACP,QAARo7C,EAAA/lE,EAAQ/b,aAAA,IAAA8hF,GAARA,EAAezkF,OACdogC,EAAAO,YAAA+jD,GAAA32C,EAAAA,WAAkBrqB,GAAKla,EAAO,WAAS,CAAAkV,QAAYA,EAAQ/b,MAAOouC,QAASuyC,UACzE,KACHj6C,EAAe,uBAAoB,IASlD,IC7EWs7C,GAAWx0C,GAAY6yC,IACvB5B,GAAejxC,GAAYovC,IAC3BmF,GAAev0C,GAAYiwC,ICNzBwE,GAAA,CAEbC,UAAWv5C,QAEXtP,SAAU,CACR12B,KAAMnF,MACNwsB,aAAS,GAGXm4D,gBAAiB,CACfx/E,KAAMnF,MACNwsB,QAAS,IAGXo4D,YAAaz5C,QAEb05C,WAAY,CACV1/E,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGFg9C,KAAM,CACJ3/E,KAAMhC,UAGR4hF,WAAY,CACV5/E,KAAMhC,UAGRq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQjnB,SAASinB,EACpC,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,SAGjBg+B,MAAO,CACLl7B,KAAM,CAAC/C,OAAQC,OAAQrC,OACvBwsB,QAAS,SAGXmlC,SAAUxuD,SAEV6hF,SAAU7hF,UCvEG,SAAS2qD,GAAgBllB,EAAU4kB,GAChD,KAAM5kB,aAAoB4kB,GACxB,MAAM,IAAIhsD,UAAU,oCAExB,CCHA,SAASwqD,GAAkB3vB,EAAQhzB,GACjC,IAAK,IAAIvJ,EAAI,EAAGA,EAAIuJ,EAAMxJ,OAAQC,IAAK,CACrC,IAAImsD,EAAa5iD,EAAMvJ,GACvBmsD,EAAWtpD,WAAaspD,EAAWtpD,aAAc,EACjDspD,EAAWrpD,cAAe,EACtB,UAAWqpD,IAAYA,EAAWppD,UAAW,GACjDlC,OAAO+B,eAAe25B,EAAQ55B,EAAcwpD,EAAWpqD,KAAMoqD,EAC/D,CACF,CACe,SAASg5B,GAAaz3B,EAAaC,EAAYC,GAM5D,OALID,GAAYzB,GAAkBwB,EAAY5sD,UAAW6sD,GACrDC,GAAa1B,GAAkBwB,EAAaE,GAChD/sD,OAAO+B,eAAe8qD,EAAa,YAAa,CAC9C3qD,UAAU,IAEL2qD,CACT,gOCCA,IAAM03B,GAAe,SAAClhD,EAAiB8D,EAAgBq9C,GACrD,GAAKnhD,EACL,IAAA,IAASlkC,EAAI,EAAGA,EAAIkkC,EAAKuE,SAAS1oC,SAAUC,EAAG,CACvC,IAAAqzC,EAAQnP,EAAKuE,SAASzoC,GAC5B,GAAIqzC,EAAM3wC,QAAUslC,EAAK,MAAA,GAAArN,OAAAt5B,EAAWgkF,GAAKnhD,CAAAA,EAAKxhC,QACxC,IAAA65B,EAAS6oD,GAAa/xC,EAAOrL,EAAArN,GAAAA,OAAAt5B,EAASgkF,GAAA,CAAKnhD,EAAKxhC,SAClD,GAAA65B,EAAe,OAAAA,CACrB,CACF,EAEM+oD,GAAyB,SAACphD,EAAiB8D,GAC/C,IAAK9D,EAAM,MAAO,GAClB,IAAA,IAASlkC,EAAI,EAAGA,EAAIkkC,EAAKuE,SAAS1oC,SAAUC,EAAG,CACvC,IAAAqzC,EAAQnP,EAAKuE,SAASzoC,GAC5B,GAAIqzC,EAAM3wC,QAAUslC,EAAK,OAAO9D,EAAKuE,SAC/B,IAAAlM,EAAS+oD,GAAuBjyC,EAAOrL,GACzC,GAAAzL,EAAe,OAAAA,CACrB,CACF,EAEMgpD,GAAM,SAACniF,EAAiB4kC,GAC5B,GAAI5kC,EAAKV,QAAUslC,EAAY,OAAA5kC,EAC3B,GAAAA,EAAKqlC,SAAS1oC,OAAS,EAChB,IAAA,IAAAC,EAAI,EAAGF,EAAMsD,EAAKqlC,SAAS1oC,OAAQC,EAAIF,EAAKE,IAAK,CACxD,IAAMqC,EAAMkjF,GAAIniF,EAAKqlC,SAASzoC,GAAIgoC,GAC9B,GAAA3lC,EAAY,OAAAA,CAClB,CAEJ,EAEamjF,GAAM,WAkBjB,OAAAL,IATA,SAAAK,EAAY/mE,GAA8BuvC,QAAAw3B,GAAAhjF,cARxB,MAAAA,EAEM4H,KAAA,YAAIsM,KAAIlU,EAEtBi3B,KAAAA,UAAAA,EAAAA,KAAI,IAAKj3B,sBAEY,MAQ7B4H,KAAK6D,KALmB,CACtBvL,MAAO,KACP6gB,OAAQ,KACRklB,SAAU,IAGZr+B,KAAKq7E,QAAUhnE,aAAS,EAATA,EAASgnE,QACxBr7E,KAAKs7E,aAAe,IAAIhvE,IAAI+H,aAAA,EAAAA,EAASinE,aACvC,GAAA,CAAA,CAAA3jF,IAAA,MAAAW,MAEA,SAAI8lC,GACF,IAAQ9lC,EAAyB8lC,EAAzB9lC,MAAO6gB,EAAkBilB,EAAlBjlB,OACT2gB,mWAAkBnE,CAAA,CACtBr9B,MAAAA,EACA6gB,OAAAA,EACAklB,SAAU,GACV4B,MAL+B7B,EAAV6B,OAMlB7B,GASD,GANJp+B,KAAKyE,MAAMgL,SAAQ,SAAC5L,EAAM03E,EAAIh4E,GACxB66B,EAAK9lC,QAAUuL,EAAKsV,SACjB2gB,EAAAuE,SAAS97B,KAAKsB,GACnBN,EAAA,OAAWM,GAEf,IACmB,MAAfu6B,EAAKjlB,OACFnZ,KAAA6D,KAAKw6B,SAAS97B,KAAKu3B,GACxBA,EAAK3gB,OAASnZ,KAAK6D,UACV,GAAA7D,KAAK6D,KAAKw6B,SAAS1oC,OAAS,EAAG,CACxC,IAAM6lF,EAAQL,GAAIn7E,KAAK6D,KAAMsV,GACzBqiE,IAAUA,EAAMn9C,SAASqX,MAAK,SAACzM,GAAA,OAAUA,EAAM3wC,QAAUwhC,EAAKxhC,KAAK,IAC/DkjF,EAAAn9C,SAAS97B,KAAKu3B,GAEf95B,KAAAyE,MAAMkL,IAAImqB,EAEnB,MACO95B,KAAAyE,MAAMkL,IAAImqB,EAEnB,GAAA,CAAAniC,IAAA,SAAAW,MAEA,SAAOslC,GACC,IAAA69C,EAAeT,GAAah7E,KAAK6D,KAAM+5B,EAAK,KAAO,GAGzD,OADA69C,EAAal5E,KAAKq7B,GACX69C,EAAal8C,QAAO,SAAC3B,GAAAA,OAAe,MAAPA,IACtC,GAAA,CAAAjmC,IAAA,SAAAW,MAEA,SAAOslC,GAAgB,IAAA+lB,EAAA3jD,KACrB,GAAIA,KAAKs7E,aAAa33E,IAAIi6B,GAEjB,OADF59B,KAAAs7E,oBAAoB19C,GAClB3mC,EAAI+I,KAAKs7E,cAKd,GAFCt7E,KAAAs7E,aAAa3rE,IAAIiuB,IAEjB59B,KAAKq7E,QAAQ/iF,MACT,OAAArB,EAAI+I,KAAKs7E,cAGlB,IAAMI,EAAkBR,GAAuBl7E,KAAK6D,KAAM+5B,IAAQ,GAC5D+9C,EAAyB,IAAIrvE,IACjCovE,EAAgBn8C,QAAO,SAACzF,GAAS,IAAA8hD,EAAA,eAAAA,EAAA9hD,EAAKuE,6BAALu9C,EAAejmF,QAAS,GAAKmkC,EAAKxhC,QAAUslC,CAAG,IAAEz5B,KAAI,SAAC8kC,GAAA,OAAUA,EAAM3wC,KAAK,KASvG,OANF0H,KAAAs7E,aAAa7rE,SAAQ,SAACmuB,GACX+9C,EAAuBh4E,IAAIi6B,IAElC+lB,EAAA23B,oBAAoB19C,EAE7B,IACO3mC,EAAI+I,KAAKs7E,aAClB,GAAA,CAAA3jF,IAAA,WAAAW,MAEA,SAASA,GACP,IAAM65B,EAASgpD,GAAIn7E,KAAK6D,KAAMvL,GAEvB,OAAA65B,EAASA,EAAOkM,SAAW,EACpC,IAAA,CAxFiB,skBCnCnB,IAAAw9C,GAAetnD,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAOw2B,GAAAA,MAAKx2B,IAAA,CAAA,EAAA,CAAO28E,YAAa7iF,WAChCu7B,eAAMr1B,EAAOonD,GACX,IAAM1iC,EAAcyM,KACd0O,EAAiBU,KACjB2C,EAAgBjC,KAChB27C,EAAO1sD,EAAAA,IAAIlwB,EAAMw7E,YACjBrtD,EAAQxW,EAAAA,UAAS,WAAA,OAAM3X,EAAMmuB,SAC7B+tD,EAAUvkE,EAAAA,UAAS,WAAA,OAAM3X,EAAMu7E,eAC/BF,EAAY1jE,EAAAA,UAAS,WAAA,OAAM3X,EAAMq7E,aACjCwB,EAAYllE,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC5B1M,EAAYvrB,MAAAi4B,iBAAAA,GAAAA,OACZ1M,EAAYvrB,iBAAAi4B,OAAepxB,EAAMmuB,OAAAl1B,EAAA,CAAA,EAAA,GAAAm4B,OAE9B1M,EAAYvrB,MAAA,iBAAuB6G,EAAMq7E,eAG3CyB,EAAenlE,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAAI1M,EAAYvrB,MAAci4B,SAAAA,GAAAA,OAAG1M,EAAYvrB,MAAqB,qBAChG4jF,EAAcplE,EAAAA,UAAS,WACrB,IAAEqf,EAAUh3B,EAAVg3B,MACF9U,EAAS,SAACuc,GAAA,OAA0BrlB,GAASqlB,MAAGrN,OAAOqN,EAAU,MAAAA,CAAA,EACvE,OAAI1mC,EAAQi/B,GAAeA,EAAMhyB,KAAI,SAACi6B,GAAS,OAAA/c,EAAO+c,MAE/C,CAAC/c,EAAO8U,GAAQ,OACzB,IAEMpE,EAASjb,EAAAA,UAAS,WAAA,MAAO,CAC7Bsf,OAAQ,OACRD,MAAOh3B,EAAMq7E,UAAY0B,EAAY5jF,MAAM,GAAK4jF,EAAY5jF,MAAM,GAClE,IAEF4yE,EAAwC7nC,SAAOlkC,GAAvC7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAYxyC,EAASu5C,EAATv5C,SAC0Ew5C,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA9F00B,EAAahR,EAAA,GAAAiR,EAAcjR,EAAA,GAC2EkR,EAAAvgE,GAA3E2nD,GAAgB9xC,EAAUxyB,EAAMs7E,gBAAiBt7E,EAAM27E,SAAU,YAAU,GAAtGQ,EAAce,EAAA,GAAAC,EAASD,EAAA,GACxBZ,EAAepsD,MAAI,IAEzBi6B,EAAAA,aAAY,WAAM,IAAAizB,EAChBR,EAAKzjF,MAAQ6G,EAAMq7E,UAAY,QAAUr7E,EAAMw7E,WAC3B,QAApBx7E,EAAAA,EAAM28E,mBAAc,IAAAS,GAApBp9E,EAAAA,KAAAA,EAAoB,CAAEq7E,UAAWr7E,EAAMq7E,WACzC,IAEA,IAAMgC,EAAQ,IAAIpB,GAAM,CAAEC,QAAAA,EAASC,aAAcA,EAAahjF,MAAQrB,EAAIqkF,EAAahjF,OAAS,KA+DhG,OA9DA+3B,EAAAA,QAAyB,SAAU,CACjC8rD,YAAAA,EACAV,aAAAA,EACAH,aAAAA,EACAS,KAAAA,EACAzuD,MAAAA,EACAmvD,QAAQ,EACRD,MAAAA,EACAhC,UAAAA,EACAj1D,OAAQ,SAACjtB,GACHA,IAAU6jF,EAAY7jF,OACxB8jF,EAAe9jF,EAEnB,EACA05E,KAAM,SAAC15E,EAAkB2C,GACnB,GAAe,WAAf8gF,EAAKzjF,MACGgkF,EAAAE,EAAM71C,OAAOruC,SACzB,GAAoB,QAAT2C,GACqC,IAA1CqgF,EAAahjF,MAAM+5B,QAAQ/5B,IAE7BgkF,EAAA,GAAA/rD,OAAAt5B,EAAcqkF,EAAahjF,OAAA,CAAOA,UAEtC,GAAoB,WAAT2C,EAAmB,CAC5B,IAAMb,EAAQkhF,EAAahjF,MAAM+5B,QAAQ/5B,GACnCokF,EAAMzlF,EAAIqkF,EAAahjF,OACzBokF,EAAA54E,OAAO1J,EAAO,GAClBkiF,EAAUI,EACZ,CACF,IAGF77C,EAAAA,OACE,WAAA,OAAM1hC,EAAMwyB,QACZ,IAAA,SAACr5B,GACOkkF,EAAAlB,aAAe,IAAIhvE,IAAIhU,EAC/B,IAGFuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMq7E,SAAA,IACZ,SAACl7E,EAAUqmC,IACJrmC,GAAYqmC,GAEf22C,EAAArlF,EAAculF,EAAMlB,cAExB,IAGIz6C,QAAAs7C,GAAa,SAAC7jF,GACLmjF,EAAAnjF,MAAQkkF,EAAMj3D,OAAOjtB,EACpC,IAEAgxD,EAAAA,aAAY,WACN/C,EAAIjnB,MAAMjrB,SACRowD,GAAS,QAAS,sFAE1B,IAEA/vC,EAAAA,WAAU,WACR+mD,EAAanjF,MAAQkkF,EAAMj3D,OAAO42D,EAAY7jF,MAChD,IAEO,WACC,IAAAuiF,EAAax4C,EAAc,aAAc,WACzCu4C,EAAO57C,EAAe,QAE5B,OAAAjJ,EAAAA,YAAA,MAAA,CAAAC,MACcgmD,EAAU1jF,MAAO05B,MAAOD,EAAOz5B,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAC1B1M,EAAYvrB,MAAA,yBACxBsiF,CAAAA,GAAA7kD,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAuB1M,EAAYvrB,MAAA,gBAAqBsiF,CAAAA,IAA/C7kD,EAAAA,YAAA,KAAA,CAAAC,MACCimD,EAAa3jF,OAAQ+pC,CAAAA,EAAc,UAAW,aACxDw4C,GAAA9kD,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAA6B1M,EAAYvrB,MAAA,sBAAA,CAA2BuiF,QAK/E,IC3Ha8B,GAAA,CAEbhrD,SAAU,CACR12B,KAAMnF,MACNwsB,aAAS,GAGXm4D,gBAAiB,CACfx/E,KAAMnF,MACNwsB,QAAS,IAGXq4D,WAAY,CACV1/E,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGFg9C,KAAM,CACJ3/E,KAAMhC,UAGR4hF,WAAY,CACV5/E,KAAMhC,UAGRq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQjnB,SAASinB,EACpC,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,SAGjBsvD,SAAUxuD,SAEV6hF,SAAU7hF,UCrDG2jF,GAAA,CAEbt6D,QAAS,CACPrnB,KAAMhC,UAGR4jF,cAAe,CACb5hF,KAAMgmC,QACN3e,SAAS,GAGX6O,SAAU8P,QAEV67C,UAAW,CACT7hF,KAAMgmC,QACN3e,SAAS,GAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjB8jF,KAAM97C,QAEN+7C,MAAO,CACL/hF,KAAM,CAAC/C,OAAQe,WAGjBgkF,UAAWh8C,QAEX3oC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,SAGjB+kF,SAAUjkF,UCnCZkkF,GAAe5oD,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,aAC9BU,EAAWR,KAAXQ,OACFosD,EAAqBh9C,KAET2jC,KAEZ,IAAAsZ,EAAO1tD,SAAmB,QAC1B2tD,EAAWxmE,EAAAA,UAAS,WAAA,OAAM3X,EAAM7G,QAAU+kF,EAAK/kF,MAAMA,SACrDilF,EAAUluD,EAAAA,KAAIlwB,EAAM49E,MAAOO,EAAShlF,OAE1CuoC,EAAAA,MACEy8C,GACA,WACMA,EAAShlF,MACNilF,EAAQjlF,QACXilF,EAAQjlF,OAAQ,GAET6G,EAAM09E,gBACfU,EAAQjlF,OAAQ,EAEpB,GACA,CAAE6xD,WAAW,IAGT,IAAAqzB,EAAgB1mE,EAAAA,UAAS,WAAA,MAAM,CACnCqzB,EAAe7xC,MAAAF,EAEZ44B,CAAAA,EAAAA,EAAO14B,MAAMm5B,QAAU6rD,EAAShlF,WAGrC,OAAO,WACL,OAAKilF,EAAQjlF,MACNy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYwnD,EAAcllF,QAAQ8kF,EAAmB,UAAW,WAD5C,KAG/B,ICrCaK,GAAA,CAEb97B,OAAQ,CACN1mD,KAAM,CAAC/C,OAAQe,WAGjBykF,QAASz8C,QAET9P,SAAU8P,QAEV08C,SAAU18C,QAEV1U,KAAM,CACJtxB,KAAMnF,OAGR+1D,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,MAAO,SAAU,SAASjnB,SAASinB,EACrD,GAGFggD,eAAgB,CACd3iF,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,SAAU,OAAOjnB,SAASinB,EACrD,GAGFl6B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAQjnB,SAASinB,EACrC,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,SAGjB0lF,MAAO5kF,SAEPwuD,SAAUxuD,SAEV6kF,WAAY7kF,SAEZikF,SAAUjkF,UChFN8kF,GAAc,SAACt2C,GAA6B,OAAAA,eAAAA,EAAKW,cAAe,CAAA,ECUtE,IAAA41C,GAAezpD,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACL/E,MAAOjC,OACPo5B,OAAQ,CACNt2B,KAAMgmC,SAER3T,MAAO2wD,GAAS3wD,MAChB5pB,KAAMu6E,GAASv6E,KACfmoD,UAAWoyB,GAASpyB,UACpBjT,MAAO,CACL39C,KAAM,MAERk2B,SAAUyrD,GAAczrD,SACxB8rD,UAAWL,GAAcK,UACzB3kF,MAAOskF,GAActkF,MACrBouC,QAASztC,SACTikF,SAAUjkF,UAGZu7B,MAAAA,SAAMr1B,GACJ,IAAMm2E,EAAUjmD,EAAAA,MAChByX,GAAUwuC,GAEJ,IAAAnrC,EAAiB7Z,GAAe,kBAC9B88B,EAAc7B,GAAc,CAAE6B,UAAWC,KAAzCD,UACFvpC,EAAcyM,KACpB8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KAEVytD,EAAiB,SAAAx8C,GAA8B,IAA3B/nC,EAAA+nC,EAAA/nC,EACpBA,GAAGA,EAAE24E,kBACHnzE,EAAA+9E,SAAS,CAAEvjF,EAAAA,EAAGrB,MAAO6G,EAAM7G,MAAO8B,MAAO+E,EAAM/E,SAEjD+jF,EAAa,SAACxkF,GACdwF,EAAMgyB,UACVhyB,EAAMunC,QAAQ/sC,IAGVykF,EAAetnE,EAAAA,UAAS,WACrB,OAAA1e,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EACJ+xC,CAAAA,EAAAA,EAAe7xC,OAAQ,GAAA,GAAAi4B,OACpB1M,EAAYvrB,0BAA0C,SAAhB6G,EAAMmuB,OAC/C0D,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,UAC9BH,EAAO14B,MAAMi5B,OAASpyB,EAAMoyB,WAAAhB,OACzB1M,EAAYvrB,MAAkB6G,YAAoB,SAApBA,EAAM0sD,WAAc,GAAAt7B,OAClD1M,EAAYvrB,MAAA,aAAuC,UAApB6G,EAAM0sD,WACxCp7B,EAAKn4B,MAAMq4B,OAAwB,WAAfxxB,EAAMuE,MAC1B+sB,EAAKn4B,MAAMs4B,MAAuB,UAAfzxB,EAAMuE,KAE9B,IA8BA,OAAO,WACL,MAAuB,SAAhBvE,EAAMmuB,MA5BbyI,EAAAA,YAAA,MAAA,CAAAC,MACcooD,EAAa9lF,MAAOouC,QAASy3C,MAAiB7I,GAAA,CAAAv/C,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACxC4Z,EAAe7xC,MAAuB,kBAAA,CAAA6G,EAAMy5C,QAC3Dz5C,EAAM89E,YAAc99E,EAAMgyB,SAAA4E,EAAAO,YAAA82B,EAAA,CAAAp3B,MAAA,aAAA0Q,QAAkDw3C,GAAA,MAAqB,OAKtGnoD,EAAAA,YAAA,MAAA,CAAAC,MACcooD,EAAa9lF,cAAgB6lF,GAAA,CAAApoD,EAAAO,YAAA,MAAA,CAAAN,MAE9B,CAAAzF,GAAAA,OACF4Z,EAAe7xC,MAAAF,YAAAA,EAAAA,EAEf44B,CAAAA,EAAAA,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,UAC9BH,EAAO14B,MAAMi5B,OAASpyB,EAAMoyB,SAGjClC,IAAKimD,GAEL,CAAAv/C,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAgB4Z,EAAe7xC,MAAuB,kBAAA,CAAA6G,EAAMy5C,UAE7Dz5C,EAAM89E,YAAc99E,EAAMgyB,SAAA4E,EAAAA,YAAAq3B,EAAA,CAAAp3B,MAAA,aAAA0Q,QAAkDw3C,GAAA,MAAqB,OAQ1G,ICpFFG,GAAe9pD,kBAAgB,CAC7Bp1B,MAAO,CACLm/E,KAAM,CACJrjF,KAAMnF,OAER+1D,UAAWoyB,GAASpyB,UACpBvzD,MAAO2lF,GAAS3lF,OAElBk8B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,QAChCzM,EAAcyM,KACdiuD,EAASlvD,EAAAA,MACTmvD,EAAc1nE,EAAAA,UAAS,WACpB,MAAA,IAAAyZ,OAAI4Z,EAAe7xC,kBAAAi4B,OAAiB1M,EAAYvrB,MAAAi4B,QAAAA,OAAYpxB,EAAM0sD,WAC3E,IACM4yB,EAAcpvD,MAAI,MAwBlB4yC,EAAS,WAAA,OAAOwc,EAAYnmF,MAvBjB,WAKf,IAJM,IACkFowD,EAAA5sC,GADrE,CAAC,OAAQ,SAASnF,SAASxX,EAAM0sD,UAAUphD,eACV,CAAC,SAAU,OAAS,CAAC,QAAS,QAAM,GAAjFi0E,EAAch2B,EAAA,GAAAi2B,EAAcj2B,EAAA,GAC/B9iD,EAAS,EACThQ,EAAI,EACDA,EAAIuJ,EAAMm/E,KAAK3oF,OAAQC,IAAK,CAAA,IAAAgpF,EACjC,GAAIz/E,EAAMm/E,KAAK1oF,GAAGuJ,MAAM7G,QAAU6G,EAAM7G,MACtC,MAEE,GAAW,QAAXsmF,EAAAz/E,EAAMm/E,KAAK1oF,UAAA,IAAAgpF,GAAXA,EAAe9sD,GAAI,CACrB,IAAM+sD,EAAe1pD,iBAAiBh2B,EAAMm/E,KAAK1oF,GAAGk8B,IAAe4sD,GAEzD94E,GADGutB,WAAW0rD,EAE1B,CACF,CACI,OAAC1/E,EAAMm/E,KAAK1oF,GACTwC,EAAAA,EACJumF,CAAAA,EAAAA,YAAoB/4E,EAAA,OACpB84E,EAAev/E,EAAMm/E,KAAK1oF,GAAGk8B,GAC1BqD,iBAAiBh2B,EAAMm/E,KAAK1oF,GAAGk8B,IAAe4sD,GAC9C,OALqB,CAAA,EAQaI,EAAS,EAqBnD,OAnBApqD,EAAAA,WAAU,WACRC,EAAAA,UAAS,WACAstC,GACT,GACF,IAEMphC,EAAAA,MAAA,CAAC,WAAA,OAAM1hC,EAAMm/E,MAAM,WAAA,OAAMn/E,EAAM7G,OAAO,WAAA,OAAM6G,EAAM0sD,SAAS,IAAG,WAClEl3B,EAAAA,UAAS,WACAstC,GACT,GACF,IAEAoG,GACEkW,EACApqE,IAAS,WACA8tD,MAEN,KAEE,WACE,OAAAlsC,EAAAA,YAAA,MAAA,CAAAC,MAAYwoD,EAAYlmF,YAAcmmF,EAAYnmF,MAAO+2B,IAAKkvD,GAAQ,MAEjF,6/BCrEF,IAAMQ,GAAmB,SAACC,EAAyBlnD,GAAkE,IACnFmnD,EADmFC,EAAAC,GAC5FH,GAAS,IAAhC,IAAAE,EAAAxiE,MAAAuiE,EAAAC,EAAA1oF,KAAA+lB,MAAgC,CAAA,IAArB6iE,UACLA,EAASl+B,aAAa,cACxBppB,EAAGsnD,EAEP,CAAA,CAAA,MAAAhlC,GAAA8kC,EAAAvlF,EAAAygD,EAAA,CAAA,QAAA8kC,EAAA7iE,GAAA,CACF,EAEMgjE,GAAe,SAACltD,EAAqB6sD,GACrC,IAAAM,EAMG,OALUP,GAAAC,GAAS,SAACI,GACrBA,EAAS9lD,SAASnH,KACLmtD,EAAAF,EAEnB,IACOE,CACT,qkBCKA,IAAAC,GAAehrD,kBAAgB,CAC7Bx9B,KAAM,UACNyoF,eAAgB,KAChBrgF,MAAO,CACLmuB,MAAO2wD,GAAS3wD,MAChBmyD,OAAQ,CACNxkF,KAAMnF,MACNwsB,QAAS,WAAT,MAAsD,EAAC,GAEzDq/B,OAAQ7rD,MACRwC,MAAO2lF,GAAS3lF,MAChBuzD,UAAWoyB,GAASpyB,UACpB+xB,eAAgBK,GAASL,eACzBl6E,KAAMu6E,GAASv6E,KACfytB,SAAU8sD,GAAS9sD,SACnBusD,QAASO,GAASP,QAClBj2B,SAAUw2B,GAASx2B,SACnBo2B,MAAOI,GAASJ,MAChBX,SAAUe,GAASf,SACnBS,SAAUM,GAASN,SACnBG,WAAYG,GAASH,YAEvBtpD,MAAAA,SAAMr1B,GACE,IAAAowB,EAAgBe,GAAe,QACrCq8B,EAAuDpB,GAAc,CACnEm0B,gBAAiBC,GACjB/M,iBAAkBC,GAClB+M,QAASC,KAHHH,EAAA/yB,EAAA+yB,gBAAiB9M,EAAkBjmB,EAAlBimB,iBAAkBgN,EAAAjzB,EAAAizB,QAKrC/7D,EAAcyM,KAEZG,EAASD,KAATC,KAEFiN,EAAarO,MAAI,GAGjBywD,EAAmBzwD,EAAAA,MACnB0wD,EAAc1wD,EAAAA,MACd2wD,EAAoB3wD,EAAAA,MACpB4wD,EAAqB5wD,EAAAA,MACrB6wD,EAAgB7wD,EAAAA,MAChB8wD,EAAe9wD,EAAAA,MACf+wD,EAAgB/wD,MAAI,GACpBgxD,EAAavpE,EAAAA,UAAS,WAAM,IAAAwpE,EACzB,MAAA,CAAC,MAAO,UAAU3pE,SAASxX,SAAOmhF,QAAAA,EAAPnhF,EAAO0sD,iBAAPy0B,IAAOA,OAAPA,EAAAA,EAAkB71E,cACtD,IAEM81E,EAAU,iBAAO,CACrBC,cAAeV,EAAiBxnF,MAChCmoF,SAAUV,EAAYznF,MACtBooF,eAAgBV,EAAkB1nF,MAClCqoF,gBAAiBV,EAAmB3nF,MACpCsoF,WAAYV,EAAc5nF,MAC1BuoF,UAAWV,EAAa7nF,QAIpBwoF,EAAsBhqE,EAAAA,UAAS,WAAA,MAAM,CAAC,OAAQ,SAASH,SAASxX,EAAM0sD,UAAUphD,kBAGhFs2E,EAAYjqE,EAAAA,UAAS,WAAA,OAAM4mB,EAAWplC,MAAQ,KAC9C0oF,EAAalqE,EAAAA,UAAS,WAAA,OAAM4mB,EAAWplC,MAAQ8nF,EAAc9nF,MAAQ,KAGrE2oF,EAAqBnqE,EAAAA,UAAS,WAClC,OAAIgqE,EAAoBxoF,MAAc,GAC/B,CACLsH,yBAAA2wB,QAA2BmN,EAAWplC,MAAA,aAE1C,IACM4oF,EAAqBpqE,EAAAA,UAAS,WAClC,OAAO3X,EAAMu+E,QAAU,CAAE,aAAc,QAAW,IACpD,IAGMyD,EAAgBrqE,EAAAA,UAAS,WACtB,OAAA1e,EAAAA,EAAAA,QAAAm4B,OACDhB,EAAcj3B,MAAe,UAAA,GAChCm4B,EAAKn4B,MAAMq4B,OAAwB,WAAfxxB,EAAMuE,MAC1B+sB,EAAKn4B,MAAMs4B,MAAuB,UAAfzxB,EAAMuE,KAE9B,IACM09E,EAAgBtqE,EAAAA,UAAS,WACtB,OAAA6e,GAAAv9B,EAAA,GAAA,GAAAm4B,OACDhB,EAAcj3B,MAAqB,gBAAA,GACpC6oF,EAAc7oF,MAErB,IACM+oF,EAAiBvqE,EAAAA,UAAS,WACvB,OAAA6e,GAAAv9B,EAAA,GAAA,GAAAm4B,OACDhB,EAAcj3B,MAAsB,iBAAA,GACrC6oF,EAAc7oF,MAErB,IACMgpF,EAAexqE,EAAAA,UAAS,WACrB,OAAA6e,GAAAv9B,EAAA,GAAA,GAAAm4B,OACDhB,EAAcj3B,MAAmB,cAAA,GAClC6oF,EAAc7oF,MAErB,IACMipF,EAAoBzqE,EAAAA,UAAS,WAC1B,OAAA1e,EAAAA,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACDhB,EAAcj3B,MAAyB,oBAAA,GAAA,GAAAi4B,OACvChB,EAAcj3B,MAAqB6G,eAAgB,SAAhBA,EAAMmuB,OAAU,GAAAiD,OACnD1M,EAAYvrB,MAAA,QAAAi4B,OAAYpxB,EAAM0sD,YAAc,GAAAt7B,GAAAA,OAC5C1M,EAAYvrB,MAAA,eAAqB6G,EAAMu+E,QAE/C,IACM8D,EAA0B1qE,EAAAA,UAAS,WAChC,OAAA1e,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACDhB,EAAcj3B,MAAsB,iBAAA,GAAA,GAAAi4B,OACpC1M,EAAYvrB,MAAwByoF,kBAAAA,EAAUzoF,OAAS0oF,EAAW1oF,MAE1E,IAEMmpF,EAAgB3qE,EAAAA,UAAS,WACtB,MAAA,CAAA,GAAAyZ,OACFhB,EAAcj3B,MAAAi4B,cAAAA,GAAAA,OACd1M,EAAYvrB,oBAAAF,EAAA,CAAA,EAAA,GAAAm4B,OACT1M,EAAYvrB,MAAsBwoF,gBAAAA,EAAoBxoF,OAEhE,IAEMopF,EAAY,SAAC97E,GACjB83B,EAAWplC,MJlED,SAAgBsN,EAAgBk5D,GAC9C,OAAOt/D,KAAKC,IAAI,EAAGD,KAAK0U,IAAItO,EAAQk5D,GACtC,CIgEyB6iB,CAAgB/7E,EAAQw6E,EAAc9nF,QAGrDmmD,EAAe,SAACkD,GACpB+/B,EJ1GU,SAAqBh8B,EAA0B9/C,EAAgB+7C,GACvE,IAAE6+B,EAA6B96B,EAA7B86B,cAAeK,EAAcn7B,EAAdm7B,UACjBe,EAAqB7D,GAAYyC,GACjCqB,EAAiB9D,GAAY8C,GAM7BiB,EAAYtiF,KAAKge,IAAIokE,EAAqBC,GAChD,MAAe,SAAXlgC,EACK/7C,EAASk8E,EAEXl8E,EAASk8E,CAClB,CI4FgBC,CAAqBxB,IAAW7iD,EAAWplC,MAAOqpD,KAGxDqgC,EAAc,SAACppD,GACnB,GAAKmoD,EAAUzoF,OAAU0oF,EAAW1oF,MAApC,CAEAsgC,EAAMu0C,iBACA,IAAE8U,EAAmBrpD,EAAnBqpD,OAAQC,EAAWtpD,EAAXspD,OAEZ1iF,KAAKge,IAAIykE,GAAUziF,KAAKge,IAAI0kE,GACpBR,EAAAhkD,EAAWplC,MAAQ2pF,GAEnBP,EAAAhkD,EAAWplC,MAAQ4pF,EARY,GAYvCC,EAAwB,WAC5B/sE,YAAW,WACTssE,EJ1JQ,SAAgBU,EAA4Bx8E,EAAgBg4E,GAE1E,IAhBwBn2C,EAgBhB+4C,EAA8D4B,EAA9D5B,cAAeK,EAA+CuB,EAA/CvB,UAAWF,EAAoCyB,EAApCzB,gBAAiBD,EAAmB0B,EAAnB1B,eAC7C2B,EAAWtE,GAAY8C,GACvB/hC,EAAYi/B,GAAYyC,GACxB8B,GAnB+C76C,OAA7BA,EAmBWo5C,UAnBkBp5C,EAAKgrB,aAAc,EAoBlE8vB,EAAuBxE,GAAY4C,GACnC6B,EAAsBzE,GAAY2C,GAExC,GAAuB,SAAnB9C,EAA2B,CACzB,GAAA0E,EAAYE,EAAsB58E,EACpC,OAAO08E,EAAYE,EACnB,GAAIF,EAAYD,EAAWz8E,EAASk5C,EAAYyjC,EACzC,OAAAD,EAAYD,EAAWvjC,EAAYyjC,CAE9C,KAAA,IAA8B,UAAnB3E,EACT,OAAO0E,EAAYE,EACrB,GAA8B,WAAnB5E,EACF,OAAA0E,GAAaD,EAAWvjC,GAAa,EAC9C,GAA8B,QAAnB8+B,EACF,OAAA0E,EAAYD,EAAWvjC,EAAYyjC,CAC5C,CACO,OAAA38E,CACT,CImIkB68E,CAAgBlC,IAAW7iD,EAAWplC,MAAO6G,EAAMy+E,mBAC5D,IAGC8E,EAAmB,WACvB/tD,EAAAA,UAAS,WJ5GR,IAAuB+wB,EACpB+6B,EAAUD,EAAeG,EAAiBC,EI4G9BR,EAAA9nF,OJ7GQotD,EI6Gc66B,IJ5GlCE,EAAyD/6B,EAAzD+6B,SAAUD,EAA+C96B,EAA/C86B,cAAeG,EAAgCj7B,EAAhCi7B,gBAAiBC,EAAel7B,EAAfk7B,WAChC7C,GAAY0C,GACP1C,GAAYyC,GACNzC,GAAY4C,GACjB5C,GAAY6C,GIyGhC,KAII//C,EAAAA,MAAA,CAAC,WAAA,OAAM1hC,EAAM0sD,WAAW,WAAA,OAAM1sD,EAAMsgF,SAASiD,GACnD7hD,EAAAA,MAAM,CAAC,WAAA,OAAM1hC,EAAMy+E,iBAAiBuE,G1JrKxB,SAAUzxC,EAAsBiyC,GAC9ClyC,GAAY,SAAUC,GAEtB,IAAI8uC,EAAiC,KAErC9qD,EAAAA,WAAU,WACHO,OAAOqzC,gBAAmBqa,IACdnD,EAAA,IAAIvqD,OAAOqzC,eAAe53B,IAC5Bi4B,QAAQga,EACzB,IAEAhyC,EAAAA,iBAAgB,WAAM,IAAAiyC,EACpBA,QAAAA,EAAApD,aAAAoD,GAAAA,EAAgBla,YAClB,GACF,C0J0JIma,CAAU1uE,GAASuuE,GAAmB5C,EAAiBxnF,OAEjD,IAAAwqF,EAAe,SAACnpF,GAAkB,IAAAopF,EAChC,QAAAA,EAAA5jF,EAAA0+E,aAAA,IAAAkF,GAAAA,EAAAnsF,KAAAuI,EAAQ,CAAExF,EAAAA,KAUZukF,EAAiB,YAAiE,IAA9DvkF,EAAG2pC,EAAH3pC,EAAGrB,EAAAgrC,EAAAhrC,MAAO8B,IAAAA,MAClC+E,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGrB,MAAAA,EAAO8B,MAAAA,KAEvB4oF,EAAe,SAAC3zD,GACfA,SAAAA,EAAK4zD,MACN5zD,eAAAA,EAAK/2B,SAAU6G,EAAM7G,OAAS6nF,EAAa7nF,QAAU+2B,EAAI4zD,MAC3D9C,EAAa7nF,MAAQ+2B,EAAI4zD,IACHd,MAI1Be,ED5LJ,SAAoC/jF,GAClC,IAGIgkF,EAHA1C,EAA2B,KAIzB2C,EAAiC,GAEjCC,EAAY,SAACzqD,GACjB,IAAMzG,EAASyG,EAAMzG,OAGXgxD,EAAAhxD,EAEVA,EAAOH,MAAM+W,QAAU,OAEnBu6C,EAAU,SAAC1qD,GAEdA,EAAMzG,OAA0BH,MAAM+W,QAAU,IAG7Cw6C,EAAW,SAAC3qD,GAEhBA,EAAMu0C,kBAGFqW,EAAY,SAAC5qD,GAEjB,IAAMzG,EAASktD,GAAazmD,EAAMzG,OAAQsuD,EAASpiD,UAC/ClM,GAAUA,IAAWgxD,GAAWhxD,EAAO2qD,YAClC3qD,EAAAiX,WAAWpX,MAAMyxD,QAAU,qBAE7BL,EAAazsE,SAASwb,IACzBixD,EAAa7gF,KAAK4vB,KAKlBuxD,EAAY,SAAC9qD,GAIjB,IAHA,IAAMzG,EAASyG,EAAMzG,OAGrB2qC,EAAA,EAAA6mB,EAA0BP,EAActmB,EAAA6mB,EAAAhuF,OAAAmnE,IAAA,CAAxC,IAAW8mB,OAEJA,EAAYtqD,SAASnH,KAEvByxD,EAAYx6C,WAA8BpX,MAAMyxD,QAAU,OAE/D,GAEII,EAAO,SAACjrD,GAEZA,EAAMu0C,iBAEW4R,GAAA0B,EAASpiD,UAAU,SAACylD,GAC5BA,EAAA16C,WAAWpX,MAAMyxD,QAAU,MACpC,IAEA,IAAItxD,EAASktD,GAAazmD,EAAMzG,OAAQsuD,EAASpiD,UACjD,GAAIlM,GAAUA,EAAOkL,aAAe8lD,GAAWhxD,EAAO2qD,UAAW,CAAA,IAAAiH,EAEzDC,EAAY,GAAG3xD,QAAQz7B,KAAK6pF,EAASpiD,SAAU8kD,GAE/Cc,EAAc,GAAG5xD,QAAQz7B,KAAK6pF,EAASpiD,SAAUlM,GACnD8xD,EAAcD,IACP7xD,EAAAsuD,EAASpiD,SAAS4lD,EAAc,IAI3C,IAAM5Q,EAA+B,SAAhBl0E,EAAMmuB,MAAmB02D,EAAYA,EAAY,EAChEE,EAA2B,SAAhB/kF,EAAMmuB,MAAmB22D,EAAcA,EAAc,EACnD,QAAnBF,EAAA5kF,EAAM2+E,kBAAa,IAAAiG,GAAnBA,EAAAntF,KAAAuI,EAAmB,CACjBk0E,aAAAA,EACAt6D,QAAS5Z,EAAMsgF,OAAOpM,GAAc/6E,MACpC2rF,YAAaC,EACb/xD,OAAQhzB,EAAMsgF,OAAOyE,GAAU5rF,OAEnC,GAwBF,OAXAgxC,EAAAA,aAAY,WACNm3C,IACOA,EAAAznD,oBAAoB,YAAaqqD,GACjC5C,EAAAznD,oBAAoB,UAAWsqD,GAC/B7C,EAAAznD,oBAAoB,WAAYuqD,GAChC9C,EAAAznD,oBAAoB,YAAawqD,GACjC/qD,SAAAO,oBAAoB,YAAa0qD,GACjCjrD,SAAAO,oBAAoB,YAAa0qD,GACjCjD,EAAAznD,oBAAoB,OAAQ6qD,GAEzC,IACO,CAAEM,YAtBT,SAAqBvmD,IACR6iD,EAAA7iD,GACFlF,iBAAiB,YAAa2qD,GAAW,GACzC5C,EAAA/nD,iBAAiB,UAAW4qD,GAAS,GACrC7C,EAAA/nD,iBAAiB,WAAY6qD,GAAU,GACvC9C,EAAA/nD,iBAAiB,YAAa8qD,GAAW,GACzC/qD,SAAAC,iBAAiB,YAAagrD,GAAW,GACzCjrD,SAAAC,iBAAiB,YAAagrD,GAAW,GACzCjD,EAAA/nD,iBAAiB,OAAQmrD,GAAM,EAC1C,EAcF,CCuF4BO,CAAYjlF,GAA5BglF,EAAAjB,EAAAiB,YAERzvD,EAAAA,WAAU,WACRyvD,EAAYpE,EAAYznF,OACPoqF,IACKP,GACxB,IAEA,IAAMkC,EAAoB,WACxB,OAAOllF,EAAMsgF,OAAOt7E,KAAI,SAAC64E,EAAO5iF,GAAU,IAAAkqF,EACpC1rC,EAEMA,EADNokC,iBAAAsH,EAAAtH,EAAO3+C,uBAAPimD,EAAiB1rC,MACXokC,EAAM3+C,SAASua,QACd58C,EAAWghF,EAAMpkC,OAClBokC,EAAMpkC,MAAMh8B,EAAAA,GAEZogE,EAAMpkC,OAAS,qBAAAroB,OAAMn2B,EAAQ,GAEvC,IAAI0iF,EAAY39E,EAAMw+E,SAKpB,OAJEb,IAAiC,IAApBE,EAAMF,YACrBA,EAAYE,EAAMF,WAGlB/mD,EAAAA,YAAAioD,GAAA,CAAA3uD,IACO2zD,EAAAlG,UACMA,EACXnlF,IAAKqlF,EAAM1kF,MACX8B,MAAOA,QACA+E,EAAMmuB,WACPnuB,EAAMuE,eACDvE,EAAM0sD,UACjBjT,MAAOA,EACPrnB,OAAQyrD,EAAM1kF,QAAU6G,EAAM7G,eACpB6G,EAAMgyB,UAAY6rD,EAAM7rD,SAAA8rD,UACvBD,EAAMC,UAAA3kF,MACV0kF,EAAM1kF,MAAAouC,QACJ,SAAC/sC,GAAA,OAtDD,SAACi/B,EAAmB2rD,GAC7B,IAAEjsF,EAAoBisF,EAApBjsF,MACJ,GADwBisF,EAAbpzD,UACChyB,EAAM7G,QAAUA,EACvB,OAAA,EAET6G,EAAMsoD,SAASnvD,GAiDmBksF,CAAS7qF,EAAGqjF,EACxC,EAAAE,SAAUgB,GACZ,KAEJ,KAoDF,OAAO,WAEH,OAAAnoD,EAAAA,YAAA,MAAA,CAAA1G,IAAUywD,EAAkB9pD,MAAO,IAAAzF,OAAIhB,EAAcj3B,MAAe,UAAA05B,MAAOkvD,EAAmB5oF,OAAA,CAnDzF,CAAAy9B,EAAAO,YAAA,MAAA,CAAAjH,IAEE2wD,QACE,CAAA,GAAAzvD,OAAIhB,EAAcj3B,MAAA,gBAAA,GAAAi4B,OAAwBhB,EAAcj3B,8BAE/Dy9B,CAAAA,EAAAO,YAAAmuD,aAAA,CAAA1tF,KAAA,OAAAglF,KAAA,SAAA2I,QAAA,GAAA,CAAApiE,QAAA,WAAA,MAAA,CACGy+D,EAAUzoF,MAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MACGorD,EAAc9oF,MAAOouC,QAAS,WAAA,OAAM+X,EAAa,OAC3D,GAAA,CAAA1oB,EAAAO,YAAAopD,EAAA,KAAA,QAEA,KACN,MAAA3pD,EAAAO,YAAA,MAAA,CAAAjH,IAGK4wD,EACLjqD,MAAO,CAAA,GAAAzF,OAAIhB,EAAcj3B,MAAA,gBAAA,GAAAi4B,OAAwBhB,EAAcj3B,MAA0B,yBAAAy9B,CAAAA,EAAAO,YAAAmuD,aAAA,CAAA1tF,KAAA,OAAAglF,KAAA,SAAA2I,QAAA,GAAA,CAAApiE,QAAA,WAAA,MAAA,CAGtF0+D,EAAW1oF,MAAAy9B,EAAAA,YAAA,MAAA,CAAA1G,IACA6wD,EAAAlqD,MAAsBqrD,EAAe/oF,MAAOouC,QAAS,WAAA,OAAM+X,EAAa,OAAM,GAAA,CAAA1oB,EAAAO,YAAAs8C,EAAA,KAAA,QAGtF,KAAA,IAELzzE,EAAMu+E,QAAA3nD,EAAAA,YAAA,MAAA,CAAAC,MACOsrD,EAAahpF,MAAOouC,QAASo8C,GACvC,CAAA/sD,EAAAA,YAAA6pD,EAAA,KAAA,QAEA,KACHS,EAAW/nF,OAAS6G,EAAMwiD,WAKzBgjC,EAAaN,IAEjBtuD,EAAAA,YAAA,MAAA,CAAAC,MAAYurD,EAAkBjpF,mCAChBkpF,EAAwBlpF,MAAAssF,QAAgB5C,GAClD,CAAAjsD,EAAAO,YAAA,MAAA,CAAAjH,IAAU0wD,EAAA/pD,MAAoByrD,EAAcnpF,MAAA05B,MAAcivD,EAAmB3oF,OAC1E6G,CAAgB,SAAhBA,EAAMmuB,OACLyI,EAAAA,YAAAsoD,GAAA,CAAAxyB,UAAuB1sD,EAAM0sD,UAAAvzD,MAAkB6G,EAAM7G,MAAOgmF,KAAMqG,GAAY,MAE/EA,WATQ,IACXA,EAuBV,ICrSFE,GAAetwD,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,QAChCzM,EAAcyM,KACd0O,EAAiBU,KAEvBwrC,EAA8B7nC,SAAOlkC,GACgEgsE,EAAArvD,GAArEooD,GADxBgH,EAAA5yE,MAAkB4yE,EAAX/G,WAC8ChlE,EAAMsG,cAAgB,GAAItG,EAAMsoD,UAAQ,GAA9Fq9B,EAAU3Z,EAAA,GAAA4Z,EAAW5Z,EAAA,GAE5B96C,EAAAA,QAAoB,OAAQ,CAAE/3B,MAAOwsF,IAG/B,IAAAE,EAAW,SAACv7C,GAA+B,IAAAw7C,EACjC,QAAd9lF,EAAAA,EAAM0+E,aAAQ,IAAAoH,GAAd9lF,EAAAA,KAAAA,EAAc,CAAExF,EAAG8vC,EAAQ9vC,KAEvBurF,EAAc,SAAC5sF,GACnBysF,EAAYzsF,IAER6sF,EAAc,YAAiE,IAAAC,EAA9DzrF,IAAAA,EAAGrB,EAAAA,EAAAA,MAAO8B,IAAAA,MACd,QAAjB+E,EAAAA,EAAM+9E,gBAAW,IAAAkI,GAAjBjmF,EAAAA,KAAAA,EAAiB,CAAE7G,MAAAA,EAAO8B,MAAAA,EAAOT,EAAAA,KAI7B0rF,EAAgB,WACd,IAAAj9D,EAAU4W,EAAe,WAC/B,IAAK5W,EAAS,MAAO,GAEf,IAAAk9D,EAAc,SAACC,GACZ,OAAAA,EACJphF,KAAI,SAACi6B,GACJ,OAAIA,EAAKC,UAAYnnC,EAAQknC,EAAKC,UAAkBinD,EAAYlnD,EAAKC,UAC9DD,CACR,IACAmX,OACAhW,QAAO,SAACnB,GACA,MAAmB,cAAnBA,EAAKnjC,KAAKlE,IACnB,KAGJ,OAAOuuF,EAAYl9D,IAEfo9D,EAAe,WAAM,IAAAC,EACnBhG,GAAsB,QAAZtgF,EAAAA,EAAMotB,YAAM,IAAAk5D,GAAZtmF,EAAYxJ,OAASwJ,EAAMotB,KAAO84D,MAAoB,GAChEK,EAAgB1mD,EAAe,UAC/B2mD,EAAalG,EAAOt7E,KAAI,SAACi6B,GAC7B,IAAMwnD,EAAWxnD,EAQV,OANHA,EAAKj/B,OACP1I,OAAO4F,KAAK+hC,EAAKj/B,OAAOsQ,SAAQ,SAAC9X,GACtBiuF,EAAAjuF,GAAOymC,EAAKj/B,MAAMxH,EAC7B,IAGKiuF,CACT,IACMC,EAAc,CAClBv4D,MAAOnuB,EAAMmuB,MACbh1B,MAAOwsF,EAASxsF,MAChBoL,KAAMvE,EAAMuE,KACZytB,SAAUhyB,EAAMgyB,SAChB06B,UAAW1sD,EAAM0sD,UACjB+xB,eAAgBz+E,EAAMy+E,eACtBF,QAASv+E,EAAMu+E,QACf+B,OAAQkG,EACRhI,SAAUx+E,EAAMw+E,SAChBh8B,OAAQ+jC,GAGR,OAAA3vD,EAAAA,YAAA,MAAA,CAAAC,MAAA59B,EAAAA,EAAAm4B,GAAAA,GAAAA,OAEQ1M,EAAYvrB,MAAuB,kBAAA,GAAA,GAAAi4B,OACnC1M,EAAYvrB,MAAAi4B,QAAAA,OAAYpxB,EAAM0sD,YAAc,IAAA,CAAA91B,EAAAO,YAAAipD,GAAA77C,EAAAA,WAI5CmiD,EAAA,CAAA/H,WACQ3+E,EAAM2+E,WAAAr2B,SACRy9B,EAAArH,MACHmH,EAAA9H,SACGiI,IAAA,SAKZ9iD,EAAgB,WAAM,IAAAyjD,EACpBrG,EAAS4F,IACXlmF,eAAAA,EAAAA,EAAMotB,YAANptB,OAAAA,EAAYxJ,OACPwJ,EAAMotB,KAAKpoB,KAAI,SAACi6B,GAAA,OAAArI,cAAAgwD,GAAAriD,EAAA2qC,WAAwBjwC,EAAA,CAAA8+C,SAAgBiI,IAAA,KAAA,IAE7D1F,GAAUA,EAAO9pF,OACZogC,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAAAzF,GAAAA,OAAI1M,EAAYvrB,MAAA,oBAAyB,CAAAmnF,SAD1D,GAKN,OAAO,WAEH,OAAA1pD,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAACmU,EAAe7xC,QACzB6G,CAAoB,WAApBA,EAAM0sD,UAAyB,CAAC25B,IAAgBnjD,KAAmB,CAACA,IAAiBmjD,OAI9F,IC3GWQ,GAAOlgD,GAAY++C,IACnBoB,GAAWngD,GAAYq3C,ICHrB+I,GAAA,CAEb99D,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU8P,QAEV3c,KAAM,CACJrpB,KAAMhC,UAGRquE,WAAY,CACVrsE,KAAMxE,QAGRqxB,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,UC9BnBguF,GAAe5xD,kBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CAELm+E,SAAU,CACRriF,KAAMgmC,SAERwmC,iBAAkB,CAChBxsE,KAAM,CAAC/C,OAAQzB,OAAQX,QAEzB8xE,aAAc,CACZ3sE,KAAMxE,QAAWyB,SAIrBs8B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,cAChCwF,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAC7BqzB,EAAe7xC,MAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAET4Z,EAAe7xC,MAAA,YAAkB6G,EAAMm+E,UAE7Cn+E,EAAMsoE,qBAGR,OAAO,WAAA,OAAA1xC,EAAAA,YAAA,MAAA,CAAAC,MAEIF,EAAQx9B,MAAA69B,MAAA,KAAAC,OAAA,KAAAH,QAAA,YAAAuV,KAAA,OAAAnV,MAAA,6BAAArE,MAMR7yB,EAAMyoE,cAAA,CAAA7xC,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,+CAAAupE,OAAA,QAAA,iBAAA,MAAA,eAAA,OAAA,QAKnB,mOChBF,IAAAC,GAAe9xD,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAyC,IAAhBwiC,EAAAD,EAAAC,MAAOrC,IAAAA,MAC9Bzb,EAAcyM,KACd0O,EAAiBU,KACjB2C,EAAgBjC,KAEhB1B,EAAWhP,EAAAA,qBACXgnD,EAAO/mD,SAAwB,UAC7Br3B,EAAU+qC,EAAAA,OAAOlkC,GAAjB7G,MACAg1B,EAAoDopD,EAApDppD,MAAOmuD,EAA6C/E,EAA7C+E,aAAcH,EAA+B5E,EAA/B4E,aAAcmB,EAAiB/F,EAAjB+F,OAAQzK,EAAS0E,EAAT1E,KAC7CsU,EAAU32D,EAAAA,OAA2B,YAAa,CAAE,GAClD42D,EAAkCD,EAAlCC,YAAaC,EAAqBF,EAArBE,iBACfzK,EAAOjlE,EAAAA,UAAS,WAAA,OAAM6qB,EAAMg5C,YAAcjE,EAAKqF,KAAKzjF,SAEpDmuF,EAAYp3D,MAAI,IAChBiuD,EAAWxmE,EAAAA,UAAS,WAAA,OAAM2kE,EAAanjF,MAAM+5B,QAAQlzB,EAAM7G,QAAW,KACtEouF,EAAer3D,OAAI,GACnBs3D,EAAkBt3D,OAAI,GACtBqY,EAAc5wB,EAAAA,UAAS,WAAA,MAAuB,UAAhBwW,EAAMh1B,MAAoB,UAAY,aACpEsuF,EAAS9vE,EAAAA,UAAS,WAAM,IAAA+vE,EACxB,MAAe,UAAf9K,EAAKzjF,MACAouF,EAAapuF,QAEfgjF,IAA4BuL,UAAbvL,EAAahjF,iBAAAuuF,SAAbA,EAAoBlwE,SAASxX,EAAM7G,OAC3D,IACMwuF,EAAWz3D,OAAI,GAEf03D,EAAkB13D,EAAAA,MAClB23D,EAAc33D,EAAAA,MACd43D,EAAa53D,EAAAA,MACb63D,EAAkB52D,GAAe,cACvCwW,GAAUmgD,EAAYv/C,GAEhB,IAAA5R,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC1B1M,EAAYvrB,MAAAF,YAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET1M,EAAYvrB,MAAA,gBAAsB6G,EAAMgyB,UAAA,GAAAZ,OACxC1M,EAAYvrB,MAAA,cAAoBsuF,EAAOtuF,WAGzCovE,EAAwB5wD,EAAAA,UAAS,WAAA,IAAAiiE,EAAA,MAAM,CAAA,GAAAxoD,OACxC1M,EAAYvrB,MAAA,gBAAA,GAAAi4B,OACZ1M,EAAYvrB,MAAY,QAAAi4B,OAAAksD,EAAS,aAAe,YAAArkF,QAAAm4B,OAE7C1M,EAAYvrB,oBAAoBouF,EAAapuF,OAEjCygF,QAFiCA,EAEnD55E,EAAMmoE,sBAAYyR,SAAlB55E,EAAkBuoE,0BAEdD,EAAmB3wD,EAAAA,UAAS,WAAA,IAAAoiE,EAAA,MAAM,CAAA,GAAA3oD,OACnC1M,EAAYvrB,MAAA,WAAAi4B,OAAejD,EAAMh1B,OACpCmkF,GAAAlsD,GAAAA,OAAa1M,EAAYvrB,MAAA,iBAAAF,EAAAm4B,CAAAA,EAAAA,GAAAA,OACnB1M,EAAYvrB,MAAyBwuF,mBAAAA,EAASxuF,OAClC,QADwC4gF,EAC1D/5E,EAAMmoE,kBAANnoE,IAAkB+5E,OAAlB/5E,EAAAA,EAAkBsoE,qBAEd0f,EAAerwE,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC/B1M,EAAYvrB,MAAAi4B,eAAAA,GAAAA,OACZ1M,EAAYvrB,+BAAAi4B,OACZ1M,EAAYvrB,MAAA,wBAAAi4B,OAA4BksD,IAAWqK,EAASxuF,MAAQ,SAAW,SAAAF,EAAAA,EAAAA,EAAAm4B,GAAAA,GAAAA,OAE5E1M,EAAYvrB,MAAA,gBAAsB6G,EAAMgyB,UAAA,GAAAZ,OACxC1M,EAAYvrB,MAAoBsuF,cAAAA,EAAOtuF,UAAAi4B,OACvC1M,EAAYvrB,MAAA,cAAoBglF,EAAShlF,WAG3C6qD,EAAWrsC,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC3B1M,EAAYvrB,oBAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAET1M,EAAYvrB,oBAAoBsuF,EAAOtuF,WAGzC8uF,EAAatwE,EAAAA,UAAS,WAAA,MAAM,CAAA1e,EAAAm4B,GAAAA,GAAAA,OAE1B1M,EAAYvrB,MAA6BsuF,uBAAAA,EAAOtuF,WAIxD+3B,EAAAA,QACE,YACA4T,WAAS,CACP3rC,MAAAA,EACA+uF,YAAa,SAACjpD,GACFqoD,EAAAnuF,MAAMiK,KAAK67B,GACjBkoD,GACFA,EAAQe,YAAYjpD,EAExB,EACAmoD,YAAa,SAACl3D,GACZ23D,EAAY1uF,MAAQ+2B,CACtB,EACAm3D,iBAAkB,SAAC7sF,GACjB,IAAM2tF,EAAU3tF,EAAE4tF,cACdC,EAAYF,IAChBG,EAAsB9tF,EACxB,KAIE,IAAA+tF,EAA0B,SAAC9pD,GAC3B5hC,EAAWuqF,IACbA,EAAY3oD,IAKV+pD,EAAmB,WACnBxoF,EAAMgyB,UACV/b,YAAW,WACJsxE,EAAapuF,QAChB05E,EAAK7yE,EAAM7G,OAGFq8B,EAAAA,WAAEulB,MAAK,WACdwtC,EAAwBX,EAAgBzuF,MAC1C,KAEFouF,EAAapuF,OAAQ,IACpB,IAGCsvF,EAAgB,SAAC91D,GAAoB,OAAAA,aAAAA,EAAAA,EAAIuH,UAAUC,SAAS,GAAA/I,OAAG1M,EAAYvrB,sBAAmB,EAC9FkvF,EAAc,SAAC11D,GACnB,QAAKA,IACE81D,EAAc91D,IAAO01D,EAAY11D,EAAGy6C,iBAGvCsb,EAAmB,SAACluF,GACxByb,YAAW,WACH,IAAA0yE,EAAUF,EAAcjuF,EAAE4tF,eAE5BZ,EAAgBruF,OAASwvF,IAC7BpB,EAAapuF,OAAQ,KACpB,IAGCmvF,EAAwB,SAAC9tF,GACvB,IAAEouF,EAA6BpuF,EAA7BouF,UAAWR,EAAkB5tF,EAAlB4tF,cACfp1D,EAAS41D,GAAaR,EAE1B,GAAIp1D,IAAW60D,EAAY1uF,MAA3B,CAGA,IADA,IAAM+8E,EAAY,SAACvjD,GAAgB,OAAAA,IAAOm1D,EAAW3uF,KAAA,EACnC,OAAX65B,GAAmBA,IAAWsG,WAAa48C,EAAUljD,IAC1DA,EAASA,EAAOkL,WAGlBspD,EAAgBruF,OAAQ,EAEnB+8E,EAAUljD,KACbu0D,EAAapuF,OAAQ,GAGvBkuF,SAAAA,EAAmB7sF,EAbe,GAe9BquF,EAAmB,WACvBrB,EAAgBruF,OAAQ,GAGpB2vF,EAAyB,WACzB9oF,EAAMgyB,UACV6gD,EAAK7yE,EAAM7G,QAGP4vF,EAAc,SAACngB,GAA4B,IAAAqR,EAC3CvtB,EAA4B,aAC3Bi7B,EAASxuF,OAASmkF,IACT5wB,EAAA,eAGd,IAAMs8B,EACJpyD,EAAAO,YAAA,MAAA,CAAAjH,IACO03D,QACE,CAAA,GAAAx2D,OACF1M,EAAYvrB,MAAAi4B,iBAAAA,GAAAA,OACZ1M,EAAYvrB,yBAAAi4B,QAAwBu2D,EAASxuF,OAASmkF,EAAS,MAAQ,sBAE9DuL,EAAA75B,aACAs5B,GAAA,CAAA1xD,EAAAO,YAAA,KAAA,CAAAN,MAAA,GAAAzF,OAEA1M,EAAYvrB,gCAA8B+pC,EAAc,UAAW,eAI/E/C,EAAQ,CACZlX,QAAS,kBAAM+/D,CAAA,GAGXC,gCAEShP,UAANj6E,EAAMmoE,sBAAA8R,EAAAA,EAAc,CAAA,EACzB,CAAA1R,sBAAAzwE,EAA2BywE,EAAsBpvE,OAAKmvE,iBAAAxwE,EAChCwwE,EAAiBnvE,OAAKo5B,QACnCg1D,EAAapuF,MACtBuzD,UAAWA,qWACXl2B,CAAA,CAAArT,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAjH,IAEU43D,EAAAjxD,MAAmBmxD,EAAa7uF,OAAA,CACvCyvE,IACH,GAJSzoC,IAQN,OAAA8oD,GAyGT,OAtBMvnD,QAAA6lD,GAAc,SAACh1D,GACnBglD,EAAK1E,KAAK7yE,EAAM7G,MAAOo5B,EAAU,MAAQ,SAC3C,IAEAmP,EAAAA,MAAMkmD,GAAiB,WAErBW,EAAwBX,EAAgBzuF,MAC1C,IAEAo8B,EAAAA,WAAU,WAAM,IAAA2zD,EACd3R,SAAa,QAAb2R,EAAA3R,EAAM8F,aAAO,IAAA6L,GAAbA,EAAa14E,IAAI,CAAErX,MAAO6G,EAAM7G,MAAO6gB,OAAQmtE,aAAAA,EAAAA,EAAShuF,MAAO2nC,MAAOX,EAAM,UAG5E,IAFA,IAAIxF,EAAO4E,EAASvlB,OAEb2gB,IAAS,iBAAiB9iC,KAAWsxF,UAANxuD,aAAMwuD,SAANA,EAAMrtF,KAAKlE,OAAO,CAAA,IAAAuxF,EAAAC,EAAAC,EACtD,GAAI,WAAWxxF,KAAW,QAAXuxF,EAAKzuD,SAAM,IAAAyuD,OAAA,EAANA,EAAMttF,KAAKlE,MAAO,CACpC+vF,EAASxuF,OAAQ,EACjB,KACF,CACAwhC,UAAA0uD,EAAO1uD,SAAM,IAAA0uD,OAAA,EAANA,EAAMrvE,MACf,CACF,IAEO,WACL,IAtGMmL,EACAmkE,EAQAC,EAEA3gB,EA2FF9+B,EAAQ,KACR0/C,EAAS,CAAA,EAYb,MAVmB,UAAf5M,EAAKzjF,QACEqwF,EAAA,CACPz6B,aAAcy5B,EACdx5B,aAAc05B,IAGdpxF,OAAO4F,KAAKijC,GAAO3pC,OAAS,IACtBszC,EAAAwzC,GAhHJn4D,EAAO0a,EAAe,QACtBypD,EAAgB,CAAA1yD,EAAAO,YAAA,MAAA,CAAAjH,IACV43D,QAAmBE,EAAa7uF,cAAgB2vF,GACvD3jE,CAAAA,EAAAyR,EAAAO,YAAA,OAAA,CAAAN,MACY,CAAAzF,GAAAA,OAAI1M,EAAYvrB,MAAA,oBAAyB0mC,CAAAA,EAAe,QAAS,CAAE4pD,QAAQ,wFAE3BvmD,EAAc,UAAW,cAGpFqmD,EAA4B,UAAf3M,EAAKzjF,OAAqBwuF,EAASxuF,MAEhDyvE,EAAiB,CACrBzjD,EAAAyR,EAAAA,YAAA,OAAA,CAAAC,MACa,CAAAzF,GAAAA,OAAI1M,EAAYvrB,MAAA,oBAAyB0mC,CAAAA,EAAe,QAAS,CAAE4pD,QAAQ,yCAEpE,QAAQ5xF,KAAK0nC,aAAAA,EAAAA,EAAUvlB,OAAO04D,MAAMgX,SAAS9xF,MAAQqwF,EAAW9uF,MAAQ,kBAC5E,CAAEsH,2BAAqB8oF,GAAmB,GAAA,EAAA,UAE5D,OAEsB,WAAf3M,EAAKzjF,MAAqBmwF,EAAgBP,EAAYngB,IAGzC,WAOpB,IANM,IAAArlC,EAAapD,EAAMlX,SAAWkX,EAAM,QACpChb,EAAO0a,EAAe,QACtBiK,EAAQ5G,EAAc,UAAW,WACnClpB,EAASulB,EAASvlB,OAClB+5B,EAAc,GAEX/5B,GAA+B,UAArBA,EAAOle,KAAKlE,MACF,aAArBoiB,EAAOle,KAAKlE,OACCm8C,GAAA,IAEjB/5B,EAASA,EAAOA,OAGZ,IAAA2vE,ECpOH,CACLC,YA1CkB,SAACj3D,GAChBA,EAAA8V,QAAQohD,cAAgBl3D,EAAGE,MAAMi3D,WACjCn3D,EAAA8V,QAAQshD,iBAAmBp3D,EAAGE,MAAMm3D,cAEvCr3D,EAAGE,MAAMoE,OAAS,IAClBtE,EAAGE,MAAMi3D,WAAa,IACtBn3D,EAAGE,MAAMm3D,cAAgB,KAqCzBC,MAnCY,SAACt3D,GACVA,EAAA8V,QAAQyhD,YAAcv3D,EAAGE,MAAMyW,SAC/B3W,EAAAE,MAAMoE,OAAS,GAAA7F,OAAGuB,EAAG6mC,aAAA,MACrB7mC,EAAAE,MAAMi3D,WAAan3D,EAAG8V,QAAQohD,cAC9Bl3D,EAAAE,MAAMm3D,cAAgBr3D,EAAG8V,QAAQshD,iBACpCp3D,EAAGE,MAAMyW,SAAW,UA+BpB6gD,WA7BiB,SAACx3D,GAClBA,EAAGE,MAAMoE,OAAS,GACftE,EAAAE,MAAMyW,SAAW3W,EAAG8V,QAAQyhD,aA4B/BE,YA1BkB,SAACz3D,GAChBA,EAAA8V,QAAQohD,cAAgBl3D,EAAGE,MAAMi3D,WACjCn3D,EAAA8V,QAAQshD,iBAAmBp3D,EAAGE,MAAMm3D,cACpCr3D,EAAA8V,QAAQyhD,YAAcv3D,EAAGE,MAAMyW,SAE/B3W,EAAAE,MAAMoE,OAAS,GAAA7F,OAAGuB,EAAG6mC,aAAA,MACxB7mC,EAAGE,MAAMyW,SAAW,UAqBpB+gD,MAnBY,SAAC13D,GACW,IAApBA,EAAG6mC,eACL7mC,EAAGE,MAAMoE,OAAS,IAClBtE,EAAGE,MAAMi3D,WAAa,IACtBn3D,EAAGE,MAAMm3D,cAAgB,MAgB3BM,WAbiB,SAAC33D,GAClBA,EAAGE,MAAMoE,OAAS,GACftE,EAAAE,MAAMyW,SAAW3W,EAAG8V,QAAQyhD,YAC5Bv3D,EAAAE,MAAMi3D,WAAan3D,EAAG8V,QAAQohD,cAC9Bl3D,EAAAE,MAAMm3D,cAAgBr3D,EAAG8V,QAAQshD,mBDuO1BH,IAAAA,YAAaK,EAAON,EAAPM,MAAOE,EAAAR,EAAAQ,WAAYC,IAAAA,YAAaC,EAAOV,EAAPU,MAAOC,EAAAX,EAAAW,WAEtDf,EAA4B,UAAf3M,EAAKzjF,OAAqBwuF,EAASxuF,MAEhDmwF,EAAgB,CAAA1yD,EAAAO,YAAA,MAAA,CAAAjH,IACV43D,QAAmBE,EAAa7uF,cAAgB2vF,GACvD3jE,CAAAA,EAAAyR,EAAAO,YAAA,OAAA,CAAAN,MACY,CAAAzF,GAAAA,OAAI1M,EAAYvrB,MAAA,oBAAyB0mC,CAAAA,EAAe,QAAS,CAAE4pD,QAAQ,MACvFlmD,GACC3M,EAAAA,YAAAowD,GAAA,CAAA1e,iBACoB2f,EAAW9uF,MAAAsvE,aACf,CAAEhoE,UAAW,UAAA2wB,OAAUm4D,GAAa,GAAM,YAC1D,QAAA3yD,EAAAA,YAAA0uD,EAAAA,WAAA,CAAA1tF,KAIImwF,EAAgB5uF,oBACPywF,EAAAW,QACNN,EAAAO,aACKL,EACdM,cAAeL,EACfM,QAASL,eACKC,GAAA,CAAAnnE,QAAA,WAAA,MAAA6rD,CAAAA,EAAAA,eAAAp4C,EAAAO,YAAA,KAAA,CAAAN,MAEmBmtB,EAAS7qD,MAAO05B,MAAO,CAAE,iBAAA,GAAAzB,OAAqB2iB,EAAgB,QAAA,CAC5FjK,IACHslC,CAAAA,CAAAA,EAAAub,MAFYlD,EAAOtuF,SAAO,KAMxByvE,EAAiB,CACrBzjD,EAAAyR,EAAAA,YAAA,OAAA,CAAAC,MACa,CAAAzF,GAAAA,OAAI1M,EAAYvrB,MAAA,oBAAyB0mC,CAAAA,EAAe,QAAS,CAAE4pD,QAAQ,yCAEpE,QAAQ5xF,KAAKmiB,EAAO04D,MAAMgX,SAAS9xF,MAAQqwF,EAAW9uF,MAAQ,KAChFsvE,aAAc,CAAEhoE,UAAW,UAAA2wB,OAAUm4D,GAAmB,GAAA,EAAA,QAAS,cAAe,SAEpF,OAEA,MAAsB,WAAf3M,EAAKzjF,MAAqBmwF,EAAgBP,EAAYngB,GAoCpBgiB,IAGzCh0D,EAAAO,iBAAAoN,aAAA,CAAA1N,MACaF,EAAQx9B,OAAWqwF,IAC3B1/C,IAIT,mOEnUF,IAAA+gD,GAAez1D,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAOonD,GAAK,IAAA0jC,EAAAC,EAAAC,EAAAC,EACVvmE,EAAcyM,KACZuhD,EAAUniD,EAAAA,qBAAVmiD,MACRvoB,EAAAA,aAAY,WACN/C,EAAIjnB,MAAMjrB,SACRowD,GAAS,QAAS,sFAE1B,IACA,IAAAyG,EAAwC7nC,SAAOlkC,GAAvC7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAYxyC,EAASu5C,EAATv5C,SAC0Ew5C,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA9F00B,EAAahR,EAAA,GAAAiR,EAAcjR,EAAA,GAC6EkR,EAAAvgE,GAA3E2nD,GAAgB9xC,EAAUxyB,EAAMs7E,gBAAiBt7E,EAAM27E,SAAU,YAAU,GAAxGQ,EAAce,EAAA,GAAAgO,EAAWhO,EAAA,GAC1BZ,EAAepsD,MAAI,IACnB/B,EAAQxW,EAAAA,UAAS,WAAA,OAAM3X,EAAMmuB,SAC7B0uD,EAAYllE,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAC5B1M,EAAYvrB,MAAAi4B,SAAAA,GAAAA,OACZ1M,EAAYvrB,uBAAAi4B,OACZ1M,EAAYvrB,MAAA,WAAAi4B,OAAepxB,EAAMmuB,WAEhCyuD,EAAO1sD,EAAAA,IAAIlwB,EAAMw7E,YACjB2L,EAAUriD,WAAS,IACnBu4C,EAAQ,IAAIpB,GAAM,CAAEC,SAAS,EAAMC,aAAcA,EAAahjF,QAEpE+3B,EAAAA,QAAyB,SAAU,CACjC0rD,KAAAA,EACAzuD,MAAAA,EACAkvD,MAAAA,EACAC,QAAQ,EACRnB,aAAAA,EACAa,YAAAA,EACAV,aAAAA,EACAl2D,OAAQ,SAACjtB,GACP8jF,EAAe9jF,EACjB,EACA05E,KAAM,SAAC15E,EAAkB2C,GACvB,IAAM02B,EAAW16B,EAAIqkF,EAAahjF,OAC5B8B,EAAQu3B,EAASU,QAAQ/5B,GAEZ,UAAfyjF,EAAKzjF,MACM,QAAT2C,GACgB,IAAdb,GAEFu3B,EAASpvB,KAAKjK,GAEE,WAAT2C,GACT02B,EAAS7tB,OAAO1J,EAAO,GAED,WAAf2hF,EAAKzjF,YAAgC,IAAVA,IACpCq5B,EAAS7tB,OAAO,EAAG,IACD,IAAd1J,GACFu3B,EAASpvB,KAAKjK,IAGlB+xF,EAAY14D,EACd,IAII,IAAA24D,EAAkB,SAAChyF,GACvB8jF,EAAe9jF,GACfiyF,EAAuBjyF,IAGnBkyF,EAAsB,SAAClyF,GACrB,IAAA2iF,EAAMuB,EAAMiO,SAASnyF,GAC3BguF,EAAQ3wF,OAAS,EACT2wF,EAAA/jF,KAAApE,MAAAmoF,EAAArvF,EAAQgkF,KAIZp6C,QAAAy6C,GAAc,SAAChjF,GACA,WAAfyjF,EAAKzjF,OACPkyF,EAAoBlyF,EAAM,GAE9B,IAIAuoC,QAAMs7C,GAHqB,SAAC7jF,GACbmjF,EAAAnjF,MAAQkkF,EAAMj3D,OAAOjtB,MAGpCuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMw7E,UACZ,IAAA,SAACriF,GACCyjF,EAAKzjF,MAAQA,CACf,IAGFo8B,EAAAA,WAAU,WAAM,IAAAmyD,EACdpL,EAAanjF,MAAQkkF,EAAMj3D,OAAO42D,EAAY7jF,QACtB,QAApBuuF,EAAAvL,EAAahjF,aAAO,IAAAuuF,OAAA,EAApBA,EAAoBlxF,QAAS,GACX60F,EAAAlP,EAAahjF,MAAM,GAE3C,IAEM,IAAAiyF,EAAyB,SAACjyF,GAAqB,IAAAoyF,EAC7CC,EAAiBrE,EAAQ92B,MAAK,SAACnyC,GAAM,OAAAA,EAAE/kB,QAAUA,KAC9B,QAAzBoyF,EAAAC,EAAejkD,eAAU,IAAAgkD,GAAzBA,EAAA9zF,KAAA+zF,EAAyB,CAAEryF,MAAAA,IAC3B,IAAQu6B,EAAsB83D,EAAtB93D,GAAIyT,EAAkBqkD,EAAlBrkD,KAAMvrC,EAAY4vF,EAAZ5vF,QACdurC,IACKrR,OAAAi9C,SAAS5rC,KAAOqkD,EAAerkD,MAElC,IAAAspC,EAAS+a,EAAe/a,QAAUiC,EAAMI,QAC1Cp/C,GAAM+8C,IACR70E,EAAU60E,EAAO70E,QAAQ83B,GAAM+8C,EAAOrtE,KAAKswB,KAmBzCujD,EAAU/mD,EAAAA,MACVu7D,EAAWv7D,EAAAA,MACXw7D,EAAUx7D,EAAAA,MACVy7D,EAAez7D,EAAAA,MAiEf07D,EAAY,SAACzrD,EAAgB0rD,GAC3B1rD,EAAA7vB,SAAQ,SAACqqB,GAAS,IAAAme,EAAAgzC,EAAAC,EAAAtP,EAChBuP,EAAwB,QAAxBlzC,EAAYne,EAAK36B,aAAO,IAAA84C,OAAA,EAAZA,EAAY3/C,MACS,cAAT2yF,QAAzBA,EAAAnxD,EAAK7+B,YAALgwF,IAAyBA,OAAzBA,EAAAA,EAAyBl0F,OAA0D,eAA7B,QAALm0F,EAAApxD,EAAK7+B,YAAA,IAAAiwF,OAAA,EAALA,EAAyBn0F,OAC7EylF,EAAM7sE,qWAAIgmB,CAAA,CAAEr9B,MAAO6yF,EAAWhyE,OAAQ6xE,EAAa/qD,MAAQnG,EAAKuE,SAAiB,SAAYvE,EAAK36B,QAEhGnD,EAAmC,QAAvB4/E,EAAA9hD,EAAKuE,gBAAkB,IAAAu9C,OAAA,EAAvBA,EAAA,SACdmP,EAAWjxD,EAAKuE,mBAA4B8sD,GAG1Cj0F,EAAQ4iC,EAAKuE,WACL0sD,EAAAjxD,EAAKuE,SAAqB8sD,EAExC,KAIF,OAFUJ,GAAoB,QAApBd,GAAAC,EAAA3jC,EAAIjnB,OAAgB,eAApB2qD,IAAoBA,OAApBA,EAAAA,EAAArzF,KAAAszF,MAAmC,QAAfC,GAAKC,EAAA7jC,EAAIjnB,OAAMlX,eAAV+hE,IAAUA,OAAVA,EAAAA,EAAAvzF,KAAAwzF,KAAyB,IAErD,WAAM,IAAAgB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EApGqBv6C,EA9GV90B,EAmNhBk+D,GAAawQ,QAANjsF,EAAAA,EAAMy7E,gBAAAwQ,SAANjsF,EAAAA,KAAAA,EAAayd,EAACA,MAAsB,QAAjByuE,GAAAC,EAAA/kC,EAAIjnB,OAAMs7C,YAAVyQ,IAAiBA,OAAjBA,EAAAA,EAAAz0F,KAAA00F,IAC1BzQ,GAAmB,QAAN17E,EAAAA,EAAM07E,kBAAA,IAAA0Q,OAAA,EAANpsF,EAAAA,KAAAA,EAAmByd,EAACA,MAA4B4uE,QAA5BA,GAAKC,EAAAllC,EAAIjnB,OAAMu7C,kBAAV2Q,IAAuBA,OAAvBA,EAAAA,EAAA50F,KAAA60F,MAAgDC,QAAzBA,GAAKC,EAAAplC,EAAIjnB,OAAMjrB,eAAVq3E,IAAoBA,OAApBA,EAAAA,EAAA90F,KAAA+0F,IAIlEvjE,WAAUwjE,GAAAC,EAAAtlC,EAAIjnB,OAAM,eAAA,IAAAssD,OAAA,EAAVA,EAAAh1F,KAAAi1F,iBAAyBE,EAAAxlC,EAAIjnB,OAAMlX,eAAU,IAAA0jE,OAAA,EAApBA,EAAAl1F,KAAAm1F,KAAyB,GAGhE,OAAAh2D,EAAAA,YAAA,MAAA,CAAAC,MAAYgmD,EAAU1jF,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACL1M,EAAYvrB,+BAA+BsyF,GACvDhQ,CAAAA,GAAA7kD,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACgB1M,EAAYvrB,MAAoB,eAAA+2B,IAAKw7D,GACjDjQ,CAAAA,IADF7kD,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAIW1M,EAAYvrB,MAAc,SAAA+2B,IAAK+mD,GAC1C,CAAAhuD,IAEFyyD,GAAA9kD,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACgB1M,EAAYvrB,MAA0B,qBAAA+2B,IAAKy7D,GACvDjQ,CAAAA,MAIS,WAAfkB,EAAKzjF,QA5Ha,IAAnBguF,EAAQ3wF,OAAqB,KACjCogC,EAAAA,YAAA,KAAA,CAAAC,MACa,CAAA,GAAAzF,OAAI1M,EAAYvrB,MAA4B,uBAAA,GAAAi4B,OAAG1M,EAAYvrB,MAAA,uCAErD6jF,EAAY7jF,eAAiBgyF,IAnH1B5tE,EAmH0B80B,EACvC80C,EAAQniF,KAAI,SAACi6B,GACZ,IAAA4tD,EAAA,OAAAj2D,EAAAA,YAAAkwD,GAAA,CAAA3tF,MAAiB8lC,EAAK9lC,MAAOsgD,MAAwB,QAAxBozC,EAAO5tD,EAAK6B,QAAQ,UAAI,IAAA+rD,OAAA,EAAjBA,EAAiB3tD,UAAA,SArHzC,mBAAA3hB,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAuHhB80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,UAwHV,ICnQay6C,GAAA,CAEb7jE,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU8P,QAEVqF,KAAM,CACJrrC,KAAM/C,OACNoqB,QAAS,IAGXgC,KAAM,CACJrpB,KAAMhC,UAGR8B,QAASkmC,QAET2uC,OAAQ,CACN30E,KAAMxE,QAKRy1F,WAAYjrD,QAEZ9O,OAAQ,CACNl3B,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAS,UAAW,QAAQjnB,SAASinB,EACzD,GAGF/K,GAAI,CACF53B,KAAM,CAAC/C,OAAQzB,SAGjB6B,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,SAGjBuuC,QAASztC,yOChDX,IAAAkzF,GAAe53D,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACA0wC,MAAO,CAAC,SACRrb,eAAMr1B,EAAwBonD,GACtB,IAAA2kB,EAAsE7nC,EAAAA,OAAOlkC,GAA3EmnC,EAAM4kC,EAAN5kC,KAAMnU,EAAA+4C,EAAA/4C,OAAQU,EAAIq4C,EAAJr4C,GAAI1B,EAAA+5C,EAAA/5C,SAAU74B,EAAO4yE,EAAP5yE,MAAOouC,EAAAwkC,EAAAxkC,QAASwlD,EAAYhhB,EAAZghB,WAAYnxF,EAAAmwE,EAAAnwE,QAC1D8oB,EAAcyM,KACd0O,EAAiBU,KACjB2C,EAAgBjC,KAEhBs2C,EAAO/mD,SAAwB,UAC/B2lD,EAAUjmD,EAAAA,MACVqP,EAAWhP,EAAAA,qBAEjBoX,GAAUwuC,GACJ,IAAAgR,EAAU32D,EAAAA,OAA2B,YAAa,MAClD4B,EAASza,EAAAA,UAAS,WAAA,OAAM4/D,EAAKyF,YAAY7jF,QAAU6G,EAAM7G,SACzDkiF,EAAY1jE,EAAAA,UAAS,WAAA,IAAAs1E,EAAA,eAAAA,EAAM1V,EAAK8D,8BAAL4R,EAAgB9zF,SAC3Cw9B,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC1B1M,EAAYvrB,MAAAF,eAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAET1M,EAAYvrB,MAAA,cAAoBi5B,EAAOj5B,OAAAi4B,GAAAA,OACvC1M,EAAYvrB,sBAAsB6G,EAAMgyB,UAAA,GAAAZ,OACxC1M,EAAYvrB,MAA4B,uBAACiuD,EAAIjnB,MAAMhb,OAASnlB,EAAMmlB,MAAA,GAAAiM,OAClE1M,EAAYvrB,MAAwB,oBAAEguF,IAAY5P,EAAK+F,YAGzD7M,EAAS94D,EAAAA,UAAS,WAAA,OAAM3X,EAAMywE,SAAUlxC,aAAA,EAAAA,EAAUmzC,MAAMI,YAExDjiC,EAAc,SAACr2C,GAAkB,IAAA0yF,EAAAC,EAErC,GADA3yF,EAAE24E,mBACEnhD,EAAS74B,MAAb,CAGA,GAFKo+E,EAAAnxD,OAAOjtB,EAAMA,eAClB+zF,EAAA3lD,EAAQpuC,oBAAR+zF,EAAAz1F,KAAA8vC,EAAgB,CAAE/sC,EAAAA,EAAGrB,MAAOA,EAAMA,QAC9Bu6B,EAAGv6B,OAAU4zF,EAAW5zF,OAASguC,EAAKhuC,MAAQ,CAC1C,IAAAi0F,EAAUxxF,EAAQzC,MAAQ,UAAY,OACrCs3E,EAAAt3E,MAAMi0F,GAAS15D,EAAGv6B,OAASguC,EAAKhuC,cAAa,SAAC8hD,GAKjD,GAAa,yBAAbA,EAAIrjD,OACHqjD,EAAI3oC,QAAQkF,SAAS,oDAEhB,MAAAyjC,CAEV,GACF,CACAksC,iBAAAgG,EAAAhG,EAASE,+BAAT8F,EAAA11F,KAAA0vF,EAA4B3sF,EAjBR,GAyBtB,OAJA+6B,EAAAA,WAAU,WAAM,IAAA2zD,EACd3R,SAAa,QAAb2R,EAAA3R,EAAM8F,aAAN6L,IAAaA,GAAbA,EAAa14E,qWAAAgmB,CAAA,CAAMr9B,MAAO6G,EAAM7G,MAAO6gB,OAAQmtE,aAAAA,EAAAA,EAAShuF,MAAO2nC,MAAOsmB,EAAIjnB,MAAA,SAAkBngC,GAC9F,IAEO,WAAM,IAAAqtF,EA3DG9vE,EA4DR+vE,EAAA12D,EAAAO,YAAA,KAAA,CAAAjH,IACKimD,QAAgBx/C,EAAQx9B,cAAgB03C,GAC9ChR,CAAAA,EAAe,QACfktD,EAAW5zF,8BAEFguC,EAAKhuC,MAAQguC,EAAKhuC,MAAQu6B,EAAGv6B,MAAek0F,UAAP5c,EAAOt3E,aAAPk0F,IAAOA,OAAPA,EAAAA,EAAcr/E,QAAQ0lB,EAAGv6B,OAAOguC,KAAO,GAAAnU,OAC1EA,EAAO75B,MAAA09B,MAAA,GAAAzF,OACL1M,EAAYvrB,kCACb,SAACqB,UAAMA,EAAEwzE,0DAEFtpD,EAAYvrB,yBAAwB+pC,CAAAA,EAAc,UAAW,eAE7EiE,EAAKhuC,MACPy9B,EAAAO,YAAA,IAAA,CAAAgQ,KACQA,EAAKhuC,aACH65B,EAAO75B,sBACLurB,EAAYvrB,MACtB,oBAAAouC,QAAS,SAAC/sC,GAAM,OAAAw3B,EAAS74B,OAASqB,EAAEwzE,0DAEpBtpD,EAAYvrB,0BAAwB+pC,EAAc,UAAW,eAAWtM,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAG1E1M,EAAYvrB,MAAA,mBAAA,CAAwB+pC,EAAc,UAAW,eAK7EvI,EAAO4E,aAAAA,EAAAA,EAAUvlB,OAEvB,OAAIqhE,EAAUliF,OAAS,SAAStB,KAAK8iC,eAAAA,EAAM7+B,KAAKlE,MAE5Cg/B,EAAAA,YAAAg7C,GAAA,CAAA3oD,QAAkB,WAAA,OAAMia,EAAc,UAAW,UAAY,EAAAwpB,UAAA,SA3FnD,mBAAAnvC,EA4FP+vE,IA5FO/6C,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA4FP+vE,EAAA,CAAAnqE,QAAA,WAAA,MAAA,CAAAmqE,EAAA,IAIAA,EAEX,IC/FaC,GAAA,CAEb5kE,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,YCPnB0zF,GAAep4D,kBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAAA,GACAq1B,MAAQ,WACN,IAAM3Q,EAAcyM,KACd0O,EAAiBU,KAEvB,OAAO,WAAA,OAAA3J,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU1M,EAAYvrB,MAAA,gBAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV1M,EAAYvrB,MAAA,uBAA4B0mC,CAAAA,EAAe,QAAS,CAAE4pD,QAAQ,MACxF5pD,EAAe,aAGtB,ICFW4tD,GAAO9mD,GAAY+1C,IACnBgR,GAAW/mD,GAAYkkD,IACvB8C,GAAUhnD,GAAYugD,IACtB0G,GAAWjnD,GAAYqmD,IACvBa,GAAYlnD,GAAY6mD,ICXtBM,GAAA,CAEb58C,MAAO,CACLp1C,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAAU,SAASjnB,SAASinB,EAC9C,GAGFsvD,kBAAmBjsD,QAEnBksD,UAAWlsD,QAEX1c,aAAc,CACZtpB,KAAM/C,OACNoqB,aAAS,GAGX8qE,UAAWnsD,QAEXosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEX9P,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXjB,OAAQ,CACNpmB,KAAMhC,UAGRs0F,WAAY,CACVtyF,KAAM,CAAC/C,OAAQzB,OAAQX,QAGzB8iD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBu0F,aAAc,CACZvyF,KAAM9C,QAGRs1F,UAAW,CACTxyF,KAAM,CAAC/C,OAAQC,SAGjBpB,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGX4E,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXmtB,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXqrE,qBAAsB1sD,QAEtB2sD,gBAAiB3sD,QAEjBv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFiwD,WAAY5sD,QAEZusB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGR60F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBgC,KAAM,CACJA,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAAU,MAAO,MAAO,WAAY,SAAU,SAAU,UAAUjnB,SAASinB,EAC7F,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,SAGjB41F,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAETytC,QAASztC,SAETg1F,iBAAkBh1F,SAElBi1F,mBAAoBj1F,SAEpBywF,QAASzwF,SAETk1F,QAASl1F,SAETm1F,UAAWn1F,SAEXo1F,WAAYp1F,SAEZq1F,QAASr1F,SAETi1D,aAAcj1D,SAEdk1D,aAAcl1D,SAEds1F,QAASt1F,SAETu1F,WAAYv1F,SAEZ2rF,QAAS3rF,UCrJJ,SAASw1F,GAAYhlD,GAC1B,IAAMC,EAAkBha,EAAAA,qBAClBg/D,EAAoB53E,EAAAA,UAAS,WAAA,OAAM4yB,EAAgBvqC,MAAMuuF,YAEzDiB,EAAeh/D,EAAAA,OAA6B,eAAuBl5B,OAAA2G,OAAO,OAEhF,OAAO0Z,YAAS,WAAM,IAAA83E,EAAAC,EAAAC,EAChB,OAAA72E,GAAUwxB,SAAS,QAAAmlD,EAATnlD,EAASslD,sBAATH,IAASA,OAATA,EAAAA,EAAyBt2F,OAAemxC,EAAQslD,eAAez2F,MAEzE2f,GAAUy2E,aAAAA,EAAAA,EAAmBp2F,OAAeo2F,EAAkBp2F,MAE9D2f,GAAUwxB,SAAS,QAAAolD,EAATplD,EAASulD,qBAATH,IAASA,OAATA,EAAAA,EAAwBv2F,OAAemxC,EAAQulD,cAAc12F,QAEvE2f,WAAA62E,EAAUH,EAAajB,gBAAA,IAAAoB,OAAA,EAAbA,EAAuBx2F,QAAeq2F,EAAajB,SAASp1F,KAG5E,GACF,CCAO,IAAM22F,GAAgB,WAC3B,IAAMprE,EAAcyM,KAEpB,OAAOxZ,YAAS,WACR,IAAAoP,EAAAqK,GAAAA,OAAU1M,EAAYvrB,MAAA,SACtBV,EAAA24B,GAAAA,OAAW1M,EAAYvrB,MAAA,UACvButD,EAAAt1B,GAAAA,OAAQ1M,EAAYvrB,MAAA,OAEnB,MAAA,CACL4tB,KAAAA,EACA0yB,gBAAU1yB,EAAA,WACVgpE,mBAAahpE,EAAA,gBACbipE,iBAAWjpE,EAAA,WACXkpE,mBAAalpE,EAAA,UACbmpE,2BAAqBnpE,EAAA,oBACrBopE,4BAAsBppE,EAAA,qBACtBqpE,mBAAarpE,EAAA,cACbspE,0BAAoBtpE,EAAA,sBACpBsnC,iBAAWtnC,EAAA,YACXupE,gBAAU73F,EAAA,WACV83F,eAAS93F,EAAA,UACTmtB,kBAAY8gC,EAAA,YACZ8pC,wBAAkBzpE,EAAA,oBAClBmL,gBAAUw0B,EAAA,UACVhhC,kBAAYghC,EAAA,YAEhB,GACF,EAEkB+pC,YAAAA,GAAAA,OAChBA,EAAkB,gBAAA,MAClBA,EAAU,QAAA,UACVA,EAAO,KAAA,OAHSA,CAAA,EAAAA,IAAA,CAAA,GA0CLC,GAaR55F,OAAO,eAEC65F,GAER75F,OAAO,mBC5GL,SAAS85F,GAAevxD,GAEvB,IAeAwxD,EAAcl5E,EAAAA,UAAS,WAC3B,ItQgJ6Bgd,EsQhJ7Bm8D,EAA2CzxD,EAAOlmC,MAA1Cm1F,EAAAwC,EAAAxC,UAAWD,EAAcyC,EAAdzC,aAAcl1F,EAAA23F,EAAA33F,MACjC,GAAIigB,GAASjgB,GAAQ,OAAOJ,OAAOI,GAInC,GAHIm1F,GAAaD,GACX/oB,GAAK,QAAS,kDAEhBgpB,EAAW,CACb,IAAM93F,EAAS2C,SAAAA,EAAO3C,OtQ2InBsB,EAAK68B,OADmBA,EsQ1IqBx7B,GtQ2IxCw7B,EAAO,IAAKn+B,OsQ3IqC,EACzD,MAAA,GAAA46B,OAAU56B,EAAU46B,KAAAA,OAAAk9D,EACtB,CACA,OAAID,EACFj9D,GAAAA,OAAUsD,GAAmBv7B,GAAS,IAAO,KAAAi4B,OAAAi9D,GAExC,EACT,IAEM0C,EAAcp5E,EAAAA,UAAS,WAC3B,GAAIk5E,EAAY13F,MAAO,CACrB,IAAoD63F,EAAAr0E,GAA3Bk0E,EAAY13F,MAAMuP,MAAM,KAAG,GAA7CkR,EAASo3E,EAAA,GAAAppE,EAAKopE,EAAA,GACrB,OAAOh4F,OAAO4gB,GAAW5gB,OAAO4uB,GAAS,QAAU,EACrD,CACO,MAAA,EACT,IAEMqpE,EAAUt5E,EAAAA,UAAS,WAEvB,OADmB0nB,EAAOlmC,MAAlBk1D,QACS0iC,EAAY53F,KAC/B,IAEM+3F,EAAmB,WAAM,IAAAC,EAAAC,EACH,QAA1BD,GAAAC,EAAA/xD,EAAOlmC,OAAMk2F,kBAAb8B,IAA0BA,GAA1BA,EAAA15F,KAAA25F,EAA0B,CACxBl/D,MAAO6+D,EAAY53F,MAAQ,sBAAmB,KAU3C,OANPuoC,QAAMqvD,EAAaG,GAEnB37D,EAAAA,WAAU,WACRw7D,EAAY53F,OAAS+3F,GACvB,IAEO,CACLD,QAAAA,EACAJ,YAAAA,EACAQ,sBA3D4B,SAACC,GAC7B,ItQ6KF38D,EACAjc,EACA64E,EsQ/KEC,EAAuDnyD,EAAOlmC,MAAtD40F,EAAAyD,EAAAzD,kBAAmBO,EAAWkD,EAAXlD,UAAWD,EAAAmD,EAAAnD,aACtC,IAAMC,IAAaD,GAAiBN,IAAsBuD,EAAmB,OAAAA,EAC7E,GAAIhD,EAEK,OtQyKX35D,EsQzKiC28D,EtQ0KjC54E,EsQ1K6C41E,EtQ8KzCx2F,EAAKy5F,QAAAA,EAAU,IAAK75F,QAAQlB,SAAWkiB,EAAkB64E,GAAU,GAChEz5F,EAAK68B,QAAAA,EAAO,IAAKj9B,MAAM,EAAGghB,GAAWrQ,KAAK,IsQ7K/C,GAAIgmF,EAAc,CACV,IAAAxxE,EAAI6X,GAAmB48D,EAAYjD,GACrC,GAAAxyF,EAASghB,GACX,OAAOA,EAAEiY,UAEb,GAiDJ,CCtEgB,SAAA28D,GAAehzD,EAAiB3iC,GAC9C,MAAa,WAATA,EACK2iC,GAAe,IAARA,EAAYzlC,OAAOylC,QAAO,EAEnCA,CACT,CAOgB,SAAAizD,GAAS1xF,EAA4B0gD,GACnD,IAAAqrB,EAA8B7nC,SAAOlkC,GAA7B7G,EAAA4yE,EAAA5yE,MAAO6rE,EAAW+G,EAAX/G,WACTssB,EAAaphE,EAAAA,MACbyhE,EAAgBzhE,OAAI,GACpB0hE,EAAmB1hE,EAAAA,MACnB2hE,EAAe3hE,MAAI,MACnB4hE,EAAoB5hE,EAAAA,MACpB8B,EAAWqY,KACXkkD,EAAWe,KACkFtjB,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAE1BimB,EAAU/hE,OAAI,GACd+B,EAAU/B,OAAI,GACdgiE,EAAahiE,EAAAA,IAAIlwB,EAAMlE,MACvBq2F,EAAWjiE,MAAsB,MAUvCkiE,EAAwDxB,GARpCj5E,EAAAA,UAAS,WAAA,MAAO,CAClCxe,MAAO,MAAC,EAAW,MAAMqe,SAASu6E,EAAW54F,YAAS,EAAYJ,OAAOg5F,EAAW54F,OACpFk1D,OAAQruD,EAAMquD,OACdigC,UAAWt1F,OAAOgH,EAAMsuF,WACxBD,aAAcruF,EAAMquF,aACpBN,kBAAmB/tF,EAAM+tF,kBACzBsB,WAAYrvF,EAAMqvF,WAClB,KACMwB,EAAauB,EAAbvB,YAAaQ,EAAAe,EAAAf,sBAAuBJ,EAAQmB,EAARnB,QAEtCoB,EAAY16E,EAAAA,UAAS,WACzB,OACIo6E,EAAW54F,QAAU64B,EAAS74B,OAAS6G,EAAMmuF,YAAcI,EAASp1F,OAAU6G,EAAMwuF,uBACtFyD,EAAQ94F,KAEZ,IAEMgsD,EAAQ,WAAM,IAAAmtC,EAClBrgE,EAAQ94B,OAAQ,UAChBm5F,EAAAH,EAASh5F,oBAATm5F,EAAgBntC,SAgCZotC,EAAkB,WAAwB,IAAvBr0E,EAAAnf,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAgB,GACjCyzF,EAAUL,EAASh5F,MACzB,GAAKq5F,EAAL,CACM,IAAAC,EAAK15F,OAAOmlB,GACbs0E,EAAQr5F,OAGTq5F,EAAQr5F,QAAUs5F,IACpBD,EAAQr5F,MAAQs5F,EANJ,GASVC,EAAyB,SAACl4F,GAAqC,IAAAm4F,EAE/Dl0D,EADejkC,EAAXw4B,OAC+B75B,MAEpB,WAAf6G,EAAMlE,MAAiD,iBAArBi2F,EAAW54F,OAAsBslC,EAAIjoC,QAAoBm8F,QAApBA,EAASZ,EAAW54F,aAAXw5F,IAAWA,OAAXA,EAAAA,EAAkBn8F,UACpGioC,EAAM4yD,EAAsB5yD,IAEhBuzD,EAAAP,GAAehzD,EAAKz+B,EAAMlE,MAAO,CAAEtB,EAAAA,EAAG+pD,QAAS,UAE7D/uB,EAAAA,UAAS,WAEY,WAAfx1B,EAAMlE,MAAqB,aAAajE,KAAK4mC,GAC/C8zD,EAAgB9zD,GAEhB8zD,EAAgBR,EAAW54F,MAE/B,KA2BI82F,EAAWz/D,EAAOA,OAAAmgE,QAAsB,GAmFvC,OA7CPjvD,EAAAA,OACE,WAAA,OAAM1hC,EAAMiuF,SACZ,IAAA,SAAC90F,IACe,IAAVA,GACFq8B,EAAAA,UAAS,WAAM,IAAAo9D,UACbA,EAAAT,EAASh5F,oBAATy5F,EAAgBztC,OAClB,GAEJ,GACA,CAAE6F,WAAW,IAGftpB,EAAAA,MACEqwD,GACA,SAACtzD,EAAKo0D,GACE,IAAAC,EAA8B,WAAf9yF,EAAMlE,UAEZ,IAAX+2F,GAAwB7yF,EAAMkiB,QAAyB,iBAARuc,IAAqBq0D,EAC3DxB,EAAAn4F,MAAQ6G,EAAMkiB,OAAOuc,GAEhC6yD,EAAWn4F,MAAQslC,EAGrB,IAAMs0D,EAAwB,iBAARt0D,EAAmBA,EAAM4yD,EAAsB5yD,GACjEs0D,IAAWt0D,GAAQq0D,GACrBd,EAAce,EAAQ,CAAExuC,QAAS,WAErC,GACA,CAAEyG,WAAW,IAGftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAMlE,IACZ,IAAA,SAACoiB,GACCg0E,EAAW/4F,MAAQ+kB,CACrB,GACA,CAAE8sC,WAAW,IAGRtK,EAAA,CACLyxC,SAAAA,EACAhtC,MAAAA,EACA6tC,KAnKW,WAAM,IAAAC,EACjBhhE,EAAQ94B,OAAQ,UAChB85F,EAAAd,EAASh5F,oBAAT85F,EAAgBD,UAoKX,CACLf,QAAAA,EACAhgE,QAAAA,EACAigE,WAAAA,EACAG,UAAAA,EACAF,SAAAA,EACAN,aAAAA,EACAP,WAAAA,EACAK,cAAAA,EACAC,iBAAAA,EACAf,YAAAA,EACAI,QAAAA,EACAiC,UA7KgB,SAAC14F,GAAkB,IAAA24F,EAC/BlB,EAAQ94F,OAAS84B,EAAQ94B,QAC7Bm4F,EAAWn4F,MAAQ44F,EAAW54F,MAC1B6G,EAAMgyB,WACVC,EAAQ94B,OAAQ,UAChBg6F,EAAAnzF,EAAMgvF,eAAU,IAAAmE,GAAhBA,EAAA17F,KAAAuI,EAAgB+xF,EAAW54F,MAAO,CAAEqB,EAAAA,OAyKpC44F,kBA/FwB,SAAC54F,GACL,IAAA64F,GAdF,WAAM,IAAAC,EACpB/V,EAAMuU,EAAkB34F,MAC5B,KAAKokF,GAAQA,EAAIgW,SAAyB,QAAdD,EAACzB,EAAa14F,aAAbm6F,IAAaA,GAAbA,EAAoBxP,KAAQ,CAAC,OAAQ,OAAOtsE,SAAS+lE,EAAIgW,UAAiB,OAAA,EACvG,KAAOhW,GAAK,CAAA,IAAAiW,EACN,IAAoB,QAApBA,EAAA3B,EAAa14F,aAAO,IAAAq6F,OAAA,EAApBA,EAAoB1P,OAAQvG,EACvB,OAAA,EAETA,EAAMA,EAAIr/C,UACZ,CACO,OAAA,GAKFu1D,GAWGtuC,KAVFnlD,EAAMkiB,SACRovE,EAAWn4F,MACmB,iBAArB44F,EAAW54F,OAAqC,WAAf6G,EAAMlE,KAC1Ci2F,EAAW54F,MACX6G,EAAMkiB,OAAO6vE,EAAW54F,QAEhC84B,EAAQ94B,OAAQ,UAChBk6F,EAAArzF,EAAM4uF,cAAS,IAAAyE,GAAfA,EAAA57F,KAAAuI,EAAe+xF,EAAW54F,MAAO,CAAEqB,EAAAA,IACnCy1F,SAAAA,EAAUyD,eAsFZC,uBAhF6B,SAACn5F,GAAwB,IAAAo5F,EACtDjC,EAAcx4F,OAAQ,EACtBy4F,EAAiBz4F,MAAQ,GACzBu5F,EAAuBl4F,WACvBo5F,EAAA5zF,EAAM8uF,+BAAN8E,EAAAn8F,KAAAuI,EAAyBjH,OAAOg5F,EAAW54F,OAAQ,CAAEqB,EAAAA,KA6ErDq5F,yBA1E+B,SAACr5F,GAAwB,IAAAs5F,EACxDnC,EAAcx4F,OAAQ,EAChB,IACaA,EACVqB,EADPyqD,cAAiB9rD,MAEnBy4F,EAAiBz4F,MAAQA,UACzB26F,EAAA9zF,EAAM+uF,iCAAN+E,EAAAr8F,KAAAuI,EAA2BjH,OAAOg5F,EAAW54F,OAAQ,CAAEqB,EAAAA,KAqEvDu5F,YAlEkB,SAACv5F,GAAkB,IAAAw5F,EAAApnD,UACrConD,EAAA7B,EAASh5F,oBAAT66F,EAAgB7uC,QACV,QAAAvY,EAAA5sC,EAAAunC,eAAA,IAAAqF,GAAAA,EAAAn1C,KAAAuI,EAAU,CAAExF,EAAAA,KAiElBy5F,aAhKmB,WACnB,IAAIjiE,EAAS74B,MAAb,CACA,IAAM+6F,EAAkC,aAArBhC,EAAW/4F,MAAuB,OAAS,WAC9D+4F,EAAW/4F,MAAQ+6F,CAFC,GAgKpBC,YA7HkB,SAAC35F,GACnB,IAAM45F,EAAiB55F,EAAE65F,WAA6B,0BAAhB75F,EAAE65F,UAEd51D,EACjBjkC,EADPyqD,cAAiB9rD,MAEfi7F,GAAkBzC,EAAcx4F,MAClCy4F,EAAiBz4F,MAAQslC,EAG3Bi0D,EAAuBl4F,IAqHvB85F,UA5KgB,SAAA/xD,GAA8B,IAAAgyD,EAA3B/5F,EAAA+nC,EAAA/nC,EACbikC,EAAqB,WAAfz+B,EAAMlE,UAAoB,EAAY,GAClDk2F,EAAcvzD,EAAK,CAAEjkC,EAAAA,EAAG+pD,QAAS,UAC3B,QAAAgwC,EAAAv0F,EAAA6uF,eAAA,IAAA0F,GAAAA,EAAA98F,KAAAuI,EAAU,CAAExF,EAAAA,KA0KlBg6F,qBAvK2B,SAACh6F,GAC5Bs3F,EAAkB34F,MAAQqB,EAAEw4B,QAuK5B++D,WAAAA,EAEJ,CCjPgB,SAAA0C,GAAcz0F,EAAqBmyF,EAAiCJ,GAClF,IAAAhmB,EAAmC7nC,SAAOlkC,GAAlCguF,EAAAjiB,EAAAiiB,UAAWjmE,EAAYgkD,EAAZhkD,YACb2sE,EAAcxkE,MAAqB,MACnCykE,EAAgBzkE,MAAI,MAEpB0kE,EAAmB,WAClBF,EAAYv7F,OAAUg5F,EAASh5F,QAEpCg5F,EAASh5F,MAAM05B,MAAMmE,MAAQhB,iBAAiB0+D,EAAYv7F,OAAO69B,QAGnEkyC,GAAkBwrB,GAAa,WACzB1G,EAAU70F,QACEw7F,EAAAx7F,MAAQ8c,YAAW,WACd2+E,IACjBr+E,aAAao+E,EAAcx7F,SAjBZ,KAoBrB,IAEAq4C,EAAAA,iBAAgB,WACdj7B,aAAao+E,EAAcx7F,MAC7B,IAqBO,OANPo8B,EAAAA,WAAU,WACJy4D,EAAU70F,OAbduoC,EAAAA,MACE,CAACqwD,EAAYhqE,IACb,WACOimE,EAAU70F,OACfq8B,EAAAA,UAAS,WACUo/D,GACnB,GACF,GACA,CAAE5pC,WAAW,GAQjB,IAEO,CACL0pC,YAAAA,EAEJ,0tBCrCA,IAAAG,GAAez/D,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CAIH80F,UAAW,CACTh5F,KAAMgmC,QACN3e,SAAS,GAKX4xE,iBAAkB,CAChBj5F,KAAMgmC,QACN3e,SAAS,KAGbkS,eAAMr1B,EAAAA,GAAmB,IAAV0gD,EAAAne,EAAAme,OACLhwB,EAAiBP,GAAU,SAA3BO,aACR88B,EAA6DpB,GAAc,CACzE4oC,WAAYC,GACZC,cAAeC,GACfC,sBAAuBC,KAHjBL,EAAAxnC,EAAAwnC,WAAYE,EAAe1nC,EAAf0nC,cAAeE,EAAA5nC,EAAA4nC,sBAK7B7G,EAAWe,KACXt9D,EAAWqY,KAEXW,EAAiB7Z,GAAe,SAChCmkE,EAAmBnkE,GAAe,eAClCokE,EAAmBpkE,GAAe,eACxC8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KACV5M,EAAcyM,KACd0O,EAAiBU,KACjBi1D,EAaF9D,GAAS1xF,EAAO0gD,GAZlBuxC,EAAAuD,EAAAvD,QACAhB,EAAAuE,EAAAvE,QACAkB,EAAAqD,EAAArD,SACAD,EAAAsD,EAAAtD,WACAG,EAAAmD,EAAAnD,UACApgE,EAAAujE,EAAAvjE,QACAq/D,EAAAkE,EAAAlE,WACAK,EAAA6D,EAAA7D,cACAC,EAAA4D,EAAA5D,iBACAG,EAAAyD,EAAAzD,WACAlB,EAAA2E,EAAA3E,YACG4E,EAAA3iE,GAAA0iE,EAAA3hE,IAGG6gE,EAAgBD,GAAcz0F,EAAOmyF,EAAUJ,GAA/C2C,YAEFgB,EC/DM,SAAqB11F,EAAqBiyF,GAClD,IA8BA0D,EAAa,SAACz3E,GAAgB,OAAA+zE,EAAQ94F,MAAQ+kB,CAAA,EAc7C,MAAA,CACL+zE,QAAAA,EACA2D,cA9CoB,SAACp7F,GACrB,IAAIwF,EAAMgyB,SAAV,CACM,IAE2C6jE,EAE1CC,EAJCznB,EAAS7zE,EAAT6zE,KACF0nB,EAAWtE,GAAgBj3F,EAAEyqD,cAAmC9rD,MAAO6G,EAAMlE,MAC/E,SAASjE,KAAKw2E,IAAS,SAASx2E,KAAK2C,EAAEhC,KACzBq9F,QAAhBA,EAAA71F,EAAMuqF,eAANsL,IAAgBA,GAAhBA,EAAAp+F,KAAAuI,EAAgB+1F,EAAU,CAAEv7F,EAAAA,IAEVs7F,QAAlBA,EAAA91F,EAAMivF,iBAAN6G,IAAkBA,GAAlBA,EAAAr+F,KAAAuI,EAAkB+1F,EAAU,CAAEv7F,EAAAA,GANZ,GA8CpBw7F,YApCkB,SAACx7F,GAAqB,IAAAy7F,EACxC,IAAIj2F,EAAMgyB,SAAV,CACA,IAAM+jE,EAAWtE,GAAgBj3F,EAAEyqD,cAAmC9rD,MAAO6G,EAAMlE,MACnEm6F,QAAhBA,EAAAj2F,EAAMmvF,eAAN8G,IAAgBA,GAAhBA,EAAAx+F,KAAAuI,EAAgB+1F,EAAU,CAAEv7F,EAAAA,GAFR,GAoCpB07F,eA/BqB,SAAC17F,GAAqB,IAAA27F,EAC3C,IAAIn2F,EAAMgyB,SAAV,CACA,IAAM+jE,EAAWtE,GAAgBj3F,EAAEyqD,cAAmC9rD,MAAO6G,EAAMlE,MAChEq6F,QAAnBA,EAAAn2F,EAAMkvF,kBAANiH,IAAmBA,GAAnBA,EAAA1+F,KAAAuI,EAAmB+1F,EAAU,CAAEv7F,EAAAA,GAFX,GA+BpB47F,cA1BoB,SAAC57F,GAAsB,IAAA67F,EAC3C,IAAIr2F,EAAMgyB,SAAV,CAEM,IAAAskE,EAAW97F,EAAE+7F,eAAiBzgE,OAAOygE,cACrC,QAAAF,EAAAr2F,EAAAovF,eAAA,IAAAiH,GAAAA,EAAA5+F,KAAAuI,EAAU,CAAExF,EAAAA,EAAGg8F,WAAYF,eAAAA,EAAUG,QAAQ,eAH/B,GA0BpBC,mBAlByB,SAACl8F,GAAA,IAAAm8F,EAAA,OAAkC,QAAlCA,EAAkB32F,EAAMylF,eAAU,IAAAkR,OAAA,EAAhBA,EAAAl/F,KAAAuI,EAAgB,CAAExF,EAAAA,GAAG,EAmBjEo8F,kBAjBwB,SAACp8F,GAAkB,IAAAq8F,EAC3ClB,GAAW,GACL,QAAAkB,EAAA72F,EAAA+uD,oBAAA,IAAA8nC,GAAAA,EAAAp/F,KAAAuI,EAAe,CAAExF,EAAAA,KAgBvBs8F,kBAbwB,SAACt8F,GAAkB,IAAAu8F,EAC3CpB,GAAW,GACL,QAAAoB,EAAA/2F,EAAAgvD,oBAAA,IAAA+nC,GAAAA,EAAAt/F,KAAAuI,EAAe,CAAExF,EAAAA,KAa3B,CDQ8Bw8F,CAAqBh3F,EAAOiyF,GAEhDgF,EAAet/E,EAAAA,UAAS,WAAA,IAAAu/E,EAAA,OAA2BA,QAA3BA,EAAMl3F,EAAM+nB,mBAAemvE,IAAAA,EAAAA,EAAAxmE,EAAav3B,MAAM4uB,eACtEovE,EAAax/E,EAAAA,UAAS,WAAM,IAAAy/E,EAehC,OAAO/jE,GAdO,CACZ46D,UAAWjuF,EAAMiuF,UACjBj8D,SAAUA,EAAS74B,MACnBo1F,SAAUA,EAASp1F,MACnB4uB,YAAakvE,EAAa99F,MAC1BvB,KAAMoI,EAAMpI,WAAQ,EACpBkE,KAAMo2F,EAAW/4F,MACjBisB,qBAAcplB,EAAAA,EAAMolB,oBAAiB,IAAAgyE,EAAAA,EAAA1mE,EAAav3B,MAAMisB,mBAAgB,EACxEiyE,aAAc9I,EAASp1F,MAAQ,KAAO,MACtCm+F,WAAYt3F,EAAM0uF,YAMtB,IAEM6I,EAAc5/E,EAAAA,UAAS,WAAA,MAAM,CACjC29E,EAAiBn8F,MAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAEX4Z,EAAe7xC,sBAAsB6G,EAAMguF,YAAchuF,EAAM+0F,sBAIjEyC,EAAcnkE,GAAc,CAChC27D,QAASyG,EAAYvC,UACrBtE,OAAQ6G,EAAYrC,kBACpBnE,UAAWyG,EAAkBE,cAC7BzG,QAASuG,EAAkBM,YAC3B9G,WAAYwG,EAAkBQ,eAC9B9G,QAASsG,EAAkBU,cAC3BtH,iBAAkB2G,EAAY9B,uBAC9B5E,mBAAoB0G,EAAY5B,2BAGlC,OAAO,WAAM,IAAA4D,EAAAC,EAAAC,EACLrnD,EAAazQ,EAAe,cAC9B0Q,EAAa1Q,EAAe,cAC5B+3D,EAAe/3D,EAAe,gBAC5B4Z,EAAQ5Z,EAAe,QAAS,CAAE4pD,QAAQ,IAC1C1xD,EAAS8H,EAAe,UACxBg4D,EACJhH,EAAY13F,OAAS6G,EAAMyuF,gBACzB73D,EAAAO,YAAA,MAAA,CAAAN,MACS,IAAAzF,OACF1M,EAAYvrB,MAAAF,wBAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET1M,EAAYvrB,MAAsB64B,gBAAAA,EAAS74B,SAIlD,CAAA03F,EAAY13F,QAEb,KAEA2+F,EAAer+C,EAAQ7iB,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,aAAkBsgD,CAAAA,IAAe,KACtFs+C,EACJhgE,GAAU8/D,EAAAjhE,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACO4Z,EAAe7xC,MAAA,aAAA,CAC3B4+B,EACA8/D,IAED,KAEF73F,GAAe,aAAfA,EAAMlE,KAAqB,CACvB,IAAAk8F,EAAgB,CAAA/+F,QAAAm4B,OAAO4Z,EAAe7xC,MAAwB,mBAAC64B,EAAS74B,QACrD,aAArB+4F,EAAW/4F,MACbo3C,EAAA3Z,EAAAO,YAAA+9D,EAAA,CAAAr+D,MAAmCmhE,EAAezwD,QAASkuD,EAAYxB,cAAc,MACvD,SAArB/B,EAAW/4F,QACpBo3C,EAAA3Z,EAAAO,YAAA69D,EAAA,CAAAn+D,MAAgCmhE,EAAezwD,QAASkuD,EAAYxB,cAAc,MAEtF,CAEI5B,EAAUl5F,QAEO,aAAf6G,EAAMlE,KACR87F,EAAAhhE,EAAAO,YAAAi+D,EAAA,CAAAllE,IAESulE,EAAY5D,6BACP7mD,EAAe7xC,MAAA,kBAAAouC,QAChBkuD,EAAYnB,UACrB2D,YAAaxC,EAAYjB,sBAC3B,MAGFjkD,EAAA3Z,EAAAO,YAAAi+D,EAAA,CAAAllE,IAESulE,EAAY5D,6BACP7mD,EAAe7xC,MAAA,kBAAAouC,QAChBkuD,EAAYnB,UACrB2D,YAAaxC,EAAYjB,sBAC3B,OAKN,IAAM79D,EAAU,CACdqU,EAAe7xC,MACf6G,EAAMouF,WAAAn1F,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,KAEHq4B,EAAKn4B,MAAM6G,EAAMuE,MAAuB,WAAfvE,EAAMuE,MAC/BstB,EAAO14B,MAAM64B,SAAWA,EAAS74B,OACjC04B,EAAO14B,MAAM84B,SAAUD,EAAS74B,OAAgB84B,EAAQ94B,UAAAi4B,OACrD1M,EAAYvrB,cAAAi4B,OAAY6/D,EAAQ93F,OAAU83F,EAAQ93F,OAA2B,YAAlB83F,EAAQ93F,OAAUi4B,GAAAA,OAC7E1M,EAAYvrB,wBAAe6G,EAAMkxC,OAA0B,SAAhBlxC,EAAMkxC,OAAU,GAAA9f,OAC3D1M,EAAYvrB,MAAA,gBAAsBo1F,EAASp1F,OAAAi4B,GAAAA,OAC3C4Z,EAAe7xC,MAAA,YAAkBm3C,GAAcwnD,GAAA1mE,GAAAA,OAC/C4Z,EAAe7xC,MAAkBo3C,YAAAA,GAAcwnD,GAAA,GAAA3mE,OAC/C4Z,EAAe7xC,MAAsB6G,gBAAAA,EAAMkuF,YAAA,GAAA98D,OAC3C4Z,EAAe7xC,mBAAmB84B,EAAQ94B,QAI5Cw1F,EAAO9uD,EAAe,QAEtBq4D,EAAc,CAClB3C,EAAiBp8F,MAAA,GAAAi4B,OACd1M,EAAYvrB,MAAA,SAAA,GAAAi4B,OACZ1M,EAAYvrB,MAAYi4B,QAAAA,OAAA6/D,EAAQ93F,OAAS,YAG9C,OAAA61E,EAAAC,eAAAr4C,EAAAO,YAAA,MAAA,CAAAN,MACc0gE,EAAYp+F,OAAO,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAEpBF,EAAA4Q,QACEkuD,EAAY1B,YAAAhlC,aACP2mC,EAAkBkB,kBAChC5nC,aAAc0mC,EAAkBoB,kBAAArR,QACvBiQ,EAAkBgB,oBAE1BpmD,CAAAA,EACC1Z,EAAAO,YAAA,OAAA,CAAAN,MAAa,CAAA,GAAAzF,OAAI4Z,EAAe7xC,MAAiB,YAAA,GAAAi4B,OAAG4Z,EAAe7xC,MAAA,mBAChEm3C,CAAAA,IAED,KACHwnD,EAAAlhE,EAAAO,oBAAAoN,aAAA,CAAA1N,MAGQ,IAAAzF,OAAI4Z,EAAe7xC,iBAAgBF,EAAA,CAAA,EAAA,GAAAm4B,OAAM4Z,EAAe7xC,wBAAwB6G,EAAM80F,aACzFqC,EAAWh+F,MACXq+F,EAAA,CAAAtnE,IACCiiE,EACLh5F,MAAOw4F,EAAcx4F,MAAkCs+F,QAAlCA,EAAQ7F,EAAiBz4F,aAASs+F,IAAAA,EAAAA,EAAA,GAAgB,QAAhBC,EAAKpG,EAAWn4F,aAAA,IAAAu+F,EAAAA,EAAS,WACvE,SAACl9F,UAAai7F,EAAYtB,YAAY35F,EACjD,IAAA,MACCwF,EAAMguF,WACLp3D,EAAAA,YAAA,OAAA,CAAA1G,IAAWwkE,EAAA79D,MAAA,GAAAzF,OAAuB1M,EAAYvrB,6BAC3Cw4F,EAAcx4F,MAAkC,QAAlCw+F,EAAQ/F,EAAiBz4F,aAAS,IAAAw+F,EAAAA,EAAA,GAAK5F,EAAW54F,OAAS89F,EAAa99F,QAG1F4+F,EACAH,EAAAhhE,EAAAO,YAAA,OAAA,CAAAN,MAEU,IAAAzF,OACF4Z,EAAe7xC,MAAAi4B,YAAAA,GAAAA,OACf4Z,EAAe7xC,MAAA,iBAAA,GAAAi4B,OACf4Z,EAAe7xC,MAAA,aACpB,CAECy+F,IAED,KACHrnD,EAAA3Z,EAAAO,YAAA,OAAA,CAAAN,MAEU,CAAA,GAAAzF,OACF4Z,EAAe7xC,MAAA,YAAA,GAAAi4B,OACf4Z,EAAe7xC,MAAAF,iBAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACZ4Z,EAAe7xC,MAAA,WAAiBk5F,EAAUl5F,SAClD,CAECo3C,IAED,OAELo+C,8BAAoBuJ,GAAcvJ,CAAAA,MAAzBvf,CAAAA,CAAAA,QApD0C,WAAfpvE,EAAMlE,QAwDnD,IEnPaq8F,GAAA,CAEbC,SAAUt2D,SCHZu2D,GAAejjE,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAOm4F,GACP9iE,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,eAChC0O,EAAiBU,KACjB+3D,EAAQ3gF,EAAAA,UAAS,WAAA,MAAM,CAC3BqzB,EAAe7xC,MAAAF,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET4Z,EAAe7xC,MAAA,cAAoB6G,EAAMo4F,cAG1C,OAAA,WAAA,OAAAxhE,EAAAA,YAAA,MAAA,CAAAC,MAAkByhE,EAAMn/F,OAAQ0mC,CAAAA,EAAe,aACxD,ICJW04D,GAAQ5xD,GAAYkuD,IACpB2D,GAAa7xD,GAAY0xD,ICNvBI,GAAA,CAEbvnD,MAAO,CACLp1C,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAAU,SAASjnB,SAASinB,EAC9C,GAGFi6D,oBAAqB,CACnB58F,KAAMgmC,QACN3e,SAAS,GAGX6qE,UAAWlsD,QAEX62D,cAAe,CACb78F,KAAM,CAAC9C,OAAQ1B,QACf6rB,aAAS,GAGX6O,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXjB,OAAQ,CACNpmB,KAAMhC,UAGR8+F,WAAY,CACV98F,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjB++F,YAAa/2D,QAEbxhC,IAAK,CACHxE,KAAM,CAAC/C,OAAQC,QACfmqB,QAASxK,KAGX5D,IAAK,CACHjZ,KAAM,CAAC/C,OAAQC,QACfmqB,SAASxK,KAGXoP,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXorE,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGFljB,KAAM,CACJzf,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,GAGX4U,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,MAAO,UAAUjnB,SAASinB,EAC9C,GAGFkwD,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,SAGjB41F,OAAQ90F,SAERwuD,SAAUxuD,SAEVywF,QAASzwF,SAETk1F,QAASl1F,SAETm1F,UAAWn1F,SAEXo1F,WAAYp1F,SAEZq1F,QAASr1F,SAETu1F,WAAYv1F,UCpIP,SAASg/F,GAAStiG,GAChB,OAAA,IAAIG,MAAMH,GAAQ61C,KAAK,GAAGhkC,KAAK,GACxC,CAKO,SAAS0wF,GAAcC,GAC5B,IAAKA,EAAY,OAAA,EACjB,GAAI5/E,GAAS4/E,GAAa,OAAChgG,OAAOmkD,MAAM67C,GAExC,IADU,gCAAgCnhG,KAAKmhG,GAChC,OAAA,EAKf,IAHA,IAAIC,EAAS,EACTC,EAAgB,EAChBC,EAAW,EACN1iG,EAAI,EAAGF,EAAMyiG,EAAIxiG,OAAQC,EAAIF,EAAKE,IAAK,CAC1C,GAAW,MAAXuiG,EAAIviG,KACM0iG,GAAA,GACG,EAAU,OAAA,EAE3B,GAAI,SAASthG,KAAKmhG,EAAIviG,MACVwiG,GAAA,GACG,EAAU,OAAA,EAErB,GAAW,MAAXD,EAAIviG,KACWyiG,GAAA,GACG,EAAU,OAAA,CAElC,CACO,OAAA,CACT,CAGgB,SAAAE,GAAkBJ,GAA8B,IAAjBK,EAAAt6F,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GAC7C,OAA6B,IAAzBi6F,EAAI9lE,QAAQ,MACVoyC,GAAM,cAAe,gCAClB0zB,IAEJA,GAAgB,MAARA,GAAeK,EAAiB,GACjC,MAARL,EAAoBA,GAChBK,EAAUL,EAAIp9F,QAAQ,MAAO,IAAMo9F,EAAIp9F,QAAQ,MAAO,MAAQ,GACxE,CAOO,SAAS09F,GAAkBC,EAAcC,GAU9C,IAVqF,IAAzBH,EAAAt6F,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GACtD06F,EAAUL,GAAkBG,EAAMF,GAClCK,EAAUN,GAAkBI,EAAMH,GAClCM,EAAgBF,EAAQjjG,OAASkjG,EAAQljG,OACzCojG,EAAYD,EAAgBF,EAAUC,EACtCG,EAAYF,EAAgBD,EAAUD,EACtCK,EAAsB,GACtBv+E,EAAO,GACPkH,EAAO42E,EAAU,EAAIO,EAAUpjG,OAASqjG,EAAUrjG,OAClDD,EAAM8iG,EAAUQ,EAAUrjG,OAASojG,EAAUpjG,OAC1CC,EAAIF,EAAM,EAAGE,GAAK,EAAGA,IAAK,CACjC,IAAMsjG,EAAWtjG,EAAIgsB,EAEfhkB,EAAQzF,OAAO4gG,EAAUnjG,KAAOuC,OAAO6gG,EAAUE,KAAc,IAAMx+E,EAAK9kB,IAAM,GAClFgI,GAAS,KACX8c,EAAK9kB,EAAI,GAAK,GAEhBqjG,EAAUrmE,QAAQ16B,OAAO0F,EAAQ,IACnC,CAKA,OAHI8c,GAAU,IACZu+E,EAAUrmE,QAAQ,KAEhB4lE,EACKS,EAAU1oE,OAAOwoE,EAAUliG,MAAMnB,EAAKqjG,EAAUpjG,SAAS6R,KAAK,IAEhEyxF,EAAUzxF,KAAK,GACxB,CAOgB,SAAA2xF,GAAuBT,EAAcC,GAC7C,IAAyDS,EAAAt9E,GAAd48E,EAAK7wF,MAAM,KAAG,GAAAwxF,EAAAD,EAAA,GAAxDE,OAAa,MAAA,IAAKD,EAAAE,EAAAH,EAAA,GAAAI,OAAiB,IAAjBD,EAAiB,IAAGA,EACkBE,EAAA39E,GAAd68E,EAAK9wF,MAAM,KAAG,GAAA6xF,EAAAD,EAAA,GAAxDE,OAAa,MAAA,IAAKD,EAAAE,EAAAH,EAAA,GAAAI,OAAiB,IAAjBD,EAAiB,IAAGA,EACvCE,EAAarB,GAAkBa,EAAYK,GAE7C,GAAmB,MAAnBH,GAA6C,MAAnBK,EAA+B,OAAAC,EACvD,IAAAC,EAAoBxB,GAAkBiB,GAAgB,GACtDQ,EAAoBzB,GAAkBsB,GAAgB,GAEtDI,EAAmBxB,GAAkBsB,EAAmBC,GAAmB,GAE3EE,EAAgBD,EAAiBtkG,OAEvC,OAAIukG,EAAgBH,EAAkBpkG,QAAUukG,EAAgBF,EAAkBrkG,OACzE,CACL4iG,GAAkBE,GAAkBqB,EAAY,MAChDvB,GAAkB0B,EAAiBpjG,MAAM,IAAI,IAC7C0oC,QAAO,SAACliB,UAAcA,CAAC,IAAE7V,KAAK,KAE3B,CACL+wF,GAAkBuB,GAClBvB,GAAkB0B,GAAkB,IACpC16D,QAAO,SAACliB,UAAcA,CAAC,IAAE7V,KAAK,IAClC,CAKA,SAAS2yF,GAA0BzB,EAAcC,GACzC,IAAAC,EAAUL,GAAkBG,GAC5BG,EAAUN,GAAkBI,GAC9B,GAAAC,EAAQjjG,SAAWkjG,EAAQljG,OAAQ,CACrC,IAAA,IAASC,EAAI,EAAGF,EAAMkjG,EAAQjjG,OAAQC,EAAIF,EAAKE,IAAK,CAC9C,GAAAgjG,EAAQhjG,GAAKijG,EAAQjjG,GAAW,OAAA,EAChC,GAAAgjG,EAAQhjG,GAAKijG,EAAQjjG,GAAW,OAAA,CACtC,CACO,OAAA,CACT,CACA,OAAOgjG,EAAQjjG,OAASkjG,EAAQljG,OAAS,GAAI,CAC/C,CAEA,SAASykG,GAA0B1B,EAAcC,GAI/C,IAHM,IAAAC,EAAUF,GAAiB,MAATA,EAAeA,EAAK39F,QAAQ,MAAO,IAAM,IAC3D89F,EAAUF,GAAiB,MAATA,EAAeA,EAAK59F,QAAQ,MAAO,IAAM,IAExDnF,EAAI,EAAGF,EADE8J,KAAKC,IAAIm5F,EAAQjjG,OAAQkjG,EAAQljG,QAClBC,EAAIF,EAAKE,IAAK,CAC7C,IAAKgjG,EAAQhjG,IAAM,IAAMijG,EAAQjjG,IAAM,GAAW,OAAA,EAClD,IAAKgjG,EAAQhjG,IAAM,IAAMijG,EAAQjjG,IAAM,GAAW,OAAA,CACpD,CACO,OAAA,CACT,CAMO,SAASykG,GAAclC,GAC5B,IAAkCmC,EAAAx+E,GAAbq8E,EAAItwF,MAAM,KAAG,GAA3B6wF,EAAM4B,EAAA,GAAA3B,EAAI2B,EAAA,GACjB,IAAK3B,EAAa,OAAAR,EAClB,IAAiDoC,EAAAz+E,GAAbq8E,EAAItwF,MAAM,KAAG,GAA1C2yF,EAASD,EAAA,GAAAE,EAAAF,EAAA,GAAAG,OAAc,IAAdD,EAAc,GAAEA,EAC1BE,EAAYxiG,OAAOwgG,GAClBH,EAAgC18E,GAArB4+E,EAAY7yF,MAAM,KAAG,GAAzB,GACV,GAAA8yF,EAAYnC,EAAQ7iG,OAAQ,CAC9B,IAAMilG,EAAe3C,GAAS0C,EAAYnC,EAAQ7iG,QAClD,OAAO+iG,EAAK39F,QAAQ,YAAa,IAAM6/F,CACzC,CACM,IAAAC,EAAKL,EAAQz/F,QAAQ,MAAO,IAAMy9F,EAAQ3hG,MAAM,EAAG8jG,GACnDG,EAAKtC,EAAQ3hG,MAAM8jG,GACzB,OAAOG,EAAK,CAACD,EAAIC,GAAItzF,KAAK,KAAOqzF,CACnC,CA2BO,SAASE,GAAW5C,GACzB,MAAO,EAAYrgF,IAAAA,KAAUnB,SAASxe,OAAOggG,GAC/C,CAGO,SAAS6C,GAAa7C,GACpB,OAAAhgG,OAAOggG,GAAOhgG,OAAOo7B,kBAAoBp7B,OAAOggG,GAAOhgG,OAAO8iG,gBACvE,CAKgB,SAAAC,GACdxC,EACAC,EACAX,GAEA,IAAMmD,EAAsBH,GAAatC,IAASsC,GAAarC,KAAUX,EACnEoD,EAAoBL,GAAWrC,IAASqC,GAAWpC,GACzD,OAAIwC,GAAuBC,EAErBjjG,OAAOugG,KAAUvgG,OAAOwgG,GAAc,EACnCxgG,OAAOugG,GAAQvgG,OAAOwgG,GAAQ,GAAI,EA5C7B,SACdD,EACAC,GAEM,IAAoD0C,EAAAv/E,GAA7Bu+E,GAAc3B,GAAM7wF,MAAM,KAAG,GAAnDyzF,OAAUC,EAAQF,EAAA,GACiCG,EAAA1/E,GAA7Bu+E,GAAc1B,GAAM9wF,MAAM,KAAG,GAAnD4zF,OAAUC,EAAQF,EAAA,GACnB5hG,EAASugG,GAA0BmB,EAASvgG,QAAQ,IAAK,IAAK0gG,EAAS1gG,QAAQ,IAAK,KACpF4gG,EAAqBL,EAAS3kF,SAAS,KACvCilF,EAAqBH,EAAS9kF,SAAS,KAC7C,OAAIglF,IAAuBC,GAA2B,GACjDD,GAAsBC,EAA2B,EAClDD,GAAsBC,EACT,IAAXhiG,EAAqB,EAClBA,EAAS,GAAS,EAAA,EAEZ,IAAXA,EACKwgG,GAA0BmB,EAAUG,GAEtC9hG,CACT,CA4BSiiG,CAAmB3jG,OAAOwgG,GAAOxgG,OAAOygG,GACjD,CAQgB,SAAAmD,GACdpD,EAAcC,EAAc96E,GAE5B,GAAI66E,IAASC,EAAa,MAAA,IAY1B,IAXA,IAAAj3D,EAA8B7jB,GAAK,CAAC,EAA5B26E,EAAA92D,EAAA82D,QAASuD,EAASr6D,EAATq6D,SACXnD,EAAUL,GAAkBG,GAC5BG,EAAUN,GAAkBI,GAC5BG,EAAgBqB,GAA0BvB,EAASC,GAAW,EAC9DE,EAAYD,EAAgBF,EAAUC,EACtCG,EAAYF,EAAgBD,EAAUD,EACtCK,EAAsB,GAEtBv+E,EAAO,GACPkH,EAAO42E,EAAU,EAAIO,EAAUpjG,OAASqjG,EAAUrjG,OAClDD,EAAM8iG,EAAUQ,EAAUrjG,OAASojG,EAAUpjG,OAC1CC,EAAIF,EAAM,EAAGE,GAAK,EAAGA,IAAK,CACjC,IAAMsjG,EAAWtjG,EAAIgsB,EAEjBhkB,EAAQzF,OAAO4gG,EAAUnjG,KAAOuC,OAAO6gG,EAAUE,KAAc,IAAMx+E,EAAK9kB,IAAM,GAChFgI,EAAQ,IACV8c,EAAK9kB,EAAI,GAAK,EACLgI,GAAA,IAEDq7F,EAAArmE,QAAQ16B,OAAO0F,GAC3B,CACA,GAAI46F,EACK,OAAAS,EAAU1oE,OAAOwoE,EAAUliG,MAAMnB,EAAKqjG,EAAUpjG,SAAS6R,KAAK,IAEnE,IAAAw0F,EAAc/C,EAAUzxF,KAAK,IAIjC,OAHKu0F,IACWC,EAAAA,EAAYjhG,QAAQ,MAAO,KAEpCw9F,GAAkBO,EAAgBkD,MAAczrE,OAAIyrE,GAC7D,CAQgB,SAAAC,GAA4BvD,EAAcC,GACxD,GAAID,IAASC,EAAa,MAAA,IAC1B,IAAMG,EAAgBoC,GAAcxC,EAAMC,GAAM,GAAQ,EAElDK,EAAYF,EAAgBH,EAAOD,EAEqBwD,EAAApgF,IAH5Cg9E,EAAgBJ,EAAOC,GAGY9wF,MAAM,KAAG,GAAvDyxF,EAAY4C,EAAA,GAAAC,EAAAD,EAAA,GAAA1C,OAAiB,IAAjB2C,EAAiB,IAAGA,EACuBC,EAAAtgF,GAAnBk9E,EAAUnxF,MAAM,KAAG,GAAvD8xF,EAAYyC,EAAA,GAAAC,EAAAD,EAAA,GAAAvC,OAAiB,IAAjBwC,EAAiB,IAAGA,EACnCC,EAAgBR,GAA2BxC,EAAYK,GAEvD,GAAmB,MAAnBH,GAA6C,MAAnBK,EACrB,OAAAf,EAAgBwD,aAAoBA,GAG7C,IAAIC,EAAgB,GAChBC,EAAehD,EAEfA,EAAe7jG,OAASkkG,EAAelkG,SACzC6mG,KAAAjsE,OAAkBipE,GAAiBjpE,OAAA0nE,GAAS4B,EAAelkG,OAAS6jG,EAAe7jG,UAGjFykG,GAA0BoC,EAAc3C,IAAmB,EAC7D0C,EAAgBT,GAA2BU,EAAc3C,EAAgB,CAAErB,SAAS,KAEhFgB,EAAe7jG,OAASkkG,EAAelkG,QAA6B,MAAnB6jG,GACnD+C,EAAgBT,cAA+BU,GAAgB3C,EAAgB,CAAEkC,UAAU,IAC3FQ,EAAgBtE,GAAS4B,EAAelkG,OAAS4mG,EAAc5mG,QAAU4mG,GAEzEA,EAAgBT,GAA2BtC,EAAgBK,EAAgB,CAAErB,SAAS,IAExE8D,EAAAR,GAA2BQ,EAAe,MAEtD,IAAAN,EAAcO,EAAgB,CAACD,EAAeC,GAAe/0F,KAAK,KAAO80F,EACxE,OAAAxD,EAAgBkD,aAAkBA,EAC3C,CAsDO,SAASS,GAActE,EAAauE,GAEzC,KAFyDx+F,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,KAAAA,UAAA,GAGhD,OAAAi6F,EAAIwE,QAAQD,GAGf,IAA6CE,EAAA9gF,GAAxBq8E,EAAIxhG,WAAWkR,MAAM,KAAG,GAA5C2yF,OAAShC,EAAOoE,EAAA,GAEvB,GAAe,IAAXF,EACK,OAAAlC,EAGT,GAAIhC,EAAS,CACX,IAAI+D,EAAgB/D,EAAQ3hG,MAAM,EAAG6lG,GAIrC,OAHIlE,EAAQ7iG,OAAS+mG,IACFH,GAAAtE,GAASyE,EAASlE,EAAQ7iG,SAEtC,CAAC6kG,EAAS+B,GAAe/0F,KAAK,IACvC,CAEA,MAAO,CAACgzF,EAASvC,GAASyE,IAASl1F,KAAK,IAC1C,CAeO,SAASq1F,GACd53F,GAGQ,IAAA63F,EAFRhF,EAA0C55F,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EAC1C85F,6DAEA,GAAI7/F,OAAOmkD,MAAMnkD,OAAO8M,IAAiB,MAAA,GACzC,IAAK+yF,EACH,OApBY,SAAwBG,EAAaL,GACtB,IAAAiF,EAAzB,OAAA/hG,EAAS88F,GACJ2E,GAActE,EAAKL,EAAc4E,eAAQK,EAAAjF,EAAckF,6BAEzDP,GAActE,EAAKL,GAAe,EAC3C,CAeWmF,CAAwB9kG,OAAO8M,GAAS6yF,GAEjD,IAAM4E,EAAS1hG,EAAS88F,GAAiBA,EAAc4E,OAAS5E,EAC1DkF,GAAchiG,EAAS88F,aAAkBgF,EAAAhF,EAAckF,6BACzD,IAACzlF,GAAStS,GAAS,OAAO/M,OAAO+M,GAErC,IAAmCi4F,EAAAphF,GAAhB7W,EAAO4C,MAAM,KAAG,GAA9B6wF,EAAMwE,EAAA,GAAAvE,EAAIuE,EAAA,GAEf,IAAKvE,EACK,OAAA+D,EAAS,GAAKM,EAAe,CAAC/3F,EAASgzF,GAASyE,IAAUl1F,KAAK,KAAOvC,EAGhF,GAAe,IAAXy3F,EACM,OAAAM,GAAe7kG,OAAOwgG,EAAK,KAAO,EAAKQ,GAAuBT,EAAM,KAAOA,EAGrF,IAAI6D,EAAgB5D,EAAK9hG,MAAM,EAAG6lG,GAC9B,GAAA/D,EAAKhjG,OAAS+mG,EACEH,GAAAtE,GAASyE,EAAS/D,EAAKhjG,gBAChCqnG,EAAa,CAAA,IAAAG,EAEhBC,UAAcD,EAAAZ,EAAcv3F,MAAM,cAApBm4F,WAAAA,EAAAA,EAA6B,GAAGxnG,OAE9C0nG,EAAcd,EAAcv3F,MAAM,OAElCs4F,EAAYnlG,OAAOwgG,EAAK+D,KAAY,EAG1CH,EAAgBe,EACZnE,GAAuBoD,EAAe,KACtCA,EAIFa,GACGE,GACAF,EAAcb,EAAc5mG,QAAU+mG,IAEzCH,EAAAhsE,GAAAA,OAAmB0nE,GACjByE,EAASH,EAAc5mG,SACrB46B,OAAAgsE,IAGFc,GAAed,EAAc5mG,OAAS+mG,IACxChE,GAAQvgG,OAAOugG,GAAQ,GAAG/hG,WAC1B4lG,EAAgBtE,GAASyE,GAE7B,CACA,MAAO,CAAChE,EAAM6D,GAAe/0F,KAAK,IACpC,CClXgB,SAAA+1F,GAAY7E,EAAcC,GAAsB,IAAA6E,EAAAC,EAC1D,IAAC/E,IAASC,EAAc,OAAAD,GAAQ,IAAMC,GAAQ,GAC5C,IAAA+E,WAAKF,EAAA9E,EAAK/hG,WAAWkR,MAAM,KAAK,uBAA3B21F,EAA+B7nG,SAAU,EAC9CgoG,WAAKF,EAAA9E,EAAKhiG,WAAWkR,MAAM,KAAK,uBAA3B41F,EAA+B9nG,SAAU,EAEhD,IAAC+nG,IAAOC,EAAI,OAAOjF,EAAOC,EAC9B,IAAIiF,EAAalF,EACbmF,EAAalF,EACX/2E,EAAOpiB,KAAKge,IAAIkgF,EAAKC,GACrBG,EAAQt+F,KAAAu+F,IAAA,GAAMv+F,KAAKC,IAAIi+F,EAAIC,IACjC,GAAI/7E,EAAO,EAAG,CACZ,IAAMo8E,WAAK,GAAMp8E,GACb87E,EAAKC,GACPC,EAAazlG,OAAOugG,EAAK/hG,WAAWoE,QAAQ,IAAK,KACpC8iG,EAAA1lG,OAAOwgG,EAAKhiG,WAAWoE,QAAQ,IAAK,KAAOijG,IAE3CJ,EAAAzlG,OAAOugG,EAAK/hG,WAAWoE,QAAQ,IAAK,KAAOijG,EACxDH,EAAa1lG,OAAOwgG,EAAKhiG,WAAWoE,QAAQ,IAAK,KAErD,MACE6iG,EAAazlG,OAAOugG,EAAK/hG,WAAWoE,QAAQ,IAAK,KACjD8iG,EAAa1lG,OAAOwgG,EAAKhiG,WAAWoE,QAAQ,IAAK,KAEnD,OAAQ6iG,EAAaC,GAAcC,CACrC,CAKgB,SAAAG,GAAiBvF,EAAcC,GAAsB,IAAAuF,EAAAC,EAC/D,IAACzF,IAASC,EAAc,OAAAD,GAAQ,IAAMC,GAAQ,GAC5C,IAAA+E,WAAKQ,EAAAxF,EAAK/hG,WAAWkR,MAAM,KAAK,uBAA3Bq2F,EAA+BvoG,SAAU,EAC9CgoG,WAAKQ,EAAAxF,EAAKhiG,WAAWkR,MAAM,KAAK,uBAA3Bs2F,EAA+BxoG,SAAU,EAC9CmoG,EAAQt+F,KAAAu+F,IAAA,GAAMv+F,KAAKC,IAAIi+F,EAAIC,IAE1B,OAAAxlG,SAASugG,EAAOoF,EAAQnF,EAAOmF,GAASA,GAAOnB,QAD5Ce,GAAMC,EAAKD,EAAKC,GAE5B,CA8BO,SAASS,GAAavgF,GAQ3B,IAAQwgF,EAA+CxgF,EAA/CwgF,GAAI3jF,EAA2CmD,EAA3CnD,KAAM4jF,EAAqCzgF,EAArCygF,UAAW7+F,EAA0Boe,EAA1Bpe,IAAKyU,EAAqB2J,EAArB3J,IAAK8jF,EAAgBn6E,EAAhBm6E,YACnC,GAAA7/F,OAAOuiB,IAAS,EAEX,OADH+pD,GAAM,cAAe,+BAClB65B,EAET,IACIpM,EAnCcwG,EAAcC,EAkC1B4F,EAAQhmF,GAASmC,GAAQxiB,OAAOwiB,GAAQA,EAkBvC,MAhBI,QAAP2jF,EACErG,GAAezgF,GAAS+mF,GAC1BpM,ED2KU,SAAewG,EAAcC,GACrC,IAAA6F,EAA8B,MAAZ9F,EAAK,GACvB+F,EAA+B,MAAZ9F,EAAK,GAC1B,GAAA6F,IAAoBC,EACtB,OAAOxC,GAA4BtD,EAAMD,EAAK7hG,MAAM,IAEtD,GAAI2nG,GAAmBC,EAAkB,CACjC,IAAAziF,EAAIm9E,GAAuBR,EAAK9hG,MAAM,GAAI6hG,EAAK7hG,MAAM,IAC3D,MAAA05B,IAAAA,OAAWvU,EACb,CACI,OAACwiF,GAAmBC,EACfxC,GAA4BvD,EAAMC,EAAK9hG,MAAM,IAE/CsiG,GAAuBT,EAAMC,EACtC,CCzLe+F,CAAexmG,OAAOomG,GAAYpmG,OAAOqmG,KAtCpC7F,EAwCDvgG,OAAOmmG,GAAa,GAxCL3F,EAwCSxgG,OAAOuiB,GAA5Cw3E,EAvCAwG,EAAO,GAAKC,EAAO,EAAUsF,GAAiBtF,EAAMn5F,KAAKge,IAAIk7E,IAC7DA,EAAO,GAAKC,EAAO,GAAwD,EAA9C4E,GAAY/9F,KAAKge,IAAIk7E,GAAOl5F,KAAKge,IAAIm7E,IAClED,EAAO,GAAKC,EAAO,EAAUsF,GAAiBvF,EAAMl5F,KAAKge,IAAIm7E,IAC1D4E,GAAY7E,EAAMC,IAsCP,WAAP0F,IAEPnM,EADE8F,GAAezgF,GAAS+mF,GDgJhB,SAAoB5F,EAAcC,GAC1C,IAAA6F,EAA8B,MAAZ9F,EAAK,GACvB+F,EAA+B,MAAZ9F,EAAK,GAC1B,GAAA6F,IAAoBC,EAAkB,CACxC,IAAMziF,EAAIm9E,GAAuBT,EAAK7hG,MAAM,GAAI8hG,GAChD,MAAApoE,IAAAA,OAAWvU,EACb,CACA,OAAIwiF,GAAmBC,EACdxC,GAA4BtD,EAAK9hG,MAAM,GAAI6hG,EAAK7hG,MAAM,KAE1D2nG,GAAmBC,EACftF,GAAuBT,EAAMC,EAAK9hG,MAAM,IAE1ColG,GAA4BvD,EAAMC,EAC3C,CC7JegG,CAAoBzmG,OAAOomG,GAAYpmG,OAAOqmG,IA9B7C,SAAS7F,EAAcC,GACjC,OAAAD,EAAO,GAAKC,EAAO,GAA8C,EAApC4E,GAAY/9F,KAAKge,IAAIk7E,GAAOC,GACzDD,EAAO,GAAKC,EAAO,EAAUsF,GAAiBz+F,KAAKge,IAAIm7E,GAAOn5F,KAAKge,IAAIk7E,IACvEA,EAAO,GAAKC,EAAO,EAAU4E,GAAY7E,EAAMl5F,KAAKge,IAAIm7E,IACrDsF,GAAiBvF,EAAMC,EAChC,CA2Bev3E,CAASjpB,OAAOmmG,GAAa,GAAInmG,OAAOuiB,KAGjDhC,GAAY4lF,KACdpM,EAtHY,SACdt0D,EACAY,GAOA,GAAY,KAARZ,EAAJ,CACA,IAAQn+B,EAAqC++B,EAArC/+B,IAAKyU,EAAgCsqB,EAAhCtqB,IAAKoqF,EAA2B9/D,EAA3B8/D,UAAWtG,EAAgBx5D,EAAhBw5D,YACzB,OAACE,GAAct6D,IACfo6D,IAAgBzgF,GAAS9X,IAAQA,IAAQqY,MAAcP,GAASrD,IAAQA,KAAQ,IAK7E1U,KAAKC,IAAItH,OAAO+b,GAAM1U,KAAK0U,IAAI/b,OAAOsH,GAAMtH,OAAOylC,KAJpDs9D,GAAcz7F,EAAKm+B,EAAKo6D,GAAe,EAAUv4F,EACjDy7F,GAAchnF,EAAK0pB,EAAKo6D,GAAe,EAAU9jF,EAC9C0pB,EAJuB0gE,CAFT,CASzB,CAoGaM,CAAiB1M,EAAQ,CAAEzyF,IAAAA,EAAKyU,IAAAA,EAAKoqF,UAAAA,EAAWtG,YAAAA,KAEpDA,EAAc9F,EAAS/5F,OAAO+5F,EACvC,CAUO,SAAS2M,GAA0BhhF,GAMxC,IAAQm6E,EAAiCn6E,EAAjCm6E,YAAa1/F,EAAoBulB,EAApBvlB,MAAOmH,EAAaoe,EAAbpe,IAAKyU,EAAQ2J,EAAR3J,IACjC,IAAIwE,GAAYpgB,KAAUogB,GAAYs/E,GAY/B,OAXHA,GAAez/E,GAASjgB,IACtBmsE,GAAK,cAAe,uCAGtBy2B,GAAc5iG,EAAOmH,EAAKu4F,GAAe,EACnC,iBACCkD,GAAc5iG,EAAO4b,EAAK8jF,GAAe,EAC1C,qBAEA,CAGZ,CAEO,IAAM8G,GAAc,CAAC,IAAK,IAAK,IAAK,IAAK,KAwCzC,SAASC,GACd95F,GAMiB,IALjBwqF,EAIIvxF,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,CAAA,EAEA,IAAA,CAAC,GAAI,UAAM,GAAWyY,SAAS1R,IAAY,MAAMjO,KAAKiO,GAAtD,CACJ,IAAQ6yF,EAA0CrI,EAA1CqI,cAAeE,EAA2BvI,EAA3BuI,YAAagH,EAAcvP,EAAduP,UAChC/F,EAAYh0F,EAAOlK,QAAQ,cAAe,IAO1C,OANAi9F,IACFiB,EAAYoB,GAAcpB,SAEN,IAAlBnB,IACUmB,EAAA4D,GAAmB5D,EAAWnB,EAAeE,IAEvDA,GACGgH,EADiB/F,EACO9lE,WAAW8lE,EAVgC,CAW5E,CC1OA,SAAwBgG,GAAe9/F,GACrC,IAAAirC,EAA0D5Z,KAAlD3M,EAAAumB,EAAAvmB,YAAa0/C,EAAgBn5B,EAAhBm5B,eAAgBC,EAAAp5B,EAAAo5B,iBACrC0H,EAAwC7nC,SAAOlkC,GAAvC7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAY1kE,IAAAA,IAAKyU,EAAIg3D,EAAJh3D,IAE2Di3D,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAApFy3C,EAAQ/zB,EAAA,GAAAg0B,EAASh0B,EAAA,GAClBmmB,EAAWjiE,EAAAA,MACX+vE,EAAY/vE,MAAI,IAEhBgwE,EAAY71D,KAEZ81D,EAAa7Q,KAEb8Q,EAAUlwE,EAAAA,MAEVmwE,EAAiB1oF,EAAAA,UACrB,WAAA,OAAMuoF,EAAU/mG,QDRb,SACL6/F,EACAjkF,GAES,IADT8jF,EAAA95F,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GAEI,OAACi6F,GAAe,IAARA,IACRH,GAAezgF,GAAS4gF,GACnB+C,GAAc/C,EAAKjkF,EAAK8jF,GAAe,EAEzCG,EAAMjkF,EACf,CCF8BurF,CAAgBP,EAAO5mG,MAAO6G,EAAM+U,IAAK/U,EAAM64F,YAAW,IAGhF0H,EAAc5oF,EAAAA,UAAS,WAAA,OAAMuoF,EAAU/mG,QDxBxC,SACL6/F,EACA14F,GAES,IADTu4F,EAAA95F,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GAEI,OAACi6F,GAAe,IAARA,IACRH,GAAezgF,GAAS4gF,GACnB+C,GAAc/C,EAAK14F,EAAKu4F,GAAe,EAEzCG,EAAM14F,EACf,CCcyDkgG,CAAaT,EAAO5mG,MAAO6G,EAAMM,IAAKN,EAAM64F,gBAE7FtB,EAAc5/E,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC9B1M,EAAYvrB,MACfirE,iBAAAA,EAAepkE,EAAMuE,MAAAtL,EAAAA,EAAAA,EAAAA,KAElBorE,EAAiBryC,SAAWkuE,EAAU/mG,OAAA,GAAAi4B,OACnC1M,EAAYvrB,MAA4B6G,sBAAgB,WAAhBA,EAAMmuB,OAAU,GAAAiD,OACxD1M,EAAYvrB,MAAuB,mBAAAi4B,OAAApxB,EAAMmuB,OAAUnuB,EAAMmuB,UAAAiD,OACzD1M,EAAYvrB,MAAA,6BAAmC6G,EAAMguF,eAIvDyS,EAAgB9oF,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAChC1M,EAAYvrB,MAAAF,2BAAAA,EACZorE,CAAAA,EAAAA,EAAiBryC,SAAWquE,EAAelnG,WAG1CunG,EAAa/oF,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC7B1M,EAAYvrB,MAAAF,2BAAAA,EACZorE,CAAAA,EAAAA,EAAiBryC,SAAWuuE,EAAYpnG,WAGvCwnG,EAAe,SAACxnG,GAA4B,IAAAm5F,EAC5C,IAACn5F,GAAmB,IAAVA,EAAoB,MAAA,GAClC,IAAIynG,EAAWznG,GAAmB,IAAVA,EAAcJ,OAAOI,GAAS,GACtD,GAAcm5F,QAAVA,EAACH,EAASh5F,aAAAm5F,IAAAA,WAAAA,EAATA,EAAgBH,wBAAhBG,EAA0Bn4D,SAASb,SAASunE,eAAgB,CACzD,IAAA7H,EAAM4G,GAAuBgB,EAAU,CAC3CjI,cAAe34F,EAAM24F,cACrBE,YAAa74F,EAAM64F,YACnBgH,WAAW,IAEbe,EAAW5H,GAAe,IAARA,EAAYjgG,OAAOigG,GAAO,GACxCh5F,EAAMkiB,SACG0+E,EAAA7nG,OAAOiH,EAAMkiB,OAAO/oB,EAAO,CAAE2nG,YAAaF,KAEzD,CACO,OAAAA,GAGTl/D,QACEq+D,GACA,SAACthE,GACO,IAAEo6D,EAA+B74F,EAA/B64F,YAAaF,EAAkB34F,EAAlB24F,cACfrH,EAAa,MAAC,EAAW,MAAM95E,SAASinB,GAAO,GAAK1lC,OAAO0lC,GAEjE,IAAKo6D,IAAgB7/F,OAAOmkD,MAAM8iD,EAAU9mG,OAAQ,CAC9C66B,WAAWisE,EAAU9mG,SAAWslC,IACxBwhE,EAAA9mG,MAAQwnG,EAAarP,IAEjC,IAAMwP,EAAc9nG,OAAO0kG,GAAmBpM,EAAYqH,EAAeE,SAErD,IAAlBF,GACC,MAAC,EAAW,MAAMnhF,SAASinB,IAC5BzlC,OAAO8nG,KAAiB9nG,OAAO+mG,EAAO5mG,QAEtC6mG,EAAUc,EAAa,CAAEhlG,KAAM,QAAStB,OAAG,GAE/C,CACA,GAAIq+F,IACQoH,EAAA9mG,MAAQwnG,EAAarP,QAET,IAAlBqH,GAA+B+E,GAAmBpM,EAAYqH,EAAeE,KAAiBp6D,GAAK,CAAA,IAAAw0D,EACjG8N,EAAgBzP,EACN2B,QAAVA,EAACd,EAASh5F,aAAA85F,IAAAA,WAAAA,EAATA,EAAgBd,uBAAhBc,EAA0B94D,SAASb,SAASunE,iBAE/CE,EAAgBnB,GAAuBmB,EAAe,CACpDpI,cAAe34F,EAAM24F,cACrBE,YAAa74F,EAAM64F,YACnBgH,WAAW,KAGfG,EAAUe,EAAe,CAAEjlG,KAAM,QAAStB,OAAG,GAC/C,CAEJ,GACA,CAAEwwD,WAAW,IAGftpB,EAAAA,MACE,CAACq+D,EAAQz/F,EAAKyU,IACd,WAAM,IAAAisF,EAEJ,IAAI,MAAC,EAAW,GAAI,MAAMxpF,SAASuoF,EAAO5mG,OAA1C,CACA,IAAQmH,EAA0BN,EAA1BM,IAAKyU,EAAqB/U,EAArB+U,IAAK8jF,EAAgB74F,EAAhB64F,YACZ3mE,EAAQwtE,GAA0B,CACtCvmG,MAAO4mG,EAAO5mG,MACd0/F,YAAAA,EACAv4F,IAAAA,EACAyU,IAAAA,IAEFqrF,EAAQjnG,MAAQ+4B,EACV,QAAA8uE,EAAAhhG,EAAAqvF,kBAAA,IAAA2R,GAAAA,EAAAvpG,KAAAuI,EAAa,CAAEkyB,MAAAA,GAT6B,CAUpD,GACA,CAAE84B,WAAW,IAGT,IAAAi2C,EAAkB,SAAC/B,GACvB,IAAM/+F,EAAW8+F,GAAa,CAC5BC,GAAAA,EACA3jF,KAAMvb,EAAMub,KACZjb,IAAKN,EAAMM,IACXyU,IAAK/U,EAAM+U,IACXoqF,UAAWY,EAAO5mG,MAClB0/F,YAAa74F,EAAM64F,cASd,MAAA,CACLqI,UAPgBxB,GAA0B,CAC1CvmG,MAAOgH,EACP04F,YAHgC74F,EAA1B64F,YAINv4F,IAJgCN,EAAbM,IAKnByU,IALgC/U,EAAR+U,MASxB5U,SAAAA,IAIEghG,EAAe,SAAC3mG,GAChB,IAAA6lG,EAAelnG,QAASgnG,EAAWhnG,MAAnC,CACE,IAAA0jB,EAAIokF,EAAgB,UACtBpkF,EAAEqkF,YAAclhG,EAAM04F,qBAC1BsH,EAAUnjF,EAAE1c,SAAU,CAAErE,KAAM,SAAUtB,EAAAA,GAHM,GAM1C4mG,EAAY,SAAC5mG,GACb,IAAA+lG,EAAYpnG,QAASgnG,EAAWhnG,MAAhC,CACE,IAAA0jB,EAAIokF,EAAgB,OACtBpkF,EAAEqkF,YAAclhG,EAAM04F,qBAC1BsH,EAAUnjF,EAAE1c,SAAU,CAAErE,KAAM,MAAOtB,EAAAA,GAHM,GA0FvC2qD,EAAQ,WACR+6C,EAAU/mG,OAASgnG,EAAWhnG,OACjCg5F,EAASh5F,MAAcgsD,SAiBnB,MAAA,CACLzgC,YAAAA,EACA6yE,YAAAA,EACAkJ,cAAAA,EACAC,WAAAA,EACAR,UAAAA,EACAE,QAAAA,EACAltB,UAjBgB,CAChB0b,OA5EiB,SAACz1F,EAAeiuD,GAA2B,IAAAi6C,EACpDxI,EAAyC74F,EAAzC64F,YAAav4F,EAA4BN,EAA5BM,IAAKyU,EAAuB/U,EAAvB+U,IAAK4jF,EAAkB34F,EAAlB24F,cAC/B,IAAK34F,EAAM04F,0BAAwC,IAAjBqH,EAAO5mG,MAAqB,CACtD,IACqBk6F,EAKCiO,EANtBzkF,EAAI6iF,GAA0B,CAAEvmG,MAAO4mG,EAAO5mG,MAAO0/F,YAAAA,EAAav4F,IAAAA,EAAKyU,IAAAA,IAC7E,GAAU,kBAAN8H,EAGF,OAFAmjF,EAAUjrF,EAAK,CAAEjZ,KAAM,OAAQtB,EAAG4sD,EAAI5sD,iBAChC64F,EAAArzF,EAAA4uF,cAAA,IAAAyE,GAAAA,EAAA57F,KAAAuI,EAAS+U,EAAKqyC,IAGtB,GAAU,mBAANvqC,EAGF,OAFAmjF,EAAU1/F,EAAK,CAAExE,KAAM,OAAQtB,EAAG4sD,EAAI5sD,iBAChC8mG,EAAAthG,EAAA4uF,cAAA,IAAA0S,GAAAA,EAAA7pG,KAAAuI,EAASM,EAAK8mD,GAGxB,CACM,IAAAjnD,EAAWy/F,GAAuBzmG,EAAO,CAC7Cw/F,cAAAA,EACAE,YAAAA,IAEQoH,EAAA9mG,MAAQwnG,EAAaxgG,GAE3BA,IAAa4/F,EAAO5mG,OACtB6mG,EAAU7/F,EAAU,CAAErE,KAAM,OAAQtB,EAAG4sD,EAAI5sD,YAEvC6mG,EAAArhG,EAAA4uF,cAAA,IAAAyS,GAAAA,EAAA5pG,KAAAuI,EAASG,EAAUinD,IAqDzB4nC,QAlDkB,SAAC71F,EAAeiuD,GAA2B,IAAA+rC,EACnD8M,EAAA9mG,MAAQ4mG,EAAO5mG,OAA0B,IAAjB4mG,EAAO5mG,MAAcJ,OAAOgnG,EAAO5mG,OAAS,WACxEg6F,EAAAnzF,EAAAgvF,eAAA,IAAAmE,GAAAA,EAAA17F,KAAAuI,EAAU7G,EAAOiuD,IAiDvB6nC,UA9CoB,SAAC91F,EAAeiuD,GAA8B,IAAA0uC,EAClE,IAAIoK,EAAU/mG,MAAd,CACM,IAAEqB,EAAM4sD,EAAN5sD,EACF+mG,EAAW,CACfC,QAASJ,EACTK,UAAWN,GAEP9yB,EAAQ7zE,EAAE6zE,MAAQ7zE,EAAEhC,SACH,IAAnB+oG,EAASlzB,IACXkzB,EAASlzB,GAAM7zE,WAEXs7F,EAAA91F,EAAAivF,iBAAA,IAAA6G,GAAAA,EAAAr+F,KAAAuI,EAAY7G,EAAOiuD,EAVJ,GA8CrB+nC,QAjCkB,SAACh2F,EAAeiuD,GAA8B,IAAA6uC,UAC1DA,EAAAj2F,EAAAmvF,eAAA,IAAA8G,GAAAA,EAAAx+F,KAAAuI,EAAU7G,EAAOiuD,IAiCvB8nC,WA9BqB,SAAC/1F,EAAeiuD,GAA8B,IAAA+uC,UAC7DA,EAAAn2F,EAAAkvF,kBAAA,IAAAiH,GAAAA,EAAA1+F,KAAAuI,EAAa7G,EAAOiuD,IA8B1BmjC,QA3BkB,SAACpxF,EAAeiuD,GAA8B,IAAAyuC,EACtDoK,EAAA9mG,MAAQwnG,EAAaxnG,GACzB,IAAAgH,EAAWy/F,GAAuBzmG,EAAO,CAC7Cw/F,cAAe34F,EAAM24F,cACrBE,YAAa74F,EAAM64F,cAEjB14F,IAAahH,GAASJ,OAAOoH,KAAchH,GAC7C6mG,EAAU7/F,EAAU,CAAErE,KAAM,QAAStB,EAAG4sD,EAAI5sD,YAExCq7F,EAAA71F,EAAAuqF,eAAA,IAAAsL,GAAAA,EAAAp+F,KAAAuI,EAAUG,EAAUinD,IAmB1B7f,QAAS4d,GAWT86C,UAAAA,EACAF,OAAAA,EACA5N,SAAAA,EACAhtC,MAAAA,EACA6tC,KA1BW,WACVb,EAASh5F,MAAc65F,QA0BxBmO,aAAAA,EACAC,UAAAA,EACAM,mBAtHoD,SAACpQ,EAAYz5B,GAAU,IDwF7C/xD,ECxFqCtL,IAAAA,EAE7DikC,EDuFkB,oCACJ5mC,KAFUiO,ECtFAwrF,GDwFWxrF,EAAOlK,QAAQ,KAAM,IACzDkK,ECxFL,GD4BY,SAAeA,EAAmC+yF,GAAuB,IAAA8I,EAAAC,EACvF,GAAI,CAAC,GAAI,UAAM,GAAWpqF,SAAS1R,GAAgB,OAAA,EAEnD,GAA2B,OAAvBA,EAAOpO,MAAM,EAAG,GAAoB,OAAA,EAEpC,GAAAoO,EAAOD,MAAM,OAAe,OAAA,EAEhC,YAAI87F,EAAA77F,EAAOD,MAAM,cAAK,IAAA87F,OAAA,EAAlBA,EAAqBnrG,QAAS,EAAU,OAAA,EAE5C,YAAIorG,EAAA97F,EAAOD,MAAM,aAAI,IAAA+7F,OAAA,EAAjBA,EAAoBprG,QAAS,EAAU,OAAA,EAErC,IAAAqrG,EAAY/7F,EAAOpO,MAAM,GACzBoqG,EAAaD,EAAUh8F,MAAM,WACnC,QAAIi8F,KAAgB,WAAWjqG,KAAKgqG,IAAcC,EAAWtrG,OAAS,MAEpDqiG,GAAeE,GAAcjzF,KAAa9M,OAAOmkD,MAAMnkD,OAAO8M,KAC9D65F,GAAYnoF,SAAS1R,EAAOpO,aAC1C,KAAKG,KAAKiO,MAAa,OAAOjO,KAAKiO,IAAW,MAAMjO,KAAKiO,IAE/D,CC/CSi8F,CAAetjE,EAAKz+B,EAAM64F,aAI/B,GAFAoH,EAAU9mG,MAAQslC,EAEdz+B,EAAM64F,YACRmH,EAAUvhE,EAAK,CAAE3iC,KAAM,QAAStB,EAAAA,SAI9B,GD2CQ,SAAYsL,EAAgBk8F,GACnC,OAAAhuE,WAAWluB,KAAYk8F,IAAehpG,OAAOmkD,MAAMnkD,OAAO8M,GACnE,CC7CQm8F,CAAYlpG,OAAO0lC,GAAMzlC,OAAO+mG,EAAO5mG,QAAS,CAClD,IAAM45F,EAAiB,KAARt0D,OAAa,EAAYzlC,OAAOylC,GAC/CuhE,EAAUjN,EAAQ,CAAEj3F,KAAM,QAAStB,EAAAA,GACrC,GAwGA2lG,WAAAA,EAEJ,gOC1RA,IAAA+B,GAAe9sE,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAAA,GAEAq1B,eAAMr1B,EAA2BsqC,GAC/B,IAAAkjB,EAAgEpB,GAAc,CAC5Eq0B,QAASC,GACTyhB,WAAYC,GACZC,gBAAiBC,GACjBC,cAAeC,KAJT/hB,EAASjzB,EAATizB,QAAS0hB,EAAA30C,EAAA20C,WAAYE,EAAiB70C,EAAjB60C,gBAAiBE,EAAA/0C,EAAA+0C,cAMxC7jF,EAAIohF,GAAe9/F,GACjBmyF,EAAazzE,EAAbyzE,SAGR,OAFA7nD,EAAQoW,wWAAOlqB,CAAK9X,CAAAA,EAAAA,IAEb,WACL,IAAM+jF,EACY,WAAhBziG,EAAMmuB,MAAUyI,EAAAA,YAAAyrE,EAAA,CAAA99F,KAAkCvE,EAAMuE,MAAAqyB,MAAAA,EAAAO,YAAAgrE,EAAA,CAAA59F,KAA6BvE,EAAMuE,MAAM,MAC7Fm+F,EAA0B,WAAhB1iG,EAAMmuB,MAAUyI,EAAAA,YAAA2rE,EAAA,CAAAh+F,KAAgCvE,EAAMuE,MAAAqyB,MAAAA,EAAAO,YAAAspD,EAAA,CAAAl8E,KAA0BvE,EAAMuE,MAAM,MACtG8pD,EAAS3vC,EAAE0hF,QAAQjnG,MAAQ,QAAU6G,EAAMquD,OAEjD,OAAAz3B,EAAAA,YAAA,MAAA,CAAAC,MACcnY,EAAE64E,YAAYp+F,OACvB6G,CAAgB,WAAhBA,EAAMmuB,OACLyI,EAAAA,YAAAmU,GAAA,CAAAlU,MACSnY,EAAE+hF,cAActnG,MAAA64B,SACbtT,EAAEwhF,UAAU/mG,MACtBouC,QAAS7oB,EAAEyiF,aACX75D,QAAA,UAAAD,MAAA,SAAAliB,KAEM,WAAA,OAAMs9E,CACd,GAAA,MAAA7rE,cAAA+rE,GAAAp+D,EAAAA,WAAA,CAAArU,IAGKiiE,EACLngE,SAAUtT,EAAEwhF,UAAU/mG,MACtBo1F,SAAU7vE,EAAEyhF,WAAWhnG,MACvBisB,aAAA,MAAA2C,YACa/nB,EAAM+nB,YAAAsvE,aACL34E,EAAEyhF,WAAWhnG,MAAQ,KAAO,MAAA60F,UAC/BhuF,EAAMguF,UACjB98C,MAAOlxC,EAAMkxC,QAA0B,QAAhBlxC,EAAMmuB,MAAkB,cAAW,GAAAkgC,OAClDA,EAAA5U,MACDz5C,EAAMy5C,MACb1hB,OAAQ/3B,EAAM+3B,OAAA42D,KACR3uF,EAAM2uF,MACRjwE,EAAEw0D,UACFlzE,EAAM44F,WACV,CAAAz/F,MACOulB,EAAEuhF,UAAU9mG,MAAAmvD,SACT5pC,EAAEgjF,qBAFHp3D,EAAQnK,OAIF,WAAhBngC,EAAMmuB,OACLyI,EAAAO,YAAA4T,GAAA,CAAAlU,MACSnY,EAAEgiF,WAAWvnG,MAAA64B,SACVtT,EAAEwhF,UAAU/mG,MACtBouC,QAAS7oB,EAAE0iF,UACX95D,QAAA,UAAAD,MAAA,SAAAliB,KAEM,WAAA,OAAMu9E,CACd,GAAA,QAKV,ICtEWE,GAAcj8D,GAAYu7D,ICAxBW,GAAA,CAEbC,WAAYhhE,QAEZksD,UAAWlsD,QAEXmsD,UAAWnsD,QAEXosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEXihE,eAAgB,CACdjnG,KAAMhC,UAGRk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXy1E,WAAY,CACV98F,KAAMxE,QAGRg6F,WAAY,CACVx1F,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX6/E,kBAAmB,CACjBlnG,KAAM,CAAC/C,OAAQC,SAGjBkE,KAAM,CACJpB,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBg4B,QAASgQ,QAETmhE,gBAAiB,CACfnnG,KAAM9C,OACNmqB,QAAS,GAGX+/E,SAAUphE,QAEV+7C,MAAO,CACL/hF,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM/C,OACNoqB,QAAS,IAGXglD,WAAY,CACVrsE,KAAMxE,QAGRiwF,aAAc,CACZzrF,KAAMgmC,QACN3e,aAAS,GAGXggF,oBAAqBrhE,QAErBwO,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXigF,eAAgBthE,QAEhBv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGRQ,IAAK,CACHwB,KAAM,CAAC/C,OAAQe,WAGjBupG,cAAe,CACbvnG,KAAMxE,QAGRgsG,SAAU,CACRxnG,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,QAASxqC,OAAQX,MAAO4H,MAC/C4kB,aAAS,GAGXogF,aAAc,CACZznG,KAAM,CAAC/C,OAAQe,WAGjB80F,OAAQ90F,SAER+0F,QAAS/0F,SAETywF,QAASzwF,SAETk1F,QAASl1F,SAET0pG,cAAe1pG,SAEfi1D,aAAcj1D,SAEdk1D,aAAcl1D,SAEds1F,QAASt1F,SAET2pG,qBAAsB3pG,SAEtB4pG,YAAa5pG,UCvJA6pG,GAAA,CAEb3V,UAAWlsD,QAEXosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEXihE,eAAgB,CACdjnG,KAAMhC,UAGRk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXq7D,SAAU18C,QAEV8hE,sBAAuB,CACrB9nG,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,cAAcjnB,SAASinB,EAC3C,GAGFm6D,WAAY,CACV98F,KAAMxE,QAGRg6F,WAAY,CACVx1F,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX6/E,kBAAmB,CACjBlnG,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,IAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBwG,IAAK,CACHxE,KAAM9C,QAGRiqG,gBAAiB,CACfnnG,KAAM9C,OACNmqB,QAAS,GAGX4E,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXmtB,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGRQ,IAAK,CACHwB,KAAM,CAAC/C,OAAQe,WAGjBwpG,SAAU,CACRxnG,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAAgD,EAAC,GAGnDogF,aAAc,CACZznG,KAAM,CAAC/C,OAAQe,WAGjB80F,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAETytC,QAASztC,SAET6kF,WAAY7kF,SAEZywF,QAASzwF,SAETk1F,QAASl1F,SAET0pG,cAAe1pG,SAEfi1D,aAAcj1D,SAEdk1D,aAAcl1D,SAEds1F,QAASt1F,SAETikF,SAAUjkF,UC1JZ,SAASzB,GAAQa,GAGf,OAAOb,GAAU,mBAAqBvB,QAAU,iBAAmBA,OAAOC,SAAW,SAAUmC,GAC7F,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,mBAAqBpC,QAAUoC,EAAIvB,cAAgBb,QAAUoC,IAAQpC,OAAOS,UAAY,gBAAkB2B,CAC1H,EAAGb,GAAQa,EACb,CAKA,IAAI2qG,GAAW,OACXC,GAAY,OAChB,SAASC,GAAUvwE,EAAOwwE,GAKxB,GAHAA,EAAOA,GAAQ,IADfxwE,EAAQA,GAAgB,cAIHuwE,GACnB,OAAOvwE,EAGT,KAAM3yB,gBAAgBkjG,IACpB,OAAO,IAAIA,GAAUvwE,EAAOwwE,GAE9B,IAAIC,EAmRN,SAAoBzwE,GAClB,IAAIywE,EAAM,CACRpnF,EAAG,EACHkC,EAAG,EACHI,EAAG,GAEDlC,EAAI,EACJM,EAAI,KACJW,EAAI,KACJpB,EAAI,KACJonF,GAAK,EACLhiF,GAAS,EACO,iBAATsR,IACTA,EAmuBJ,SAA6BA,GAC3BA,EAAQA,EAAM53B,QAAQioG,GAAU,IAAIjoG,QAAQkoG,GAAW,IAAIx4F,cAC3D,IAkBIzF,EAlBAs+F,GAAQ,EACZ,GAAIC,GAAM5wE,GACRA,EAAQ4wE,GAAM5wE,GACd2wE,GAAQ,OACH,GAAa,eAAT3wE,EACT,MAAO,CACL3W,EAAG,EACHkC,EAAG,EACHI,EAAG,EACHlC,EAAG,EACHiF,OAAQ,QASZ,GAAIrc,EAAQw+F,GAASJ,IAAIhnG,KAAKu2B,GAC5B,MAAO,CACL3W,EAAGhX,EAAM,GACTkZ,EAAGlZ,EAAM,GACTsZ,EAAGtZ,EAAM,IAGb,GAAIA,EAAQw+F,GAASC,KAAKrnG,KAAKu2B,GAC7B,MAAO,CACL3W,EAAGhX,EAAM,GACTkZ,EAAGlZ,EAAM,GACTsZ,EAAGtZ,EAAM,GACToX,EAAGpX,EAAM,IAGb,GAAIA,EAAQw+F,GAASE,IAAItnG,KAAKu2B,GAC5B,MAAO,CACL/V,EAAG5X,EAAM,GACT0X,EAAG1X,EAAM,GACTiX,EAAGjX,EAAM,IAGb,GAAIA,EAAQw+F,GAASG,KAAKvnG,KAAKu2B,GAC7B,MAAO,CACL/V,EAAG5X,EAAM,GACT0X,EAAG1X,EAAM,GACTiX,EAAGjX,EAAM,GACToX,EAAGpX,EAAM,IAGb,GAAIA,EAAQw+F,GAASI,IAAIxnG,KAAKu2B,GAC5B,MAAO,CACL/V,EAAG5X,EAAM,GACT0X,EAAG1X,EAAM,GACTqY,EAAGrY,EAAM,IAGb,GAAIA,EAAQw+F,GAASK,KAAKznG,KAAKu2B,GAC7B,MAAO,CACL/V,EAAG5X,EAAM,GACT0X,EAAG1X,EAAM,GACTqY,EAAGrY,EAAM,GACToX,EAAGpX,EAAM,IAGb,GAAIA,EAAQw+F,GAASM,KAAK1nG,KAAKu2B,GAC7B,MAAO,CACL3W,EAAG+nF,GAAgB/+F,EAAM,IACzBkZ,EAAG6lF,GAAgB/+F,EAAM,IACzBsZ,EAAGylF,GAAgB/+F,EAAM,IACzBoX,EAAG4nF,GAAoBh/F,EAAM,IAC7Bqc,OAAQiiF,EAAQ,OAAS,QAG7B,GAAIt+F,EAAQw+F,GAASS,KAAK7nG,KAAKu2B,GAC7B,MAAO,CACL3W,EAAG+nF,GAAgB/+F,EAAM,IACzBkZ,EAAG6lF,GAAgB/+F,EAAM,IACzBsZ,EAAGylF,GAAgB/+F,EAAM,IACzBqc,OAAQiiF,EAAQ,OAAS,OAG7B,GAAIt+F,EAAQw+F,GAASU,KAAK9nG,KAAKu2B,GAC7B,MAAO,CACL3W,EAAG+nF,GAAgB/+F,EAAM,GAAK,GAAKA,EAAM,IACzCkZ,EAAG6lF,GAAgB/+F,EAAM,GAAK,GAAKA,EAAM,IACzCsZ,EAAGylF,GAAgB/+F,EAAM,GAAK,GAAKA,EAAM,IACzCoX,EAAG4nF,GAAoBh/F,EAAM,GAAK,GAAKA,EAAM,IAC7Cqc,OAAQiiF,EAAQ,OAAS,QAG7B,GAAIt+F,EAAQw+F,GAASW,KAAK/nG,KAAKu2B,GAC7B,MAAO,CACL3W,EAAG+nF,GAAgB/+F,EAAM,GAAK,GAAKA,EAAM,IACzCkZ,EAAG6lF,GAAgB/+F,EAAM,GAAK,GAAKA,EAAM,IACzCsZ,EAAGylF,GAAgB/+F,EAAM,GAAK,GAAKA,EAAM,IACzCqc,OAAQiiF,EAAQ,OAAS,OAG7B,OAAO,CACT,CAx0BYc,CAAoBzxE,IAER,UAAlBn7B,GAAQm7B,KACN0xE,GAAe1xE,EAAM3W,IAAMqoF,GAAe1xE,EAAMzU,IAAMmmF,GAAe1xE,EAAMrU,IA2CjEtC,EA1CG2W,EAAM3W,EA0CNkC,EA1CSyU,EAAMzU,EA0CZI,EA1CeqU,EAAMrU,EAAvC8kF,EA2CG,CACLpnF,EAAqB,IAAlBsoF,GAAQtoF,EAAG,KACdkC,EAAqB,IAAlBomF,GAAQpmF,EAAG,KACdI,EAAqB,IAAlBgmF,GAAQhmF,EAAG,MA7CZ+kF,GAAK,EACLhiF,EAAwC,MAA/BnpB,OAAOy6B,EAAM3W,GAAGoX,QAAQ,GAAa,OAAS,OAC9CixE,GAAe1xE,EAAM/V,IAAMynF,GAAe1xE,EAAMjW,IAAM2nF,GAAe1xE,EAAMtV,IACpFX,EAAI6nF,GAAoB5xE,EAAMjW,GAC9BW,EAAIknF,GAAoB5xE,EAAMtV,GAC9B+lF,EA6JN,SAAkBxmF,EAAGF,EAAGW,GACtBT,EAAsB,EAAlB0nF,GAAQ1nF,EAAG,KACfF,EAAI4nF,GAAQ5nF,EAAG,KACfW,EAAIinF,GAAQjnF,EAAG,KACf,IAAIznB,EAAI4J,KAAKoa,MAAMgD,GACjBP,EAAIO,EAAIhnB,EACRioB,EAAIR,GAAK,EAAIX,GACb8nF,EAAInnF,GAAK,EAAIhB,EAAIK,GACjBR,EAAImB,GAAK,GAAK,EAAIhB,GAAKK,GACvB+nF,EAAM7uG,EAAI,EACVomB,EAAI,CAACqB,EAAGmnF,EAAG3mF,EAAGA,EAAG3B,EAAGmB,GAAGonF,GACvBvmF,EAAI,CAAChC,EAAGmB,EAAGA,EAAGmnF,EAAG3mF,EAAGA,GAAG4mF,GACvBnmF,EAAI,CAACT,EAAGA,EAAG3B,EAAGmB,EAAGA,EAAGmnF,GAAGC,GACzB,MAAO,CACLzoF,EAAO,IAAJA,EACHkC,EAAO,IAAJA,EACHI,EAAO,IAAJA,EAEP,CA/KYomF,CAAS/xE,EAAM/V,EAAGF,EAAGW,GAC3BgmF,GAAK,EACLhiF,EAAS,OACAgjF,GAAe1xE,EAAM/V,IAAMynF,GAAe1xE,EAAMjW,IAAM2nF,GAAe1xE,EAAM1W,KACpFS,EAAI6nF,GAAoB5xE,EAAMjW,GAC9BT,EAAIsoF,GAAoB5xE,EAAM1W,GAC9BmnF,EAgFN,SAAkBxmF,EAAGF,EAAGT,GACtB,IAAID,EAAGkC,EAAGI,EAIV,SAASqmF,EAAQ9mF,EAAG2mF,EAAGtoF,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAU2B,EAAc,GAAT2mF,EAAI3mF,GAAS3B,EACpCA,EAAI,GAAcsoF,EAClBtoF,EAAI,EAAI,EAAU2B,GAAK2mF,EAAI3mF,IAAM,EAAI,EAAI3B,GAAK,EAC3C2B,CACT,CACA,GAXAjB,EAAI0nF,GAAQ1nF,EAAG,KACfF,EAAI4nF,GAAQ5nF,EAAG,KACfT,EAAIqoF,GAAQroF,EAAG,KASL,IAANS,EACFV,EAAIkC,EAAII,EAAIrC,MACP,CACL,IAAIuoF,EAAIvoF,EAAI,GAAMA,GAAK,EAAIS,GAAKT,EAAIS,EAAIT,EAAIS,EACxCmB,EAAI,EAAI5B,EAAIuoF,EAChBxoF,EAAI2oF,EAAQ9mF,EAAG2mF,EAAG5nF,EAAI,EAAI,GAC1BsB,EAAIymF,EAAQ9mF,EAAG2mF,EAAG5nF,GAClB0B,EAAIqmF,EAAQ9mF,EAAG2mF,EAAG5nF,EAAI,EAAI,EAC5B,CACA,MAAO,CACLZ,EAAO,IAAJA,EACHkC,EAAO,IAAJA,EACHI,EAAO,IAAJA,EAEP,CA3GYsmF,CAASjyE,EAAM/V,EAAGF,EAAGT,GAC3BonF,GAAK,EACLhiF,EAAS,OAEPsR,EAAMx5B,eAAe,OACvBijB,EAAIuW,EAAMvW,IAyBhB,IAAkBJ,EAAGkC,EAAGI,EArBtB,OADAlC,EAAIyoF,GAAWzoF,GACR,CACLinF,GAAIA,EACJhiF,OAAQsR,EAAMtR,QAAUA,EACxBrF,EAAGxc,KAAK0U,IAAI,IAAK1U,KAAKC,IAAI2jG,EAAIpnF,EAAG,IACjCkC,EAAG1e,KAAK0U,IAAI,IAAK1U,KAAKC,IAAI2jG,EAAIllF,EAAG,IACjCI,EAAG9e,KAAK0U,IAAI,IAAK1U,KAAKC,IAAI2jG,EAAI9kF,EAAG,IACjClC,EAAGA,EAEP,CAjUY0oF,CAAWnyE,GACrB3yB,KAAK+kG,eAAiBpyE,EAAO3yB,KAAKglG,GAAK5B,EAAIpnF,EAAGhc,KAAKilG,GAAK7B,EAAIllF,EAAGle,KAAKklG,GAAK9B,EAAI9kF,EAAGte,KAAKmlG,GAAK/B,EAAIhnF,EAAGpc,KAAKolG,QAAU5lG,KAAK2hB,MAAM,IAAMnhB,KAAKmlG,IAAM,IAAKnlG,KAAKqlG,QAAUlC,EAAK9hF,QAAU+hF,EAAI/hF,OACnLrhB,KAAKslG,cAAgBnC,EAAKoC,aAMtBvlG,KAAKglG,GAAK,IAAGhlG,KAAKglG,GAAKxlG,KAAK2hB,MAAMnhB,KAAKglG,KACvChlG,KAAKilG,GAAK,IAAGjlG,KAAKilG,GAAKzlG,KAAK2hB,MAAMnhB,KAAKilG,KACvCjlG,KAAKklG,GAAK,IAAGllG,KAAKklG,GAAK1lG,KAAK2hB,MAAMnhB,KAAKklG,KAC3CllG,KAAKwlG,IAAMpC,EAAIC,EACjB,CA8UA,SAASoC,GAASzpF,EAAGkC,EAAGI,GACtBtC,EAAIsoF,GAAQtoF,EAAG,KACfkC,EAAIomF,GAAQpmF,EAAG,KACfI,EAAIgmF,GAAQhmF,EAAG,KACf,IAEI1B,EACFF,EAHEjd,EAAMD,KAAKC,IAAIuc,EAAGkC,EAAGI,GACvBpK,EAAM1U,KAAK0U,IAAI8H,EAAGkC,EAAGI,GAGrBrC,GAAKxc,EAAMyU,GAAO,EACpB,GAAIzU,GAAOyU,EACT0I,EAAIF,EAAI,MACH,CACL,IAAIG,EAAIpd,EAAMyU,EAEd,OADAwI,EAAIT,EAAI,GAAMY,GAAK,EAAIpd,EAAMyU,GAAO2I,GAAKpd,EAAMyU,GACvCzU,GACN,KAAKuc,EACHY,GAAKsB,EAAII,GAAKzB,GAAKqB,EAAII,EAAI,EAAI,GAC/B,MACF,KAAKJ,EACHtB,GAAK0B,EAAItC,GAAKa,EAAI,EAClB,MACF,KAAKyB,EACH1B,GAAKZ,EAAIkC,GAAKrB,EAAI,EAGtBD,GAAK,CACP,CACA,MAAO,CACLA,EAAGA,EACHF,EAAGA,EACHT,EAAGA,EAEP,CAuCA,SAASypF,GAAS1pF,EAAGkC,EAAGI,GACtBtC,EAAIsoF,GAAQtoF,EAAG,KACfkC,EAAIomF,GAAQpmF,EAAG,KACfI,EAAIgmF,GAAQhmF,EAAG,KACf,IAEI1B,EACFF,EAHEjd,EAAMD,KAAKC,IAAIuc,EAAGkC,EAAGI,GACvBpK,EAAM1U,KAAK0U,IAAI8H,EAAGkC,EAAGI,GAGrBjB,EAAI5d,EACFod,EAAIpd,EAAMyU,EAEd,GADAwI,EAAY,IAARjd,EAAY,EAAIod,EAAIpd,EACpBA,GAAOyU,EACT0I,EAAI,MACC,CACL,OAAQnd,GACN,KAAKuc,EACHY,GAAKsB,EAAII,GAAKzB,GAAKqB,EAAII,EAAI,EAAI,GAC/B,MACF,KAAKJ,EACHtB,GAAK0B,EAAItC,GAAKa,EAAI,EAClB,MACF,KAAKyB,EACH1B,GAAKZ,EAAIkC,GAAKrB,EAAI,EAGtBD,GAAK,CACP,CACA,MAAO,CACLA,EAAGA,EACHF,EAAGA,EACHW,EAAGA,EAEP,CA8BA,SAASsoF,GAAS3pF,EAAGkC,EAAGI,EAAGsnF,GACzB,IAAIC,EAAM,CAACC,GAAKtmG,KAAK2hB,MAAMnF,GAAGrlB,SAAS,KAAMmvG,GAAKtmG,KAAK2hB,MAAMjD,GAAGvnB,SAAS,KAAMmvG,GAAKtmG,KAAK2hB,MAAM7C,GAAG3nB,SAAS,MAG3G,OAAIivG,GAAcC,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,GAC3HgrG,EAAI,GAAGhrG,OAAO,GAAKgrG,EAAI,GAAGhrG,OAAO,GAAKgrG,EAAI,GAAGhrG,OAAO,GAEtDgrG,EAAIr+F,KAAK,GAClB,CAmBA,SAASu+F,GAAc/pF,EAAGkC,EAAGI,EAAGlC,GAE9B,MADU,CAAC0pF,GAAKE,GAAoB5pF,IAAK0pF,GAAKtmG,KAAK2hB,MAAMnF,GAAGrlB,SAAS,KAAMmvG,GAAKtmG,KAAK2hB,MAAMjD,GAAGvnB,SAAS,KAAMmvG,GAAKtmG,KAAK2hB,MAAM7C,GAAG3nB,SAAS,MAC9H6Q,KAAK,GAClB,CAqBA,SAASy+F,GAAYtzE,EAAOuzE,GAC1BA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIxC,EAAMR,GAAUvwE,GAAOwzE,QAG3B,OAFAzC,EAAIhnF,GAAKwpF,EAAS,IAClBxC,EAAIhnF,EAAI0pF,GAAQ1C,EAAIhnF,GACbwmF,GAAUQ,EACnB,CACA,SAAS2C,GAAU1zE,EAAOuzE,GACxBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIxC,EAAMR,GAAUvwE,GAAOwzE,QAG3B,OAFAzC,EAAIhnF,GAAKwpF,EAAS,IAClBxC,EAAIhnF,EAAI0pF,GAAQ1C,EAAIhnF,GACbwmF,GAAUQ,EACnB,CACA,SAAS4C,GAAW3zE,GAClB,OAAOuwE,GAAUvwE,GAAO4zE,WAAW,IACrC,CACA,SAASC,GAAS7zE,EAAOuzE,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIxC,EAAMR,GAAUvwE,GAAOwzE,QAG3B,OAFAzC,EAAIznF,GAAKiqF,EAAS,IAClBxC,EAAIznF,EAAImqF,GAAQ1C,EAAIznF,GACbinF,GAAUQ,EACnB,CACA,SAAS+C,GAAU9zE,EAAOuzE,GACxBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI9C,EAAMF,GAAUvwE,GAAO+zE,QAI3B,OAHAtD,EAAIpnF,EAAIxc,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAKkvF,EAAIpnF,EAAIxc,KAAK2hB,OAAc+kF,EAAS,IAAjB,OACrD9C,EAAIllF,EAAI1e,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAKkvF,EAAIllF,EAAI1e,KAAK2hB,OAAc+kF,EAAS,IAAjB,OACrD9C,EAAI9kF,EAAI9e,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAKkvF,EAAI9kF,EAAI9e,KAAK2hB,OAAc+kF,EAAS,IAAjB,OAC9ChD,GAAUE,EACnB,CACA,SAASuD,GAAQh0E,EAAOuzE,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIxC,EAAMR,GAAUvwE,GAAOwzE,QAG3B,OAFAzC,EAAIznF,GAAKiqF,EAAS,IAClBxC,EAAIznF,EAAImqF,GAAQ1C,EAAIznF,GACbinF,GAAUQ,EACnB,CAIA,SAASkD,GAAMj0E,EAAOuzE,GACpB,IAAIxC,EAAMR,GAAUvwE,GAAOwzE,QACvBU,GAAOnD,EAAI9mF,EAAIspF,GAAU,IAE7B,OADAxC,EAAI9mF,EAAIiqF,EAAM,EAAI,IAAMA,EAAMA,EACvB3D,GAAUQ,EACnB,CAOA,SAASoD,GAAYn0E,GACnB,IAAI+wE,EAAMR,GAAUvwE,GAAOwzE,QAE3B,OADAzC,EAAI9mF,GAAK8mF,EAAI9mF,EAAI,KAAO,IACjBsmF,GAAUQ,EACnB,CACA,SAASqD,GAAOp0E,EAAO1tB,GACrB,GAAIq3C,MAAMr3C,IAAWA,GAAU,EAC7B,MAAM,IAAIm0B,MAAM,gDAKlB,IAHA,IAAIsqE,EAAMR,GAAUvwE,GAAOwzE,QACvBvsG,EAAS,CAACspG,GAAUvwE,IACpBjY,EAAO,IAAMzV,EACRrP,EAAI,EAAGA,EAAIqP,EAAQrP,IAC1BgE,EAAO2I,KAAK2gG,GAAU,CACpBtmF,GAAI8mF,EAAI9mF,EAAIhnB,EAAI8kB,GAAQ,IACxBgC,EAAGgnF,EAAIhnF,EACPT,EAAGynF,EAAIznF,KAGX,OAAOriB,CACT,CACA,SAASotG,GAAiBr0E,GACxB,IAAI+wE,EAAMR,GAAUvwE,GAAOwzE,QACvBvpF,EAAI8mF,EAAI9mF,EACZ,MAAO,CAACsmF,GAAUvwE,GAAQuwE,GAAU,CAClCtmF,GAAIA,EAAI,IAAM,IACdF,EAAGgnF,EAAIhnF,EACPT,EAAGynF,EAAIznF,IACLinF,GAAU,CACZtmF,GAAIA,EAAI,KAAO,IACfF,EAAGgnF,EAAIhnF,EACPT,EAAGynF,EAAIznF,IAEX,CACA,SAASgrF,GAAWt0E,EAAOu0E,EAASC,GAClCD,EAAUA,GAAW,EACrBC,EAASA,GAAU,GACnB,IAAIzD,EAAMR,GAAUvwE,GAAOwzE,QACvBiB,EAAO,IAAMD,EACbE,EAAM,CAACnE,GAAUvwE,IACrB,IAAK+wE,EAAI9mF,GAAK8mF,EAAI9mF,GAAKwqF,EAAOF,GAAW,GAAK,KAAO,MAAOA,GAC1DxD,EAAI9mF,GAAK8mF,EAAI9mF,EAAIwqF,GAAQ,IACzBC,EAAI9kG,KAAK2gG,GAAUQ,IAErB,OAAO2D,CACT,CACA,SAASC,GAAe30E,EAAOu0E,GAC7BA,EAAUA,GAAW,EAOrB,IANA,IAAItD,EAAMV,GAAUvwE,GAAO40E,QACvB3qF,EAAIgnF,EAAIhnF,EACVF,EAAIknF,EAAIlnF,EACRW,EAAIumF,EAAIvmF,EACNgqF,EAAM,GACNG,EAAe,EAAIN,EAChBA,KACLG,EAAI9kG,KAAK2gG,GAAU,CACjBtmF,EAAGA,EACHF,EAAGA,EACHW,EAAGA,KAELA,GAAKA,EAAImqF,GAAgB,EAE3B,OAAOH,CACT,CA1nBAnE,GAAUxsG,UAAY,CACpB+wG,OAAQ,WACN,OAAOznG,KAAK0nG,gBAAkB,GAC/B,EACDC,QAAS,WACP,OAAQ3nG,KAAKynG,QACd,EACDpnF,QAAS,WACP,OAAOrgB,KAAKwlG,GACb,EACDoC,iBAAkB,WAChB,OAAO5nG,KAAK+kG,cACb,EACD8C,UAAW,WACT,OAAO7nG,KAAKqlG,OACb,EACDyC,SAAU,WACR,OAAO9nG,KAAKmlG,EACb,EACDuC,cAAe,WAEb,IAAItE,EAAMpjG,KAAK0mG,QACf,OAAgB,IAARtD,EAAIpnF,EAAkB,IAARonF,EAAIllF,EAAkB,IAARklF,EAAI9kF,GAAW,GACpD,EACDypF,aAAc,WAEZ,IACIC,EAAOC,EAAOC,EADd9E,EAAMpjG,KAAK0mG,QAQf,OANAsB,EAAQ5E,EAAIpnF,EAAI,IAChBisF,EAAQ7E,EAAIllF,EAAI,IAChBgqF,EAAQ9E,EAAI9kF,EAAI,IAIT,OAHH0pF,GAAS,OAAaA,EAAQ,MAAexoG,KAAKu+F,KAAKiK,EAAQ,MAAS,MAAO,MAG/D,OAFhBC,GAAS,OAAaA,EAAQ,MAAezoG,KAAKu+F,KAAKkK,EAAQ,MAAS,MAAO,MAElD,OAD7BC,GAAS,OAAaA,EAAQ,MAAe1oG,KAAKu+F,KAAKmK,EAAQ,MAAS,MAAO,KAEpF,EACDC,SAAU,SAAkB7vG,GAG1B,OAFA0H,KAAKmlG,GAAKN,GAAWvsG,GACrB0H,KAAKolG,QAAU5lG,KAAK2hB,MAAM,IAAMnhB,KAAKmlG,IAAM,IACpCnlG,IACR,EACDunG,MAAO,WACL,IAAI3D,EAAM8B,GAAS1lG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,IAC1C,MAAO,CACLtoF,EAAW,IAARgnF,EAAIhnF,EACPF,EAAGknF,EAAIlnF,EACPW,EAAGumF,EAAIvmF,EACPjB,EAAGpc,KAAKmlG,GAEX,EACDiD,YAAa,WACX,IAAIxE,EAAM8B,GAAS1lG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,IACtCtoF,EAAIpd,KAAK2hB,MAAc,IAARyiF,EAAIhnF,GACrBF,EAAIld,KAAK2hB,MAAc,IAARyiF,EAAIlnF,GACnBW,EAAI7d,KAAK2hB,MAAc,IAARyiF,EAAIvmF,GACrB,OAAkB,GAAXrd,KAAKmlG,GAAU,OAASvoF,EAAI,KAAOF,EAAI,MAAQW,EAAI,KAAO,QAAUT,EAAI,KAAOF,EAAI,MAAQW,EAAI,MAAQrd,KAAKolG,QAAU,GAC9H,EACDe,MAAO,WACL,IAAIzC,EAAM+B,GAASzlG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,IAC1C,MAAO,CACLtoF,EAAW,IAAR8mF,EAAI9mF,EACPF,EAAGgnF,EAAIhnF,EACPT,EAAGynF,EAAIznF,EACPG,EAAGpc,KAAKmlG,GAEX,EACDkD,YAAa,WACX,IAAI3E,EAAM+B,GAASzlG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,IACtCtoF,EAAIpd,KAAK2hB,MAAc,IAARuiF,EAAI9mF,GACrBF,EAAIld,KAAK2hB,MAAc,IAARuiF,EAAIhnF,GACnBT,EAAIzc,KAAK2hB,MAAc,IAARuiF,EAAIznF,GACrB,OAAkB,GAAXjc,KAAKmlG,GAAU,OAASvoF,EAAI,KAAOF,EAAI,MAAQT,EAAI,KAAO,QAAUW,EAAI,KAAOF,EAAI,MAAQT,EAAI,MAAQjc,KAAKolG,QAAU,GAC9H,EACDkD,MAAO,SAAe1C,GACpB,OAAOD,GAAS3lG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,GAAIU,EAC5C,EACD2C,YAAa,SAAqB3C,GAChC,MAAO,IAAM5lG,KAAKsoG,MAAM1C,EACzB,EACD4C,OAAQ,SAAgBC,GACtB,OAgZJ,SAAmBzsF,EAAGkC,EAAGI,EAAGlC,EAAGqsF,GAC7B,IAAI5C,EAAM,CAACC,GAAKtmG,KAAK2hB,MAAMnF,GAAGrlB,SAAS,KAAMmvG,GAAKtmG,KAAK2hB,MAAMjD,GAAGvnB,SAAS,KAAMmvG,GAAKtmG,KAAK2hB,MAAM7C,GAAG3nB,SAAS,KAAMmvG,GAAKE,GAAoB5pF,KAG1I,GAAIqsF,GAAc5C,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,IAAMgrG,EAAI,GAAGhrG,OAAO,GAC1K,OAAOgrG,EAAI,GAAGhrG,OAAO,GAAKgrG,EAAI,GAAGhrG,OAAO,GAAKgrG,EAAI,GAAGhrG,OAAO,GAAKgrG,EAAI,GAAGhrG,OAAO,GAEhF,OAAOgrG,EAAIr+F,KAAK,GAClB,CAxZWkhG,CAAU1oG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,GAAIllG,KAAKmlG,GAAIsD,EACtD,EACDE,aAAc,SAAsBF,GAClC,MAAO,IAAMzoG,KAAKwoG,OAAOC,EAC1B,EACD/B,MAAO,WACL,MAAO,CACL1qF,EAAGxc,KAAK2hB,MAAMnhB,KAAKglG,IACnB9mF,EAAG1e,KAAK2hB,MAAMnhB,KAAKilG,IACnB3mF,EAAG9e,KAAK2hB,MAAMnhB,KAAKklG,IACnB9oF,EAAGpc,KAAKmlG,GAEX,EACDyD,YAAa,WACX,OAAkB,GAAX5oG,KAAKmlG,GAAU,OAAS3lG,KAAK2hB,MAAMnhB,KAAKglG,IAAM,KAAOxlG,KAAK2hB,MAAMnhB,KAAKilG,IAAM,KAAOzlG,KAAK2hB,MAAMnhB,KAAKklG,IAAM,IAAM,QAAU1lG,KAAK2hB,MAAMnhB,KAAKglG,IAAM,KAAOxlG,KAAK2hB,MAAMnhB,KAAKilG,IAAM,KAAOzlG,KAAK2hB,MAAMnhB,KAAKklG,IAAM,KAAOllG,KAAKolG,QAAU,GACtO,EACDyD,gBAAiB,WACf,MAAO,CACL7sF,EAAGxc,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKglG,GAAI,MAAc,IAC7C9mF,EAAG1e,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKilG,GAAI,MAAc,IAC7C3mF,EAAG9e,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKklG,GAAI,MAAc,IAC7C9oF,EAAGpc,KAAKmlG,GAEX,EACD2D,sBAAuB,WACrB,OAAkB,GAAX9oG,KAAKmlG,GAAU,OAAS3lG,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKglG,GAAI,MAAc,MAAQxlG,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKilG,GAAI,MAAc,MAAQzlG,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKklG,GAAI,MAAc,KAAO,QAAU1lG,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKglG,GAAI,MAAc,MAAQxlG,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKilG,GAAI,MAAc,MAAQzlG,KAAK2hB,MAA8B,IAAxBmjF,GAAQtkG,KAAKklG,GAAI,MAAc,MAAQllG,KAAKolG,QAAU,GACpW,EACD2D,OAAQ,WACN,OAAgB,IAAZ/oG,KAAKmlG,GACA,gBAELnlG,KAAKmlG,GAAK,KAGP6D,GAASrD,GAAS3lG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,IAAI,MAAU,EAC/D,EACD+D,SAAU,SAAkBC,GAC1B,IAAIC,EAAa,IAAMpD,GAAc/lG,KAAKglG,GAAIhlG,KAAKilG,GAAIjlG,KAAKklG,GAAIllG,KAAKmlG,IACjEiE,EAAmBD,EACnB5D,EAAevlG,KAAKslG,cAAgB,qBAAuB,GAC/D,GAAI4D,EAAa,CACf,IAAIxsF,EAAIwmF,GAAUgG,GAClBE,EAAmB,IAAMrD,GAAcrpF,EAAEsoF,GAAItoF,EAAEuoF,GAAIvoF,EAAEwoF,GAAIxoF,EAAEyoF,GAC7D,CACA,MAAO,8CAAgDI,EAAe,iBAAmB4D,EAAa,gBAAkBC,EAAmB,GAC5I,EACDzyG,SAAU,SAAkB0qB,GAC1B,IAAIgoF,IAAchoF,EAClBA,EAASA,GAAUrhB,KAAKqlG,QACxB,IAAIiE,GAAkB,EAClBC,EAAWvpG,KAAKmlG,GAAK,GAAKnlG,KAAKmlG,IAAM,EAEzC,OADwBkE,IAAaE,GAAwB,QAAXloF,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAS3I,QAAXA,IACFioF,EAAkBtpG,KAAK4oG,eAEV,SAAXvnF,IACFioF,EAAkBtpG,KAAK8oG,yBAEV,QAAXznF,GAA+B,SAAXA,IACtBioF,EAAkBtpG,KAAKuoG,eAEV,SAAXlnF,IACFioF,EAAkBtpG,KAAKuoG,aAAY,IAEtB,SAAXlnF,IACFioF,EAAkBtpG,KAAK2oG,cAAa,IAEvB,SAAXtnF,IACFioF,EAAkBtpG,KAAK2oG,gBAEV,SAAXtnF,IACFioF,EAAkBtpG,KAAK+oG,UAEV,QAAX1nF,IACFioF,EAAkBtpG,KAAKqoG,eAEV,QAAXhnF,IACFioF,EAAkBtpG,KAAKooG,eAElBkB,GAAmBtpG,KAAKuoG,eAhCd,SAAXlnF,GAAiC,IAAZrhB,KAAKmlG,GACrBnlG,KAAK+oG,SAEP/oG,KAAK4oG,aA8Bf,EACDhrF,MAAO,WACL,OAAOslF,GAAUljG,KAAKrJ,WACvB,EACD6yG,mBAAoB,SAA4B1xE,EAAIj4B,GAClD,IAAI8yB,EAAQmF,EAAG35B,MAAM,KAAM,CAAC6B,MAAMuwB,OAAO,GAAG15B,MAAMD,KAAKiJ,KAKvD,OAJAG,KAAKglG,GAAKryE,EAAMqyE,GAChBhlG,KAAKilG,GAAKtyE,EAAMsyE,GAChBjlG,KAAKklG,GAAKvyE,EAAMuyE,GAChBllG,KAAKmoG,SAASx1E,EAAMwyE,IACbnlG,IACR,EACDypG,QAAS,WACP,OAAOzpG,KAAKwpG,mBAAmBhD,GAAUtoG,UAC1C,EACDwrG,SAAU,WACR,OAAO1pG,KAAKwpG,mBAAmB/C,GAAWvoG,UAC3C,EACDyrG,OAAQ,WACN,OAAO3pG,KAAKwpG,mBAAmB7C,GAASzoG,UACzC,EACDqoG,WAAY,WACV,OAAOvmG,KAAKwpG,mBAAmBvD,GAAa/nG,UAC7C,EACD0rG,SAAU,WACR,OAAO5pG,KAAKwpG,mBAAmBnD,GAAWnoG,UAC3C,EACD2rG,UAAW,WACT,OAAO7pG,KAAKwpG,mBAAmBlD,GAAYpoG,UAC5C,EACD4rG,KAAM,WACJ,OAAO9pG,KAAKwpG,mBAAmB5C,GAAO1oG,UACvC,EACD6rG,kBAAmB,SAA2BjyE,EAAIj4B,GAChD,OAAOi4B,EAAG35B,MAAM,KAAM,CAAC6B,MAAMuwB,OAAO,GAAG15B,MAAMD,KAAKiJ,IACnD,EACDmqG,UAAW,WACT,OAAOhqG,KAAK+pG,kBAAkB9C,GAAY/oG,UAC3C,EACD+rG,WAAY,WACV,OAAOjqG,KAAK+pG,kBAAkBjD,GAAa5oG,UAC5C,EACDgsG,cAAe,WACb,OAAOlqG,KAAK+pG,kBAAkBzC,GAAgBppG,UAC/C,EACDisG,gBAAiB,WACf,OAAOnqG,KAAK+pG,kBAAkB/C,GAAkB9oG,UACjD,EAKDksG,MAAO,WACL,OAAOpqG,KAAK+pG,kBAAkBhD,GAAQ,CAAC,GACxC,EACDsD,OAAQ,WACN,OAAOrqG,KAAK+pG,kBAAkBhD,GAAQ,CAAC,GACzC,GAKF7D,GAAUoH,UAAY,SAAU33E,EAAOwwE,GACrC,GAAsB,UAAlB3rG,GAAQm7B,GAAoB,CAC9B,IAAI43E,EAAW,CAAA,EACf,IAAK,IAAI30G,KAAK+8B,EACRA,EAAMx5B,eAAevD,KAErB20G,EAAS30G,GADD,MAANA,EACY+8B,EAAM/8B,GAEN2uG,GAAoB5xE,EAAM/8B,KAI9C+8B,EAAQ43E,CACV,CACA,OAAOrH,GAAUvwE,EAAOwwE,EAC1B,EA+PAD,GAAUsH,OAAS,SAAUC,EAAQC,GACnC,SAAKD,IAAWC,IACTxH,GAAUuH,GAAQ7B,eAAiB1F,GAAUwH,GAAQ9B,aAC9D,EACA1F,GAAUyH,OAAS,WACjB,OAAOzH,GAAUoH,UAAU,CACzBtuF,EAAGxc,KAAKmrG,SACRzsF,EAAG1e,KAAKmrG,SACRrsF,EAAG9e,KAAKmrG,UAEZ,EAiIAzH,GAAU0H,IAAM,SAAUH,EAAQC,EAAQxE,GACxCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI2E,EAAO3H,GAAUuH,GAAQ/D,QACzBoE,EAAO5H,GAAUwH,GAAQhE,QACzB7oF,EAAIqoF,EAAS,IAOjB,OAAOhD,GANI,CACTlnF,GAAI8uF,EAAK9uF,EAAI6uF,EAAK7uF,GAAK6B,EAAIgtF,EAAK7uF,EAChCkC,GAAI4sF,EAAK5sF,EAAI2sF,EAAK3sF,GAAKL,EAAIgtF,EAAK3sF,EAChCI,GAAIwsF,EAAKxsF,EAAIusF,EAAKvsF,GAAKT,EAAIgtF,EAAKvsF,EAChClC,GAAI0uF,EAAK1uF,EAAIyuF,EAAKzuF,GAAKyB,EAAIgtF,EAAKzuF,GAGpC,EAQA8mF,GAAU6H,YAAc,SAAUN,EAAQC,GACxC,IAAIM,EAAK9H,GAAUuH,GACfQ,EAAK/H,GAAUwH,GACnB,OAAQlrG,KAAKC,IAAIurG,EAAGjD,eAAgBkD,EAAGlD,gBAAkB,MAASvoG,KAAK0U,IAAI82F,EAAGjD,eAAgBkD,EAAGlD,gBAAkB,IACrH,EAYA7E,GAAUgI,WAAa,SAAUT,EAAQC,EAAQS,GAC/C,IACIC,EAAYC,EADZN,EAAc7H,GAAU6H,YAAYN,EAAQC,GAIhD,OAFAW,GAAM,GACND,EAqbF,SAA4BE,GAG1B,IAAIC,EAAO7nG,EAKX6nG,IAJAD,EAAQA,GAAS,CACfC,MAAO,KACP7nG,KAAM,UAEO6nG,OAAS,MAAMC,cAC9B9nG,GAAQ4nG,EAAM5nG,MAAQ,SAAS+G,cACjB,OAAV8gG,GAA4B,QAAVA,IACpBA,EAAQ,MAEG,UAAT7nG,GAA6B,UAATA,IACtBA,EAAO,SAET,MAAO,CACL6nG,MAAOA,EACP7nG,KAAMA,EAEV,CAzce+nG,CAAmBN,IACbI,MAAQH,EAAW1nG,MACpC,IAAK,UACL,IAAK,WACH2nG,EAAMN,GAAe,IACrB,MACF,IAAK,UACHM,EAAMN,GAAe,EACrB,MACF,IAAK,WACHM,EAAMN,GAAe,EAGzB,OAAOM,CACT,EAWAnI,GAAUwI,aAAe,SAAUC,EAAWC,EAAW/rG,GACvD,IAEIkrG,EACAc,EAAuBN,EAAO7nG,EAH9BooG,EAAY,KACZC,EAAY,EAIhBF,GADAhsG,EAAOA,GAAQ,IACcgsG,sBAC7BN,EAAQ1rG,EAAK0rG,MACb7nG,EAAO7D,EAAK6D,KACZ,IAAK,IAAI9N,EAAI,EAAGA,EAAIg2G,EAAUj2G,OAAQC,KACpCm1G,EAAc7H,GAAU6H,YAAYY,EAAWC,EAAUh2G,KACvCm2G,IAChBA,EAAYhB,EACZe,EAAY5I,GAAU0I,EAAUh2G,KAGpC,OAAIstG,GAAUgI,WAAWS,EAAWG,EAAW,CAC7CP,MAAOA,EACP7nG,KAAMA,MACDmoG,EACEC,GAEPjsG,EAAKgsG,uBAAwB,EACtB3I,GAAUwI,aAAaC,EAAW,CAAC,OAAQ,QAAS9rG,GAE/D,EAKA,IAAI0jG,GAAQL,GAAUK,MAAQ,CAC5ByI,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChBC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,MACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIXpM,GAAW9F,GAAU8F,SAMzB,SAAc3yG,GACZ,IAAIg/G,EAAU,CAAA,EACd,IAAK,IAAIz/G,KAAKS,EACRA,EAAE8C,eAAevD,KACnBy/G,EAAQh/G,EAAET,IAAMA,GAGpB,OAAOy/G,CACT,CAdoCtyC,CAAKwgC,IAiBzC,SAASsB,GAAWzoF,GAKlB,OAJAA,EAAI+W,WAAW/W,IACXkgC,MAAMlgC,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAECA,CACT,CAGA,SAASkoF,GAAQ9tG,EAAGiJ,IA+BpB,SAAwBjJ,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAE67B,QAAQ,MAAgC,IAAlBc,WAAW38B,EACpE,EAhCM8+G,CAAe9+G,KAAIA,EAAI,QAC3B,IAAI++G,EAkCN,SAAsB/+G,GACpB,MAAoB,iBAANA,IAAqC,GAAnBA,EAAE67B,QAAQ,IAC5C,CApCuBmjF,CAAah/G,GASlC,OARAA,EAAIgJ,KAAK0U,IAAIzU,EAAKD,KAAKC,IAAI,EAAG0zB,WAAW38B,KAGrC++G,IACF/+G,EAAI8E,SAAS9E,EAAIiJ,EAAK,IAAM,KAI1BD,KAAKge,IAAIhnB,EAAIiJ,GAAO,KACf,EAIFjJ,EAAIiJ,EAAM0zB,WAAW1zB,EAC9B,CAGA,SAAS2mG,GAAQxoE,GACf,OAAOp+B,KAAK0U,IAAI,EAAG1U,KAAKC,IAAI,EAAGm+B,GACjC,CAGA,SAASmmE,GAAgBnmE,GACvB,OAAOtiC,SAASsiC,EAAK,GACvB,CAcA,SAASkoE,GAAKnpF,GACZ,OAAmB,GAAZA,EAAEhnB,OAAc,IAAMgnB,EAAI,GAAKA,CACxC,CAGA,SAAS4nF,GAAoB/tG,GAI3B,OAHIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAETA,CACT,CAGA,SAASwvG,GAAoBnpF,GAC3B,OAAOrd,KAAK2hB,MAAsB,IAAhBgS,WAAWtW,IAAUlmB,SAAS,GAClD,CAEA,SAASqtG,GAAoBpnF,GAC3B,OAAOmnF,GAAgBnnF,GAAK,GAC9B,CACA,IAQM64F,GAKAC,GACAC,GAdFnS,IAaEkS,GAAoB,eALpBD,GAAW,8CAKoC,aAAeA,GAAW,aAAeA,GAAW,YACnGE,GAAoB,cAAgBF,GAAW,aAAeA,GAAW,aAAeA,GAAW,aAAeA,GAAW,YAC1H,CACLA,SAAU,IAAI54G,OAAO44G,IACrBrS,IAAK,IAAIvmG,OAAO,MAAQ64G,IACxBjS,KAAM,IAAI5mG,OAAO,OAAS84G,IAC1BjS,IAAK,IAAI7mG,OAAO,MAAQ64G,IACxB/R,KAAM,IAAI9mG,OAAO,OAAS84G,IAC1B/R,IAAK,IAAI/mG,OAAO,MAAQ64G,IACxB7R,KAAM,IAAIhnG,OAAO,OAAS84G,IAC1BxR,KAAM,uDACNF,KAAM,uDACNC,KAAM,uEACNJ,KAAM,yEAOV,SAASO,GAAe1xE,GACtB,QAAS6wE,GAASiS,SAASr5G,KAAKu2B,EAClC,CCjhCe,IAAAijF,GAAA,CAEbC,SAAU50E,QAEVtO,MAAO,CACL13B,KAAM/C,OACNoqB,QAAS,IAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU8P,QAEV3c,KAAM,CACJrpB,KAAMhC,SACNqpB,aAAS,GAGXqtD,SAAU,CACR10E,KAAM,CAAC/C,OAAQC,SAGjBquC,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAS,QAAQjnB,SAASinB,EAC9C,GAGFl6B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAAU,WAAWjnB,SAASinB,EACzE,GAGF9V,MAAO,CACL7sB,KAAM/C,OACNoqB,QAAS,IAGXmkB,QAAS,CACPxrC,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,UAAW,iBAAiBjnB,SAASinB,EAChE,GAGF8I,QAASztC,SAETmyD,QAASnyD,UCrEX68G,GAAevhF,kBAAgB,CAC7Bx9B,KAAM,OACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAsB42G,EAAoBzmF,GAAU,OAA5CO,aACFsa,EAAiB7Z,GAAe,OAC9B88B,EAAc7B,GAAc,CAAE6B,UAAWC,KAAzCD,UACFpuB,EAAiBU,KACjB2C,EAAgBjC,KACd3P,EAASD,KAATC,KACAwP,EAAUvQ,EAAAA,qBAAVuQ,MAEF+1E,EAAWl/F,EAAAA,UAAS,WACjB,MAAA,CAAA,GAAAyZ,OACF4Z,EAAe7xC,OAAA,GAAAi4B,OACf4Z,EAAe7xC,MAAAi4B,MAAAA,OAAUpxB,EAAMmuB,OAAAiD,GAAAA,OAC/B4Z,EAAe7xC,YAAAi4B,OAAUpxB,EAAMsnC,SAAAruC,EAAAA,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAE5B4Z,EAAe7xC,oBAAoB6G,EAAMwwE,UAAA,GAAAp/C,OACzC4Z,EAAe7xC,iBAAiB6G,EAAM02G,UAAAtlF,GAAAA,OACtC4Z,EAAe7xC,oBAAoB6G,EAAMgyB,UAC5CV,EAAKn4B,MAAM6G,EAAMuE,MAAuB,WAAfvE,EAAMuE,MAElB,WAAhBvE,EAAMqnC,OAAU,GAAAjW,OAAe4Z,EAAe7xC,mBAAU6G,EAAMqnC,OAElE,IACMyvE,EAAWn/F,EAAAA,UAAiB,WAChC,OAAOo/F,GACT,IAEMC,EAAYr/F,EAAAA,UAAiB,WACjC,OAAK3X,EAAMwwE,SAEJ,CACLA,SAAUrzB,MAAMnkD,OAAOgH,EAAMwwE,WAAaz3E,OAAOiH,EAAMwwE,aAAYp/C,OAAGpxB,EAAMwwE,SAAA,OAHlD,EAK9B,IAEMumC,EAAmB,WACjB,IAAEvjF,EAAmBxzB,EAAnBwzB,MAAO8T,EAAYtnC,EAAZsnC,QACf,IAAK9T,EAAO,MAAO,GAEnB,IAWUyjF,EAAEp6F,EAAGkC,EAAGI,EATZ0T,EAAgB,CACpBW,MAHgBuwE,GAAUvwE,GAAOo1E,eAGd,GAAM,QAAU,SAMrC,GAHgB,YAAZthE,GAAqC,kBAAZA,IAC3BzU,EAAMqkF,YAAc1jF,GAEN,YAAZ8T,EAAuB,CAMzBzU,EAAM8W,gBAA8B,SAAZrC,EAAqB9T,GAJrCyjF,EAAclT,GAAUvwE,GAAO+zE,QAA7B1qF,IAAAA,EAAGkC,EAAGk4F,EAAHl4F,EAAGI,EAAA83F,EAAA93F,EAEPiS,QAAAA,OAAQvU,eAAMkC,EAAM,MAAAqS,OAAAjS,EAAA,UAG/B,CAIO,MAHS,SAAZmoB,IACFzU,EAAMW,MAAQA,GAETX,GAGHge,EAAc,SAACr2C,GAAkB,IAAA21C,EACjCnwC,EAAMgyB,UACJ,QAANhyB,EAAAA,EAAMunC,eAAA,IAAA4I,GAANnwC,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,KAiCpB,OAAO,WAEL,IAAMssB,EAhCa,WACnB,IAAK9mB,EAAM02G,SAAiB,OAAA,KACtB,IAAA5mC,EAAA1+C,GAAAA,OAAmB4Z,EAAe7xC,MAAA,gBACpC,OAAAy9G,EAAgBz9G,MAAM2tB,UACjBrJ,EAAAA,EAAEm5F,EAAgBz9G,MAAM2tB,UAAUrJ,EAACA,GAAY,CAAEoZ,MAAOi5C,IAEjEl5C,EAAAA,YAAAq3B,EAAA,CAAA1mB,QAEa,SAAAgiB,GAA8B,IAAA+E,EAA3B9zD,IAAAA,EACNA,GAAGA,EAAE24E,kBACH,QAANnzE,EAAAA,EAAMisD,eAAA,IAAAqC,GAANtuD,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,GACpB,EAAAq8B,MACOi5C,GACT,MAmBgBqnC,GAEZC,EAAal0E,EAAc,UAAW,WAEtC/d,EAAO0a,EAAe,QAEtBlX,EArBY,SAACyuF,GACb,IAAAv2E,EAASC,EAAM9gC,OAAS,GAC9B,OAAIijD,QAAQz+C,IAAIq8B,EAAQ,SACfA,EAAOlY,YAAS,EAGrByuF,QAAJ,EAecjsD,CAAY/yC,GAASg/F,GAAcA,EAAa,IAG5D,OAAAxgF,EAAAA,YAAA,MAAA,CAAAC,MAAYggF,EAAS19G,YAAc29G,EAAS39G,cAAgB03C,GACzD1rB,CAAAA,EAAAyR,EAAAO,YAAA,OAAA,CAAAN,MAEQ72B,EAAMwwE,mBAAcxlC,EAAe7xC,MAAgB,eAAA,EAAA05B,MACnDmkF,EAAU79G,MAAAwvB,MACVA,GAAA,CAENyuF,KAEDp3G,EAAMgyB,UAAYlL,IAI5B,IC9HauwF,GAAA,CAEbhlF,QAAS,CACPv2B,KAAMgmC,QACN3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMgmC,QACN3e,aAAS,GAGXm0F,eAAgBx1E,QAEhBy1E,aAAc,CACZz7G,KAAMxE,QAGR2xB,QAAS,CACPntB,KAAM,CAAC/C,OAAQC,OAAQrC,MAAOmD,WAGhCqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU8P,QAEVv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF+4E,eAAgB,CACd17G,KAAMxE,QAGR6B,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,SAGjBsvD,SAAUxuD,SAEVytC,QAASztC,UCjBE29G,GAAiB,eACjBC,GAAe,aACfC,GAAiB,eACjBC,GAAkB,gBAClBC,GAAa,YACbC,GAAY,WACZC,GAAY,WACZC,GAAY,kCACZC,GAAY,UACZC,GAAU,iBACVC,GAAmB,slBCvChC,IAAAC,GAAehjF,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAowB,EAAgBe,GAAe,OAC7BG,EAASD,KAATC,KACF4R,EAAgBjC,KAEtB8qC,EAAgC7nC,SAAOlkC,GAOvCgsE,EAAArvD,GANwCooD,GADhCgH,EAAA15C,QAAoB05C,EAAX/G,WAIfhlE,EAAMs3G,eACNt3G,EAAMsoD,SACN,WACF,GANO+vD,EAAcrsC,EAAA,GAAAssC,EAAetsC,EAAA,GAQ9B6qC,EAAWl/F,EAAAA,UAAS,WACjB,MAAA,CAAA,GAAAyZ,OACFhB,EAAcj3B,OAAA,GAAAi4B,OACdhB,EAAcj3B,MAAA,WACjBm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAAAA,QAAAm4B,OAEXhB,EAAcj3B,mBAAmBk/G,EAAal/G,OAAAi4B,GAAAA,OAC9ChB,EAAcj3B,MAAoB6G,cAAAA,EAAMgyB,UAGlD,IAEMumF,EAAgB5gG,EAAAA,UAAS,WAC7B,IAAM4/F,MAA6BppF,MAAO,WAAcnuB,EAAMu3G,cACxDC,EAA6BhhF,MAAKx2B,EAAMw3G,gBACvC,OAAAa,EAAal/G,MAAQo+G,EAAeC,CAC7C,IAEM3mE,EAAc,SAAA0Y,GAA8B,IAC3BpZ,EADA31C,EAAA+uD,EAAA/uD,EAChBwF,EAAMgyB,WACH,QAANhyB,EAAAA,EAAMunC,eAAA,IAAA4I,GAANnwC,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,IACF89G,GAACD,EAAal/G,MAAO,CAAEqB,EAAAA,EAAGrB,MAAO6G,EAAM7G,UAIrDq/G,EAAwB,SAACh+G,GAAqB,IAAAi+G,EAC5CpqC,EAAO7zE,EAAE6zE,eAAQoqC,EAAAj+G,EAAEhC,wBAAFigH,EAAOpxC,SACRywC,GAAUjgH,KAAKw2E,IAAS0pC,GAAUlgH,KAAKw2E,MAE3D7zE,EAAEwzE,iBACcsqC,GAACD,EAAal/G,MAAO,CAAEqB,EAAAA,EAAGrB,MAAO6G,EAAM7G,UAIrDu/G,EAAkB,SAACl+G,GACrBA,EAAAyqD,cAAc1rB,iBAAiB,UAAWi/E,IAGxCG,EAAiB,SAACn+G,GACpBA,EAAAyqD,cAAcprB,oBAAoB,UAAW2+E,IAGjD,OAAO,WACC,IA9DyBj7F,EA8DzB65F,EAAal0E,EAAc,UAAW,WAE1C,OAAAtM,EAAAO,YAAAyhF,GAAAr0E,aAAA,CAAA1N,MACSggF,EAAS19G,eACN6G,EAAMgyB,SAChB0Z,SAAU1rC,EAAMgyB,cAAW,EAAY,IACvCg9D,QAAS0pB,SACDC,GACJJ,EAAcp/G,MAClB,CAAAouC,QAASsJ,IAvEkB,mBAAAtzB,EAyE1B65F,IAzE0B7kE,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAyE1B65F,EAAA,CAAAj0F,QAAA,WAAA,MAAA,CAAAi0F,EAAA,IAIT,IC3EayB,GAAA,CAEbtB,aAAc,CACZz7G,KAAMxE,QAGR4rG,SAAUphE,QAEV5sB,QAAS,CACPpZ,KAAMnF,OAGR6gH,eAAgB,CACd17G,KAAMxE,QAGR6B,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAAqD,EAAC,GAGxDmlC,SAAUxuD,UC/BZ,IAAAg/G,GAAe1jF,kBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAOsqC,GACX,IAAAyhC,EAAuC7nC,SAAOlkC,GAAtC7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAY9vD,EAAQ62D,EAAR72D,QACrBkb,EAAgBe,GAAe,mBAC/B4nF,EAAuBphG,EAAAA,UAAS,WAAA,MAAM,CAACyY,EAAcj3B,UAEwC6yE,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAE1BgtC,EAAgD,SAAC3mF,EAAS+0B,GAC9D,IAAMjuD,EAAQiuD,EAAIjuD,MAClB,GAAIk5B,EACEryB,EAAMkjG,SACRlR,EAAcD,EAAW54F,MAAMi4B,OAAOj4B,GAAQ,CAAEqB,EAAG4sD,EAAI5sD,EAAGsB,KAAM,QAAS3C,MAAAA,IAE3D64F,EAAA,CAAC74F,GAAQ,CAAEqB,EAAG4sD,EAAI5sD,EAAGsB,KAAM,QAAS3C,MAAAA,QAE/C,CACL,IAAIgH,EAA+B,GAC/BH,EAAMkjG,WACR/iG,EAAW4xF,EAAW54F,MAAMinC,QAAO,SAACrjB,GAAA,OAAMA,IAAM5jB,MAEpC64F,EAAA7xF,EAAU,CAAE3F,EAAG4sD,EAAI5sD,EAAGsB,KAAM,UAAW3C,MAAAA,GACvD,GAcF,OAAO,WAEH,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYkiF,EAAqB5/G,SAC7B+b,EAAQ/b,OAAS,IAAI6L,KAAI,SAACmvE,SA3CX52D,+BA6CR42D,EAAOh7E,MACZA,MAAOg7E,EAAOh7E,MACdo+G,aAAcv3G,EAAMu3G,aAAAC,eACJx3G,EAAMw3G,uBACbzlB,EAAW54F,MAAMqe,SAAS28D,EAAOh7E,OAC1CmvD,SAAU0wD,EACVhnF,SAAUmiD,EAAOniD,SAAAztB,KACX4vE,EAAO5vE,KAAA,aACD4vE,EAAOh7E,QArDNokB,EAuDZ80B,EA1BW,SAAC8hC,GACrB,OAAI7pC,EAAQnK,MAAMg0C,OAAe7pC,EAAQnK,MAAMg0C,OAAOA,GAClD7pC,EAAQnK,MAAMsZ,MAAcnP,EAAQnK,MAAMsZ,MAAM06B,GAChDA,EAAO16B,MACF58C,EAAWs3E,EAAO16B,OAAS06B,EAAO16B,MAAMh8B,EAACA,GAAI02D,EAAO16B,MAEzD06B,EAAOlrD,SAAWpsB,EAAWs3E,EAAOlrD,SAAiBkrD,EAAOlrD,QAAQxL,EAAAA,GACpE02D,EAAO,SAAWt3E,EAAWs3E,EAAA,SAAwBA,UAAe12D,EAACA,GAClE02D,EAAOh7E,MAkBL8/G,CAAc9kC,GAvDF,mBAAA52D,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAwDf80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,IACD,MAIT,ICtDWumE,GAAMjyE,GAAYgwE,IAClBuC,GAAWvyE,GAAYyxE,IACvBe,GAAgBxyE,GAAYmyE,0oCCAzC,IAQAM,GAAehkF,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAmC,IAATmgC,EAAAoC,EAAApC,MACxBN,EAAiBU,KACvBmC,EAZK,CACL22E,WAAYloF,GAAe,aAC3BmoF,YAAanoF,GAAe,2BAC5BooF,iBAAkBpoF,GAAe,0BASzBkoF,EAAA32E,EAAA22E,WAAYC,EAAa52E,EAAb42E,YAAaC,EAAA72E,EAAA62E,iBACzBnkB,EAA0BhpC,GAAc,CAAEgpC,sBAAuBC,KAAjED,sBAEFjqD,EAAad,KACb81D,EAAa7Q,KAEnBvjB,EAA+F7nC,EAAAA,OAAOlkC,GAA9FsxF,EAAAvlB,EAAAulB,WAAYsH,EAAY7sB,EAAZ6sB,WAAY1K,EAAAniB,EAAAmiB,WAAY3pF,EAAMwnE,EAANxnE,KAAMoqF,EAAA5iB,EAAA4iB,KAAMtgC,EAAQ0d,EAAR1d,OAAQt2B,EAAAg0C,EAAAh0C,OAAQi2D,EAAWjiB,EAAXiiB,UAAWoB,EAAArjB,EAAAqjB,QAMnFoqB,EAAA78F,GALsC88F,GACpCnoB,EACAtxF,EAAMgjG,kBACNhjG,EAAMwjG,cACN,cACF,GALOkW,EAAaF,EAAA,GAAAG,EAAcH,EAAA,GAMlCI,EAA0D11E,SAAOlkC,GAAzD4jG,EAAuBgW,EAAvBhW,sBAAuBzV,EAAAyrB,EAAAzrB,UAAWpmE,EAAY6xF,EAAZ7xF,YAC1C8xF,ECjCG,SAAkB75G,GACvB,IAAQgyB,EAAmDhyB,EAAnDgyB,SAAUu8D,EAAyCvuF,EAAzCuuF,SAAUx/B,EAA+B/uD,EAA/B+uD,aAAcC,EAAiBhvD,EAAjBgvD,aACpCijC,EAAU/hE,OAAa,GActB,MAAA,CAAE+hE,QAAAA,EAAS6nB,SAZD,SAACxvE,GACZikD,GAAYv8D,IAChBigE,EAAQ94F,OAAQ,EAChB41D,SAAAA,EAAezkB,KASWyvE,YANR,SAACzvE,GACfikD,GAAYv8D,IAChBigE,EAAQ94F,OAAQ,EAChB61D,SAAAA,EAAe1kB,KAInB,CDgB+C0vE,CAAS,CAClDzrB,SAAU4R,EAAWhnG,MACrB64B,SAAUmZ,EAAWhyC,MACrB41D,aAAc/uD,EAAM+uD,aACpBC,aAAchvD,EAAMgvD,eAJdijC,EAAA4nB,EAAA5nB,QAAS6nB,EAAUD,EAAVC,SAAUC,EAAAF,EAAAE,YAMrBpoB,EAAgBzhE,OAAI,GAClBxL,EAAgByL,KAAhBzL,YACFu1F,EAAY/pF,OAAI,GAGhBgqF,EElDH,SAA0Bl6G,GAC/B,IAAQm6G,EAAiDn6G,EAAjDm6G,gBAAiBx7B,EAAgC3+E,EAAhC2+E,WAAYy7B,EAAoBp6G,EAApBo6G,gBAC/BC,EAAgBnqF,EAAAA,KAAM,GACtBoqF,EAAgBpqF,MAAI,MACpBqqF,EAAYrqF,MAAI,MAChBsqF,EAAY11E,EAAAA,SAAS,CAAE21E,MAAO,EAAGC,UAAW,EAAGC,OAAQ,IAEvDC,EAAa,SAACpgH,EAAcS,EAAe4/G,GAE/C,GADArgH,EAAEwzE,iBACEqsC,EAAclhH,QAAU8B,IAAiC,IAAxBo/G,EAAclhH,MAAnD,CACA,IAAM65B,EAASx4B,EAAEw4B,OACb,GAAAonF,UAAAA,EAAiBU,uBAA0BV,SAAAA,EAAiBU,sBAAsBjjH,KAAKm7B,EAAOoH,WAA9F,CAIA,GAAAggF,SAAAA,EAAiB56F,GAAKwT,EAAQ,CAChC,IAAKwnF,EAAUE,UAAW,OAE1B,IAAAK,EAAqB/nF,EAAOoK,wBAApB5d,EAAAu7F,EAAAv7F,EAAGwX,EAAM+jF,EAAN/jF,MACLgkF,EAAoBx7F,EAAIwX,EAAQ,EAChCikF,EAAmBzgH,EAAE02E,SAAWspC,EAAUG,OAASH,EAAUC,OAC7DS,EAAoBD,EAAmBT,EAAUE,UASvD,KANIO,EAAmBz7F,GAAKy7F,EAAmBz7F,EAAIwX,EACvCikF,EAAmBD,EAEnBE,EAAoBF,GAGlB,MAChB,CAEar8B,SAAAA,EAAA,CACXzK,aAAcmmC,EAAclhH,MAC5BygB,QAAS0gG,EACTtnF,OAAQ6nF,EACR/1B,YAAa7pF,IAGfo/G,EAAclhH,MAAQ8B,CA3BtB,CAJiE,GAkCnE,IAAKk/G,EACH,MAAO,GAGA,SAAAgB,EAAY3gH,EAAcS,EAAe4/G,GAChDR,EAAclhH,MAAQ8B,EACtBq/G,EAAcnhH,MAAQ0hH,EACtB,IAAM7nF,EAASx4B,EAAEw4B,OACjB,GAAIonF,GAAmBpnF,EAAQ,CAC7B,IAAAooF,EAAqBpoF,EAAOoK,wBAApB5d,EAAA47F,EAAA57F,EAAGwX,EAAMokF,EAANpkF,MACXwjF,EAAUC,MAAQj7F,EAClBg7F,EAAUE,UAAY1jF,EACtBwjF,EAAUG,OAASngH,EAAE02E,OACvB,CACF,CAEA,SAASmqC,IACPd,EAAUphH,OAAQ,CACpB,CAEA,SAASmiH,IACFf,EAAUphH,MAGfohH,EAAUphH,OAAQ,EAClBkhH,EAAclhH,OAAQ,EACtBmhH,EAAcnhH,MAAQ,IACxB,CAuBO,MAAA,CAAEgiH,YAAAA,EAAaP,WAAAA,EAAYS,OAAAA,EAAQC,UAAAA,EAAWC,aArB5C,SAAatgH,EAAe4/G,GACnC,OAAIV,EACK,CACLx8B,WAAW,EACX69B,YAAa,SAAChhH,GACA2gH,EAAA3gH,EAAGS,EAAO4/G,EACxB,EACAY,WAAY,SAACjhH,GACAogH,EAAApgH,EAAGS,EAAO4/G,EACvB,EACAQ,OAAQ,WACCA,GACT,EACAK,UAAW,WACCJ,GACZ,GAGG,EACT,EAEmEK,UAAqC,IAA3BtB,EAAclhH,MAC7F,CF5C6ByiH,CAAcplF,GAAAA,MAClCx2B,GAAAA,GAAAA,CACHm6G,gBAAiBn6G,EAAMw+E,SACvB47B,gBAAiB,CACf56F,GAAG,EACHs7F,sBAAuB,IAAIp9G,OAAO,IAAA0zB,OAAI1M,EAAYvrB,MAAW,aALzDoiH,EAAarB,EAAbqB,aAQFM,EGpDH,SAAsB77G,GAC3B,IAAM87G,EAAc5rF,EAAAA,MACpB67C,EAAsD7nC,SAAOlkC,GAArD4jG,EAAuB73B,EAAvB63B,sBAAuBrV,EAAAxiB,EAAAwiB,SAAUv8D,EAAS+5C,EAAT/5C,SAEnC+pF,EAAiB7rF,MAAI,GACrB8rF,EAAgB9rF,EAAAA,MAChB+rF,EAAkB/rF,EAAAA,MAClBgsF,EAAehsF,OAAI,GAEnBisF,EAAsB,SAAC3iF,GACrB,IAAA4iF,EAAe5iF,EAAQ0F,SAAS,GACtC88E,EAAc7iH,MAAQijH,GAGlBC,EAAuB,WAC3BN,EAAe5iH,MAAQ6iH,EAAc7iH,MAAMsjC,YAAcu/E,EAAc7iH,MAAMojC,aAGzEd,EAAW,SAAC4iC,GAAqB,IAAAi+C,EAChCz/G,EAAyB,QAAzBy/G,EAAWN,EAAc7iH,aAAdmjH,IAAcA,OAAdA,EAAAA,EAAqBr7C,SACrC+6C,EAAc7iH,MAAM8nE,OAAO,CAAE1jC,KAAM8gC,EAAUk+C,SAAU,YAGnDC,EAAgB,WACCH,IACrB5gF,EAASsgF,EAAe5iH,OACxB8c,YAAW,WACTimG,EAAa/iH,OAAQ,IACpB,MAmDE,OAJPo8B,EAAAA,WAVa,WAAM,IAAAknF,EACXjjF,EAA6B,QAA7BijF,EAAUX,EAAY3iH,aAAO,IAAAsjH,OAAA,EAAnBA,EAAmB34B,IAC9BtqD,GACL2iF,EAAoB3iF,MAStB2Q,EAAAA,aANc,WACZ5zB,aAAa0lG,EAAgB9iH,UAOxB,CACL2iH,YAAAA,EACAE,cAAAA,EACAD,eAAAA,EACAtgF,SAAAA,EACA+gF,cAAAA,EACAE,aAtDmB,WACnBjhF,EAAS,IAsDT0gF,oBAAAA,EACAE,qBAAAA,EACA52B,QApDc,SAAAljD,GAA8B,IAA3B/nC,EAAA+nC,EAAA/nC,EACb,IAAA+zF,EAASp1F,QAAS64B,EAAS74B,OAC1B6iH,EAAc7iH,MACf,GAAAqB,EAAEsoF,OAAS,EAAG,CACV,IAAAzkB,EAAWh+D,KAAK0U,IAAIinG,EAAc7iH,MAAMolC,WAAa,IAAKw9E,EAAe5iH,OAC/EsiC,EAAS4iC,EACX,KAAO,CACL,IAAMA,EAAWh+D,KAAKC,IAAI07G,EAAc7iH,MAAMolC,WAAa,IAAK,GAChE9C,EAAS4iC,EACX,GA4CAs+C,qBAxC2B,WACS,WAAhC/Y,EAAsBzqG,QAEV8iH,EAAA9iH,MAAQ8c,YAAW,WACnBumG,IACdjmG,aAAa0lG,EAAgB9iH,SAC5B,OAmCHyjH,oBAhC0B,WACU,WAAhChZ,EAAsBzqG,QAC1B+iH,EAAa/iH,OAAQ,EACrBsiC,EAAS,GACTllB,aAAa0lG,EAAgB9iH,SA6B7B+iH,aAAAA,EAEJ,CHxCMW,CAAa78G,GADPw8G,IAAAA,cAAe/2B,EAASo2B,EAATp2B,QAASk3B,EAAAd,EAAAc,qBAAsBC,IAAAA,oBAAqBd,EAAaD,EAAbC,YAAaI,EAAAL,EAAAK,aAIlFY,EInDH,SAAoB98G,GACzB,IAAMmuD,EAAc5tB,KACd7b,EAAcyM,KACd46C,EAAsF7nC,EAAAA,OAAOlkC,GAA3F7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAY+Y,EAAUhS,EAAVgS,SAAUz9E,EAAAyrE,EAAAzrE,IAAK2iG,EAAiBl3B,EAAjBk3B,gBAAiB1+F,EAAAwnE,EAAAxnE,KAAM++F,EAAUv3B,EAAVu3B,SAAUiY,EAAAxvC,EAAAwvC,aAE2BvvC,EAAArvD,GAArEooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,cAAgB,GAAItG,EAAMsoD,UAAQ,GAA/Fy0D,EAAA/wC,EAAA,GAAWgxC,EAAWhxC,EAAA,GACvBixC,EAAWtlG,EAAAA,UAAS,WAAA,OAAMolG,EAAU5jH,OAAS,MAC7C+jH,EAAgBhtF,EAAAA,MAEhBib,EAAad,KACb81D,EAAa7Q,KAGbrjC,EAAU,SAACvtC,GAAyC,IAAAy+F,EAClD7mH,EAAMwB,EAAImlH,EAAS9jH,OAClB8lC,EAA6BtiB,GAArBrmB,EAAIqO,OAAO+Z,EAAEzjB,MAAO,GAAC,GAAzB,GACX+hH,EAAY1mH,SAAOiuD,QAAS,cAAiB7lC,GAAA,GAAA,CAAGugB,KAAAA,KACvC,QAAAk+E,EAAAp/B,EAAA5kF,aAAAgkH,IAAAA,GAAAA,EAAA1lH,KAAAsmF,EAAAvnD,GAAAA,MAAa9X,GAAA,GAAA,CAAGugB,KAAAA,EAAMslB,QAAS,aAAcprD,MAAO7C,MAgGxD,MAAA,CACL2mH,SAAAA,EACAG,SA/Fe,SAAC9yE,GACJ0yE,EAAA,GAAI,CAAEz4D,QAAS,QAAS/pD,EAAG8vC,EAAQ9vC,KA+F/CyxD,QAAAA,EACAoxD,aA5FmB,SAAClkH,EAAemxC,GAAkC,IAAAurD,EAC/DynB,EAAWnkH,EAAQJ,OAAOI,GAAOkuE,OAAS,GAC1Ck2C,EAAkBj9G,GAAO28G,EAAS9jH,MAAM3C,QAAU8J,EAAInH,MACxDgH,EAA0B88G,EAAS9jH,OAClCokH,GAAmBD,IACtBn9G,EAAW88G,EAAS9jH,MAAMi4B,OAAOr4B,OAAOukH,IACxCN,EAAY78G,EAAU,CACpBokD,QAAS,QACTtpD,MAAOkF,EAAS3J,OAAS,EACzByoC,KAAMq+E,EACN9iH,EAAG8vC,EAAQ9vC,KAGfwF,iBAAA61F,EAAA71F,EAAOuqF,sBAAPsL,EAAAp+F,KAAAuI,EAAiBG,EAAUq2B,GAAAA,GAAA,CAAA,EAAK8T,GAAS,GAAA,CAAAgnD,WAAYn4F,MAgFrDqkH,sBA5E4B,SAACrkH,GACxB8jH,EAAS9jH,MAAM3C,SACpB0mH,EAAc/jH,MAAQA,IA2EtBskH,wBAxE8B,SAACtkH,EAAmBmxC,GAC5C,IAAE9vC,EAAM8vC,EAAN9vC,EACR,GAAKyiH,EAAS9jH,MAAM3C,QAAoB,YAAVgE,EAAEhC,MAAqB2nG,EAAWhnG,MAAhE,CAEM,IAAAukH,EAAW,4BAA4B7lH,KAAK2C,EAAE6zE,OAAS,4BAA4Bx2E,KAAK2C,EAAEhC,KAC5F,IAACW,GAASukH,EAAU,CAAA,IAAAC,EAChB1iH,EAAQgiH,EAAS9jH,MAAM3C,OAAS,EAChCyoC,EAAOg+E,EAAS9jH,MAAM8B,GACtBspD,EAAU,YACVpkD,EAAW88G,EAAS9jH,MAAMzB,MAAM,GAAK,GAC3CslH,EAAY78G,EAAU,CAAE3F,EAAAA,EAAGS,MAAAA,EAAOgkC,KAAAA,EAAMslB,QAAAA,IAC/B,QAAAo5D,EAAA5/B,EAAA5kF,aAAA,IAAAwkH,GAAAA,EAAAlmH,KAAAsmF,EAAQ,CAAEvjF,EAAAA,EAAGS,MAAAA,EAAOgkC,KAAAA,EAAMslB,QAAAA,EAASprD,MAAOgH,GACrD,CACA+8G,EAAc/jH,MAAQA,CAXiD,GAuEvEykH,YAzDkB,SAAAr7E,GAA8D,IAA3Ds7E,EAAAt7E,EAAAs7E,YAAapkE,IAAAA,MAC5BqkE,EAAU7a,EAAgB9pG,MAAQ8jH,EAAS9jH,MAAMzB,MAAM,EAAGurG,EAAgB9pG,OAAS8jH,EAAS9jH,MAC5Fi0B,EAAOywF,EACT,CAACA,GACDC,EAAQ94G,KAAI,SAACi6B,EAAMhkC,GAAU,IAAA8iH,EACrB3G,EAAajpD,EAAY,MAAO,CAAE9uB,OAAQ,CAAElmC,MAAO8lC,KACzD,OAAArI,EAAAO,YAAAyhF,GAAAr0E,aAAA,CAAA/rC,IAAA,GAAA44B,OAEY6N,GAAA7N,OAAOn2B,QACTsJ,EAAKpL,MACX64B,SAAUmZ,EAAWhyC,MACrB8yD,QAAS,SAAC3hB,GAA+B,OAAA2hB,EAAQ,CAAEzxD,EAAG8vC,EAAQ9vC,EAAGS,MAAAA,GACjE,EAAAy7G,UAAWvW,EAAWhnG,QAAUgyC,EAAWhyC,OAC1B4kH,QAD0BA,EACvCxC,EAAapiH,iBAAA4kH,SAAbA,EAAAtmH,KAAA8jH,EAAqBtgH,EAAOgkC,GAC5BqkE,EAASnqG,OAEZ,CAAAgqB,QAAA,WAAA,MAAA,CAAAi0F,QAAAA,EAAcn4E,KAGpB,KAAK,GASV,GARK,CAAC,UAAM,EAAW,IAAIznB,SAASiiC,IAC7BrsB,EAAAqG,QAAAmD,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACY1M,EAAYvrB,MAA2B,sBAAAX,IAAA,SACnDihD,CAAAA,KAKHqkE,EAAQtnH,SAAWymH,EAAS9jH,MAAM3C,OAAQ,CAC5C,IAAMD,EAAM0mH,EAAS9jH,MAAM3C,OAASsnH,EAAQtnH,OACtCwnH,EAAO7vD,EAAY,iBAAkB,CACzC9uB,OAAQ,CACNlmC,MAAO8jH,EAAS9jH,MAChBsF,MAAOw+G,EAAS9jH,MAAM3C,OAASysG,EAAgB9pG,MAC/C8kH,cAAehB,EAAS9jH,MAAMzB,MAAMurG,EAAgB9pG,MAAO8jH,EAAS9jH,MAAM3C,QAC1E0nH,uBAAwBjB,EAAS9jH,MAAMzB,MAAMurG,EAAgB9pG,MAAO8jH,EAAS9jH,MAAM3C,QACnFy1D,QAAAA,KAGC7+B,EAAAhqB,KACH46G,QAAAA,EAAApnF,EAAAA,YAAAgiF,GAAAr0E,aAAA,CAAA/rC,IAAA,OAAA+L,KACwBA,EAAKpL,OAAWmqG,EAASnqG,OAAA,CAAAgqB,QAAA,WAAA,MAAO,CAAA,IAClD5sB,EAAA,IAIV,CACO,OAAA62B,GAYX,CJtEM+wF,CACEr5E,EAASA,SAAAtO,GAAAA,GAAA,CAAA,EACJ0N,SAAOlkC,IAAK,GAAA,CACfu7G,aAAAA,MAJE0B,IAAAA,SAAUI,EAAcP,EAAdO,aAAcG,EAAAV,EAAAU,sBAAuBC,IAAAA,wBAAyBL,GAAUN,EAAVM,SAAUQ,GAAAd,EAAAc,YAAa3xD,KAAAA,QAQjGt1B,GAAUhf,EAAAA,UAAS,WACvB,IAAMuB,IAAYnhB,EAAQklH,EAAS9jH,QAAU8jH,EAAS9jH,MAAM3C,QACrD,MAAA,CACL6iH,EAAWlgH,MAAAF,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAERsgH,EAAiBpgH,MAAwC,eAAhCyqG,EAAsBzqG,OAAU,GAAAi4B,OACtD1M,EAAYvrB,MAAmB,aAAA+f,GAAA,GAAAkY,OAC/B1M,EAAYvrB,MAAA,yBAA+B+f,GAAAkY,GAAAA,OAC3C1M,EAAYvrB,MAA+B6G,yBAAAA,EAAMw+E,WAAa2hB,EAAWhnG,QAAUgyC,EAAWhyC,OAGxG,IAEMilH,GAAsBzmG,EAAAA,UAAS,WAAA,IAAA0mG,EAAA,OAAwBA,QAAjBA,EAACpB,EAAS9jH,aAATklH,IAAgBA,GAAhBA,EAAgB7nH,OAA6B,GAApBuxB,EAAY5uB,SAE5EmlH,GAAgB3mG,EAAAA,UAAS,WAAA,IAAA4mG,EAAA,OAC7Bz8E,SACGq+D,EAAWhnG,QACTgyC,EAAWhyC,OACZg1F,EAAUh1F,OACV84F,EAAQ94F,SACEolH,QAATA,EAAAtB,EAAS9jH,aAATolH,IAASA,OAATA,EAAAA,EAAgB/nH,SAAUkjH,EAAYvgH,OAC3C,IAGIqlH,GAAe,SAACrlH,EAAemxC,GAAkC,IAAAm0E,EAAAC,UAErED,EAAAn0E,EAAQ9vC,0BAARikH,EAAWzwC,sBAAiB,IAAA0wC,GAA5BA,EAAAjnH,KAAAgnH,GACA9E,EAAe,GAAI,CAAEn/G,EAAG8vC,EAAQ9vC,EAAG+pD,QAAS,WAC3CotC,EAAcx4F,OAASkkH,EAAalkH,EAAOmxC,GAC5C9U,EAAAA,UAAS,WACOgnF,IACd7qB,EAAcx4F,OAAQ,CACxB,KAGIwlH,GAA0B,SAACxlH,EAAemxC,GAAqC,IAAAs0E,EAAAC,EACnFltB,EAAcx4F,OAAQ,UACXylH,EAAAhmB,EAAAz/F,aAAA,IAAAylH,GAA4BC,QAA5BA,EAAAD,EAAO7vB,0BAAP8vB,IAA4BA,GAA5BA,EAAApnH,KAAAmnH,EAA4BzlH,EAAOmxC,IAG1Cw0E,GAAwB,SAAC3lH,EAAemxC,GAAqC,IAAAy0E,EAAAC,EACjFrtB,EAAcx4F,OAAQ,UACX4lH,EAAAnmB,EAAAz/F,aAAA,IAAA4lH,GAA0BC,QAA1BA,EAAAD,EAAOjwB,wBAAPkwB,IAA0BA,GAA1BA,EAAAvnH,KAAAsnH,EAA0B5lH,EAAOmxC,IAGxC/C,GAAmC,SAAC6f,GAAQ,IAAAq1D,EAAAtsE,EAC5ChF,EAAWhyC,QACf8gH,EAAU9gH,OAAQ,UAClBsjH,EAAAX,EAAY3iH,oBAAZsjH,EAAmBt3D,gBACnBnlD,EAAAA,EAAMunC,eAANvnC,OAAAA,EAAAA,KAAAA,EAAgBonD,KAGZ63D,GAAe,SAAC30E,GAA+B,IAAA40E,EACnD9B,GAAS9yE,GACTqvE,EAAe,GAAI,CAAEn/G,EAAG8vC,EAAQ9vC,EAAG+pD,QAAS,kBAC5CvkD,EAAAA,EAAM6uF,eAAN7uF,OAAAA,EAAAA,KAAAA,EAAgBsqC,IAGZ60E,GAA2C,SAAC70E,GAChDwvE,EAASxvE,GACYqyE,KAGjBlwC,GAA2C,SAACniC,GAChDyvE,EAAYzvE,GACQsyE,KAGhBwC,GAAsC,SAAC9tB,EAAoBhnD,GAA+B,IAAA+0E,EAC1FpF,EAAU9gH,QACd8gH,EAAU9gH,OAAQ,UAClB6G,EAAAA,EAAMgvF,eAAU,IAAAqwB,GAAhBr/G,EAAAA,KAAAA,EAAgBi9G,EAAS9jH,MAAO,CAAEqB,EAAG8vC,EAAQ9vC,EAAG82F,WAAAA,MAG5CguB,GAAoC,SAAChuB,EAAoBhnD,GAA+B,IAAAi1E,EAC5FtF,EAAU9gH,OAAQ,EAClBwgH,EAAe,GAAI,CAAEn/G,EAAG8vC,EAAQ9vC,EAAG+pD,QAAS,iBAC5CvkD,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAei9G,EAAS9jH,MAAO,CAAEqB,EAAG8vC,EAAQ9vC,EAAG82F,WAAAA,KAG3CkuB,GAA2C,SAAC/gF,EAAK6L,GACrDqvE,EAAel7E,WAAU6L,GAAS,GAAA,CAAAia,QAAS,YAc7C,OAXA7iB,EAAAA,OACE,WAAA,OAAMw6E,EAAa/iH,KACnB,IAAA,SAAC+kB,GACC,GAAoC,WAAhCle,EAAM4jG,sBAAV,CACM,IAAA6b,EAAAruF,GAAAA,OAAwB1M,EAAYvrB,MAAA,kBACpC6iH,EAAgBF,EAAY3iH,MAAM2qF,IAAIhpD,cAAA1J,IAAAA,OAAkBquF,IAC1DvhG,EAAiB89F,EAAA9hF,UAAU1pB,IAAI,GAAA4gB,OAAGquF,EAAgC,iBACnDzD,EAAA9hF,UAAUve,OAAO,GAAAyV,OAAGquF,EAAgC,gBAJzB,CAKhD,IAGK,WAAM,IAAAC,EAAAC,EACLC,EAAiBtB,GAAcnlH,MACnCy9B,EAAAA,YAAAw+D,EAAA,CAAAv+D,MAA8ByiF,EAAYngH,MAAAouC,QAAgB03E,IAE1Dp/E,MAAAA,EAAe,cAEXggF,EAAiBhgF,EAAe,cAChCigF,EAAA1uF,GAAAA,OAAiB1M,EAAYvrB,MAAA,gCAC/BymH,IAAmBjpF,GAAQx9B,MAAMqe,SAASsoG,IACpCnpF,GAAAx9B,MAAMiK,KAAK08G,GAGf,IAAAjC,EAAch+E,EAAe,eAAgB,CACjDR,OAAQ,CACNlmC,MAAO8jH,EAAS9jH,MAChB8yD,QAAS,SAAChxD,GAAA,OAAkBgxD,GAAQ,CAAEhxD,MAAAA,GAAO,KAI3Cw+C,EAAQ5Z,EAAe,QAAS,CAAE4pD,QAAQ,IAE1C8E,EAAW4R,EAAWhnG,QAA2BumH,QAAlBA,EAAA9mB,EAAWz/F,aAAXumH,IAAkBA,OAAlBA,EAAAA,EAAkBnxB,UAEvD,OAAA33D,EAAAO,YAAAwrE,GAAAp+D,aAAA,CAAArU,IAES4rF,EAAA5tB,WAIOA,EAAW/0F,eACbo1F,EAAAuG,WACEvG,IAAa0uB,EAAS9jH,SAAmB,QAAVwmH,EAAC1C,EAAS9jH,aAATwmH,IAASA,GAATA,EAAgBnpH,cACrDkjH,EAAYvgH,iBACR,EAAAoL,KACLA,EAAKpL,eACDgyC,EAAWhyC,YACd,WAAA,OAAMykH,GAAY,CAAEC,YAAAA,EAAapkE,MAAAA,GAAO,EAAA5iB,MACxCF,GAAQx9B,MAAAw1F,KACTA,EAAKx1F,MAAAk1D,OACHA,EAAOl1D,MAAA4uB,YACFq2F,GAAoBjlH,aACzB4+B,EAAO5+B,iBACH,WAAA,OAAMymH,cACN,WAAA,OAAMC,qBACC7xB,EAAU70F,MAC7BssF,QAASA,WACC+5B,GAAApwB,QACDA,EAAQj2F,MAAAoxF,QACRi0B,GAAArvB,QACAquB,EACTvuB,UAAWwuB,eACG0B,GAAAnwD,aACAyd,GACduiB,QAASowB,UACDE,GAAA/3E,QACCA,GACTwnD,mBAAoB4vB,oBACFG,IACdlmB,EAAWz/F,OAhCN,CACP4+B,OAAQoI,EAAMpI,SAmCxB,IK9NWgoF,GAAWp5E,GAAYyyE,mlBCUpC,IAAM4G,GAAe,CACnBvmE,MAAO,QACPjhD,IAAK,MACL0mC,SAAU,+kBCJL,SAAS+gF,GAAqBjgH,GACnC,IAAA+rE,EAAkC7nC,SAAOlkC,GAAjCmoE,EAAA4D,EAAA5D,WAAY6lB,EAAUjiB,EAAViiB,UACdkyB,EAAoBhwF,OAAI,GACxBiwF,EAAU91E,KACV81D,EAAa7Q,KAEb8wB,EAAiB,SAACx3C,EAA6By3C,GACnD,IAAMC,GAAkBD,EAAa7mD,aAAe6mD,EAAan3E,aAT/C,GAUZlS,EACJqpF,EAAap3E,YAAcq3E,GAAmB13C,EAAe3/B,YACzDo3E,EAAap3E,YACb2/B,EAAe3/B,YACjBs3E,EAAwC,CAAA,EAQrC,OANLp4C,EAAWhvE,OACmC,WAA9Cd,EAAO8vE,EAAWhvE,MAAMqvE,qBACvBL,EAAWhvE,MAAMqvE,kBAAkBxxC,QAEpCupF,EAAyBp4C,EAAWhvE,MAAMqvE,mBAErChyC,GAAA,CACLQ,MAAO,GAAA5F,OAAG/wB,KAAK0U,IAAIiiB,EAzBD,KAyBuB,OACtCupF,IAeDC,EAA8B,SAAC53C,EAA6By3C,GAA8B,IAAAI,EACvF,OAAAjqF,GAAA,CACLQ,gBAAU32B,KAAKC,IAAIsoE,EAAe3/B,YAAao3E,EAAap3E,aAAW,eAAAw3E,EACpEt4C,EAAWhvE,aAAO,IAAAsnH,OAAA,EAAlBA,EAAkBj4C,oBAmBlB,MAAA,CACLk4C,mBAhByB/oG,EAAAA,UAAS,WAAM,IAAAgpG,EAElCn4C,GAAsCm4C,QAAlBA,EAAAx4C,EAAWhvE,iBAAOwnH,SAAlBA,EAAkBn4C,oBAAqB,CAAA,EAU1D,OATH3rE,EAAW2rE,IAAuB3sE,EAAS2sE,IAAsBA,EAAkBxxC,MAC5EwxC,EAELwlB,EAAU70F,MACHqnH,EAEAJ,CAIf,IAIEF,kBAAAA,EACAU,0BApCgC,SAACruF,EAAkB60B,GAC/C,IAAA+4D,EAAQhnH,QAASgnG,EAAWhnG,MAA5B,CAEJ,IAEuC0nH,EAFjCC,IAA6B,0BAAhB15D,EAAI7C,UAAuCvkD,EAAM8iG,aAAoBvwE,EAEpF,GAAAvyB,EAAMunF,eAAiBu5B,EACzBZ,EAAkB/mH,MAAQ2nH,UACpBD,EAAA7gH,EAAAyjG,4BAAA,IAAAod,GAAAA,EAAAppH,KAAAuI,EAAuB8gH,EAAY15D,EANJ,GAqC3C,olBCnEA,IAAM25D,GAAoB,CACxB,SACA,YACA,WACA,QACA,cACA,WACA,aACA,SACA,aACA,UACA,eACA,eACA,OACA,aAGIf,GAAe,CACnBvmE,MAAO,QACPtgD,MAAO,QACP+lC,SAAU,YAcI,SAAA8hF,GACdhhH,EACAsqC,EACAsmC,GACA,IAAAqwC,EACAl1C,EAAqD7nC,SAAOlkC,GAApD7G,EAAO4yE,EAAP5yE,MAAO+D,EAAA6uE,EAAA7uE,KAAkBgkH,EAAgBn1C,EAA5BulB,WACf5sE,EAAcyM,KACdgwF,EAAgBjxF,EAAAA,IAAIlwB,EAAMiuF,WAC1BkE,EAAWjiE,EAAAA,MAMjBgtD,EAAAvgE,GALoC2nD,GAClC48C,UAAAD,EACAjhH,EAAMgjG,yBAAqB,IAAAie,EAAAA,EAAA,GAC3BjhH,EAAMwjG,cACN,cACF,GALOlS,EAAYpU,EAAA,GAAAkkC,EAAalkC,EAAA,GAM1B/uB,EAAc5tB,KACd4/E,EAAU91E,KACV81D,EAAa7Q,KAEb+xB,EAAmB1pG,EAAAA,UAAsC,WAAA,OAAA6e,GAAAA,GAAA,GAC1Drb,GAAKnb,EAAO+gH,KAAiB,GAAA,CAChC/uF,SAAUmuF,EAAQhnH,MAClBo1F,SAAU4R,EAAWhnG,OAAA,IAGjBmoH,EAAe,SAACh3E,GAA+B,IAAAi3E,EAAAhtB,EACnDjqD,iBAAAA,EAAAA,EAAS9vC,SAAT8vC,OAAAA,EAAY6oC,0BACZohB,EAAAv0F,EAAM6uF,eAAN0F,OAAAA,EAAA98F,KAAAuI,EAAgBsqC,GAChB82E,EAAc,GAAI,CAAE78D,QAAS,WAGzBm9C,EAAgD,SAACvoG,EAAOmxC,GACxDtqC,EAAM8iG,YACM3pG,EAAAA,EAAAA,GAAAA,MAAYmxC,GAAAA,GAAAA,CAASia,QAASja,EAAQia,SAAW,YAiE7Di9D,EAAsB,SAACC,EAAyBl6B,GAI9C,IAMkBm6B,EAAAC,EANlBloE,EAAQ0U,EAAY,SAEtB,IAAC1U,IAAUgoE,EACb,MAAO,GAGT,GAAIA,YAECC,EAAA1hH,EAAM4hH,kCAANF,EAA2BG,iBAAmB1oH,EAAMA,OACzB,QAA3BwoH,EAAA3hH,EAAM4hH,2BAAqB,IAAAD,GAA3BA,EAA2BG,iBAAmBv6B,GAE/C,MAAO,CAAC9tC,GAGL,MAAA,CAACA,EAAOgoE,IAGXM,EAAqB,SAACN,EAAyBO,EAAqBz6B,GAEpE,IAAA06B,EAAAC,EAAA,GAAAT,IAE4BQ,QAA5BA,EAACjiH,EAAM4hH,2BAANK,IAA2BA,IAA3BA,EAA2BH,iBACA,QAA3BI,EAAAliH,EAAM4hH,2BAAqB,IAAAM,GAA3BA,EAA2BJ,kBAAoBv6B,GAEzC,OAEJ,OAAAy6B,GAGHG,EAAoB,SAACV,GAGD,IAAAW,EAAAC,EAAxB,GAAIZ,IAC8BW,QAA5BA,EAACpiH,EAAM4hH,2BAANQ,IAA2BA,IAA3BA,EAA2BP,gBAA8C,QAA3BQ,EAAAriH,EAAM4hH,2BAAqB,IAAAS,GAA3BA,EAA2BR,gBAAkB1oH,EAAMA,OAC7F,MAAA,GAGX,OAAO6G,EAAM+nB,aAGR,MAAA,CACLoqE,SAAAA,EACAgvB,cAAAA,EACAE,iBAAAA,EACAiB,iBAAkBhxB,EAClBgwB,aAAAA,EACAiB,mBA/GyB,SAACh7B,GAA0B,IAAAi7B,EAC9Cf,EAAqBtzD,EAAY,gBACjC6zD,EAAiBz6B,GAAgBvnF,EAAM8iG,WAAaxR,EAAWn4F,MA7CzE,SAAuBA,EAAoC+D,GACzD,IAAMulH,EAAQjsF,GAAAA,GAAKwpF,CAAAA,EAAAA,IAAiB9iH,GAEpC,OAAOrB,EAAS1C,GAAUA,EAA8BspH,EAAMhpE,OAAStgD,CACzE,CAyCiFupH,CAAcvpH,EAAMA,MAAO+D,EAAK/D,OACvGwpH,EAAgBnB,EAAoBC,EAAoBl6B,GACxDqR,EAAapiE,GAAAA,GACd6qF,CAAAA,EAAAA,EAAiBloH,OAAA,GAAA,CACpBA,MAAO4oH,EAAmBN,EAAoBO,EAAgBz6B,GAC9D9tC,MAAOkpE,EAAcnsH,OAAS,WAAA,OAAMmsH,CAAgB,OAAA,EACpD30B,UAAWhuF,EAAMguF,UACjBO,UAAWvuF,EAAM8iG,YAAc3C,EAAWhnG,MAC1C4uB,YAAao6F,EAAkBV,GAC/BlxE,YAAa4vE,EAAQhnH,OAAS6G,EAAM8xB,QAAU,WAAA,OAAA8E,EAAAA,YAAAoQ,GAAA,CAAAlV,SAAA,EAAAvtB,KAAA,SAAA,OAAyCvE,EAAMuwC,WAC7Fi+C,qBAAsB1sD,QACpB9hC,EAAMmuF,YAAcmD,EAAWn4F,OAAS6oH,KAAoB7B,EAAQhnH,QAAUgnG,EAAWhnG,QAExF6G,EAAM44F,YAIXgqB,EAA2Bt4E,EAAQnK,MAA3ByiF,EAAAj0B,KAASxuD,IAAAA,EAAMrN,GAAA8vF,EAAA/uF,IAEjBgvF,EAAkBt7B,EACpB,IAAAn2D,OAAI1M,EAAYvrB,MAAA,mBAAA,GAAAi4B,OAA2B1M,EAAYvrB,MAAoBy/F,eAAAA,aAAAA,EAAAA,EAAYxK,YACvFwK,aAAAA,EAAAA,EAAYxK,WAqBd,OAAAx3D,EAAAO,YAAAohE,GAAAh0D,aAAA,CAAArU,IACOiiE,EAAAt/D,MACU2vF,QADVA,EACEl4E,EAAQ9H,aAARggF,IAAQA,OAARA,EAAAA,EAAe3vF,OACtB2D,GAAA,CAEE8xB,SAAUo5C,EACV7S,QAASyyB,EACT/2B,QA1BoC,SAAC9rD,EAAK6L,GAAY,IAAAurD,EACpDA,QAAAA,EAAA71F,EAAAuqF,eAAAsL,IAAAA,GAAAA,EAAAp+F,KAAAuI,EAAU7G,EAAMA,MAAOq9B,GAAAA,GAAA,GAAK8T,GAAS,GAAA,CAAAgnD,WAAY7yD,MA0BnDuwD,QAvBoC,SAACvwD,EAAK6L,GAAY,IAAAonC,EAAAyhB,EACpD2vB,EAAwBpxC,QAAxBA,EAAed,EAASz3E,aAATu4E,IAASA,OAATA,EAAAA,EAAgBnD,kBACjC4yC,EAAchoH,OAAS2pH,SAAAA,EAAczyE,QACzC8wE,EAAchoH,OAAQ,EAChBg6F,QAAAA,EAAAnzF,EAAAgvF,eAAAmE,IAAAA,GAAAA,EAAA17F,KAAAuI,EAAU7G,EAAMA,MAAOq9B,GAAAA,GAAA,GAAK8T,GAAS,GAAA,CAAAgnD,WAAY7yD,OAoBnDmwD,OAjBkC,SAACnwD,EAAK6L,GAAY,IAAAy4E,EAAA1vB,EAClDyvB,EAAwBC,QAAxBA,EAAenyC,EAASz3E,aAAT4pH,IAASA,OAATA,EAAAA,EAAgBx0C,kBACrC4yC,EAAchoH,OAAQ,EAClB2pH,SAAAA,EAAczyE,OACZgjD,QAAAA,EAAArzF,EAAA4uF,cAAAyE,IAAAA,GAAAA,EAAA57F,KAAAuI,EAAS7G,EAAMA,MAAOq9B,GAAAA,GAAA,GAAK8T,GAAS,GAAA,CAAAgnD,WAAY7yD,OAc/Cm6D,GAAA,CAAAxK,WAEOy0B,IATH1iF,IAkEjB,okBC9LA,IAUA6iF,GAAe5tF,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CAOH4hH,oBAAqB,CACnB9lH,KAAMxE,UAIV+9B,eAAMr1B,EAAqFsqC,GACzF,IAAA5H,EAzBK,CACL22E,WAAYloF,GAAe,gBAC3B8xF,sBAAuB9xF,GAAe,4BACtC+xF,oBAAqB/xF,GAAe,0BACpCgyF,yBAA0BhyF,GAAe,+BACzCiyF,iBAAkBjyF,GAAe,wBAoBzBkoF,EAAY32E,EAAZ22E,WAAY4J,EAAAvgF,EAAAugF,sBAAuBC,IAAAA,oBAAqBC,EAA0BzgF,EAA1BygF,yBAA0BC,EAAA1gF,EAAA0gF,iBAEpF1+F,EAAcyM,KACd0O,EAAiBU,KAEjB8iF,EAAiBnzF,EAAAA,MACjB0gD,EAAW1gD,EAAAA,MACX67C,EAAuF7nC,EAAAA,OAAOlkC,GAA5FkjG,EAAUn3B,EAAVm3B,SAAU/pG,EAAA4yE,EAAA5yE,MAAOouF,EAAcxb,EAAdwb,aAAc2G,EAAAniB,EAAAmiB,WAAY/lB,EAAY4D,EAAZ5D,WAAY0V,EAAA9R,EAAA8R,MAAOilB,EAAY/2B,EAAZ+2B,WAAYz0C,EAAA0d,EAAA1d,OAElFi1D,EAA6ErD,GAAqBjgH,GAA1F0gH,EAAoB4C,EAApB5C,mBAAoBR,EAAAoD,EAAApD,kBAAmBU,EAA0B0C,EAA1B1C,0BAEzC2C,EAAwEvC,GAAUhhH,EAAOsqC,EAASsmC,GAAhGuwC,IAAAA,cAAeE,EAAkBkC,EAAlBlC,iBAAkBC,EAAAiC,EAAAjC,aAAciB,IAAAA,mBAEjDiB,EHvBM,SAAYxjH,EAA2BsqC,EAAuBsmC,GAC5E,IAAQ0gB,EAAeptD,EAAAA,OAAOlkC,GAAtBsxF,WACF5sE,EAAcyM,KACd2qF,EAAc5rF,EAAAA,MACduzF,EAAkBvzF,EAAAA,IAAIlwB,EAAMiuF,WAMlCurB,EAAA78F,GALsC88F,GACpCnoB,EACAtxF,EAAMgjG,kBACNhjG,EAAMwjG,cACN,cACF,GALOkW,EAAaF,EAAA,GAAAG,EAAcH,EAAA,GAM5B2G,EAAU91E,KACV81D,EAAa7Q,KAEbmzB,EAAQ9qG,EAAAA,UAA0B,WAAA,OAAA6e,GAAAA,GAAA,CAAA,EAAYwpF,IAAiBhgH,EAAM9C,KAAA,IACrEwmH,EAAO/rG,EAAAA,UAAwB,WAC/B,OAAE3X,EAAM7G,iBAAiBxC,MAItBqJ,EAAM7G,MAAM6L,KAAI,SAACi6B,GAAU,OAAApjC,EAASojC,GAASA,EAA6BwjF,EAAMtpH,MAAMsgD,OAASxa,KAF7FpjC,EAASmE,EAAM7G,OAAS,CAAE6G,EAAM7G,MAA8BspH,EAAMtpH,MAAMsgD,QAAU,CAACz5C,EAAM7G,MAGtG,IAEM89F,EAAet/E,EAAAA,UAAiB,WAAA,OAAQ+rG,EAAKvqH,OAAUuqH,EAAKvqH,MAAM3C,OAA6B,GAApBwJ,EAAM+nB,eAEjF47F,EAAmB,SAACllF,EAAoB6L,GAAsC,IAAAs5E,EAE5CrC,EAAd,eAApBj3E,EAAQia,kBACVja,EAAAA,EAAQ9vC,gBAAR8vC,EAAW6oC,2BAEPywC,EAAA5jH,EAAA0jG,mBAAA,IAAAkgB,GAAAA,EAAAnsH,KAAAuI,EAAcy+B,EAAK6L,IAGrBk5D,EAAgD,SAAC/kE,EAAK2oB,GACtC,UAAhBA,EAAI7C,SAAuC,SAAhB6C,EAAI7C,SACpBo1D,EAAAl7E,EAAK,CAAE8lB,QAAS6C,EAAI7C,QAAS/pD,EAAG4sD,EAAI5sD,KAQ/Co0F,EAAkC,SAACnwD,EAAK2oB,GAAQ,IAAAsqB,EAAA2hB,EAC9CyvB,EAAwBpxC,QAAxBA,EAAed,EAASz3E,aAATu4E,IAASA,OAATA,EAAAA,EAAgBnD,kBACjCu0C,SAAAA,EAAczyE,QAClBozE,EAAgBtqH,OAAQ,EAClBk6F,QAAAA,EAAArzF,EAAA4uF,cAAAyE,IAAAA,GAAAA,EAAA57F,KAAAuI,EAASA,EAAM7G,MAAOq9B,GAAAA,GAAA,GAAK4wB,GAAK,GAAA,CAAAy8D,cAAeplF,OAGjDuwD,EAAoC,SAACvwD,EAAK2oB,GAAQ,IAAA27D,EAAA5vB,EAChD2vB,EAAwBC,QAAxBA,EAAenyC,EAASz3E,aAAT4pH,IAASA,OAATA,EAAAA,EAAgBx0C,kBACjC,KAAAk1C,EAAgBtqH,OAAS2pH,SAAAA,EAAczyE,OAAvC,CACJozE,EAAgBtqH,OAAQ,EACxB,IAAMkmC,EAAS7I,GAAAA,MAAK4wB,GAAA,GAAA,CAAKy8D,cAAeplF,IAClC,QAAA00D,EAAAnzF,EAAAgvF,eAAAmE,IAAAA,GAAAA,EAAA17F,KAAAuI,EAAUA,EAAM7G,MAAOkmC,EAHqB,GAM9CkrD,EAAoC,SAAC9rD,EAAK2oB,GAAQ,IAAAyuC,EAChDx2D,EAAS7I,GAAAA,MAAK4wB,GAAA,GAAA,CAAKy8D,cAAeplF,IAClC,QAAAo3D,EAAA71F,EAAAuqF,eAAAsL,IAAAA,GAAAA,EAAAp+F,KAAAuI,EAAUA,EAAM7G,MAAOkmC,IA4CxB,MAAA,CACLqkF,KAAAA,EACAzsB,aAAAA,EACA6kB,YAAAA,EACA2H,gBAAAA,EACAK,mBAAoBpK,EACpBqK,qBA/C2B,SAACrlG,GAC5B,IAAM2kF,EAAgB7sE,GAAAA,GACjB9X,CAAAA,EAAAA,EAAE2iG,kBAAA,GAAA,CACL/d,SAAUtjG,EAAMsjG,SAChB7pD,MAAOz5C,EAAMy5C,MACbu0C,UAAWhuF,EAAMguF,UACjBO,SAAU4R,EAAWhnG,MACrB4uB,YAAakvE,EAAa99F,MAC1B8pG,gBAAiBjjG,EAAMijG,gBACvBF,eAAgB/iG,EAAM+iG,eACtBzoG,IAAK0F,EAAM1F,IACXnB,MAAOuqH,EAAKvqH,MACZoqG,aAAcvjG,EAAMujG,aACpBjS,WAAY5yE,EAAE6oE,cAAgB7oE,EAAEokF,WAAa4W,EAAYvgH,MAAQ,GACjEy/F,WAAYpiE,GAAA,CACV+3D,UAAWvuF,EAAM8iG,YAAc3C,EAAWhnG,MAC1Ci1F,WAAYn1F,EAAA,GAAA,GAAAm4B,OACN1M,EAAYvrB,MAAA,mBAAyBulB,EAAE6oE,eAE1CvnF,EAAM44F,YAEXroD,YAAa4vE,EAAQhnH,OAAS6G,EAAM8xB,QAAU,WAAA,OAAA8E,EAAAA,YAAAoQ,GAAA,CAAAlV,SAAA,EAAAvtB,KAAA,SAAA,OAAyCvE,EAAMuwC,YAC1FvwC,EAAMqjG,eAGXuf,EAAkCt4E,EAAQnK,MAAlByiF,EAAhBj0B,KAAgBxuD,IAAAA,EAAArN,GAAA8vF,EAAA/uF,IACxB,OAAA+C,EAAAO,YAAA4oF,GAAAx7E,aAAA,CAAArU,IAES4rF,GACDzY,EACJ,CAAAG,cACeA,EAAAl7C,SACLq7D,EACV90B,QAASnwE,EAAE4iG,aACX1yB,OAAQA,UACCrE,EAAAyE,QACAA,IANA7uD,IAmBjB,CGzFmE6jF,CAAYhkH,EAAOsqC,EAASsmC,GAAnF6yC,IAAAA,gBAAiB3H,EAAa0H,EAAb1H,YAAaiI,EAAAP,EAAAO,qBAEhCE,EAAUtsG,EAAAA,UAAS,WAAA,OAAO3X,EAAMkjG,SAAWugB,EAAgBtqH,MAAQgoH,EAAchoH,SAEjFw9B,EAAUhf,EAAAA,UAAS,WAAA,IAAAusG,EAAA,MAAM,CAAA9yF,GAAAA,OAC1BioF,EAAWlgH,OAAAF,EAAAA,EAAAA,EAAAA,EAEXiqH,CAAAA,EAAAA,EAAoB/pH,MAAQ+pG,EAAS/pG,OACrC8pH,EAAsB9pH,MAAQ+0F,EAAW/0F,OACzCgqH,EAAyBhqH,cAAQ+qH,EAAA38B,EAAapuF,qBAAS+mH,EAAkB/mH,OACzEiqH,EAAiBjqH,MAAQA,EAAMA,iBAAiBxC,OAASwC,EAAMA,MAAM3C,QAAU2C,EAAMA,WAIpFgrH,EAA2B,SAAC3pH,GAAqB,IAAAi+G,EAC/CpqC,EAAO7zE,EAAE6zE,eAAQoqC,EAAAj+G,EAAEhC,wBAAFigH,EAAOpxC,QAC9B,GAAI,sBAAsBxvE,KAAKw2E,KAAUkZ,EAAapuF,MAAO,CAAA,IAAAirH,EACrDh9D,EAAiC5wB,GAAAA,MAAK8T,GAAA,GAAA,CAASia,QAAS,kCAC9DvkD,EAAAA,EAAMyjG,4BAAuB,IAAA2gB,GAA7BpkH,EAAAA,KAAAA,GAA6B,EAAMonD,EACrC,GAGF1lB,EAAAA,MAAM,CAACuiF,IAAU,SAAA16D,GAAe,IAAb06D,EAAatnG,GAAA4sC,EAAA,GAAN,GACpBg+B,EAAapuF,QACb8qH,EACaZ,EAAAlqH,MAAMogC,iBAAiB,UAAW4qF,GAElCd,EAAAlqH,MAAM0gC,oBAAoB,UAAWsqF,GAExD,IAEA5uF,EAAAA,WAAU,YACHgyD,EAAapuF,OAAS8qH,GACVZ,EAAAlqH,MAAMogC,iBAAiB,UAAW4qF,EAErD,IAEA3yE,EAAAA,iBAAgB,WAAM,IAAA6yE,EACLA,QAAAA,EAAAhB,EAAAlqH,aAAAkrH,IAAAA,GAAAA,EAAOxqF,oBAAoB,UAAWsqF,EACvD,IAEM,IAAAr7C,EAA+C,SAAC1hB,GAAQ,IAAAk9D,EAAA7H,EAAA8H,UAC5DD,EAAAl9D,EAAI5sD,gBAAJ8pH,EAAOnxC,kBAEF/rB,EAAI5sD,EAAEw4B,OAAuBwxF,UAAY,GAC1CxkH,EAAMkjG,mBAAUuZ,EAAAX,EAAY3iH,oBAAeorH,UAA3B9H,EAAmBt3D,aAAnBo/D,IAA2BA,GAA3BA,EAAA9sH,KAAAglH,KAQtB,OALAnyE,EAAQoW,OAAO,CACbkwB,SAAAA,EACAkyB,WAAAA,IAGK,WAAM,IAAA2hB,EAAAhE,EAELiE,EAAe,CAAEnyF,QAAsBkyF,QAAtBA,EAASl9B,EAAapuF,aAAAsrH,IAAAA,EAAAA,EAASvE,EAAkB/mH,OAElEwrH,EAAA/tF,EAAAA,YAAAy4C,GAAA9qC,aAAA,CAAArU,IAEG0gD,EAAArsB,SACsBk8D,QAAlBA,EAAAt4C,EAAWhvE,aAAXsnH,IAAkBA,OAAlBA,EAAAA,EAAkBl8D,UAAW,QACtCmI,UAAA,eACIg4D,EAAA,CAAAz7F,QACK40D,EAAM1kF,MACfkvE,gBACgB,GACZ7xC,GAAAA,GAAA,CACFyyC,gBAAiB23C,EACjB93C,eAAAA,GACGX,EAAWhvE,OAAA,GAAA,CACdqvE,kBAAmBk4C,EAAmBvnH,SAAAq9B,GAAA,CAAArT,QAAA,WAAA,MAAA,CAGvC+/E,EAAS/pG,MACN4qH,EAAqB,CACnB1C,iBAAkBA,EAAiBloH,MACnCmoH,aAAAA,EACA/5B,aAAcm9B,EAAanyF,QAC3BuwE,WAAYA,EAAW3pG,QAEzBopH,EAAmBmC,EAAanyF,kBAhBtB+X,CAAAA,EAAAA,EAAQnK,OAAA,GAAA,CAAOlX,QAASqhB,EAAQnK,MAAM09C,UAoBlD+mC,EAAW/kF,EAAe,QAE1Bq4D,EAAc,CAAA,GAAA9mE,OACf1M,EAAYvrB,MAAA,gBAAA,GAAAi4B,OACZ1M,EAAYvrB,MAAAi4B,SAAAA,GAAAA,OACZ1M,EAAYvrB,MAAAi4B,QAAAA,OAAYi9B,EAAOl1D,QAGpC,OAAAy9B,EAAAA,YAAA,MAAA,CAAA1G,IACYmzF,EAAAxsF,MAAuBF,EAAQx9B,OAAA,CACtCwrH,EACAC,8BAAwB1sB,GAAA,CAAc0sB,MAI/C,IC1IWC,GAAcl+E,GAAYq8E,ICAxB8B,GAAA,CAEbC,SAAUjjF,QAEV7Y,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU8P,QAEV2X,MAAO,CACL39C,KAAM/C,OACNoqB,QAAS,IAGXwF,MAAO,CACL7sB,KAAM/C,OACNoqB,QAAS,IAGXhqB,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,WCzBZkjF,GAAA,CAEbD,SAAUjjF,QAEVzP,QAAS,CACPv2B,KAAMgmC,QACN3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMgmC,QACN3e,aAAS,GAGXm0F,eAAgBx1E,QAEhB3e,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXsP,cAAeqP,QAEf2X,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBmrH,SAAUnjF,QAEVlqC,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGXorE,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXwF,MAAO,CACL7sB,KAAM/C,OACNoqB,QAAS,IAGXhqB,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,UAGzBwmB,SAAUxuD,UC7CCorH,GACXpuH,OAAO,wBChBT,SAAwB0yE,GACtBhwC,EACA3/B,EACAkR,EACAo6G,GAEA,GAAsB,oBAAXrvF,OAA+B,OAAA,KAC1C,IAAKA,SAAWA,OAAOsvF,qBAEd,OADEr6G,IACF,KAET,IAAIs6G,EAA2B,KAC3B,KACFA,EAAK,IAAIvvF,OAAOsvF,sBACd,SAACnhH,GACeA,EAAQ,GACZqhH,iBACCv6G,IACTs6G,EAAG/7C,UAAU9vC,GAEjB,GACA,CACE+rF,6BAAuBJ,EAAA,UACvBtrH,KAAAA,KAGD2vE,QAAQhwC,SACJh/B,GAEP6qC,QAAQnT,MAAM13B,GACLuQ,GACX,CACO,OAAAs6G,CACT,okBCpBA,IAAAG,GAAepwF,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACHylH,WAAY3jF,QACZ4jF,iBAAkB5jF,QAClB7mC,MAAOjC,OAEP0L,KAAMpN,SAER+9B,MAAAA,SAAMr1B,GACJ,IAAM2lH,EAAWz1F,EAAAA,MACblwB,EAAMylH,YACR99E,GAAUg+E,GAEN,IAAE9zF,EAAWR,KAAXQ,OAERk6C,EAA0C7nC,SAAOlkC,GAAzCqyB,EAAS05C,EAAT15C,QAAS2yC,EAAA+G,EAAA/G,WAAYigD,EAASl5C,EAATk5C,SAO7Bj5C,EAAArvD,GANwCooD,GACtC1yC,EACA2yC,EACAhlE,EAAMs3G,eACNt3G,EAAMsoD,SACN,WACF,GANO+vD,EAAcrsC,EAAA,GAAAssC,EAAetsC,EAAA,GAQ9B45C,EAAoBp1F,EAAOA,OAAA00F,QAA2B,GAMtDW,EAAQ31F,EAAAA,MACdwR,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAMpI,KAAMguH,eAAAA,EAAmBzsH,MAAMvB,MAAMyQ,KAAK,IAAG,IAC1D,WACE,IAAMzQ,EAAOoI,EAAMpI,OAAQguH,aAAAA,EAAAA,EAAmBzsH,MAAMvB,MAChDA,IACFiuH,EAAM1sH,MAAQvB,EAElB,GACA,CAAEozD,WAAW,IAIT,IAAA86D,EAAW51F,OAAI,GAMrBwR,EAAAA,OACE,WAAA,IAAAqkF,EAAA,MAAM,CACJ1N,EAAal/G,MACbysH,eAAAA,EAAmBzsH,MAAM6sH,WACzBJ,SAAwC,QAArBG,EAAnBH,EAAmBzsH,MAAM8sH,qBAAe,IAAAF,OAAA,EAAxCA,EAAwC19G,KAAK,KAC/C,IACA,WAXiB,IACTlP,EAWN2sH,EAAS3sH,OAXHA,EAAoB6G,EAApB7G,MAAoB6G,EAAb+kH,SACMa,eAAAA,EAAmBzsH,MAAM6sH,WACvCJ,SAAAA,EAAmBzsH,MAAQysH,EAAkBzsH,MAAM8sH,cAAczuG,SAASre,GAASk/G,EAAal/G,MAUvG,GACA,CAAE6xD,WAAW,IAIT,IASA7f,EAAad,GAAY,CAAEQ,eATVlzB,EAAAA,UAAS,WAC1B,QAAC3X,EAAM+kH,UAAae,EAAS3sH,OAA7B,MAAsCysH,IAAAA,EAAmBzsH,MAAM+sH,cAG5D,IACT,IAIiDp7E,cAH3BnzB,EAAAA,UAAS,WAC7B,OAAOiuG,eAAAA,EAAmBzsH,MAAM64B,QAClC,MAOMmuE,EAAa7Q,GAAY,CAAEO,cAHXl4E,EAAAA,UAAS,WAC7B,OAAOiuG,eAAAA,EAAmBzsH,MAAMo1F,QAClC,MAGM43B,EAAiBj2F,OAAI,GAC3BwR,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAM+kH,SAAU/kH,EAAMyyB,cAAemzF,aAAAA,EAAAA,EAAmBzsH,MAAMs5B,cAAa,IAClF,WACE0zF,EAAehtH,MAAQ6G,EAAM+kH,SAAWa,aAAAA,EAAAA,EAAmBzsH,MAAMs5B,cAAgBzyB,EAAMyyB,aACzF,GACA,CAAEu4B,WAAW,IAIT,IAAAhgB,EAAiB7Z,GAAe,YAChCi1F,EAAel2F,MAAI,CAAA,GACzBwR,EAAAA,MACE,CAACokF,EAAU36E,EAAYg7E,IACvB,WACEC,EAAajtH,MAAQ,CAAA,GAAAi4B,OAChB4Z,EAAe7xC,OAAAF,EAAAA,EAAAA,EAAA,CAAA,EAEf44B,EAAO14B,MAAMk5B,QAAUyzF,EAAS3sH,OAChC04B,EAAO14B,MAAM64B,SAAWmZ,EAAWhyC,OACnC04B,EAAO14B,MAAMs5B,cAAgB0zF,EAAehtH,OAGnD,GACA,CAAE6xD,WAAW,IAGT,IAAAq7D,EAAe,SAAC7rH,GACpB,IAAI2lG,EAAWhnG,MAAf,CACMk5B,IAAAA,GAAWyzF,EAAS3sH,MACVk5B,EAAAA,EAAS,CAAE73B,EAAAA,IACvBorH,SAAAA,EAAmBzsH,MAAMmtH,sBACTV,EAAAzsH,MAAMotH,gBAAgB,CAAEl0F,QAAAA,EAAS0yF,SAAU/kH,EAAM+kH,SAAUvqH,EAAAA,EAAG25E,OAAQn0E,GAJpE,GAQlBkjC,EAAgBjC,KAEhBulF,EAAmB,SAAChsH,GAEpBwF,EAAM0lH,kBAAkBlrH,EAAEwzE,kBAGhCy4C,ECtIY,SAAoBd,EAA4BV,GAC9D,IAAMyB,EAAax2F,EAAAA,MACby2F,EAAez2F,OAAI,GACnB02F,EAAiB,WACrB,GAAK3B,EAAS9rH,MAAd,CACAwtH,EAAaxtH,OAAQ,EACrB,IAAMksH,EAAK77C,GACTm8C,EAASxsH,MACT,MACA,WACEwtH,EAAaxtH,OAAQ,CACvB,GACA,GAEFutH,EAAWvtH,MAAQksH,CAVE,GAsBhB,OATP9vF,EAAAA,UAAUqxF,GAEVllF,EAAAA,MAAM,CAACujF,EAAUU,GAAWiB,GAE5Bp1E,EAAAA,iBAAgB,WACTyzE,EAAS9rH,OACHutH,EAAAvtH,MAAMmwE,UAAUq8C,EAASxsH,MACtC,IAEO,CACLwtH,aAAAA,EAEJ,CDyG6BE,CAAoBlB,EAAUV,GAA/C0B,EAAAF,EAAAE,aACRG,EExIG,SAA0BT,GACzB,IAAA7N,EAAwB,SAACh+G,IACP29G,GAAiBtgH,KAAK2C,EAAEhC,MAAQ2/G,GAAiBtgH,KAAK2C,EAAE6zE,SAE5E7zE,EAAEwzE,kBACoBxzE,EAAEyqD,cAA8BnqB,cAAc,SAA5D9I,UACKq0F,EAAa7rH,KAYvB,MAAA,CACLk+G,gBATsB,SAACl+G,GACrBA,EAAAyqD,cAAc1rB,iBAAiB,UAAWi/E,IAS5CG,eANqB,SAACn+G,GACpBA,EAAAyqD,cAAcprB,oBAAoB,UAAW2+E,IAOnD,CFkHgDuO,CAAiBV,GAArD3N,EAAAoO,EAAApO,gBAAiBC,EAAemO,EAAfnO,eAEzB,OAAO,WACC,IAAAvtD,EAAYhzC,GAASpY,EAAM2oB,QAAU3oB,EAAM2oB,MAAQ3oB,EAAM2oB,MAAQ,KAErE,OAAAiO,EAAAA,YAAA,QAAA,CAAA1G,IACOy1F,EAAA9uF,MACEuvF,EAAajtH,MAAAuyC,SACVP,EAAWhyC,WAAQ,EAAY,IACzC61F,QAAS0pB,SACDC,EAAAhwF,MACDyiC,GAEN,CAACu7D,EAAaxtH,MAEX,CAAAy9B,EAAAO,YAAA,QAAA,CAAAr7B,KAAA,WAAA4vC,SAAA,KAAA7U,MAAA,GAAAzF,OAIc4Z,EAAe7xC,2BACfgyC,EAAWhyC,MACrBo1F,SAAU4R,EAAWhnG,MACrBs5B,cAAe0zF,EAAehtH,MAAAvB,KACxBiuH,EAAM1sH,MACZA,MAAO6G,EAAM7G,MAAQ6G,EAAM7G,WAAQ,EAAAk5B,QAC1ByzF,EAAS3sH,MAAAmvD,SACR+9D,EAAA7tH,IAAA,SAAA,MAAAo+B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAGI4Z,EAAe7xC,MAAA,WAAAX,IAAA,cAAA,MAAAo+B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACf4Z,EAAe7xC,MAAgB,WAAAX,IAAA,QAAA+uC,QAAqBi/E,GACjE,CAAAtjF,EAAc,UAAW,YAjB9B,OAuBZ,IGtKa8jF,GAAA,CAEbh1F,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX8hG,SAAUnjF,QAEVxhC,IAAK,CACHxE,KAAM9C,OACNmqB,aAAS,GAGXvrB,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGXjO,QAAS,CACPpZ,KAAMnF,OAGR43F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXhqB,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAAqD,EAAC,GAGxDmlC,SAAUxuD,UCtCZmtH,GAAe7xF,kBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GAEE,IAAAgrC,EAAiB7Z,GAAe,kBAChC0O,EAAiBU,KAEfxoC,EAAYpB,MAAZoB,QACRg0E,EAA8B7nC,SAAOlkC,GAC8DgsE,EAAArvD,GAA/DooD,GAD5BgH,EAAA5yE,MAAkB4yE,EAAX/G,WACkDhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAE1Bk7C,EAAah3F,MAA8B,IAE3Ci3F,EAAkBxvG,EAAAA,UAAiB,WACnC,IAAC5f,EAAQg6F,EAAW54F,OAAe,OAAA,EACvC,IAAMqN,EAAS0gH,EAAW/tH,MAAM6L,KAAI,SAACi6B,GAAA,OAASA,EAAK9lC,SAEnD,OADUmf,GAAay5E,EAAW54F,MAAOqN,GAChChQ,MACX,IAQMwvH,EAAaruG,EAAAA,UAAkB,WAE7B,IAAAyvG,EAAcF,EAAW/tH,MAC5BinC,QAAO,SAACnB,GAAS,OAACA,EAAKjN,WAAaiN,EAAKsvD,WAAatvD,EAAK8lF,QAAQ,IACnE//G,KAAI,SAAC+X,GAAA,OAAMA,EAAE5jB,SAMT,OAHoBmf,GAAa8uG,EAAar1B,EAAW54F,OAGtC3C,SAAW4wH,EAAY5wH,MACnD,IAEMi8B,EAAgB9a,EAAAA,UACpB,WAAA,OAAOquG,EAAW7sH,OAASguH,EAAgBhuH,MAAQ+tH,EAAW/tH,MAAM3C,QAAoC,IAA1B2wH,EAAgBhuH,KAAU,IAGpG+sH,EAAcvuG,EAAAA,UAAkB,WAAA,OAAO4B,GAAYvZ,EAAMM,MAAQyxF,EAAW54F,MAAM3C,SAAWwJ,EAAMM,OAEzG6pD,EAAAA,aAAY,WACV,IAAKnqD,EAAMkV,QAAS,MAAO,GAC3BgyG,EAAW/tH,MAAQ6G,EAAMkV,QAAQlQ,KAAI,SAACi6B,GAC7B,OAAApjC,EAASojC,GAAQA,EAAO,CAAEwa,MAAO1gD,OAAOkmC,GAAO9lC,MAAO8lC,EAC/D,GACF,IASA,IAqBMooF,EAAmB,SAACh1F,EAAkBiY,GAC1C,IAAMnxC,EAA4Bk5B,EAtBR,WAIjB,IAHH,IAAAoM,MAAUtxB,IAGP1W,EAAI,EAAGF,EAAM2wH,EAAW/tH,MAAM3C,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAAwoC,EAAOioF,EAAW/tH,MAAM1C,GAG9B,IAAIwoC,EAAK8lF,WACL9lF,EAAKjN,WACLiN,EAAKsvD,WAEL9vD,EAAAjuB,IAAIyuB,EAAK9lC,OAGT+sH,EAAY/sH,OAAO,KACzB,CAEO,OAAArB,EAAI2mC,GAIiC6oF,GAAwB,GACpEt1B,EAAc74F,EAAO,CACnBqB,EAAG8vC,EAAQ9vC,EACXsB,KAAMu2B,EAAU,QAAU,UAC1BzY,aAAS,EACTu6D,YAAQ,KAINmyC,EAAuB,SAAC5hH,GACtB,IAAA6iH,EAAe7iH,EAAKyvE,OAAOh7E,MACjC,GAAKpB,EAAQg6F,EAAW54F,OAAxB,CAIA,IAAMslC,EAAM3mC,EAAIi6F,EAAW54F,OAC3B,GAAIuL,EAAK2tB,QACPoM,EAAIr7B,KAAKmkH,OACJ,CACC,IAAA9wH,EAAIgoC,EAAIvL,QAAQq0F,GAClB9oF,EAAA95B,OAAOlO,EAAG,EAChB,CACAu7F,EAAcvzD,EAAK,CACjBjkC,EAAGkK,EAAKlK,EACRof,QAASlV,EAAKyvE,OAAOh7E,MACrBg7E,OAAQzvE,EAAKyvE,OACbr4E,KAAM4I,EAAK2tB,QAAU,QAAU,WAZjC,MAFEgT,QAAQkgC,KAAK,oEAAAn0C,OAAA/4B,EAA6E05F,EAAW54F,UAkBnGotH,EAAkB,SAAC7nG,GACvB,IAAQ2T,EAAyB3T,EAAzB2T,QAAS0yF,EAAgBrmG,EAAhBqmG,SAAUvqH,EAAMkkB,EAANlkB,EACvBuqH,EACesC,EAAAh1F,EAAS,CAAE73B,EAAAA,IAE5B8rH,EAAqB5nG,IAInBo1D,EAAyBn+B,KAgC/B,OAfAzkB,UACEg0F,GACAvtG,EAAAA,UAAS,WAAA,MAAO,CACd/f,KAAMoI,EAAMpI,KACZouH,WAAYA,EAAW7sH,MACvB8sH,cAAel0B,EAAW54F,OAAS,GACnC+sH,YAAaA,EAAY/sH,MACzB64B,SAAUhyB,EAAMgyB,SAChBu8D,SAAUvuF,EAAMuuF,SAChB97D,cAAeA,EAAct5B,MAC7BmtH,qBAAAA,EACAC,gBAAAA,EACA,KAGG,WAAM,IAAAiB,EACPtoF,EAAW,KACXl/B,WAAAA,EAAAA,EAAMkV,eAANlV,OAAAA,EAAexJ,OAAQ,CAAA,IAAAixH,EACzBvoF,EAAsBuoF,QAAtBA,EAAWP,EAAW/tH,aAAXsuH,IAAWA,OAAXA,EAAAA,EAAkBziH,KAAI,SAACmvE,EAAQl5E,GAAA,IAAA03F,EAAA,OAAA/7D,EAAAO,YAAAuwF,GAAAnjF,aAAA,CAAA/rC,IAAA44B,GAAAA,OAE9B+iD,EAAOh7E,OAAS,IAAKi4B,OAAAn2B,GAAAgqH,SACnBjlH,EAAMilH,UACZ9wC,EAAA,CAAAl5E,MACGA,EAAAo3B,QACoBsgE,QADpBA,EACEZ,EAAW54F,aAAXw5F,IAAkBA,OAAlBA,EAAAA,EAAkBn7E,SAAS28D,EAAOh7E,OAC3CuL,KAAMyvE,YAGZ,KAAO,CACC,IAAAwzC,EAAQ9nF,EAAe,WAC7BqnF,EAAW/tH,MA7Cc,WACrB,IAAAwuH,EAAQ7zC,EAAuB,YAC/Bx9E,EAAgC,GAU/B,OATAqxH,SAAAA,EAAAr3G,SAAQ,SAACqqB,GACd,IAAMw5C,EAASx5C,EAAK36B,MACfm0E,IAEuB,KAAxBA,EAAO,eAA+C,IAAxBA,EAAO,eACvCA,EAAO4wC,UAAW,GAEpBzuH,EAAI8M,KAAK+wE,GACX,IACO79E,EAiCcsxH,GACR1oF,EAAAyoF,CACb,CAEE,OAAA/wF,EAAAA,YAAA,MAAA,CAAAC,MAAYmU,EAAe7xC,MAAA0uH,KAAA,QAAA,aAAA,kBAAA,CACxB3oF,IAIT,ICnLWwoF,GAAW/gF,GAAY6+E,IACvBsC,GAAgBnhF,GAAYohF,6/BCR5B,IAAAC,GAAmB,SAC9B7uH,EACA8uH,GAEA,IAAM9zC,EAAS8zC,EAAW9uH,MAAMsL,IAAItL,GAC7B,OAAAg7E,aAAA,EAAAA,EAAQ16B,SAAStgD,aAAA,EAAAA,EAAO3B,WACjC,EAgBa0wH,GAAsB,SAACn2B,EAA2Bo2B,GACvD,IAAAhvH,EAAQuX,GAAUqhF,GAClBq2B,EAAajvH,EAAM+5B,QAAQi1F,GAM1B,OALHC,EAAa,EACfjvH,EAAMiK,KAAK+kH,GAELhvH,EAAAwL,OAAOyjH,EAAY,GAEpB,CACLjvH,MAAAA,EACAkvH,QAASD,EAAa,EAE1B,ECnCaE,GAoBTxxH,OAAO,olBCTX,IAAAyxH,GAAenzF,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACHwoH,WAAY1mF,QACZohE,SAAUphE,QACV7mC,MAAOjC,OACPyvH,SAAUzvH,OACV0vH,IAAK5jH,IACL6jH,WAAY5vH,OACZ6vH,UAAW9mF,QACX+mF,WAAY7vH,OACZ+rH,SAAUjjF,UAEZ4O,MAAO,CAAC,eAERrb,eAAMr1B,EAAOsqC,GACL,IAAAw+E,EAAiBt4F,SAAO83F,IACxB79E,EAAeJ,KACbvJ,EAAUvQ,EAAAA,qBAAVuQ,MAEFioF,EAAapxG,EAAAA,UACjB,WAAA,OAC+B,IAA7BmxG,EAAe3vH,MAAMmH,KACrBwoH,EAAe3vH,MAAMmH,KAAQwoH,EAAe3vH,MAAM6vH,YAA8BxyH,MAAA,IAE9Ew7B,EAAWra,EAAAA,UACf,WAAA,OACE8yB,EAAatxC,OACZ6G,EAAMkjG,UAAY6lB,EAAW5vH,QAAU8vH,EAAW9vH,QAAU2vH,EAAe3vH,MAAM6sH,UAAA,IAGhF9iF,EAAgBjC,KAEhBioF,EAAa/3F,GAAe,UAClC8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KACV63F,EAAQj5F,EAAAA,MAER+hE,EAAU/hE,OAAI,GAEd+4F,EAAatxG,EAAAA,UAAS,WAC1B,SAAImxG,EAAe3vH,MAAM6sH,YAAehmH,EAAMgyB,YACtChyB,EAAMkjG,SAET4lB,EAAe3vH,MAAM6vH,YAA8BxxG,SAASxX,EAAM7G,OADnE2vH,EAAe3vH,MAAM6vH,cAAgBhpH,EAAM7G,MAEjD,IAEMiwH,EAAkBzxG,EAAAA,UAAS,WAC/B,QAAK3X,EAAM+kH,UACJ+D,EAAe3vH,MAAMs5B,aAC9B,IAEMkE,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC1B83F,EAAW/vH,MAAA,WACd,CAACm4B,EAAKn4B,MAAM2vH,EAAe3vH,MAAMoL,OAAKtL,EAAAA,EAAAA,EAEnC44B,GAAAA,EAAO14B,MAAM64B,SAAWA,EAAS74B,OACjC04B,EAAO14B,MAAMg5B,SAAW82F,EAAW9vH,OAAA,GAAAi4B,OAChC83F,EAAW/vH,yBACZ84F,EAAQ94F,OAAS2vH,EAAe3vH,MAAMkwH,aAAerpH,EAAM/E,SAAW+2B,EAAS74B,WAIhFmwH,EAAY3xG,EAAAA,UAAS,WAAA,OAAM3X,EAAMy5C,OAASz5C,EAAM7G,SAEhD03C,EAAc,SAACr2C,GACfwF,IAAAA,EAAMgyB,WAAYA,EAAS74B,MAA3B6G,CACJ,GAAIA,EAAMkjG,SAGR,OAFAqmB,GAAqBN,EAAW9vH,MAAO,CAAEqB,EAAAA,SACzCA,EAAEwzE,iBAIkB,IAAAw7C,EAAAC,EAAtB,GAAIzpH,EAAMwoH,WAEJ,GADgCxoH,QAArBwpH,GAAAC,EAAAX,EAAA3vH,OAAMuwH,oBAANF,IAAqBxpH,GAArBwpH,EAAA/xH,KAAAgyH,EAAqBzpH,EAAM7G,OACtC2vH,EAAe3vH,MAAM+pG,SASvB,YARA4lB,EAAe3vH,MAAMwwH,kBAAAv4F,GAAAA,OAAAt5B,EACdgxH,EAAe3vH,MAAM6vH,cAA+BhpH,EAAM7G,QAC/D,CACEywH,gBAAiBd,EAAe3vH,MAAM0wH,qBACtCtlE,QAAS,QACT/pD,EAAAA,IAMR,IAAMovH,EAAkBd,EAAe3vH,MAAM0wH,mBAAmB7pH,EAAM7G,OACvD2vH,EAAA3vH,MAAMwwH,kBAAkB3pH,EAAM7G,MAAO,CAClDg7E,OAAQy1C,eAAAA,EAAkB,GAC1BA,gBAAAA,EACArlE,QAAS,QACT/pD,EAAAA,IAEFsuH,EAAe3vH,MAAM2wH,0BAAyB,EAAO,CAAEtvH,EAAAA,IACxCsuH,EAAA3vH,MAAM4wH,SAASvvH,EA7BQ,GAgClC+uH,EAAsB,SAAC9qF,EAAc6L,GAA+C,IAAA0/E,EACxF,GAAIhqH,EAAM+kH,SACO+D,EAAA3vH,MAAMkuH,iBAAiB5oF,OADxC,CAIA,IAAMt+B,EAAW+nH,GAAoBY,EAAe3vH,MAAM6vH,YAA8BhpH,EAAM7G,OACxFywH,EAAkBd,EAAe3vH,MAAM0wH,mBAAmB1pH,EAAShH,OAEnE8wH,EAAuED,UAAvDlB,EAAe3vH,MAAM0wH,mBAAmB7pH,EAAM7G,kBAAS6wH,SAAvDA,EAAuD,GAC9DlB,EAAA3vH,MAAMwwH,kBAAkBxpH,EAAShH,MAAO,CACrDg7E,OAAQ81C,EACRL,gBAAAA,EACArlE,QAAS9lB,EAAM,QAAU,UACzBjkC,EAAG8vC,EAAQ9vC,GATb,GA2CF,OAlBA+6B,EAAAA,WAAU,WACR,IAAQmzF,EAA6B1oH,EAA7B0oH,IAAKD,EAAwBzoH,EAAxByoH,SAAwBzoH,EAAd4oH,YAEjBF,EAAAtkH,IAAIqkH,EAAUU,EAAMhwH,OACxBmxC,EAAQqG,KAAK,eAEjB,IAGAa,EAAAA,iBAAgB,WACd,GAAIxxC,EAAM4oH,UAAW,CACb,IAAEF,EAAkB1oH,EAAlB0oH,IAAKD,EAAazoH,EAAbyoH,SACbC,EAAA,OAAWD,EACb,CACF,IAEA9gF,GAAUwhF,GAEH,WACL,IArJ0B5rG,EAuHpBsjB,EA8BAqpF,EAAchnF,EAAc,UAAW,YAAcomF,EAAUnwH,MAGnE,OAAAy9B,EAAAA,YAAA,KAAA,CAAA1G,IACOi5F,EAAAtyF,MACEF,EAAQx9B,MAAAwvB,OAnCbkY,EAASC,EAAM9gC,OAAS,GAE1BijD,QAAQz+C,IAAIq8B,EAAQ,SACf7gC,EAAM2oB,MAEgB,iBAApB2gG,EAAUnwH,MAA2BmwH,EAAUnwH,MAEnD,MA6BgB41D,aACL,WAAA,OAAOkjC,EAAQ94F,OAAQ,CACrC,EAAA61D,aAAc,WAAA,OAAOijC,EAAQ94F,OAAQ,CACrC,EAAAouC,QAASsJ,GAERi4E,CAAAA,GAAkB9oH,EAAMkjG,SACvBtsE,EAAAA,YAAA8wF,GAAA,CAAAr1F,QACW42F,EAAW9vH,eACV64B,EAAS74B,eACTowH,EAAA92F,cACK22F,EAAgBjwH,QArKbokB,EAuKjB2sG,EAvKiB,mBAAA3sG,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAuKjB2sG,6BAAAA,qBAGIA,OAAAA,KAAAA,CAAAA,MAKjB,ICpLaC,GAAA,CAEbr0C,QAAS,CACPh6E,KAAMgmC,QACN3e,SAAS,GAGXs2B,MAAO,CACL39C,KAAM/C,SCRVqxH,GAAeh1F,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAA8oH,EAAiBt4F,SAAO83F,IACxBt9E,EAAiB7Z,GAAe,uBAC9BG,EAASD,KAATC,KACFuO,EAAiBU,KAEjB5J,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAC7BqzB,EAAe7xC,MACfm4B,EAAKn4B,MAAM2vH,EAAe3vH,MAAMoL,MAAAtL,EAAAm4B,CAAAA,EAAAA,GAAAA,OAE1B4Z,EAAe7xC,MAAmB6G,aAAAA,EAAM81E,aAIhD,OAAO,WAAA,IAAAu0C,EAAA,OAAAzzF,EAAAA,YAAA,KAAA,CAAAC,MACMF,EAAQx9B,OAAA,CACAkxH,QAAfrqH,EAAAA,EAAMy5C,aAAS4wE,IAAAA,GAAAA,GAAAzzF,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAyB4Z,EAAe7xC,MAAA,aAAkB6G,CAAAA,EAAMy5C,QAChF5Z,EAAe,aAGtB,ICpBayqF,GAAA,CAEbt8B,UAAWlsD,QAEXmsD,UAAWnsD,QAEXosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEXihE,eAAgB,CACdjnG,KAAMhC,UAGRywH,UAAWzoF,QAEX9P,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX8D,MAAO,CACLnrB,KAAM,CAAC/C,OAAQe,WAGjBsmC,OAAQ,CACNtkC,KAAMhC,UAGRwsB,WAAYwb,QAEZ82D,WAAY,CACV98F,KAAMxE,QAGRg6F,WAAY,CACVx1F,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX6/E,kBAAmB,CACjBlnG,KAAM,CAAC/C,OAAQC,SAGjBkE,KAAM,CACJpB,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBg4B,QAASgQ,QAETha,YAAa,CACXhsB,KAAM,CAAC/C,OAAQe,WAGjBwG,IAAK,CACHxE,KAAM9C,OACNmqB,QAAS,GAGX8/E,gBAAiB,CACfnnG,KAAM9C,OACNmqB,QAAS,GAGX+/E,SAAUphE,QAEV5sB,QAAS,CACPpZ,KAAMnF,OAGR+/E,mBAAoB,CAClB56E,KAAM,CAAC/C,OAAQe,WAGjB68E,gBAAiB,CACf76E,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGRiwF,aAAc,CACZzrF,KAAMgmC,QACN3e,aAAS,GAGXggF,oBAAqBrhE,QAErBwO,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXigF,eAAgBthE,QAEhBm/B,OAAQ,CACNnlE,KAAMxE,QAGRkzH,iBAAkB,CAChB1uH,KAAMxE,QAGRqxE,UAAW,CACT7sE,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGRupG,cAAe,CACbvnG,KAAMxE,QAGRgsG,SAAU,CACRxnG,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,QAASxqC,OAAQX,OACxCwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,OAAQ8oC,QAASxqC,OAAQX,OACxCwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,OAAQ8oC,QAASxqC,OAAQX,OACxCwsB,aAAS,GAGXogF,aAAc,CACZznG,KAAM,CAAC/C,OAAQe,WAGjB2wH,UAAW,CACT3uH,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAUjnB,SAASinB,EACtC,GAGFmwD,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAET4wH,SAAU5wH,SAEVywF,QAASzwF,SAETk1F,QAASl1F,SAET0pG,cAAe1pG,SAEf2pG,qBAAsB3pG,SAEtBikF,SAAUjkF,SAEV6wH,SAAU7wH,UCjNC8wH,GAAwB,SAAC5qH,GAIhC,IAAA6qH,EAAAC,EAAAC,EAAAC,EAAAC,EACErC,EAAYjxG,EAAAA,UAChB,WAAA,IAAAuzG,EAAAC,EAAAC,EAAA,MAA6B,aAAjB,QAANF,EAAAlrH,EAAMihE,cAANiqD,IAAMA,OAANA,EAAAA,EAAcpvH,QAA2CqvH,QAArBA,EAAAnrH,EAAMkV,QAAQ/b,iBAAOgyH,SAArBA,EAAqB30H,UAAgB,QAAN40H,EAAAprH,EAAMihE,cAANmqD,IAAMA,OAANA,EAAAA,EAAcC,YAAa,IAAA,IAGhG9oF,EAOqB,aAAT,QAAdsoF,EAAA7qH,EAAMihE,cAAQ,IAAA4pD,OAAA,EAAdA,EAAc/uH,MCXK,YAcnB,IAbJ4I,EAAA69B,EAAA79B,KACAw2B,EAAAqH,EAAArH,UAAAowF,EAAA/oF,EACAgpF,YAAAA,OAAc,IAAAD,GAAAA,EAAAE,EAAAjpF,EACdkpF,WAAAA,OAAa,IAAAD,EAAA,GAAAA,EAAAE,EAAAnpF,EACbsmF,WAAAA,OAAa,IAAA6C,EAAA,GAAAA,EAAAC,EAAAppF,EACb8oF,UAAAA,OAAY,IAAAM,EAAA,IAAAA,EASN35D,EAAQltB,EAAAA,SAAS,CACrB8mF,YAAa,GACbC,aAAc,GACdC,cAAe,KAEXlD,EAAYjxG,EAAAA,UAAS,WAAA,OAAMjT,EAAKvL,MAAM3C,OAAS60H,KAC/CU,EAAW77F,MAAI,GACfw4F,MAAU5jH,IAEZknH,EAAe,EACfC,EAAkB,EAClBhxH,EAAQ,EACRwL,EAAS,EACTjG,EAAQ,EACRsX,EAAO,EAGLqiC,EAAQ,WACZz1C,EAAKvL,MAAMmX,SAAQ,SAAC2uB,EAAWxoC,GAC7BwoC,EAAKitF,OAASz1H,EACV80H,IACIv5D,EAAA85D,cAAcr1H,GAAKA,EAAIg1H,EAEjC,IACKF,IACHv5D,EAAM85D,cAAcpnH,EAAKvL,MAAM3C,OAAS,QAAK,IAG3C2jD,IAGA,IAAAqf,EAAe7hD,EAAAA,UAAS,WACtB,IAAEk0G,EAAiB75D,EAAjB65D,aAER,GADmBA,EAAXr1H,OACI,CACJ,IAAA21H,EAAaN,EAAa9/E,QAAO,SAAChwB,EAAKmC,GAAM,OAAAnC,EAAMmC,GAAKutG,CAAA,GAAY,GAC1E,GAAII,EAAar1H,SAAWkO,EAAKvL,MAAM3C,OAC9B,OAAA21H,EAEH,IAAAC,EAAUD,EAAaN,EAAar1H,OAC1C,OAAO21H,GAAcznH,EAAKvL,MAAM3C,OAASq1H,EAAar1H,QAAU41H,CAClE,CACA,OAAOxD,EAAUzvH,MAAQuL,EAAKvL,MAAM3C,OAASi1H,EAAa,CAC5D,IACMY,EAAa10G,EAAAA,UAAS,WACpB,IAAEi0G,EAAgB55D,EAAhB45D,YACFU,EAAWV,EAAY,GAC7B,OAAIU,EAE4B,IAAvBV,EAAYp1H,OAAe,EAAIw7D,EAAM85D,cAAcQ,EAASJ,QAE9D,CACT,IAGMK,EAAoB,WACjBz0G,EAAAzX,KAAK0U,IAAIvU,EAAQwrH,EAA4B,EAAbnD,EAAgBnkH,EAAKvL,MAAM3C,QAClEw7D,EAAM45D,YAAclnH,EAAKvL,MAAMzB,MAAM8I,EAAOsX,IAGxC00G,EAAmB,WAAM,IAAAC,EACvBC,EAAYhE,EAAIjkH,IAAIxJ,GAC1B,GAAKyxH,EAAL,CAGM,IAAAC,EAAkBD,SAAoC,QAAzBD,EAAXC,EAAWtvF,+BAAXqvF,IAAoCA,OAApCA,EAAAA,EAAoCx1F,OAC5D+6B,EAAM85D,cAAc7wH,GAASigC,EAAU/hC,MAAM4iC,UAAYt1B,EACzDurD,EAAM65D,aAAa5wH,GAAS0xH,EAEnB,IAAA,IAAAl2H,EAAIwE,EAAQ,EAAGxE,IAAsDm2H,QAAjDA,EAAA56D,EAAM45D,YAAY55D,EAAM45D,YAAYp1H,OAAS,UAA7Co2H,IAAiDA,OAAjDA,EAAAA,EAAiDV,QAAQz1H,IAAK,CAAA,IAAAm2H,EAEnFC,EAAKnE,EAAIjkH,IAAIhO,GACXwgC,IAAW41F,aAAI,EAAJA,EAAIzvF,0BAA2B,CAAC,GAA3CnG,OACR+6B,EAAM65D,aAAap1H,GAAKwgC,EACxB,IAAM61F,EAAU96D,EAAM85D,cAAcr1H,EAAI,GAAKu7D,EAAM65D,aAAap1H,EAAI,GAEpEu7D,EAAM85D,cAAcnnH,OAAOlO,EAAG,EAAGq2H,EACnC,CAES,IAAA,IAAAr2H,EAAIwE,EAAQ,EAAGxE,IAAuB,QAAvBs2H,EAAK/6D,EAAM45D,YAAY,UAAA,IAAAmB,OAAA,EAAlBA,EAAsBb,QAAQz1H,IAAK,CAAA,IAAAs2H,EACxDF,EAAKnE,EAAIjkH,IAAIhO,GACXwgC,IAAW41F,aAAI,EAAJA,EAAIzvF,0BAA2B,CAAC,GAA3CnG,OACR+6B,EAAM65D,aAAap1H,GAAKwgC,EACxB,IAAM61F,EAAU96D,EAAM85D,cAAcr1H,EAAI,GAAKu7D,EAAM65D,aAAap1H,GAEhEu7D,EAAM85D,cAAcnnH,OAAOlO,EAAG,EAAGq2H,EACnC,CACI,GAAA96D,EAAM85D,cAAc,GAAK,EAAG,CAK9B,IAFM,IAAAztD,EAAWrM,EAAM85D,cAAc,GAC/Bt1H,EAAS6J,KAAK0U,IAAI+C,EAAMpT,EAAKvL,MAAM3C,QAChCC,EAAI,EAAGA,EAAID,EAAQC,IAE1Bu7D,EAAM85D,cAAcnnH,OAAOlO,EAAG,EAAGu7D,EAAM85D,cAAcr1H,GAAK4nE,GAGtD,IAAAtiC,EAAYi2B,EAAM85D,cAAc7wH,EAAQ,GAAK+2D,EAAM85D,cAAc7wH,EAAQ,GAAKwL,EAASA,EAC7Fy0B,EAAU/hC,MAAM4iC,UAAYA,EACVkwF,EAAAlwF,CAEpB,CAEI,GAAAi2B,EAAM85D,cAActrH,GAAS,EAAG,CAElC,IAAM+c,EAAIy0C,EAAM65D,aAAan0H,MAAM,EAAG2I,KAAKC,IAAI,EAAGrF,IAAQ8wC,QAAO,SAAChwB,EAAKmC,UAAMnC,EAAMmC,IAAG,GAAKzX,EAC3Fy0B,EAAU/hC,MAAM4iC,UAAYxe,EACV0uG,EAAA1uG,EACR,IAANA,IACMtiB,EAAA,EACCwL,EAAA,EAGb,CACA+uB,EAAAA,UAAS,WAEP,IAAAw3F,EAAkD9xF,EAAU/hC,MAApD4iC,EAAWixF,EAAXjxF,UAAWy9B,EAAcwzD,EAAdxzD,aACf,GAAAz9B,EAD6BixF,EAAA92D,eACAsD,EAG/B,IAAA,IAAS/iE,EAAIqhB,EAAO,EAAGrhB,GAAK+J,EAAO/J,IAC7BA,IAAMqhB,EAAO,EAETk6C,EAAA85D,cAAcnnH,OAAOlO,EAAG,EAAG+iE,EAAargE,MAAQ64D,EAAM65D,aAAap1H,IAGnEu7D,EAAA85D,cAAcnnH,OAAOlO,EAAG,EAAGu7D,EAAM85D,cAAcr1H,EAAI,GAAKu7D,EAAM65D,aAAap1H,GAKzF,GAnEA,IAyID80H,GAAe7pF,EAAAA,MAAMqqF,EAAUS,EAAkB,CAAE/1G,MAAO,SAK3DirB,EAAAA,MAAMh9B,GAAM,WACJy1C,IACN6X,EAAM45D,YAAc,GACpB55D,EAAM85D,cAAgB,GACtB95D,EAAM65D,aAAe,GACHI,EAAA,EACVhxH,EAAA,EACCwL,EAAA,EACDjG,EAAA,EAERkoH,EAAIxkH,QACAQ,EAAKvL,MAAM3C,QAAU60H,EACvBr5D,EAAM45D,YAAclnH,EAAKvL,MAEPozH,IAGVrxF,EAAA/hC,QAAU+hC,EAAU/hC,MAAM4iC,UAAY,EAClD,IACA,IAAIsK,GAAU,EACR4mF,EAAmB,WACnB5mF,IACF2lF,EAAe3rH,KAAKqL,KAAKwvB,EAAU/hC,MAAM+vC,aAAeuiF,GACtCc,MAiBf,OAdPh3F,EAAAA,WAAU,WACR,GAAKO,QAAWA,OAAOsvF,qBAAvB,CAGA,IAAM8H,EAAK,IAAIp3F,OAAOsvF,sBAAqB,SAACnhH,GAC1C,IAAME,EAAQF,EAAQ,IAClBE,EAAMmhH,gBAAkBnhH,EAAMgpH,qBACtB9mF,GAAA,EACVuiF,EAAUzvH,OAAS8zH,IAChBC,EAAA5jD,UAAUpuC,EAAU/hC,OAE3B,IACA+hC,EAAU/hC,OAAS+zH,EAAG1jD,QAAQtuC,EAAU/hC,MATxC,CAUF,IACOq9B,GAAAA,GAAA,CACLkyF,IAAAA,EACAlvD,aAAAA,GACGt1B,SAAO8tB,IAAK,GAAA,CACfq6D,WAAAA,EACA/sE,aApHmB,WACnB,GAAKspE,EAAUzvH,MAAf,CAIM,IAAE4iC,EAAcb,EAAU/hC,MAAxB4iC,UACJsiC,EAAWtiC,EAAYkwF,EACTA,EAAAlwF,EAElB,IAAI/sB,EAAY/T,EAEhB,GAHYojE,GAAA53D,EAGZ,CACA,GAAI43D,GAAY,EAAG,CAEV,KAAArvD,EAAYtK,EAAKvL,MAAM3C,QAAU6nE,GAAYrM,EAAM65D,aAAa78G,IAAcy8G,IAC9Ez5D,EAAM65D,aAAa78G,KACtBgjD,EAAM65D,aAAa78G,GAAay8G,GAElCptD,GAAYrM,EAAM65D,aAAa78G,GAC/BA,IAEEA,GAAatK,EAAKvL,MAAM3C,QAClByE,EAAAyJ,EAAKvL,MAAM3C,OAAS,EACnBiQ,EAAA,IAEDxL,EAAA+T,EACCvI,EAAA43D,GAEX,IAAA+uD,EAAuClyF,EAAU/hC,MAC7C4iC,EADIqxF,EAAAl3D,eAAcsD,EAAAA,eAGZv+D,EAAAyJ,EAAKvL,MAAM3C,OAASw1H,EAAe,GAGzCxrH,GAASvF,EAAQ4tH,IAEnBroH,EAAQH,KAAK0U,IAAIrQ,EAAKvL,MAAM3C,OAASw1H,EAAc/wH,EAAQ4tH,IAC/C,IACFroH,EAAA,EAGd,KAAO,CAEL,KAAO69D,EAAW,GAChBrvD,IACKgjD,EAAM65D,aAAa78G,KACtBgjD,EAAM65D,aAAa78G,GAAay8G,GAElCptD,GAAYrM,EAAM65D,aAAa78G,GAE7BA,EAAY,GACN/T,EAAA,EACCwL,EAAA,IAEDxL,EAAA+T,EACCvI,EAAA43D,GAEMmuD,IACbhsH,EAAQvF,EAAQ4tH,IAElBroH,EAAQH,KAAKC,IAAI,EAAGrF,EAAQ4tH,GAEhC,CACkB0D,GApDH,CAVO,GAoHtBc,iBAlDuB,WAClBzE,EAAUzvH,OACN4yH,EAAA5yH,SAiDT8zH,iBAAAA,EACA1B,YAAAA,EACAiB,iBAAAA,GAEJ,CDpQMc,CAAiB,CACfpyF,UAAWl7B,EAAMutH,gBACjB7oH,KAAM1E,EAAMkV,QACZq2G,aAAmBT,QAANA,EAAA9qH,EAAMihE,cAAN6pD,IAAMA,OAANA,EAAAA,EAAc0C,oBAAoB,EAC/C/B,YAAkBV,QAANA,EAAA/qH,EAAMihE,cAAN8pD,IAAMA,OAANA,EAAAA,EAAc0C,YAAa,GACvC5E,YAAkBmC,QAANA,EAAAhrH,EAAMihE,cAAN+pD,IAAMA,OAANA,EAAAA,EAAcnC,aAAc,GACxCwC,WAAiB,QAANJ,EAAAjrH,EAAMihE,cAAA,IAAAgqD,OAAA,EAANA,EAAcI,YAAa,MAExC,CAAC,EAAAqC,EAAAnrF,EAfHmmF,IAAAA,OAAM,IAAAgF,EAAA,KAAAA,EAAAC,EAAAprF,EACNqpF,YAAAA,OAAc,IAAA+B,EAAA,KAAAA,EAAAC,EAAArrF,EACd+c,aAAcuuE,OAAsB,IAAAD,EAAA,KAAAA,EAAAE,EAAAvrF,EACpCi3B,aAAAA,OAAe,IAAAs0D,EAAA,KAAAA,EAAAC,EAAAxrF,EACf8pF,WAAAA,OAAa,IAAA0B,EAAA,KAAAA,EAAAC,EAAAzrF,EACb8qF,iBAAAA,OAAmB,IAAAW,EAAA,KAAAA,EAWjBC,GAAc,EAEZC,EAAuB,SAAC1zH,GACxB,GAACouH,EAAUzvH,MAAX,CAGJ,IACMmkC,EADS9iC,EAAEw4B,OACE+I,UAEf17B,KAAKge,IAAI4vG,EAAc3wF,GAAO,GACZuwF,IACNI,EAAA3wF,GAEA2wF,GAAA,CARhB,GAaF14F,EAAAA,WAAU,WAAM,IAAA44F,EACQ,QAAtBA,EAAAnuH,EAAMutH,gBAAgBp0H,aAAA,IAAAg1H,GAAtBA,EAA6B50F,iBAAiB,SAAU20F,EAC1D,IAGA18E,EAAAA,iBAAgB,WAAM,IAAA48E,EACE,QAAtBA,EAAApuH,EAAMutH,gBAAgBp0H,aAAA,IAAAi1H,GAAtBA,EAA6Bv0F,oBAAoB,SAAUq0F,EAC7D,IAEA,IAAMG,EAAc12G,EAAAA,UAClB,WAAA,MACG,CACCwxB,SAAU,WACVnS,MAAO,MACPC,OAAQ,MACRwS,WAAY,iBACZhpC,0BAAA2wB,OAA2BooC,EAAargE,MAAA,OACxC,gCAAAi4B,OAAiCooC,EAAargE,MAAA,OAC9C,iCAAAi4B,OAAkCooC,EAAargE,MAAA,OAC/C,oBAAAi4B,gBAAAA,OAAqCooC,EAAargE,MAAA,OACpD,IAGEm1H,EAAa32G,EAAAA,UACjB,WAAA,MACG,CACClX,0BAAA2wB,OAA2Bi7F,EAAWlzH,MAAA,OACtC,gCAAAi4B,OAAiCi7F,EAAWlzH,MAAA,OAC5C,iCAAAi4B,OAAkCi7F,EAAWlzH,MAAA,OAC7C,oBAAAi4B,gBAAAA,OAAqCi7F,EAAWlzH,MAAA,OAClD,IAGG,MAAA,CACLuvH,IAAAA,EACAlvD,aAAAA,EACA6yD,WAAAA,EACAT,YAAAA,EACAyB,iBAAAA,EACAzE,UAAAA,EACAyF,YAAAA,EACAC,WAAAA,EAEJ,EE9EA,IAAAC,GAAen5F,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACLsxF,WAAYk9B,GAAcl9B,WAC1B3a,gBAAiB63C,GAAc73C,gBAC/BD,mBAAoB83C,GAAc93C,mBAClCzvD,MAAOunG,GAAcvnG,MACrBsjG,UAAWiE,GAAcjE,UACzBz4F,QAAS08F,GAAc18F,QACvBhK,YAAa0mG,GAAc1mG,YAC3Bo7E,SAAUsrB,GAActrB,SACxB58E,WAAYkoG,GAAcloG,WAC1B8Z,OAAQouF,GAAcpuF,OACtB6gC,OAAQutD,GAAcvtD,OACtB18D,KAAMiqH,GAAcjqH,MAEtB8wB,eAAMr1B,EAAAuiC,GAAmB,IAAVme,EAAAne,EAAAme,OACP1V,EAAiB7Z,GAAe,UAChC0O,EAAiBU,KACjBkuF,EAAqBztF,KAC3BuuC,EAA4Bp/C,GAAU,UAA9BpT,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aACLg+F,EAAUl+F,SAAO83F,IACjB78B,EAAWv7D,MAAiB,MAE5Bq9F,EAAkB51G,EAAAA,UAAS,WAAA,OAAM+2G,EAAQv1H,MAAMo0H,gBAAgBp0H,SAC/Dw1H,EAAmBh3G,EAAAA,UAAS,WAAA,OAAM3X,EAAMuqH,WAAavqH,EAAMsmB,YAActmB,EAAMsxF,cAC/Es9B,EAAiBj3G,EAAAA,UAAS,WAAA,OAAM+2G,EAAQv1H,MAAMy1H,kBAE9CC,EAA6EjE,GAAsB,CACvG3pD,OAAQjhE,EAAMihE,OACdssD,gBAAAA,EACAr4G,QAAS05G,IAHHlG,IAAAA,IAAKkD,EAAaiD,EAAbjD,YAAayB,EAAAwB,EAAAxB,iBAAkBzE,IAAAA,UAAW0F,EAAYO,EAAZP,WAAYD,EAAAQ,EAAAR,YAM7Dn1G,EAAUvB,EAAAA,UAAS,WAAA,OAAOi3G,EAAez1H,MAAM3C,UAc/Cs4H,EAAuB,SAAC55G,GAE1B,OAAA0hB,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAAc4Z,EAAe7xC,iBAC1B+b,CAAAA,EAAQlQ,KAAI,SAACi6B,EAAiFhkC,GAAU,IAAAiwH,EAAAE,EACpF/4E,EAtDC90B,EAsDpB,OAAI0hB,EAAKC,SACPtI,EAAAA,YAAAm4F,GAAA,CAAAt1E,MACsBxa,EAAK+vF,MAAOl5C,QAAS72C,EAAK62C,SAxD9B,mBAAAv4D,EAwD8B80B,EAC3Cy8E,EAAqB7vF,EAAKC,YAzDbqT,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAyDqB80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,IAKvCzb,cAAAq4F,GAAA1qF,EAAA2qC,WACMh1D,GAAK+kB,EAAM,QAAS,SAAU,YAAa,WAC1C2pF,EAAUzvH,MACX,CACEsvH,SAAUxpF,EAAKitF,OACfxD,IAAAA,EACAC,WAA0B,QAA1BuC,EAAYlrH,EAAMihE,cAAQ,IAAAiqD,OAAA,EAAdA,EAAcpvH,KAC1B8sH,UAAWA,EAAUzvH,MACrB0vH,WAA0B,QAA1BuC,EAAYprH,EAAMihE,cAAQ,IAAAmqD,OAAA,EAAdA,EAAcvC,WAC1BrwH,cAAQymC,EAAKitF,QAAU,GAAA96F,KAAAA,OAAMn2B,cAASgkC,EAAK9lC,QAE7C,CACEX,IAAA,GAAA44B,OAAQn2B,OAAAm2B,OAAS6N,EAAK9lC,QACxB,CAAA8B,MACGA,EAAAioG,SACGljG,EAAMkjG,sBAEFmqB,IADLpuF,EAAKkB,MAInB,OAID+uF,EAAoBv3G,EAAAA,UAAS,WAC1B,MAAA,CACL4Z,MAAO,IACPC,OAAQ,IACRC,MAAO,KACPi9F,EAAQv1H,MAAMoL,KAClB,IAEOm8C,EAAA,CACL+qC,SAAAA,EACAmgC,YAAAA,EACAhD,UAAAA,EACAgG,eAAAA,IA0BK,MAAA,CACLO,YAxBkB,SAACj6G,EAAyBk6G,GAAA,OAAAx4F,EAAAA,YAAA,MAAA,CAAA1G,IAErCu7D,QACE,IAAAr6D,OACF4Z,EAAe7xC,6BAAAi4B,OACf4Z,EAAe7xC,MAAAi4B,2BAAAA,OAA+B89F,EAAkB/1H,cAE9Di2H,GAAA,CAGNT,EAAiBx1H,OAzEKy9B,EAAAA,YAAA,KAAA,CAAAC,MACd,CAAA,GAAAzF,OAAI4Z,EAAe7xC,MAAwB,mBAAA,GAAAi4B,OAAG4Z,EAAe7xC,MAAA,YACtEy9B,CAAAA,EAAAO,YAAA83F,GAAA,CAAA91H,MACS6G,EAAMsxF,WAAA73C,MAAA,GAAAroB,OACHpxB,EAAMsxF,YAAAk3B,YACJ,EAAA3xF,MAAA,GAAAzF,OACF4Z,EAAe7xC,MAAA,6BAAA,QAqE1B6G,EAAM8xB,SACL28F,EAAmB,cAAe,CAChC7vF,YAAahI,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAwB,mBAAA,CAAA4jB,EAAE2T,EAAav3B,MAAM2uB,kBAG1F9nB,EAAM8xB,SAAW5Y,EAAQ/f,QAAUw1H,EAAiBx1H,OACpDy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,YAAiB0mC,CAAAA,EAAe,UAAY9iB,EAAE2T,EAAav3B,MAAM8tB,UAE/F/N,EAAQ/f,OAAS21H,EAAqB55G,MAK1Co5G,WAAAA,EACAD,YAAAA,EACAzF,UAAAA,EACAgG,eAAAA,EACAhD,YAAAA,EACA/rF,eAAAA,EAEJ,EACAkF,OAAS,WACP,OAAOlkC,KAAK+nH,UACVhyF,EAAAA,YAAAmhB,EAAAA,SAAA,KAAA,CACGl3C,KAAKg/B,eAAe,mBAAiBjJ,EAAAA,wBAAAA,EAAAO,YAAA,MAAA,CAAAtE,MAExBhyB,KAAKwtH,aAChB,MAAAxtH,KAAKsuH,YAAYtuH,KAAK+qH,YAAa/qH,KAAKytH,cAE1CztH,KAAKg/B,eAAe,wBAAoBjJ,EAAAA,YAAAmhB,EAAAA,eAIxCl3C,KAAKg/B,eAAe,mBACpBh/B,KAAKsuH,YAAYtuH,KAAK+tH,gBACtB/tH,KAAKg/B,eAAe,uBAG3B,gkDCrJK,wlDCcP,IAAAwvF,GAAej6F,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CAIH4hH,oBAAqB,CACnB9lH,KAAMxE,UAGV+9B,eAAMr1B,EAAAA,GAA2F,IAATmgC,EAAAoC,EAAApC,MAChFzb,EAAcyM,KACdga,EAAad,KACb81D,EAAa7Q,KACbzvD,EAAiBU,KACjByK,EAAiB7Z,GAAe,UACtCo+C,EAA4Bp/C,GAAU,UAA9BO,EAAA6+C,EAAA7+C,aAAc3T,EAAEwyD,EAAFxyD,EACtBgvD,EAAwD7nC,SAAOlkC,GAAvDunF,EAAcxb,EAAdwb,aAAc+J,EAAAvlB,EAAAulB,WAAYtsB,IAAAA,WAAY7rE,EAAM4yE,EAAN5yE,MAM9C+jF,EAAAvgE,GALyC2nD,GACvCgtB,EACAtxF,EAAMgjG,kBACNhjG,EAAMwjG,cACN,cACF,GALO8rB,EAAiBpyC,EAAA,GAAAkkC,EAAalkC,EAAA,GAM0DlR,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAAxFinE,EAAUvjD,EAAA,GAAAwjD,EAAWxjD,EAAA,GACtByjD,EAAiBv/F,MAAI,MACrBmzF,EAAiBnzF,MAAI,MACrBhzB,EAAOya,EAAAA,UAAS,WAAA,IAAA+3G,EAAAC,EAAAC,EAAA,MAAO,CAC3Bn2E,OAAai2E,QAAN1vH,EAAAA,EAAM9C,YAAN8C,IAAM0vH,OAAN1vH,EAAAA,EAAYy5C,QAAS,QAC5BtgD,OAAaw2H,QAAN3vH,EAAAA,EAAM9C,YAAN8C,IAAM2vH,OAAN3vH,EAAAA,EAAY7G,QAAS,QAC5B64B,UAAgB,QAANhyB,EAAAA,EAAM9C,YAAA,IAAA0yH,OAAA,EAAN5vH,EAAYgyB,WAAY,WAClC,IACF69F,ED/C4B,SAAC7vH,EAAsB9C,EAAqBo0F,GAC1E,IAAMxd,EAAyBn+B,KACzBm6E,EAAe5/F,MAAoB,IAEnChb,EAAUyC,EAAAA,UAAS,WAAM,IAAAq8D,EACzB+7C,EAAe,EAEbC,GACWh8C,QAAfA,EAAAh0E,EAAMkV,mBAAS8+D,SAAfA,EAAehvE,KAAI,SAACmvE,GACZ,IAAA87C,EAAkB,SAAC97C,GACvB,IAAA+7C,EAAmChzH,EAAK/D,MAAhCA,EAAA+2H,EAAA/2H,MAAOsgD,EAAOy2E,EAAPz2E,MAAOznB,EAAAk+F,EAAAl+F,SAEhBl5B,EAAM09B,GAAAA,MADOtc,GAAKi6D,EAAQ,CAACh7E,EAAOsgD,EAAOznB,KAE1C,GAAA,CACH/2B,MAAO80H,EACPt2E,MAAOh1C,GAAI0vE,EAAQ16B,GACnBtgD,MAAOsL,GAAI0vE,EAAQh7E,GACnB64B,SAAUvtB,GAAI0vE,EAAQniD,KAAa,IAG9B,OADP+9F,IACOj3H,GAET,OAAKq7E,EAA6Bj1C,SACzB1I,GAAAA,GAAA,CAAA,EACF29C,GAAA,CAAA,EAAA,CACHj1C,SAAWi1C,EAA6Bj1C,SAASl6B,KAAI,SAAC8kC,GAAU,OAAAmmF,EAAgBnmF,EAAM,MAGnFmmF,EAAgB97C,EACxB,MAAK,GAGFg8C,EAAer8C,EAAuB,UACtCs8C,EAAat8C,EAAuB,eAEtC,GAAA/7E,EAAQq4H,GAAa,CAAA,IACStwC,EADTC,EAAAC,GACHowC,GAAY,IAAhC,IAAArwC,EAAAxiE,MAAAuiE,EAAAC,EAAA1oF,KAAA+lB,MAAgC,CAAA,IAAAizG,EAArBrB,UACHsB,EAAc95F,GAAAA,GAAA,CAClBw4F,MAAoBqB,QAApBA,EAAOrB,EAAMhvH,aAANqwH,IAAaA,OAAbA,EAAAA,EAAa52E,OACjBu1E,EAAMhvH,OAAA,GAAA,CACTk/B,SAAU,KAENpmC,EAAMg7E,EAAuB,SAAUk7C,EAAM9vF,UAC/C,GAACnnC,EAAQe,GAAT,CAAe,IACMy3H,EADNC,EAAAxwC,GACClnF,GAAK,IAAzB,IAAA03H,EAAAjzG,MAAAgzG,EAAAC,EAAAn5H,KAAA+lB,MAAyB,CAAA,IAAd0sB,UACTwmF,EAAYpxF,SAAS97B,KAAKozB,GAAAA,GAAA,CAAA,EACrBsT,EAAM9pC,OAAA,GAAA,CACTmgC,MAAO2J,EAAM5K,SACbjkC,MAAO80H,KAETA,GACF,CAAA,CAAA,MAAA90E,GAAAu1E,EAAAh2H,EAAAygD,EAAA,CAAA,QAAAu1E,EAAAtzG,GAAA,CAEA8yG,EAAa5sH,KAAKktH,EAVC,CAWrB,CAAA,CAAA,MAAAr1E,GAAA8kC,EAAAvlF,EAAAygD,EAAA,CAAA,QAAA8kC,EAAA7iE,GAAA,CACF,CACI,GAAAnlB,EAAQo4H,GAAe,CAAA,IACSM,EADTC,EAAA1wC,GACLmwC,GAAc,IAAlC,IAAAO,EAAAnzG,MAAAkzG,EAAAC,EAAAr5H,KAAA+lB,MAAkC,CAAA,IAAvB0sB,UACTkmF,EAAa5sH,KAAKozB,GAAAA,GAAA,CAAA,EACbsT,EAAM9pC,OAAA,GAAA,CACTmgC,MAAO2J,EAAM5K,SACbjkC,MAAO80H,KAETA,GACF,CAAA,CAAA,MAAA90E,GAAAy1E,EAAAl2H,EAAAygD,EAAA,CAAA,QAAAy1E,EAAAxzG,GAAA,CACF,CACO,OAAA8yG,CACT,IAEMW,EAAch5G,EAAAA,UAAS,WAC3B,IAAM7e,EAAuB,GACvB83H,EAAiB,SAAC17G,GAA6B,IACrB27G,EADqBC,EAAA9wC,GAC9B9qE,GAAS,IAA9B,IAAA47G,EAAAvzG,MAAAszG,EAAAC,EAAAz5H,KAAA+lB,MAA8B,CAAA,IAAnB+2D,UACJA,EAA6Bj1C,SAChC0xF,EAAgBz8C,EAA6Bj1C,UAE7CpmC,EAAIsK,KAAK+wE,EAEb,CAAA,CAAA,MAAAl5B,GAAA61E,EAAAt2H,EAAAygD,EAAA,CAAA,QAAA61E,EAAA5zG,GAAA,GAGK,OADP0zG,EAAe17G,EAAQ/b,OAChBL,CACT,IAEMmvH,EAAatwG,EAAAA,UAAS,WACpB,IAAA7e,MAAUgM,IAKT,OAHPgrH,EAAa32H,MAAMi4B,OAAOu/F,EAAYx3H,OAAOmX,SAAQ,SAAC6jE,GAChDr7E,EAAAsL,IAAI+vE,EAAOh7E,MAAOg7E,EACxB,IACOr7E,CACT,IAEMi4H,EAAgB,SAAC58C,GAAyB,IAAA68C,EAAAC,EAC1C,OAAAp0H,EAAWmD,EAAMogC,QACZpgC,EAAMogC,OAAAhP,GAAAA,OAAUkgE,EAAWn4F,OAASg7E,IAExB68C,QAAdA,EAAA78C,EAAO16B,aAAOw3E,IAAAD,GAAAC,QAAAA,EAAdD,EAAc1lH,uBAAA2lH,SAAdA,EAAAx5H,KAAAu5H,GAA8B99F,QAAQ,GAAA9B,OAAGkgE,EAAWn4F,OAAQmS,iBAAiB,GAGhFsjH,EAAiBj3G,EAAAA,UAAS,WAC1B,GAAA3X,EAAM2qH,UAAY3qH,EAAMsmB,WAAY,OAAOpR,EAAQ/b,MAEnD,IAACm4F,EAAWn4F,QAAW6G,EAAMsmB,aAAczpB,EAAWmD,EAAMogC,QAAU,OAAOlrB,EAAQ/b,MAErF,IAAA+3H,EAEAp4H,EAAsB,GAiB1B,GAfQoc,EAAA/b,MAAMmX,SAAQ,SAAC6jE,GAChBA,EAA6Bj1C,UAChCpmC,EAAIsK,KAAKozB,GAAAA,MACJ29C,GAAA,GAAA,CACHj1C,SAAWi1C,EAA6Bj1C,SAASkB,OAAO2wF,OAIhB,KAAvC58C,aAAAA,EAAAA,EAA0B4wC,YAAoCmM,EAAA/8C,GAE/D48C,EAAc58C,IAChBr7E,EAAIsK,KAAK+wE,EAEb,KAEKt3E,EAAWmD,EAAMogC,QAAS,CAIvB,IAAA+wF,EAAar4H,EAAIsnC,QAAO,SAACnB,UAASA,EAAKwa,QAAU63C,EAAWn4F,SAC5Di4H,EAAat4H,EAAIsnC,QAAO,SAACnB,UAASA,EAAKwa,QAAU63C,EAAWn4F,SAC5DL,EAAAq4H,EAAW//F,OAAOggG,EAC1B,CAEA,OAAOt4H,EAAItC,QAAU06H,EAAkBA,CAAAA,GAAgB9/F,OAAAt5B,EAAGgB,IAAOA,CACnE,IAEO,MAAA,CACLoc,QAAAA,EACA+yG,WAAAA,EACA0I,YAAAA,EACAb,aAAAA,EACAlB,eAAAA,EACAmC,cAAAA,EAEJ,CCjGqFM,CAC/ErxH,EACA9C,EACAoyH,GAHMrH,EAAY4H,EAAZ5H,WAAY0I,EAAAd,EAAAc,YAAab,EAAcD,EAAdC,aAAclB,EAAAiB,EAAAjB,eAAgBmC,IAAAA,cAOzDh/B,EAAap6E,EAAAA,UAAS,WACtB,YAAmB,IAAnB43G,EAASp2H,MACJ6G,EAAMkjG,SAAW,QAAK,EAEP,WAApBljG,EAAMyqH,UACAzqH,EAAMkjG,SAMTqsB,EAASp2H,MAAwB6L,KAAI,SAACmvE,GAAA,OAAWA,EAAOj3E,EAAK/D,MAAMA,UAHpEo2H,EAASp2H,MAAM+D,EAAK/D,MAAMA,OAKzBo2H,EAASp2H,KAClB,IAEM64F,EAA2C,SAACe,EAAqCzoD,GACjFtqC,GAAoB,WAApBA,EAAMyqH,UAAwB,CAChC,IAAAyF,EAAyBhzH,EAAK/D,MAAtBA,EAAO+2H,EAAP/2H,MAAOsgD,EAAAy2E,EAAAz2E,MACT63E,EAAY,SAAC7yF,GACjB,QAAY,IAARA,EAAJ,CAGA,IAAM01C,EAAS8zC,EAAW9uH,MAAMsL,IAAIg6B,GAC7B,OAAAxlC,EAAAA,EAAA,CAAA,EACJE,EAAQsL,GAAI0vE,EAAQ,UACpB16B,EAAQh1C,GAAI0vE,EAAQ,SAJvB,GAOOn0E,EAAAA,EAAMkjG,SAAYnQ,EAAyB/tF,KAAI,SAACy5B,GAAQ,OAAA6yF,EAAU7yF,EAAI,IAAI6yF,EAAUv+B,EAC/F,CAUuE,IAAA9M,EATnE8M,IAAWw8B,EAASp2H,QAGpB6G,EAAMkjG,WAAaljG,EAAMojG,gBAAqC,SAAnB94D,EAAQia,SAAoB68D,EAAc,IAEzFoO,EAAYz8B,EAAQv8D,GAAA,CAClBozF,gBAAiBC,EAAmB92B,IACjCzoD,IAEDtqC,EAAMkjG,UAAgC,YAApB54D,EAAQia,SAAyBja,EAAQ6pC,SAC5C,QAAjBn0E,EAAAA,EAAM+9E,gBAAW,IAAAkI,GAAjBjmF,EAAAA,KAAAA,EAAiB,CACf7G,MAAOsL,GAAI6lC,EAAQ6pC,OAAQj3E,EAAK/D,MAAMA,OACtCuL,KAAM4lC,EAAQ6pC,OACd35E,EAAG8vC,EAAQ9vC,OAYjB+2H,EAAA50G,GAPkD2nD,GAChDijB,GACA,GACA,SAACh1D,EAAkB+X,GAAuC,IAAA85E,UACxDpkH,EAAAA,EAAMyjG,4BAAuB,IAAA2gB,GAA7BpkH,EAAAA,KAAAA,EAA6BuyB,EAAS+X,EACxC,GACA,gBACF,GAPO41E,EAAmBqR,EAAA,GAAAC,EAAoBD,EAAA,GASxCE,EAAkB95G,EAAAA,UACtB,WAAA,IAAAkyC,EAAA,OAEU,QAFVA,GACK7pD,EAAMkjG,UAAYgd,EAAkB/mH,OAAS6uH,GAAiBj2B,EAAW54F,MAAO8uH,IACjFjoH,EAAM+nB,mBAAA8hC,IAAAA,EAAAA,EACR9sC,EAAE2T,EAAav3B,MAAM4uB,YAAW,IAI9B2pG,EAAc/5G,EAAAA,UAAS,WAAA,OAC3B3X,EAAMkjG,SV3HsB,SAChC/pG,EACA8uH,GAEA,IAC8BnoC,EADxBhnF,EAAM,GAACinF,EAAAC,GACU7mF,GAAO,IAA9B,IAAA4mF,EAAAxiE,MAAAuiE,EAAAC,EAAA1oF,KAAA+lB,MAA8B,CAAA,IAAnBrmB,UACH46H,EAAW3J,GAAiBjxH,EAAUkxH,GACxC0J,GACF74H,EAAIsK,KAAKuuH,EAEb,CAAA,CAAA,MAAA12E,GAAA8kC,EAAAvlF,EAAAygD,EAAA,CAAA,QAAA8kC,EAAA7iE,GAAA,CACO,OAAApkB,CACT,CUgHU84H,CAAmB7/B,EAAW54F,MAAwB8uH,GACtDD,GAAiBj2B,EAAW54F,MAAO8uH,EAAU,IAI7C4J,EAAqBl6G,EAAAA,UAAS,WAC5B,IAeuCm6G,EAfvCrzF,EACJz+B,EAAMkjG,UAAYnrG,EAAQg6F,EAAW54F,OAChC44F,EAAW54F,MAAwB6L,KAAI,SAAC7L,GAAW,IAAA44H,EAAA,MAAA,CAClD54H,MAAAA,EACAsgD,MAAoC,QAA7Bs4E,EAAA9J,EAAW9uH,MAAMsL,IAAItL,UAAQ,IAAA44H,OAAA,EAA7BA,EAA6Bt4E,MACtC,IACAs4C,EAAW54F,MAEXkmC,EAAS,CACblmC,MAAOslC,EACPwtB,QAASjsD,EAAMkjG,SAAW,SAACjoG,UAAkB+2H,EAAU/2H,IAAS,WAAO,GAKrE+E,OAFCA,EAAMkjG,UAAU5rG,OAAOq5B,OAAO0O,EAAQ,CAAEoa,MAAOi4E,EAAYv4H,QAE5D6G,EAAMijG,iBAAmBjjG,EAAMkjG,SAC1B1sE,GAAAA,GAAA,CAAA,EACF6I,GAAA,CAAA,EAAA,CACH4yF,aAAcxzF,SAAa,QAAbqzF,EAAArzF,EAAK/mC,aAALo6H,IAAaA,OAAbA,EAAAA,EAAAr6H,KAAAgnC,EAAa,EAAGz+B,EAAMijG,mBAGjC5jE,CACT,IAEM6yF,EAAev6G,EAAAA,UAAS,WACrB,OAAAmqB,QAAQ9hC,EAAMsmB,YAAcoK,EAAav3B,MAAMmtB,YAAczpB,EAAWmD,EAAMogC,QACvF,IAEM+xF,EAAiBx6G,EAAAA,UAAS,WACvB,OAAAmqB,SAAS9hC,EAAMsmB,YAAcoK,EAAav3B,MAAMmtB,aAAezpB,EAAWmD,EAAM2qH,UACzF,IAGMqH,EAAY,SAAC/2H,EAAeqvC,GAAuC,IAAA8nF,EACvEv6D,EACGvtB,GAEK,CAAC,EAHD9vC,EAAGq9D,EAAHr9D,EAAG63H,EAAAx6D,EAAAtT,QAAAA,OAAU,IAAV8tE,EAAU,aAAaA,EAKlC73H,GAAKA,EAAE24E,kBAED,IAAA61C,EAAct4G,GAAUqhF,EAAW54F,OACnCA,EAAQ6vH,EAAY/tH,GAEd+tH,EAAArkH,OAAO1J,EAAO,GAEV,UAAZspD,GACYytC,EAAAg3B,EAAa,CAAEY,gBAAiBC,EAAmBb,GAAczkE,QAAAA,EAAS/pD,EAAAA,IAGzE,QAAjBwF,EAAAA,EAAM+9E,gBAAW,IAAAq0C,GAAjBpyH,EAAAA,KAAAA,EAAiB,CACf7G,MAAOA,EACPuL,KAAMujH,EAAW9uH,MAAMsL,IAAItL,GAC3BqB,EAAAA,KAIEkvH,EAAe,WAAM,IAAA4I,EACpBhD,EAAgBn2H,gBACrB6G,EAAAA,EAAM0qH,gBAAW,IAAA4H,GAAjBtyH,EAAAA,KAAAA,EAAiBsvH,EAAgBn2H,OAE5B+mH,EAAkB/mH,OAAOioH,EAAc,MAGxCmM,EAAkB51G,EAAAA,UAAS,WAAA,IAAA0sG,EAAA,OAA4BA,QAA5BA,EAAMhB,EAAelqH,aAAfkrH,IAAsBA,OAAtBA,EAAAA,EAAsBzzC,SAAStC,gBAMhEikD,EAAe56G,EAAAA,UAAS,WAAA,OAC5Bg5G,EAAYx3H,MAAMinC,QAAO,SAACnB,GACxB,OACGA,EAAKjN,YAEJiN,EAAK,cAAsC,KAAtBA,EAAK,gBAC3BA,EAAK8lF,UACNgM,EAAc9xF,EAElB,GAAC,IAGG4qF,EAAqB,WAAiE,IAAhEb,EAA2CjqH,UAAAvI,OAAAuI,QAAAlG,IAAAkG,UAAAlG,GAAAkG,UAAAgzF,GAAAA,EAAW54F,MAChF,OAAOw3H,EAAYx3H,MAAMinC,QAAO,SAAC+zC,GAC/B,IAAIA,EAAO4wC,SACX,OAAIhtH,EAAQixH,GAAqBA,EAAYxxG,SAAS28D,EAAOh7E,OACtD6vH,IAAgB70C,EAAOh7E,KAChC,KAWIkuH,EAAmB,SAACh1F,GACxB,GAAKryB,EAAMkjG,SAAX,CACA,IAAQ/pG,EAAU+D,EAAK/D,MAAfA,MAEFq5H,EAAezgC,EAAW54F,MAAMinC,QAAO,SAACjnC,GACrC,OAAAw3H,EAAYx3H,MAAMk3D,MAAK,SAACpxB,UAASA,EAAK9lC,QAAUA,GAAS8lC,EAAKjN,WACvE,IAEMsqD,EAAei2C,EAAap5H,MAAM6L,KAAI,SAACmvE,GAAA,OAAWA,EAAOh7E,SACzDs5H,EACgB,WAApBzyH,EAAMyqH,UACD8E,EAASp2H,MAA6B6L,KAAI,SAACkZ,GAAA,OAAMzZ,GAAIyZ,EAAG/kB,MACzDo2H,EAASp2H,MAETqN,EACF1O,EADWu6B,EACH,IAAAllB,IAAA,GAAAikB,OAAAt5B,EAAS26H,GAAA36H,EAA6CwkF,GAAAxkF,EAAiB06H,KAC3EA,GACMxgC,EAAAxrF,EAAQ,CAAEojH,gBAAiBC,EAAmBrjH,GAAS+9C,QAASlyB,EAAU,QAAU,SAhB7E,GAoBjB2zF,EAAaruG,EAAAA,UAAkB,WACnC,OAA8B,IAA1BwvG,GAAgBhuH,OACbguH,GAAgBhuH,QAAUo5H,EAAap5H,MAAM3C,MACtD,IAEAk8H,EC9OG,SAA4BnwF,GAgBR,IAfzBqsF,EAAArsF,EAAAqsF,eACA+B,EAAApuF,EAAAouF,YACAzQ,EAAA39E,EAAA29E,kBACAsR,EAAAjvF,EAAAivF,qBACA/B,EAAAltF,EAAAktF,eACAyC,EAAA3vF,EAAA2vF,aACAC,EAAA5vF,EAAA4vF,eACAtI,EAAAtnF,EAAAsnF,mBACA73B,EAAAzvD,EAAAyvD,cACAq1B,EAAA9kF,EAAA8kF,iBACAt1B,EAAAxvD,EAAAwvD,WACAw7B,EAAAhrF,EAAAgrF,gBACArqB,EAAA3gE,EAAA2gE,SACA5iG,EAAAiiC,EAAAjiC,IACA0lH,EAAAzjF,EAAAyjF,WAEMqD,EAAan5F,EAAAA,KAAM,GACnByiG,EAAkBziG,MAAI,IACtB0iG,EAAyB1iG,MAAI,IAC7BxL,EAAcyM,KA8Gb,OAvBDuQ,QAAAw+E,GAAmB,SAAC/mH,GACpBA,IAEFkwH,EAAWlwH,OAAQ,EACnBy5H,EAAuBz5H,MAAQ,GAC/Bw5H,EAAgBx5H,MAAQ,GAE5B,IAGMuoC,QAAA2nF,GAAY,SAACpuH,GAAU,IAAA43H,EAKrBr5D,GAJ8B,QAA9Bq5D,EAAepD,EAAet2H,aAAA,IAAA05H,WAAAA,EAAfA,EAAsBpnC,gBAAU,IAAAonC,GAElDA,QAFkDA,EAAhCA,EAAgC/3F,cAAA1J,IAAAA,OAC/C1M,EAAYvrB,MAAA,0BADG05H,IAElBA,OAFkBA,EAAAA,EAElB38D,cAEiCj7D,EAEpCsyH,EAAgBp0H,MAAMsiC,SAAS,CAC7B6B,IAAKk8B,EACL+iD,SAAU,UAEd,IAEO,CACL8M,WAAAA,EACAyJ,cA/GoB,SAACt4H,GAAqB,IAAAu4H,EAAAC,EACpCC,EAAoBrE,EAAez1H,MAAM3C,OAC3C08H,EAAW7J,EAAWlwH,MAC1B,OAAQqB,EAAE6zE,MACH,IAAA,UACH7zE,EAAEwzE,kBAC2B,IAAzBq7C,EAAWlwH,MACF+5H,EAAA,EACmB,IAArB7J,EAAWlwH,OAAekwH,EAAWlwH,MAAQy1H,EAAez1H,MAAM3C,OAAS,EACpF08H,EAAWD,EAAoB,EAE/BC,IAEoB,QAAlBH,EAAApC,EAAYx3H,MAAM+5H,UAAA,IAAAH,GAAlBA,EAA6B/gG,UAC/BkhG,IAEF7J,EAAWlwH,MAAQ+5H,EACnB,MACG,IAAA,YACH14H,EAAEwzE,kBAEuB,IAArBq7C,EAAWlwH,OAAgBkwH,EAAWlwH,OAAS85H,EAAoB,EAC1DC,EAAA,EAEXA,IAEoB,QAAlBF,EAAArC,EAAYx3H,MAAM+5H,UAAA,IAAAF,GAAlBA,EAA6BhhG,UAC/BkhG,IAEF7J,EAAWlwH,MAAQ+5H,EACnB,MACG,IAAA,QACH,IAAyB,IAArB7J,EAAWlwH,MAAc,MAE7B,IAAIg6H,EACF1D,EAAet2H,MAAMyvH,WAAasJ,EAAa/4H,OAASy5H,EAAuBz5H,MAAM3C,OACjFo8H,EAAuBz5H,MACvBg5H,EAAeh5H,MACfw3H,EAAYx3H,MACZw5H,EAAgBx5H,MAGlB,GADCg6H,EAAa38H,SAAQ28H,EAAexC,EAAYx3H,QAChD+mH,EAAkB/mH,MAAO,CACPq4H,GAAA,EAAM,CAAEh3H,EAAAA,IAC7B,KACF,CAEA,GAAK0oG,EASE,CAAA,IAAAkwB,EACL,IAAyB,IAArB/J,EAAWlwH,MAAc,OAEzB,GAAAg6H,EAAa9J,EAAWlwH,OAAO4rH,SAEjC,YADiBsC,GAACrB,EAAW7sH,OAIzB,IAAAgvH,EAA8CiL,QAA9CA,EAAcD,EAAa9J,EAAWlwH,cAAxBi6H,IAAgCA,OAAhCA,EAAAA,EAAgCj6H,MAEpD,IAAKgvH,EAAa,OAClB,IAAMhoH,EAAW+nH,GAAoBn2B,EAAW54F,MAAOgvH,GAEvD,GAAI7nH,EAAM,GAAKH,EAAShH,MAAM3C,OAAS8J,EAAK,OACtC,IAAAspH,EAAkBC,EAAmB1pH,EAAShH,OACpD64F,EAAc7xF,EAAShH,MAAO,CAC5Bg7E,OAAQy1C,EAAgBv5D,MAAK,SAACnyC,GAAM,OAAAA,EAAE/kB,OAASgvH,KAC/CyB,gBAAAA,EACArlE,QAASpkD,EAASkoH,QAAU,QAAU,UACtC7tH,EAAAA,IAEFm4H,EAAgBx5H,MAAQ,EAC1B,KA/Be,CACb,IAAMywH,EAAkBC,EAAmBsJ,EAAa9J,EAAWlwH,OAAOA,OAC5D64F,EAAAmhC,EAAa9J,EAAWlwH,OAAOA,MAAO,CAClDg7E,OAAQy1C,eAAAA,EAAkB,GAC1BA,gBAAiBC,EAAmBsJ,EAAa9J,EAAWlwH,OAAOA,OACnEorD,QAAS,QACT/pD,EAAAA,IAEmBg3H,GAAA,EAAO,CAAEh3H,EAAAA,GAChC,CAuBA,MACG,IAAA,SACkBg3H,GAAA,EAAO,CAAEh3H,EAAAA,MA+BlCo4H,uBAAAA,EACAD,gBAAAA,EAEJ,CDsGmFU,CAAmB,CAChGzE,eAAAA,EACA+B,YAAAA,EACAzQ,kBAAAA,EACAsR,qBAAAA,EACA/B,eAAAA,EACAyC,aAAAA,EACAC,eAAAA,EACAtI,mBAAAA,EACA73B,cAAAA,EACAq1B,iBAAAA,EACArB,WAAAA,EACAj0B,WAAAA,EACAw7B,gBAAAA,EACArqB,SAAUljG,EAAMkjG,SAChB5iG,IAAKN,EAAMM,MAfL+oH,GAAYqJ,EAAZrJ,WAAYuJ,GAAAF,EAAAE,uBAAwBE,GAAeJ,EAAfI,cAAeH,GAAAD,EAAAC,gBAmBrDxL,GAAkBxvG,EAAAA,UAAiB,WACvC,IAAMnR,EAAS+rH,EAAap5H,MAAM6L,KAAI,SAACi6B,GAAA,OAASA,EAAK9lC,SAErD,OADUmf,GAAay5E,EAAW54F,MAAOqN,GAChChQ,MACX,IAGMi8B,GAAgB9a,EAAAA,UAAkB,WAAA,OAAOquG,EAAW7sH,OAAmC,IAA1BguH,GAAgBhuH,SAE7Em6H,GAAiB37G,EAAAA,UAAS,WAAA,MAAO,CACrCrX,IAAKN,EAAMM,IACX4iG,SAAUljG,EAAMkjG,SAChBmmB,WAAYA,GAAWlwH,MACvB6vH,YAAaj3B,EAAW54F,MACxBiqG,eAAgBpjG,EAAMojG,eACtBumB,kBAAmB33B,EACnBuhC,mBAAoBnS,EACpB0I,yBAA0B0H,EAC1B9H,aAAAA,EACAnlH,KAAMvE,EAAMuE,KACZgpH,gBAAAA,EACA96F,cAAeA,GAAct5B,MAC7B6sH,WAAYA,EAAW7sH,MACvBkuH,iBAAAA,EACAwC,mBAAAA,EACA+E,eAAgBA,EAAez1H,MAC/B4wH,SAAUyJ,GACV,IAEFtiG,UAAQo3F,GAAiBgL,IAEzB,IAAMG,GAAoB,YAEnBzzH,EAAMkjG,UAAYnrG,EAAQw3H,EAASp2H,QACtCq2H,OAAY,EAAW,CAAE5F,gBAAiB,GAAIrlE,QAAS,YAErDvkD,EAAMkjG,WAAanrG,EAAQw3H,EAASp2H,QAC1Bq2H,EAAA,GAAI,CAAE5F,gBAAiB,GAAIrlE,QAAS,aAI9CmvE,GAAe1+G,IAAS,SAAC7b,EAAegrC,GAAgC,IAAAwvF,EAA9Bn5H,IAAAA,UAC9CwF,EAAAA,EAAM2qH,gBAAW,IAAAgJ,GAAjB3zH,EAAAA,KAAAA,YAAoB7G,GAAS,CAAEqB,EAAAA,MAC9B,KAEG+4H,GAAqB,SAACp6H,EAAemxC,GACrCnxC,IACD+mH,EAAkB/mH,OAASq4H,GAAqB,EAAM,CAAEh3H,EAAG8vC,EAAQ9vC,IAEtE4mH,EAAcjoH,GACdu6H,GAAAtiG,GAAAA,OAAgBj4B,GAAS,CAAEqB,EAAG8vC,EAAQ9vC,IACtCg7B,EAAAA,UAAS,WAAM,IAAAq9F,EAAAe,EACUhB,GAAAz5H,MAA8B05H,QAA9BA,EAAQpD,EAAet2H,aAAf05H,IAAsBA,OAAtBA,EAAAA,EAAsBjH,YACrC+G,GAAAx5H,MAA8By6H,QAA9BA,EAAQnE,EAAet2H,aAAfy6H,IAAsBA,OAAtBA,EAAAA,EAAsBhF,cAChD,KAGI4E,GAAuB,SAACh5H,GAAkC,IAAA+kH,EAC/C,QAAfv/G,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAe,CAAExF,EAAAA,EAAGrB,MAAO44F,EAAW54F,SAGlC06H,GAA4B,SAACthG,EAAkB+X,GACnDknF,EAAqBj/F,EAAS+X,GAE1B/X,GAA+B,0BAApB+X,EAAQia,SAAqC68D,EAAc,KAGtE0S,GAAA,WAAA,IAAAC,EAAA/4E,GAAAG,GAAAmC,MAA6D,SAAA+C,EAAO/V,GAAY,IAAA0pF,EAAAC,EAAA9rD,EAAA,OAAAhtB,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,KAC5EgrD,EAAenoE,EAAfmoE,YACJnoE,EAAM8xB,QAAS,CAAAwuB,EAAAnjC,KAAA,EAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,UAAA,KAAA,EAInB2rB,iBAAA6rD,EAAA7rD,EAAa,qCAAb6rD,EAAAv8H,KAAA0wE,EAAsC79B,GACtC69B,iBAAA8rD,EAAA9rD,EAAYa,+BAAZirD,EAAAx8H,KAAA0wE,EAA+B79B,GAAO,KAAA,EAAA,IAAA,MAAA,OAAAgW,EAAAzC,OAAA,GAAAwC,EACxC,KAAA,OARMyzE,SAAApqE,GAAA,OAAAqqE,EAAA/0H,MAAA6B,KAAA9B,UAAA,EAAA,GA4BN2iC,QACE6tF,GACA,SAAC9wF,GACmBg1F,KAClBj+F,EAAAA,UAAS,YAtBI,SAACiJ,GAChB,GAAIz+B,EAAMkjG,SAAU,CAClB,IACiDpjB,EAD3Co0C,EAAW,GAACn0C,EAAAC,GACEvhD,GAAyB,IAAI,IAAtC,IAAAshD,EAAAxiE,MAAAuiE,EAAAC,EAAA1oF,KAAA+lB,MAAsC,CAAA,IAAtC6hB,EAAA6gD,EAAA3mF,MACHg7E,EAAS8zC,EAAW9uH,MAAMsL,IAAIw6B,GAChCk1C,GACF+/C,EAAS9wH,KAAK+wE,EAElB,CAAA,CAAA,MAAAl5B,GAAA8kC,EAAAvlF,EAAAygD,EAAA,CAAA,QAAA8kC,EAAA7iE,GAAA,CACA4yG,EAAa32H,MAAQxC,MAAMK,KAAK,IAAImW,IAAI,GAAAikB,OAAI8iG,EAAAp8H,EAAag4H,EAAa32H,SACxE,KAAO,CACL,IAAMg7E,EAAS8zC,EAAW9uH,MAAMsL,IAAIg6B,GAChC01C,IACW27C,EAAA32H,MAAQxC,MAAMK,KAAS,IAAAmW,IAAA,CAAKgnE,GAAA/iD,OAAAt5B,EAAWg4H,EAAa32H,UAErE,EAQIg7H,CAAS11F,EACX,GACF,GACA,CACEusB,WAAW,IAGftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAMkjG,QAAA,IACZ,WACoBuwB,IACpB,IA6BF,OADAviG,UAAQ,mBAxBgB,SAACjI,GAA4B,IAAAmrG,EAC/C,GAAC3E,EAAet2H,MAAhB,CAGE,IAAAk7H,EAAoD,QAApDD,EAAqC3E,EAAet2H,aAAA,IAAAi7H,GAAoC,QAApCA,EAAfA,EAAsB3oC,gBAA6B,IAAA2oC,OAAA,EAAnDA,EAAmDt5F,cAAA,IAAA1J,OACxF1M,EAAYvrB,MAAA,iBAGlBq8B,EAAAA,UAAS,WACP,GAAI6+F,GAAqBprG,EAAS,CAChC,IAAQ+gE,EAAkBh0D,iBAAiBq+F,GAAnCrqC,cACAm7B,EAAiBnvF,iBAAiB/M,GAAlCk8F,aACFmP,EAAsBn4H,SAAS6tF,EAAe,IAAM7tF,SAASgpH,EAAc,IAE3EoP,EACJF,EAAkB31E,UAClBz1B,EAAQy1B,WACPz1B,EAAQitC,aAAem+D,EAAkBn+D,cAC1Co+D,EAEFrrG,EAAQ8S,UAAYw4F,CACtB,CACF,GAnBA,KAsBK,WACL,IAAAC,EAAiDx0H,EAAMmoE,YAAc,CAAC,EAA9DG,EAAqBksD,EAArBlsD,iBAAqBmsD,EAAA3hG,GAAA0hG,EAAA3gG,IAC7B,OAAA+C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,WAAA,CAAAy9B,EAAAA,YAAAiuF,GAAAtgF,aAAA,CAGxBypD,UAAWhuF,EAAMguF,UACjBO,SAAU4R,EAAWhnG,MACrB+0F,WAAYluF,EAAMkuF,WAClBgV,SAAUljG,EAAMkjG,SAChB/U,UAAWnuF,EAAMmuF,UACjBr8D,QAAS9xB,EAAM8xB,QACfu8B,OAAQruD,EAAMquD,OACdsgC,KAAM9uD,EAAe,QACrBojE,gBAAiBjjG,EAAMijG,gBACvBhV,UAAWjuF,EAAMiuF,UACjBl2D,OAAQ/3B,EAAM+3B,OACd6pF,oBAAqB5hH,EAAM4hH,qBAAA,CAAA1xF,IAExBmzF,EACLxsF,MAAOmU,EAAe7xC,MAAAA,MACfu4H,EAAYv4H,MACnB64B,SAAUmZ,EAAWhyC,MAAAouF,aACP24B,EAAkB/mH,MAAAm4F,WACpB4uB,EAAkB/mH,MAAQm2H,EAAgBn2H,MAAQ,GAAA4uB,YAAA,GAAAqJ,OAC9CqgG,EAAgBt4H,OAChC2pG,WAAYovB,EAAa/4H,MAAA,kBACR6G,EAAM+iG,iCAErBx+F,KAAMvE,EAAMuE,KACZ0pF,UAAWjuF,EAAMiuF,WACbjuF,EAAM44F,YAAA,GAAA,CACV87B,UAAW5B,KAAAzvB,cAAA7sE,GAAA,CAGXjyB,KAAMvE,EAAMuE,MACRvE,EAAMqjG,eAAAK,YAEC,SAACjlE,EAAK2oB,GACP4qE,EAAA5qE,EAAInsD,MAAOmsD,mBAEPpnD,EAAMsjG,UAAAn7B,WAAA3xC,GAAAA,GAAA,CAEpB8xC,iBAAkB,IAAAl3C,OAAI4Z,EAAe7xC,oBAAmBmvE,IACrDmsD,GAAA,GAAA,CACHzrD,iBAAkB8qD,KAAAr6E,MAEbz5C,EAAMy5C,MACbnJ,WAAYtwC,EAAMswC,WAAAvY,OACV/3B,EAAM+3B,OACdwY,WAAY,WACNvwC,OAAAA,EAAMuwC,YAAcpQ,EAAMoQ,WACrB1Q,EAAe,cAItB7/B,EAAM2oE,WACJ/xC,EAAAO,YAAA6vD,GAAA,CAAA1e,iBAAA,GAAAl3C,OACuB4Z,EAAe7xC,MAAA,gBAAAglF,SAC1B+hC,EAAkB/mH,OAC9B,KAIN,EAAAoqG,aAAc,WAAA,OACZ1jE,EAAe,eAAgB,CAC7BR,OAAQwyF,EAAmB14H,OAG/B,EAAAsqG,qBAAsBowB,GACtBrwB,cAAe+vB,WACN,SAAAoB,GAAW,IAAAzV,EAAR1kH,EAAAm6H,EAAAn6H,EACVw3F,EAAchyF,EAAMkjG,SAAW,QAAK,EAAW,CAC7C/uB,OAAQ,KACRy1C,gBAAiBC,EAAmB7pH,EAAMkjG,SAAW,QAAK,GAC1D3+C,QAAS,QACT/pD,EAAAA,IAEI,QAANwF,EAAAA,EAAM6uF,eAAA,IAAAqwB,GAANl/G,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,aAEX,SAAC82F,EAAYsjC,GAAU,IAARp6H,IAAAA,EAEtByb,YAAW,WAAM,IAAA4+G,EACC,QAAhB70H,EAAAA,EAAMuqF,eAAU,IAAAsqC,GAAhB70H,EAAAA,KAAAA,EAAgB,CAAEsxF,cAAYlgE,OAAGk+F,EAAgBn2H,OAASqB,EAAAA,EAAGrB,MAAO44F,EAAW54F,QAClEuwH,MACZ,WAEG,SAACp4B,EAAYwjC,GAAU,IAAAC,EAARv6H,IAAAA,EACN,QAAfwF,EAAAA,EAAM4uF,cAAS,IAAAmmC,GAAf/0H,EAAAA,KAAAA,EAAe,CAAExF,EAAAA,EAAGrB,MAAO44F,EAAW54F,iBAE/B,SAACm4F,EAAY0jC,GAAU,IAAA3V,EAAR7kH,IAAAA,EACN,QAAhBwF,EAAAA,EAAMgvF,eAAU,IAAAqwB,GAAhBr/G,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,EAAGrB,MAAO44F,EAAW54F,OACzC,GACK6G,EAAMwqH,kBACF,CACP/wE,MAAOtZ,EAAMsZ,MACbnJ,WAAYnQ,EAAMmQ,WAClBvY,OAAQoI,EAAMpI,OACd8lD,MAAO,qDAEE4xC,GACDwF,GAAOj1H,EAAO,CAChB,OACA,WACA,QACA,UACA,cACA,aACA,YACA,kBACA,qBACA,SACA,WAEF,CAAAsxF,WAAYg+B,EAAgBn2H,QACnBgnC,EACX,EAEF4iE,eAAgB5iE,EAAM4iE,mBAMlC,IExhBWmyB,GAASvuF,GAAY0oF,IACrBJ,GAAStoF,GAAY4hF,IACrBwG,GAAcpoF,GAAYyjF,ICNxB+K,GAAA,CAEbC,OAAQ,CACNt5H,KAAM,CAAC/C,OAAQe,WAGjBu7H,QAAS,CACPv5H,KAAM,CAAC/C,OAAQe,YCRnBw7H,GAAelgG,kBAAgB,CAC7Bx9B,KAAM,kBACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP6K,EAAiB7Z,GAAe,mBAChC0O,EAAiBU,KAEjBg1F,EAAc,SAAC93G,EAAQ3hB,EAAc05H,GACrC,IAAAC,EACEC,EAAgBt9G,GAASo9G,IAAUp8G,GAASo8G,GAClD,OAAKr1F,EAAMrkC,KAASsc,GAASo9G,IAAWA,GAGxBC,EAFZt1F,EAAMrkC,GACyB,IAA7BqkC,EAAMrkC,GAAM,MAAMtF,QAAyD,iBAAlC2pC,EAAMrkC,GAAM,MAAM,GAAGojC,SACpDtI,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAgB4Z,EAAe7xC,kBAAgBgnC,EAAMrkC,GAAM,QAE3DqkC,EAAMrkC,GAAM,MAEjBe,EAAW24H,GACRA,EAAM/3G,GAENi4G,EAAA9+F,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACM4Z,EAAe7xC,MAAA,WAAgBq8H,CAAAA,IAE9CA,GAGE5+F,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAA4B4Z,EAAe7xC,MAAUi4B,MAAAA,OAAAt1B,IAAS25H,CAAAA,IAAoBA,EAhBnC,MAkBxD,OAAO,WACL,IAAMJ,EAAUE,EAAY93G,EAAAA,EAAG,UAAWzd,EAAMq1H,SAC1CD,EAASG,EAAY93G,EAAAA,EAAG,SAAUzd,EAAMo1H,QACxCO,EAA4B91F,EAAe,YAAc,CAAC,MAC1DzF,EAAY,CAChB4Q,EAAe7xC,MAAAF,EAAAA,EAAA,GAAA,GAAAm4B,OAET4Z,EAAe7xC,MAAmBk8H,aAAAA,GAAAjkG,GAAAA,OAClC4Z,EAAe7xC,MAAkBi8H,YAAAA,IAIrC,OAACC,GAAYD,EAKfx+F,EAAAA,YAAA,MAAA,CAAAC,MAAYuD,GAAA,CACTi7F,EACAM,EAAY,GACZP,IAPIO,EAAY,GAWzB,ICpDWC,GAAiBjvF,GAAY2uF,ICA3BO,GAAA,CAEbj8G,QAAS,CACP9d,KAAM9C,OACNmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM9C,OACNmqB,aAAS,GAGX2yG,eAAgB,CACdh6H,KAAM9C,OACNmqB,QAAS,GAGX6O,SAAU8P,QAEVi0F,iBAAkB,CAChBj6H,KAAM9C,OACNmqB,QAAS,GAGX6yG,WAAY,CACVl6H,KAAM9C,OACNmqB,QAAS,IAGX8yG,iBAAkB,CAChBn6H,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,MAAO,aAAajnB,SAASinB,EACvC,GAGFy3F,SAAU,CACRp6H,KAAM9C,OACNmqB,aAAS,GAGXgzG,gBAAiB,CACfr6H,KAAM9C,OACNmqB,QAAS,IAGXizG,gBAAiB,CACft6H,KAAMnF,MACNwsB,QAAS,iBAA4C,CAAC,EAAG,GAAI,GAAI,GAAE,GAGrEkzG,YAAa,CACXv6H,KAAMxE,QAGRg/H,wBAAyBx0F,QAEzBy0F,WAAYz0F,QAEZ00F,eAAgB,CACd16H,KAAMgmC,QACN3e,SAAS,GAGXszG,aAAc,CACZ36H,KAAMgmC,QACN3e,SAAS,GAGXuzG,uBAAwB,CACtB56H,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAUjnB,SAASinB,EACtC,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAUjnB,SAASinB,EACxC,GAGF7W,MAAO,CACL9rB,KAAM9C,OACNmqB,QAAS,GAGXwzG,aAAc,CACZ76H,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXmlC,SAAUxuD,SAEV88H,gBAAiB98H,SAEjB+8H,iBAAkB/8H,+BCvFpBg9H,GAAe1hG,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GAEAq1B,MAAAA,SAAMr1B,GACE,IAAE2wC,EAASpgB,EAAAA,qBAATogB,KAERo7B,EAA0C7nC,SAAOlkC,GAAzCglE,EAAY+G,EAAZ/G,WAAYkxD,EAAAnqD,EAAAmqD,SAAUt8G,EAAQmyD,EAARnyD,QACxBimB,EAAiBU,KAOvByrC,EAAArvD,GANwCooD,GACtCnrD,EACAorD,EACAhlE,EAAM81H,eACN91H,EAAM42H,gBACN,WACF,GANOG,EAAc/qD,EAAA,GAAAgrD,EAAehrD,EAAA,GAapCkR,EAAAvgE,GAL0C2nD,GACxC4xD,EACAl2H,EAAMm2H,gBACNn2H,EAAM62H,iBACN,YACF,GALOI,EAAe/5C,EAAA,GAAAg6C,EAAgBh6C,EAAA,GAOtC3N,EAA4Bp/C,GAAU,cAA9BpT,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aACLsa,EAAiB7Z,GAAe,cAChCq8B,EAQFpB,GAAc,CAChB+qE,cAAeC,GACfC,aAAcC,GACd/2C,gBAAiBC,GACjB/M,iBAAkBC,GAClB6jD,sBAAuBC,GACvBC,uBAAwBC,GACxB/jD,aAAcC,KAddujD,EAAA3pE,EAAA2pE,cACAE,EAAA7pE,EAAA6pE,aACA92C,EAAA/yB,EAAA+yB,gBACA9M,EAAAjmB,EAAAimB,iBACA8jD,EAAA/pE,EAAA+pE,sBACAE,EAAAjqE,EAAAiqE,uBACA9jD,EAAAnmB,EAAAmmB,aAWIgkD,ECpEH,SACL33H,EACA+2H,EACAE,EACAr/H,GAEA,IAAAqzC,EAAyB5Z,KAAjBC,EAAA2Z,EAAA3Z,KAAMO,EAAOoZ,EAAPpZ,OAER+lG,EAAYjgH,EAAAA,UAAS,WACzB,IAAM6F,EAAYnd,KAAKqL,KAAK1L,EAAM4nB,MAAQqvG,EAAc99H,OACjD,OAAAqkB,EAAI,EAAIA,EAAI,CACrB,IAEMq6G,EAAkBlgH,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAClCx5B,EAAKuB,OACRm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAAAA,EAEd44B,CAAAA,EAAAA,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,UAAA,GAAAZ,OAC3Bx5B,EAAKuB,MAAa+6B,OAAAA,KAAiB,IAEzB,WAAhBl0B,EAAMmuB,MAAqB,GAAAiD,OAAGx5B,EAAKuB,MAAkB,YAAA,OAGjD2+H,EAAangH,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAIx5B,EAAKuB,MAAe,eAEpD4+H,EAAapgH,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAIx5B,EAAKuB,MAAgB,gBAErD6+H,EAAcrgH,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC9Bx5B,EAAKuB,MAAAi4B,SAAAA,GAAAA,OACLx5B,EAAKuB,oBAAAF,EAAA,CAAA,EAEL44B,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,UAAmC,IAAvB+kG,EAAa59H,WAItD8+H,EAAetgH,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC/Bx5B,EAAKuB,MAAA,SAAA,GAAAi4B,OACLx5B,EAAKuB,MAAA,cAAAF,EAEL44B,GAAAA,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,UAAY+kG,EAAa59H,QAAUy+H,EAAUz+H,WAI1E++H,EAAevgH,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAIx5B,EAAKuB,MAAe,eAEtDg/H,EAAexgH,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAC/Bx5B,EAAKuB,MAAAi4B,YAAAA,GAAAA,OACLx5B,EAAKuB,wBAAAF,EAAA,CAAA,EAEL44B,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,cAI7BomG,EAAczgH,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAIx5B,EAAKuB,MAAc,cAEpDk/H,EAAmB1gH,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAIx5B,EAAKuB,MAAe,eAE1Dm/H,EAAc3gH,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAIx5B,EAAKuB,MAAgB,gBAUrD,MAAA,CACLy+H,UAAAA,EACAC,gBAAAA,EACAC,WAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,YAAAA,EACAC,iBAAAA,EACAC,YAAAA,EACAC,eApBqB,SAACt9H,GAAkB,MAAA,CAAAm2B,GAAAA,OACrCx5B,EAAKuB,MAAA,YAAAF,EAAAA,EAAA,CAAA,EAEL44B,EAAO14B,MAAM64B,SAAWhyB,EAAMgyB,UAC9BH,EAAO14B,MAAMygB,QAAUm9G,EAAa59H,QAAU8B,GAEnD,EAgBF,CDbwCu9H,CAAqBx4H,EAAO+2H,EAAcE,EAAejsF,GAArF4sF,IAAAA,UAAca,EAAU3lG,GAAA6kG,EAAA9jG,IAEhC6kG,EExEY,SAAc14H,EAA0B43H,EAAwBb,GACxE,IAAA4B,EAAWzoG,OAAI,GAEf0oG,EAAW1oG,OAAI,GAEf2oG,EAAmBlhH,EAAAA,UAAS,WAAA,OAAMtX,KAAKqL,MAAM1L,EAAM+1H,iBAAmB,GAAK,MAE3E+C,EAAoBnhH,EAAAA,UAAS,WAAA,OAAMtX,KAAKoa,OAAOza,EAAM+1H,iBAAmB,GAAK,MAE7EgD,EAAiBphH,EAAAA,UAAS,WAAA,OAAM,EAAIkhH,EAAiB1/H,MAAQ49H,EAAa59H,SAE1E6/H,EAAiBrhH,EAAAA,UAAS,WAAA,OAAMigH,EAAUz+H,MAAQ,EAAI2/H,EAAkB3/H,MAAQ49H,EAAa59H,SAE5F,MAAA,CACLw/H,SAAAA,EACAC,SAAAA,EACAC,iBAAAA,EACAC,kBAAAA,EACAC,eAAAA,EACAC,eAAAA,EAEJ,CFmDwGC,CAClGj5H,EACA43H,EACAb,GAHM4B,EAAUD,EAAVC,SAAUI,EAAAL,EAAAK,eAAgBF,IAAAA,iBAAkBD,EAAUF,EAAVE,SAAUI,EAAAN,EAAAM,eAAgBF,IAAAA,kBAMxEI,EAAYhpG,EAAAA,IAAI6mG,EAAa59H,OAE7BggI,EAAWxhH,EAAAA,UAAS,WAAA,OAAMigH,EAAUz+H,MAAQ6G,EAAMg2H,cAElDoD,EAAczhH,EAAAA,UAAkD,WAU7D,OATiB3X,EAAMo2H,gBACEpxH,KAAI,SAACmvE,GAAA,OACnCt4E,EAASs4E,GACLA,EACA,CACE16B,MAAO18B,EAAE2T,EAAav3B,MAAMsuB,aAAc,CAAEljB,KAAM4vE,IAClDh7E,MAAOH,OAAOm7E,GAChB,IAESpgD,MAAK,SAAC9W,EAAGkC,UAAMlC,EAAE9jB,MAAQgmB,EAAEhmB,QAC5C,IAEMkgI,EAAgB1hH,EAAAA,UAAS,WAC7B,MAAkC,QAA3B3X,EAAMi2H,gBACf,IAEMqD,EAAQ3hH,EAAAA,UAAS,WACrB,IACInX,EACA+G,EAFExM,EAAQ,GAId,GAAIo+H,EAAShgI,MACP,GAAA4/H,EAAe5/H,OAAS6/H,EAAe7/H,MACjCqH,EAAAu2H,EAAa59H,MAAQ0/H,EAAiB1/H,MACxCoO,EAAAwvH,EAAa59H,MAAQ2/H,EAAkB3/H,UACxC,CACC,IAAAogI,EAAcF,EAAclgI,MAAQ,EAAI,EACxCqgI,EAAYH,EAAclgI,MAAQy+H,EAAUz+H,MAAQ,EAAIy+H,EAAUz+H,MAG9DqH,EAFNu4H,EAAe5/H,MAETkH,KAAK0U,IAAIgiH,EAAa59H,MAAQ,EAAGy+H,EAAUz+H,MAAQ6G,EAAM+1H,iBAAmB,GAE5EwD,EAKRhyH,EAFEyxH,EAAe7/H,MAEXkH,KAAKC,IAAIy2H,EAAa59H,MAAQ,EAAG6G,EAAM+1H,kBAEvCyD,CAEV,MAEQh5H,EAAA,EACR+G,EAAMqwH,EAAUz+H,MAGlB,IAAA,IAAS1C,EAAI+J,EAAO/J,GAAK8Q,EAAK9Q,IAC5BsE,EAAMqI,KAAK3M,GAEN,OAAAsE,CACT,IAGA2mC,EAAAA,OACE,WAAA,OAAMk2F,EAAUz+H,KAAA,IAChB,WACM49H,EAAa59H,MAAQy+H,EAAUz+H,QAAO49H,EAAa59H,MAAQ,EACjE,IAEFuoC,EAAAA,OACE,WAAA,OAAMq1F,EAAa59H,KAAA,IACnB,SAACslC,GAAS,OAAAy6F,EAAU//H,MAAQslC,CAAA,IAGxB,IAAAg7F,EAA2D,SAACC,EAAWC,GAC3E,IAAI35H,EAAMgyB,SAAV,CAGA,IAAIpY,EAAU8/G,EAMV,GALAA,EAnIE,EAoIJ9/G,EApII,EAqIK8/G,EAAY9B,EAAUz+H,QAC/BygB,EAAUg+G,EAAUz+H,OAElB49H,EAAa59H,QAAUygB,EAAS,CAClC,IAMc4vC,EANR5L,EAAOm5E,EAAa59H,MAM1B,GALAwgI,EAAWA,GAAY,CACrB//G,QAAAA,EACAiC,SAAU+hC,EACVs4E,SAAUe,EAAc99H,OAGxB69H,EAAgBp9G,EAAS+/G,WACzB35H,EAAAA,EAAMsoD,gBAANtoD,OAAAA,EAAAA,KAAAA,EAAiB25H,QAGjBhpF,EAAK,oBAAqB/2B,EAE9B,CArBA,GAwBIggH,EAAmB,SAAC99H,IACF,CACpB+9H,SAAU,WAAA,OAAMJ,EAAO1C,EAAa59H,MAAQ,EAAC,EAC7C2gI,SAAU,WAAA,OAAML,EAAO1C,EAAa59H,MAAQ,EAAC,EAC7C4gI,aAAc,WAAd,OAAoBN,EAAOp5H,KAAKC,IAAI,EAAGy2H,EAAa59H,MAAQ6G,EAAM+1H,kBAAiB,EACnFiE,aAAc,WAAA,OAAMP,EAAOp5H,KAAK0U,IAAIgiH,EAAa59H,MAAQ6G,EAAM+1H,iBAAkB6B,EAAUz+H,MAAQ,GAAE,IAEzF2C,MAGVm+H,EAAwC,SAACz/H,GAC7C,IAAIwF,EAAMgyB,SAAV,CAGMkkG,IAAAA,EAAmB/5H,SAAS3B,EAAG,IACjCo9H,EAAY,EACZ1B,EAAW,IACb0B,EAAYv3H,KAAKC,IAAID,KAAKqL,KAAK1L,EAAM4nB,MAAQsuG,GAAW,IAG1D,IAAIgE,GAAgB,EAEhBnD,EAAa59H,MAAQy+H,IACPsC,GAAA,GAQlB,IAQOC,EARDR,EAAW,CACf//G,QAASsgH,EAAgBtC,EAAYb,EAAa59H,MAClD0iB,SAAUk7G,EAAa59H,MACvB+8H,SAAAA,GAGF,GADAgB,EAAiBhB,EAAUyD,GACvBO,EACFT,EAAO7B,EAAW+B,gBAElB35H,EAAAA,EAAMsoD,gBAANtoD,OAAAA,EAAAA,KAAAA,EAAiB25H,EA3BnB,GA+BIS,EAAiB,SAAC37F,GACtB,IGjMStlC,EHiMH+6E,EAAe7zE,KAAKg6H,OAAO57F,GG7L9BrlB,GAJMjgB,EHkMC+6E,IG9LY/6E,IAAUA,IH+LhC+/H,EAAU//H,MAAQ+6E,EAClBulD,EAAOvlD,KAGT,OAAO,WACL,IAAQtsD,EAAyD5nB,EAAzD4nB,MAAOwuG,EAAkDp2H,EAAlDo2H,gBAAiB7xH,EAAiCvE,EAAjCuE,KAAMytB,EAA2BhyB,EAA3BgyB,SAAUykG,EAAiBz2H,EAAjBy2H,aAChD,GAAImB,EAAUz+H,MAAQ,EAAU,OAAA,KAEhC,IAAMmhI,EACJ1jG,EAAAO,YAAA,MAAA,CAAAN,MAAY4hG,EAAUL,YAAYj/H,OAC/B4jB,CAAAA,EAAE2T,EAAav3B,MAAMuuB,QAAMkP,EAAAO,YAAAojG,GAAA,CAAAnF,OAAA,KAAAhkG,OACEwmG,EAAUz+H,kBAAS4jB,EAAE2T,EAAav3B,MAAMwuB,2DAE3D8wG,EAAUJ,iBAAiBl/H,iBACzB+/H,EAAU//H,MACnB,sBAAA,SAAAqhI,GAAA,OADStB,EAAU//H,MACnBqhI,CAAA,EAAA5rC,OAAQwrC,UACCA,EAAA95H,IACJs3H,EAAUz+H,UAzNjB,EA0NOoL,KACCA,EAAAytB,SACIA,EACV7D,MAAA,SAAApG,YAAA,IAAA,MAAA,MAOR,OAAA6O,EAAAA,YAAA,MAAA,CAAAC,MACc4hG,EAAUZ,gBAAgB1+H,OAAA,CAEnC0mC,EACC,eAAAjJ,EAAAA,YAAA,MAAA,CAAAC,MACY4hG,EAAUX,WAAW3+H,OAAQ,CAAA4jB,EAAE2T,EAAav3B,MAAMyuB,MAAO,CAAEA,MAAAA,OAGxE6uG,GAAgBL,EAAgB5/H,OAAS,GACxCogC,EAAAA,YAAAs+F,GAAA3wF,aAAA,CAAAhgC,KACQA,EAAApL,MACC89H,EAAAjlG,SACGA,EAAA6E,MACH4hG,EAAUV,WAAW5+H,MAC5B60F,WAAW,EACX1lC,SAAU2xE,UACDb,EAAYjgI,OACjB6G,EAAMq2H,aACZ,MAGDr2H,EAAMs2H,wBACL1/F,EAAAO,YAAA,MAAA,CAAAN,MAAY4hG,EAAUT,YAAY7+H,MAAAouC,QAAgB,WAAA,OAAMkyF,EAAO,EAAC,GAAA7iG,CAAAA,EAAAO,YAAAggG,EAG9D,KAAA,QAAA,KAEHn3H,EAAM02H,uBACL9/F,EAAAA,YAAA,MAAA,CAAAC,MAAY4hG,EAAUT,YAAY7+H,MAAAouC,QAAgB,WAAA,OAAMqyF,EAAiB,WAAU,GAAA,CAAAhjG,EAAAO,YAAAopD,EAGjF,KAAA,QAAA,KAEHvgF,EAAMw2H,gBAAkC,YAAhBx2H,EAAMmuB,gCAClBsqG,EAAUP,aAAa/+H,OAC/BggI,CAAAA,EAAShgI,OAASkgI,EAAclgI,OAC/By9B,EAAAO,YAAA,KAAA,CAAAN,MAAW4hG,EAAUF,eAAe,WAAa,WAAA,OAAMkB,EAxQ3D,EAwQqE,GAAA,CAxQrE,IA4QGN,EAAShgI,OAAS4/H,EAAe5/H,OAASkgI,EAAclgI,gCAE9Cs/H,EAAUN,aAAah/H,MAC9BouC,QAAS,WAAA,OAAMqyF,EAAiB,eAChC,EAAAa,YAAa,WAAA,OAAO9B,EAASx/H,OAAQ,CACrC,EAAAuhI,WAAY,WAAA,OAAO/B,EAASx/H,OAAQ,CAEnC,GAAAw/H,CAAAA,EAASx/H,MAAQy9B,EAAAO,YAAAogG,EAAA3gG,KAAAA,MAAAA,cAAA+8C,eAElB,KACH2lD,EAAMngI,MAAM6L,KAAI,SAACvO,oCACLgiI,EAAUF,eAAe9hI,GAAI+B,IAAK/B,UAAY,WAAA,OAAMgjI,EAAOhjI,EAAC,GAAA,CACpEA,GACH,IAED0iI,EAAShgI,OAAS6/H,EAAe7/H,OAASkgI,EAAclgI,gCAE9Cs/H,EAAUN,aAAah/H,MAC9BouC,QAAS,WAAA,OAAMqyF,EAAiB,eAChC,EAAAa,YAAa,WAAA,OAAO7B,EAASz/H,OAAQ,CACrC,EAAAuhI,WAAY,WAAA,OAAO9B,EAASz/H,OAAQ,CAEnC,GAAAy/H,CAAAA,EAASz/H,MAAQy9B,EAAAO,YAAAsgG,EAAA7gG,KAAAA,MAAAA,EAAAA,YAAA+8C,eAElB,KACHwlD,EAAShgI,OAASkgI,EAAclgI,MAAAy9B,EAAAO,YAAA,KAAA,CAAAN,MACpB4hG,EAAUF,eAAeX,EAAUz+H,OAAQouC,QAAS,WAAA,OAAMkyF,EAAO7B,EAAUz+H,MACnF,GAAAy+H,CAAAA,EAAUz+H,QAEX,OAEJ,KAEa,WAAhB6G,EAAMmuB,OAAsBmsG,EAE5Bt6H,EAAM02H,uBACL9/F,EAAAO,YAAA,MAAA,CAAAN,MAAY4hG,EAAUR,aAAa9+H,MAAAouC,QAAgB,WAAA,OAAMqyF,EAAiB,WAAU,GAAAhjG,CAAAA,EAAAO,YAAAs8C,EAGlF,KAAA,QAAA,KAEHzzE,EAAMs2H,wBACL1/F,EAAAA,YAAA,MAAA,CAAAC,MAAY4hG,EAAUR,aAAa9+H,MAAOouC,QAAS,WAAA,OAAMkyF,EAAO7B,EAAUz+H,MAAK,GAAA,CAAAy9B,EAAAO,YAAAkgG,EAG7E,KAAA,QAAA,KAEa,YAAhBr3H,EAAMmuB,OAAuBnuB,EAAMu2H,YAAc+D,IAI1D,II/UaK,GAAA,CAEb3oG,SAAU,CACRl2B,KAAM,CAACgmC,QAASxqC,SAGlB89C,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFm8F,YAAa,CACX9+H,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFkwD,KAAM,CACJ7yF,KAAMxE,QAGRgwC,QAAS,CACPxrC,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,WAAWjnB,SAASinB,EACtC,GAGF6pB,SAAUxuD,UCpCZ+gI,GAAezlG,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,mBACtCq8B,EAAyFpB,GAAc,CACrGm0B,gBAAiBC,GACjBs6C,UAAWC,GACXtnD,iBAAkBC,GAClB6uB,cAAeC,GACfH,gBAAiBC,KALX/hB,EAAiB/yB,EAAjB+yB,gBAAiBu6C,EAAAttE,EAAAstE,UAAWrnD,IAAAA,iBAAkB8uB,EAAe/0C,EAAf+0C,cAAeF,EAAA70C,EAAA60C,gBAQ/D24B,EAAcrjH,EAAAA,UAIjB,WACG,OAAA9b,EAASmE,EAAM2uF,MAAc3uF,EAAM2uF,MACpB,IAAf3uF,EAAM2uF,KAAsB,CAAE/wC,KAAM,qBAAOhkC,QAAS,eAAMuD,KAAM,sBAC7D,EACT,IAEM89G,EAAiBtjH,EAAAA,UAIpB,WACG,OAAA9b,EAASmE,EAAMgyB,UAAkBhyB,EAAMgyB,UACpB,IAAnBhyB,EAAMgyB,SAA0B,CAAE4rB,MAAM,EAAMhkC,SAAS,EAAMuD,MAAM,GAChE,CAAEygC,MAAM,EAAOhkC,SAAS,EAAOuD,MAAM,EAC9C,IAEA,OAAO,WACL,IAAMi7G,EAAc,CAClBptF,EAAe7xC,MAAAF,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET4Z,EAAe7xC,MAAmB6G,aAAkB,YAAlBA,EAAMsnC,UAK9C,OAAA1Q,EAAAA,YAAA,MAAA,CAAAC,MAAYuhG,GAAAxhG,CAAAA,EAAAO,YAAA4T,GAAA,CAAApiB,MAEDqyG,EAAY7hI,MAAMykD,KACzBtW,QAAStnC,EAAMsnC,QACf/iC,KAAMvE,EAAMuE,KACZ8iC,MAAA,SAAAE,QACS,SAAC/sC,gBAAY,UAANwF,EAAMsoD,gBAAA,IAAAkB,OAAA,EAANxpD,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,EAAG+pD,QAAS,QAAQ,EAAAp/B,KAChC,eAAjBnlB,EAAMo1C,OAA0B,WAAA,OAAAxe,cAAA2pD,EAAA,KAAA,KAAA,EAA4B,WAAA,OAAA3pD,cAAA2rE,EAAA,KAAA,KAAqB,EAAA1rE,MAAA,GAAAzF,OAC7E4Z,EAAe7xC,yBACf8hI,EAAe9hI,MAAMykD,MACjC,MAEC59C,EAAM46H,aACLhkG,EAAAA,YAAAmU,GAAA,CAAApiB,MACSqyG,EAAY7hI,MAAMygB,QAAA0tB,QAChBtnC,EAAMsnC,aACTtnC,EAAMuE,4BAEH,SAAC/J,GAAA,IAAA2/H,EAAA,OAAY,QAAZA,EAAMn6H,EAAMsoD,gBAAA,IAAA6xE,OAAA,EAANn6H,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,EAAG+pD,QAAS,WAAW,EAAAp/B,KACpD,WAAA,OAAAyR,cAAAkkG,EAAA,KAAA,KAAiB,EAAAjkG,MAAA,GAAAzF,OACb4Z,EAAe7xC,4BACf8hI,EAAe9hI,MAAMygB,SACjC,MAAAgd,EAAAO,YAAA4T,GAAA,CAAApiB,MAIOqyG,EAAY7hI,MAAMgkB,KACzBmqB,QAAStnC,EAAMsnC,QACf/iC,KAAMvE,EAAMuE,KACZ8iC,MAAA,SAAAE,QACS,SAAC/sC,gBAAY,UAANwF,EAAMsoD,gBAAA,IAAA4yE,OAAA,EAANl7H,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,EAAG+pD,QAAS,QAAQ,EAAAp/B,KAChC,eAAjBnlB,EAAMo1C,OAA0B,WAAA,OAAAxe,cAAA68C,EAAA,KAAA,KAAA,EAA6B,WAAA,OAAA78C,cAAAyrE,EAAA,KAAA,KAAuB,EAAAxrE,MAAA,GAAAzF,OAChF4Z,EAAe7xC,yBACf8hI,EAAe9hI,MAAMgkB,MACjC,QAIR,ICpFWg+G,GAAax0F,GAAYmwF,IACzBsE,GAAiBz0F,GAAYk0F,ICH3BQ,GAAA,CAEbzhH,QAAS,CACP9d,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX2yG,eAAgB,CACdh6H,KAAM,CAAC/C,OAAQC,SAGjBo8C,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFvpB,QAAS,CACPpZ,KAAMnF,OAGR43F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXuyB,UAAW,CACT55C,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAAU,SAASjnB,SAASinB,EAC9C,GAGF68F,SAAU,CACRx/H,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,WAAWjnB,SAASinB,EAC1C,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,OAAOjnB,SAASinB,EACrC,GAGF6pB,SAAUxuD,UC5DGyhI,GAAA,CAEbtyG,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXA,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBw2F,MAAO,CACLx0F,KAAM,CAAC/C,OAAQe,WAGjBqrB,KAAM,CACJrpB,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXkrC,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,SAAU,SAASjnB,SAASinB,EAC5D,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXhqB,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,6kBClCnB,IAAAwiI,GAAepmG,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAOw2B,GAAAA,MAAKx2B,IAAA,CAAA,EAAA,CAAO/E,MAAOjC,SAC1Bq8B,MAAAA,SAAMr1B,GACE,IAAAy7H,EAAajrG,EAAOA,OAAA,kBAAc,GAClCkrG,EAAalrG,EAAOA,OAAA,kBAAc,GAEhCE,EAAiBP,GAAU,SAA3BO,aACF88B,EAA2BpB,GAAc,CAAEuvE,UAAWC,GAAa3tE,UAAWC,KAA5EytE,EAAWnuE,EAAXmuE,UAAW1tE,EAAAT,EAAAS,UACb4tE,EAAWlkH,EAAAA,UAAS,WACxB,MAAwB,YAAjB3X,EAAMquD,UAAyBqtE,SAAAA,EAAYntC,SACpD,IAGMutC,EAAc,SAACthI,GACnB,GAAKqhI,EAAS1iI,MAAd,CACA,IAAMslC,OAAsB,IAAhBz+B,EAAM7G,MAAsB6G,EAAM/E,MAAQ+E,EAAM7G,MAC5DsiI,EAAWM,WAAWt9F,EAAKg9F,EAAW7hH,QAAS,CAAEpf,EAAAA,GAF5B,GAMjBwwC,EAAiB7Z,GAAe,cAChC6qG,EAAcrkH,EAAAA,UAAS,WAAA,OAAA1e,EAAAm4B,CAAAA,EAAAA,GAAAA,OAAa4Z,EAAe7xC,MAAA,MAAAi4B,OAAUpxB,EAAMquD,QAAWruD,EAAMquD,OAAA,IACpF4tE,EAAYtkH,EAAAA,UAAS,WAAA,MAAM,CAACqzB,EAAe7xC,MAAO6iI,EAAY7iI,UAC9D+iI,EAAYvkH,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAAI4Z,EAAe7xC,MAAe6iI,UAAAA,EAAY7iI,UAGzE0mC,EAAiBU,KACjB2C,EAAgBjC,KAChB2tB,EAAa,WACb,IAAAutE,EACA,GAAqB,YAArBT,EAAWvtG,MAAqB,CAClC,IAAIhJ,EAAwB,GAC5B,OAAQnlB,EAAMquD,QACP,IAAA,SAEMlpC,EADLtoB,EAAW6zB,EAAav3B,MAAMytB,WACzB8J,EAAav3B,MAAMytB,UAAUnJ,EAACA,GAErCmZ,EAAAA,YAAA+kG,EAAkB,KAAA,MAEpB,MACG,IAAA,QAEMx2G,EADLtoB,EAAW6zB,EAAav3B,MAAM0tB,WACzB6J,EAAav3B,MAAM0tB,UAAUpJ,EAACA,GAErCmZ,EAAAA,YAAAq3B,EAAkB,KAAA,MAEpB,MAAA,QAEO9oC,EAAApsB,OAAOiH,EAAM/E,MAAQ,GAGhCkhI,EAAAvlG,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAA8B4Z,EAAe7xC,MAAA,mBAAA,CAAwBgsB,GACvE,CACO,OAAA0a,EAAe,OAAQs8F,IAGhC,OAAO,WAAA,OAAAvlG,EAAAA,YAAA,MAAA,CAAAC,MACOolG,EAAU9iI,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAER4Z,EAAe7xC,yBAAgB0iI,EAAS1iI,SAAAi4B,OAAW4Z,EAAe7xC,qBAAqB,YACxF2iI,GAAA,CAAAllG,EAAAO,YAAA,MAAA,CAAAN,MAEGqlG,EAAU/iI,OAAQ,CAAAy1D,2CACf5jB,EAAe7xC,MAAA,cAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACb4Z,EAAe7xC,MAAiB,YAAA,CAAA0mC,EAAe,WAAOjJ,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACtD4Z,EAAe7xC,yBAAuB+pC,EAAc,UAAW,aAAStM,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACxE4Z,EAAe7xC,MAAiB,YAAA0mC,CAAAA,EAAe,iBAKxE,ICvEFu8F,GAAehnG,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,SAEtC46C,EAAgC7nC,SAAOlkC,GAOvCgsE,EAAArvD,GANwCooD,GADhCgH,EAAAnyD,QAAoBmyD,EAAX/G,WAIfhlE,EAAM81H,eACN91H,EAAMsoD,SACN,WACF,GANOyuE,EAAc/qD,EAAA,GAAAgrD,EAAehrD,EAAA,GAQpC96C,EAAAA,QACE,aACA4T,WAAS,CACPlrB,QAASm9G,EACTgF,WAAY/E,KAIhB9lG,UAAQ,aAAclxB,GAEhB,IAAAq8H,EAAWnsG,MAAqC,CAAA,GAEhDosG,EAAe,SAAChjD,EAA4Br+E,GAC5C,GAAAq+E,EAAUjrB,QAA+B,YAArBirB,EAAUjrB,OAAsB,OAAOirB,EAAUjrB,OACzE,GAA2B,WAAvB0oE,EAAa59H,MAA2B,MAAA,SAE5C,QAAwB,IAApBmgF,EAAUngF,OAAuB8B,EAAQjC,OAAO+9H,EAAa59H,OAAe,MAAA,SAE5E,QAAoB,IAApBmgF,EAAUngF,MAAqB,CACjC,IAAMojI,EAAavjI,OAAOqjI,EAASljI,MAAM49H,EAAa59H,QACtD,QAAmB,IAAfojI,EAEK,OADPl3F,QAAQkgC,KAAK,yDACN,UAELvlE,GAAmB,aAAnBA,EAAMs7H,UAA2BrgI,EAAQshI,EAAmB,MAAA,SAC5Dv8H,GAAmB,YAAnBA,EAAMs7H,UAA0BrgI,EAAQshI,EAAmB,MAAA,QACjE,CAEA,YADgC,IAApBjjD,EAAUngF,MAAsB8B,EAAQq+E,EAAUngF,SAClD49H,EAAa59H,MAAc,UAChC,WAGHqjI,EAA0B7mF,KAmB1B8mF,EAAa,WAAM,IAAAjV,EACnBtyG,UACAlV,EAAAA,EAAMkV,eAANlV,OAAAA,EAAexJ,OACPwJ,EAAmB,YAAnBA,EAAMs7H,SAAyBt7H,EAAMkV,QAAQxd,QAAQimD,UAAY39C,EAAMkV,QAGjFA,EAvByB,SAACyyG,GAC5B,IAAMrxH,EAA8B,GAc7B,OAbAqxH,SAAAA,EAAAr3G,SAAQ,SAACqqB,GACR,IAAAw5C,GAASx5C,aAAAA,EAAAA,EAAM36B,QAAS,CAAA,EACxBk/B,EAAWvE,aAAAA,EAAAA,EAAMuE,SACnB,GAACi1C,GAAWj1C,EAAZ,CACA,GAAAA,GAAYrjC,EAASqjC,GACvB,IAAA,IAAW1mC,KAAO0mC,EACZ1mC,KAAO+iI,KAAkBpnD,EAAO37E,KAClC27E,EAAO37E,GAAQ0mC,EAAiC1mC,IAInC,YAAnBwH,EAAMs7H,SAAyBhlI,EAAIm9B,QAAQ0gD,GAA6B79E,EAAI8M,KAAK+wE,EARvD,CAS5B,IACO79E,EAQKsxH,CADa4U,EAAwB,aAO1C,OAHNtnH,GAAW,IAAI5E,SAAQ,SAAC2uB,EAAMhkC,QACV,IAAfgkC,EAAK9lC,QAA8BkjI,EAAAljI,MAAM8lC,EAAK9lC,OAAS8B,EAC7D,IACOia,GA0BH+mH,EAAYtkH,EAAAA,UAAS,WAClB,MAAA,CACLqzB,EAAe7xC,MAAA,GAAAi4B,OACZ4Z,EAAe7xC,MAAAi4B,MAAAA,OAAUpxB,EAAMo1C,QAAA,GAAAhkB,OAC/B4Z,EAAe7xC,MAAAi4B,MAAAA,QAddjD,EAAUnuB,EAAVmuB,MACUsuG,IACRnsH,SAAQ,SAAC2uB,QACI,KAAfA,aAAA,EAAAA,EAAM9Z,QAEAgJ,EAAA,UAEZ,IACOA,GAMmC,WAAA,GAAAiD,OACrC4Z,EAAe7xC,MAAAi4B,MAAAA,OAAUpxB,EAAMs7H,aAAAlqG,OAC/B4Z,EAAe7xC,MAAA,MAAAi4B,OAAUpxB,EAAM01C,UACpC,eAlBkB,IACZvnB,CAkBR,IAGO,OAAA,WAAA,OAAAyI,EAAAA,YAAA,MAAA,CAAAC,MAAkBolG,EAAU9iI,OAAQ+pC,EAjCnChuB,EAAUunH,IAETvnH,EAAQlQ,KAAI,SAACi6B,EAAMhkC,GACxB,IAAMyhI,EAA+B,YAAnB18H,EAAMs7H,SAAyBpmH,EAAQ1e,OAASyE,EAAQ,EAAIA,EAG9E,OAFQA,OAAe,IAAfgkC,EAAK9lC,MAAsB8B,EAAQyhI,EAE3C9lG,cAAA+lG,GAAAp4F,EAAA2qC,WAAqBjwC,EAAM,CAAAhkC,MAAOyhI,EAAWruE,OAAQiuE,EAAar9F,EAAMhkC,GAAKzC,IAAQymC,EAAK9lC,OAAS8B,IAAO,KAC5G,OARoB,IACdia,EAkCV,ICpHW0nH,GAAQj2F,GAAYy1F,IACpBO,GAAWh2F,GAAY60F,ICHrBqB,GAAA,CAEbzvG,KAAM,CACJtxB,KAAMnF,MACNwsB,QAAS,WAAT,MAA0C,EAAC,GAG7C1c,OAAQ,CACN3K,KAAMnF,OAGR+1D,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,eACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,YAAa,eAAgB,eAAgB,WAAY,cAAe,eAAejnB,SAASinB,EAC1G,GAGF0pC,WAAY,CACVrsE,KAAMxE,QAGR+vC,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGF3iC,KAAM,CACJA,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,WAAWjnB,SAASinB,EACxC,GAGFzH,MAAO,CACLl7B,KAAM,CAAC/C,OAAQC,SAGjBuuC,QAASztC,SAETgjI,QAAShjI,UChDIijI,GAAA,CAEb53G,KAAM,CACJrpB,KAAMhC,UAGR2/C,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBkjI,MAAO,CACLlhI,KAAM,CAAC/C,OAAQe,WAGjBquE,WAAY,CACVrsE,KAAMxE,QAGRitD,QAAS,CACPzoD,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAASjnB,SAASinB,EACrC,ukBCtBJ,IAAAw+F,GAAe7nG,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAOw2B,GAAAA,MACF0mG,IAAA,CAAA,EAAA,CACHphI,KAAMqhI,GAAkBrhI,KACxBurC,MAAO81F,GAAkB91F,MACzBqlB,UAAWywE,GAAkBzwE,UAC7B0wE,eAAgB9lI,OAChB+lI,UAAWF,GAAkBnmG,MAC7BuQ,QAAS41F,GAAkB51F,QAC3Bu1F,QAASK,GAAkBL,UAE7BznG,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,eAChC8qG,EAAYtkH,EAAAA,UAAS,WAClB,MAAA,CAAAyZ,GAAAA,OACF4Z,EAAe7xC,OAAAi4B,GAAAA,OACf4Z,EAAe7xC,YAAAi4B,OAAUpxB,EAAMlE,MAAA,GAAAs1B,OAC/B4Z,EAAe7xC,MAAA,MAAAi4B,OAAUpxB,EAAMqnC,OAEtC,IACMqS,EAAa/hC,EAAAA,UAAS,WACnB,MAAA,IAAAyZ,OAAI4Z,EAAe7xC,MAAc,WAC1C,IACMmkI,EAAiB3lH,EAAAA,UAAS,WAC9B,WAAO3X,EAAM0sD,UAAUx5B,QAAQ,SAAkB,OAAS,OAC5D,IACMN,EAASjb,EAAAA,UAAS,WACtB,IAAMib,EAAiB,CAAA,EACvB,GAAI5yB,EAAMq9H,UAAW,CACnB,IAAME,EAA2B,WAAfv9H,EAAMlE,KAAoB,OAAS,OACrD82B,EAAOqvB,OAAA7wB,SAAAA,OAAkBpxB,EAAMq9H,UAAejsG,OAAAA,OAAAmsG,EAAA,OAChD,CACO3qG,OAAAA,CACT,IACM4qG,EAAkB,SAAChjI,GACvB,IAAMykC,EAA0B,CAAA,EAG/B3nC,OAAO4F,KAAKggI,IAA0C5sH,SAAQ,SAAC7Z,GAAO,OAAAwoC,EAAKxoC,GAAKuJ,EAAMvJ,MACvFuJ,EAAMunC,QAAQ,CAAE/sC,EAAAA,EAAGykC,KAAAA,KAEfw+F,EAAkB,SAACjjI,GACvB,IAAMykC,EAA0B,CAAA,EAG/B3nC,OAAO4F,KAAKggI,IAA0C5sH,SAAQ,SAAC7Z,GAAO,OAAAwoC,EAAKxoC,GAAKuJ,EAAMvJ,MACvFuJ,EAAM88H,QAAQ,CAAEtiI,EAAAA,EAAGykC,KAAAA,KAEfY,EAAiBU,KACjB4nC,EAAa7wE,OAAOq5B,OAAO,CAAE03C,gBAAgB,GAAQroE,EAAMo9H,eAAgBp9H,EAAMmoE,YACvF,OAAO,WAAA,OAAAvxC,EAAAO,YAAAk4C,GAAA9qC,aAAA,CAAAgkC,sBAAA,GAAAn3C,OAEuBD,GAAe,eAAeh4B,MACxD,kBAAAorD,QAASvkD,EAAMukD,QAAAmI,UACJ4wE,EAAenkI,MAAA8vB,QACjB,WAAA,OAAM4W,EAAe,QAC1B,GAAAsoC,GAAA,CAAAhlD,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAEQolG,EAAU9iI,MAAA05B,MAAcD,EAAOz5B,MAAOouC,QAASi2F,eAA+BC,GACvF59F,CAAAA,EAAe,QACA,WAAf7/B,EAAMlE,KAAoB86B,EAAAO,YAAA,MAAA,CAAAN,MAAY6iB,EAAWvgD,OAAA,CAAQ0mC,EAAe,WAAkB,OAAA,IAInG,ukBC/DF,IAAA69F,GAAetoG,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,eAChCwF,EAAUhf,EAAAA,UAAS,WACvB,MAAO,CAACqzB,EAAe7xC,MAAA,GAAAi4B,OAAU4Z,EAAe7xC,YAAAi4B,OAAUpxB,EAAMqnC,OAClE,IACMzU,EAASjb,EAAAA,UAAS,WACtB,IAAMib,EAAS08B,IAER18B,OADH5yB,EAAMg3B,QAAOpE,EAAOoE,MAA+B,iBAAhBh3B,EAAMg3B,MAAqB5F,GAAAA,OAAGpxB,EAAMg3B,MAAA,MAAYh3B,EAAMg3B,OACtFpE,CACT,IAEM4pG,EAA0B7mF,KAY1BgoF,EAAiB,SAAChW,GACtB,IAAMrxH,EAAgC,GAc/B,OAbAqxH,SAAAA,EAAAr3G,SAAQ,SAACqqB,GACR,IAAAvN,GAAOuN,aAAAA,EAAAA,EAAM36B,QAAS,CAAA,EACtBk/B,EAAWvE,aAAAA,EAAAA,EAAMuE,SACnB,GAAC9R,GAAS8R,EAAV,CACA,GAAAA,GAAYrjC,EAASqjC,GACvB,IAAA,IAAW1mC,KAAO0mC,EACZ1mC,KAAOukI,KAAoB3vG,EAAK50B,KAClC40B,EAAK50B,GAAQ0mC,EAAiC1mC,IAIpDlC,EAAI8M,KAAKgqB,EARe,CAS1B,IACO92B,GAEHg5D,EAAY,WAAc,IAAAsuE,EAExBz0F,EAAmCnpC,EAAMyG,OAAS,CAAC,GAAI,IAAM,CAAC,OAAQ,gBAC5EzG,EAAAA,EAAMyG,cAAA,IAAAm3H,GAAN59H,EAAcsQ,SAAQ,SAAC2uB,EAAMhkC,GAC3BkuC,EAASluC,GAASkiD,MAAMnkD,OAAOimC,IAAK,SAAA7N,OACvB+X,EAASluC,GAAc,SAAAm2B,OAAA6N,EAAA7N,KAAAA,GAAAA,OAC5B+X,EAASluC,GAAqBgkC,EAAA,KACxC,IACA,IAAMuyC,EAAsB,CAAA,EASrB,OARPxxE,EAAM0sD,UAAUhkD,MAAM,KAAK4H,SAAQ,SAAC2uB,EAAMhkC,GAC3B,WAATgkC,EACFuyC,EAAYvyC,GAAQkK,EAASluC,IAE7Bu2E,EAAYl0C,IAAM,MAClBk0C,EAAY/wE,UAAY,qBAE5B,IACO+wE,GAEH3gC,EAAc,SAACvG,GAAwD,IAAA6F,UAC3EnwC,EAAAA,EAAMunC,eAANvnC,OAAAA,EAAAA,KAAAA,EAAgBsqC,IAEZuzF,EAAc,SAACvzF,GAAwD,IAAAwzF,UAC3E99H,EAAAA,EAAM88H,eAAN98H,OAAAA,EAAAA,KAAAA,EAAgBsqC,IAEZpH,EAAgB,WACpB,IACMja,EAtDQ,WAAM,IAAAq9D,EAChBl5D,EACAptB,WAAAA,EAAAA,EAAMotB,YAANptB,OAAAA,EAAYxJ,OACd42B,EAAOptB,EAAMotB,SACR,CACC,IAAAu6F,EAAiB6U,EAAwB,cAC/CpvG,EAAOuwG,EAAehW,EACxB,CACO,OAAAv6F,EA6CM2wG,GACQ/4H,KAAI,SAACi6B,EAAMhkC,GAC9B,IAAQa,EAAuCkE,EAAvClE,KAAMurC,EAAiCrnC,EAAjCqnC,MAAOqlB,EAA0B1sD,EAA1B0sD,UAAWyb,EAAenoE,EAAfmoE,WAC1BmR,EAAY9iD,GAAAA,MACbyI,GAAA,GAAA,CACHnjC,KAAAA,EACAurC,MAAAA,EACAqlB,UAAAA,EACA0wE,eAAgBj1D,EAChBk1D,UAAWzqG,EAAOz5B,MAAM69B,MACxBuQ,QAASsJ,EACTisF,QAASe,IAEX,OAAAjnG,cAAAonG,GAAAz5F,EAAA2qC,WAAuBoK,EAAW,CAAA9gF,IAAKyC,IAAO,KAChD,IACO,OAAAguB,GAEF,OAAA,WAAA,OAAA2N,EAAAA,YAAA,MAAA,CAAAC,MACOF,EAAQx9B,MAAO05B,MAAOD,EAAOz5B,OACtC+pC,CAAAA,MAGP,IC5FW86F,GAAar3F,GAAYs2F,IAEzBgB,GAAat3F,GAAY+2F,ICLvBQ,GAAA,CAEbhjG,UAAW,CACTp/B,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,QAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBo/B,SAAU,CACRp9B,KAAM9C,OACNmqB,QAAS,KAGX1c,OAAQ,CACN3K,KAAMnF,MACNwsB,QAAS,WAAA,MAAgC,CAAC,OAAQ,OAAM,GAG1DkkB,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,UAAUjnB,SAASinB,EACvC,GAGFl6B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGFzL,OAAQ,CACNl3B,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,QAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAW,QAAQjnB,SAASinB,EAC/C,GAGF0/F,cAAe,CACbriI,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,SAGXokB,QAASztC,UC7DXskI,GAAehpG,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAuyB,EAAUrC,OAAI,GACdk8C,EAAel8C,MAAI,MACnBE,EAAgBe,GAAe,YAC7BzM,EAAgByL,GAAU,SAA1BzL,YAEA25G,EAAgBjyE,GAAc,CACpCiyE,YAAaC,KADPD,YAGFn7F,EAAgBjC,KAChBs9F,EAAe,SAACrjG,GACpB,MAAyB,iBAAdA,QAA8C,yBAAb5B,uBAAAA,WACxB,SAAd4B,EACK5B,SAEFA,SAASwB,cAAcI,GAEP,mBAAdA,EACFA,IAEF,MAmCT,OAjCA3F,EAAAA,WAAU,WAEJ,IAAA4oG,EAUAK,GAXSpyD,EAAAjzE,MAAQolI,EAAav+H,EAAMk7B,WAOlB,KAJpBijG,EADiC,iBAAxBn+H,EAAMm+H,cACCnlI,OAAOgH,EAAMm+H,cAAcviI,QAAQ,KAAM,KAEzCoE,EAAMm+H,iBAQtBK,OADmC,IAAjCpyD,EAAajzE,MAAM4iC,UACTzC,SAASkC,gBAET4wC,EAAajzE,MAEdizE,EAAAjzE,MAAMslI,SAAW,WAAM,IAAAC,EAC5B3iG,YAAYyiG,SAAW,IAAAE,OAAA,EAAXA,EAAW3iG,UACzBA,GAAaoiG,IACf5rG,EAAQp5B,OAAQ,GAEd4iC,EAAYoiG,GAAiB5rG,EAAQp5B,QACvCo5B,EAAQp5B,OAAQ,KAflBo5B,EAAQp5B,OAAQ,CAkBpB,IAEAq4C,EAAAA,iBAAgB,WACd46B,EAAajzE,MAAMslI,SAAW,IAChC,IAEO,WACC,IAAEtwG,EAA4DnuB,EAA5DmuB,MAAOkZ,EAAqDrnC,EAArDqnC,MAAO9iC,EAA8CvE,EAA9CuE,KAAMyuB,EAAwChzB,EAAxCgzB,OAAQkG,EAAgCl5B,EAAhCk5B,SAAUzyB,EAAsBzG,EAAtByG,OAAQy0B,EAAcl7B,EAAdk7B,UAElDgE,EADa+W,IACFq1C,GACXpsD,EAAS1oC,OAAS,IAAc0oC,EAAA,MAC9B,IAAAlF,EAAMriB,EAAAA,UAAS,WACZ,OAAA1e,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EACJm3B,CAAAA,EAAAA,EAAcj3B,OAAQ,GAAA,GAAAi4B,OACnBhB,EAAcj3B,MAAAi4B,YAAAA,OAAgBjD,IAAU,GAAA,GAAAiD,OACxChB,EAAcj3B,MAAAi4B,MAAAA,OAAUiW,IAAU,MAAAjW,OAClChB,EAAcj3B,MAAA,UAAgBo5B,EAAQp5B,OAAAi4B,GAAAA,OACtC1M,EAAYvrB,MAAiBoL,WAAS,UAATA,GAAS,GAAA6sB,OACtC1M,EAAYvrB,MAAiBoL,WAAS,WAATA,EAErC,IACMo6H,EACJ/nG,EAAAA,YAAAmhB,EAAAA,SAAAnhB,KAAAA,CAAAA,EAAAO,YAAAknG,EAAA,CAAAxnG,MAAA,GAAAzF,OACyBhB,EAAcj3B,MAAA,UAAAoL,KAAA,MAAA,MAAAqyB,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACrBhB,EAAcj3B,MAAA,WAAA,CAAAylI,EAAAA,gBAChC,WAgBIC,EAAgBlnH,EAAAA,UAAS,WACtB,MAAA,CACLmnH,eAAgBr4H,EAAO,GACvBs4H,cAAet4H,EAAO,GAE1B,IACA,OAAAmwB,EAAAA,YAAA,SAAA,CAAA96B,KAAA,SAAA+6B,MAC+BmD,EAAI7gC,MAAO05B,MAAOgsG,EAAc1lI,MAAAouC,QAZ3C,SAAC/sC,GAAkB,IAAA21C,EAErC1U,GAXgB,WAChB,GAAIzI,IAAWkI,EAAkB,OAAA,EACjC,GAAe,SAAXlI,EAA0B,OAAA,EAC9B,IAAKA,EAAe,OAAA,EACd,IAAAgsG,EAAaT,EAAavrG,GAChC,OAAKgsG,EACMA,EAA2B5hG,wBAAwBxf,EADtC,EAKdqhH,GACE,CAAE/jG,UAAWkxC,EAAajzE,MAAO+/B,SAAAA,IACvC,QAANl5B,EAAAA,EAAMunC,eAAA,IAAA4I,GAANnwC,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,MAUf,CAAA0oC,EAAc,UAAW,UAAWy7F,KAI7C,ICzGWO,GAAUv4F,GAAYy3F,ICDpBe,GAAA,CAEblxC,UAAWnsD,QAEXosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEX3e,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX8D,MAAO,CACLnrB,KAAM,CAAC/C,OAAQe,WAGjBsmC,OAAQ,CACNtkC,KAAMhC,UAGRwsB,WAAY,CACVxqB,KAAMgmC,QACN3e,SAAS,GAGXi8G,iBAAkB,CAChBtjI,KAAMgmC,QACN3e,SAAS,GAGXy1E,WAAY,CACV98F,KAAMxE,QAGR4d,QAAS,CACPpZ,KAAMnF,OAGR+/E,mBAAoB,CAClB56E,KAAM,CAAC/C,OAAQe,WAGjB68E,gBAAiB,CACf76E,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGRi3F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF4gG,cAAe,CACbvjI,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjB8uE,eAAgB,CACd9sE,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM/C,OACNoqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM/C,OACNoqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM/C,OACNoqB,QAAS,IAGXyrE,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAETg1F,iBAAkBh1F,SAElBi1F,mBAAoBj1F,SAEpBywF,QAASzwF,SAETk1F,QAASl1F,SAETwlI,SAAUxlI,UCzHZylI,GAAenqG,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAO,CAELipB,QAASlwB,OAETymI,QAASzmI,QAEXs8B,MAAAA,SAAMr1B,GACJ,IAAM0kB,EAAcyM,KACd3mB,EAAQmN,EAAAA,UAA+C,WAAM,IAAA8nH,EACzDx2G,EAAqBjpB,EAArBipB,QAASu2G,EAAYx/H,EAAZw/H,QACjB,IAAKv2G,EAAgB,MAAA,CAAEmE,KAAM,IAC7B,IAAKhV,GAAS6Q,KAAau2G,EAAS,MAAO,CAAEpyG,KAAM,CAACnE,IACpD,IAAMy2G,EAAS,IAAIhiI,OAAOua,GAAaunH,GAAU,KAC3CG,UAAeF,EAAAx2G,EAAQpjB,MAAM65H,UAAU,IAAAD,OAAA,EAAxBA,EAAwB,GACtC,MAAA,CACLryG,KAAMnE,EAAQvgB,MAAMi3H,GACpBH,QAASG,EAEb,IAEA,OAAO,WACL,IAAAC,EAA0Bp1H,EAAMrR,MAAxBi0B,EAAAwyG,EAAAxyG,KAAMoyG,EAAQI,EAARJ,QAEZ,OAAA5oG,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe1M,EAAYvrB,yCACxBi0B,CAAAA,EAAKpoB,KAAI,SAACi6B,EAAMhkC,GACf,OAAKA,EACE,CAAA27B,EAAAO,YAAA,IAAA,CAAAN,MAAA,GAAAzF,OACQ1M,EAAYvrB,2BAA2B8lC,EAAOugG,GACxDA,CAAAA,IAEHvgG,GALiBA,CAOpB,MAIT,ukBCrCF,IAAA4gG,GAAezqG,kBAAgB,CAC7Bx9B,KAAM,yBAENoI,MAAO,CACLokE,eAAgB9sE,OAChB6B,MAAOJ,OACPwL,KAAMxL,OACNmc,QAASve,MACT4wF,aAAczlD,QACds9F,iBAAkBt9F,QAClBxb,WAAYwb,QACZ1B,OAAQtmC,SACRmtB,MAAO,CAACluB,OAAQe,WAGlB42C,MAAO,CAAC,UAERrb,eAAMr1B,EAAOuiC,GAAyB,IAAvBoO,EAAMpO,EAANoO,KAAMxQ,EAAAoC,EAAApC,MAAOugB,IAAAA,OACpBtuB,EAASlC,MAAI,IACbxL,EAAcyM,KACZT,EAAiBP,GAAU,gBAA3BO,aAEFiG,EAAUhf,EAAAA,UAAS,WAAA,MAAA,GAAAyZ,OAAS1M,EAAYvrB,MAAoB,gBAAA,IAC5D2mI,EAAgBnoH,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAChC1M,EAAYvrB,MAAA,kBAAAF,EAEZ+G,CAAAA,EAAAA,EAAMokE,eAAepkE,EAAMuE,MAAQvE,EAAMuE,UAKxCw7H,EAAWpoH,EAAAA,UAAkC,WACjD,IAAIzC,GAAWlV,EAAMkV,SAAW,IAAIlQ,KAAI,SAACi6B,GACvC,IAAIk1C,EAAgC,CAAA,EAiB7B,OAhBH/7D,GAAS6mB,GACXk1C,EAAS,CAAEhyC,KAAMlD,EAAMwa,MAAOxa,IAE1BA,EAAKkD,OAAS/pB,GAAS6mB,EAAKkD,OAC1BmjC,GAAK,eAAgB,4BAEtBrmC,EAAKkD,KAOCgyC,EAAAl1C,EANL7mB,GAAS6mB,EAAKwa,OAChB06B,EAAA39C,GAAAA,MAAcyI,GAAM,CAAA,EAAA,CAAAkD,KAAMlD,EAAKwa,QAE3B6rB,GAAK,eAAgB,wDAMxB6O,CACT,IAEA,GAAIn0E,EAAMogC,OACElrB,EAAAA,EAAQkrB,QAAO,SAAC+zC,GAAA,OAAWn0E,EAAMogC,OAAOpgC,EAAM7G,MAAOg7E,WACjE,GAAWn0E,EAAMsmB,WAAY,CAE3B,IAAMo5G,EAAS,IAAIhiI,OAAOua,GAAajY,EAAM7G,OAAQ,KAC3C+b,EAAAA,EAAQkrB,QAAO,SAACnB,GAAA,OAASygG,EAAO7nI,KAAKonC,EAAKkD,QACtD,CACO,OAAAjtB,CACT,IAEM8qH,EAAgB,SAACxlI,GAEd,IADP,IAAIylI,EAASzlI,EAAEw4B,OACRitG,GAA6B,OAAnBA,EAAO1sC,SACtB0sC,EAASA,EAAO/hG,WAEZ,IAAAshG,EAAUS,EAAOl+E,aAAa,SACpC3vB,EAAOj5B,MAAQqmI,EACf7uF,EAAK,SAAU6uF,EAAS,CAAEhlI,EAAAA,KAItB0lI,EAAkB,SAAC1lI,GACnB,GAAAk9G,GAAa7/G,KAAK2C,EAAE6zE,OAASqpC,GAAa7/G,KAAK2C,EAAEhC,KAAM,CAAA,IAAA2nI,EACnDllI,EAAQ8kI,EAAS5mI,MAAMinI,WAAU,SAACnhG,GAAS,OAAAA,EAAKkD,OAAS/P,EAAOj5B,SAChE+5H,EAAWj4H,EAAQ,EAAI,EAAI8kI,EAAS5mI,MAAM3C,OAAS,EAAIyE,EAAQ,EAC9Dm3B,EAAAj5B,MAAkCgnI,QAAlCA,EAAQJ,EAAS5mI,MAAM+5H,UAAfiN,IAA0BA,OAA1BA,EAAAA,EAA0Bh+F,IAC3C,MAAA,GAAWs1E,GAAe5/G,KAAK2C,EAAE6zE,OAASopC,GAAe5/G,KAAK2C,EAAEhC,KAAM,CAAA,IAAA6nI,EAC9DplI,EAAQ8kI,EAAS5mI,MAAMinI,WAAU,SAACnhG,GAAS,OAAAA,EAAKkD,OAAS/P,EAAOj5B,SAChE+5H,EAAWj4H,EAAQ,GAAK8kI,EAAS5mI,MAAM3C,OAAS,EAAIyE,EAAQ,EAC3Dm3B,EAAAj5B,MAAkCknI,QAAlCA,EAAQN,EAAS5mI,MAAM+5H,UAAfmN,IAA0BA,OAA1BA,EAAAA,EAA0Bl+F,IAC3C,MAAW41E,GAAUlgH,KAAK2C,EAAE6zE,OAAS0pC,GAAUlgH,KAAK2C,EAAEhC,OAChD45B,EAAOj5B,OACTw3C,EAAK,SAAUve,EAAOj5B,MAAO,CAAEqB,EAAAA,KAK/B8lI,EAAsB,WACvBjnG,GAAAC,SAAU,UAAW4mG,IAGpBK,EAAyB,WACzB3mG,GAAAN,SAAU,UAAW4mG,IAkC3B,OA/BOx/E,EAAA,CACL4/E,oBAAAA,EACAC,uBAAAA,IAGF7+F,EAAAA,OACE,WAAA,OAAM1hC,EAAMunF,YAAA,IACZ,WACMvnF,EAAMunF,aACY+4C,IAEGC,GAE3B,GACA,CAAEv1E,WAAW,IAGftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAM7G,KAAA,IACZ,WACO6G,EAAM7G,QACTi5B,EAAOj5B,MAAQ,GAEnB,GACA,CAAE6xD,WAAW,IAGfxZ,EAAAA,iBAAgB,WACS+uF,GACzB,IAEO,WACD,OAACR,EAAS5mI,MAAM3C,OASlBogC,EAAAA,YAAA,KAAA,CAAAC,MAAWF,EAAQx9B,OAChB4mI,CAAAA,EAAS5mI,MAAM6L,KAAI,SAACi6B,GACnB,IAAMjF,EAAMliC,EAAIgoI,EAAc3mI,OAC1B8lC,EAAKkD,OAAS/P,EAAOj5B,OACnB6gC,EAAA52B,KAAAguB,GAAAA,OAAQ1M,EAAYvrB,MAA4B,0BAEtD,IAAIqnI,EAAiBvhG,EAAKwa,MACtB,GAAA58C,EAAWoiC,EAAKwa,OACN+mF,EAAAvhG,EAAKwa,MAAMh8B,EAAAA,QACzB,GAAW0iB,EAAMg0C,OAAQ,CAAA,IAAAssD,EACvBD,EAAkB,QAAlBC,EAAYtgG,EAAMg0C,cAAA,IAAAssD,OAAA,EAANA,EAAAhpI,KAAA0oC,EAAe,CAAEg0C,OAAQl1C,GACvC,CACM,IAAAhW,EAAUu3G,GAAavhG,EAAKkD,KAEhC,OAAAvL,EAAAA,YAAA,KAAA,CAAAp+B,IAASymC,EAAKkD,KAAAtL,MAAamD,EAAArR,MAAYsW,EAAKkD,KAAMoF,QAASy4F,GACxD5nH,CAAAA,GAAS6Q,IAAYjpB,EAAMo/H,iBAC1BxoG,EAAAO,YAAAupG,GAAA,CAAAz3G,QAA0BA,EAASu2G,QAASx/H,EAAM7G,OAAA,MAElD8vB,GAIP,MA7BD2N,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe1M,EAAYvrB,MACxB,iCAAA6G,CAAAA,EAAMinB,OAASyJ,EAAav3B,MAAM8tB,QAgC7C,ukBCnKF,IAAA05G,GAAevrG,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAuC,IAATmgC,EAAAoC,EAAApC,MAClC4rC,EAA8B7nC,SAAOlkC,GACsDgsE,EAAArvD,GAA/DooD,GADpBgH,EAAA5yE,MAAkB4yE,EAAX/G,WAC0ChlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAApFy3C,EAAQ/zB,EAAA,GAAAg0B,EAASh0B,EAAA,GAClB9oC,EAAgBjC,KAChBpB,EAAiBU,KACvB0K,EAAwC5Z,KAAhC3M,EAAAumB,EAAAvmB,YAAa0/C,EAAen5B,EAAfm5B,eACC1qE,EAAWy2B,GAAU,SAAnCO,aACFya,EAAad,KACb81D,EAAa7Q,KACb/H,EAAer3D,EAAAA,MACf0wG,EAAgB1wG,EAAAA,MAEhB+8C,EAAkB,SAAC1oB,EAAsB87D,GAA8B,IAAAzmC,EACrEinD,EAAet8E,EAAQnnB,wBAAwBpG,OAASutB,EAAQtb,aAAesb,EAAQhoB,YAGtF,OAAA/F,GAAA,CACLQ,MAAO6pG,IAFPxgB,EAAajjF,wBAAwBpG,OAASqpF,EAAap3E,aAAeo3E,EAAa9jF,gBAEnDnL,OAAGyvG,EAAmB,MAAA,gBAAAjnD,EACvD55E,EAAMmoE,kBAAY,IAAAyR,OAAA,EAAlB55E,EAAkBwoE,oBAInB7xC,EAAUhf,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAI1M,EAAYvrB,MAAsB,sBAC/D2nI,EAAenpH,EAAAA,UAAS,WAAM,IAAAoiE,EAC9BpjD,EAAqB,CAAAvF,GAAAA,OAAI1M,EAAYvrB,MAAwB,sBAI1Dw9B,eAHH32B,EAAAA,EAAMmoE,kBAANnoE,OAAAA,EAAkBsoE,mBACpB3xC,EAAUA,EAAQvF,OAAOpxB,EAAMmoE,WAAWG,mBAErC3xC,CACT,IACMoqG,EAAoBppH,EAAAA,UAAS,WAAM,IAAAsiE,EACnCtjD,EAAqB,CAAAvF,GAAAA,OAAI1M,EAAYvrB,MAA8B,4BAIhEw9B,eAHH32B,EAAAA,EAAMmoE,kBAANnoE,OAAAA,EAAkBuoE,wBACpB5xC,EAAUA,EAAQvF,OAAOpxB,EAAMmoE,WAAWI,wBAErC5xC,CACT,IAEM6sE,EAA2C,SAACrqG,EAAOmxC,GACvD01D,EAAU7mG,EAAOmxC,IAGb02F,EAAkBrpH,EAAAA,UAAS,WAMxB,OALoB6e,GAAA,CACzBr9B,MAAO4mG,EAAO5mG,MACdoL,KAAMvE,EAAMuE,MACTvE,EAAM44F,WAGb,IAEMwmB,EAAyC,SAACjmH,EAAOmxC,GAAY,IAAA+0E,EAC7Dlf,EAAWhnG,OAASgyC,EAAWhyC,QACnCouF,EAAapuF,OAAQ,EACL,QAAhB6G,EAAAA,EAAMgvF,eAANhvF,IAAgBq/G,GAAhBr/G,EAAAA,KAAAA,WAAqBsqC,GAAS,GAAA,CAAAnxC,MAAAA,KAC9Bq8B,EAAAA,UAAS,WAAM,IAAAyrG,UACbA,EAAAL,EAAcznI,oBAAd8nI,EAAqBX,qBACvB,MAGIhhB,EAAuC,SAACnmH,EAAOmxC,GAAY,IAAAi1E,EAChD,QAAfv/G,EAAAA,EAAM4uF,cAAN5uF,IAAeu/G,GAAfv/G,EAAAA,KAAAA,WAAoBsqC,GAAS,GAAA,CAAAnxC,MAAAA,MAGzB+nI,EAAwD,SAAC/nI,EAAOmxC,GAAY,IAAA62F,EACvD,QAAzBnhI,EAAAA,EAAM8uF,wBAAN9uF,IAAyBmhI,GAAzBnhI,EAAAA,KAAAA,WAA8BsqC,GAAS,GAAA,CAAAnxC,MAAAA,MAGnCioI,EAA4D,SAACjoI,EAAOmxC,GAAY,IAAA+2F,EACzD,QAA3BrhI,EAAAA,EAAM+uF,0BAAN/uF,IAA2BqhI,GAA3BrhI,EAAAA,KAAAA,WAAgCsqC,GAAS,GAAA,CAAAnxC,MAAAA,MAGrCkkH,EAAyC,SAAClkH,EAAOmxC,GAAY,IAAAuqF,EACjD,QAAhB70H,EAAAA,EAAMuqF,eAANvqF,IAAgB60H,GAAhB70H,EAAAA,KAAAA,WAAqBsqC,GAAS,GAAA,CAAAnxC,MAAAA,MAG1BmoI,EAAiD,SAACnoI,EAAOmxC,GAAY,IAAAi3F,EACrEphC,EAAWhnG,OAASgyC,EAAWhyC,QACnCouF,EAAapuF,OAAQ,EACrB6mG,EAAU7mG,EAAOmxC,WACjBtqC,EAAAA,EAAMs/H,gBAAWnmI,IAAAA,GAAjB6G,EAAAA,KAAAA,EAAiB7G,EAAOmxC,KAGpBm5D,EAAsD,SAAClxE,EAASg3B,GAAgB,IAAdhF,IAAAA,QAClE47C,EAAWhnG,OAASgyC,EAAWhyC,OACnB,0BAAZorD,IACFgjC,EAAapuF,MAAQo5B,IAIzB,OAAO,WAAM,IAAA2kE,EA/FW35E,EAiGhBqd,EAAcsI,EAAc,UAAW,mBAAgBtM,EAAAO,YAAAwrE,GAAAp+D,aAAA,CAAA2pD,WAE7CluF,EAAMkuF,WAAAnmE,oBAAAmvE,EACLl3F,EAAM+nB,2BAAeruB,EAAOP,MAAM4uB,YAC/C4mE,KAAM3uF,EAAM2uF,KAAAtgC,OACJruD,EAAMquD,OAAAkgC,SACJ4R,EAAWhnG,MACrB64B,SAAUmZ,EAAWhyC,MACrB80F,UAAWjuF,EAAMiuF,UAAAE,UACNnuF,EAAMmuF,mBACPqV,EAAAxU,QACDowB,EAAAxwB,OACD0wB,EAAAzwB,QACC7uF,EAAM6uF,QAAAC,iBACGoyC,EAAAnyC,mBACEqyC,EAAA72C,QACX8yB,GACL2jB,EAAgB7nI,OACXgnC,GAIPqhG,EAAc7qI,MAAMoB,QAAQiI,EAAMkV,UACtC0hB,EAAAO,YAAA0oG,GAAA,CAAA3vG,IACO0wG,EAAAznI,MACE4mG,EAAO5mG,MAAA+b,QACLlV,EAAMkV,QAAA3Q,KACTvE,EAAMuE,KAAA6/D,eACIA,EAChBk7D,SAAUgC,eACI/5C,EAAapuF,uBACT6G,EAAMo/H,4BACZp/H,EAAMsmB,kBACVtmB,EAAMogC,aACPP,EAAe,UACb,CAAEs0C,OAAQh0C,EAAMg0C,SAIvBstD,EAAa5hG,EAAe,mBAC5B6hG,EAAgB7hG,EAAe,sBAC/B8hG,EACJF,GAAcD,GAAeE,EAAA9qG,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACZ1M,EAAYvrB,MAAA,0BAAA,CACxBsoI,EACAD,EACAE,IAED,KACAv5D,EAAa3xC,GAAAA,GACdx2B,CAAAA,EAAAA,EAAMmoE,YAAA,GAAA,CACTK,kBAAmByE,EACnB1E,sBAAuBw4D,EAAkB5nI,MACzCmvE,iBAAkBw4D,EAAa3nI,QAG/B,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYF,EAAQx9B,OAAA,CAAAy9B,EAAAA,YAAAy4C,GAAA9qC,aAAA,CAAAhS,QAEPg1D,EAAapuF,MACtB8vE,gBAAiBw6B,EACjBl/C,QAAA,QAAAmI,UAAA,cAAA2b,gBAEgB,EAChBp/C,QAAS04G,EAAe,WAAA,OAAMA,GAAe,MACzCx5D,IAjKY5qD,EAmKfqd,EAnKe,mBAAArd,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAmKfqd,EAAA,CAAAzX,QAAA,WAAA,MAAA,CAAAyX,EAAA,OAKX,IC1KWgnG,GAAej7F,GAAYg6F,IAC3BD,GAAkB/5F,GAAY44F,ICF3B,SAAAsC,GACd9wF,EACAlf,EACAiwG,GAEM,IAAE9vG,EAAa8vG,EAAb9vG,SACD,MAAA,CAAAZ,GAAAA,OACF2f,EAAA93C,mBAAAA,EAEA44B,CAAAA,EAAAA,EAAOG,SAAWA,GAGzB,CASgB,SAAA+vG,GACdpnG,EACA9I,EACAiwG,GAEA,IAAQE,EAAwCF,EAAxCE,cAAe9+B,EAAyB4+B,EAAzB5+B,SAAU/pG,EAAe2oI,EAAf3oI,MAAOmH,EAAQwhI,EAARxhI,IAClC2hI,GACFD,GAAiBrnG,EAAKnI,YAAa0wE,IAAYvoE,EAAKunG,WAAsBF,GAAiBrnG,EAAKnI,SAE9F0vG,EAASvnG,EAAKunG,SAEd/2F,EAAaxQ,EAAK3I,UAAakxE,GAAa/pG,EAA0B3C,QAAU8J,GAAe,IAARA,EAEzF2oH,EAAatuF,EAAKtI,SAAY6wE,IAAa8+B,GAAiBrnG,EAAKnI,WAAa0vG,EAM3E,OAJFh/B,GAAa8+B,GAAkBE,IAClCjZ,EAAatuF,EAAKnI,UAGb,CAAAv5B,EAAAA,EAAAA,EAEF44B,CAAAA,EAAAA,EAAOM,UAAYgZ,GAAc89E,GACjCp3F,EAAOW,UAAY2Y,GAAc82F,GACjCpwG,EAAOG,SAAWmZ,GAGzB,CC5CO,SAAS68E,GAAiB8Z,GAC/B,IAAQ3oI,EAA8C2oI,EAA9C3oI,MAAO+pG,EAAuC4+B,EAAvC5+B,SAAUi/B,EAA6BL,EAA7BK,UAAWC,EAAkBN,EAAlBM,cAChC,GAAAl/B,GAAuB,IAAV/pG,IAAgBA,EAAe,MAAA,GAEhD,GAAIpB,EAAQoB,GAAe,MAAA,GAC3B,IAAMwhC,EAAOwnG,GAAaA,EAAUE,SAASlpI,GACzC,IAAEwhC,IAAQA,EAAKnkC,OACV,OAAA2C,EAET,IAAMkN,EAAOs0B,GAAQA,EAAK,GAAG2nG,UACzB,OAAAj8H,GAAQA,EAAK7P,OACR4rI,EAAgB/7H,EAAKrB,KAAI,SAAC21B,UAAmBA,EAAK8e,KAAK,IAAEpxC,KAAK,OAAShC,EAAKk8H,OAAO9oF,MAErFtgD,CACT,CA6BO,SAASqpI,GAAUC,GACxB,IAAMniD,EAAuB,GAQtB,OAPGmiD,EAAAnyH,SAAQ,SAACqqB,GACb2lD,EAAO3lD,EAAKyxE,OACP9rB,EAAA3lD,EAAKyxE,OAAOhpG,KAAKu3B,GAEjB2lD,EAAA3lD,EAAKyxE,OAAS,CAACzxE,EAE1B,IACO2lD,CACT,CAOgB,SAAAoiD,GAAiB/nG,GAAiC,IAAjB+a,EAAA32C,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAY,IACpD,OAAA47B,aAAA,EAAAA,EACH2nG,UACDt9H,KAAI,SAAC21B,UAAmBA,EAAK8e,KAAK,IAClCpxC,KAAKqtC,EACV,CAOa,IAAAitF,GAAe,SAACxpI,GAC3B,IAAIypI,EAA6B,GAc1B,OAbH7qI,EAAQoB,GACNA,EAAM3C,OAAS,GAAKqF,EAAS1C,EAAM,IACrCypI,EAAazpI,EAA2B6L,KAAI,SAACy5B,GAAA,OAAQA,EAAItlC,SAChDA,EAAM3C,SACHosI,EAAAzpI,GAEJ0pI,GAAc1pI,KAEVypI,EADV/mI,EAAS1C,GACC,CAAEA,EAAyBA,OAE3B,CAACA,IAGVypI,CACT,EA0BO,SAASC,GAAc1pI,GAC5B,QAAIigB,GAASjgB,KAAWgkD,MAAMhkD,KACvB+f,GAAQ/f,EACjB,CCHgB,SAAA2pI,GACdhB,EACA7mI,EACA8iF,GAEA,IAAQ/rD,EAAoD8vG,EAApD9vG,SAAU+wG,EAA0CjB,EAA1CiB,SAAU5pI,EAAgC2oI,EAAhC3oI,MAAOsxH,EAAyBqX,EAAzBrX,UAAW0X,EAAcL,EAAdK,UAC1C,IAAAnwG,EAGJ,QAAc,IAAV/2B,EAAqB,CACjB,IACAnC,EADW4X,GAAUvX,GACNwL,OAAO1J,EAAO,GAC7B0/B,EAAOwnG,EAAUE,SAASvpI,EAAI,IAAI,GAElCu5B,EAAUsI,EAAKqoG,YAAYroG,EAAKsoG,aAWtCF,EARgB,WAAdtY,EACIp4F,EACAA,EAAQrtB,KAAI,SAACy5B,GAAA,OACX0jG,EACGe,QAAQzkG,GACR6jG,UACAt9H,KAAI,SAACi6B,GAAS,OAAAA,EAAK9lC,QAAK,IAEhB,UAAWwhC,EAAKwoG,YAC/BtmI,EAAWkhF,IACbA,EAAS,CAAE5kF,MAAOk5B,EAASsI,KAAAA,GAE/B,MACM99B,EAAWkhF,IACbA,EAAS,CAAE5kF,MAAAA,EAAOwhC,UAAM,GAG9B,CCnJA,IAAM36B,GAAQ,CACZ26B,KAAM,CACJ7+B,KAAMxE,OAAA6rB,QACNA,WACE,MAAO,EACT,GAEF+mG,YAAa,CACXpuH,KAAM,CAACxE,OAAQX,QAEjBmrI,gBAAiB,CACfhmI,KAAMxE,QAERgxD,SAAUxuD,SACVytC,QAASztC,SACTi1D,aAAcj1D,UAGhBspI,GAAehuG,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAMmpH,EAAQj5F,EAAAA,MACdyX,GAAUwhF,GAEJ,IAAAn+E,EAAiB7Z,GAAe,kBAChCzM,EAAcyM,KACZsiD,EAAqBrnB,GAAc,CAAEqnB,iBAAkBC,KAAvDD,iBACRxoC,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KAEV0hD,EAAYr7D,EAAAA,UAAS,WAClB,OHuBN,SACLo5B,EACApW,EACArJ,EACAO,EACAiwG,GAEM,IAAEv9H,EAASu9H,EAATv9H,KACD,MAAA6sB,CAAAA,GAAAA,OACF2f,EAAA,oBAAA3f,OAAAt5B,EACAiqI,GAAmBpnG,EAAM9I,EAAQiwG,KACpCxwG,EAAK/sB,GAAAtL,EAAAA,QAAAm4B,OAEC2f,EAAqC,gCAAEpW,EAAKuE,UAAA9N,GAAAA,OAC5C2f,EAAgC,yBAAApW,EAAKunG,WAG/C,CGxCamB,CAAqB3+G,EAAYvrB,MAAO6G,EAAM26B,KAAMrJ,EAAKn4B,MAAO04B,EAAO14B,MAAO6G,EAAM8hI,gBAC7F,IAEM5F,EAAYvkH,EAAAA,UAAS,WAClB,OH8CN,SACLo5B,EACApW,EACA9I,EACAiwG,GAEO,MAAA,CAAA,GAAA1wG,OAAI2f,6BAAA3f,OAAiC2f,EAAA3f,UAAAA,OAAAt5B,EAAkBiqI,GAAmBpnG,EAAM9I,EAAQiwG,IACjG,CGrDawB,CAAyB5+G,EAAYvrB,MAAO6G,EAAM26B,KAAM9I,EAAO14B,MAAO6G,EAAM8hI,gBACrF,IAES,SAAAyB,EAAiB5oG,EAAgBmnG,GAClC,IAAE0B,EAAa1B,EAAb0B,SACFla,EAAYka,EAAWd,GAAiB/nG,GAAQA,EAAK8e,MAC3D,GAAI+pF,EAAU,CAGZ,IAFM,IAAAC,EAAQna,EAAU5gH,MAAM86H,GACxBE,EAAO,GACJzoI,EAAQ,EAAGA,EAAQwoI,EAAMjtI,SAC3BktI,EAAAtgI,KAAAwzB,EAAAO,YAAA,OAAA,CAAA3+B,IAAgByC,IAAQwoI,EAAMxoI,MAC/BA,IAAUwoI,EAAMjtI,OAAS,GAFWyE,IAGnCyoI,EAAAtgI,KAAAwzB,EAAAO,YAAA,OAAA,CAAA3+B,IAAA44B,GAAAA,OACWn2B,EAAA,UAAA47B,MAAA,GAAAzF,OAAyB4Z,EAAe7xC,MACnD,mBAAAqqI,CAAAA,KAIA,OAAAE,CACT,CACO,OAAApa,CACT,CAEM,IAAAn+D,EAAc,SAACxwB,GACf,MAAsB,iBAAfA,EAAK8e,MAA2B9e,EAAK8e,MAEzC,MAGA,SAAAkqF,EAAmBhpG,EAAgBmnG,GACpC,IAAAroF,EAAQ8pF,EAAiB5oG,EAAMmnG,GAY9B,OAVDlrG,EAAAO,YAAA,OAAA,CAAAxO,MAEKm5G,EAAgB0B,SAAWd,GAAiB/nG,GAAQwwB,EAAYxwB,GAAI9D,MACpE,CAAAzF,GAAAA,OAAI4Z,EAAe7xC,MAAAi4B,UAAAA,GAAAA,OAAkB4Z,EAAe7xC,MAC3D,qBAAA0uH,KAAA,SAAA,CAECpuE,GAKP,CAES,SAAAmqF,EAAejpG,EAAgBmnG,GACtC,IAnFgBvkH,EAmFRsmH,EAAqC/B,EAArC+B,WAAY1qI,EAAyB2oI,EAAzB3oI,MAAOmH,EAAkBwhI,EAAlBxhI,IAAKkjI,EAAa1B,EAAb0B,SAC1B/pF,EAAQ8pF,EAAiB5oG,EAAMmnG,GACrC,OAAAlrG,EAAAO,YAAAuwF,GAAAnjF,aAAA,CAAAlS,QAEasI,EAAKtI,QAAAI,cACCkI,EAAKlI,cAAAT,SACV2I,EAAKwQ,cAAkBhyC,EAA0B3C,QAAU8J,GAAe,IAARA,EAE5E1I,KAAMmB,OAAO4hC,EAAKxhC,OAClBusH,mBAAoB/qF,EAAKuE,SACzBvW,MAAO66G,EAAWd,GAAiB/nG,GAAQwwB,EAAYxwB,GAAI2tB,SACjD,WACRtoD,EAAMsoD,UACR,GACIu7E,GAjGQ,mBAAAtmH,EAmGXk8B,IAnGWlH,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAmGXk8B,EAAA,CAAAt2B,QAAA,WAAA,MAAA,CAAAs2B,EAAA,GAGP,CAEA,OAAO,WACL,IAAQqoF,EAAuC9hI,EAAvC8hI,gBAAiBnnG,EAAsB36B,EAAtB26B,KAAMuvF,EAAgBlqH,EAAhBkqH,YACzB4Z,EAA2B5Z,GAAe4X,EAAgB5+B,SAChE,OAAAtsE,EAAAA,YAAA,KAAA,CAAA1G,IAESi5F,EACLtyF,MAAOm8C,EAAU75E,MACjBouC,QAAS,WAAA,OAAOu8F,EAA2B9jI,EAAMsoD,WAAatoD,EAAMunC,SAAQ,EAAAwnB,aAC9D/uD,EAAM+uD,cAAA,CAEnBm7D,IACE4X,EAAgB5+B,SACb0gC,EAAejpG,EAAMmnG,GACrB6B,EAAmBhpG,EAAMmnG,IAC9BnnG,EAAKuE,WACHvE,EAAK7I,QACJ8E,EAAAO,YAAAoU,GAAA,CAAA1U,MAAiBqlG,EAAU/iI,MAAOoL,KAAA,SAAAqyB,MAAAA,EAAAO,YAAAs8C,EAAA,CAAA58C,MAETqlG,EAAU/iI,OAAO,SAKtD,ICjIa4qI,GAAA,CAEb91C,UAAWnsD,QAEXosD,WAAYpsD,QAEZ+hG,WAAY,CACV/nI,KAAMxE,QAGR0qI,cAAelgG,QAEfqsD,UAAWrsD,QAEXihE,eAAgB,CACdjnG,KAAMhC,UAGRk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX8D,MAAO,CACLnrB,KAAM,CAAC/C,OAAQe,WAGjBsmC,OAAQ,CACNtkC,KAAMhC,UAGRwsB,WAAYwb,QAEZ82D,WAAY,CACV98F,KAAMxE,QAGR4F,KAAM,CACJpB,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjB8jF,KAAM,CACJ9hF,KAAMgmC,QACN3e,SAAS,GAGX6gH,KAAM,CACJloI,KAAMhC,UAGRg4B,QAASgQ,QAETha,YAAa,CACXhsB,KAAM,CAAC/C,OAAQe,WAGjBwG,IAAK,CACHxE,KAAM9C,OACNmqB,QAAS,GAGX8/E,gBAAiB,CACfnnG,KAAM9C,OACNmqB,QAAS,GAGX+/E,SAAUphE,QAEVqyC,OAAQ,CACNr4E,KAAMhC,UAGRob,QAAS,CACPpZ,KAAMnF,MACNwsB,QAAS,WAAT,MAA2C,EAAC,GAG9CuzD,mBAAoB,CAClB56E,KAAM,CAAC/C,OAAQe,WAGjB68E,gBAAiB,CACf76E,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGRiwF,aAAczlD,QAEdwO,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXigF,eAAgBthE,QAEhB0oF,iBAAkB,CAChB1uH,KAAMxE,QAGR8qI,cAAe,CACbtmI,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGRupG,cAAe,CACbvnG,KAAMxE,QAGRgsG,SAAU,CACRxnG,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjByqD,QAAS,CACPzoD,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAASjnB,SAASinB,EACrC,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQrC,OACvBwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,OAAQrC,OACvBwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,OAAQrC,OACvBwsB,QAAS,WAAT,MAAgD,EAAC,GAGnDogF,aAAc,CACZznG,KAAM,CAAC/C,OAAQe,WAGjBmqI,UAAW,CACTnoI,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,cAAe,OAAOjnB,SAASinB,EACrD,GAGFgsF,UAAW,CACT3uH,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAQjnB,SAASinB,EACrC,GAGFmwD,OAAQ90F,SAERwuD,SAAUxuD,SAEVk1F,QAASl1F,SAET2pG,qBAAsB3pG,SAEtBikF,SAAUjkF,UClNZoqI,GAAe9uG,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAO,CACLm0E,OAAQgwD,GAAchwD,OACtBltD,MAAOk9G,GAAcl9G,MACrBs9B,QAAS4/E,GAAc5/E,QACvB+D,SAAU67E,GAAc77E,SACxBx2B,QAASqyG,GAAcryG,QACvBhK,YAAaq8G,GAAcr8G,YAC3Bg6G,gBAAiB,CACfhmI,KAAMxE,SAIV+9B,MAAAA,SAAMr1B,GACJ,IAAMokI,EAAwBpjG,KACxBgK,EAAiB7Z,GAAe,YAC9BT,EAAiBP,GAAU,YAA3BO,aAEF4vD,EAAS3oE,EAAAA,UAAS,WAAA,OAAM6qH,GAAUxiI,EAAM8hI,gBAAgBW,cAExD4B,EAAe,SAAC1pG,EAAgB4pB,IHhBnC,SACL+/E,EACA//E,EACA5pB,EACAmnG,GAEM,IAAEE,EACNF,EADME,cAAe9+B,EACrB4+B,EADqB5+B,SAAUi/B,EAC/BL,EAD+BK,UAAWl2D,EAC1C61D,EAD0C71D,WAAY82D,EACtDjB,EADsDiB,SAAUwB,EAChEzC,EADgEyC,aAAcC,EAC9E1C,EAD8E0C,UAAWrrI,EACzF2oI,EADyF3oI,MAAOmH,EAChGwhI,EADgGxhI,IAAKmqH,EACrGqX,EADqGrX,UAKnG,KAFe9vF,EAAK3I,UAAakxE,GAAa/pG,EAA0B3C,QAAU8J,GAAe,IAARA,GAEzF,CAEJ,GAAIgkI,IAAiB//E,EAAS,CACtB,IAAA/xB,EAAWmI,EAAKuwD,aAAY,GAClCi3C,EAAUsC,eACVtC,EAAUuC,gBAAgBlyG,GAE1B+xG,EADcpC,EAAUE,WAAWjiG,QAAO,SAACzF,GAAAA,OAAmBA,EAAKpI,YAI/D2wE,GACFshC,EAAUhyG,EAEd,CAEA,IAAK0wE,IAAavoE,EAAKunG,UAAYF,IAA8B,UAAZz9E,EAAqB,CACxE49E,EAAUwC,eACV,IACOxrI,EAADwjB,GADUge,EAAKqoG,YAAYroG,EAAKtI,SACtB,GAAJ,GAGZ0wG,EAAuB,WAAdtY,EAAyBtxH,EAAQwhC,EAAK2nG,UAAUt9H,KAAI,SAACi6B,GAAA,OAASA,EAAK9lC,KAAK,IAAG,QAASwhC,EAAKwoG,YAG7FnB,GAAkC,UAAjBsC,GACTr4D,GAAA,EAAO,CAAA,EAEtB,CA3BgB,CA4BlB,CGrBwB24D,CADiC5kI,EAA3CukD,QACwBA,EAAS5pB,EADU36B,EAApB8hI,kBAI3B+C,EAAa,SAAClqG,EAAgB1/B,GAClC,IAAMivH,EAAcvvF,EAAKj2B,KAAKukB,QAC1B0V,GAAehE,EAAKj2B,KAAKukB,QAAQxL,EAACA,IAClC2mH,EAAsB,SAAU,CAC9B/kG,OAAQ,CAAEJ,KAAMtE,EAAKj2B,KAAMzJ,MAAAA,KAEjC,OAAA27B,EAAAA,YAAAwsG,GAAA,CAAA5qI,IAESmiC,EAAKxhC,MACVwhC,KAAMA,EACNuvF,YAAaA,EACb4X,gBAAiB9hI,EAAM8hI,gBAAAv6F,QACd,WACP88F,EAAa1pG,EAAM,QACrB,EAAAo0B,aACc,WACZs1E,EAAa1pG,EAAM,QACrB,EAAA2tB,SACU,YHQJ,SAAkB3tB,EAAgBmnG,GAC1C,IAAE9vG,EAA6F8vG,EAA7F9vG,SAAU1xB,EAAmFwhI,EAAnFxhI,IAAKkjI,EAA8E1B,EAA9E0B,SAAUtgC,EAAoE4+B,EAApE5+B,SAAUj3B,EAA0D61D,EAA1D71D,WAAY82D,EAA8CjB,EAA9CiB,SAAUN,EAAoCX,EAApCW,UAAWN,EAAyBL,EAAzBK,UAAW1X,EAAcqX,EAAdrX,UAEvF,GAAK9vF,IAAQ3I,IAAY2I,EAAK3I,SAA9B,CAGA,IAAMK,EAAUsI,EAAKqoG,YAAYroG,EAAKsoG,aAMtC,GAJI7pH,GAAS9Y,IAAQA,EAAM,GACjB+kC,QAAAkgC,KAAK,gBAAiB,oBAG5BlzC,EAAQ77B,OAAS8J,GAAO8Y,GAAS9Y,IAAQA,EAAM,GAAnD,CAII,GAAmB,IAAnB+xB,EAAQ77B,OAAc,CAClB,IAAAg8B,EAAW2vG,EAAU2C,cAC3B7uH,YAAW,WACTksH,EAAUuC,gBAAgBlyG,GAC1B2vG,EAAUsC,iBACT,EACL,CAEKvhC,GACQj3B,GAAA,EAAO,CAAA,GAGd,IAAA84D,EAActC,EAAU/kE,OAAM,SAACz+B,GAAA,OAAS5M,EAAQa,QAAQ+L,EAAK9lC,QAAW,KAE1EqqI,GAAYuB,GACH94D,GAAA,EAAO,CAAA,GAcpB82D,EATgB,WAAdtY,EACIp4F,EACAA,EAAQrtB,KAAI,SAACy5B,GAAA,OACX0jG,EACGe,QAAQzkG,GACR6jG,UACAt9H,KAAI,SAACi6B,GAAS,OAAAA,EAAK9lC,QAAK,IAGhBwhC,EAAKtI,QAAU,UAAY,QAASsI,EAAKwoG,WA/B5D,CATA,CAyCF,CGrD8B6B,CAAArqG,EAAM36B,EAAM8hI,gBAChC,GACF,OAIEmD,EAAa,SAACxC,GAAA,IAAuByC,EAAWnmI,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GAAOomI,IAAUpmI,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,KAAAA,UAAA,GAAM9D,EAAQ8D,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EAAA,OAAA63B,EAAAA,YAAA,KAAA,CAAAC,MAE1E,CAAAzF,GAAAA,OACF4Z,EAAe7xC,MAClB,UAAA,mBAAAF,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEM4Z,EAAe7xC,MAAyBgsI,mBAAAA,GAAA/zG,GAAAA,OACxC4Z,EAAe7xC,MAAwB+rI,kBAAAA,IAG/C1sI,IAAA,GAAA44B,OAAQ4Z,EAAA5Z,UAAAA,OAAuBn2B,KAE9BwnI,EAAUz9H,KAAI,SAAC21B,GAAA,OAAmBkqG,EAAWlqG,EAAM1/B,SAaxD,OAAO,WACD,IAAAguB,EATJm8G,EAAQ5B,EAAUf,EAwBhB,OAbUx5G,EADRjpB,EAAM8xB,QACEsyG,EACR,cAAAxtG,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACe4Z,EAAe7xC,MAAwB,mBAAA,CAAAu3B,EAAav3B,MAAM2uB,eAGjEw4D,EAAOnnF,MAAM3C,QAhBzB4uI,EAAgCplI,EAAM8hI,gBAA9B0B,EAAA4B,EAAA5B,SAAUf,EAAU2C,EAAV3C,UACXe,EACHyB,EAAWxC,GAAW,GACtBniD,EAAOnnF,MAAM6L,KAAI,SAACy9H,EAAWxnI,GAAA,OAC3BgqI,EAAWxC,GAAW,EAAOxnI,IAAUqlF,EAAOnnF,MAAM3C,OAAS,EAAGyE,EAAK,KAcrEmpI,EACE,QAAAxtG,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACe4Z,EAAe7xC,MAAwB,mBAAA,CAAAu3B,EAAav3B,MAAM8tB,SAI/E2P,EAAAA,YAAA,MAAA,CAAAC,MACS,CAAA,GAAAzF,OACF4Z,EAAe7xC,MAAAF,WAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACZ4Z,EAAe7xC,MAAA,YAAkBmnF,EAAOnnF,MAAM3C,SAAWwJ,EAAM8xB,WACvE,CAEC7I,IAIT,ICrGK,IAAMo8G,GAAU,wBAEVC,GAAc,WAKzB,OAAA1pD,IAFA,SAAA0pD,EAAY3qG,GAAgB8pB,QAAA6gF,GAAArsI,OAFnBosI,QAAA,GAGPxkI,KAAKwkI,IAAW1qG,CAClB,GAAA,CAAA,CAAAniC,IAAA,QAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACNlsI,KACd,GAAA,CAAAX,IAAA,QAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACN5rF,KACd,GAAA,CAAAjhD,IAAA,OAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACN3gI,IACd,GAAA,CAAAlM,IAAA,UAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACNE,OACd,GAAA,CAAA/sI,IAAA,WAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACN7yG,QACd,GAAA,CAAAh6B,IAAA,UAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACNhzG,OACd,GAAA,CAAA75B,IAAA,gBAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACN5yG,aACd,GAAA,CAAAj6B,IAAA,UAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACNvzG,OACd,GAAA,CAAAt5B,IAAA,WAAAiM,IAEA,WAEE,OADa5D,KAAKwkI,IACNl6F,YACd,GAAA,CAAA3yC,IAAA,WAAAW,MAMO,WAEL,OADa0H,KAAKwkI,IACNG,UACd,GAAA,CAAAhtI,IAAA,WAAAW,MAOO,WAEL,OADa0H,KAAKwkI,IACNI,UACd,GAAA,CAAAjtI,IAAA,UAAAW,MAMO,WAEL,OADa0H,KAAKwkI,IACNK,SACd,GAAA,CAAAltI,IAAA,SAAAW,MAMO,WAEL,OADa0H,KAAKwkI,IACN5vD,QACd,GAAA,CAAAj9E,IAAA,SAAAW,MAMO,WAEL,OADa0H,KAAKwkI,IACNnD,QACd,GAAA,CAAA1pI,IAAA,eAAAW,MAOO,SAAawsI,GAEX,OADM9kI,KAAKwkI,IACNr7F,aAAa27F,EAC3B,GAAA,CAAAntI,IAAA,cAAAW,MAOO,SAAYwsI,GAEV,OADM9kI,KAAKwkI,IACNO,YAAYD,EAC1B,GAAA,CAAAntI,IAAA,aAAAW,MAOO,SAAWuL,GAET,OADM7D,KAAKwkI,IACNjQ,OAAO1wH,EACrB,GAAA,CAAAlM,IAAA,UAAAW,MAQO,WAGL,OAFa0H,KAAKwkI,IACC/C,UACNt9H,KAAI,SAACi6B,GAAmB,OAAAA,EAAKkkG,aAC5C,GAAA,CAAA3qI,IAAA,YAAAW,MAMO,WAA+B,IAAA0sI,EAE7B,eAAAA,EADMhlI,KAAKwkI,IACNrrH,2BAAL6rH,EAAa1C,UACtB,GAAA,CAAA3qI,IAAA,aAAAW,MAOO,WAGL,OAFa0H,KAAKwkI,IACCS,aACN9gI,KAAI,SAACi6B,GAAmB,OAAAA,EAAKkkG,aAC5C,GAAA,CAAA3qI,IAAA,UAAAW,MAMO,WACL,IACMU,EADOgH,KAAKwkI,IACAU,UAClB,OAAOlsI,eAAAA,EAAMspI,UACf,GAAA,CAAA3qI,IAAA,cAAAW,MAMO,WAGL,OAFa0H,KAAKwkI,IACCW,cACNhhI,KAAI,SAACi6B,GAAmB,OAAAA,EAAKkkG,aAC5C,GAAA,CAAA3qI,IAAA,cAAAW,MAOO,SAAYg+E,GACjB,IAAMx8C,EAAO95B,KAAKwkI,IACdY,GAA+C,EAC3C/mG,EAAavE,EAAbuE,SACJ,GAAAvoC,MAAMoB,QAAQmnC,GACZ,GAAAA,EAAS1oC,OAAS,EACpB,GAAI2gF,EAAM,CACF,IAAAwwC,EAAQhtF,EAAKurG,OACnBve,EAAMwe,QACNF,EAAgBte,EAAM3iH,KAAI,SAACi6B,GAAS,OAAAA,EAAKkkG,aAC3C,MACE8C,EAAgB/mG,EAASl6B,KAAI,SAACi6B,GAAS,OAAAA,EAAKkkG,mBAG9B8C,GAAA,OAETntH,GAAUomB,KACH+mG,EAAA/mG,GAEX,OAAA+mG,CACT,GAAA,CAAAztI,IAAA,SAAAW,MASO,SAAOA,GACZ,IAAMwhC,EAAO95B,KAAKwkI,IAClB,GAAKlsI,EAAL,CAKM,IACA6lI,EADWrkG,EAATnU,KACgB08G,QAAQ/pI,GAChC,GAAK6lI,EAKWA,EAAW8G,aACE9gI,KAAI,SAACohI,GAAA,OAAWA,EAAMjtI,SAClC+5B,QAAQyH,EAAKxhC,OAAS,EACjCmsE,GAAS,WAAQl0C,OAAKj4B,EAA4C,yCAGxE6lI,EAAWrjH,cAVL2pD,GAAS,WAAQl0C,OAAKj4B,EAAsB,kBALlD,MAFEwhC,EAAKhf,QAkBT,GAAA,CAAAnjB,IAAA,UAAAW,MAOO,SAAQuL,GACb,IAAMi2B,EAAO95B,KAAKwkI,IAIZgB,EAAY,CAChB,QACA,QACA,YAEIC,EAAYpsH,GAAKxV,EAAA,CAAO,YAAY0sB,OAAGi1G,IACrCnpI,EAASy9B,EAAKnU,KAAKof,OAAnB1oC,KACEmpI,EAAA/1H,SAAQ,SAACi2H,GACjB,IAAMC,EAAgB/hI,GAAIC,GAAMxH,eAAAA,EAAOqpI,KAA8BA,GAChEhtH,GAAYitH,KAAgBF,EAAUC,GAA6BC,EAC1E,IACOlvI,OAAAq5B,OAAOgK,EAAKj2B,KAAM4hI,GAClBhvI,OAAAq5B,OAAOgK,EAAM2rG,GACpB3rG,EAAKmoC,QACP,IAAA,CArQyB,skBCK3B,IAAQ9oE,GAAmB1C,OAAOC,UAA1ByC,eAIKysI,GAAiD,CAC5DlrD,YAAa,KACbmrD,UAAW,KACXC,UAAW,KACXhpD,UAAW,KACX7rD,SAAS,GAGE80G,GAAgBtvI,OAAO4F,KAAKupI,IAE5BI,aAAoBD,GAAe,CAAA,UAAW,WAAY,YAE1DE,GAAa,iBAcbC,GAAS,WA+Eb,SAAAA,EACLvgH,EACA9hB,EACAsV,GACA,IAAAwqC,EAAA3jD,KAAA4jD,QAAAsiF,GAAA9tI,EAAA4H,KAAA,YAAA,GAAA5H,OA9EM6tI,QAAA,GAAA7tI,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,YAAA,GAAA5H,EAAA4H,KAAA,cAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,mBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,mBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,qBAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,eAAA,GA+ENA,KAAK6D,KAAOA,EACZ7D,KAAK2lB,KAAOA,EAEN,IAAAof,EAASpf,EAAKof,QAAU,GACxBmL,EAASnL,EAAOmL,QAAU,IAC1B7zC,EAAO0oC,EAAO1oC,MAAQ,GACtB8pI,EAAe9pI,EAAKgiC,UAAY,WAChC+nG,EAAY/pI,EAAKu8C,OAAS,QAC1B3b,EAAY5gC,EAAK/D,OAAS,QAC1B+tI,EAAehqI,EAAK80B,UAAY,WAGtCnxB,KAAKsmI,MAAQ,KACbtmI,KAAKq+B,SAAW,KAChBr+B,KAAKurG,MAAQ,EAGbvrG,KAAKumI,aAAc,EACnBvmI,KAAKwmI,UAAW,EAChBxmI,KAAKymI,WAAY,EACjBzmI,KAAK0mI,UAAW,EAChB1mI,KAAK2mI,UAAW,EAChB3mI,KAAK4mI,YAAa,EAGlB5mI,KAAK0xB,SAAU,EACf1xB,KAAK0kI,SAAU,EACf1kI,KAAKwxB,SAAU,EACfxxB,KAAK4xB,eAAgB,EACrB5xB,KAAKixB,SAAU,EACfjxB,KAAK2xB,SAAWoT,EAAO8hG,UAMvB7mI,KAAK6lI,UAAY,KACjB7lI,KAAK8lI,UAAY,KACjB9lI,KAAK06E,YAAc,KACnB16E,KAAK88E,UAAY,KAKZ98E,KAAAimI,ItX1JT,SAAkB/1F,GAChB,IAAI7Y,IAAO7b,GACX,OAAO7kB,GAASu5C,GAAU7Y,CAC5B,CsXuJuByvG,CAAS52F,GAIvBlwC,KAAA1H,MAAQkgB,GAAM5U,GAAIC,EAAMo5B,IACzBj9B,KAAKimI,IACLriI,GAAIC,EAAMo5B,GACR,IAAE8pG,EAAwBphH,EAAxBohH,QAASC,EAAerhH,EAAfqhH,WACbD,EAAQnjI,IAAI5D,KAAK1H,QACnBmsE,GAAS,OAAA,qBAAAl0C,OAA6BvwB,KAAK1H,QAErCyuI,EAAAxjI,IAAIvD,KAAK1H,MAAO0H,MACbgnI,EAAAzjI,IAAIvD,KAAKimI,IAAajmI,MAGjCA,KAAK44C,MAAQh1C,GAAIC,EAAMuiI,IAAc,GAErCpmI,KAAKmxB,SAAWvtB,GAAIC,EAAMwiI,KAAiB,EAG3C,IAAMhoG,EAAWx6B,EAAKsiI,IAGL,IAAb9nG,IACFr+B,KAAKq+B,SAAWA,GAKhBr+B,KAAKmZ,OADHA,GAAUA,aAAkB+sH,EAChB/sH,EAEA,KAKF6sH,GAAAv2H,SAAQ,SAACyoC,QACK,IAAfr0C,EAAKq0C,KAGdyL,EAAKzL,GAAQr0C,EAAKq0C,GAEtB,IAGAl4C,KAAKinI,cAELjnI,KAAKknI,eAIDpxI,MAAMoB,QAAQmnC,GAChBr+B,KAAKu0H,OAAOl2F,IACU,IAAbA,GAAsB0G,EAAOg4C,MACtC/8E,KAAKmnI,eAKPnnI,KAAKonI,cACLpnI,KAAKqnI,gBAGLrnI,KAAKiiE,SAELt8C,EAAK2hH,OAAOtnI,KACd,CAAA,OAAA+6E,GAAAmrD,EAAA,CAAA,CAAAvuI,IAAA,cAAAW,MAQQ,WACN,IAAQqtB,EAAwB3lB,KAAxB2lB,KAAMrtB,EAAkB0H,KAAlB1H,MAAO6gB,EAAWnZ,KAAXmZ,OACbouH,EAAe5hH,EAAf4hH,WACApG,EAAkBx7G,EAAKof,OAAvBo8F,cACJnhI,KAAKwxB,SACI+1G,EAAAhkI,IAAIjL,GAAO,IAKnB6oI,GAAD,MAAkBhoH,GAAAA,EAAQqY,SACjB+1G,EAAAhkI,IAAIjL,GAAO,EAE1B,GAAA,CAAAX,IAAA,eAAAW,MAMQ,WACA,IAAEqtB,EAAS3lB,KAAT2lB,KACFgM,EAAa3xB,KAAb2xB,SACEoT,EAAWpf,EAAXof,OACJxsB,GAASwsB,EAAOyiG,cAAgBxnI,KAAK2kI,WAAa5/F,EAAOyiG,cAC3D7hH,EAAK8hH,YAAYlkI,IAAIvD,KAAK1H,OAAO,GACtBq5B,GAAA,IAES,IAAlB3xB,KAAKq+B,UAAqB0G,EAAOg4C,OACxBprD,GAAA,GAETA,EACFhM,EAAK8hH,YAAYlkI,IAAIvD,KAAK1H,OAAO,GAE5BqtB,EAAA8hH,YAAA,OAAmBznI,KAAK1H,OAE/B0H,KAAK2xB,SAAWA,CAClB,GAAA,CAAAh6B,IAAA,cAAAW,MAMQ,WACA,IAAEqtB,EAAkB3lB,KAAlB2lB,KAAkB3lB,KAAZ0kI,SACC1kI,KAAK0nI,eAClB/hH,EAAKgiH,WAAWpkI,IAAIvD,KAAK1H,OAAO,EAEpC,GAAA,CAAAX,IAAA,SAAAW,MASO,SAAOuL,GAAmD,IAAAqgD,EAAAlkD,KACzDusB,EAAO,GAMT,GALCz2B,MAAMoB,QAAQ2M,GAGZ0oB,EAAAhqB,KAAApE,MAAAouB,EAAAt1B,EAAQ4M,IAFb0oB,EAAKhqB,KAAKsB,KAIR0oB,EAAK52B,QAAU,GAAf,CAGCG,MAAMoB,QAAQ8I,KAAKq+B,YACtBr+B,KAAKq+B,SAAW,IAEZ,IAAEA,EAAmBr+B,KAAnBq+B,SAAU1Y,EAAS3lB,KAAT2lB,KACb4G,EAAA9c,SAAQ,SAAC2uB,GACZ,IAAItE,EAAO,KACPsE,aAAgB8nG,GACXpsG,EAAAsE,GACFwpG,SAAS1jF,EAAKv+B,KAAMu+B,IAEzBpqB,EAAO,IAAIosG,EAAShiF,EAAKv+B,KAAMyY,EAAM8lB,GACrC7lB,EAAS97B,KAAKu3B,GAElB,IACAnU,EAAK2hH,OAAOtnI,MACZA,KAAK6nI,eAhBL,CAiBF,GAAA,CAAAlwI,IAAA,WAAAW,MASO,SAASqtB,EAAiBxM,EAAmB/e,GAAsB,IAAA0tI,EAAA9nI,KAClEq9B,EAAalkB,EACf8qE,GAAc,EAOlB,GANI1rE,GAASne,KACG6pF,EAAA7pF,KAGMijC,aAAAA,EAAAA,EAAY4nG,eAAgB,IACbvvF,MAAK,SAAC6vF,GAAA,OAAUA,IAAUuC,KAEvD,MAAA,IAAI1uG,MAAM,4EAGlB,GAAIiE,IAAer9B,KACX,MAAA,IAAIo5B,MAAM,sEAGlB,GAAItjC,MAAMoB,QAAQmmC,aAAY,EAAZA,EAAYgB,UAAW,CACjC,IAAA0pG,EAAgB1qG,aAAAA,EAAAA,EAAYgB,SAAS4lD,GACvC,GAAA8jD,GAAiBA,IAAkB/nI,KAErC,MAEJ,CAIA,IAAIgoI,EAAW,KAYf,GAXI3qG,aAAsB6oG,GACnBpwI,MAAMoB,QAAQmmC,aAAAA,EAAAA,EAAYgB,YAC7BhB,EAAWgB,SAAW,IAExB2pG,EAAW7uH,EAAOklB,UAElB2pG,EAAWriH,EAAK0Y,UAKbvoC,MAAMoB,QAAQ8wI,GACX,MAAA,IAAI5uG,MAAM,kIAGlB,IAAM6uG,EAAaD,EAASryI,OACtBuyI,EAAYloI,KAAK4kI,WAInB,GAFJ5kI,KAAK8a,SAEDvC,GAASne,GAAQ,CACnB,IAAI6pF,EAAc7pF,EACd,GAAAijC,IAAer9B,KAAKmZ,OAIJ6uH,EAASryI,OACXsyI,GAAcC,GAAajkD,IACzCA,GAAe,GAGV+jD,EAAAlkI,OAAOmgF,EAAa,EAAGjkF,KAClC,MACEgoI,EAASzlI,KAAKvC,MAGhBA,KAAKmZ,OAASkkB,EAIAr9B,KAAKqlI,OACb51H,SAAQ,SAAC2uB,GACb,IAAMtE,EAAOsE,EACbtE,EAAKnU,KAAOA,EACZA,EAAKohH,QAAQxjI,IAAIu2B,EAAKxhC,MAAOwhC,GAC7BnU,EAAKqhH,WAAWzjI,IAAIu2B,EAAKmsG,IAAansG,GAClCA,EAAKnI,UACPhM,EAAK8hH,YAAYlkI,IAAIu2B,EAAKxhC,OAAO,EAErC,MAEoB+kC,aAAA,EAAAA,EAAYgoG,SAAU1/G,EAAK0Y,SAASl6B,KAAI,SAACi6B,GAAS,OAAAA,EAAKinG,UAAQ9vF,QACvE9lC,SAAQ,SAACqqB,GACnBA,EAAKmoC,SACLnoC,EAAKutG,eACP,IAEA1hH,EAAK2hH,QACP,GAAA,CAAA3vI,IAAA,SAAAW,MAQQ,SAAO8lC,EAAoBhkC,GAC3B,IAAEurB,EAAiB3lB,KAAjB2lB,KAAMxM,EAAWnZ,KAAXmZ,OACR6uH,EAAWhoI,KAAKmlI,cAClBrrG,EAAO,KACPsE,aAAgB8nG,GACXpsG,EAAAsE,GACFwpG,SAASjiH,EAAMxM,EAAQ/e,GACnBgkC,IACTtE,EAAO,IAAIosG,EAASvgH,EAAMyY,EAAMjlB,GAC5BZ,GAASne,IACF4tI,EAAAlkI,OAAO1J,EAAO,EAAG0/B,GAEnBkuG,EAAAv4H,SAAQ,SAAC04H,GAChBA,EAAQlmE,QACV,KAEFt8C,EAAK2hH,QACP,GAAA,CAAA3vI,IAAA,eAAAW,MAOO,SAAawsI,GACZ,IAAA1qI,EAAQ4F,KAAK4kI,WACd5kI,KAAAooI,OAAOtD,EAAS1qI,EACvB,GAAA,CAAAzC,IAAA,cAAAW,MAOO,SAAYwsI,GACX,IAAA1qI,EAAQ4F,KAAK4kI,WACd5kI,KAAAooI,OAAOtD,EAAS1qI,EAAQ,EAC/B,GAAA,CAAAzC,IAAA,SAAAW,MAMO,WACC,IAAEqtB,EAAS3lB,KAAT2lB,KAEFmhG,EAAQ9mH,KAAKqlI,OACb2C,EAAWhoI,KAAKmlI,cAChB/qI,EAAQ4F,KAAK4kI,WAGf9uI,MAAMoB,QAAQ8wI,IACPA,EAAAlkI,OAAO1J,EAAO,GAGnB0sH,EAAAr3G,SAAQ,SAACqqB,GACbA,EAAKqyC,OACP,IAES67D,EAAAv4H,SAAQ,SAACqqB,GAChBA,EAAKmoC,QACP,IAEAjiE,KAAKqoI,gBACL1iH,EAAK2hH,QACP,GAAA,CAAA3vI,IAAA,QAAAW,MAMQ,WACA,IAAEqtB,EAAgB3lB,KAAhB2lB,KAAMrtB,EAAU0H,KAAV1H,MACTqtB,EAAAgiH,kBAAkBrvI,GAClBqtB,EAAA4hH,kBAAkBjvI,GAClBqtB,EAAA8hH,mBAAmBnvI,GACnBqtB,EAAAohH,eAAezuI,GACfqtB,EAAA2iH,iBAAiBhwI,GACjBqtB,EAAAqhH,WAAkB,OAAAhnI,KAAKimI,IAC9B,GAAA,CAAAtuI,IAAA,eAAAW,OAAAiwI,EAAApuF,GAAAG,GAAAmC,MAMA,SAAA+C,IAAA,IAAAza,EAAAxY,EAAA,OAAA+tB,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EACoE,GAA5DyoB,EAA+BnhC,GAAI5D,KAAM,gBAAkB,CAAA,GAC3C,IAAlBA,KAAKq+B,UAAsBr+B,KAAKixB,QAAS,CAAAwuB,EAAAnjC,KAAA,GAAA,KAAA,CAAA,IACvCtgB,EAAW+oC,EAAOo+F,MAAO,CAAA1jF,EAAAnjC,KAAA,GAAA,KAAA,CAGf,OAFZtc,KAAKixB,SAAU,EACfjxB,KAAKiiE,SACD11C,EAAO,GAACkzB,EAAAnjC,KAAA,EACCyoB,EAAOo+F,KAAKnjI,MAAI,KAAA,EAAtBusB,EAAAkzB,EAAAjE,KACFx7C,KAAA2lB,KAAKmqB,KAAK,OAAQ,CACrBhW,KAAM95B,KACN6D,KAAM0oB,IAERvsB,KAAKixB,SAAU,EACXn7B,MAAMoB,QAAQq1B,IAASA,EAAK52B,OAAS,EACvCqK,KAAKu0H,OAAOhoG,GAEZvsB,KAAKq+B,UAAW,EAElBr+B,KAAKiiE,SAAO,KAAA,GAAA,IAAA,MAAA,OAAAxiB,EAAAzC,OAAA,GAAAwC,EAAAx/C,KAGlB,KAAA,WArB4C,OAAAuoI,EAAApqI,MAAA6B,KAAA9B,UAAA,IAAA,CAAAvG,IAAA,MAAAW,MA8BrC,SAAI8lC,GAA2B,IAAAoqG,EAAAxoI,KAC5B2lB,EAAS3lB,KAAT2lB,KACKlvB,OAAO4F,KAAK+hC,GACpB3uB,SAAQ,SAAC9X,IAERwB,GAAevC,KAAKgvI,GAAgBjuI,IAAgB,UAARA,KAG9C6wI,EAAK7wI,GAAOymC,EAAKzmC,IAEP,aAARA,GACG6wI,EAAAC,YAAYrqG,EAAKzmC,GAE1B,IACAguB,EAAK8f,QAAQzlC,KACf,GAAA,CAAArI,IAAA,YAAAW,MAQO,WACL,OAAO0H,KAAKmZ,MACd,GAAA,CAAAxhB,IAAA,aAAAW,MAOO,WAGL,IAFA,IAAMowI,EAAU,GACZ5uG,EAAO95B,KAAKmZ,OACT2gB,GACL4uG,EAAQnmI,KAAKu3B,GACbA,EAAOA,EAAK3gB,OAEP,OAAAuvH,CACT,GAAA,CAAA/wI,IAAA,cAAAW,MAMO,WACC,IAAE6gB,EAAiBnZ,KAAjBmZ,OAAQwM,EAAS3lB,KAAT2lB,KACZ4G,EAAmB,GAQhB,OAPHpT,EACErjB,MAAMoB,QAAQiiB,EAAOklB,YACvB9R,EAAOpT,EAAOklB,UAEP1Y,IACT4G,EAAO5G,EAAK0Y,UAEP9R,CACT,GAAA,CAAA50B,IAAA,cAAAW,MAOO,SAAYg+E,GACjB,IAAI8uD,GAA+C,EAC3C/mG,EAAar+B,KAAbq+B,SACJ,GAAAvoC,MAAMoB,QAAQmnC,GACZ,GAAAA,EAAS1oC,OAAS,EACpB,GAAI2gF,EAAM,CACF,IAAAwwC,EAAQ9mH,KAAKqlI,OACnBve,EAAMwe,QACNF,EAAgBte,EAAM3iH,KAAI,SAACi6B,GAAS,OAAAA,EAAKkkG,aAC3C,MACE8C,EAAgB/mG,EAASl6B,KAAI,SAACi6B,GAAS,OAAAA,EAAKkkG,mBAG9B8C,GAAA,OAETntH,GAAUomB,KACH+mG,EAAA/mG,GAEX,OAAA+mG,CACT,GAAA,CAAAztI,IAAA,UAAAW,MAMO,WACC,IAAAowI,EAAU1oI,KAAKilI,aACd,OAAAyD,EAAQA,EAAQ/yI,OAAS,IAAM,IACxC,GAAA,CAAAgC,IAAA,WAAAW,MAOO,WAEE,OADM0H,KAAKmlI,cACN9yG,QAAQryB,KACtB,GAAA,CAAArI,IAAA,UAAAW,MAQO,WACC,IAAAwuH,EAAQ9mH,KAAKilI,aAEnB,OADAne,EAAMl0F,QAAQ5yB,MACP8mH,EAAMhqE,SACf,GAAA,CAAAnlD,IAAA,WAAAW,MAMO,WAEL,OADgB0H,KAAKilI,aACNtvI,MACjB,GAAA,CAAAgC,IAAA,SAAAW,MAQO,WACL,IAAAqwI,EAAyC3oI,KAAK2lB,KAAtCof,EAAA4jG,EAAA5jG,OAAQujG,EAAWK,EAAXL,UAEZv1G,GAAO,EACX,GAH2B41G,EAAAC,UAGZ,CAEP,IAAAC,EAAY7oI,KAAKsiI,WAChBvvG,EAAAgS,EAAOxF,OAAOspG,EACvB,CAQO,OANH91G,EACQu1G,EAAA/kI,IAAIvD,KAAK1H,OAAO,GACjBgwI,EAAU1kI,IAAI5D,KAAK1H,QAClBgwI,EAAA,OAAOtoI,KAAK1H,OAGjBy6B,CACT,GAAA,CAAAp7B,IAAA,YAAAW,MAMO,WACL,IAAAwwI,EAAuC9oI,KAAK2lB,KAApCohH,EAAA+B,EAAA/B,QAAS6B,EAAWE,EAAXF,UACTG,EADoBD,EAAA/jG,OACpBgkG,sBAIR,IAAKhC,EAAQnjI,IAAI5D,KAAK1H,OAEb,OAAA,EAGL,GAAAswI,IAAcG,EAIT,OADG/oI,KAAK4mI,YAAc5mI,KAAK2mI,SAKpC,IAAIqC,GAAgB,EACdN,EAAU1oI,KAAKilI,aAUd,OATHyD,EAAQ/yI,OAAS,IACnBqzI,EAAgBN,EAAQ7rE,OAAM,SAAC/iC,GAAA,OAAmBA,EAAKnI,aAGrDi3G,EACQI,IAAkBhpI,KAAK2mI,UAAY3mI,KAAK4mI,YAExCoC,CAGd,GAAA,CAAArxI,IAAA,kBAAAW,MAMO,WACC,IAAEqtB,EAAiB3lB,KAAjB2lB,KAAMxM,EAAWnZ,KAAXmZ,OACN4rB,EAAWpf,EAAXof,OACA5T,EAA0C4T,EAA1C5T,SAAU83G,EAAgClkG,EAAhCkkG,aAAc9H,EAAkBp8F,EAAlBo8F,cAC5BhwE,EAAQhgC,IAAY,EAoBjB,OAnBHnxB,KAAKmxB,WAECggC,GAAA,IAELgwE,GAAD,MAAkBhoH,GAAAA,EAAQ+vH,oBAGpB/3E,GAAA,GAEkB,kBAAjB83E,EACLA,IACM93E,GAAA,GAEuB,mBAAjB83E,GAEZA,EAAajpI,KAAKsiI,cACZnxE,GAAA,GAGLA,CACT,GAAA,CAAAx5D,IAAA,aAAAW,MAMO,WACC,IAAEqtB,EAAS3lB,KAAT2lB,KACAijH,EAAsBjjH,EAAtBijH,UACAG,EADsBpjH,EAAXof,OACXgkG,sBACR,SAAIH,GAAcG,IAAyB/oI,KAAK4mI,YAAe5mI,KAAK2mI,WAK7D3mI,KAAKkpI,iBACd,GAAA,CAAAvxI,IAAA,cAAAW,MAMO,WACL,IAAI64D,IAAUvtD,GAAI5D,KAAM,yBAIjB,MAHuB,kBAAnBA,KAAK88E,YACd3rB,EAAQnxD,KAAK88E,WAER3rB,CACT,GAAA,CAAAx5D,IAAA,gBAAAW,MAMO,WACL,IAAI64D,IAAUvtD,GAAI5D,KAAM,2BAIjB,MAHyB,kBAArBA,KAAK06E,cACdvpB,EAAQnxD,KAAK06E,aAERvpB,CACT,GAAA,CAAAx5D,IAAA,cAAAW,MAMO,WACL,IAAI64D,IAAUvtD,GAAI5D,KAAM,yBAIjB,MAHuB,kBAAnBA,KAAK6lI,YACd10E,EAAQnxD,KAAK6lI,WAER10E,CACT,GAAA,CAAAx5D,IAAA,cAAAW,MAMO,WACL,IAAI64D,IAAUvtD,GAAI5D,KAAM,yBAIjB,MAHuB,kBAAnBA,KAAK8lI,YACd30E,EAAQnxD,KAAK8lI,WAER30E,CACT,GAAA,CAAAx5D,IAAA,YAAAW,MAOO,SAAU6L,GACT,IAAEwhB,EAAgB3lB,KAAhB2lB,KAAMrtB,EAAU0H,KAAV1H,MACRqvI,EAAaxjI,GAAOwhB,EAAKgiH,WACxB,SAAGhiH,EAAKohH,QAAQnjI,IAAItL,KAAUqvI,EAAW/jI,IAAItL,GACtD,GAAA,CAAAX,IAAA,aAAAW,MAOO,SAAW6L,GAChB,IAAQwhB,EAA4B3lB,KAA5B2lB,KAAMrtB,EAAsB0H,KAAtB1H,MAAOsuI,EAAe5mI,KAAf4mI,WACbgC,EAAsBjjH,EAAtBijH,UACAG,EADsBpjH,EAAXof,OACXgkG,sBACJ,GAAAH,IAAcG,GAAyBnC,EAAmB,OAAA,EACxD,IAAAa,EAActjI,GAAOwhB,EAAK8hH,YACzB,SAAG9hH,EAAKohH,QAAQnjI,IAAItL,KAAUmvI,EAAY7jI,IAAItL,GACvD,GAAA,CAAAX,IAAA,YAAAW,MAOO,SAAU6L,GACf,IAAQk6B,EAA0Br+B,KAA1Bq+B,SAAU1Y,EAAgB3lB,KAAhB2lB,KAAMrtB,EAAU0H,KAAV1H,MACxB6wI,EAAqCxjH,EAAKof,OAAlCo8F,EAAAgI,EAAAhI,cAAeiC,EAAU+F,EAAV/F,UAEvB,IAAKz9G,EAAKohH,QAAQnjI,IAAItL,GAAe,OAAA,EAEjC,IAAC0H,KAAKopI,cAAsB,OAAA,EAC1B,IAAA7B,EAAapjI,GAAOwhB,EAAK4hH,WAE/B,GAAIpG,EACF,QAASoG,EAAW3jI,IAAItL,GAE1B,IAAIk5B,GAAU,EAEV,GAAA+1G,EAAW3jI,IAAItL,KAGD,aAAd8qI,GAEGpjI,KAAKqhI,UAGH,OAAA,EAGLvrI,MAAMoB,QAAQmnC,IAAaA,EAAS1oC,OAAS,EAErC67B,EAAA6M,EAASw+B,OAAM,SAAC/iC,GAEjB,OADgBA,EAAKsoG,UAAUmF,EAExC,IAKU/1G,EADMxxB,KAAKilI,aACHvvF,MAAK,SAAC5b,GAAA,OAASytG,EAAW3jI,IAAIk2B,EAAKxhC,UAEhD,OAAAk5B,CACT,GAAA,CAAA75B,IAAA,kBAAAW,MAMO,WACL,IAAQ+lC,EAA0Br+B,KAA1Bq+B,SAAU1Y,EAAgB3lB,KAAhB2lB,KAAMrtB,EAAU0H,KAAV1H,MAChB6oI,EAAkBx7G,EAAKof,OAAvBo8F,cAER,IAAKx7G,EAAKohH,QAAQnjI,IAAItL,GAAe,OAAA,EAEjC,IAAC0H,KAAKopI,cAAsB,OAAA,EAE5B,GAAAjI,EAAsB,OAAA,EAEtB,IAACrrI,MAAMoB,QAAQmnC,GAAkB,OAAA,EAErC,IAAIgrG,EAA+B,KAgB5B,OAfehrG,EAASqX,MAAK,SAAC5b,GAC/B,QAAAA,EAAKyuF,oBAIL9vG,GAAO4wH,KACTA,EAAevvG,EAAKsoG,aAElBiH,IAAiBvvG,EAAKsoG,YAK5B,GAGF,GAAA,CAAAzqI,IAAA,UAAAW,MAMO,WAEL,OADiB0H,KAAKmlI,cACN,KAAOnlI,IACzB,GAAA,CAAArI,IAAA,SAAAW,MAMO,WACC,IAAA0vI,EAAWhoI,KAAKmlI,cACf,OAAA6C,EAASA,EAASryI,OAAS,KAAOqK,IAC3C,GAAA,CAAArI,IAAA,SAAAW,MAMO,WACL,IAAI+oI,GAAS,EAMN,OAJIA,EADPvrI,MAAMoB,QAAQ8I,KAAKq+B,UACZr+B,KAAKq+B,SAAS1oC,QAAU,GAEvBqK,KAAKq+B,SAEVgjG,CACT,GAAA,CAAA1pI,IAAA,OAAAW,MAUO,SAAKgxI,GACVtpI,KAAK4mI,WAAa0C,EACbtpI,KAAA2xB,SAAW3xB,KAAKupI,aAChBvpI,KAAA0xB,QAAU1xB,KAAKwpI,WACtB,GAAA,CAAA7xI,IAAA,gBAAAW,MAMO,WACL0H,KAAKiiE,SAEDjiE,KAAK2xB,WAA8B,IAAlB3xB,KAAKq+B,UACxBr+B,KAAKmnI,eAEPnnI,KAAKypI,gBACP,GAAA,CAAA9xI,IAAA,iBAAAW,MAQO,SAAe6qG,GACpB,OAAOnjG,KAAKqqF,aAAarqF,KAAKupI,aAAcpmC,EAC9C,GAAA,CAAAxrG,IAAA,cAAAW,MASO,SACLq5B,EACAwxE,GAEM,IAAEx9E,EAAS3lB,KAAT2lB,KACAof,EAAWpf,EAAXof,OACF1wB,EAAUshB,GAAA,CACd+zG,UAAU,GACPvmC,GAGDh/F,EAAMwhB,EAAK8hH,YAMf,GALKpzH,EAAQq1H,WACLvlI,EAAA,IAAIF,IAAI0hB,EAAK8hH,cAIjB91G,EAAU,CAEZ,IAAMg4G,EAAoB,GAE1BA,EAAkBpnI,KAAKvC,MACnB+kC,EAAO6kG,cAET5pI,KAAKilI,aAAax1H,SAAQ,SAACqqB,GACzB6vG,EAAkBpnI,KAAKu3B,EACzB,IAEgB6vG,EAAAl6H,SAAQ,SAACqqB,GACzB,IAIO+vG,EAJHC,GAAgB,EAEhBhwG,EAAK3gB,OACS2wH,EAAAhwG,EAAK3gB,OAAO2wH,gBAE5BA,EAAgBnkH,SAAckkH,UAAdlkH,EAAMof,cAAN8kG,IAAcA,OAAdA,EAAAA,EAAcnvD,YAE5BovD,GAEehwG,EAAKqrG,cACb11H,SAAQ,SAACs6H,GACZ5lI,EAAA,OAAO4lI,EAAMzxI,OAEjByxI,EAAM9nE,SACN8nE,EAAMN,gBACR,IAGEtlI,EAAAZ,IAAIu2B,EAAKxhC,OAAO,GACpBwhC,EAAKmoC,SACLnoC,EAAK2vG,gBACP,GACF,MACMtlI,EAAA,OAAOnE,KAAK1H,OAOX,OAJH+b,EAAQq1H,UACV1pI,KAAKgqI,gBAGArkH,EAAKs+G,YAAY9/H,EAC1B,GAAA,CAAAxM,IAAA,gBAAAW,MAQO,SAAc6qG,GACnB,OAAOnjG,KAAKiqI,YAAYjqI,KAAKkqI,YAAa/mC,EAC5C,GAAA,CAAAxrG,IAAA,aAAAW,MASO,SACLosI,EACAvhC,GAEM,IAAEx9E,EAAS3lB,KAAT2lB,KACFtR,EAAUshB,GAAA,CAGdw0G,UAAU,EAGVT,UAAU,GACPvmC,GAECp+D,EAASpf,EAAKof,QAAU,GAC1B5gC,EAAMwhB,EAAKgiH,WAIf,GAHKtzH,EAAQq1H,WACLvlI,EAAA,IAAIF,IAAI0hB,EAAKgiH,aAEjBtzH,EAAQ81H,UAAYnqI,KAAKkpI,kBAEpB,OAAAvjH,EAAKykH,WAAWjmI,GAErB,GAAAnE,KAAK0nI,cACP,GAAIhD,EAAS,CACX,IAAM2F,EAAWv0I,MAAMK,KAAKgO,EAAI9H,QAC3B0oC,EAAOulG,gBACVnmI,EAAId,QAEGgnI,EAAA56H,SAAQ,SAACnX,GACV,IAAAwhC,EAAOnU,EAAK08G,QAAQ/pI,GAC1BwhC,SAAAA,EAAMmoC,QACR,IACI99D,EAAAZ,IAAIvD,KAAK1H,OAAO,EACtB,MACM6L,EAAA,OAAOnE,KAAK1H,OAIb,OADP0H,KAAKiiE,SACEt8C,EAAKykH,WAAWjmI,EACzB,GAAA,CAAAxM,IAAA,0BAAAW,MAMO,WACC,IAAE+lC,EAAar+B,KAAbq+B,SACR,IAAKvoC,MAAMoB,QAAQmnC,IAAaA,EAAS1oC,QAAU,EAE1C,OAAA,EAET,IAAIw7D,GAAQ,EAoBL,OAnBE9yB,EAAAqX,MAAK,SAACzM,GAEb,OAAIA,EAAMigG,qBAENjgG,EAAMm5F,cACNn5F,EAAMs/E,oBAEJt/E,EAAMshG,4BACAp5E,GAAA,GACD,IAOHA,GAAA,GACD,IACT,IACOA,CACT,GAAA,CAAAx5D,IAAA,gBAAAW,MAQO,SAAc6qG,GACf,GAAAnjG,KAAKuoH,kBAAmB,CAIpB,IAAAiiB,EAAcxqI,KAAKuqI,0BAClB,OAAAvqI,KAAKmiI,WAAWqI,EAAarnC,EACtC,CACA,OAAOnjG,KAAKmiI,YAAYniI,KAAKoiI,YAAaj/B,EAC5C,GAAA,CAAAxrG,IAAA,aAAAW,MAYO,SACLk5B,EACA2xE,GAEM,IAAEx9E,EAAS3lB,KAAT2lB,KACFof,EAASpf,EAAKof,QAAU,GACxB1wB,EAA8BshB,GAAA,CAGlCw0G,UAAU,EAGVT,UAAU,GACPvmC,GAEDh/F,EAAMwhB,EAAK4hH,WAIX,GAHClzH,EAAQq1H,WACLvlI,EAAA,IAAIF,IAAI0hB,EAAK4hH,cAEhBvnI,KAAKopI,cAED,OAAAzjH,EAAK8kH,WAAWtmI,GAEzB,GAAIkQ,EAAQ81H,UAAYnqI,KAAKkpI,kBAEpB,OAAAvjH,EAAK8kH,WAAWtmI,GAGrB,GAAAqtB,IAAYxxB,KAAKoiI,eACDpiI,KAAKuoH,oBAAsBvoH,KAAKuqI,2BAGzC,OAAA5kH,EAAK8kH,WAAWtmI,IAIvBqtB,EACErtB,EAAAZ,IAAIvD,KAAK1H,OAAO,GAEhB6L,EAAA,OAAOnE,KAAK1H,OAGdysC,EAAOo8F,eAEL9sH,EAAQq1H,UAEV1pI,KAAKqnI,iBAIFrnI,KAAA0qI,sBAAsBl5G,EAASrtB,EAAKkQ,GAEpCrU,KAAA2qI,oBAAoBn5G,EAASrtB,EAAKkQ,GAGnCA,EAAQq1H,UACW/jH,EAAKilH,gBAAgB,CAAC5qI,KAAK1H,OAAQ,CACtDwkD,SAAS,IAEErtC,SAAQ,SAACqqB,GACpBA,EAAKutG,eACP,KAIG,OAAA1hH,EAAK8kH,WAAWtmI,EACzB,GAAA,CAAAxM,IAAA,sBAAAW,MAGQ,SACNk5B,EACArtB,EACAg/F,GAEA,IAAM9uF,EAA8BshB,GAAA,CAClCw0G,UAAU,EACVT,UAAU,GACPvmC,GAID,GAACnjG,KAAKopI,cAAN,CAEE,IAAE/qG,EAAar+B,KAAbq+B,SACJvoC,MAAMoB,QAAQmnC,IAAaA,EAAS1oC,OAAS,GAE3CwO,EAAA,OAAOnE,KAAK1H,OAGZ,IAAE6gB,EAAWnZ,KAAXmZ,OACHA,GACEA,EAAAwxH,oBAAoBn5G,EAASrtB,EAAKkQ,EAVhB,CAW3B,GAAA,CAAA1c,IAAA,wBAAAW,MAGQ,SACNk5B,EACArtB,EACAg/F,GAEA,IAAM9uF,EAA8BshB,GAAA,CAClCw0G,UAAU,EACVT,UAAU,GACPvmC,GAID,GAACnjG,KAAKopI,iBAEN/0H,EAAQ81H,WAAYnqI,KAAKkpI,mBAAzB,CAEE,IAAE7qG,EAAar+B,KAAbq+B,SACHvoC,MAAMoB,QAAQmnC,KACfA,EAAS1oC,QAAU,IAEnBwO,EAAA,OAAOnE,KAAK1H,OACP+lC,EAAA5uB,SAAQ,SAACqqB,GAEZzlB,EAAQ81H,UAAYrwG,EAAKovG,oBACzB13G,EACErtB,EAAAZ,IAAIu2B,EAAKxhC,OAAO,GAEhB6L,EAAA,OAAO21B,EAAKxhC,OAEbwhC,EAAA4wG,sBAAsBl5G,EAASrtB,EAAKkQ,GAC3C,KAhBgD,CAiBlD,GAAA,CAAA1c,IAAA,cAAAW,MAMO,SAAY64B,GACjBnxB,KAAKmxB,SAAWA,EAChBnxB,KAAKiiE,SACLjiE,KAAKypI,gBACP,GAAA,CAAA9xI,IAAA,SAAAW,MAQO,WACA0H,KAAAurG,MAAQvrG,KAAK2kI,WACb3kI,KAAAymI,UAAYzmI,KAAK6kI,UACjB7kI,KAAA0mI,SAAW1mI,KAAK40E,SAChB50E,KAAAwmI,SAAWxmI,KAAKqhI,SAChBrhI,KAAAumI,YAAcvmI,KAAKopI,cACnBppI,KAAA2mI,SAAW3mI,KAAK6qI,SAChB7qI,KAAA0kI,QAAU1kI,KAAKkqI,YACflqI,KAAA2xB,SAAW3xB,KAAKupI,aAChBvpI,KAAA0xB,QAAU1xB,KAAKwpI,YACfxpI,KAAA2lB,KAAK8f,QAAQzlC,KACpB,GAAA,CAAArI,IAAA,gBAAAW,MAMO,WACC,IAAEqtB,EAAgB3lB,KAAhB2lB,KAAMrtB,EAAU0H,KAAV1H,MACNivI,EAAe5hH,EAAf4hH,WACHvnI,KAAAwxB,QAAUxxB,KAAKoiI,YACfpiI,KAAA4xB,cAAgB5xB,KAAKuoH,kBACtBvoH,KAAKwxB,SACI+1G,EAAAhkI,IAAIjL,GAAO,GAExBqtB,EAAK8f,QAAQzlC,KACf,GAAA,CAAArI,IAAA,iBAAAW,MAOO,WAAuB,IAAAwyI,EAAA9qI,KACvBA,KAAA+qI,gBAAe,SAACjxG,GACfA,IAASgxG,IACbhxG,EAAKmoC,SACLnoC,EAAKutG,gBACP,GACF,GAAA,CAAA1vI,IAAA,gBAAAW,MAOO,WAAsB,IAAA0yI,EAAAhrI,KACtBA,KAAAirI,eAAc,SAACnxG,GACdA,IAASkxG,IACblxG,EAAKmoC,SACLnoC,EAAKutG,gBACP,GACF,GAAA,CAAA1vI,IAAA,gBAAAW,MAOO,WACY0H,KAAT2lB,KACkBilH,gBAAgB,CAAC5qI,KAAK1H,QACnCmX,SAAQ,SAACqqB,GACpBA,EAAKmoC,SACLnoC,EAAKutG,eACP,GACF,GAAA,CAAA1vI,IAAA,OAAAW,MASO,WACL,IAAMi0B,EAAmB,GAIlB,OAHFvsB,KAAA+qI,gBAAe,SAACjxG,GACnBvN,EAAKhqB,KAAKu3B,EACZ,IACOvN,CACT,GAAA,CAAA50B,IAAA,iBAAAW,MAOQ,SAAew/B,GACrBA,EAAG93B,MACG,IAAEq+B,EAAar+B,KAAbq+B,SACJvoC,MAAMoB,QAAQmnC,IAAaA,EAAS1oC,OAAS,GACtC0oC,EAAA5uB,SAAQ,SAACqqB,GAChBA,SAAAA,EAAMixG,eAAejzG,EACvB,GAEJ,GAAA,CAAAngC,IAAA,gBAAAW,MAOQ,SAAcw/B,GACpBA,EAAG93B,MACG,IAAEmZ,EAAWnZ,KAAXmZ,OACHA,IACLA,SAAAA,EAAQ8xH,cAAcnzG,GACxB,GAAA,CAAAngC,IAAA,WAAAW,MASO,WACD,IAAEguI,EAAUtmI,KAAVsmI,MAKC,OAJFA,IACHA,ED3pCU,IAAI7B,GC2pCUzkI,MACxBA,KAAKsmI,MAAQA,GAERA,CACT,KAp7BA,IAAAiC,CAo7BA,CAt4CoB,skBCWf,IAAM2C,GAAU,WA4FrB,OAAAnwD,IA9CO,SAAAmwD,EAAY72H,GAA+BuvC,QAAAsnF,GAAA9yI,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAAA4H,KAAA,cAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAAA4H,KAAA,mBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAAA4H,KAAA,oBAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAChD,IC5DHxJ,ED4DSuuC,EAA+BpP,GAAA,CACnCua,OAAQ,IACR7zC,KAAM,CAAC,EACPwqI,WAAW,EACXW,YAAa,EACb9sD,aAAa,EACbkvD,cAAc,EACd/D,WAAW,EACXyE,gBAAgB,EAChBxE,WAAW,EACX3E,eAAe,EACfhwG,UAAU,EACV83G,cAAc,EACdnsD,WAAW,EACXqmD,KAAM,KACNpmD,MAAM,EACNqmD,UAAW,WACX7jG,OAAQ,KAIRwpG,uBAAuB,EACvBoC,OAAQ,KACRC,SAAU,KACVC,SAAU,MACPh3H,GAELrU,KAAK+kC,OAASA,EACd/kC,KAAK8mH,MAAQ,GACb9mH,KAAKq+B,SAAW,GACXr+B,KAAA+mI,YAAc9iI,IACdjE,KAAAgnI,eAAiB/iI,IACjBjE,KAAA2nI,eAAiB1jI,IACjBjE,KAAAynI,gBAAkBxjI,IAClBjE,KAAAunI,eAAiBtjI,IACjBjE,KAAAsrI,eAAiBrnI,IACjBjE,KAAAsoI,cAAgBrkI,IACrBjE,KAAKurI,WAAa,KAElBvrI,KAAKwrI,WAAa,KAElBxrI,KAAKyrI,cAAe,EAEfzrI,KAAA4oI,UAAY5sI,EAAW+oC,EAAOxF,QACnCv/B,KAAK0rI,QCjGD,CAINC,IANDn1I,EAAMA,GAAO,IAAIyN,IAchBu0B,GAAAA,SAA6Btc,EAAWviB,GACvC,IAAM/D,EAAmDY,EAAKoN,IAAIsY,GAC9DtmB,EACHA,EAAS2M,KAAK5I,GAEdnD,EAAK+M,IAAI2Y,EAAM,CAACviB,GAAA,EAWlBo/B,IAAAA,SAA8B7c,EAAWviB,GACxC,IAAM/D,EAAmDY,EAAKoN,IAAIsY,GAC9DtmB,IACC+D,EACH/D,EAASkO,OAAOlO,EAASy8B,QAAQ14B,KAAa,EAAG,GAEjDnD,EAAK+M,IAAI2Y,EAAM,IAAA,EAelB4zB,KAAAA,SAA+B5zB,EAAWviB,GACzC,IAAI/D,EAAWY,EAAKoN,IAAIsY,GACpBtmB,GACFA,EACCiB,QACAsN,KAAI,SAAC3N,GACLA,EAAQmD,EAAA,KAIX/D,EAAWY,EAAKoN,IAAI,OAElBhO,EACCiB,QACAsN,KAAI,SAAC3N,GACLA,EAAQ0lB,EAAMviB,EAAA,GAAA,EDkClB,GAAA,CAAA,CAAAhC,IAAA,YAAAW,MAOO,SAAU+b,GACT,IAAE0wB,EAAW/kC,KAAX+kC,OACJ6mG,GAAa,EAChBn1I,OAAO4F,KAAKgY,GAA4C5E,SAAQ,SAAC9X,GAChE,IAAMimC,EAAMvpB,EAAQ1c,GAChBimC,IAAQmH,EAAOptC,KACJi0I,GAAA,EAGb7mG,EAAOptC,GAAOimC,EAElB,IACK59B,KAAA4oI,UAAY5sI,EAAW+oC,EAAOxF,QAC/BqsG,GAKF5rI,KAAK6rI,cAET,GAAA,CAAAl0I,IAAA,cAAAW,MAMO,WACL,OAAO0H,KAAKq+B,QACd,GAAA,CAAA1mC,IAAA,UAAAW,MAOO,SAAQ8lC,GACb,IAAItE,EAAO,KAOJ,OANHviB,GAAS6mB,IAAS7lB,GAAS6lB,GACtBtE,EAAA95B,KAAK+mI,QAAQnjI,IAAIw6B,GACfA,aAAgB8nG,KACzBpsG,EAAO95B,KAAK+mI,QAAQnjI,IAAIw6B,EAAK9lC,QAE1BwhC,IAAaA,EAAA,MACXA,CACT,GAAA,CAAAniC,IAAA,WAAAW,MAOO,SAASwhC,GACP,OAAA95B,KAAK8mH,MAAMz0F,QAAQyH,EAC5B,GAAA,CAAAniC,IAAA,YAAAW,MAOO,SAAUA,GACf,IAAI6gB,EAAS,KACP2gB,EAAO95B,KAAKqiI,QAAQ/pI,GAInB,OAHHwhC,IACF3gB,EAAS2gB,EAAKgyG,aAET3yH,CACT,GAAA,CAAAxhB,IAAA,aAAAW,MAOO,SAAWA,GACV,IAAAwhC,EAAO95B,KAAKqiI,QAAQ/pI,GACtBowI,EAAsB,GAInB,OAHH5uG,IACF4uG,EAAU5uG,EAAKmrG,cAEVyD,CACT,GAAA,CAAA/wI,IAAA,eAAAW,MAOO,SAAaA,GACZ,IAAAwhC,EAAO95B,KAAKqiI,QAAQ/pI,GACtB8B,GAAQ,EAIL,OAHH0/B,IACF1/B,EAAQ0/B,EAAK8qG,YAERxqI,CACT,GAAA,CAAAzC,IAAA,WAAAW,MAuBO,SACL8lC,EACA/pB,GAEA,IAAIyyG,EAAoB,GACpBlpF,EAAqB,GAMrB,GALArmB,GAAS6mB,IAAS7lB,GAAS6lB,GACvBR,EAAAQ,EACGA,aAAgB8nG,KACzBtoG,EAAMQ,EAAK9lC,OAERslC,GAAe,IAARA,EAEL,CACC,IAAA9D,EAAO95B,KAAKqiI,QAAQzkG,GACtB9D,IACFgtF,EAAQhtF,EAAKurG,OAEjB,MANUve,EAAA9mH,KAAK8mH,MAAMjwH,MAAM,GAQ3B,GAAIwd,EAAS,CACX,IAAM03H,EAA8Bp2G,GAAA,CAClC4J,OAAQ,KACRgsE,MAAOzzF,KACJzD,GAEDkE,GAASwzH,EAAKxgC,QAAUwgC,EAAKxgC,QAAUzzF,MACzCgvG,EAAQA,EAAMvnF,QAAO,SAACzF,UAASA,EAAKyxE,OAASwgC,EAAKxgC,UAEhDvvG,EAAW+vI,EAAKxsG,UACVunF,EAAAA,EAAMvnF,QAAO,SAACzF,GACd,IAAA+uG,EAAY/uG,EAAKwoG,WAChB,OAAAyJ,EAAKxsG,OAAOspG,EACrB,KAEEriI,GAAculI,EAAK5sI,SACb2nH,EAAAA,EAAMvnF,QAAO,SAACzF,GACd,IAAAlgC,EAASnD,OAAO4F,KAAK0vI,EAAK5sI,OAAO09D,OAAM,SAACllE,GAIrC,OADWmiC,EAAKniC,KAASo0I,EAAK5sI,MAAMxH,EAE7C,IACO,OAAAiC,CACT,IAEJ,CACO,OAAAktH,CACT,GAAA,CAAAnvH,IAAA,SAAAW,MAOO,SAAOi0B,GAAgC,IAAAo3B,EAAA3jD,KACvCusB,EAAA9c,SAAQ,SAAC2uB,GACZ,IAAMtE,EAAO,IAAIosG,GAASviF,EAAMvlB,GAC3BulB,EAAAtlB,SAAS97B,KAAKu3B,EACrB,IACA95B,KAAKsnI,QACP,GAAA,CAAA3vI,IAAA,SAAAW,MAOO,SAAOi0B,GACZvsB,KAAK8uD,YACL9uD,KAAKu0H,OAAOhoG,EACd,GAAA,CAAA50B,IAAA,gBAAAW,MAUQ,SACN0zI,EACA5tG,GAEA,IAAI9lC,EAAuB,GACvBwhC,EAAO,KACPj2B,EAAO,KAoBJ,OAlBH0T,GAASy0H,IAASzzH,GAASyzH,IACrB1zI,EAAA0zI,EACDlyG,EAAA95B,KAAKqiI,QAAQ/pI,GACbuL,EAAAu6B,GACE4tG,aAAgB9F,IACrB9nG,GACKtE,EAAAkyG,EACAnoI,EAAAu6B,GAKFv6B,EAAAmoI,EAEI,CACXlyG,KAAAA,EACAj2B,KAAAA,EAGJ,GAAA,CAAAlM,IAAA,cAAAW,MAgBO,SACL0zI,EACA5tG,GAEA,IAAM6tG,EAAOjsI,KAAKksI,cAAcF,EAAM5tG,GAClC6tG,EAAKpoI,OACFooI,EAAKnyG,MAWJmyG,EAAKpoI,gBAAgBqiI,GACvB+F,EAAKpoI,KAAK+jI,SAAS5nI,KAAMisI,EAAKnyG,MACrB5iC,EAAQ+0I,EAAKpoI,MACjBooI,EAAAnyG,KAAKy6F,OAAO0X,EAAKpoI,MAEtBooI,EAAKnyG,KAAKy6F,OAAO,CAAC0X,EAAKpoI,OAEzBooI,EAAKnyG,KAAK+tG,iBAhBNoE,EAAKpoI,gBAAgBqiI,GAClB+F,EAAApoI,KAAK+jI,SAAS5nI,MACVlK,MAAMoB,QAAQ+0I,EAAKpoI,MACvB7D,KAAAu0H,OAAO0X,EAAKpoI,MAEjB7D,KAAKu0H,OAAO,CAAC0X,EAAKpoI,OAc1B,GAAA,CAAAlM,IAAA,eAAAW,MAQO,SAAaA,EAAuB8lC,GACnC,IAAAtE,EAAO95B,KAAKqiI,QAAQ/pI,GACtBwhC,GACFA,EAAKqP,aAAa/K,EAEtB,GAAA,CAAAzmC,IAAA,cAAAW,MAQO,SAAYA,EAAuB8lC,GAClC,IAAAtE,EAAO95B,KAAKqiI,QAAQ/pI,GACtBwhC,GACFA,EAAKirG,YAAY3mG,EAErB,GAAA,CAAAzmC,IAAA,eAAAW,MAQO,WACC,IAAE+lC,EAAoBr+B,KAApBq+B,SAAUyoF,EAAU9mH,KAAV8mH,MAClBA,EAAMnxH,OAAS,EACN0oC,EAAA5uB,SAAQ,SAACqqB,GACV,IAAAvN,EAAOuN,EAAKurG,OAClBvvI,MAAMY,UAAU6L,KAAKpE,MAAM2oH,EAAOv6F,EACpC,GACF,GAAA,CAAA50B,IAAA,SAAAW,MASO,SAAOwhC,GACZ95B,KAAKyrI,cAAe,EACpBzrI,KAAKylC,QAAQ3L,EACf,GAAA,CAAAniC,IAAA,UAAAW,MAUO,SAAQwhC,GAAuB,IAxdtBhC,EACVq0G,EAudgCjoF,EAAAlkD,KAC5BsrI,EAAetrI,KAAfsrI,YACJxxG,EAESwxG,EAAA/nI,IAAIu2B,EAAKmsG,IAAa,WAGjCjmI,KAAKwhI,WAAW/xH,SAAQ,SAAC2vE,GACZksD,EAAA/nI,IAAI67E,EAAS6mD,IAAa,UACvC,IAGEjmI,KAAKwrI,cACJxrI,KAAAwrI,YAreS1zG,EAqea,WACzBosB,EAAKsnF,WAAa,KAGdtnF,EAAKunF,eACPvnF,EAAK0/E,eACL1/E,EAAKpU,KAAK,WAMZoU,EAAKkoF,sBAGL,IAAMC,EAAU,IAAA97G,QAAI,IAAI7yB,MAAOmjB,WAEzByrH,EADcx2I,MAAMK,KAAKm1I,EAAWjvI,QACT8H,KAAI,SAACooI,GAE7B,OADIjB,EAAA/nI,IAAIgpI,EAAgBF,GACxBnoF,EAAK8iF,WAAWpjI,IAAI2oI,EAC7B,IAGAroF,EAAKpU,KAAK,SAAU,CAClBg3E,MAAOwlB,EACPnoI,IAAKmnI,IAIPpnF,EAAKunF,cAAe,EACpBH,EAAWjoI,OACb,GAngBI8oI,EAAK9/H,QAAQc,WAChB+sC,KAAKpiB,GACDq0G,GAkgBP,GAAA,CAAAx0I,IAAA,aAAAW,MAOO,SAAW6L,GACV,IAAAwjI,EAAaxjI,GAAOnE,KAAK2nI,WAC/B,OAAO7xI,MAAMK,KAAKwxI,EAAWtrI,OAC/B,GAAA,CAAA1E,IAAA,kBAAAW,MAQO,SAAgB8lC,GACjB,IAAA0oF,EAAQ9mH,KAAKwhI,SAASpjG,GAEnB,OADP0oF,EAAQA,EAAMvnF,QAAO,SAACzF,GAAS,OAAAA,EAAKowG,cAEtC,GAAA,CAAAvyI,IAAA,iBAAAW,MAOO,SAAei0B,GACpBvsB,KAAKwsI,eACLxsI,KAAKiqI,WAAW19G,EAClB,GAAA,CAAA50B,IAAA,aAAAW,MAOO,SAAWosI,GAAgC,IAAAoD,EAAA9nI,KACxCsqI,EAAmBtqI,KAAK+kC,OAAxBulG,eACF/9G,EAAOm4G,EAAQ7tI,MAAM,GACtByzI,IACH/9G,EAAK52B,OAAS,GAEX42B,EAAA9c,SAAQ,SAACmuB,GACPkqG,EAAAH,WAAWpkI,IAAIq6B,GAAK,GACnB,IAAA9D,EAAOguG,EAAKzF,QAAQzkG,GACtB9D,GACFA,EAAKmoC,QAET,GACF,GAAA,CAAAtqE,IAAA,eAAAW,MAMO,WACC,IAAAosI,EAAU1kI,KAAKoqI,aACrBpqI,KAAK2nI,WAAWtkI,QACKrD,KAAK4qI,gBAAgBlG,GAC7Bj1H,SAAQ,SAACqqB,GACpBA,EAAKmoC,QACP,GACF,GAAA,CAAAtqE,IAAA,cAAAW,MAOO,SAAY6L,GACX,IAAAsjI,EAActjI,GAAOnE,KAAKynI,YAChC,OAAO3xI,MAAMK,KAAKsxI,EAAYprI,OAChC,GAAA,CAAA1E,IAAA,kBAAAW,MAOO,SAAgBi0B,GACf,IAAAoF,EAAW3xB,KAAKikI,cAChBwI,EAAQC,GAAWngH,EAAMoF,GACzBg7G,EAAUD,GAAW/6G,EAAUpF,GAChCvsB,KAAA4sI,oBAAoBD,GAAS,GAClC3sI,KAAK6sI,eAAeF,GACpB3sI,KAAKqqF,YAAYoiD,EACnB,GAAA,CAAA90I,IAAA,cAAAW,MAQO,SAAYi0B,GACjBvsB,KAAK4sI,oBAAoBrgH,GACzBvsB,KAAK6sI,eAAetgH,EACtB,GAAA,CAAA50B,IAAA,sBAAAW,MASO,SAAoBi0B,GAA8C,IAAAi8G,EAAAxoI,KAAvB2xB,IAAAzzB,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,KAAAA,UAAA,GAC3CquB,EAAA9c,SAAQ,SAACmuB,GACRjM,EACG62G,EAAAf,YAAYlkI,IAAIq6B,GAAK,GAErB4qG,EAAAf,mBAAmB7pG,GAEpB,IAAA9D,EAAO0uG,EAAKnG,QAAQzkG,GACtB9D,GACFA,EAAKkwG,eAET,GACF,GAAA,CAAAryI,IAAA,gBAAAW,MAMO,WACC,IAAAq5B,EAAW3xB,KAAKikI,cACtBjkI,KAAKynI,YAAYpkI,QACjBrD,KAAK6sI,eAAel7G,EACtB,GAAA,CAAAh6B,IAAA,iBAAAW,MAQO,SAAei0B,GACCvsB,KAAK4qI,gBAAgBr+G,EAAM,CAC9CugH,aAAa,IAEFr9H,SAAQ,SAACqqB,GACpBA,EAAKmoC,QACP,GACF,GAAA,CAAAtqE,IAAA,aAAAW,MAOO,SAAW6L,GACV,IAAE4iI,EAAoB/mI,KAApB+mI,QAAShiG,EAAW/kC,KAAX+kC,OACTq+F,EAA6Br+F,EAA7Bq+F,UAAWjC,EAAkBp8F,EAAlBo8F,cACb50G,EAAwB,GACxBg7G,EAAapjI,GAAOnE,KAAKunI,WAsBxB,OArBCR,EAAAt3H,SAAQ,SAACqqB,GAEVA,EAAKsoG,UAAUmF,KACF,gBAAdnE,GAAgCjC,GAMX,aAAdiC,GAA6BjC,GAGlCrnG,EAAKunG,WAMJ90G,EAAAhqB,KAAKu3B,EAAKxhC,OAZVwhC,EAAK3gB,QAAW2gB,EAAK3gB,OAAOipH,UAAUmF,IACpCh7G,EAAAhqB,KAAKu3B,EAAKxhC,OAarB,IACOi0B,CACT,GAAA,CAAA50B,IAAA,kBAAAW,MAOO,SAAgB8lC,GACjB,IAAA0oF,EAAQ9mH,KAAKwhI,SAASpjG,GAEnB,OADP0oF,EAAQA,EAAMvnF,QAAO,SAACzF,GAAS,OAAAA,EAAKsoG,cAEtC,GAAA,CAAAzqI,IAAA,iBAAAW,MAOO,SAAei0B,GACpBvsB,KAAK8jI,eACL9jI,KAAKmiI,WAAW51G,EAClB,GAAA,CAAA50B,IAAA,aAAAW,MAOO,SAAWi0B,GAA6B,IAAAu+G,EAAA9qI,KAC7C+sI,EAAqC/sI,KAAK+kC,OAAlCo8F,EAAA4L,EAAA5L,cACR,GADiC4L,EAAVjH,YAElBv5G,EAAA9c,SAAQ,SAACmuB,GACN,IAAA9D,EAAOgxG,EAAKzI,QAAQzkG,GACrB9D,IACDqnG,GACG2J,EAAAvD,WAAWhkI,IAAIq6B,GAAK,GACzB9D,EAAKutG,iBAEiBvtG,EAAKurG,OACb51H,SAAQ,SAACu9H,GACrBlC,EAAKvD,WAAWhkI,IAAIypI,EAAU10I,OAAO,EACvC,IAEJ,KACK6oI,GAAe,CACZ,IAAA/b,EAAgBplH,KAAKyqI,aACNzqI,KAAK4qI,gBAAgBxlB,GAC7B31G,SAAQ,SAACqqB,GACpBA,EAAKutG,eACP,GACF,CACF,GAAA,CAAA1vI,IAAA,eAAAW,MAMO,WACC,IAAAk5B,EAAUxxB,KAAKyqI,aACfwC,EAAejtI,KAAK4qI,gBAAgBp5G,GAC1CxxB,KAAKunI,WAAWlkI,QACH4pI,EAAAx9H,SAAQ,SAACqqB,GACpBA,EAAKutG,eACP,GACF,GAAA,CAAA1vI,IAAA,eAAAW,MAOO,WACe0H,KAAZ+mI,QAGAt3H,SAAQ,SAACqqB,GACfA,EAAKmoC,QACP,GACF,GAAA,CAAAtqE,IAAA,YAAAW,MAMO,WACe0H,KAAZ+mI,QACAt3H,SAAQ,SAACqqB,GACfA,EAAKmoC,SACLnoC,EAAKutG,eACP,GACF,GAAA,CAAA1vI,IAAA,SAAAW,MAOO,SAAOA,GACN,IAAAwhC,EAAO95B,KAAKqiI,QAAQ/pI,GACtBwhC,GACFA,EAAKhf,QAET,GAAA,CAAAnjB,IAAA,YAAAW,MAMO,WACL0H,KAAKynI,YAAYpkI,QACjBrD,KAAKunI,WAAWlkI,QAChBrD,KAAK2nI,WAAWtkI,QAChBrD,KAAKsoI,UAAUjlI,QACfrD,KAAK+mI,QAAQ1jI,QACbrD,KAAKgnI,WAAW3jI,QAChBrD,KAAKsrI,WAAWjoI,QAChBrD,KAAK8mH,MAAQ,GACb9mH,KAAKq+B,SAAW,GAChBr+B,KAAKsnI,QACP,GAAA,CAAA3vI,IAAA,kBAAAW,MAWO,SACLi0B,EACAlY,GACY,IAAA22H,EAAAhrI,KACN+rI,EAAOp2G,GAAA,CAEXmnB,SAAS,EAETgwF,aAAa,GACVz4H,GAEClQ,MAAUF,IACXsoB,EAAA9c,SAAQ,SAACnX,GACR,IAAA6L,EAAIP,IAAItL,GAAR,CACE,IAAAwhC,EAAOkxG,EAAK3I,QAAQ/pI,GAC1B,GAAIwhC,EAAM,CACR,IAAM4uG,EAAU5uG,EAAKmrG,aAAanoF,UAC5Bze,EAAWvE,EAAKurG,QAElB0G,EAAKe,YACGpE,EAAQn4G,OAAO8N,GAEfA,GAGJ5uB,SAAQ,SAACy9H,GACX/oI,EAAAZ,IAAI2pI,EAAY50I,MAAO40I,EAC7B,GACF,CAfoB,CAgBtB,IACA,IAAID,EAAen3I,MAAMK,KAAKgO,EAAIwB,UAI3B,OAHHomI,EAAKjvF,UACPmwF,EAAeA,EAAanwF,WAEvBmwF,CACT,GAAA,CAAAt1I,IAAA,OAAAW,MAaO,SAAKvB,EAAco6D,GAClB,IAAEpsB,EAAoB/kC,KAApB+kC,OAAQ2mG,EAAY1rI,KAAZ0rI,QAEVjxG,EAASsK,EADIx6B,GAAU,MAAAgmB,OAAMx5B,KAE/BiF,EAAWy+B,IAGbA,EAAO02B,GAEDu6E,EAAA57F,KAAK/4C,EAAMo6D,EACrB,GAAA,CAAAx5D,IAAA,sBAAAW,MAOQ,WACA,IAAEysC,EAAW/kC,KAAX+kC,OACFooG,EAAWntI,KAAKwhI,WAElBxhI,KAAKurI,YAKE4B,EAAA19H,SAAQ,SAACqqB,GAEZA,EAAK8sG,YAGP9sG,EAAKszG,MAAK,EAEd,IAGF,IAAMC,EAAgBtoG,EAAOxF,OAGxB8tG,GAAkBrxI,EAAWqxI,KAClCrtI,KAAKurI,WAAaxmG,EAAOxF,OAKzB4tG,EAASrwF,UAAUrtC,SAAQ,SAACqqB,GAGpB,IAAA3gB,EAAS2gB,EAAKgyG,YACf3yH,IACD2gB,EAAK6sG,UAAY7sG,EAAK8sG,cAInBztH,EAAOytH,YAGVztH,EAAOi0H,MAAK,GAGlB,IACF,IAAA,CA/3BqB,skBE9BhB,IAoEME,GAAqB,SAACnuI,GACjC,IAAMgyB,EAAWqY,KACjB0hC,EAA4C7nC,SAAOlkC,GAA3C7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAYuiB,EAAaxb,EAAbwb,aACwEvb,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAMhCkR,EAAAvgE,GAL6C2nD,GAC3CijB,GACA,EACAvnF,EAAMyjG,qBACN,gBACF,GALOyc,EAAmBhjC,EAAA,GAAAkxD,EAAelxD,EAAA,GAMnCmxD,EA9EkB,SACxBruI,EACAgyF,EACAkuB,EACAkuB,GAEA,IAAME,EAAgBxpG,EAAAA,SAAS,CAC7Bq9F,UAAW,KACXqB,SAAU,KACV+K,cAAU,EACV9L,UAAW,GACX+L,OAAQ,KAGH,MAAA,CACLF,cAAAA,EACAxM,gBAAiBnqH,YAAS,WAClB,IACJpT,EAaEvE,EAbFuE,KACAy9H,EAYEhiI,EAZFgiI,cACApkD,EAWE59E,EAXF49E,KACAslB,EAUEljG,EAVFkjG,SACA58E,EASEtmB,EATFsmB,WACA6nE,EAQEnuF,EARFmuF,UACA01C,EAOE7jI,EAPF6jI,WACAvjI,EAMEN,EANFM,IACA0xB,EAKEhyB,EALFgyB,SACAowG,EAIEpiI,EAJFoiI,cACAn/B,EAGEjjG,EAHFijG,gBACAwnB,EAEEzqH,EAFFyqH,UACAzlD,EACEhlE,EADFglE,WAEK,OAAAxuC,GAAAA,GAAA,CACLr9B,MAAOm1I,EAAcC,SACrBhqI,KAAAA,EACAy9H,cAAAA,EACApkD,KAAAA,EACAslB,SAAAA,EACA58E,WAAAA,EACA6nE,UAAAA,EACA01C,WAAAA,EACAvjI,IAAAA,EACA0xB,SAAAA,EACAowG,cAAAA,EACAn/B,gBAAAA,EACAwnB,UAAAA,EACAl4F,QAAS2tF,EAAkB/mH,OACxBm1I,GAAA,GAAA,CACH/J,aAAc,SAAC5c,GACb2mB,EAAc7L,UAAY9a,CAC5B,EACAob,SAAU,SAACtkG,EAAoBpgC,EAA8Bs8B,GACvDxhB,GAAQslB,EAAKumC,IACjBgtB,EAAcvzD,EAAK,CAAEpgC,OAAAA,EAAQs8B,KAAAA,GAC/B,EACAsxC,WAAYmiE,EACZK,YAAa,SAAChwG,GACZ6vG,EAAc9K,SAAW/kG,CAC3B,EACA+lG,UAAW,SAAC/lG,GACV6vG,EAAcE,OAAS/vG,CACzB,OAIR,CAa6CiwG,CAAW1uI,EAAOgyF,EAAekuB,EAAmBkuB,GAAvFtM,IAAAA,gBAAiBwM,EAAcD,EAAdC,cAEnBpc,EAAev6G,EAAAA,UAAS,WAC5B,OAAOmqB,QAAQ9hC,EAAMsmB,YAAczpB,EAAWmD,EAAMogC,QACtD,IAGMuuG,EAAmB,WACvB,IAAAC,EAA8C9M,EAAgB3oI,ORsDnC,SAC7BqqI,EACArB,EACAoC,EACAnkG,GAEA,GAAK+hG,EAAL,CAgBAoC,EAdIf,EAUMrB,EAAUxa,MAAMvnF,QATF,SAACzF,GACjB,GAACA,EAAKunG,SACN,OAAArlI,EAAWujC,GACNA,EAAAhP,GAAAA,OAAUoyG,GAAY7oG,GAET+nG,GAAiB/nG,EAAM,IACxBzH,QAAA9B,GAAAA,OAAWoyG,KAAc,KAKxCrB,EAAUE,WAAWjiG,QAAO,SAACzF,GAAA,OAAmBA,EAAKpI,WAd/C,CAiBlB,CQ5EIs8G,CADQD,EAAApL,SAAqBoL,EAAXzM,UAAWyM,EAAArK,aACsBvkI,EAAMogC,SAIrD0uG,EAAe,WACnB,IAAAC,EAA6BjN,EAAgB3oI,MAArCA,EAAO41I,EAAP51I,MAAOgpI,EAAA4M,EAAA5M,WR+EkB,SACnCA,EACAhpI,EACAq1I,GAEM,IAAA5L,EAAYD,GAAaxpI,GAE/B,GAAKgpI,EAAL,CAEA,GAAIpqI,EAAQ6qI,IAAgC,IAAlB4L,EAAOh4I,OAAc,CACvC,IAAA8xI,MAAkBxjI,IACjB25B,EAAD9hB,GAAQimH,EAAA,GAAJ,GACN,IAACC,GAAcpkG,GAAM,CACX6pG,EAAAlkI,IAAIq6B,GAAK,GACf,IAAA9D,EAAOwnG,EAAUe,QAAQzkG,GAC/B,IAAK9D,EAEH,YADAwnG,EAAUsC,eAGZ9pG,EAAKmrG,aAAax1H,SAAQ,SAAC0+H,GACb1G,EAAAlkI,IAAI4qI,EAAG71I,OAAO,EAC5B,IACA,IAAM81I,EAAct4I,MAAMK,KAAKsxI,EAAYprI,QAC3CilI,EAAUuC,gBAAgBuK,EAC5B,CACF,CAEI9M,EAAU2C,eAAiB0J,EAAOh4I,QACpC2rI,EAAUuC,gBAAgB8J,GAE5BrM,EAAUsC,cAvBM,CAwBlB,CQ5G0ByK,CAAA/M,EAAWhpI,EADdm1I,EAAXE,QAEErM,EAAAgN,eAAexM,GAAaxpI,KAGxCuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMkV,OAAA,IACZ,WACQ,IAAEA,EAA6DlV,EAA7DkV,UAA6DlV,EAApD9C,KAAAA,OAAO,IAAAkyI,EAAA,KAAIpN,EAAyChiI,EAAzCgiI,cAAepkD,EAA0B59E,EAA1B49E,KAAMomD,EAAoBhkI,EAApBgkI,KAAMC,EAAcjkI,EAAdikI,UAC/C9B,EAAcmM,EAAdnM,UAEJ,GAACjtH,EAAQ1e,QAAW2rI,EAApB,CAEJ,GAAKA,EAuBHA,EAAUkN,OAAOn6H,GACjBitH,EAAUsC,mBAxBI,CACR,IAAA6K,EAAQ,IAAIvD,GAAU,CAC1B7uI,KAAMs5B,GAAAA,MACDt5B,GAAA,CAAA,EAAA,CACHgiC,SAAU9mB,GAASlb,EAAKgiC,UAAYhiC,EAAKgiC,SAAW,aAEtDynG,WAAW,EACXprD,aAAa,EACbkvD,cAAc,EACd7sD,KAAAA,EACAomD,KAAAA,EACAC,UAAAA,EACAjC,cAAAA,EACAgK,OAAQ,WACNx2G,EAAAA,UAAS,WACP85G,EAAM7K,eACWkK,GACnB,GACF,IAEFW,EAAMla,OAAOlgH,GACbo5H,EAAcnM,UAAYmN,CAC5B,CAIaR,IACIH,GA7BkB,CA8BrC,GACA,CAAE3jF,WAAW,EAAMmsB,MAAM,IAI3Bz1C,EAAAA,OACE,WACE,IAAQsgG,EAAyChiI,EAAzCgiI,cAAepkD,EAA0B59E,EAA1B49E,KAAMomD,EAAoBhkI,EAApBgkI,KAAMC,EAAcjkI,EAAdikI,UACnC,OAAOsL,KAAKC,UAAU,CACpBvL,UAAAA,EACAjC,cAAAA,EACApkD,KAAAA,EACAomD,KAAAA,GAEJ,IACA,WACQ,IAAE7B,EAAcmM,EAAdnM,UACR,GAAKA,EAAL,CACA,IAAQH,EAAyChiI,EAAzCgiI,cAAepkD,EAA0B59E,EAA1B49E,KAAMomD,EAAoBhkI,EAApBgkI,KAAMC,EAAcjkI,EAAdikI,UAC7BwL,EAAY,CAChBzN,cAAAA,EACAhwG,SAAAA,EACAgyG,KAAAA,EACApmD,KAAAA,EACAqmD,UAAAA,GAEF9B,EAAUuN,UAAUD,EATJ,CAUlB,GACA,CAAEzkF,WAAW,IAGftpB,EAAAA,MACEqwD,GACA,WAEE,IAAA49C,EAA0C7N,EAAgB3oI,MAAlD4pI,EAAA4M,EAAA5M,SAAU7/B,EAAUysC,EAAVzsC,SAAUunB,EAAAklB,EAAAllB,WT7DlB,SAAetxH,EAAsB2oI,GACnD,IAAQ5+B,EAAuC4+B,EAAvC5+B,SAAUk/B,EAA6BN,EAA7BM,cAAe3X,EAAcqX,EAAdrX,UACjC,OAAQvnB,IAAanrG,EAAQoB,KAAa+pG,GAAYnrG,EAAQoB,IAAwB,WAAdsxH,IAA2B2X,CACrG,CS4DUwN,CAAe79C,EAAW54F,MAAO2oI,EAAgB3oI,OAGrCm1I,EAAAC,SAAWrrC,EAAW,GAAK,GAFzC6/B,EAAS7/B,EAAW,GAAK,GAAI,iBAK1B2/B,GAAc9wC,KACjBu8C,EAAcC,STlGU,SAACp1I,EAAsBsxH,EAAyCvnB,GAC9F,GAAkB,WAAdunB,EACK,OAAAtxH,EAET,IAAMslC,EAAMtlC,EACZ,OAAI+pG,EACKzkE,EAAIz5B,KAAI,SAACi6B,UAA0BA,EAAKsjG,UAE1C9jG,EAAI8jG,IAAK,EAClB,CSyFiCsN,CAAiB99C,EAAW54F,MAAOsxH,EAAWvnB,IAGpEorC,EAAcnM,YACN2M,IACIH,IACnB,GACA,CAAE3jF,WAAW,IAGftpB,EAAAA,OACE,WAAA,OAAMw+E,EAAkB/mH,OAAS+4H,EAAa/4H,KAC9C,IAAA,SAACo5B,GACO,IAAEk8G,EAAgB3M,EAAgB3oI,MAAhCs1I,YACJl8G,GACFk8G,EAAY,GAEhB,IAGF/sG,EAAAA,OACE,WAAA,OAAM4sG,EAAc9K,QAAA,IACpB,WACmBmL,GACnB,IAYK,MAAA,CACL7M,gBAAAA,EACA5P,aAAAA,EACAngC,WAAAA,EACA+9C,iBAbuB,SAACv+H,GACxB,IAAM2D,EAA4B,GAK3B,OAJE3D,EAAAjB,SAAQ,SAACnX,GAAU,IAAA42I,EACpBpoB,EAAiCooB,QAAzBA,EAAAzB,EAAcnM,qBAAW4N,SAAzBA,EAAyB1N,SAASlpI,GAChDwuH,GAASA,EAAM,IAAMzyG,EAAQ9R,KAAKukH,EAAM,GAAGjjH,KAC7C,IACOwQ,GASX,qkBClOA,IAAA86H,GAAe56G,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP6K,EAAiB7Z,GAAe,YAChCzM,EAAcyM,KACZU,EAAWR,KAAXQ,OACFy2C,EAAmBn3C,GAAe,mBAChCT,EAAiBP,GAAU,YAA3BO,aACFya,EAAad,KACb81D,EAAa7Q,KACbzvD,EAAiBU,KAGvB0vG,EAAwE9B,GAAmBnuI,GAAnF8hI,EAAiBmO,EAAjBnO,gBAAiB/vC,EAAAk+C,EAAAl+C,WAAYmgC,IAAAA,aAAc4d,EAAiBG,EAAjBH,iBAE7C7d,EAAet6G,EAAAA,UAAS,WAAA,OAC5B3X,EAAMkjG,SVPL,SAA4B4+B,GACjC,IAAQ3oI,EAA8C2oI,EAA9C3oI,MAAO+pG,EAAuC4+B,EAAvC5+B,SAAUi/B,EAA6BL,EAA7BK,UAAWC,EAAkBN,EAAlBM,cAEpC,OAAKl/B,EACDA,IAAanrG,EAAQoB,GAAe,GAE3BgpI,GAAaA,EAAUE,SAASlpI,GAGrCA,EACL6L,KAAI,SAACi6B,GAAwB,IAAAixG,EACtBv1G,EAAOwnG,EAAUE,SAASpjG,GAChC,OAAOmjG,EAAgBM,GAAiB/nG,EAAK,YAAEu1G,EAAIv1G,EAAK,UAAI,IAAAu1G,OAAA,EAATv1G,EAAS8e,KAC9D,IACCrZ,QAAO,SAACnB,GAAS,QAAEA,KAPJ,GAJI,EAYxB,CURuB2yF,CAAmBkQ,EAAgB3oI,OAAS6uH,GAAiB8Z,EAAgB3oI,MAAK,IAG/FmnF,EAAS3oE,EAAAA,UAAS,WAAA,OAAM6qH,GAAUV,EAAgB3oI,MAAMspI,cAExD0N,EAAmBx4H,EAAAA,UACvB,WAAA,IAAAu/E,EAAA,OACG4qC,EAAgB3oI,MAAMo5B,UAAYvyB,EAAMkjG,UAAY8kB,GAAiB8Z,EAAgB3oI,SAC/E+9F,QADoFA,EAC1Fl3F,EAAM+nB,mBAAAmvE,IAAAA,EAAAA,EAAexmE,EAAav3B,MAAM4uB,YAAA,IAkBvC8pG,EAAqBl6G,EAAAA,UAAS,WAC5B,IAAAy4H,EAAar+C,EAAW54F,iBAAiBxC,MAAQo7F,EAAW54F,MAAQ,CAAC44F,EAAW54F,OAChF84H,EACJjyH,EAAMkjG,UAAYljG,EAAMijG,gBAAkBmtC,EAAW14I,MAAM,EAAGsI,EAAMijG,iBAAmBlR,EAAW54F,MAC9F+b,EAAU46H,EAAiBM,GAC1B,MAAA,CACLj3I,MAAO44F,EAAW54F,MAClBywH,gBAAiB10G,EACjB+2C,QAAS,SAAChxD,GACR6nI,GAAsBhB,EAAgB3oI,MAAO8B,EAAO+E,EAAM+9E,SAC5D,EACAk0C,aAAAA,EAEJ,IAEMoe,EAAqB,WACzB,OAAOxwG,EAAe,eAAgB,CACpCR,OAAQwyF,EAAmB14H,SAIzBykH,EAAc,WACZ,IAAAnkE,EAAQ5Z,EAAe,SAC7B,OAAI7/B,EAAMkjG,SAAiBzpD,EACtBA,EACL7iB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAsB1M,EAAYvrB,MAAA,uBAAA,CAA4BsgD,IAD3C,MAIf62F,EAAqB34H,EAAAA,UAAS,WAAA,MAAM,CACxCqzB,EAAe7xC,MACf6G,EAAMkjG,SAAW9xE,GAAAA,OAAG4Z,EAAe7xC,MAAAi4B,cAAAA,GAAAA,OAAuB4Z,EAAe7xC,MAAA,gBAG3E,OAAO,WAAM,IAAAygF,EACXm1D,EAAuDjN,EAAgB3oI,MAA/D8yE,EAAY8iE,EAAZ9iE,WAAY15C,EAAAw8G,EAAAx8G,QAASixG,EAAUuL,EAAVvL,SAAUiL,EAAAM,EAAAN,YAEvC,OAAA73G,EAAAO,YAAA0tF,GAAAtgF,aAAA,CAAA1N,MAEWy5G,EAAmBn3I,MAC1BA,MAAO84H,EAAa94H,MAAAm4F,WACR/+D,EAAUixG,EAAW,GAAAj8C,aACnBh1D,EACdr1B,KAAM8C,EAAM9C,KAAA4lG,WACAovB,EAAa/4H,MACzB,oBAAmB6G,EAAMijG,gBACzB,kBAAiBjjG,EAAM+iG,eAAAxU,SACb4R,EAAWhnG,MACrB64B,SAAUmZ,EAAWhyC,MACrBg1F,UAAWnuF,EAAMmuF,UAAApmE,YACJooH,EAAiBh3I,MAC9B+pG,SAAUljG,EAAMkjG,SAChBpxE,QAAS9xB,EAAM8xB,QAAAu8B,OACPruD,EAAMquD,OACdsgC,KAAM3uF,EAAM2uF,KACZT,WAAYluF,EAAMkuF,WAAAz0C,MACXmkE,EAAAra,aACO8sC,EAAA//F,WACFtwC,EAAMswC,WAAAvY,OACV/3B,EAAM+3B,OACdwY,WAAY,WAAA,OA1EO,WACnBvwC,GAAAA,EAAMuwC,YAAcpQ,EAAMoQ,WAC5B,OAAO1Q,EAAe,cAGxB,IAAA+uG,EAA8B9M,EAAgB3oI,MAAtCo5B,EAAAq8G,EAAAr8G,QAASP,EAAS48G,EAAT58G,SACjB,OAAA4E,EAAAA,YAAAowD,GAAA,CAAA1e,iBAEsBu5D,GAAsBn9G,EAAYvrB,MAAO04B,EAAO14B,MAAO2oI,EAAgB3oI,OAAKglF,SACpF5rD,EAAAP,SACAA,GACZ,MA+DoBu+G,qBAEZvwI,CAAAA,EAAAA,EAAMmoE,YAAA,GAAA,CACVK,kBAAmB8X,EAAOnnF,MAAM3C,SAAWwJ,EAAM8xB,QAAU,CAAEkF,MAAO,QAAW,GAC/EsxC,iBAAkB,CAChBA,EAAiBnvE,MACoCygF,QADpCA,EAChB55E,EAAMmoE,kBAANnoE,IAAoD45E,OAApD55E,EAAAA,EAAoDsoE,oBACvDswB,WAAApiE,GAAA,CAEYjyB,KAAMvE,EAAMuE,MAAUvE,EAAM44F,YAA6CyK,cAAA7sE,GAAA,CAErFjyB,KAAMvE,EAAMuE,MACRvE,EAAMqjG,eAAAC,SAAA9sE,GAAA,GAEIx2B,EAAMsjG,wBACP,SAACnqG,EAAOiuD,GAAQ,IAAAopF,EAAAC,EACxBve,EAAa/4H,QAClBs1I,EAAAr9G,GAAAA,OAAej4B,IACd6G,SAAOwwI,QAAAA,EAAPxwI,EAAOwqH,wBAAAimB,IAAAD,GAAyDC,QAAzDA,EAAPzwI,EAAgDwjG,qBAAhDxjG,IAAgEywI,GAAhEzwI,EAAAA,KAAAA,EAAgE7G,EAAOiuD,GAE1E,EAAAs8C,YAAa,SAACjlE,EAAoB2oB,GAAQ,IAAAspF,EAAAC,EAEpB,UAAhBvpF,EAAI7C,UACRu+E,GAAsBhB,EAAgB3oI,MAAOiuD,EAAInsD,MAAO+E,EAAM+9E,UAE7D/9E,SAAO0wI,QAAAA,EAAP1wI,EAAOwqH,wBAAAmmB,IAAAD,GAAuDC,QAAvDA,EAAP3wI,EAAgD0jG,mBAAhD1jG,IAA8D2wI,GAA9D3wI,EAAAA,KAAAA,EAA8Dy+B,EAAK2oB,GAEtE,EAAAq8C,qBAAsB,SAAChlE,EAAc6L,GAAY,IAAAsmG,EAAAC,EAC3C1lG,EAAWhyC,QACf8yE,EAAWxtC,EAAK6L,GACftqC,SAAO4wI,QAAAA,EAAP5wI,EAAOwqH,wBAAAqmB,IAAAD,GAAgEC,QAAhEA,EAAP7wI,EAAgDyjG,4BAAhDzjG,IAAuE6wI,GAAvE7wI,EAAAA,KAAAA,EAAuEy+B,EAAK6L,GAE/E,EAAAskD,OAAQ,SAACnwD,EAAK6L,GAAY,IAAAi1E,EAAAuxB,EAAAC,EACT,QAAf/wI,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAe,CACb7G,MAAO2oI,EAAgB3oI,MAAMA,MAC7Bm4F,WAAYhnD,EAAQgnD,YAAc,GAClC92F,EAAG8vC,EAAQ9vC,IAEZwF,SAAO8wI,QAAAA,EAAP9wI,EAAOwqH,wBAAAumB,IAAAD,GAAkDC,QAAlDA,EAAP/wI,EAAgD4uF,cAAhD5uF,IAAyD+wI,GAAzD/wI,EAAAA,KAAAA,EAAyDy+B,EAAK6L,EAEjE,EAAA0kD,QAAS,SAACvwD,EAAK6L,GAAY,IAAA+0E,EAAA2xB,EAAAC,EACT,QAAhBjxI,EAAAA,EAAMgvF,eAAU,IAAAqwB,GAAhBr/G,EAAAA,KAAAA,EAAgB,CACd7G,MAAO2oI,EAAgB3oI,MAAMA,MAC7BqB,EAAG8vC,EAAQ9vC,IAEZwF,SAAOgxI,QAAAA,EAAPhxI,EAAOwqH,wBAAAymB,IAAAD,GAAmDC,QAAnDA,EAAPjxI,EAAgDgvF,eAAhDhvF,IAA0DixI,GAA1DjxI,EAAAA,KAAAA,EAA0Dy+B,EAAK6L,EAClE,EAAAukD,QACS,SAACvkD,GAA+B,IAAA4mG,EAAAC,GT1D5C,SAA8BrP,GACnC,IAAQ71D,EAAmC61D,EAAnC71D,WAAYi3B,EAAuB4+B,EAAvB5+B,SAAU6/B,EAAajB,EAAbiB,SAEnB92D,GAAA,EAAO,CAAA,GAElB82D,EAAS7/B,EAAW,GAAK,GAAI,QAC/B,CSqDYkuC,CAAqBtP,EAAgB3oI,OACpC6G,SAAgD,QAAhDA,EAAAA,EAAOwqH,wBAAyC,IAAA0mB,GAAAC,QAAAA,EAAhDnxI,EAAgD6uF,eAAhD7uF,IAAgDmxI,GAAhDnxI,EAAAA,KAAAA,EAA0DsqC,EAC7D,GAuBIpwB,GAAKla,EAAMwqH,iBAAwC,CACrD,cACA,gBACA,uBACA,SACA,UACA,aA5BO,CACP/wE,MAAOtZ,EAAMsZ,MACb1hB,OAAQoI,EAAMpI,OACduY,WAAYnQ,EAAMmQ,WAClButC,MAAO,2CAEFh+C,KAAAA,CAAAA,EAAe,mBAAiBjJ,EAAAO,YAAA+sG,GAAA,CAAA/vD,OAEvBn0E,EAAMm0E,aACPn0E,EAAMinB,MACbsL,QAASA,EACTgyB,QAASvkD,EAAMukD,QAAAzyB,QACN9xB,EAAM8xB,QAAAhK,YACF9nB,EAAM8nB,YACnBg6G,gBAAiBA,EAAgB3oI,OACxB,CAAEg7E,OAAQh0C,EAAMg0C,OAAQltD,MAAOkZ,EAAMlZ,MAAOa,YAAaqY,EAAMrY,cAEzE+X,EAAe,uBAClB,EAEFkjE,eAAgB5iE,EAAM4iE,iBAahC,IC3MFsuC,GAAej8G,kBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACL2hG,EAAoBqM,GAAmBnuI,GAAvC8hI,gBAED,OAAA,WAAA,OAAAlrG,EAAAA,YAAAstG,GAAA,CAAA3/E,QAEMvkD,EAAMukD,QACfu9E,gBAAiBA,EAAgB3oI,MAAA8tB,MAC1BjnB,EAAMinB,OACJ,CAAEA,MAAOkZ,EAAMlZ,MAAOktD,OAAQh0C,EAAMg0C,OAAQrsD,YAAaqY,EAAMrY,cAG9E,ICPWwpH,GAAW3qG,GAAYqpG,IACvBuB,GAAgB5qG,GAAY0qG,iCCd2BtvI,EAAAH,QAA+L,SAASpH,EAAEnD,GAAGA,EAAEE,UAAUi6I,eAAe,WAAW,IAAIh3I,EAAEqG,KAAK4wI,aAAap6I,EAAEwJ,KAAKwgB,MAAM,KAAKqwH,MAAM,OAAO,IAAIr6I,GAAGmD,GAAG,IAAInD,EAAE,GAAG,yDCA7T0K,UAA2L,SAASvH,EAAEuiB,GAAGA,EAAExlB,UAAUk6I,WAAW,WAAW,OAAO5wI,KAAKof,GAAG,GAAG,GAAGpf,KAAKof,GAAG,KAAK,GAAGpf,KAAKof,GAAG,KAAK,2BCQjW0xH,GAAM7uH,OAAO0uH,IACbG,GAAM7uH,OAAO2uH,IAEN,IAAMG,GAAc,WAGX,SAAAC,KACd,8DADqD,IAElDj2I,QAAQ,2DAA4D,IACpEyrE,MACL,CAGO,SAASyqE,GACd34I,EACA+oB,EACA6vH,EACAlpH,GAEI,GAAU,KAAV1vB,GAA0B,OAAVA,EAAgB,OAAOw4I,KAE3C,IAAIK,EAAW74I,EAEX,GAAA,SAAStB,KAAKqqB,GAAS,CACpB9J,GAAS45H,KACDA,EAAAL,GAAMK,GAAU5yH,OAAOyJ,GAAe,SAAS3G,OAAOA,IAGnE,IAAM+vH,EAAUD,EAAStpI,MAAM,WAAW,GACpCwpI,EAAUF,EAAStpI,MAAM,WAAW,GACpCypI,EAAgBjwH,EAAOxZ,MAAM,WAAW,GAE1C0pI,EAAYT,GAAMM,EAAS,QAAQ7yH,OAAOyJ,GAAe,SAASzH,QAAQ,SAI1EgxH,EAAUV,MAAQ,GAAyB,IAApBU,EAAUV,SAAyBU,EAAAA,EAAU5hI,IAAI,EAAG,SAI/E,IADM,IAAA6hI,EAAaV,GAAMM,EAAS,QAAQ7yH,OAAOyJ,GAAe,SAAS2oH,iBAChE/6I,EAAI,EAAGA,GAAK47I,EAAY57I,GAAK,EAAG,CACvC,IAAI67I,EAAWF,EAAU5hI,IAAI/Z,EAAG,QAGhC,GADkB,UAAds7I,IAAkCO,EAAAA,EAASrwH,SAAS,EAAG,QACvDqwH,EAASpwH,OAAOiwH,KAAmBD,EAC9B,OAAAI,CAEX,CACF,CAGI,GAAA,KAAKz6I,KAAKqqB,GAAS,CAChB9J,GAAS45H,KACDA,EAAAL,GAAMK,GAAU5yH,OAAOyJ,GAAe,SAAS3G,OAAOA,IAOnE,IAJA,IAAM+vH,EAAUD,EAAStpI,MAAM,WAAW,GACpC6pI,EAAaP,EAAStpI,MAAM,WAAW,GACvC8pI,EAAmBtwH,EAAOxZ,MAAM,WAAW,GAC3C+pI,EAAed,GAAMM,EAAS,QAAQ7wH,QAAQ,QAC3C3qB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,IAAMi8I,EAAcD,EAAajiI,IAAI/Z,EAAG,WACxC,GAAIi8I,EAAYxwH,OAAOswH,KAAsBD,EACpC,OAAAG,CAEX,CACF,CAGA,IAAMj4I,EAASk3I,GAAMK,EAAU9vH,GAAQhB,UACnCywH,GAAMK,EAAU9vH,GAChByvH,GAAMK,GAGN,OAACv3I,EAAOymB,UAKLzmB,GAJL6qE,GAAU,aAAcl0C,kEAAAA,OAA6Dj4B,yBAAoB+oB,QAClGyvH,KAIX,CAkFgB,SAAAgB,GAAYx5I,EAAgC+oB,GACtD,OAAAvrB,MAAMoB,QAAQoB,GACTA,EAAMukE,OAAM,SAACx/C,GAClB,MAAU,KAANA,IACGyzH,GAAMzzH,EAAGgE,GAAQhB,WAAaywH,GAAMzzH,GAAGgD,UAChD,IAGY,KAAV/nB,IACGw4I,GAAMx4I,EAAO+oB,GAAQhB,WAAaywH,GAAMx4I,GAAO+nB,UACxD,CAGO,SAAS0xH,GACdC,EACAhpF,GAMA,IACIpvD,EANFynB,EAAA2nC,EAAA3nC,OACA4wH,EAAAjpF,EAAAipF,aAAAC,EAAAlpF,EACAhhC,YAAAA,OAAc,IAAAkqH,EAAA,QAAAA,EACdC,EAAAnpF,EAAAmpF,SAWK,OALLv4I,EADE9D,MAAMoB,QAAQ86I,GAvGpB,SAAqBtwG,GAYlB,IAXDswG,EAAAtwG,EAAAswG,QACA3wH,EAAAqgB,EAAArgB,OACA2G,EAAA0Z,EAAA1Z,YACAiqH,EAAAvwG,EAAAuwG,aACAE,EAAAzwG,EAAAywG,SAQA,IAAKH,IAAYl8I,MAAMoB,QAAQ86I,GAAU,MAAO,GAEhD,IAAII,EAAgBJ,EAAQ7tI,KAAI,SAAC0Y,GAAM,OAAAA,GAAKo0H,GAAap0H,EAAGwE,GAAQ9C,OAAOyJ,MAcvE,OAVFmqH,GACGC,EAAc,IACdA,EAAc,IACdA,EAAc,GAAGtxH,SAASD,UAAYuxH,EAAc,GAAGtxH,SAASD,YAGnEuxH,EAAgB,CAACA,EAAc,GAAIA,EAAc,KAI/CA,EAAc18F,MAAK,SAAC15B,GAAA,OAAMA,IAAMA,EAAEqE,SAAS,KACzCokD,GACF,aAAA,iFAAAl0C,OACuElP,uBAAmB2wH,EAAwB,kBAAAzhH,OAAA0hH,QAE7G,IAIY,eAAjBA,EAAsCG,EAAcjuI,KAAI,SAACkuI,GAAA,OAAOA,GAAMA,EAAGvxH,SAASD,aAEjE,SAAjBoxH,EAAgCG,EAAcjuI,KAAI,SAACkuI,UAAOA,GAAMA,EAAGvxH,YAEhEsxH,EAAcjuI,KAAI,SAACkuI,GAAA,OAAOA,GAAMA,EAAGhxH,OAAO4wH,GAAgB5wH,KACnE,CA6DaixH,CAAY,CAAEN,QAAAA,EAAS3wH,OAAAA,EAAQ2G,YAAAA,EAAaiqH,aAAAA,EAAcE,SAAAA,IA1DvE,SAAsBzpF,GAUnB,IATDspF,EAAAtpF,EAAAspF,QACA3wH,EAAAqnC,EAAArnC,OACA4wH,EAAAvpF,EAAAupF,aACAjqH,EAAA0gC,EAAA1gC,YAOA,IAAKgqH,EAAgB,MAAA,GAErB,IAAMO,EAAYtB,GAAae,EAAS3wH,GAAQ9C,OAAOyJ,GAGnD,OAACuqH,EAAUlyH,UASM,eAAjB4xH,EAAsCM,EAAUzxH,SAASD,UAExC,SAAjBoxH,EAAgCM,EAAUzxH,SAEvCyxH,EAAUlxH,OAAO4wH,GAAgB5wH,IAZlCojD,GACF,aAAAl0C,kEAAAA,OAC6DlP,EAAmBkP,cAAAA,OAAAyhH,QAE3E,GASX,CA8BaQ,CAAa,CAAER,QAAAA,EAAS3wH,OAAAA,EAAQ2G,YAAAA,EAAaiqH,aAAAA,IAGjDr4I,CACT,CAGgB,SAAA64I,GAAe19H,EAAc29H,GAC3C,GAAI39H,GAAQ29H,EAAY,CAChB,IAAAC,EAAU59H,EAAKlN,MAAM,KACrB+qI,EAAgBF,EAAW7qI,MAAM,KACvC,OAAO8qI,EAAQ97I,MAAM,EAAG+7I,EAAcj9I,QAAQ6R,KAAK,IACrD,CACO,OAAAuN,CACT,CAIO,SAAS89H,GAAWv6I,EAAY+oB,EAAgBqxH,EAAoBI,GAAgC,IAAAC,EAErGn5I,EAAS9D,MAAMoB,QAAQoB,GAASA,EAAQ,CAACA,GAU7C,OARAw6I,EAAch9I,MAAMoB,QAAQ47I,GAAeA,EAAc,CAACA,EAAaA,GACvEl5I,EAASA,EAAOuK,KAAI,SAACkZ,EAAGznB,GAElB,OAAAynB,EAAUyzH,GAAMzzH,EAAgB,iBAANA,EAAiBgE,OAAS,GAAWA,OAAOqxH,GACnED,GAAeK,EAAYl9I,GAAI88I,EACxC,IACS94I,EAAAA,EAAOjE,OAASiE,EAASk5I,EAAY3uI,KAAI,SAAC+X,GAAM,OAAAu2H,GAAev2H,EAAGw2H,MAEpE58I,MAAMoB,QAAQoB,GAASsB,EAAkBm5I,UAATn5I,aAASm5I,SAATA,EAAS,EAClD,CAGO,SAASC,GAAiBh8E,GAU9B,IAAAi8E,EAAAj8E,EATD+kB,KAAAA,OAAO,IAAAk3D,EAAA,OAAAA,EACP5xH,EAAA21C,EAAA31C,OACAuoG,EAAA5yD,EAAA4yD,UACAspB,EAAAl8E,EAAAk8E,iBAOA,MAAa,SAATn3D,EACK,CACL16D,OAAQA,GAAU,OAClBuoG,UAAWA,GAAavoG,GAAU,OAClCqxH,WAAY3B,IAGH,UAATh1D,EACK,CACL16D,OAAQA,GAAU,UAClBuoG,UAAWA,GAAavoG,GAAU,UAClCqxH,WAAY3B,IAGH,YAATh1D,EACK,CACL16D,OAAQA,GAAU,YAClBuoG,UAAWA,GAAavoG,GAAU,YAClCqxH,WAAY3B,IAGH,SAATh1D,EACK,CACL16D,OAAQA,GAAU,UAClBuoG,UAAWA,GAAavoG,GAAU,UAClCqxH,WAAY3B,IAGH,SAATh1D,EACK,CACL16D,OAAQA,GAAA,aAAAkP,OAAuB2iH,EAAmB,YAAc,IAChEtpB,UAAWA,GAAavoG,GAAUkP,aAAAA,OAAa2iH,EAAmB,YAAc,IAChFR,WAAY1B,GAAkB3vH,gBAAAkP,OAAuB2iH,EAAmB,YAAc,MAASnC,KAG/FtsE,GAAM,8BAAcl0C,OAAiBwrD,IAClC,GACT,CAGO,SAASo3D,GAAkB7vG,GAY/B,IAXDhrC,EAAAgrC,EAAAhrC,MAAA86I,EAAA9vG,EACAy4C,KAAAA,OAAO,IAAAq3D,EAAA,OAAAA,EACP/xH,EAAAiiB,EAAAjiB,OAAAgyH,EAAA/vG,EACAovG,WAAAA,OAAa,IAAAW,EAAA,WAAAA,EACbH,EAAA5vG,EAAA4vG,iBAQMI,EAAuB,CAC3B51H,KAAM,CAACozH,KAAQpzH,OAAQozH,KAAQpzH,QAC/BC,MAAO,CAACmzH,KAAQnzH,QAASmzH,KAAQnzH,SACjC5I,KAAM,CAAC+7H,KAAQzvH,OAAOqxH,GAAa5B,KAAQzvH,OAAOqxH,KAgBhD,MAdS,SAAT32D,EACFu3D,EAAqB51H,KAAK,IAAM,GACd,UAATq+D,GAA6B,YAATA,EAC7Bu3D,EAAqB51H,KAAK,IAAM,EACb,SAATq+D,GAA4B,SAATA,GAAqBm3D,IAEZ,KAAlCI,EAAqB31H,MAAM,IAC7B21H,EAAqB51H,KAAK,IAAM,EAChC41H,EAAqB31H,MAAM,GAAK,GAEhC21H,EAAqB31H,MAAM,IAAM,GAIhCrlB,GAAUxC,MAAMoB,QAAQoB,IAAWA,EAAM3C,OAIvC,CACL+nB,KAAMplB,EAAM6L,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGgE,GAAQ3D,UAC/CC,MAAOrlB,EAAM6L,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGgE,GAAQ1D,WAChD5I,KAAMzc,EAAM6L,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGgE,GAAQA,OAAOqxH,EAAW,KAN1DY,CAQX,CCvTO,SAASC,GAAep0I,GAA0B,IAAAq0I,EAAAC,EAAAC,EAAAC,EACvDzoE,EAA8C7nC,SAAOlkC,GAC6CgsE,EAAArvD,GAAxEooD,GADXgH,EAAP5yE,MAAkC4yE,EAAX/G,WACiChlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA3FnvD,EAAO6yE,EAAA,GAAA1jB,EAAQ0jB,EAAA,GAEhByoE,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACd6xH,kBAAkB/zI,EAAMkjG,UAAmBljG,EAAM+zI,kBAClD,IAGC/zI,EAAM+zI,mBACHlC,GAAkB4C,EAAUt7I,MAAM+oB,SACrCmjB,QAAQnT,MAAM,WAAAd,OAAWqjH,EAAUt7I,MAAM+oB,OAAqC,kIAGlF,IAAMtM,EAAOsa,EAAAA,IACXwjH,GACE1zI,EAAMkjG,iBAAAmxC,EAAYl7I,EAAMA,aAAA,IAAAk7I,OAAA,EAANA,EAAoC,GAAKl7I,EAAMA,MACjEs7I,EAAUt7I,MAAM+oB,OAChBuyH,EAAUt7I,MAAMo6I,WAChBvzI,EAAM2zI,cAGJn1H,EAAQ0R,EAAAA,IACZ4hH,GACE9xI,EAAMkjG,iBAAAoxC,EAAYn7I,EAAMA,aAAA,IAAAm7I,OAAA,EAANA,EAAoC,GAAMn7I,EAAMA,MAClEs7I,EAAUt7I,MAAM+oB,QAChB1D,SAEED,EAAO2R,EAAAA,IACX4hH,GACE9xI,EAAMkjG,iBAAAqxC,EAAYp7I,EAAMA,aAAA,IAAAo7I,OAAA,EAANA,EAAoC,GAAMp7I,EAAMA,MAClEs7I,EAAUt7I,MAAM+oB,QAChB3D,QAEEm2H,EAAaxkH,EAAAA,IACjB0iH,GAAW5yI,EAAMkjG,SAAgD,QAAhDsxC,EAAYr7I,EAAMA,aAA8B,IAAAq7I,OAAA,EAApCA,EAAoC,GAAKr7I,EAAMA,MAAO,CACjF+oB,OAAQuyH,EAAUt7I,MAAM+oB,UAkBrB,OAbPioC,EAAAA,aAAY,WACLhxD,EAAMA,MAINw5I,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,UAEnCwyH,EAAAv7I,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAErBtM,EAAAzc,MAAQu6I,GAAWv6I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,OAAQuyH,EAAUt7I,MAAMo6I,WAAYvzI,EAAM2zI,cAR7Fe,EAAWv7I,MAAQ,EASvB,IAEO,CACLolB,KAAAA,EACAC,MAAAA,EACArlB,MAAAA,EACAyc,KAAAA,EACA8+H,WAAAA,EACApsF,SAAAA,EAEJ,okBC7Ee,SAASqsF,KAYtB,OAXAA,GAAWr9I,OAAOq5B,OAASr5B,OAAOq5B,OAAO61B,OAAS,SAAUxzB,GAC1D,IAAK,IAAIv8B,EAAI,EAAGA,EAAIsI,UAAUvI,OAAQC,IAAK,CACzC,IAAI4H,EAASU,UAAUtI,GACvB,IAAK,IAAI+B,KAAO6F,EACV/G,OAAOC,UAAUyC,eAAevC,KAAK4G,EAAQ7F,KAC/Cw6B,EAAOx6B,GAAO6F,EAAO7F,GAG3B,CACA,OAAOw6B,GAEF2hH,GAAS31I,MAAM6B,KAAM9B,UAC9B,kCCboEgD,EAAeH,QAA2K,SAASpH,EAAE/D,EAAEsmB,GAAGtmB,EAAEc,UAAUq9I,UAAU,SAASp6I,EAAE/D,EAAE8mB,EAAEL,GAAG,IAAI7lB,EAAE0lB,EAAEviB,GAAGtD,EAAE6lB,EAAEtmB,GAAGomB,EAAE,OAAOK,EAAEA,GAAG,MAAM,GAAGF,EAAE,MAAME,EAAE,GAAG,OAAOL,EAAEhc,KAAKygB,QAAQjqB,EAAEkmB,IAAI1c,KAAK0gB,SAASlqB,EAAEkmB,MAAMP,EAAEnc,KAAK0gB,SAASrqB,EAAEqmB,IAAI1c,KAAKygB,QAAQpqB,EAAEqmB,MAAMV,EAAEhc,KAAK0gB,SAASlqB,EAAEkmB,IAAI1c,KAAKygB,QAAQjqB,EAAEkmB,MAAMP,EAAEnc,KAAKygB,QAAQpqB,EAAEqmB,IAAI1c,KAAK0gB,SAASrqB,EAAEqmB,0DCAzT,IAA4B/iB,EAASuiB,EAAjMhb,EAAeH,SAAyKpH,EAAE,OAAOuiB,EAAE,OAAc,SAAStmB,EAAEY,EAAEwlB,GAAG,IAAIK,EAAE7lB,EAAEE,UAAU2lB,EAAEsL,KAAK,SAAS/xB,GAAG,QAAG,IAASA,IAAIA,EAAE,MAAM,OAAOA,EAAE,OAAOoK,KAAK2P,IAAI,GAAG/Z,EAAEoK,KAAK2nB,QAAQ,OAAO,IAAInxB,EAAEwJ,KAAK+gB,UAAUwB,WAAW,EAAE,GAAG,KAAKviB,KAAK2d,SAAS3d,KAAKyd,OAAO,GAAG,CAAC,IAAIpB,EAAEL,EAAEhc,MAAMugB,QAAQrE,GAAGvM,IAAI,EAAEuM,GAAGuB,KAAKjnB,GAAGkmB,EAAEV,EAAEhc,MAAMwgB,MAAM7mB,GAAG,GAAG0iB,EAAEqE,SAAShE,GAAG,OAAO,CAAC,CAAC,IAAIN,EAAEJ,EAAEhc,MAAMugB,QAAQrE,GAAGuB,KAAKjnB,GAAG+pB,QAAQ5mB,GAAGynB,SAAS,EAAE,eAAe/qB,EAAE2J,KAAK4hB,KAAKxF,EAAEziB,GAAE,GAAI,OAAOtD,EAAE,EAAE2lB,EAAEhc,MAAMugB,QAAQ,QAAQoH,OAAOnoB,KAAKqL,KAAKxU,EAAE,EAAEgmB,EAAE23H,MAAM,SAASr6I,GAAG,YAAO,IAASA,IAAIA,EAAE,MAAMqG,KAAK2nB,KAAKhuB,0DCA3rBuH,EAAeH,QAA0K,SAASpH,EAAEuiB,GAAGA,EAAExlB,UAAUu9I,SAAS,WAAW,IAAIt6I,EAAEqG,KAAK2d,QAAQzB,EAAElc,KAAK2nB,OAAOnxB,EAAEwJ,KAAK0d,OAAO,OAAO,IAAIxB,GAAG,KAAKviB,EAAEnD,EAAE,EAAE,IAAImD,GAAGuiB,GAAG,GAAG1lB,EAAE,EAAEA,wDCAhU0K,UAA2L,SAAS1K,EAAEmD,EAAEuiB,GAAG,IAAIF,EAAEriB,EAAEjD,UAAUL,EAAE,SAASG,GAAG,OAAOA,IAAIA,EAAE67B,QAAQ77B,EAAEA,EAAEkmB,EAAG,EAACP,EAAE,SAAS3lB,EAAEmD,EAAEuiB,EAAEF,EAAEG,GAAG,IAAIvmB,EAAEY,EAAEO,KAAKP,EAAEA,EAAEuqB,UAAU3E,EAAE/lB,EAAET,EAAE+D,IAAI+iB,EAAErmB,EAAET,EAAEsmB,IAAIG,EAAED,GAAGM,EAAEvY,KAAK,SAAS3N,GAAG,OAAOA,EAAEK,MAAM,EAAEmlB,EAAE,IAAI,IAAIG,EAAE,OAAOE,EAAE,IAAIQ,EAAEjnB,EAAEorB,UAAU,OAAO3E,EAAElY,KAAK,SAAS3N,EAAEmD,GAAG,OAAO0iB,GAAG1iB,GAAGkjB,GAAG,IAAI,EAAE,GAAI,EAACjnB,EAAE,WAAW,OAAOsmB,EAAEmG,GAAGnG,EAAEqC,SAAU,EAACnC,EAAE,SAAS5lB,EAAEmD,GAAG,OAAOnD,EAAEgsB,QAAQ7oB,IAAI,SAASnD,GAAG,OAAOA,EAAEuE,QAAQ,kCAAkC,SAASvE,EAAEmD,EAAEuiB,GAAG,OAAOviB,GAAGuiB,EAAErlB,MAAM,EAAE,GAAI,CAAvG,CAAwGL,EAAEgsB,QAAQ7oB,EAAE6xG,eAAgB,EAAC9uF,EAAE,WAAW,IAAIlmB,EAAEwJ,KAAK,MAAM,CAACkd,OAAO,SAASvjB,GAAG,OAAOA,EAAEA,EAAE0nB,OAAO,QAAQlF,EAAE3lB,EAAE,SAAU,EAACgrB,YAAY,SAAS7nB,GAAG,OAAOA,EAAEA,EAAE0nB,OAAO,OAAOlF,EAAE3lB,EAAE,cAAc,SAAS,EAAG,EAAC2tB,eAAe,WAAW,OAAO3tB,EAAEuqB,UAAUC,WAAW,CAAE,EAAC/D,SAAS,SAAStjB,GAAG,OAAOA,EAAEA,EAAE0nB,OAAO,QAAQlF,EAAE3lB,EAAE,WAAY,EAACirB,YAAY,SAAS9nB,GAAG,OAAOA,EAAEA,EAAE0nB,OAAO,MAAMlF,EAAE3lB,EAAE,cAAc,WAAW,EAAG,EAACkrB,cAAc,SAAS/nB,GAAG,OAAOA,EAAEA,EAAE0nB,OAAO,OAAOlF,EAAE3lB,EAAE,gBAAgB,WAAW,EAAG,EAAC09I,eAAe,SAASv6I,GAAG,OAAOyiB,EAAE5lB,EAAEuqB,UAAUpnB,EAAG,EAAC4nB,SAASvhB,KAAK+gB,UAAUQ,SAASpE,QAAQnd,KAAK+gB,UAAU5D,UAAUnB,EAAEm4H,WAAW,WAAW,OAAOz3H,EAAEipC,KAAK3lD,KAAP0c,EAAc,EAAER,EAAEi4H,WAAW,WAAW,IAAI39I,EAAEZ,IAAI,MAAM,CAACuuB,eAAe,WAAW,OAAO3tB,EAAEwqB,WAAW,CAAE,EAAC/D,SAAS,WAAW,OAAOf,EAAEe,UAAW,EAACyE,cAAc,WAAW,OAAOxF,EAAEwF,eAAgB,EAACD,YAAY,WAAW,OAAOvF,EAAEuF,aAAc,EAACvE,OAAO,WAAW,OAAOhB,EAAEgB,QAAS,EAACsE,YAAY,WAAW,OAAOtF,EAAEsF,aAAc,EAAC0yH,eAAe,SAASv6I,GAAG,OAAOyiB,EAAE5lB,EAAEmD,EAAG,EAAC4nB,SAAS/qB,EAAE+qB,SAASpE,QAAQ3mB,EAAE2mB,QAAQ,EAAEjB,EAAEgB,OAAO,WAAW,OAAOf,EAAEvmB,IAAI,SAAS,EAAEsmB,EAAEsF,YAAY,WAAW,OAAOrF,EAAEvmB,IAAI,cAAc,SAAS,EAAE,EAAEsmB,EAAEe,SAAS,SAASzmB,GAAG,OAAO2lB,EAAEvmB,IAAI,WAAW,KAAK,KAAKY,EAAE,EAAE0lB,EAAEwF,cAAc,SAASlrB,GAAG,OAAO2lB,EAAEvmB,IAAI,gBAAgB,WAAW,EAAEY,EAAE,EAAE0lB,EAAEuF,YAAY,SAASjrB,GAAG,OAAO2lB,EAAEvmB,IAAI,cAAc,WAAW,EAAEY,yDCAxzD,IAA4B0lB,EAAU1lB,EAArM0K,WAA2Lgb,EAAE,QAAQ1lB,EAAE,UAAiB,SAASmD,EAAE/D,GAAG,IAAIomB,EAAEpmB,EAAEc,UAAUslB,EAAEoN,QAAQ,SAASlN,GAAG,OAAOlc,KAAKogB,SAASjE,EAAED,GAAG1c,KAAKqL,MAAM7K,KAAK2d,QAAQ,GAAG,GAAG3d,KAAK2d,MAAM3d,KAAK2d,QAAQ,EAAE,GAAGzB,EAAE,KAAK,IAAIQ,EAAEV,EAAErM,IAAIqM,EAAErM,IAAI,SAAShW,EAAE/D,GAAG,OAAO+D,EAAExB,OAAOwB,GAAGqG,KAAKogB,SAASvC,EAAEjoB,KAAKY,EAAEwJ,KAAK2P,IAAI,EAAEhW,EAAEuiB,GAAGQ,EAAEipC,KAAK3lD,KAAP0c,CAAa/iB,EAAE/D,IAAI,IAAIumB,EAAEH,EAAEuE,QAAQvE,EAAEuE,QAAQ,SAAS5mB,EAAE/D,GAAG,IAAIomB,EAAEhc,KAAKogB,SAAS1D,IAAIV,EAAEG,EAAEvmB,IAAIA,EAAE,GAAGomB,EAAE6B,EAAElkB,KAAKnD,EAAE,CAAC,IAAIH,EAAE2J,KAAKopB,UAAU,EAAE,OAAO1M,EAAE1c,KAAK2d,MAAM,EAAEtnB,GAAGkqB,QAAQrE,GAAGqE,QAAQ,OAAOvgB,KAAK2d,MAAM,EAAEtnB,EAAE,GAAGmqB,MAAMtE,GAAGsE,MAAM,MAAM,CAAC,OAAOrE,EAAEwpC,KAAK3lD,KAAPmc,CAAaxiB,EAAE/D,0DCAxrBsL,EAAAH,QAA+L,SAASpH,EAAEuiB,GAAG,IAAIF,EAAEE,EAAExlB,UAAUF,EAAEwlB,EAAEqF,OAAOrF,EAAEqF,OAAO,SAAS1nB,GAAG,IAAIuiB,EAAElc,KAAKgc,EAAEhc,KAAK+gB,UAAU,IAAI/gB,KAAKqgB,UAAU,OAAO7pB,EAAEmvD,KAAK3lD,KAAPxJ,CAAamD,GAAG,IAAI+iB,EAAE1c,KAAKogB,SAAShE,GAAGziB,GAAG,wBAAwBoB,QAAQ,+DAA+D,SAASpB,GAAG,OAAOA,GAAG,IAAI,IAAI,OAAO6F,KAAKqL,MAAMqR,EAAEoD,GAAG,GAAG,GAAG,IAAI,KAAK,OAAOtD,EAAEmB,QAAQjB,EAAEsD,IAAI,IAAI,OAAO,OAAOtD,EAAE+3H,WAAW,IAAI,OAAO,OAAO/3H,EAAEk4H,cAAc,IAAI,KAAK,OAAOp4H,EAAEmB,QAAQjB,EAAEyL,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,OAAOjL,EAAEA,EAAER,EAAEyL,OAAO,MAAMhuB,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO+iB,EAAEA,EAAER,EAAEm4H,UAAU,MAAM16I,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO+iB,EAAEA,EAAExkB,OAAO,IAAIgkB,EAAE0D,GAAG,GAAG1D,EAAE0D,IAAI,MAAMjmB,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,OAAO6F,KAAKoa,MAAMsC,EAAE6C,GAAG8B,UAAU,KAAK,IAAI,IAAI,OAAO3E,EAAE6C,GAAG8B,UAAU,IAAI,IAAI,MAAM,IAAI3E,EAAEo4H,aAAa,IAAI,IAAI,MAAM,MAAM,IAAIp4H,EAAEo4H,WAAW,QAAQ,IAAI,QAAQ,OAAO36I,EAAE,IAAI,OAAOnD,EAAEmvD,KAAK3lD,KAAPxJ,CAAa4lB,yDCA9/Blb,EAAAH,QAAmK,WAAwB,IAAIpH,EAAE,CAAC+oB,IAAI,YAAYD,GAAG,SAASE,EAAE,aAAaC,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6B5G,EAAE,0FAA0F1lB,EAAE,OAAOwlB,EAAE,QAAQpmB,EAAE,qBAAqBS,EAAE,CAAE,EAACqmB,EAAE,SAAS/iB,GAAG,OAAOA,GAAGA,IAAIA,EAAE,GAAG,KAAK,MAAUyiB,EAAE,SAASziB,GAAG,OAAO,SAASuiB,GAAGlc,KAAKrG,IAAIuiB,EAAG,EAACG,EAAE,CAAC,sBAAsB,SAAS1iB,IAAIqG,KAAKu0I,OAAOv0I,KAAKu0I,KAAK,CAAA,IAAK3uI,OAAO,SAASjM,GAAG,IAAIA,EAAE,OAAO,EAAE,GAAG,MAAMA,EAAE,OAAO,EAAE,IAAIuiB,EAAEviB,EAAEqL,MAAM,gBAAgBxO,EAAE,GAAG0lB,EAAE,KAAKA,EAAE,IAAI,GAAG,OAAO,IAAI1lB,EAAE,EAAE,MAAM0lB,EAAE,IAAI1lB,EAAEA,CAAE,CAAjI,CAAkImD,EAAE,GAAGijB,EAAE,SAASjjB,GAAG,IAAIuiB,EAAE7lB,EAAEsD,GAAG,OAAOuiB,IAAIA,EAAEmW,QAAQnW,EAAEA,EAAEQ,EAAE6T,OAAOrU,EAAEG,GAAI,EAACF,EAAE,SAASxiB,EAAEuiB,GAAG,IAAI1lB,EAAEwlB,EAAE3lB,EAAEkrB,SAAS,GAAGvF,GAAG,IAAI,IAAIpmB,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAE,GAAG+D,EAAE04B,QAAQrW,EAAEpmB,EAAE,EAAEsmB,KAAK,EAAE,CAAC1lB,EAAEZ,EAAE,GAAG,KAAK,OAAOY,EAAEmD,KAAKuiB,EAAE,KAAK,MAAM,OAAO1lB,CAAE,EAACqmB,EAAE,CAAC23H,EAAE,CAAC5+I,EAAE,SAAS+D,GAAGqG,KAAKy0I,UAAUt4H,EAAExiB,GAAE,EAAG,GAAGyiB,EAAE,CAACxmB,EAAE,SAAS+D,GAAGqG,KAAKy0I,UAAUt4H,EAAExiB,GAAE,EAAG,GAAGwkB,EAAE,CAAC,KAAK,SAASxkB,GAAGqG,KAAK00I,aAAa,KAAK/6I,CAAC,GAAGg7I,GAAG,CAACn+I,EAAE,SAASmD,GAAGqG,KAAK00I,aAAa,IAAI/6I,CAAC,GAAGi7I,IAAI,CAAC,QAAQ,SAASj7I,GAAGqG,KAAK00I,cAAc/6I,CAAC,GAAG+iB,EAAE,CAACV,EAAEI,EAAE,YAAYy4H,GAAG,CAAC74H,EAAEI,EAAE,YAAYgB,EAAE,CAACpB,EAAEI,EAAE,YAAYiH,GAAG,CAACrH,EAAEI,EAAE,YAAY04H,EAAE,CAAC94H,EAAEI,EAAE,UAAUQ,EAAE,CAACZ,EAAEI,EAAE,UAAU24H,GAAG,CAAC/4H,EAAEI,EAAE,UAAUkH,GAAG,CAACtH,EAAEI,EAAE,UAAU2B,EAAE,CAAC/B,EAAEI,EAAE,QAAQ44H,GAAG,CAACx+I,EAAE4lB,EAAE,QAAQ64H,GAAG,CAACr/I,EAAE,SAAS+D,GAAG,IAAIuiB,EAAE7lB,EAAE8mB,QAAQ3mB,EAAEmD,EAAEqL,MAAM,OAAO,GAAGhF,KAAK6wI,IAAIr6I,EAAE,GAAG0lB,EAAE,IAAI,IAAIF,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAEE,EAAEF,GAAGjhB,QAAQ,SAAS,MAAMpB,IAAIqG,KAAK6wI,IAAI70H,EAAE,GAAGgB,EAAE,CAAChB,EAAEI,EAAE,UAAUoH,GAAG,CAAChtB,EAAE4lB,EAAE,UAAU84H,IAAI,CAACt/I,EAAE,SAAS+D,GAAG,IAAIuiB,EAAEU,EAAE,UAAUpmB,GAAGomB,EAAE,gBAAgBV,EAAE/X,KAAK,SAASxK,GAAG,OAAOA,EAAE9C,MAAM,EAAE,EAAK,KAAEw7B,QAAQ14B,GAAG,EAAE,GAAGnD,EAAE,EAAE,MAAM,IAAI4iC,MAAMp5B,KAAK2d,MAAMnnB,EAAE,IAAIA,CAAC,GAAG2+I,KAAK,CAACv/I,EAAE,SAAS+D,GAAG,IAAIuiB,EAAEU,EAAE,UAAUyV,QAAQ14B,GAAG,EAAE,GAAGuiB,EAAE,EAAE,MAAM,IAAIkd,MAAMp5B,KAAK2d,MAAMzB,EAAE,IAAIA,CAAC,GAAGk5H,EAAE,CAAC,WAAWh5H,EAAE,SAASi5H,GAAG,CAAC7+I,EAAE,SAASmD,GAAGqG,KAAK0d,KAAKhB,EAAE/iB,EAAE,GAAG27I,KAAK,CAAC,QAAQl5H,EAAE,SAASm5H,EAAEl5H,EAAEm5H,GAAGn5H,GAAG,SAASM,EAAEnmB,GAAG,IAAIwlB,EAAEpmB,EAAEomB,EAAExlB,EAAEZ,EAAES,GAAGA,EAAEmsB,QAAQ,IAAI,IAAI9F,GAAGlmB,EAAEwlB,EAAEjhB,QAAQ,qCAAqC,SAASmhB,EAAE1lB,EAAEwlB,GAAG,IAAI3lB,EAAE2lB,GAAGA,EAAEwvF,cAAc,OAAOh1G,GAAGZ,EAAEomB,IAAIriB,EAAEqiB,IAAIpmB,EAAES,GAAG0E,QAAQ,kCAAkC,SAASpB,EAAEuiB,EAAE1lB,GAAG,OAAO0lB,GAAG1lB,EAAEK,MAAM,EAAE,GAAI,KAAImO,MAAMkX,GAAGE,EAAEM,EAAE/mB,OAAO0mB,EAAE,EAAEA,EAAED,EAAEC,GAAG,EAAE,CAAC,IAAIO,EAAEF,EAAEL,GAAGF,EAAEU,EAAED,GAAGD,EAAER,GAAGA,EAAE,GAAGF,EAAEE,GAAGA,EAAE,GAAGO,EAAEL,GAAGJ,EAAE,CAACw5H,MAAM94H,EAAE+4H,OAAOz5H,GAAGW,EAAE7hB,QAAQ,WAAW,GAAG,CAAC,OAAO,SAASpB,GAAG,IAAI,IAAIuiB,EAAE,GAAG1lB,EAAE,EAAEwlB,EAAE,EAAExlB,EAAE4lB,EAAE5lB,GAAG,EAAE,CAAC,IAAIZ,EAAE8mB,EAAElmB,GAAG,GAAG,iBAAiBZ,EAAEomB,GAAGpmB,EAAED,WAAW,CAAC,IAAIU,EAAET,EAAE6/I,MAAMp5H,EAAEzmB,EAAE8/I,OAAO94H,EAAEjjB,EAAE9C,MAAMmlB,GAAGG,EAAE9lB,EAAE+F,KAAKwgB,GAAG,GAAGP,EAAEzlB,KAAKslB,EAAEC,GAAGxiB,EAAEA,EAAEoB,QAAQohB,EAAE,GAAG,CAAC,CAAC,OAAO,SAASxiB,GAAG,IAAIuiB,EAAEviB,EAAE86I,UAAU,QAAG,IAASv4H,EAAE,CAAC,IAAI1lB,EAAEmD,EAAEg8I,MAAMz5H,EAAE1lB,EAAE,KAAKmD,EAAEg8I,OAAO,IAAI,KAAKn/I,IAAImD,EAAEg8I,MAAM,UAAUh8I,EAAE86I,SAAS,CAAC,CAAxH,CAA0Hv4H,GAAGA,EAAE,CAAC,OAAO,SAASviB,EAAEuiB,EAAE1lB,GAAGA,EAAEqnB,EAAE+3H,mBAAkB,EAAGj8I,GAAGA,EAAEk8I,oBAAoBn5H,EAAE/iB,EAAEk8I,mBAAmB,IAAI75H,EAAEE,EAAExlB,UAAUd,EAAEomB,EAAE8C,MAAM9C,EAAE8C,MAAM,SAASnlB,GAAG,IAAIuiB,EAAEviB,EAAE8jB,KAAKzB,EAAEriB,EAAE8kB,IAAI/B,EAAE/iB,EAAEkG,KAAKG,KAAK0e,GAAG1C,EAAE,IAAII,EAAEM,EAAE,GAAG,GAAG,iBAAiBN,EAAE,CAAC,IAAIC,GAAE,IAAKK,EAAE,GAAGE,GAAE,IAAKF,EAAE,GAAGP,EAAEE,GAAGO,EAAEC,EAAEH,EAAE,GAAGE,IAAIC,EAAEH,EAAE,IAAIrmB,EAAE2J,KAAK+gB,WAAW1E,GAAGQ,IAAIxmB,EAAEG,EAAE6rB,GAAGxF,IAAI7c,KAAK+e,GAAG,SAASplB,EAAEuiB,EAAE1lB,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK67B,QAAQnW,IAAI,EAAE,OAAO,IAAIxe,MAAM,MAAMwe,EAAE,IAAI,GAAGviB,GAAG,IAAIqiB,EAAEW,EAAET,EAAFS,CAAKhjB,GAAG/D,EAAEomB,EAAE0B,KAAKrnB,EAAE2lB,EAAE2B,MAAMjB,EAAEV,EAAE60H,IAAIz0H,EAAEJ,EAAE25H,MAAMt5H,EAAEL,EAAE85H,QAAQl5H,EAAEZ,EAAE+5H,QAAQ55H,EAAEH,EAAE04H,aAAa73H,EAAEb,EAAEu4H,KAAKt4H,EAAE,IAAIve,KAAK0f,EAAEV,IAAI9mB,GAAGS,EAAE,EAAE4lB,EAAEwD,WAAWzC,EAAEpnB,GAAGqmB,EAAEoD,cAAc+1H,EAAE,EAAEx/I,IAAIS,IAAI++I,EAAE/+I,EAAE,EAAEA,EAAE,EAAE4lB,EAAEsD,YAAY,IAAI1B,EAAEzB,GAAG,EAAEiB,EAAEhB,GAAG,EAAE0B,EAAEnB,GAAG,EAAEsB,EAAE/B,GAAG,EAAE,OAAOU,EAAE,IAAInf,KAAKA,KAAKwhB,IAAIlC,EAAEo4H,EAAEh4H,EAAES,EAAER,EAAEU,EAAEG,EAAE,GAAGrB,EAAEjX,OAAO,MAAMpP,EAAE,IAAIkH,KAAKA,KAAKwhB,IAAIlC,EAAEo4H,EAAEh4H,EAAES,EAAER,EAAEU,EAAEG,IAAI,IAAIxgB,KAAKsf,EAAEo4H,EAAEh4H,EAAES,EAAER,EAAEU,EAAEG,EAAG,CAAA,MAAMvkB,GAAG,OAAO,IAAI+D,KAAK,GAAG,CAAE,CAA1c,CAA2cwe,EAAEE,EAAEJ,GAAGhc,KAAKmf,OAAOtC,IAAG,IAAKA,IAAI7c,KAAKwe,GAAGxe,KAAKue,OAAO1B,GAAG2B,IAAIrC,GAAGD,GAAGlc,KAAKqhB,OAAOjF,KAAKpc,KAAK+e,GAAG,IAAIrhB,KAAK,KAAKrH,EAAE,CAAA,CAAG,MAAK,GAAG+lB,aAAatmB,MAAM,IAAI,IAAImmB,EAAEG,EAAEzmB,OAAOynB,EAAE,EAAEA,GAAGnB,EAAEmB,GAAG,EAAE,CAACV,EAAE,GAAGN,EAAEgB,EAAE,GAAG,IAAIJ,EAAExmB,EAAE2H,MAAM6B,KAAK0c,GAAG,GAAGM,EAAEqD,UAAU,CAACrgB,KAAK+e,GAAG/B,EAAE+B,GAAG/e,KAAKwe,GAAGxB,EAAEwB,GAAGxe,KAAKmf,OAAO,KAAK,CAAC/B,IAAInB,IAAIjc,KAAK+e,GAAG,IAAIrhB,KAAK,IAAK,MAAK9H,EAAEgB,KAAKoJ,KAAKrG,IAAI,CAA3kHuiB,6lBCgDnF,SAAS85H,GAAettF,GAAkC,IAAhChrC,EAAMgrC,EAANhrC,KAAMC,EAAA+qC,EAAA/qC,MAC9B,OAAO,IAAIjgB,KAAKggB,EAAMC,EAAQ,EAAG,GAAG8B,SACtC,CAWA,SAASw2H,GAAWC,EAAaC,GAC/B,OAAOD,EAAM72H,gBAAkB82H,EAAM92H,aACvC,CAEA,SAAS+2H,GAAcF,EAAaC,GAClC,OAAOF,GAAWC,EAAOC,IAAUrF,GAAMoF,GAAO9sH,YAAc0nH,GAAMqF,GAAO/sH,SAC7E,CAEA,SAASitH,GAAYH,EAAaC,GACzB,OAAAF,GAAWC,EAAOC,IAAUD,EAAM32H,aAAe42H,EAAM52H,UAChE,CAEA,SAAS+2H,GAAWJ,EAAaC,GAA6C,IAAhCnuH,EAAA9pB,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAc,QAC1D,OAAOm4I,GAAYH,EAAOC,IAAUrF,GAAMoF,GAAO33H,OAAOyJ,GAAaL,SAAWmpH,GAAMqF,GAAO53H,OAAOyJ,GAAaL,MACnH,CAEA,SAAS4uH,GAAWL,EAAaC,GACxB,OAAAE,GAAYH,EAAOC,IAAUD,EAAMz2H,YAAc02H,EAAM12H,SAChE,CAQA,SAAS+2H,GAAWN,EAA+BC,GAC3C,IAAAM,EAAKP,EAAMr1H,UACXi6E,EAAKq7C,EAAMt1H,UAEjB,OAAI41H,EAAK37C,GAAW,EAChB27C,EAAK37C,EAAW,EACb,CACT,CASO,SAASx6E,GAAO41H,EAAaC,GAA4D,IA/EjEriH,EA+EiC9L,yDAAc,QAQ5E,MAPa,CACXiuH,WAAAA,GACAG,cAAAA,GACAC,YAAAA,GACAC,WAAAA,GACAC,WAAAA,qBArF2BziH,EA+EyB51B,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,OA9EjD41B,EACEA,EAAI,GAAG03E,cAAcj7E,OAAOuD,EAAI7U,UAAU,EAAG6U,EAAIn+B,SADvCm+B,KAsF4BoiH,EAAOC,EAAOnuH,EAC7D,CAEgB,SAAA0uH,GAAY75H,EAAS3I,EAAUzU,GACrC,OAAAyU,QAAOsiI,GAAW35H,EAAG3I,IAAiBzU,GAA8B,IAAvB+2I,GAAW35H,EAAGpd,EACrE,CAKO,SAASk3I,KACR,IAAAh5I,EAAM,IAAID,KAChB,OAAO,IAAIA,KAAKC,EAAI0hB,cAAe1hB,EAAI4hB,WAAY5hB,EAAI8hB,UAAW,EAAG,EAAG,EAC1E,CAsDgB,SAAAm3H,GAAcn5H,EAAY06E,GACxC,OAAO24C,GAAMrzH,GAAM2D,SAAS+2E,EAAK,SAASr3E,QAC5C,CAQgB,SAAA+1H,GAASp5H,EAAY06E,GACnC,OAAO24C,GAAMrzH,GAAM9N,IAAIwoF,EAAK,SAASr3E,QACvC,CAkBO,SAASg2H,GACd9/E,EAAA1zB,GAiBK,IAPL,IAVE5lB,EAAMs5C,EAANt5C,KAAMC,EAAAq5C,EAAAr5C,MAENwG,EAAAmf,EAAAnf,eAAA4yH,EAAAzzG,EACA0zG,eAAAA,OAAiB,IAAAD,GAAAA,EAAAE,EAAA3zG,EACjB4zG,YAAAA,OAAc,MAAA,WAAA,OAAM,CAAA,EAAAD,EACpBE,EAAA7zG,EAAA6zG,QACAC,EAAA9zG,EAAA8zG,QAAAC,EAAA/zG,EACAtb,YAAAA,OAAc,IAAAqvH,EAAA,QAAAA,EAAAC,EAAAh0G,EACdi0G,uBAAAA,OAAyB,IAAAD,GAAAA,EAGrBE,EArLR,SAA4B91G,GAAgC,IAA9BhkB,EAAMgkB,EAANhkB,KAAMC,EAAA+jB,EAAA/jB,MAClC,OAAO,IAAIjgB,KAAKggB,EAAMC,EAAO,EAC/B,CAmLqB85H,CAAmB,CAAE/5H,KAAAA,EAAMC,MAAAA,IACxC+5H,EApKR,SAA2B1uF,GAAgC,IAA9BtrC,EAAMsrC,EAANtrC,KAAMC,EAAAqrC,EAAArrC,MAC1B,OAAA,IAAIjgB,KAAKggB,EAAMC,EAAOq4H,GAAe,CAAEt4H,KAAAA,EAAMC,MAAAA,IACtD,CAkKoBg6H,CAAkB,CAAEj6H,KAAAA,EAAMC,MAAAA,IACtCi6H,EAAU5B,GAAe,CAAEt4H,KAAAA,EAAMC,MAAAA,IACjCk6H,EAAU,GACZjiJ,EAAI,EACF6xB,EAAQkvH,KACN/gJ,GAAKgiJ,EAAShiJ,IAAK,CACzB,IAAMkiJ,EAAa,IAAIp6I,KAAKggB,EAAMC,EAAO/nB,GACzCiiJ,EAAQt1I,KAAK,CACX++B,KAAM1rC,EACN27B,QAAQ,EACRj5B,MAAOw/I,EACP3mH,SAAWn1B,EAAWk7I,IAAgBA,EAAYY,KAC3CP,GAA0Bb,GAAYoB,EAAYX,EAASC,GAClEz5I,IAAK2iB,GAAOmH,EAAOqwH,GACnBC,gBAAuB,IAANniJ,EACjBoiJ,eAAgBpiJ,IAAMgiJ,EACtB38I,KAAM,gBACNg9I,SAAUnH,GAAMgH,GAAYv5H,OAAOyJ,IAEvC,CAEI,GAAAwvH,EAAW73H,WAAawE,EAE1B,IADAqzH,EAAWU,QAAQ,GAEjBL,EAAQjlH,QAAQ,CACd0O,KAAMk2G,EAAW/3H,UAAU9oB,WAC3B46B,QAAQ,EACRj5B,MAAO,IAAIoF,KAAK85I,GAChBrmH,SAAWn1B,EAAWk7I,IAAgBA,EAAYM,KAAkBD,GAA0Bb,GAAYc,EAAYL,EAASC,GAC/He,YAAY,EACZl9I,KAAM,aACNg9I,SAAUnH,GAAM0G,GAAYj5H,OAAOyJ,KAErCwvH,EAAWU,QAAQV,EAAW/3H,UAAY,GACtC+3H,EAAW73H,WAAangB,KAAKge,IAAI2G,EAAiB,GAAK,IAKxD,KAAA0zH,EAAQliJ,OADH,IAEV+hJ,EAAUQ,QAAQR,EAAUj4H,UAAY,GACxCo4H,EAAQt1I,KAAK,CACX++B,KAAMo2G,EAAUj4H,UAChB8R,QAAQ,EACRj5B,MAAO,IAAIoF,KAAKg6I,GAChBvmH,SAAWn1B,EAAWk7I,IAAgBA,EAAYQ,KAAiBH,GAA0Bb,GAAYgB,EAAWP,EAASC,GAC7He,YAAY,EACZl9I,KAAM,aACNg9I,SAAUnH,GAAM4G,GAAWn5H,OAAOyJ,KAIhC,IAAAowH,EAAWttI,GAAM+sI,EAAS,GAczB,OAZHb,GACOoB,EAAA3oI,SAAQ,SAACoN,GAChBA,EAAE+V,QAAQ+C,GAAAA,GACL9Y,CAAAA,EAAAA,EAAE,IAAA,GAAA,CACL0U,QAAQ,EACRj5B,MAAOukB,EAAE,GAAGvkB,MACZgpC,KAAMwvG,GAAMj0H,EAAE,GAAGvkB,OAAOimB,OAAOyJ,GAAaL,OAC5CswH,SAAUnH,GAAMj0H,EAAE,GAAGvkB,OAAOimB,OAAOyJ,KAEvC,IAGKowH,CACT,CA+GO,SAASC,GAAWx0I,EAAAiwH,GAA6C,IAA3Bj0H,EAAAi0I,GAAA,CAAA,GC/Y9B,SAAmCz7I,GAChD,GAAW,MAAPA,EAAa,MAAM,IAAIf,UAAU,sBAAwBe,EAC/D,CD6Y6CigJ,CAAAxkB,GAAAA,IAEzCn0H,EAQEE,EARFF,MACA+G,EAOE7G,EAPF6G,IACA6xI,EAME14I,EANF04I,WACAC,EAKE34I,EALF24I,SAAAC,EAKE54I,EAJF5E,KAAAA,OAAO,IAAAw9I,EAAA,OAAAA,EAAAC,EAIL74I,EAHF84I,QAAAA,OAAU,IAAAD,GAAAA,EACVpgJ,EAEEuH,EAFFvH,MAAAsgJ,EAEE/4I,EADFwiG,SAAAA,OAAW,IAAAu2C,GAAAA,EAIb,MAAa,SAAT39I,EAAwB4I,EAEvB80I,EAcE90I,EAAKM,KAAI,SAACo0C,UAAeA,EAAIp0C,KAAI,SAACi6B,GACvC,IAAMy6G,EAAQz6G,EACR3gB,EAAO2gB,EAAK9lC,MAEZwgJ,EAAUn5I,GAAS2gB,GAAO3gB,EAAO8d,EAAMxiB,GACvC89I,EAAeR,GAAcj4H,GAAOi4H,EAAY96H,EAAMxiB,GACtD+9I,EAAQtyI,GAAO4Z,GAAO5Z,EAAK+W,EAAMxiB,GACjCg+I,EAAaT,GAAYl4H,GAAOk4H,EAAU/6H,EAAMxiB,GAc/C,OAbP49I,EAAMtnH,QAAUunH,GAAWE,KAAWH,EAAMV,WAExCx4I,GAAS+G,IACLmyI,EAAAK,UAAYpI,GAAMrzH,GAAMs2H,UAAUp0I,EAAO+G,EAAKzL,EAAM,QAAU49I,EAAMV,WAC1EU,EAAMM,aAAeL,EACrBD,EAAMO,WAAaJ,GAGjBT,GAAcC,IACVK,EAAAQ,eAAiBvI,GAAMrzH,GAAMs2H,UAAUwE,EAAYC,EAAUv9I,EAAM,QAAU49I,EAAMV,WACzFU,EAAMS,kBAAoBP,EAC1BF,EAAMU,gBAAkBN,GAEnBJ,CACT,OAnCSh1I,EAAKM,KAAI,SAACo0C,UAAeA,EAAIp0C,KAAI,SAACi6B,GACvC,IAEco7G,EAFRX,EAAQz6G,EAEVikE,EACFw2C,EAAMtnH,OAAUj5B,SAAuBkhJ,QAAAA,EAAvBlhJ,EAAuBo9C,gBAAA8jG,SAAvBA,EAAA5iJ,KAAA0B,GAA8B,SAACslC,GAAA,OAAQtd,GAAOwwH,GAAMlzG,GAAK9c,SAAU+3H,EAAMvgJ,MAAO2C,KAAU49I,EAAMV,cAE1GU,EAAAtnH,OAAS5xB,GAAS2gB,GAAO8d,EAAK9lC,MAAOqH,EAAO1E,KAAU49I,EAAMV,WAG7D,OAAAU,CACT,MA0BJ,CAOgB,SAAAY,KAAwC,IAAzB/G,yDAAqB,GAC5CgH,EAAkBhH,EAAW1tI,MAAM,WAAa,CAAC,IAGoC20I,EAAA79H,IADpE42H,EAAW1tI,MADlB,6CACoC,CAAC,YAC0B,GAAG6C,MAAM,KAAG,GAAA+xI,EAAAD,EAAA,GAApFhE,OAAQ,IAARiE,EAAQ,EAAGA,EAAAC,EAAAF,EAAA,GAAA7D,OAAU,IAAV+D,EAAU,EAAGA,EAAAC,EAAAH,EAAA,GAAA5D,OAAU,IAAV+D,EAAU,EAAGA,EAAAC,EAAAJ,EAAA,GAErC,MAAA,CACLhE,OAAQA,EACRG,SAAUA,EACVC,SAAUA,EACVrB,oBANyD,IAAfqF,EAAe,EAACA,GAO1Dx4H,SAAUm4H,EAAgB,GAE9B,CA5cA5I,GAAM7uH,OAAO+3H,IACblJ,GAAM7uH,OAAOgyH,IACbnD,GAAM7uH,OAAOkyH,IACbrD,GAAM7uH,OAAOg4H,IACbnJ,GAAM7uH,OAAOi4H,IACbpJ,GAAM7uH,OAAO2zH,IACb9E,GAAM7uH,OAAOk4H,IERE,IAAAC,GAAA,CAEbn4C,WAAYhhE,QAEZosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEX6xG,YAAa,CACX73I,KAAM/C,OACNoqB,QAAS,YAGX40H,YAAa,CACXj8I,KAAM,CAACxE,OAAQX,MAAOmD,WAGxBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX4wH,iBAAkBjyG,QAElB9c,eAAgB,CACdlpB,KAAM9C,OACNi0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGjnB,SAASinB,EACxC,GAGFvc,OAAQ,CACNpmB,KAAM/C,OACNoqB,aAAS,GAGXy1E,WAAY,CACV98F,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjB8iF,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,UAAW,QAAS,OAAQ,QAAQjnB,SAASinB,EAC/D,GAGFykE,SAAUphE,QAEVo5G,YAAa,CACXp/I,KAAMgmC,QACN3e,SAAS,GAGX4E,YAAa,CACXjsB,KAAM,CAAC/C,OAAQpC,OACfwsB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGRg5C,WAAY,CACVx0C,KAAMhC,UAGRqhJ,QAAS,CACPr/I,KAAMxE,QAGR8jJ,iBAAkB,CAChBt/I,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,MAAO,QAAS,UAAUjnB,SAASinB,EACrD,GAGF8vD,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXqnG,iBAAkB,CAChB1uH,KAAMxE,QAGRiN,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF8R,WAAY,CACVz0C,KAAMhC,UAGRuhJ,gBAAiB,CACfv/I,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQrC,MAAO4H,MAC9B4kB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,OAAQrC,MAAO4H,MAC9B4kB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,OAAQrC,MAAO4H,MAC9B4kB,QAAS,IAGXogF,aAAc,CACZznG,KAAM,CAAC/C,OAAQe,WAGjB2wH,UAAW,CACT3uH,KAAM/C,OACNoqB,QAAS,IAGXyrE,OAAQ90F,SAERwuD,SAAUxuD,SAEVwhJ,UAAWxhJ,SAEXk1F,QAASl1F,SAETyhJ,OAAQzhJ,SAER0hJ,cAAe1hJ,UCjKjB2hJ,GAAermH,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAO,CACL48E,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QAEX5E,KAAMvlB,OACNwlB,MAAOxlB,OACP0iJ,cAAe5hJ,SACf6hJ,aAAc7hJ,SACd8hJ,cAAe9hJ,UAEjBu7B,MAAAA,SAAMr1B,GACJ,IAAQ0kB,EAAgByL,GAAU,eAA1BzL,YACFsmB,EAAiB7Z,GAAe,uBAC9BT,EAAiBP,GAAU,cAA3BO,aAEFmrH,EAAc3rH,EAAAA,IAAI4rH,EAAY97I,EAAMue,OACpCw9H,EAAkBpkI,EAAAA,UAAS,WAAA,MAAqB,SAAf3X,EAAM48E,MAAkC,SAAf58E,EAAM48E,QAGhEo/D,EAAcrkI,EAAAA,UAClB,WAAA,IAAAskI,EAAA,OACqG,QAAnGA,EAAAJ,EAAY1iJ,MAAMk3D,MAAK,SAAC8jB,GAAA,OAAWA,EAAOh7E,MAAQ6G,EAAMue,MAAQ,GAAK41D,EAAOh7E,MAAQ6G,EAAMue,MAAQ,YAAlG09H,IAAmGA,OAAnGA,EAAAA,EAAsG9iJ,QACtG6G,EAAMue,IAAA,IAGJ29H,EAAevkI,EAAAA,UAAS,WAAA,OAC5B+Y,EAAav3B,MAAM4kB,OAAO/Y,KAAI,SAACi6B,EAAchkC,GAAA,MAAmB,CAAEw+C,MAAOxa,EAAM9lC,MAAO8B,EAAQ,GAAA,IAGhG,SAAS6gJ,EAAYv9H,GACnB,IAAMrJ,EAAU,GACZ,GAAe,SAAflV,EAAM48E,KAKR,IAJA,IAAMu/D,EAAY59H,EAAO,GAEnB69H,EAAU79H,EAAO49H,EAAY,IAE1B1lJ,EAHO8nB,EAAO49H,EAAY,IAGb1lJ,GAAK2lJ,EAAS3lJ,GAAK,GAC/Bye,EAAA9R,KAAK,CAAEq2C,MAAA,GAAAroB,OAAU36B,EAAA,OAAA26B,OAAO36B,EAAI,GAAK0C,MAAO1C,EAAI,QAEjD,CACLye,EAAQ9R,KAAK,CAAEq2C,MAAAroB,GAAAA,OAAU7S,GAAQplB,MAAOolB,IAExC,IAAA,IAAS9nB,EAAI,EAAGA,GAAK,GAAIA,IACfye,EAAA9R,KAAK,CAAEq2C,SAAOroB,OAAG7S,EAAO9nB,GAAK0C,MAAOolB,EAAO9nB,IAC3Cye,EAAAue,QAAQ,CAAEgmB,SAAOroB,OAAG7S,EAAO9nB,GAAK0C,MAAOolB,EAAO9nB,GAE1D,CAEO,OAAAye,CACT,CAES,SAAAmnI,EAAa99H,EAAcziB,GAClC,IAAMoZ,EAAU,GACZ,GAAe,SAAflV,EAAM48E,KAAiB,CACzB,IAAMu/D,EAAY59H,EAAO,GACzB,GAAa,QAATziB,EACO,IAAA,IAAArF,EAAI8nB,EAAO49H,EAAY,GAAI1lJ,GAAK8nB,EAAO49H,EAAY,GAAI1lJ,GAAK,GAC3Dye,EAAA9R,KAAK,CAAEq2C,MAAO,GAAAroB,OAAG36B,gBAAOA,EAAI,GAAK0C,MAAO1C,SAGzC,IAAA,IAAAA,EAAI8nB,EAAO49H,EAAY,EAAG1lJ,EAAI8nB,EAAO49H,EAAY,GAAI1lJ,GAAK,GACzDye,EAAAue,QAAQ,CAAEgmB,MAAO,GAAAroB,OAAG36B,EAAI,EAAO26B,OAAAA,OAAA36B,GAAK0C,MAAO1C,GAGzD,MAAA,GAAoB,QAATqF,EACT,IAAA,IAASrF,EAAI8nB,EAAO,EAAG9nB,GAAK8nB,EAAO,GAAI9nB,IACrCye,EAAQ9R,KAAK,CAAEq2C,MAAAroB,GAAAA,OAAU36B,GAAK0C,MAAO1C,SAGvC,IAAA,IAASA,EAAI8nB,EAAO,EAAG9nB,EAAI8nB,EAAO,GAAI9nB,IACpCye,EAAQue,QAAQ,CAAEgmB,MAAAroB,GAAAA,OAAU36B,GAAK0C,MAAO1C,IAIrC,OAAAye,CACT,CAGM,IAAAonI,EAAW3kI,EAAAA,UAAS,WACjB,MAAA,CACL4G,KAAM,CACJq/B,KAAMltB,EAAav3B,MAAM4xB,UACzBnR,QAAS8W,EAAav3B,MAAMqF,IAC5B2e,KAAMuT,EAAav3B,MAAM6xB,YAE3BxM,MAAO,CACLo/B,KAAMltB,EAAav3B,MAAMyxB,QACzBhR,QAAS8W,EAAav3B,MAAMqF,IAC5B2e,KAAMuT,EAAav3B,MAAMwxB,UAE3BrM,KAAM,CACJs/B,KAAMltB,EAAav3B,MAAM2xB,SACzBlR,QAAS8W,EAAav3B,MAAMqF,IAC5B2e,KAAMuT,EAAav3B,MAAM0xB,WAE3BZ,QAAS,CACP2zB,KAAMltB,EAAav3B,MAAMyxB,QACzBhR,QAAS8W,EAAav3B,MAAMqF,IAC5B2e,KAAMuT,EAAav3B,MAAMwxB,UAE3BnC,KAAM,CACJo1B,KAAMltB,EAAav3B,MAAM2xB,SACzBlR,QAAS8W,EAAav3B,MAAMqF,IAC5B2e,KAAMuT,EAAav3B,MAAM0xB,WAG/B,IAGS,SAAAy0B,EAAA/c,GAAyB,IAAV/nC,EAAA+nC,EAAA/nC,EACK,IAAvBA,EAAEw4B,OAAO+I,UACXwgH,EAAoB/hJ,GACXA,EAAEw4B,OAAO+I,YAAcvhC,EAAEw4B,OAAOwmC,aAAeh/D,EAAEw4B,OAAOkjC,cACjEsmF,EAAuBhiJ,EAE3B,CAEA,SAAS+hJ,EAAoB/hJ,GAAe,IAAAiiJ,EAC1CjiJ,SAAqBiiJ,QAArBA,EAAAjiJ,EAAG24E,2BAAkBspE,GAArBA,EAAAhlJ,KAAA+C,GAEM,IACA0a,EAAUmnI,EADER,EAAY1iJ,MAAM,GAAGA,MACC,UACxC0iJ,EAAY1iJ,kBAAY+b,GAASpd,EAAG+jJ,EAAY1iJ,OAClD,CAEA,SAASqjJ,EAAuBhiJ,GAAe,IAAAkiJ,EAC7CliJ,SAAqBkiJ,QAArBA,EAAAliJ,EAAG24E,2BAAkBupE,GAArBA,EAAAjlJ,KAAA+C,GAEA,IACM0a,EAAUmnI,EADCR,EAAY1iJ,MAAMzB,OAAM,GAAI,GAAGyB,MACT,OACvC0iJ,EAAY1iJ,kBAAY0iJ,EAAY1iJ,OAAArB,EAAUod,GAChD,CASA,OAPAwsB,EAAAA,OACE,WAAA,OAAM1hC,EAAM48E,IAAA,IACZ,WACci/D,EAAA1iJ,MAAQ2iJ,EAAY97I,EAAMue,KACxC,IAGK,WAAA,OAAAqY,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV4Z,EAAe7xC,MAAA,gBAAA,CAC3B4iJ,EAAgB5iJ,yCAEH6xC,EAAe7xC,iCAClB6G,EAAMwe,cACJ09H,EAAa/iJ,eACZ,SAACslC,gBAAsBk+G,UAAN38I,EAAM07I,qBAANiB,IAAMA,OAANA,EAAAA,EAAAllJ,KAAAuI,EAAsBy+B,EAAG,EAAA0pC,WACxC,CACVrjD,OAAQ,SAAC8jD,GAAA,OAAgCA,EAAe1qC,UAAA,EACxDoqC,iBAAAl3C,GAAAA,OAAqB4Z,EAAe7xC,MAAA,6BAExC,MAAAy9B,EAAAO,YAAAylH,GAAA,CAAA/lH,MAAA,GAAAzF,OAGU4Z,EAAe7xC,gCACH,SAAf6G,EAAM48E,KAAkBo/D,EAAY7iJ,MAAQ6G,EAAMue,KACzDrJ,QAAS2mI,EAAY1iJ,MAAAmvD,SACX,SAAC7pB,gBAAsBo+G,UAAN78I,EAAM27I,oBAANkB,IAAMA,OAANA,EAAAA,EAAAplJ,KAAAuI,EAAqBy+B,EAAG,EAAA0pC,WACvC,CACVY,SAAUzpB,EACVx6B,OAAQ,SAAC8jD,GAAA,OAAgCA,EAAe1qC,UAAA,EACxDoqC,iBAAAl3C,GAAAA,OAAqB4Z,EAAe7xC,MAAA,2BACtCw9E,gBACiB,WAAA,OAAA//C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACA1M,EAAYvrB,MAAA,kBAAAouC,QAAgCg1G,GAAA,CAAA3d,EAAAke,gBAAA,6BAIzC,WAAA,OAAAlmH,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACH1M,EAAYvrB,MAAA,kBAAAouC,QAAgCi1G,GAAA,CAAA5d,EAAAke,gBAAA,QAAA,GAI/DlmH,QAAAA,EAAAA,YAAAwkG,GAAA,CAAAzsC,KAGoB2tD,EAASnjJ,MAAM6G,EAAM48E,MAAAr4E,KAAA,QAAA+jD,SAA8BtoD,EAAM47I,eAAe,QAGpG,IC1LFmB,GAAe3nH,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAO,CACL4V,KAAM7c,OACNopC,KAAM,CAACppC,OAAQC,QACfG,MAAOoF,KACP6zB,OAAQ0P,QACRi4G,UAAWj4G,QACX9P,SAAU8P,QACVk4G,aAAcl4G,QACdm4G,WAAYn4G,QACZo4G,eAAgBp4G,QAChBq4G,kBAAmBr4G,QACnBs4G,gBAAiBt4G,QACjBk3G,WAAYl3G,QACZtjC,IAAKsjC,QACL82G,gBAAiB92G,QACjB+2G,eAAgB/2G,QAChByF,QAASztC,SACTqlH,aAAcrlH,SACdg/I,SAAUkE,GAAAA,QAAAA,OAEZ3nH,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,qBAEhC8rH,EAAYtlI,EAAAA,UAAS,WAAA,IAAA4qB,EAAA,MAAM,CAC/ByI,EAAe7xC,OAAAopC,EAAA,CAAA,EAAAtpC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAspC,EAAA,GAAAnR,OAET4Z,EAAe7xC,eAAe6G,EAAMxB,KAAA,GAAA4yB,OACpC4Z,EAAe7xC,kBAAkB6G,EAAMoyB,QAAA,GAAAhB,OACvC4Z,EAAe7xC,oBAAoB6G,EAAMgyB,UAAA,GAAAZ,OACzC4Z,EAAe7xC,qBAAqB6G,EAAM+5I,WAAA,GAAA3oH,OAC1C4Z,EAAe7xC,2BAA2B6G,EAAMk6I,gBAAA,GAAA9oH,OAChD4Z,EAAe7xC,MAAwB6G,kBAAAA,EAAMg6I,iBAAA5oH,OAC7C4Z,EAAe7xC,MAAsB6G,gBAAAA,EAAMi6I,eAAA7oH,OAC3C4Z,EAAe7xC,MAAuB6G,iBAAAA,EAAMm6I,sBAAA/oH,OAC5C4Z,EAAe7xC,MAAqB6G,eAAAA,EAAMo6I,oBAAAhpH,OAC1C4Z,EAAe7xC,MAAsB6G,gBAAAA,EAAMg5I,YAAA//I,EAAAA,EAAAspC,EAAAnR,GAAAA,OAC3C4Z,EAAe7xC,MAAA,wBAA8B6G,EAAM44I,iBAAAxnH,GAAAA,OACnD4Z,EAAe7xC,MAAA,uBAA6B6G,EAAM64I,qBAI1D,SAAShoG,EAAYr2C,GAAe,IAAAoyC,EAClC,IAAI5sC,EAAMgyB,SAAV,CACA,GAAIhyB,EAAM4V,KAAM,CACR,IAAAsnI,EAAsD5C,GAAet6I,EAAM4V,MAAzE4gI,IAAAA,MAAOG,EAASuG,EAATvG,QAASC,EAAAsG,EAAAtG,QAASrB,IAAAA,aAAcnzH,EAAS86H,EAAT96H,SAE3C+6H,EAAY3G,EACZ,MAAM3+I,KAAKuqB,IAA2B,KAAd+6H,IAA+BA,GAAA,IACvD,MAAMtlJ,KAAKuqB,IAAa+6H,EAAY,KAAiBA,GAAA,IACnDn9I,EAAA7G,MAAMikJ,SAASD,GACfn9I,EAAA7G,MAAMkkJ,WAAW1G,GACjB32I,EAAA7G,MAAMmkJ,WAAW1G,GACjB52I,EAAA7G,MAAMokJ,gBAAgBhI,EAC9B,SACA3oG,EAAA5sC,EAAMunC,eAAU,IAAAqF,GAAhBA,EAAAn1C,KAAAuI,EAAgBA,EAAM7G,MAAO,CAAEqB,EAAAA,GAZX,CAatB,CAEA,SAASguF,IAAmB,IAAAg1D,EAC1B,IAAIx9I,EAAMgyB,SAAV,CACA,GAAIhyB,EAAM4V,KAAM,CACR,IAAA6nI,EAAsDnD,GAAet6I,EAAM4V,MAAzE4gI,IAAAA,MAAOG,EAAS8G,EAAT9G,QAASC,EAAA6G,EAAA7G,QAASrB,IAAAA,aAAcnzH,EAASq7H,EAATr7H,SAE3C+6H,EAAY3G,EACZ,MAAM3+I,KAAKuqB,IAA2B,KAAd+6H,IAA+BA,GAAA,IACvD,MAAMtlJ,KAAKuqB,IAAa+6H,EAAY,KAAiBA,GAAA,IACnDn9I,EAAA7G,MAAMikJ,SAASD,GACfn9I,EAAA7G,MAAMkkJ,WAAW1G,GACjB32I,EAAA7G,MAAMmkJ,WAAW1G,GACjB52I,EAAA7G,MAAMokJ,gBAAgBhI,EAC9B,SACMiI,EAAAx9I,EAAAm/G,oBAAA,IAAAq+B,GAAAA,EAAA/lJ,KAAAuI,EAAeA,EAAM7G,MAZP,CAatB,CAEO,OAAA,WAAA,OAAAy9B,EAAAA,YAAA,KAAA,CAAAC,MACMomH,EAAU9jJ,MAAOouC,QAASsJ,eAA2B23C,GAAA,CAAA5xD,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAC/C4Z,EAAe7xC,MAAA,WAAgB6G,CAAAA,EAAMmiC,SAG1D,ukBC5EF,IAAAu7G,GAAetoH,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAO,CACL48E,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QAEXhqB,MAAO,CAACJ,OAAQC,OAAQrC,MAAO4H,MAC/B2jB,OAAQnpB,OACRisB,eAAgBhsB,OAChBkqG,SAAUphE,QACVp9B,KAAM/N,MACNif,KAAM7c,OACN4kJ,YAAa7jJ,SACb8jJ,iBAAkB9jJ,SAClB+jJ,iBAAkB/jJ,UAEpBu7B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,sBAC9BT,EAAiBP,GAAU,cAA3BO,aACA7H,EAAgB6H,EAAav3B,MAA7B0vB,YAEFi1H,EAAUnmI,EAAAA,UAAS,WAIhBmmI,IAHP,IAAMA,EAAU,GACZC,EAAK/9I,EAAMglB,eAAiB,EAC1BzuB,EAAMm6B,EAAav3B,MAAM2kB,SAAStnB,OACjCsnJ,EAAQtnJ,OAASD,GACtBunJ,EAAQ16I,KAAKstB,EAAav3B,MAAM2kB,SAASigI,IACnCA,GAAAA,EAAKxnJ,EAAM,GAAKA,EAKjBunJ,MAFY,SAAf99I,EAAM48E,MAAiBkhE,EAAQrqH,QAAQ/C,EAAav3B,MAAMmxB,kBAEvDwzH,CACT,IAEME,EAAYrmI,EAAAA,UAAS,WAAA,MAAqB,SAAf3X,EAAM48E,MAAkC,SAAf58E,EAAM48E,QA6C1DqhE,EAAej+I,EAAMkjG,SAVE,SAAC/pG,EAA0B+kJ,GAAsB,IAAAC,EACtEC,EAActM,GAAaoM,EAAal+I,EAAMkiB,QAChD,GAAe,SAAfliB,EAAM48E,MAAoBjmF,MAAMoB,QAAQoB,KAAWA,EAAM3C,OAAS,MAAO,CAAA,EACvE,IAAA6nJ,EACH,QADGF,EAAiBhlJ,EACpB6L,WAAA,IAAAm5I,OAAA,EADoBA,EAAA1mJ,KAAA0B,GACd,SAAC+kB,GAAA,OAAM4zH,GAAa5zH,EAAGle,EAAMkiB,OAAO,IAC1Cq0B,MAAK,SAACtX,GAAS,OAAAA,EAAKzW,SAAW41H,EAAY51H,QAAUyW,EAAK1gB,SAAW6/H,EAAY7/H,UAC7E,OAAAtlB,EAAA,CAAA,EAAA,GAAAm4B,OACD4Z,EAAe7xC,MAAAi4B,KAAAA,OAASpxB,EAAM48E,qBAAqByhE,IAvCtC,SAACllJ,EAAY+kJ,GAC5B,GAAe,SAAfl+I,EAAM48E,OAAoBzjF,EAAO,MAAO,CAAA,EAExC,GAAApB,EAAQoB,GAAQ,CAAA,IAAAmlJ,EAAAC,EAAAC,EAAAC,EAClB,IAAKtlJ,EAAM3C,OAAQ,MAAO,GAC1B,IAA8EkoJ,EAAA/hI,GAAnDxjB,EAAM6L,KAAI,SAACkZ,GAAA,OAAMA,GAAK4zH,GAAa5zH,EAAGle,EAAMkiB,WAAO,GAAvEy8H,EAAAD,EAAA,GAAUE,EAAMF,EAAA,GACjBG,EAAYF,GAAYA,EAASpgI,OACjCugI,EAAYH,iBAAAL,EAAAK,EAAUv/H,cAAS,IAAAk/H,WAAAA,EAAnBA,EAAA7mJ,KAAAknJ,EAAmB91H,iBAAqB,UAAxCy1H,EAAiC91H,YAAjC+1H,IAAwCA,OAAxCA,EAAAA,EAAA9mJ,KAAA6mJ,GACZS,EAAUH,GAAUA,EAAOrgI,OAC3BygI,EAAUJ,iBAAAJ,EAAAI,EAAQx/H,cAAS,IAAAo/H,WAAAA,EAAjBA,EAAA/mJ,KAAAmnJ,EAAiB/1H,iBAAqB,UAAtC21H,EAA+Bh2H,YAA/Bi2H,IAAsCA,OAAtCA,EAAAA,EAAAhnJ,KAAA+mJ,GAEVS,EAAYnN,GAAaoM,EAAal+I,EAAMkiB,QAC5Cg9H,EAAaD,EAAU1gI,OACvB4gI,EAAaF,EAAUz2H,OACvB21D,EACH+gE,IAAeL,GAAaM,IAAeL,GAAeI,IAAeH,GAAWI,IAAeH,EAChGxF,EACJ0F,GAAcL,GAAaK,GAAcH,GAAWI,EAAaL,GAAaK,EAAaH,EACtF,OAAA/lJ,EAAAA,EAAA,GAAA,GAAAm4B,OAED4Z,EAAe7xC,MAAA,KAAAi4B,OAASpxB,EAAM48E,KAAqBuB,gBAAAA,GAAA/sD,GAAAA,OACnD4Z,EAAe7xC,MAAAi4B,KAAAA,OAASpxB,EAAM48E,oBAAoB48D,EAE1D,CAEO,OAAAvgJ,QAAAm4B,OACD4Z,EAAe7xC,MAASi4B,KAAAA,OAAApxB,EAAM48E,qBAChCk1D,GAAa34I,EAAO6G,EAAMkiB,QAAQ9C,OAAOyJ,GAAaL,SACtDspH,GAAaoM,EAAal+I,EAAMkiB,QAAQ9C,OAAOyJ,GAAaL,SAgBlE,OAAO,WAAA,OAAAoO,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,MAAO61D,aAAc,SAACx0D,GAAA,IAAA4kJ,EAAA,OAA2C,QAA3CA,EAAkBp/I,EAAM69I,wBAAmB,IAAAuB,OAAA,EAAzBA,EAAA3nJ,KAAAuI,EAAyB,CAAExF,EAAAA,mCAEzFwjJ,EAAU7kJ,OAAAy9B,EAAAA,0BAAAA,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAEO4Z,EAAe7xC,MAAA,gBAC1B2kJ,CAAAA,EAAQ3kJ,MAAM6L,KAAI,SAAC7L,EAAe1C,GACjC,OAAAmgC,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAAc4Z,EAAe7xC,MAAqB,gBAAAX,IAAK/B,GACpD,CAAA0C,GAEJ,QANJy9B,EAAAA,0BAWA52B,EAAM0E,KAAKM,KAAI,SAACo0C,EAAiB3iD,GAAA,OAAAmgC,EAAAA,YAAA,KAAA,CAAAp+B,IAEzB/B,EAAAogC,MAAAL,GAAAv9B,EAAA,CAAA,EAAA,GAAAm4B,OAEC4Z,EAAe7xC,MAAA,KAAAi4B,OAASpxB,EAAM48E,KAAa,SAAA,GAC5CqhE,EAAaj+I,EAAM7G,MAAOigD,EAAI,GAAGjgD,SAAK,CAG1CigD,EAAIp0C,KAAI,SAACq6I,EAAU9kH,wCAEZ8kH,EACJ,CAAA7mJ,IAAK+hC,EACL3kB,KAAM5V,EAAM4V,KACZ2xB,QAASvnC,EAAM29I,YAAAx+B,aACDn/G,EAAM49I,mBACtB,KACD,KACH,UAMZ,IClIW0B,GAAK,KACLC,GAAK,KACLC,GAAgB,CAACF,GAAIC,IAErBE,GAAsC,MAAC,OAAW,GAElDC,GAAgB,CAAC,EAAG,EAAG,GAIxBC,YAAAA,GAAAA,OACVA,EAAO,KAAA,OACPA,EAAS,OAAA,SACTA,EAAS,OAAA,SACTA,EAAc,YAAA,cACdA,EAAW,SAAA,WALDA,CAAA,EAAAA,IAAA,CAAA,GASC/N,GAAc,sFAMdgO,GAAqB,SChBnBC,GAAA,CAEb/8C,WAAYhhE,QAEZosD,WAAYpsD,QAEZqsD,UAAWrsD,QAEXg+G,YAAa,CACXhkJ,KAAMhC,UAGRk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXjB,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,YAGX48H,iBAAkB,CAChBjkJ,KAAMgmC,QACN3e,SAAS,GAGXy1E,WAAY,CACV98F,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGR6jJ,QAAS,CACPr/I,KAAMxE,QAGRi3F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXqnG,iBAAkB,CAChB1uH,KAAMxE,QAGRiN,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF9X,MAAO,CACL7qB,KAAMnF,MACNwsB,QAAS,WAAA,MAAkC,CAAC,EAAG,EAAG,EAAC,GAGrDwrE,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM/C,OACNoqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM/C,OACNoqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM/C,OACNoqB,QAAS,IAGXogF,aAAc,CACZznG,KAAM,CAAC/C,OAAQe,WAGjB80F,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAETmyD,QAASnyD,SAETwhJ,UAAWxhJ,SAEXk1F,QAASl1F,SAETkmJ,QAASlmJ,SAETmmJ,OAAQnmJ,SAERyhJ,OAAQzhJ,6kBCtHV,IAAMomJ,GAAc,CAClBpkJ,KAAMgmC,QACN3e,SAAS,EACT8J,UAAAA,SAAU/O,GACR,OAAOpF,GAAUoF,EACnB,GCLc,SAAAiiI,GAAmBhnJ,EAAe+oB,GAChD,OAAOyvH,GAAMx4I,EAAO+oB,GAAQA,OAAOA,KAAY/oB,CACjD,CAGgB,SAAAinJ,GAAiBjnJ,EAAe+oB,GAC9C,OAAOyvH,GAAMx4I,EAAO+oB,GAAQA,OAAOA,EACrC,okBAXAyvH,GAAM7uH,OAAOi4H,IACbpJ,GAAM7uH,OAAO2zH,ICMb9E,GAAM7uH,OAAO2zH,IAEb,IAAMjD,GAAU,CAACmM,GAAYU,KAAMV,GAAYW,OAAQX,GAAYY,OAAQZ,GAAYa,aAEjFC,GACC,GAIPC,GAAetrH,kBAAgB,CAC7Bx9B,KAAM,sBACNoI,MAAOw2B,GAAAA,GACFmqH,CAAAA,EF2C6B,CAClCz+H,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,YAEXy9H,KAAM,CACJ9kJ,KAAMnF,MACNwsB,QAAS,WAAT,MAAe,CAACw8H,GAAYU,KAAMV,GAAYW,OAAQX,GAAYY,OAAM,GAE1EpnJ,MAAO,CACL2C,KAAM/C,OACNoqB,QAAS,IAEX7H,MAAO,CACLxf,KAAMnF,MACNwsB,QAAS,WAAT,MAAe,EAAC,GAElBwD,MAAO6P,GAAA,CACL16B,KAAMnF,OACH,CACDwsB,QAAS,CAAC,EAAG,EAAG,KAGpB48H,iBAAkBvpH,GAAA,GACbqqH,GAAcd,kBAEnBD,YAAa,CACXhkJ,KAAMhC,UAERgnJ,gBAAiB,CACfhlJ,KAAMnF,SEzEW,GAAA,CACjBwyC,SAAUpwC,OACVgoJ,cAAej/G,QACfwmB,SAAUxuD,SACVknJ,mBAAoBlnJ,SACpBmnJ,YAAan/G,UAEfzM,MAAAA,SAAMr1B,GACJ,IAAQ0wB,EAAiBP,GAAU,cAA3BO,aACFsa,EAAiB7Z,GAAe,sBAC9BU,EAAWR,KAAXQ,OAEFk6C,EAAoD7nC,SAAOlkC,GAAzD2mB,IAAAA,MAAOxtB,EAAO4yE,EAAP5yE,MAAO+oB,EAAA6pD,EAAA7pD,OAAQinB,IAAAA,SAAU43G,EAAch1E,EAAdg1E,cAElCH,EAAO1wH,MAAwB,IAC/BgxH,EAAUhxH,EAAAA,MACVixH,EAAUjxH,MAAI,MAEdkxH,EAAUt8G,EAAAA,SAA6C,CAC3D,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,OAGCu8G,EAAa1pI,EAAAA,UAAS,WAC1B,IAAM2pI,IAAe36H,EAAMxtB,MAAMinC,QAAO,SAAC7kB,GAAA,OAASviB,OAAOuiB,GAAQ,CAAC,IAAE/kB,OAEpE,OAAI2C,EAAMA,MAAcw4I,GAAMx4I,EAAMA,MAAO+oB,EAAO/oB,OAE9CmoJ,EAAmB3P,KAAQ0O,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAEjD5O,IACT,IAGAjwG,EAAAA,OACE,WAAA,OAAM2/G,EAAWloJ,KAAA,IACjB,WACMkoJ,EAAWloJ,OAASA,EAAMA,OAAOooJ,GAAoB,EAC3D,IAIF7/G,EAAAA,OACE,WAAA,OAAMq/G,EAAc5nJ,KAAA,IACpB,WACM4nJ,EAAc5nJ,OAChBooJ,GAAoB,EAExB,IAGFhsH,EAAAA,WAAU,WACHqrH,EAAAznJ,MDlDJ,SAAuB+oB,GAC5B,IAAMs/H,EAA2B,GAE/Bp/H,EACEu9H,GADFv9H,SAAUi+H,EACRV,GADQU,KAAMC,EACdX,GADcW,OAAQC,EACtBZ,GADsBY,OAAQC,EAC9Bb,GAD8Ba,YA8B3B,OA5BOt+H,EAAOrc,MAAM+rI,IACrBthI,SAAQ,SAAC2N,GACL,OAAAA,GACD,IAAA,IACA,IAAA,KACA,IAAA,IACA,IAAA,KACHujI,EAAUp+I,KAAKi9I,GACf,MACG,IAAA,IACA,IAAA,IACHmB,EAAUp+I,KAAKgf,GACf,MACG,IAAA,IACA,IAAA,KACHo/H,EAAUp+I,KAAKk9I,GACf,MACG,IAAA,IACA,IAAA,KACHkB,EAAUp+I,KAAKm9I,GACf,MACG,IAAA,MACHiB,EAAUp+I,KAAKo9I,GAKrB,IACOgB,CACT,CCgBmBC,CAAcv/H,EAAO/oB,MACpC,IAGA,IAAMuoJ,EAAgB,WAAM,IAAAC,EACpBC,EAAyBD,QAAfA,EAAAR,EAAQhoJ,iBAAOwoJ,SAAfA,EAAe7mH,cAAc,OAC7C,OAAK8mH,EAME,CACL14G,aAAclV,WAAWgC,iBAAiB4rH,GAAS3qH,QACnDgrB,OAAQjuB,WAAWgC,iBAAiB4rH,GAASr4G,YAPtC,CACLL,aAAc,EACd+Y,OAAQ,IASR4/F,EAAkB,SAACxC,EAAkB1sH,GACnC,IAAAmvH,EAAStO,GAAQtgH,QAAQmsH,GAC/B,IAAmB,IAAfyC,EAAe,CAAA,IAAAC,EACX1iH,EAA2C,CAC/CgiH,EAAWloJ,MAAMknJ,OACjBgB,EAAWloJ,MAAMmnJ,SACjBe,EAAWloJ,MAAMonJ,SACjBc,EAAWloJ,MAAM6oJ,eAGnB,OADO3iH,EAAAyiH,GAAU9oJ,OAAO25B,KACVovH,QAAPA,EAAC/hJ,EAAM8/I,mBAAAiC,IAAAA,WAAAA,EAANA,EAAAtqJ,KAAAuH,MAAA+iJ,EAAA,CAAA/hJ,GAAMoxB,OAAiBiO,EAAQ,CAAA,CAAE4iH,QAAS94G,EAAShwC,OAAS,mBAAa,IAAA4oJ,WAAAA,EAAzEA,EAAyE1C,UAAA,IAAA0C,GAAzEA,EAA+EvqI,SAASxe,OAAO25B,IACzG,CACO,OAAA,GAIHuvH,EAAa,SAAC7C,GAClB,IAAI5gJ,EAAQ,EAER,GAAA+0I,GAAQh8H,SAAS6nI,GAAM,CAEnB,IAAAyC,EAAStO,GAAQtgH,QAAQmsH,GACzB8C,EAAUx7H,EAAMxtB,MAAM2oJ,IAAW,EAGrCrjJ,EADE4gJ,IAAQM,GAAYU,KACdT,GAAmB/nJ,KAAKqqB,EAAO/oB,OAAS,GAAK,GAC9CkmJ,IAAQM,GAAYa,YAAqB,IACrC,GAEP,IAAA4B,EAAU9mI,GAAM,EAAG7c,EAAQ,EAAGzF,OAAOmpJ,IAAUn9I,KAAI,SAACkZ,GAAM,OAAApD,GAAS/hB,OAAOmlB,GAAI,EAAG,IAAI,KAAK,GACzF,OAAAle,EAAM+/I,kBAAsB//I,EAAM8/I,YACrCsC,EAAQhiH,QAAO,SAACrjB,GAAM,IAAAslI,EACdhjH,EAA2C,CAC/CgiH,EAAWloJ,MAAMknJ,OACjBgB,EAAWloJ,MAAMmnJ,SACjBe,EAAWloJ,MAAMonJ,SACjBc,EAAWloJ,MAAM6oJ,eAGnB,OADO3iH,EAAAyiH,GAAU9oJ,OAAO+jB,KAErBslI,QADIA,EAACriJ,EACL8/I,mBAAAuC,IAAAA,WAAAA,EADKA,EAAA5qJ,KAAAuH,MAAAqjJ,EAAA,CAAAriJ,GACLoxB,OAAiBiO,EAAQ,CAAA,CAAE4iH,QAAS94G,EAAShwC,OAAS,mBACpD,IAAAkpJ,WAAAA,EAFGA,EAEHhD,UAAA,IAAAgD,GAFGA,EAEG7qI,SAASxe,OAAO+jB,IAC5B,IACDqlI,CACN,CAEO,OAAA5C,IAGH8C,EAAoB,SAACjD,EAAkBzpI,GACvCypI,IAAQM,GAAYU,MAAQ,SAASxoJ,KAAKqqB,EAAO/oB,SAElDyc,GAAmB,IAEhB,IAAA2sI,EAAUL,EAAW7C,GAAKnsH,QAAQpY,GAAS/hB,OAAO6c,GAAO,EAAG,MAClE4sI,EAAiCd,IAC3Be,EADED,EAAAt5G,aAAqBs5G,EAAPvgG,OAGf,OADU5hD,KAAKge,IAAIhe,KAAKC,IAAI,EAAGiiJ,GAAWE,IAI7CnjG,EAAe,SAAC+/F,EAAkB7nE,EAAah9E,GAAkB,IAAAkoJ,EAAAC,EACjElkH,EACAmkH,EACJ,GAAK5iJ,EAAMihJ,YAAX,CAEA,IAAMllH,YAAa2mH,EAAAtB,EAAQ5pE,UAAM,IAAAkrE,OAAA,EAAdA,EAAc3mH,YAAa,GAAK0kH,GACnDoC,EAAiCnB,IAC3Be,EADEI,EAAA35G,aAAqB25G,EAAP5gG,OAElBkgG,EAAU9hJ,KAAKge,IAAIhe,KAAK2hB,MAAM+Z,EAAY0mH,EAAsB,KAE9DrgI,EAAWo9H,GAAcn/I,KAAK0U,IAAIotI,EAAU,EAAG,IAAI72I,cAGrD,GADAtS,OAAOmkD,MAAMglG,KAAoBA,EAAA,GACjC3O,GAAQh8H,SAAS6nI,GAAM,CAEzB,IAAI/+I,EAAM,GACN++I,IAAQM,GAAYU,KAAM//I,EAAM,SAASzI,KAAKqqB,EAAO/oB,OAAS,GAAK,GAC9DkmJ,IAAQM,GAAYa,cAAmBlgJ,EAAA,KAE1C,IAAAwhJ,EAAStO,GAAQtgH,QAAQmsH,GACzByD,EAAexnI,GAAM,EAAGhb,EAAM,EAAGtH,OAAO2tB,EAAMxtB,MAAM2oJ,KAAY,GAChErjH,EDjKE,SACdqkH,EACAC,EACAxnI,GAEA,OAAIA,GAAQ,EAAUwnI,EACfD,EAAa/uH,MAClB,SAAC9W,EAAGkC,GAAM,OAAA9e,KAAKge,IAAI0kI,EAAU,EAAI9lI,GAAK5c,KAAKge,IAAI0kI,EAAU,EAAI5jI,MAC7D,EACJ,CCwJc6jI,CACJF,EACA9pJ,OAAOkpJ,EAAW7C,GAAKh/I,KAAK0U,IAAIotI,EAAU,EAAG7hJ,EAAM,EAAGwiJ,EAAatsJ,OAAS,KAC5EwC,OAAO2tB,EAAMxtB,MAAM2oJ,KAAY,GAE7B9oJ,OAAOmkD,MAAM1e,KAAYA,EAAAqkH,EAAaA,EAAatsJ,OAAS,IAC5D6oJ,IAAQM,GAAYU,MAAQO,EAAKznJ,MAAMqe,SAASmoI,GAAYv9H,WAAai/H,EAAWloJ,MAAMknJ,QAAU,KAEhG5hH,EAAAzlC,OAAOylC,GAAO,SAIbA,EAAArc,EAEL,IAAAi8C,EAAWikF,EAAkBjD,EAAK5gH,GACxC,GAAKkzG,GAAM0P,EAAWloJ,OAAO+nB,aAAc/nB,EAAMA,OAAUw4I,GAAMx4I,EAAMA,MAAO+oB,EAAO/oB,OAAO,GAAM+nB,WAAlG,CAGI,GAAAsyH,GAAQh8H,SAAS6nI,GAAM,CAAA,IAAA4D,EAAAC,EAGMN,EAA3Bf,EAAgBxC,EAAK5gH,GAAsC,QAAhCwkH,GAAeC,EAAA7B,EAAWloJ,OAAMkmJ,UAAA,IAAA4D,OAAA,EAAjBA,EAAAxrJ,KAAAyrJ,EAAwBzkH,GAAKvc,OAAOA,EAAO/oB,OACrEkoJ,EAAWloJ,MAAM+oB,OAAOA,EAAO/oB,MACrD,KAAO,CACC,IAAAgqJ,EAAc9B,EAAWloJ,MAAMknJ,OAEpBuC,EADbxgI,IAAak9H,IAAM6D,GAAe,GACrB9B,EAAWloJ,MAAMknJ,KAAK8C,EAAc,IAAIjhI,OAAOA,EAAO/oB,OAC5DipB,IAAam9H,IAAM4D,EAAc,GAC3B9B,EAAWloJ,MAAMknJ,KAAK8C,EAAc,IAAIjhI,OAAOA,EAAO/oB,OAEtDkoJ,EAAWloJ,MAAM+oB,OAAOA,EAAO/oB,MAElD,CAGA,GAFIypJ,IAAiBzpJ,EAAMA,gBAAawpJ,EAAA3iJ,EAAAsoD,gBAAA,IAAAq6F,GAAAA,EAAAlrJ,KAAAuI,EAAW4iJ,EAAcpoJ,IAE7D6jE,IAAatiC,EAAW,CAAA,IAAAqnH,EACpBC,EAAajC,EAAQR,EAAKznJ,MAAM+5B,QAAQmsH,IAE1C,IAACgE,GAAcA,EAAWtnH,YAAcsiC,EAAU,OAEhC,QAAtB+kF,EAAAC,EAAW5nH,gBAAW,IAAA2nH,GAAtBA,EAAA3rJ,KAAA4rJ,EAAsB,CACpB/lH,IAAK+gC,EACLk+C,SAAU,UAEd,CA5BE,CAlCsB,GAiEpB+mC,EAAe,SACnBjE,EACAzpI,EACA4hE,GAEG,IAAA+rE,EADHhnC,yDAA8B,OAExBl+C,EAAWikF,EAAkBjD,EAAKzpI,GAClCytI,EAAajC,EAAQ5pE,GACtB6rE,GAAcA,EAAWtnH,YAAcsiC,GAAawjF,EAAgBxC,EAAKzpI,KAExD,QAAtB2tI,EAAAF,EAAW5nH,gBAAW,IAAA8nH,GAAtBA,EAAA9rJ,KAAA4rJ,EAAsB,CACpB/lH,IAAK+gC,EACLk+C,SAAAA,MA2BEglC,EAAsB,WAA0B,IAAzBiC,EAAAzkJ,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GACrBw9G,EAAWpjH,EAAMA,QAAUqqJ,EAAe,SAAW,OACrDlC,IAAe36H,EAAMxtB,MAAMinC,QAAO,SAAC7kB,GAAA,OAASviB,OAAOuiB,GAAQ,CAAC,IAAE/kB,OACpEg/B,EAAAA,UAAS,WACPorH,EAAKznJ,MAAMmX,SAAQ,SAAC+uI,EAAkB7nE,GACY,IAAAisE,EAAAC,EAUzCC,GAVFrC,GAAeA,GAAcnoJ,EAAMA,MAEtCmqJ,EACEjE,EAGA7L,GAAQh8H,SAAS6nI,WAAOoE,GAAAC,EAAArC,EAAWloJ,OAAMkmJ,UAAA,IAAAoE,OAAA,EAAjBA,EAAAhsJ,KAAAisJ,GAA4BrC,EAAWloJ,MAAM+oB,OAAO,KAC5Es1D,EACA+kC,GAIF+mC,EAAajE,EAAuB,UAAlB6C,EAAW7C,UAAXsE,IAAkBA,OAAlBA,EAAAA,EAAkB,GAAInsE,EAAK+kC,EAEjD,GACF,IAEAv8G,EAAMghJ,sBAGF4C,EAAY,SAACvE,EAAkBwE,GAA6B,IAAAC,EAAAC,EAC5DC,EACA,OAAA3E,IAAQM,GAAYv9H,SACEi/H,EAAWloJ,MAAM+oB,OAAO,OACrB2hI,GAEpBG,EAAwB,QAAxBF,GAAAC,EAAA1C,EAAWloJ,OAAMkmJ,UAAjByE,IAAwBA,OAAxBA,EAAAA,EAAArsJ,KAAAssJ,GACL1E,IAAQM,GAAYU,MAAQ,SAASxoJ,KAAKqqB,EAAO/oB,SACzC6qJ,GAAA,IAELA,IAAWhrJ,OAAO6qJ,KAG3B,OAAO,WAAA,IAAAI,EAAAC,EAAAC,EAAAC,EAAA,OAAAxtH,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU4Z,EAAe7xC,mBAAmB+nJ,GAAA,CAAAtqH,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAChC4Z,EAAe7xC,MAA0B,qBAAA+2B,IAAKixH,GAE1D8C,CAAW,QAAXA,GAAAC,EAAAtD,EAAKznJ,OAAM6L,WAAXi/I,IAAWA,OAAXA,EAAAA,EAAAxsJ,KAAAysJ,GAAiB,SAAC7E,EAAK7nE,GAAA,OAAA5gD,EAAAA,YAAA,MAAA,CAAAp+B,IAAA,GAAA44B,OACTiuH,EAAOjuH,KAAAA,OAAAomD,IAAA,mBACrB2sE,GAGFC,EAAAxD,EAAKznJ,OAAM6L,WAAA,IAAAm/I,OAAA,EAAXA,EAAA1sJ,KAAA2sJ,GAAiB,SAAC/E,EAAK7nE,GAAA,OAAA5gD,EAAAA,YAAA,KAAA,CAAAp+B,IAAA,GAAA44B,OAEZiuH,EAAOjuH,KAAAA,OAAAomD,GAAAtnD,IACV,SAACyC,GAAA,OAAQyuH,EAAQ5pE,GAAO7kD,CAAA,EAAAkE,MAAA,GAAAzF,OACnB4Z,EAAe7xC,+BACf6b,IAAS,SAACxa,GAAM,OAAA8kD,EAAa+/F,EAAK7nE,EAAKh9E,KAAI,KAEpD0nJ,CAAAA,EAAW7C,GAAKr6I,KAAI,SAAC2tB,GAAA,OAAAiE,EAAAA,YAAA,KAAA,CAAAp+B,IAEbm6B,QACE,IAAAvB,OACF4Z,EAAe7xC,MAAAF,qBAAAA,EAAAA,KAEf44B,EAAO14B,MAAM64B,UAAY6vH,EAAgBxC,EAAK1sH,IAC9Cd,EAAO14B,MAAMygB,QAAUgqI,EAAUvE,EAAK1sH,aAGlC,SAACn4B,GAAM,OAvFA,SAAC6kJ,EAAkB1sH,EAAqB6kD,EAAah9E,GAC3E,GAACqnJ,EAAgBxC,EAAK1sH,GACtB,GAAA6gH,GAAQh8H,SAAS6nI,GAEjBA,IAAQM,GAAYU,MACpBgB,EAAWloJ,MAAM+oB,OAAO,OAASq9H,IACjCqB,EAAKznJ,MAAMqe,SAASmoI,GAAYv9H,YAG3BuQ,EAAA35B,OAAO25B,GAAM,IAEP2wH,EAAAjE,EAAK1sH,EAAI6kD,EAAK,cACtB,CACC,IAC8B6sE,EAD9BlB,EAAc9B,EAAWloJ,MAAMknJ,OACjC,GAAA1tH,IAAO2sH,IAAM6D,GAAe,GACxBkB,QAAAA,EAAArkJ,EAAAsoD,gBAAA+7F,IAAAA,GAAAA,EAAA5sJ,KAAAuI,EAAWqhJ,EAAWloJ,MAAMknJ,KAAK8C,EAAc,IAAIjhI,OAAOA,EAAO/oB,OAAQqB,QACtE,GAAAm4B,IAAO4sH,IAAM4D,EAAc,GAAI,CAAA,IAAAmB,EAClCA,QAAAA,EAAAtkJ,EAAAsoD,gBAAAg8F,IAAAA,GAAAA,EAAA7sJ,KAAAuI,EAAWqhJ,EAAWloJ,MAAMknJ,KAAK8C,EAAc,IAAIjhI,OAAOA,EAAO/oB,OAAQqB,EACjF,CACF,EAoE0B+pJ,CAAoBlF,EAAK1sH,EAAI6kD,EAAKh9E,EAAC,GAAA,CAGlDg5I,GAAQh8H,SAAS6nI,GACdO,GAAmB/nJ,KAAKqqB,EAAO/oB,QAAUkmJ,IAAQM,GAAYU,MAAe,OAAP1tH,EACnE,KACAA,EACFjC,EAAav3B,MAAMw5B,IAAO2sH,GAAK,eAAiB,iBAEvD,KAEJ,MAGP,ukBC3UF3N,GAAM7uH,OAAO2zH,IAEb,IAAA+N,GAAepvH,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAOw2B,GAAAA,GACFiuH,CAAAA,EHD0B,CAC/BzyH,SAAUwE,GAAAA,GAAA,CAAA,EACL0pH,IACA,CACD/8H,SAAS,IAGb8gG,QAASztF,GAAAA,GAAA,CAAA,EACJ0pH,IACA,CACD/8H,SAAS,IAGbhqB,MAAO,CACL2C,KAAM/C,OACNoqB,QAAS,IAEXjB,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,YAEXwD,MAAO6P,GAAA,CACL16B,KAAMnF,OACH,CACDwsB,QAAS,CAAC,EAAG,EAAG,KAGpB89H,YAAazqH,GAAAA,GAAA,CAAA,EACR0pH,IACA,CACD/8H,SAAS,IAGbuhI,YAAa,CACX5oJ,KAAM9C,QAERmiJ,QAAS,CACPr/I,KAAMxE,QAERyoJ,iBAAkBvpH,GAAA,GACbqqH,GAAcd,kBAEnBD,YAAa,CACXhkJ,KAAMhC,UAER6qJ,gBAAiBnuH,GAAA,CAAA,EACZ0pH,MG7CW,GAAA,CACdyE,gBAAiB7iH,QACjB8iH,mBAAoB9qJ,SACpBwuD,SAAUxuD,WAEZu7B,MAAAA,SAAMr1B,GACJ,IAAQ0wB,EAAiBP,GAAU,cAA3BO,aACFsa,EAAiB7Z,GAAe,sBACtC46C,EAAgD7nC,SAAOlkC,GAA/C2mB,EAAOolD,EAAPplD,MAAOg+H,EAAA54E,EAAA44E,gBAAiB1D,EAAYl1E,EAAZk1E,YAC1BF,EAAgB7wH,OAAI,GACpB20H,EAAW30H,EAAAA,MACX40H,EAAiBntI,EAAAA,UAAS,WAAA,QAAQgP,EAAMxtB,MAAMinC,QAAO,SAAC7kB,UAASviB,OAAOuiB,GAAQ,CAAC,IAAE/kB,UAEjF8P,EAAeqR,EAAAA,UAAS,WACTmtI,EAAe3rJ,MAAlC,IACM4rJ,EAAiBpT,GAAM3xI,EAAM7G,MAAO6G,EAAMkiB,QAChD,OAAIliB,EAAM7G,OAAS4rJ,EAAe7jI,UACzB6jI,EAAe7iI,OAAOliB,EAAMkiB,QAI5ByvH,KAAQ0O,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGr+H,OAAOliB,EAAMkiB,OAG5D,IAEM8iI,EAAiB,WACrBxvH,EAAAA,UAAS,WACPurH,EAAc5nJ,OAAQ,CACxB,KAGI6nJ,EAAqB,WACzBD,EAAc5nJ,OAAQ,GAiBlB8rJ,EAAe,WACf,OAAC1rI,GAAYvZ,EAAMm7I,SAYf2J,EAAe3rJ,MASnB,KATmBy9B,EAAAA,YAAAmU,GAAA,CAAA5c,MAAA,UAAAmZ,QAAA,OAAA/iC,KAAA,QAAAgjC,QAKV,WAAA,IAAA+8G,EAAA,eAAAA,EAAMtkJ,EAAMsoD,gBAAW,IAAAg8F,OAAA,EAAjBA,EAAA7sJ,KAAAuI,EAAiB2xI,KAAQzvH,OAAOliB,EAAMkiB,QAAO,GAAA,CAAAiB,QAAA,WAAA,MAAA,CAE3DuN,EAAav3B,MAAMqF,IACtB,IAnBOlH,OAAO4F,KAAK8C,EAAMm7I,SAAW,IAAIn2I,KAAI,SAACxM,GAAA,OAAAo+B,EAAAA,YAAAmU,GAAA,CAAAvyC,IAEpCA,EAAA21B,MAAA,UAAA5pB,KAAA,QAAA+iC,QAAA,OAAAC,QAII,WAAA,OAtBf29G,EAsBuCllJ,EAAMm7I,QAAQ3iJ,GApB/C2sJ,EAAmC,mBAAhBD,EAA6BA,IAAgBA,OACrC,iBAAtBllJ,EAAM0kJ,YACX/tJ,MAAMoB,QAAQotJ,GACVxC,QAAAA,EAAA3iJ,EAAAsoD,oBAAAq6F,GAAAA,EAAAlrJ,KAAAuI,EAAWmlJ,EAAUnlJ,EAAM0kJ,cAEjCp/E,GAAU,aAAA,WAAAl0C,OAAyBpxB,EAAMm7I,QAAmB,+DAG9DkJ,EAAArkJ,EAAMsoD,gBAAN+7F,OAAAA,EAAA5sJ,KAAAuI,EAAiBmlJ,IAXK,IACxBD,EAIgCvC,EAKzB0B,EAPDc,CAsBC,GAnEG,mBAAA5nI,EAmEH/kB,IAnEG+5C,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAmEH/kB,EAAA,CAAA2qB,QAAA,WAAA,MAAA,CAAA3qB,EAAA,IAnEG,IAAA+kB,CAmEH,KA2BT,OAXAgY,EAAAA,WAAU,WACOyvH,GACjB,IAEAtjH,EAAAA,OACE,WAAA,OAAMu/G,EAAY9nJ,KAAA,IAClB,WACiB6rJ,GACjB,IAGK,WAAA,OAAApuH,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV4Z,EAAe7xC,MAC5B,kBAAA,CAAAy9B,EAAAO,YAAAupH,GAAAn8G,EAAAA,WACMvkC,EACJ,CAAAkwB,IAAK20H,SACG7kJ,EAAMkiB,QLxGI,WKyGlByE,MAAO3mB,EAAM2mB,OAAS+4H,GAAAvmJ,MACfw4I,GAAM3xI,EAAM7G,MAAO6G,EAAMkiB,QAAQhB,UAAYlhB,EAAM7G,MAAQmN,EAAanN,oBAChE4nJ,EAAc5nJ,eACnB6G,EAAMsoD,4BACI04F,EAAAC,YACPjhJ,EAAMihJ,cAAA,QAGtB0D,EAAgBxrJ,MACfy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,oBAAAy9B,CAAAA,EAAAO,YAAA4T,GAAA,CAAA5c,MAAA,UAAAmZ,QAAA,OAAAtV,UAIfhyB,EAAM7G,MAAAouC,QACR,SAAC/sC,gBAAY,UAANwF,EAAM4kJ,0BAANQ,IAAMA,OAANA,EAAAA,EAAA3tJ,KAAAuI,EAA2BxF,EAAG8L,EAAanN,MAAK,EAAAoL,KAAA,SAAA,CAAA4e,QAAA,WAAA,MAAA,CAG/DuN,EAAav3B,MAAM2vB,QAAA,IAErBm8H,MAED,OAGV,ukBC/HF,IAAAI,GAAejwH,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACL48E,KAAM7jF,OACNmpB,OAAQnpB,OACRg7I,iBAAkBjyG,QAClBu5G,gBAAiB,CACfv/I,KAAMxE,OACN6rB,QAAS,WAAT,MAAgB,EAAC,GAEnB5E,KAAMvlB,OACNwlB,MAAOxlB,OACPssJ,UAAW3uJ,MACXif,KAAM7c,OACNmqG,SAAUphE,QACV9c,eAAgBhsB,OAChBipJ,QAASlpJ,OACTwuF,aAAczlD,QACd65G,aAAc7hJ,SACd4hJ,cAAe5hJ,SACf8hJ,cAAe9hJ,SACf8jJ,iBAAkB9jJ,SAClB6jJ,YAAa7jJ,SACb+jJ,iBAAkB/jJ,SAClByrJ,mBAAoBzrJ,SACpBX,MAAO,CAACJ,OAAQC,OAAQrC,MAAO4H,OAEjC82B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,sBAE9BoiH,EAAeM,GAAiB,CACtCj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACd6xH,iBAAkB/zI,EAAM+zI,mBAHlBR,WAMFiS,EAAmB,WAEzB,OAAO,WAAA,OAAA5uH,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU4Z,EAAe7xC,MAAA,aAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OACb4Z,EAAe7xC,kBAAS6G,EAAM48E,OAAAhmD,CAAAA,EAAAO,YAAAskH,GAAA,CAAA7+D,KAEnC58E,EAAM48E,UACN58E,EAAMue,KACZC,MAAOxe,EAAMwe,MAAAk9H,cACE,SAACj9G,GAAA,IAAAk+G,EAAA,OAAsCA,QAAtCA,EAAgB38I,EAAM07I,qBAANiB,IAAsBA,OAAtBA,EAAAA,EAAAllJ,KAAAuI,EAAsBy+B,EAAK,CAAEwjH,QAASjiJ,EAAMiiJ,SAC5E,EAAAtG,aAAc,SAACl9G,GAAgB,IAAAo+G,EAAA,eAAAA,EAAA78I,EAAM27I,oBAANkB,WAAAA,EAAAA,EAAAplJ,KAAAuI,EAAqBy+B,EAAK,CAAEwjH,QAASjiJ,EAAMiiJ,SAAS,EAAArG,cACpE,SAAAr5G,GAAA,IAAAkjH,EAAGlhG,EAAQhiB,EAARgiB,QAAQ,OACF,QADEkhG,EACxBzlJ,EAAM47I,qBAAgB,IAAA6J,OAAA,EAAtBA,EAAAhuJ,KAAAuI,EAAsB,CAAEukD,QAAAA,EAAS09F,QAASjiJ,EAAMiiJ,SAEpD,GAAArrH,MAAAA,EAAAO,YAAAumH,GAAA,CAAA9gE,KAGQ58E,EAAM48E,KAAAl4E,KACN1E,EAAMslJ,UAAA1vI,KACN5V,EAAM4V,KACZzc,MAAO6G,EAAM7G,MACb+oB,OAAQliB,EAAMkiB,OAAAghF,SACJljG,EAAMkjG,wBACAljG,EAAMglB,eACtB24H,YAAa,SAACr/H,EAAAirC,GAAA,IAAAm8F,EAAclrJ,EAAE+uD,EAAF/uD,EAAE,OACtBkrJ,QADsBA,EAC5B1lJ,EAAM29I,mBAAN+H,IAAMA,OAANA,EAAAA,EAAAjuJ,KAAAuI,EAAoBse,EAAM,CAAE9jB,EAAAA,EAAGynJ,QAASjiJ,EAAMiiJ,SAEhD,EAAArE,iBAAkB,SAACt/H,GAAe,IAAAqnI,EAAA,OAAyBA,QAAzBA,EAAA3lJ,EAAM49I,wBAAN+H,IAAyBA,OAAzBA,EAAAA,EAAAluJ,KAAAuI,EAAyBse,EAAM,CAAE2jI,QAASjiJ,EAAMiiJ,SAAS,EAAApE,iBACzE79I,EAAM69I,kBAC1B,QAGD79I,EAAM+zI,kBACLn9G,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,UAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACb4Z,EAAe7xC,MAAsB,iBAAA6G,CAAAA,EAAM4V,MAAQ4vI,IAAA5uH,EAAAO,YAAAyuH,GAAApvH,GAAA,CAG9Dh+B,IAAKwH,EAAMiiJ,QACXhB,YAAajhJ,EAAMunF,aACnBrlE,OAAQqxH,EACRp6I,MAAO6G,EAAM4V,MAAQ4vI,EACrBl9F,SAAUtoD,EAAMulJ,oBACbvlJ,EAAMq7I,iBATd,UAgBT,IC5FkB,SAAAwK,GAAAtoI,GAAA,MAAA,mBAAAA,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,EAAA,CAIpB,IAAAuoI,GAAe1wH,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAO,CACL+zI,iBAAkBjyG,QAClBs5G,iBAAkBriJ,OAClBoiJ,QAAS7jJ,OACT4jJ,YAAa,CACXp/I,KAAMgmC,QACN3e,SAAS,GAEX4iI,cAAe,CAAChtJ,OAAQC,OAAQrC,MAAO4H,MACvCi9I,cAAe1hJ,SACfksJ,eAAgBlsJ,UAElBu7B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,uBAChC80H,EAAe90H,GAAe,wBACpCo+C,EAA4Bp/C,GAAU,cAA9BpT,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aAELw1H,EAAcvuI,EAAAA,UAAS,WAAA,MAAM,CAACqzB,EAAe7xC,MAAO,GAAAi4B,OAAG4Z,EAAe7xC,YAAAi4B,OAAUpxB,EAAMo7I,sBAE5F,OAAO,WAAA,IAAA/oG,EAAA,OAAAzb,EAAAA,YAAA,MAAA,CAAAC,MACOqvH,EAAY/sJ,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAERovH,EAAa9sJ,QACtB6G,EAAMm7I,SACL7jJ,OAAO4F,KAAK8C,EAAMm7I,SAASn2I,KAAI,SAACxM,GAC9B,OAAAo+B,EAAAA,YAAAmU,GAAA,CAAAvyC,IACOA,EAAA+L,KAAA,QAAA+iC,QAAA,OAAAC,QAGI,SAAC/sC,GAAA,IAAA2rJ,EAAA,OACcA,QADdA,EACRnmJ,EAAMw7I,yBAAgB2K,SAAtBA,EAAA1uJ,KAAAuI,EAAsBA,EAAMm7I,QAAQ3iJ,GAAM,CAAEgC,EAAAA,EAAG4rJ,OAAAntJ,EAAA,GAAWT,EAAMwH,EAAMm7I,QAAQ3iJ,WAG/EA,GAAAA,EACH,CAAA2qB,QAAA,WAAA,MAAA,CADG3qB,EACH,GAAA,MAIPwH,EAAM+zI,kBAAoB/zI,EAAMk7I,aAAAtkH,EAAAO,YAAA4T,GAAA,CAAA/Y,UAElBhyB,EAAM+lJ,cAAAxhJ,KAAA,QAAA4pB,MAAA,UAAAoZ,QAGR,SAAC/sC,GAAkB,IAAA6rJ,EAAA,OAAuB,QAAvBA,EAAArmJ,EAAMgmJ,sBAAiB,IAAAK,OAAA,EAAvBA,EAAA5uJ,KAAAuI,EAAuB,CAAExF,EAAAA,GAEpD,GAAAqrJ,GAAAxzG,EAAAt1B,EAAE2T,EAAav3B,MAAM2vB,UAAOupB,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,MAKvC,ICrDFi0G,GAAelxH,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACLm7I,QAAS7jJ,OACTy8I,iBAAkBjyG,QAClBs5G,iBAAkBriJ,OAClBmiJ,YAAa,CAAEp/I,KAAMgmC,QAAS3e,SAAS,GACvCq4H,cAAe1hJ,SACfksJ,eAAgBlsJ,SAChBisJ,cAAe,CAAChtJ,OAAQC,OAAQrC,MAAO4H,OAEzC82B,MAAAA,SAAMr1B,GAEE,IAAAumJ,EAAkB5uI,EAAAA,UAAS,WAAA,OAAO3X,EAAM+zI,kBAAoB/zI,EAAMk7I,aAAgBl7I,EAAMm7I,WAEvF,OAAA,WAAA,OACLoL,EAAgBptJ,MAAAy9B,EAAAO,YAAA2uH,GAAA,CAAA3K,QAEHn7I,EAAMm7I,QACfK,cAAex7I,EAAMw7I,cAAAzH,iBACH/zI,EAAM+zI,gCACR/zI,EAAMgmJ,eACtB5K,iBAAkBp7I,EAAMo7I,iBAAA2K,cACT/lJ,EAAM+lJ,cACrB7K,YAAal7I,EAAMk7I,aAAA,MAEnB,IAAA,CACR,ICnBK,SAASsL,GAAexmJ,GAC7B,IAAQ+3I,EAA0C/3I,EAA1C+3I,YAAa71H,EAA6BliB,EAA7BkiB,OAAQ06D,EAAqB58E,EAArB48E,KAAMp8E,EAAeR,EAAfQ,MAAO+G,EAAQvH,EAARuH,IAEnC,MAAA,CACLwwI,YAAa,SAAC5+I,GAAA,Of6cX,SAAuBy7H,GAUlB,IATVz7H,EAAAy7H,EAAAz7H,MACA4+I,EAAAnjB,EAAAmjB,YACAn7D,EAAAg4C,EAAAh4C,KACA16D,EAAA0yG,EAAA1yG,OAOA,IAAK61H,EAAoB,OAAA,EAEnB,IAAA0O,EAAyB,YAAT7pE,EAAqB,OAASA,EAEhD8pE,GAAY,EAEZ,GAAA7pJ,EAAWk7I,GACN,OAACA,EAAY5+I,GAIlB,GAAAxC,MAAMoB,QAAQggJ,GAIhB,OAH8BA,EAAY/yI,KAAI,SAACi6B,UAAiB6yG,GAAa7yG,EAAM/c,MAE1Cq0B,MAAK,SAAAtX,GAAA,OAAQA,EAAK9d,OAAOwwH,GAAMx4I,OAM1E,IAAQnC,EAA4B+gJ,EAA5B/gJ,KAAM08B,EAAsBqkH,EAAtBrkH,GAAIizH,EAAkB5O,EAAlB4O,OAAQC,EAAU7O,EAAV6O,MAE1B,GAAI5vJ,GAAQ08B,EAAI,CACd,IAAMmzH,EAAalV,GAAM36I,GAAMoqB,QAAQ,OACjC0lI,EAAanV,GAAMj+G,GAAIrS,MAAM,OAC5B,OAACswH,GAAMx4I,GAAOy7I,UAAUiS,EAAYC,EAAYL,EAAe,KACxE,CAGA,IAAM1xI,EAAM4xI,EAAS,IAAIpoJ,KAAKozI,GAAMgV,GAAQvlI,QAAQ,OAAOc,UAAY,KACjE5hB,EAAMsmJ,EAAQ,IAAIroJ,KAAKozI,GAAMiV,GAAOvlI,MAAM,OAAOa,UAAY,KAGnE,GAAI5hB,GAAOyU,EAAK,CACd,IAAM8xI,EAAalV,GAAM,IAAIpzI,KAAKwW,IAC5B+xI,EAAanV,GAAM,IAAIpzI,KAAK+B,IAElComJ,EAAY/U,GAAMx4I,GAAOy7I,UAAUiS,EAAYC,EAAYL,EAAe,cACjE1xI,EAAK,CACd,IAAM8xI,EAAalV,GAAM,IAAIpzI,KAAKwW,IAClC2xI,GAAa/U,GAAMx4I,GAAOooB,SAASslI,EAAYJ,WACtCnmJ,EAAK,CACd,IAAMwmJ,EAAanV,GAAM,IAAIpzI,KAAK+B,IAClComJ,GAAa/U,GAAMx4I,GAAOmoB,QAAQwlI,EAAYL,EAChD,CACO,OAAAC,CACT,CetgBmCK,CAAc,CAAEhP,YAAAA,EAAa71H,OAAAA,EAAQ06D,KAAAA,EAAMzjF,MAAAA,GAAO,EACjF6+I,QACEn8I,EAASk8I,IAAgB,WAAYA,EACjC,IAAIx5I,KAAKozI,GAAMoG,EAAY4O,QAAQvlI,QAAQ,OAAOc,UAClD1hB,EACNy3I,QACEp8I,EAASk8I,IAAgB,UAAWA,EAAc,IAAIx5I,KAAKozI,GAAMoG,EAAY6O,OAAOvlI,MAAM,OAAOa,UAAY3a,EAEnH,CCXO,SAASy/I,GAAchnJ,GAC5B,IAAA+rE,EAA8C7nC,SAAOlkC,GAE6CgsE,EAAArvD,GAAxEooD,GAFXgH,EAAP5yE,MAAkC4yE,EAAX/G,WAEiChlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA3FnvD,EAAO6yE,EAAA,GAAA1jB,EAAQ0jB,EAAA,GAEhByoE,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACduoG,UAAWzqH,EAAMyqH,UACjBspB,iBAAkB/zI,EAAM+zI,kBACzB,IAGC/zI,EAAM+zI,mBACHlC,GAAkB4C,EAAUt7I,MAAM+oB,SACrCmjB,QAAQnT,MAAM,WAAAd,OAAWqjH,EAAUt7I,MAAM+oB,OAAqC,kIAI7EnqB,EAAQoB,EAAMA,OAEPw5I,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,SAC3CmjB,QAAAnT,MAAA,UAAAd,OACIj4B,EAAMA,MAAiFi4B,6EAAAA,OAAAqjH,EAAUt7I,MAAM+oB,SAH3GmjB,QAAAnT,MAAAd,iBAAAA,OAAuBj4B,EAAMA,MAAsB,oBAOvD,IAAA8tJ,EAAuB/2H,OAAI,GAC3Bta,EAAOsa,EAAAA,IACX8jH,GAAkB,CAChB76I,MAAOA,EAAMA,MACbyjF,KAAM58E,EAAM48E,KACZ16D,OAAQuyH,EAAUt7I,MAAM+oB,OACxBqxH,WAAYkB,EAAUt7I,MAAMo6I,aAC3B39H,MAEC4I,EAAQ0R,EAAAA,IACZ8jH,GAAkB,CAChB76I,MAAOA,EAAMA,MACbyjF,KAAM58E,EAAM48E,KACZ16D,OAAQuyH,EAAUt7I,MAAM+oB,OACxB6xH,iBAAkB/zI,EAAM+zI,mBACvBv1H,OAECD,EAAO2R,EAAIA,IAAA8jH,GAAkB,CAAE76I,MAAOA,EAAMA,MAAOyjF,KAAM58E,EAAM48E,KAAM16D,OAAQuyH,EAAUt7I,MAAM+oB,SAAU3D,MACvGm2H,EAAaxkH,EAAIA,IAAA0iH,GAAWz5I,EAAMA,MAAO,CAAE+oB,OAAQuyH,EAAUt7I,MAAM+oB,UAsBlE,OAnBPioC,EAAAA,aAAY,WACLhxD,EAAMA,MAINw5I,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,UAEnCwyH,EAAAv7I,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAMsxH,UACxBqoB,aAAc2B,EAAUt7I,MAAM+oB,SAEhCtM,EAAKzc,MAAQu6I,GACXv6I,EAAMA,MACNs7I,EAAUt7I,MAAM+oB,OAChBuyH,EAAUt7I,MAAMo6I,WAChBvzI,EAAM2zI,cAbNe,EAAWv7I,MAAQ,EAevB,IAEO,CACLolB,KAAAA,EACAC,MAAAA,EACArlB,MAAAA,EACAyc,KAAAA,EACAqxI,qBAAAA,EACAvS,WAAAA,EACApsF,SAAAA,EAEJ,okBC9EO,IAAM4+F,GAAkE,CAAEC,MAAO,QAAS5G,OAAQ,OCTlG,SAAS6G,GAAapnJ,GAAY,IAAAqnJ,EAE/B32H,EAAiBP,GAAU,cAA3BO,aAEFxb,EAAU,CACd8iI,QAASh4I,EAAMg4I,QACfC,QAASj4I,EAAMi4I,QACfF,YAAa/3I,EAAM+3I,YACnB/yH,eAAwC,QAAxBqiI,EAAArnJ,EAAMglB,sBAAkB,IAAAqiI,EAAAA,EAAA32H,EAAav3B,MAAM6rB,eAC3DsiI,WAAY52H,EAAav3B,MAAM4kB,OAC/BwpI,aAAc72H,EAAav3B,MAAM+wB,SACjC2tH,eAA+B,SAAf73I,EAAM48E,KACtB/zD,YAAa6H,EAAav3B,MAAM0vB,YAChCuvH,uBAAwBp4I,EAAMo4I,wBAG5B1zI,EAAmB,GAYvB,MAXmB,SAAf1E,EAAM48E,MAEgB,SAAf58E,EAAM48E,KADRl4E,EAAAizI,GAAS,CAAEp5H,KAAMve,EAAMue,KAAMC,MAAOxe,EAAMwe,OAAStJ,GAGlC,YAAflV,EAAM48E,KACRl4E,ElBwQJ,SACL6Z,EACAw1G,GAYA,IAJA,IAAAyzB,EAAAzzB,EAPEgkB,YAAAA,OAAc,MAAA,WAAA,OAAM,CAAA,EAAAyP,EACpBxP,EAAAjkB,EAAAikB,QACAC,EAAAlkB,EAAAkkB,QACAsP,EAAAxzB,EAAAwzB,aAAAE,EAAA1zB,EACAlrG,YAAAA,OAAc,IAAA4+H,EAAA,QAAAA,EAAAC,EAAA3zB,EACdqkB,uBAAAA,OAAyB,IAAAsP,GAAAA,EAGrBC,EAAa,GACbr/H,EAAQkvH,KAEL/gJ,EAAI,EAAGA,GAAK,EAAGA,IAAK,CACrB,IAAA6nB,EAAOqzH,GAAM,IAAIpzI,KAAKggB,EAAM,IAAI0L,QAAQxzB,GAAGkrB,SAEjDgmI,EAAWvkJ,KAAK,CACdjK,MAAOmlB,EACP9f,IAAK2iB,GAAO7C,EAAMgK,EAAO,WACzB0J,SAAWn1B,EAAWk7I,IAAgBA,EAAYz5H,KAAY85H,GAA0Bb,GAAYj5H,EAAM05H,EAASC,GACnH7lH,QAAQ,EACR+P,KAAMolH,EAAa9wJ,EAAI,GACvBqiJ,SAAUnH,GAAMrzH,GAAMc,OAAOyJ,IAEjC,CAEO,OAAAld,GAAMg8I,EAAY,EAC3B,CkBpSWC,CAAY5nJ,EAAMue,KAAMrJ,GACP,UAAflV,EAAM48E,KACRl4E,ElBqUK,SAAU6Z,EAAc8gB,GAOtC,IANM,IAAAwoH,EAEFxoH,EADF04G,YAAAA,OAAc,MAAA,WAAA,OAAM,CAAA,EAAA8P,EAAO7P,EACzB34G,EADyB24G,QAASC,EAClC54G,EADkC44G,QAASqP,EAC3CjoH,EAD2CioH,WAAAQ,EAC3CzoH,EADuDxW,YAAAA,OAAc,IAAAi/H,EAAA,QAAAA,EAAAC,EACrE1oH,EAD8E+4G,uBAAAA,OAAyB,IAAA2P,GAAAA,EAErGC,EAAW,GACX1/H,EAAQkvH,KAEL/gJ,EAAI,EAAGA,GAAK,GAAIA,IAAK,CAC5B,IAAM6nB,EAAO,IAAI/f,KAAKggB,EAAM9nB,GAE5BuxJ,EAAS5kJ,KAAK,CACZjK,MAAOmlB,EACP9f,IAAK2iB,GAAO7C,EAAMgK,EAAO,SACzB0J,SAAWn1B,EAAWk7I,IAAgBA,EAAYz5H,KAAY85H,GAA0Bb,GAAYj5H,EAAM05H,EAASC,GACnH7lH,QAAQ,EACR+P,KAAMmlH,EAAWhpI,EAAK8B,YACtB04H,SAAUnH,GAAMrzH,GAAMc,OAAOyJ,IAEjC,CAEO,OAAAld,GAAMq8I,EAAU,EACzB,CkB1VWC,CAAUjoJ,EAAMue,KAAMrJ,GACL,SAAflV,EAAM48E,OACRl4E,ElBkSJ,SACL6Z,EACAi2G,GAeA,IARA,IAAA0zB,EAAA1zB,EANEujB,YAAAA,OAAc,MAAA,WAAA,OAAM,CAAA,EAAAmQ,EACpBlQ,EAAAxjB,EAAAwjB,QACAC,EAAAzjB,EAAAyjB,QAAAkQ,EAAA3zB,EACA3rG,YAAAA,OAAc,IAAAs/H,EAAA,QAAAA,EAAAC,EAAA5zB,EACd4jB,uBAAAA,OAAyB,IAAAgQ,GAAAA,EAGrBvJ,EAAmD,GAAvC1iJ,UAAUoiB,EAAO,IAAI/mB,WAAY,IAC7CunJ,EAAUF,EAAY,EAEtBwJ,EAAU,GAEV//H,EAAQkvH,KAEL/gJ,EAAIooJ,EAAWpoJ,GAAKsoJ,EAAStoJ,IAAK,CACzC,IAAM6nB,EAAO,IAAI/f,KAAK9H,EAAG,GAEzB4xJ,EAAQjlJ,KAAK,CACXjK,MAAOmlB,EACP9f,IAAK2iB,GAAO7C,EAAMgK,EAAO,QACzB0J,SAAWn1B,EAAWk7I,IAAgBA,EAAYz5H,KAAY85H,GAA0Bb,GAAYj5H,EAAM05H,EAASC,GACnH7lH,QAAQ,EACR+P,KAAA,GAAA/Q,OAAS9S,EAAK4B,eACd44H,SAAUnH,GAAMrzH,GAAMc,OAAOyJ,IAEjC,CAEO,OAAAld,GAAM08I,EAAS,EACxB,CkBjUWC,CAAStoJ,EAAMue,KAAMrJ,IAEvBgkI,GAAWx0I,EAAM,CACtBlE,MAAOR,EAAMQ,MACb+G,IAAKvH,EAAMuH,IACX6xI,WAAYp5I,EAAMo5I,WAClBC,SAAUr5I,EAAMq5I,SAChBv9I,KAAMkE,EAAM48E,KACZ48D,QAASx5I,EAAMw5I,QACfrgJ,MAAO6G,EAAM7G,MACb+pG,SAAUljG,EAAMkjG,UAEpB,gOCjCA,IAAAqlD,GAAenzH,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAO,CACL+3I,YAAa,CAACzgJ,OAAQX,MAAOmD,UAC7B8iF,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QAEXjB,OAAQnpB,OACRqiJ,iBAAkB,CAChBt/I,KAAM/C,OACNoqB,QAAS,UAEXhqB,MAAO,CAACJ,OAAQC,OAAQrC,MAAO4H,MAC/B88I,gBAAiB/jJ,OACjB6jJ,QAAS7jJ,OACTy8I,iBAAkBjyG,QAClB9c,eAAgBhsB,OAChBulB,KAAMvlB,OACNwlB,MAAOxlB,OACP4c,KAAM7c,OACNwuF,aAAczlD,QACdohE,SAAUphE,QACVo5G,YAAa,CACXp/I,KAAMgmC,QACN3e,SAAS,GAEXqlI,aAAc1uJ,SACd6jJ,YAAa7jJ,SACb8jJ,iBAAkB9jJ,SAClB+jJ,iBAAkB/jJ,SAClB8hJ,cAAe9hJ,SACfksJ,eAAgBlsJ,SAChB0hJ,cAAe1hJ,SACf6hJ,aAAc7hJ,SACd4hJ,cAAe5hJ,SACfyrJ,mBAAoBzrJ,UAEtBu7B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,sBAC9BT,EAAiBP,GAAU,cAA3BO,aAEFxO,EAASvK,EAAAA,UACb,WAAA,IAAA8wI,EAAA,OAKMA,QALNA,EACE5U,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACd6xH,iBAAkB/zI,EAAM+zI,0BAH1B0U,IAIIA,OAJJA,EAAAA,EAIIvmI,MAAA,IAGFwmI,EAAqB/wI,EAAAA,UAAS,WAAA,OAClC6uI,GAAe,CACbtkI,OAAQA,EAAO/oB,MACfyjF,KAAM58E,EAAM48E,KACZm7D,YAAa/3I,EAAM+3I,aACpB,IAEGuN,EAAY3tI,EAAAA,UAAS,WAAA,OACzByvI,oWAAa5wH,CAAA,CACXjY,KAAMve,EAAMue,KACZC,MAAOxe,EAAMwe,MACbo+D,KAAM58E,EAAM48E,KACZp8E,MAAOR,EAAM7G,MACT24I,GACE9xI,EAAMkjG,SAAYljG,EAAM7G,MAA4B,GAAM6G,EAAM7G,MAChE+oB,EAAO/oB,OACPwoB,cACF,EACJqD,eAAgBhlB,EAAMglB,gBAAkB0L,EAAav3B,MAAM6rB,eAC3Dk+E,SAAUljG,EAAMkjG,SAChB/pG,MAAO6G,EAAM7G,OACVuvJ,EAAmBvvJ,OACvB,IAGGwvJ,EAAoBhxI,EAAAA,UAAS,WAAA,MAAO,CACxCuK,OAAQA,EAAO/oB,MACfA,MAAO6G,EAAM7G,MACbyjF,KAAM58E,EAAM48E,KACZr+D,KAAMve,EAAMue,KACZC,MAAOxe,EAAMwe,MACbwG,eAAgBhlB,EAAMglB,gBAAkB0L,EAAav3B,MAAM6rB,eAC3DsgI,UAAWA,EAAUnsJ,MACrBouF,aAAcvnF,EAAMunF,aACpB2b,SAAUljG,EAAMkjG,SAChB6wC,iBAAkB/zI,EAAM+zI,iBACxBsH,gBAAiBr7I,EAAMq7I,gBACvBzlI,KAAM5V,EAAM4V,KACZ8lI,cAAe17I,EAAM07I,cACrBC,aAAc37I,EAAM27I,aACpBC,cAAe57I,EAAM47I,cACrB+B,YAAa39I,EAAM29I,YACnBC,iBAAkB59I,EAAM49I,iBACxBC,iBAAkB79I,EAAM69I,iBACxB0H,mBAAoBvlJ,EAAMulJ,mBAC1B,IAEIqD,EAAajxI,EAAAA,UAAS,WAAA,MAAO,CACjCwjI,QAASn7I,EAAMm7I,QACfpH,iBAAkB/zI,EAAM+zI,iBACxBqH,iBAAkBp7I,EAAMo7I,iBACxBI,cAAex7I,EAAMw7I,cACrBwK,eAAgBhmJ,EAAMgmJ,eACtBD,cAAe/lJ,EAAM7G,MACrB+hJ,YAAal7I,EAAMk7I,YACnB,IAEK,OAAA,WAAA,OAAAtkH,EAAAA,YAAA,MAAA,CAAAC,MAEI,CACLmU,EAAe7xC,MAAAF,EAAAm4B,GAAAA,GAAAA,OAET4Z,EAAe7xC,yBAAyB,CAAC,OAAQ,SAASqe,SAASxX,EAAMo7I,oBAEjF7zG,QACS,SAAC/sC,GAAA,IAAAquJ,EAAA,OAA2B,QAA3BA,EAAM7oJ,EAAMwoJ,oBAAe,IAAAK,OAAA,EAArBA,EAAApxJ,KAAAuI,EAAqB,CAAExF,EAAAA,GAAG,GAEzC,CAAA,CAAC,MAAO,QAAQgd,SAASxX,EAAMo7I,kBAAgBxkH,EAAAO,YAAAmvH,GAAuBsC,EAAWzvJ,MAAY,MAAA,KAAAy9B,EAAAO,YAAAkuH,GAC3EsD,EAAkBxvJ,MAAO,MAC3C,CAAC,SAAU,SAASqe,SAASxX,EAAMo7I,kBAAgBxkH,EAAAO,YAAAmvH,GAAuBsC,EAAWzvJ,MAAA,MAAY,OAGxG,IChHF2vJ,GAAe1zH,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,eAEhCoyF,ECTH,SAAmBvjH,GAClB,IAAAgrC,EAAiB7Z,GAAe,eAChCa,EAAWqY,KAEX8nD,EAAWjiE,EAAAA,MACX42B,EAAawoC,KAEby5D,EAAqD3U,GAAep0I,GAAlE7G,IAAAA,MAAOmvD,EAAUygG,EAAVzgG,SAAU1yC,EAAAmzI,EAAAnzI,KAAM4I,IAAAA,MAAOD,EAAMwqI,EAANxqI,KAAMm2H,EAAAqU,EAAArU,WAEtCD,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACduoG,UAAWzqH,EAAMyqH,UACjBspB,kBAAkB/zI,EAAMkjG,UAAmBljG,EAAM+zI,kBAClD,IAGGxsD,EAAer3D,OAAI,GACnB84H,EAAc94H,OAAI,GAElBohE,EAAaphE,EAAAA,IACjBlwB,EAAMkjG,SACF0vC,GAAWz5I,EAAMA,MAAO,CAAE+oB,OAAQuyH,EAAUt7I,MAAM+oB,UAAa,GAC/D0wH,GAAWz5I,EAAMA,MAAO,CAAE+oB,OAAQuyH,EAAUt7I,MAAM+oB,UAIlD02E,EAAajhF,EAAAA,UAAS,WAC1B,IAAMsxI,EAAoBzyH,GAAAA,GACrBx2B,CAAAA,EAAAA,EAAM44F,YAAA,GAAA,CACTr0F,KAAMvE,EAAMuE,KACZ2rB,IAAKiiE,EACL5D,SAAUznC,EAAW3tD,QAAU6G,EAAM8iG,WACrCjsE,MAAO,CAAA59B,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEC4Z,EAAe7xC,MAA8B6vJ,wBAAAA,EAAY7vJ,QAGjE01F,QAAS,SAACvkD,GAA+B,IAAAm0E,EACvCn0E,iBAAAm0E,EAAAn0E,EAAS9vC,SAATikH,OAAAA,EAAYtrC,kBACZoU,EAAapuF,OAAQ,EACrBmvD,SAAAA,EAAW,GAAI,CAAE+4F,WAAY1P,KAASptF,QAAS,SACjD,IAEK,OAAAvkD,EAAMkjG,SACT+lD,EACAzyH,GAAAA,GAAA,CAAA,EACKyyH,GAAA,GAAA,CACHr6D,OAAQ,SAACnwD,EAAa6L,GAA+B,IAAA+oD,UACnDA,EAAArzF,EAAM4uF,qBAANyE,EAAA57F,KAAAuI,EAAe,CAAE7G,MAAOslC,EAAKjkC,EAAG8vC,EAAQ9vC,GAC1C,EACAw0F,QAAS,SAAC/vE,EAAWsqC,GAA6B,IAAA4pC,EAA3B34F,IAAAA,UACrB24F,EAAAnzF,EAAMgvF,sBAANmE,EAAA17F,KAAAuI,EAAgB,CAAE7G,MAAOA,EAAMA,MAAOqB,EAAAA,GACxC,EACA8tD,SAAU,SAAC7pB,GAKT,GAHA6yD,EAAWn4F,MAAQslC,EAGdk0G,GAAYl0G,EAAKg2G,EAAUt7I,MAAM+oB,QAAtC,CACAwyH,EAAWv7I,MAAQslC,EACnB,IAAMyqH,EAAWpX,GAAarzG,EAAKg2G,EAAUt7I,MAAM+oB,QAAQ1D,QACrD2qI,EAAUrX,GAAarzG,EAAKg2G,EAAUt7I,MAAM+oB,QAAQ3D,OACpD6qI,EAAU1V,GAAWj1G,EAAKg2G,EAAUt7I,MAAM+oB,OAAQuyH,EAAUt7I,MAAMo6I,WAAYvzI,EAAM2zI,cACzF36I,OAAOmkD,MAAMgsG,KAAa5qI,EAAKplB,MAAQgwJ,IACvCnwJ,OAAOmkD,MAAM+rG,KAAc1qI,EAAMrlB,MAAQ+vJ,IACzClwJ,OAAOmkD,MAAMisG,KAAaxzI,EAAKzc,MAAQiwJ,EAPO,CAQjD,EACA7+D,QAAS,SAAC9rD,GACR,IAAKA,EAGH,OAFA6pB,EAAS,GAAI,CAAE+4F,WAAY1P,KAASptF,QAAS,eAC7CgjC,EAAapuF,OAAQ,IAIlBw5I,GAAYl0G,EAAKg2G,EAAUt7I,MAAM+oB,SAAYywH,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,WAE3FqlE,EAAapuF,OAAQ,EACjBw5I,GAAYl0G,EAAKg2G,EAAUt7I,MAAM+oB,QACnComC,SAAAA,EACEsqF,GAAWn0G,EAAK,CACdvc,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,YAEhC,CACE42B,WAAYvP,GAAarzG,EAAKg2G,EAAUt7I,MAAM+oB,QAC9CqiC,QAAS,UAGJouF,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,QACvCovE,EAAAn4F,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAG1BovE,EAAWn4F,MAAQ,GAEvB,GAER,IAGMgvE,EAAaxwD,EAAAA,UAAS,WAAA,IAAA0xI,EAAAC,EAAAC,EAAA,OAAA/yH,GAAAA,GAAA,CAC1Bm1C,iBAAiB,GACdzxD,GAAKla,EAAMmoE,WAAY,sBAAmB,CAAA,EAAA,CAC7Cn2C,SAAUA,EAAS74B,MACnBqvE,4BAAyB,UAANxoE,EAAMmoE,kBAAA,IAAAmhF,OAAA,EAANA,EAAkB9gF,yBAAqB,IAAA6gF,EAAAA,EAAA,CAAEryH,MAAO,QACnEsxC,iBAAkB,SAAAihF,EAACvpJ,EAAMmoE,+BAANohF,EAAkBjhF,iBAAkBl3C,GAAAA,OAAG4Z,EAAe7xC,MAAwB,sBACjG8vE,gBAAiB,SAAC12C,EAAkB+X,GAAiB,IAAAk/G,EAAAC,EAAAC,EAAAC,EAC/C33H,EAAS74B,gBAEPqwJ,EAAAxpJ,EAAAmoE,kBAAA,IAAAqhF,GAA8BC,QAA9BA,EAAAD,EAAYvgF,uBAAZwgF,IAA8BA,GAA9BA,EAAAhyJ,KAAA+xJ,EAA8Bj3H,EAAS+X,GAGvCo/G,QAAAA,EAAA1pJ,EAAAmoE,kBAAAwhF,IAAAD,GAAoCC,QAApCA,EAAAD,EAAa,4BAAbC,IAAoCA,GAApCA,EAAAlyJ,KAAAiyJ,EAAoCn3H,EAAS+X,GAE3B,0BAApBA,EAAQia,QAIZgjC,EAAapuF,MAAQo5B,EAHnBg1D,EAAapuF,OAAQ,EAIzB,GAAA,IAeK,OAZDuoC,QAAAvoC,GAAO,SAACA,GACPA,EAIAw5I,GAAYx5I,EAAOs7I,EAAUt7I,MAAM+oB,UAE7BovE,EAAAn4F,MAAQy5I,GAAWz5I,EAAO,CACnC+oB,OAAQuyH,EAAUt7I,MAAM+oB,UANxBovE,EAAWn4F,MAAQ,EAQvB,IAEO,CACLolB,KAAAA,EACAC,MAAAA,EACArlB,MAAAA,EACAyc,KAAAA,EACA07E,WAAAA,EACA/J,aAAAA,EACAqR,WAAAA,EACAzwB,WAAAA,EACAgqB,SAAAA,EACAuiD,WAAAA,EACAsU,YAAAA,EACA1gG,SAAAA,EAEJ,CDhIQ04D,CAAUhhH,GAZZsxF,EAAAiyB,EAAAjyB,WACA/J,EAAAg8B,EAAAh8B,aACAqR,EAAA2qB,EAAA3qB,WACAzwB,EAAAo7C,EAAAp7C,WACA6gF,EAAAzlC,EAAAylC,YACAtU,EAAAnxB,EAAAmxB,WACAv7I,EAAAoqH,EAAApqH,MACAolB,EAAAglG,EAAAhlG,KACAC,EAAA+kG,EAAA/kG,MACA5I,EAAA2tG,EAAA3tG,KACAu8E,EAAAoxB,EAAApxB,SACA7pC,EAAAi7D,EAAAj7D,SAGIt2B,EAAWqY,KACXxK,EAAiBU,KACf7P,EAAiBP,GAAU,cAA3BO,aACFo2B,EAAawoC,KACXs6D,EAAiBx9F,GAAc,CAAEw9F,aAAcC,KAA/CD,aAEFnV,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACduoG,UAAWzqH,EAAMyqH,UACjBspB,kBAAkB/zI,EAAMkjG,UAAmBljG,EAAM+zI,kBAClD,IAEGliB,EAAqBl6G,EAAAA,UAAS,WAC3B,MAAA,CACLxe,MAAOA,EAAMA,MACb84H,aAAc3gC,EAAWn4F,MAE7B,IAuDA,SAASykJ,EAAiBt/H,GACpBte,EAAMkjG,WAEV8lD,EAAY7vJ,OAAQ,EACTm4F,EAAAn4F,MAAQy5I,GAAWt0H,EAAM,CAClC4D,OAAQuyH,EAAUt7I,MAAM+oB,SAE5B,CAGA,SAAS27H,IACH79I,EAAMkjG,WAEV8lD,EAAY7vJ,OAAQ,EACTm4F,EAAAn4F,MAAQy5I,GAAW8B,EAAWv7I,MAAO,CAC9C+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAE5B,CAGA,SAASy7H,EAAYr/H,GAAY,IAAAwrI,EAO/B,GANAd,EAAY7vJ,OAAQ,EAED,SAAf6G,EAAM48E,OACHr+D,EAAAplB,MAAQmlB,EAAK4B,cACZ1B,EAAArlB,MAAQmlB,EAAK8B,YAEjBpgB,EAAM+zI,iBACGW,EAAAv7I,MAAQy5I,GAAWt0H,EAAM,CAClC4D,OAAQuyH,EAAUt7I,MAAM+oB,aAErB,CACL,GAAIliB,EAAMkjG,SAAU,CACZ,IAAA2vC,EAAUkX,EAAYzrI,GAK5B,YAJAgqC,EAASuqF,EAAS,CAChBwO,WAAYvP,GAAaxzH,EAAMm2H,EAAUt7I,MAAM+oB,QAC/CqiC,QAAS,QAGb,CAEA+D,SAAAA,EACEsqF,GAAWt0H,EAAM,CACf4D,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,YAEhC,CACE42B,WAAYvP,GAAaxzH,EAAMm2H,EAAUt7I,MAAM+oB,QAC/CqiC,QAAS,SAGbgjC,EAAapuF,OAAQ,CACvB,SAEA6G,EAAAA,EAAMu7I,cAANv7I,OAAAA,EAAAA,KAAAA,EAAese,EACjB,CAEA,SAASyrI,EAAYzrI,GACf,IACEipG,EAAgBpuH,EAAMA,OAAS,GAC7B0vB,EAAgB6H,EAAav3B,MAA7B0vB,YAsBD,OAnBY,SAAf7oB,EAAM48E,KACK2qC,EAAahxE,MAAK,SAAC9X,GAAA,OAC9Btd,GAAO2wH,GAAarzG,EAAKg2G,EAAUt7I,MAAM+oB,QAAQP,SAAUrD,EAAMte,EAAM48E,KAAM/zD,EAC/E,IAEa0+F,EAAahxE,MAAK,SAAC9X,GAAA,OAAQA,IAAQkzG,GAAMrzH,GAAMc,OAAOyJ,GAAa3G,OAAOuyH,EAAUt7I,MAAM+oB,YAQzFqlG,EAAannF,QACzB,SAAC3B,GACC,OAAAm0G,GAAWn0G,EAAK,CAAEvc,OAAQuyH,EAAUt7I,MAAM+oB,OAAQ4wH,aAAc2B,EAAUt7I,MAAMsxH,cAChFmoB,GAAWt0H,EAAM,CAAE4D,OAAQuyH,EAAUt7I,MAAM+oB,OAAQ4wH,aAAc2B,EAAUt7I,MAAMsxH,WAAW,IAPlFlD,EAAan2F,OACzBwhH,GAAWt0H,EAAM,CAAE4D,OAAQuyH,EAAUt7I,MAAM+oB,OAAQ4wH,aAAc2B,EAAUt7I,MAAMsxH,YAUvF,CAEA,SAASu/B,EAAiB5iG,GACxB,IAAM6iG,EAAatY,GAAMvqF,EAAInoB,MAAMtd,SAC7BkxH,EAAUkX,EAAYE,GAC5B3hG,SAAAA,EAAWuqF,EAAS,CAClBwO,WAAYvP,GAAamY,EAAYxV,EAAUt7I,MAAM+oB,QACrDqiC,QAAS,cAEb,CAES,SAAA2lG,EAAA3nH,GAAkBA,EAAA/nC,EACvB24E,kBACFoU,EAAapuF,OAAQ,EACVmvD,SAAAA,EAAA,GAAI,CAAE+4F,WAAY1P,KAASptF,QAAS,SACjD,CAGS,SAAAq3F,EAAAryF,GAAgD,IAAhChF,EAAAgF,EAAAhF,QAEjB4lG,EADgB,CAAE7rI,KAAM,EAAGkK,KAAM,EAAGhK,MAAO,GAAIyL,QAAS,GAAI1L,KAAM,KACvCve,EAAM48E,OAAS,EAE1ChjE,EAAU,IAAIrb,KAAKggB,EAAKplB,MAAOqlB,EAAMrlB,OAEvCgkB,EAAO,KACK,SAAZonC,EACKpnC,EAAAs6H,GAAc79H,EAASuwI,GACT,YAAZ5lG,EACTpnC,EAAO,IAAI5e,KACU,SAAZgmD,IACFpnC,EAAAu6H,GAAS99H,EAASuwI,IAGrB,IAAAx/H,EAAWxN,EAAK+C,cAChB2K,EAAY1N,EAAKiD,WAEvB7B,EAAKplB,MAAQwxB,EACbnM,EAAMrlB,MAAQ0xB,CAChB,CAGA,SAAS06H,EAAmB9mH,GAAa,IAAA2rH,EACvCx0I,EAAKzc,MAAQslC,EAEP,IAAAy+G,EAAsD5C,GAAe77G,GAAnE+3G,IAAAA,MAAOG,EAASuG,EAATvG,QAASC,EAAAsG,EAAAtG,QAASrB,IAAAA,aAAcnzH,EAAS86H,EAAT96H,SAG3C+6H,EAAY3G,EACZ,MAAM3+I,KAAKuqB,IAA2B,KAAd+6H,IAA+BA,GAAA,IACvD,MAAMtlJ,KAAKuqB,IAAa+6H,EAAY,KAAiBA,GAAA,IACzD,IAGMkN,GAHe1Y,GAAMrgD,EAAWn4F,MAAiBs7I,EAAUt7I,MAAM+oB,QAAQhB,UAE3EywH,GAAMrgD,EAAWn4F,MAAiBs7I,EAAUt7I,MAAM+oB,QADlDyvH,MAEyB0O,KAAKlD,GAAWmD,OAAO3J,GAAS4J,OAAO3J,GAASoL,YAAYzM,GAAc5zH,SAC5F2vE,EAAAn4F,MAAQy5I,GAAWyX,EAAU,CACtCnoI,OAAQuyH,EAAUt7I,MAAM+oB,SAEfwyH,EAAAv7I,MAAQy5I,GAAWyX,EAAU,CACtCnoI,OAAQuyH,EAAUt7I,MAAM+oB,iBAG1BliB,EAAAA,EAAMu7I,cAANv7I,OAAAA,EAAAA,KAAAA,EAAeqqJ,EACjB,CAGS,SAAArE,EAAAn8F,GAAyC,IAIjCygG,EAJS9vJ,EAAAqvD,EAAArvD,EAClB+vJ,EAAY3X,GAAWthD,EAAWn4F,MAAO,CAC7C+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAEtBqoI,GACFvqJ,SAAmBsqJ,QAAnBtqJ,EAAAA,EAAOs7I,qBAAYgP,GAAnBtqJ,EAAAA,KAAAA,EAAmB,CAAEse,KAAMqzH,GAAM4Y,GAAqB5oI,SAAUnnB,EAAAA,IAChE8tD,SAAAA,EACEsqF,GAAWthD,EAAWn4F,MAAO,CAC3B+oB,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,YAEhC,CACE42B,WAAYvP,GAAaxgD,EAAWn4F,MAAiBs7I,EAAUt7I,MAAM+oB,QACrEqiC,QAAS,aAIF+sC,EAAAn4F,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAG5BqlE,EAAapuF,OAAQ,CACvB,CAGA,SAASqiJ,EAAc0J,GACrB,IAAMC,EAAYtoJ,EAAWqoJ,GAAeA,IAAgBA,EAC5D58F,SAAAA,EACEsqF,GAAWuS,EAAW,CACpBjjI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,YAEhC,CACE42B,WAAYvP,GAAaqT,EAAW1Q,EAAUt7I,MAAM+oB,QACpDqiC,QAAS,WAIF+sC,EAAAn4F,MAAQy5I,GAAWuS,EAAW,CACvCjjI,OAAQuyH,EAAUt7I,MAAM+oB,SAE1BqlE,EAAapuF,OAAQ,CACvB,CAEA,SAASwiJ,EAAahxH,GACpBpM,EAAKplB,MAAQwxB,CACf,CAEA,SAAS+wH,EAAc7wH,GACrBrM,EAAMrlB,MAAQ0xB,CAChB,CA3PM6W,QAAA6lD,GAAc,SAACh1D,GAAY,IAAAi4H,EAE/B,IAAIxqJ,EAAMkjG,SAAV,CAEA,IAAKljG,EAAMk7I,aAAel7I,EAAM+zI,mBAAqBxhH,EACjCqgH,GAAWthD,EAAWn4F,MAAO,CAC7C+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAGxBomC,SAAAA,EACEsqF,GAAWthD,EAAWn4F,MAAO,CAC3B+oB,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,YAEhC,CACE42B,WAAYvP,GAAaxgD,EAAWn4F,MAAiBs7I,EAAUt7I,MAAM+oB,QACrEqiC,QAAS,YAIF+sC,EAAAn4F,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAMxB,IAAAuoI,GAEJtxJ,EAAMA,OAAU6f,GAAO7f,EAAMA,QAAW,CAAC,OAAQ,WAAWqe,SAASxX,EAAM48E,MAEvEzjF,EAAMA,MpB+bF,SAAaA,EAAesxH,GACnC,MAAc,eAAdA,EACH,IAAIlsH,KAAKpF,GACTw4I,GAAMx4I,EAAOsxH,GAAW9oG,QAC9B,CoBpcY+oI,CAAavxJ,EAAMA,MAA2B,UAAVs7I,EAAUt7I,aAAA,IAAAqxJ,OAAA,EAAVA,EAAiB//B,WAGhDiqB,EAAAv7I,MAAQy5I,GAAW6X,EAAW,CACvCvoI,OAAQuyH,EAAUt7I,MAAMsxH,UACxBqoB,aAAc2B,EAAUt7I,MAAM+oB,SAErBovE,EAAAn4F,MAAQy5I,GAAW6X,EAAW,CACvCvoI,OAAQuyH,EAAUt7I,MAAMsxH,UACxBqoB,aAAc2B,EAAUt7I,MAAM+oB,SAI5BqQ,GACGhU,EAAAplB,MAAQ24I,GAAa34I,EAAMA,MAAoBs7I,EAAUt7I,MAAMsxH,WAAWlsG,OACzEC,EAAArlB,MAAQ24I,GAAa34I,EAAMA,MAAoBs7I,EAAUt7I,MAAM+oB,QAAQ1D,QACxE5I,EAAAzc,MAAQu6I,GAAWv6I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,OAAQuyH,EAAUt7I,MAAMo6I,WAAYvzI,EAAM2zI,cAE/FqV,EAAY7vJ,OAAQ,CA9CF,CAgDtB,IA2MM,IAAAsrJ,EAAa9sI,EAAAA,UAAS,WAAA,MAAO,CACjCxe,MAAOu7I,EAAWv7I,MAClBolB,KAAMA,EAAKplB,MACXqlB,MAAOA,EAAMrlB,MACb+oB,OAAQuyH,EAAUt7I,MAAM+oB,OACxB06D,KAAM58E,EAAM48E,KACZu+D,QAASn7I,EAAMm7I,QACfj4C,SAAUljG,EAAMkjG,SAChBttF,KAAM5V,EAAMkjG,SAAW,GAAKttF,EAAKzc,MACjC4+I,YAAa/3I,EAAM+3I,YACnB/yH,eAAgBhlB,EAAMglB,eACtBq2H,gBAAiBr7I,EAAMq7I,gBACvBtH,kBAAkB/zI,EAAMkjG,UAAmBljG,EAAM+zI,iBACjDqH,iBAAkBp7I,EAAMo7I,iBACxB7zD,aAAcA,EAAapuF,MAC3B+hJ,YAAal7I,EAAMk7I,YACnByC,YAAAA,EACAC,iBAAAA,EACAC,iBAAAA,EACAjC,cAAAA,EACAoK,eAAAA,EACAxK,cAAAA,EACAG,aAAAA,EACAD,cAAAA,EACA6J,mBAAAA,EACAiD,aAAc,WAAA,IAAAl2D,EAAAq4D,EAAA,OAAer4D,QAAfA,EAAMH,EAASh5F,iBAAAm5F,WAAAq4D,EAATr4D,EAAgBntC,aAAQ,IAAAwlG,OAAA,EAAxBA,EAAAlzJ,KAAA66F,EAAwB,EAC5C,IAEF,OAAO,WAAA,OAAA17D,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,kDAEX6G,EAAMkuF,oBACRl8D,EAAS74B,MACnBA,MAAOm4F,EAAWn4F,MAClBsgD,MAAO,WAAA,OAAM5Z,EAAe,QAC5B,EAAAwuB,OAAQruD,EAAMquD,OAAAsgC,KACR3uF,EAAM2uF,KAAAR,UACDnuF,EAAMmuF,mBACPrnC,EAAW3tD,eACX6G,EAAMkjG,oBACJ/6B,EAAWhvE,MACvBy/F,WAAYA,EAAWz/F,MACvB4uB,YACE/nB,EAAM+nB,aAAgB2I,EAAav3B,MAAM4uB,YAAuD/nB,EAAM48E,MAAA2K,cAEzFzgC,EAAW3tD,OAASouF,EAAapuF,MAAAoqG,aAClC,WAAA,OAAM1jE,EAAe,eAAgB,CAAER,OAAQwyF,EAAmB14H,OAAO,EAAA+hJ,YAC1El7I,EAAMk7I,aACdl7I,EAAMwqH,iBAAA,CAAA3sC,MACJ,WAAA,OAAAjnD,EAAAO,YAAAoxH,GAAwB9D,EAAWtrJ,MAAA,qBAC3B,CACb4kF,SAAUisE,WAEHE,EAAA55G,WACG,WAAA,OAAMzQ,EAAe,aAAY,EAAA0Q,WACjC,WAAA,OAAM1Q,EAAe,eAAYjJ,EAAAA,YAAAgzH,EAAmB,KAAA,KAAA,IAAA,QAIxE,IE7WagB,GAAA,CAEbjX,YAAa,CACX73I,KAAM/C,OACNoqB,QAAS,YAGXw6H,YAAa7jJ,SAEbwuD,SAAUxuD,SAEVwhJ,UAAWxhJ,SAEX4hJ,cAAe5hJ,SAEf0uJ,aAAc1uJ,SAEd0hJ,cAAe1hJ,SAEf+wJ,aAAc/wJ,SAEd6hJ,aAAc7hJ,yOCZhB,IAAAgxJ,GAAe11H,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,uWAAOw2B,CAAA,CACLr9B,MAAO8hJ,GAAgB9hJ,MACvBmN,aAAc20I,GAAgB30I,aAC9B0+D,WAAYi2E,GAAgBj2E,WAC5BhzC,SAAUipH,GAAgBjpH,SAC1B+lH,YAAakD,GAAgBlD,YAC7BhE,iBAAkBkH,GAAgBlH,iBAClC/uH,eAAgBi2H,GAAgBj2H,eAChC9C,OAAQ+4H,GAAgB/4H,OACxB06D,KAAMq+D,GAAgBr+D,KACtBu+D,QAASF,GAAgBE,QACzBC,iBAAkBH,GAAgBG,iBAClCC,gBAAiBJ,GAAgBI,iBAC9BuP,IAGLv1H,MAAAA,SAAMr1B,GACE,IAAA+oJ,EAAqD3U,GAAep0I,GAAlE00I,IAAAA,WAAYv7I,EAAO4vJ,EAAP5vJ,MAAOolB,EAAAwqI,EAAAxqI,KAAMC,IAAAA,MAAO5I,EAAMmzI,EAANnzI,KAAM0yC,EAAAygG,EAAAzgG,SAExCmsF,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACd6xH,iBAAkB/zI,EAAM+zI,kBACzB,IAIH,SAAS4J,EAAYr/H,EAAAikB,GAAsC,IAAAmjH,EAAxBlrJ,EAAA+nC,EAAA/nC,EACb,QAApBkrJ,EAAA1lJ,EAAM29I,mBAAc,IAAA+H,GAApBA,EAAAjuJ,KAAAuI,EAAoB,CAAEse,KAAAA,EAAM9jB,EAAAA,IAGT,SAAfwF,EAAM48E,OACHr+D,EAAAplB,MAAQmlB,EAAK4B,cACZ1B,EAAArlB,MAAQmlB,EAAK8B,YAEjBpgB,EAAM+zI,iBACGW,EAAAv7I,MAAQy5I,GAAWt0H,EAAM,CAAE4D,OAAQuyH,EAAUt7I,MAAM+oB,SAEnDomC,SAAAA,EAAAsqF,GAAWt0H,EAAM,CAAE4D,OAAQuyH,EAAUt7I,MAAM+oB,SAAwB,CAC5Em/H,WAAYvP,GAAaxzH,EAAMm2H,EAAUt7I,MAAM+oB,QAC/CqiC,QAAS,QAGf,CAGS,SAAAq3F,EAAAryF,GAAqE,IAArDhF,EAAAgF,EAAAhF,QACjBwmG,EAAa,CACjBntG,KAAM,iBACNzgC,KAAM,cAGFgtI,EADgB,CAAE7rI,KAAM,EAAGkK,KAAM,EAAGhK,MAAO,GAAIyL,QAAS,GAAI1L,KAAM,KACvCve,EAAM48E,OAAS,EAE1ChjE,EAAU,IAAIrb,KAAKggB,EAAKplB,MAAOqlB,EAAMrlB,OAEvCgkB,EAAO,KACK,SAAZonC,EACKpnC,EAAAs6H,GAAc79H,EAASuwI,GACT,YAAZ5lG,EACTpnC,EAAO,IAAI5e,KACU,SAAZgmD,IACFpnC,EAAAu6H,GAAS99H,EAASuwI,IAGrB,IAGuBtN,EAOEF,EAVzBhyH,EAAWxN,EAAK+C,cAChB2K,EAAY1N,EAAKiD,WAEnB7B,EAAKplB,QAAUwxB,IACI,QAArBkyH,EAAA78I,EAAM27I,oBAAe,IAAAkB,GAArBA,EAAAplJ,KAAAuI,EAAqB,CACnBue,KAAMoM,EACNrM,KAAMqzH,GAAMx4I,EAAMA,OAAoBwoB,SACtC4iC,QAAqB,YAAZA,EAAwB,QAAAnzB,QAAAA,OAAmB25H,EAAWxmG,OAG/D/lC,EAAMrlB,QAAU0xB,IACI,QAAtB8xH,EAAA38I,EAAM07I,qBAAgB,IAAAiB,GAAtBA,EAAAllJ,KAAAuI,EAAsB,CACpBwe,MAAOqM,EACPvM,KAAMqzH,GAAMx4I,EAAMA,OAAoBwoB,SACtC4iC,QAAqB,YAAZA,EAAwB,QAAAnzB,SAAAA,OAAoB25H,EAAWxmG,OAIpEhmC,EAAKplB,MAAQwxB,EACbnM,EAAMrlB,MAAQ0xB,CAChB,CAGA,SAAS06H,EAAmB9mH,GAAa,IAAAusH,EACvCp1I,EAAKzc,MAAQslC,EAEP,IAAAy+G,EAAsD5C,GAAe77G,GAAnE+3G,IAAAA,MAAOG,EAASuG,EAATvG,QAASC,EAAAsG,EAAAtG,QAASrB,IAAAA,aAAcnzH,EAAS86H,EAAT96H,SAG3C+6H,EAAY3G,EACZ,MAAM3+I,KAAKuqB,IAA2B,KAAd+6H,IAA+BA,GAAA,IACvD,MAAMtlJ,KAAKuqB,IAAa+6H,EAAY,KAAiBA,GAAA,IACzD,IAGMkN,GAHe1Y,GAAM+C,EAAWv7I,MAAiBs7I,EAAUt7I,MAAM+oB,QAAQhB,UAE3EywH,GAAM+C,EAAWv7I,MAAiBs7I,EAAUt7I,MAAM+oB,QADlDyvH,MAEyB0O,KAAKlD,GAAWmD,OAAO3J,GAAS4J,OAAO3J,GAASoL,YAAYzM,GAAc5zH,SAC5F+yH,EAAAv7I,MAAQy5I,GAAWyX,EAAU,CAAEnoI,OAAQuyH,EAAUt7I,MAAM+oB,SAE7C,QAArB8oI,EAAAhrJ,EAAM6qJ,oBAAe,IAAAG,GAArBA,EAAAvzJ,KAAAuI,EAAqB,CACnB4V,KAAM6oB,EACNngB,KAAMqzH,GAAMx4I,EAAMA,OAAoBwoB,SACtC4iC,QAAS,aAEb,CAGS,SAAAyhG,EAAAn8F,GAAyC,IAAAohG,EAAxBzwJ,EAAAqvD,EAAArvD,EACxB8tD,SAAAA,EACEsqF,GAAW8B,EAAWv7I,MAAO,CAC3B+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAE1B,CACEm/H,WAAYvP,GAAa4C,EAAWv7I,MAAiBs7I,EAAUt7I,MAAM+oB,QACrEqiC,QAAS,YAGP,QAAA0mG,EAAAjrJ,EAAAs7I,iBAAA,IAAA2P,GAAAA,EAAAxzJ,KAAAuI,EAAY,CAAEse,KAAMqzH,GAAM+C,EAAWv7I,OAAiBwoB,SAAUnnB,EAAAA,GACxE,CAGS,SAAAghJ,EAAc4K,EAAa97G,GAAc,IAAA67G,EAC1ChB,EAAYtoJ,EAAWupJ,GAAUA,IAAWA,EACvC99F,SAAAA,EAAAsqF,GAAWuS,EAAW,CAAEjjI,OAAQuyH,EAAUt7I,MAAM+oB,SAAwB,CACjFm/H,WAAYvP,GAAaqT,EAAW1Q,EAAUt7I,MAAM+oB,QACpDqiC,QAAS,mBAEX4hG,EAAAnmJ,EAAMw7I,qBAAN2K,OAAAA,EAAA1uJ,KAAAuI,EAAsBsqC,EACxB,CAEA,SAASqxG,EAAahxH,GAAkB,IAAAugI,EACtC3sI,EAAKplB,MAAQwxB,EAEQ,QAArBugI,EAAAlrJ,EAAM27I,oBAAe,IAAAuP,GAArBA,EAAAzzJ,KAAAuI,EAAqB,CACnBue,KAAMA,EAAKplB,MACXmlB,KAAMqzH,GAAMx4I,EAAMA,OAAoBwoB,SACtC4iC,QAAS,eAEb,CAEA,SAASm3F,EAAc7wH,GAAmB,IAAAsgI,EACxC3sI,EAAMrlB,MAAQ0xB,EAEQ,QAAtBsgI,EAAAnrJ,EAAM07I,qBAAgB,IAAAyP,GAAtBA,EAAA1zJ,KAAAuI,EAAsB,CACpBwe,MAAOA,EAAMrlB,MACbmlB,KAAMqzH,GAAMx4I,EAAMA,OAAoBwoB,SACtC4iC,QAAS,gBAEb,CAEM,IAAAkgG,EAAa9sI,EAAAA,UAAS,WAAA,MAAO,CACjCxe,MAAOu7I,EAAWv7I,MAClBolB,KAAMA,EAAKplB,MACXqlB,MAAOA,EAAMrlB,MACbyjF,KAAM58E,EAAM48E,KACZ16D,OAAQuyH,EAAUt7I,MAAM+oB,OACxBi5H,QAASn7I,EAAMm7I,QACfvlI,KAAMA,EAAKzc,MACX4+I,YAAa/3I,EAAM+3I,YACnB/yH,eAAgBhlB,EAAMglB,eACtBq2H,gBAAiBr7I,EAAMq7I,gBACvBtH,iBAAkB/zI,EAAM+zI,iBACxBqH,iBAAkBp7I,EAAMo7I,iBACxB7zD,cAAc,EACd6jE,WAAYprJ,EAAMwoJ,aAClB7K,YAAAA,EACA/B,cAAAA,EACAoK,eAAAA,EACAxK,cAAAA,EACAG,aAAAA,EACAD,cAAAA,EACA6J,mBAAAA,EACA,IAEF,OAAO,WAAA,OAAA3uH,EAAAO,YAAAoxH,GAAwB9D,EAAWtrJ,MAAO,MACnD,IC/LakyJ,GAAA,CAEbvoD,WAAYhhE,QAEZosD,WAAYpsD,QAEZs2G,uBAAwBt2G,QAExBqsD,UAAWrsD,QAEX6xG,YAAa,CACX73I,KAAMnF,MACNwsB,QAAS,WAAA,MAA6C,CAAC,WAAY,WAAU,GAG/E40H,YAAa,CACXj8I,KAAM,CAACxE,OAAQX,MAAOmD,WAGxBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX4wH,iBAAkBjyG,QAElB9c,eAAgB,CACdlpB,KAAM9C,OACNi0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGjnB,SAASinB,EACxC,GAGFvc,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,IAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjB8iF,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,UAAW,QAAS,OAAQ,QAAQjnB,SAASinB,EAC/D,GAGFy8G,YAAa,CACXp/I,KAAMgmC,QACN3e,SAAS,GAGXmoI,kBAAmB,CACjBxvJ,KAAMgmC,QACN3e,SAAS,GAGX4E,YAAa,CACXjsB,KAAM,CAAC/C,OAAQpC,QAGjBwxE,WAAY,CACVrsE,KAAMxE,QAGRg5C,WAAY,CACVx0C,KAAMhC,UAGRqhJ,QAAS,CACPr/I,KAAMxE,QAGR8jJ,iBAAkB,CAChBt/I,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,MAAO,QAAS,UAAUjnB,SAASinB,EACrD,GAGF8sH,gBAAiB,CACfzvJ,KAAMxE,QAGRi3F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXuyB,UAAW,CACT55C,KAAM/C,OACNoqB,QAAS,IAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF8R,WAAY,CACVz0C,KAAMhC,UAGRuhJ,gBAAiB,CACfv/I,KAAMxE,QAGRq3F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAAuD,EAAC,GAG1DsnG,UAAW,CACT3uH,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CACL,aACA,OACA,OACA,UACA,aACA,gBACA,mBACA,sBACA,2BACAjnB,SAASinB,EACb,GAGFmwD,OAAQ90F,SAERwuD,SAAUxuD,SAEVwhJ,UAAWxhJ,SAEXk1F,QAASl1F,SAETkmJ,QAASlmJ,SAETyhJ,OAAQzhJ,SAER0hJ,cAAe1hJ,UC/KF0xJ,GAAA,CAEb9G,YAAa,CACX5oJ,KAAM9C,QAGRk1F,WAAYpsD,QAEZqsD,UAAWrsD,QAEX9P,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXjB,OAAQ,CACNpmB,KAAM,CAACnF,MAAOmD,WAGhB8+F,WAAY,CACV98F,KAAM,CAACxE,OAAQX,QAGjB8iD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM,CAAC/C,OAAQpC,QAGjB25C,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXuyB,UAAW,CACT55C,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,KAGXqrE,qBAAsB1sD,QAEtBv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGR60F,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAAkD,EAAC,GAGrDyrE,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAETytC,QAASztC,SAETywF,QAASzwF,SAETk1F,QAASl1F,SAETi1D,aAAcj1D,SAEdk1D,aAAcl1D,6kBClGhB,SAAS2xJ,GAAetyJ,GAClB,OAAApB,EAAQoB,GACHA,EAEF,CAACA,EAAOA,EACjB,CAEA,IAAAuyJ,GAAet2H,kBAAgB,CAC7Bx9B,KAAM,cACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAA0B,IAAjB0gD,EAAAne,EAAAme,OAAQle,IAAAA,MACrBupC,EAA8B7nC,SAAOlkC,GAA7B7G,EAAA4yE,EAAA5yE,MAAO6rE,EAAW+G,EAAX/G,WACf/5B,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KACV5M,EAAcyM,KACd6Z,EAAiB7Z,GAAe,eAC9BikE,EAA0BhpC,GAAc,CAAEgpC,sBAAuBC,KAAjED,sBACFv1D,EAAiBU,KAEjB4K,EAAad,KACb81D,EAAa7Q,KACbr9D,EAAU/B,OAAI,GACd+hE,EAAU/hE,OAAI,GACdhO,EAASvK,EAAAA,UAAS,WAAA,OAAM8zI,GAAezrJ,EAAMkiB,WAC7C02E,EAAajhF,EAAAA,UAAS,WAAA,OAAM8zI,GAAezrJ,EAAM44F,eACjD7wE,EAAcpQ,EAAAA,UAAS,WAAA,OAAM8zI,GAAezrJ,EAAM+nB,gBAC2CikD,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAE1BslB,EAAa35E,EAAAA,UAAS,WAAA,IAAA4xC,EAAAopC,EAAAg5D,EAAA,OAAM5yJ,eAAQwwD,WAAAopC,EAAAZ,EAAW54F,aAAQ,IAAAw5F,OAAA,EAAnBA,EAAmB,MAAiBg5D,QAAjBA,EAAM55D,EAAW54F,iBAAAwyJ,SAAXA,EAAmB,WAAO,IAAApiG,EAAAA,EAAA,OAEvFqiG,EAAkBj0I,EAAAA,UACtB,WAAA,IAAA+/E,EAAA,OACI13F,EAAMmuF,YAAwBuJ,QAAxBA,EAAapG,EAAWn4F,aAAXu+F,IAAWA,OAAXA,EAAAA,EAAkBlhG,UAAW20C,EAAWhyC,OAAU6G,EAAMwuF,uBAC7EyD,EAAQ94F,KAAA,IAGN0yJ,EAAY,CAChBC,cAAe57H,EAAAA,MACf67H,eAAgB77H,EAAAA,OAGlB,SAAS87H,EAAY1hH,GAA4B,IAAA40E,UAC/Cl/G,EAAAA,EAAM6uF,eAAN7uF,OAAAA,EAAAA,KAAAA,EAAgBsqC,GACF0nD,EAAA,CAAC,GAAI,IAAKx7D,GAAAA,GAAA,CAAA,EAAK8T,GAAA,GAAA,CAASia,QAAS,QAASpb,SAAU,QACpE,CAES,SAAA8iH,EAAYC,EAA6B5hH,GAA4B,IAAAuqF,UAC5E70H,EAAAA,EAAMuqF,eAAU,IAAAsqC,GAAhB70H,EAAAA,KAAAA,EAAgBksJ,EAAY5hH,EAC9B,CAES,SAAA6hH,EAAYD,EAA6B5hH,GAA4B,IAAA+0E,EAC5EptF,EAAQ94B,OAAQ,UAChB6G,EAAAA,EAAMgvF,eAAU,IAAAqwB,GAAhBr/G,EAAAA,KAAAA,EAAgBksJ,EAAY5hH,EAC9B,CAES,SAAAopD,EAAWw4D,EAA6B5hH,GAA4B,IAAAi1E,EAC3EttF,EAAQ94B,OAAQ,UAChB6G,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAeksJ,EAAY5hH,EAC7B,CAEA,SAASk+C,EAAiBhuF,GAAe,IAAA4xJ,EACvCn6D,EAAQ94F,OAAQ,EAChB6G,SAAOosJ,QAAAA,EAAPpsJ,EAAO+uD,wBAAAq9F,GAAPpsJ,EAAAA,KAAAA,EAAsB,CAAExF,EAAAA,GAC1B,CAEA,SAASkuF,EAAiBluF,GAAe,IAAA6xJ,EACvCp6D,EAAQ94F,OAAQ,EAChB6G,SAAOqsJ,QAAAA,EAAPrsJ,EAAOgvD,wBAAAq9F,GAAPrsJ,EAAAA,KAAAA,EAAsB,CAAExF,EAAAA,GAC1B,CAmBA,OAjBOkmD,EAAA,CACL4rG,kBAAmBT,EAAUC,cAAc3yJ,MAC3CozJ,mBAAoBV,EAAUE,eAAe5yJ,MAC7CgsD,MAAO,SAACjwC,GAAiB,IAAAs3I,EACoBC,GAAZv3I,GAAW,CAAC,GAAnCi0B,iBACEqjH,EAAAX,EAAAz6H,GAAAA,YADS,IAAXq7H,EAAW,QAAQA,EAC4C,aAAAtzJ,aAAA,IAAAqzJ,GAA7DA,EAAoErnG,OAChF,EACA6tC,KAAM,SAAC99E,GAAiB,IAAAw3I,EACqBC,GAAZz3I,GAAW,CAAC,GAAnCi0B,iBACEujH,EAAAb,EAAAz6H,GAAAA,YADS,IAAXu7H,EAAW,QAAQA,EAC4C,aAAAxzJ,aAAA,IAAAuzJ,GAA7DA,EAAoE15D,MAChF,EACA5sE,OAAQ,SAAClR,GAAiB,IAAA03I,EACmBC,GAAZ33I,GAAW,CAAC,GAAnCi0B,iBACEyjH,EAAAf,EAAAz6H,GAAAA,YADS,IAAXy7H,EAAW,QAAQA,EAC4C,aAAA1zJ,aAAA,IAAAyzJ,GAA7DA,EAAoExmI,QAChF,IAGK,WAAM,IAAA0mI,EAAAC,EACLj1D,EAAej4D,EAAe,SAC9BmtH,EAAoBntH,EAAe,cACnCk4D,EAAgBl4D,EAAe,UAC/BotH,EAAoBptH,EAAe,cACnC8uD,EAAO9uD,EAAe,QACtB6V,EAAY7V,EAAe,aAE3BqtH,EACJt2H,EAAAO,YAAAoN,MAAAA,EAAAA,WACM/B,EAAA,CAAA3L,MACG,CACLmU,EAAe7xC,MAAAF,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAEZq4B,EAAKn4B,MAAM6G,EAAMuE,MAAuB,WAAfvE,EAAMuE,MAC/BstB,EAAO14B,MAAM64B,SAAWmZ,EAAWhyC,OACnC04B,EAAO14B,MAAM84B,QAAUA,EAAQ94B,OAC/B04B,EAAO14B,MAAMysB,QAA2B,YAAjB5lB,EAAMquD,QAC7Bx8B,EAAO14B,MAAMusB,QAA2B,YAAjB1lB,EAAMquD,QAC7Bx8B,EAAO14B,MAAM+4B,MAAyB,UAAjBlyB,EAAMquD,QAAWj9B,GAAAA,OACnC4Z,EAAe7xC,MAAkB6zJ,YAAAA,GAAqBl1D,GAAA1mE,GAAAA,OACtD4Z,EAAe7xC,MAAkB4+F,YAAAA,GAAiBk1D,GAAA77H,GAAAA,OAClD4Z,EAAe7xC,MAAsB6G,gBAAAA,EAAMkuF,aAEnDn/B,aACcy5B,EACdx5B,aAAc05B,0CAEC19C,EAAe7xC,MAAA,YAC3B6zJ,CAAAA,GAAAp2H,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAoC4Z,EAAe7xC,MAAA,aAAA,CAAkB6zJ,IACrEl1D,EAAAlhE,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAA8B4Z,EAAe7xC,MAAA,aAAkB2+F,CAAAA,IAAsB,KAAAlhE,EAAAO,YAAAohE,GAAAh0D,aAAA,CAAArU,IAE/E27H,EAAUC,8BACL9gH,EAAe7xC,MAAA,gBAAAi1F,WAAAn1F,EAAA,GAAA,GAAAm4B,OAEnB1M,EAAYvrB,MAAA,eAA2C,IAAtB6G,EAAM0kJ,aAAgB38H,YAEhDA,EAAY5uB,MAAM,GAC/B64B,SAAUmZ,EAAWhyC,MAAAo1F,SACX4R,EAAWhnG,MACrB+oB,OAAQA,EAAO/oB,MAAM,GACrBA,MAAkB2zJ,QAAlBA,EAAO/6D,EAAW54F,aAAX2zJ,IAAWA,OAAXA,EAAAA,EAAmB,GAC1BvlH,QAAS,SAAAotF,GAAA,IAAAxkF,EAAG31C,EAAEm6H,EAAFn6H,EAAE,OAA+B,QAA/B21C,EAAyBnwC,EAAMunC,eAAA,IAAA4I,OAAA,EAANnwC,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,EAAG2uC,SAAU,SAAS,EAAA0lD,QACtE,WAAA,OAAMmD,EAAc,GAAI,CAAE7oD,SAAU,QAASob,QAAS,SAAS,EAAAgmC,QAC/D,SAAC9rD,EAAKm2F,GAAA,IAAAu4B,EAAE3yJ,EAAEo6H,EAAFp6H,EAAE,OACjByxJ,EAAY,CAACxtH,EAAwB,QAAnB0uH,EAAAp7D,EAAW54F,aAAXg0J,IAAmBA,OAAnBA,EAAAA,EAAmB,IAAK,CAAE3yJ,EAAAA,EAAG2uC,SAAU,SAK3D,EAAA6lD,QAAS,SAACvwD,EAAAq2F,GAAA,IAAAs4B,EAAO5yJ,EAAAs6H,EAAAt6H,EAAA,OACf2xJ,EAAY,CAAC1tH,EAAgB,QAAhB2uH,EAAKr7D,EAAW54F,aAAXi0J,IAAWA,OAAXA,EAAAA,EAAmB,IAAK,CAAE5yJ,EAAAA,EAAG2uC,SAAU,SAGxD,EAAAylD,OAEK,SAACnwD,EAAKu2F,GAAA,IAAAq4B,EAAE7yJ,EAAEw6H,EAAFx6H,EAAE,OAChBk5F,EAAW,CAACj1D,EAAwB,QAAnB4uH,EAAAt7D,EAAW54F,aAAXk0J,IAAmBA,OAAnBA,EAAAA,EAAmB,IAAK,CAAE7yJ,EAAAA,EAAG2uC,SAAU,SAK1D,EAAAmf,SAAU,SAAC7pB,EAAA6uH,GAAA,IAAAC,EAAO/yJ,EAAA8yJ,EAAA9yJ,EAAA,OAChBw3F,EAAc,CAACvzD,EAAgB,QAAhB8uH,EAAKx7D,EAAW54F,aAAXo0J,IAAWA,OAAXA,EAAAA,EAAmB,IAAK,CAAE/yJ,EAAAA,EAAG2uC,SAAU,QAASob,QAAS,SAAS,GAEpFq0C,EAAWz/F,MAAM,UACvBy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEe4Z,EAAe7xC,MAAA,sBAAA,CAA2Bu8C,uCAGlDm2G,EAAUE,+BACL/gH,EAAe7xC,MAAA,iBAAAi1F,WAAAn1F,EAAA,GAAA,GAAAm4B,OAEnB1M,EAAYvrB,MAAA,eAA2C,IAAtB6G,EAAM0kJ,aAAgB38H,YAEhDA,EAAY5uB,MAAM,GAC/B64B,SAAUmZ,EAAWhyC,MAAAo1F,SACX4R,EAAWhnG,MACrB+oB,OAAQA,EAAO/oB,MAAM,GACrBA,MAAkB4zJ,QAAlBA,EAAOh7D,EAAW54F,aAAX4zJ,IAAWA,OAAXA,EAAAA,EAAmB,GAC1BxlH,QAAS,SAAAimH,GAAA,IAAAC,EAAGjzJ,EAAEgzJ,EAAFhzJ,EAAE,OAA+B,QAA/BizJ,EAAyBztJ,EAAMunC,eAAA,IAAAkmH,OAAA,EAANztJ,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,EAAG2uC,SAAU,UAAU,EAAA0lD,QACvE,WAAA,OAAMmD,EAAc,GAAI,CAAE7oD,SAAU,SAAUob,QAAS,SAAS,EAAAgmC,QAChE,SAAC9rD,EAAKivH,GAAA,IAAAC,EAAEnzJ,EAAEkzJ,EAAFlzJ,EAAE,OACjByxJ,EAAY,CAAY,QAAZ0B,EAAC57D,EAAW54F,aAAA,IAAAw0J,OAAA,EAAXA,EAAmB,GAAIlvH,GAAM,CAAEjkC,EAAAA,EAAG2uC,SAAU,UAK3D,EAAA6lD,QAAS,SAACvwD,EAAAmvH,GAAA,IAAAC,EAAOrzJ,EAAAozJ,EAAApzJ,EAAA,OACf2xJ,EAAY,CAAoB,QAApB0B,EAAC97D,EAAW54F,aAAQ,IAAA00J,OAAA,EAAnBA,EAAmB,GAAIpvH,GAAM,CAAEjkC,EAAAA,EAAG2uC,SAAU,UAGxD,EAAAylD,OAEK,SAACnwD,EAAKqvH,GAAA,IAAAC,EAAEvzJ,EAAEszJ,EAAFtzJ,EAAE,OAChBk5F,EAAW,CAAY,QAAZq6D,EAACh8D,EAAW54F,aAAA,IAAA40J,OAAA,EAAXA,EAAmB,GAAItvH,GAAM,CAAEjkC,EAAAA,EAAG2uC,SAAU,UAK1D,EAAAmf,SAAU,SAAC7pB,EAAAuvH,GAAA,IAAAC,EAAOzzJ,EAAAwzJ,EAAAxzJ,EAAA,OAChBw3F,EAAc,CAAoB,QAApBi8D,EAACl8D,EAAW54F,aAAQ,IAAA80J,OAAA,EAAnBA,EAAmB,GAAIxvH,GAAM,CAAEjkC,EAAAA,EAAG2uC,SAAU,SAAUob,QAAS,SAAS,GAErFq0C,EAAWz/F,MAAM,IACvB,MACC4+F,EAAAnhE,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAA+B4Z,EAAe7xC,MAAA,aAAkB4+F,CAAAA,IAAuB,MACtFk1D,GAAqBrB,EAAgBzyJ,QACrCy9B,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAAgB4Z,EAAe7xC,mBAAAi4B,OAAiB4Z,EAAe7xC,MAAA,kBAAA,CAC5DyyJ,EAAgBzyJ,MACfy9B,EAAAA,YAAAw+D,EAAA,CAAAv+D,MAAA,GAAAzF,OAAiC4Z,EAAe7xC,gCAAgC6yJ,GAEhFiB,MAAAA,QAQN/0D,EAAc,CAAA,GAAA9mE,OACf4Z,EAAe7xC,MAAA,UAAA,GAAAi4B,OACf1M,EAAYvrB,MAAAi4B,SAAAA,GAAAA,OACZ1M,EAAYvrB,MAAAi4B,QAAAA,OAAYpxB,EAAMquD,SAEnC,OAAAz3B,EAAAA,YAAAmhB,EAAAA,SAAA,KAAA,CAEKm1G,EACAv+D,8BAAoBuJ,GAAA,CAAcvJ,MAI3C,IClOau/D,GAAA,CAEblgE,UAAWlsD,QAEX9P,SAAU8P,QAEVwvD,WAAY,CACVx1F,KAAMnF,MACNwsB,aAAS,GAGX6/E,kBAAmB,CACjBlnG,KAAMnF,OAGR8iD,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjB+jF,MAAO,CACL/hF,KAAM,CAAC/C,OAAQe,WAGjBquE,WAAY,CACVrsE,KAAMxE,QAGRiwF,aAAczlD,QAEdypH,gBAAiB,CACfzvJ,KAAMxE,QAGRi3F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXkrC,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGFkwD,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjB0pG,cAAe1pG,SAEf2pG,qBAAsB3pG,6kBCtDxB,IAAAq0J,GAAe/4H,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,qBAEtCmyF,EAA6ErD,GAAqBjgH,GAA1F0gH,EAAoB4C,EAApB5C,mBAAoBR,EAAAoD,EAAApD,kBAAmBU,EAA0B0C,EAA1B1C,0BAEzCkgB,EAAenpH,EAAAA,UAAS,WAAA,MAAM,CAClCqzB,EAAe7xC,MAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAET4Z,EAAe7xC,MAAmB6G,aAAAA,EAAMunF,cAAgB24B,EAAkB/mH,WAI3E,OAAA,WAAA,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MACOiqG,EAAa3nI,OACvB,CAAAy9B,EAAAA,YAAAy4C,GAAA9qC,aAAA,CAAA8jC,gBAAA,EAAAp/C,QAEWjpB,EAAM69E,uDAGL79E,EAAMgyB,iBACPhyB,EAAMunF,cAAgB24B,EAAkB/mH,OAC7Cq9B,GAAA,CACFgyC,kBAAmBk4C,EAAmBvnH,MACtC8vE,gBAAiB23C,GACd5gH,EAAMmoE,aAAA,CAAAhlD,QAAA,WAAA,MAAA,CAAAyT,EAAAA,YAAAw3H,GAAA53H,GAAA,CAKPr9B,MAAO6G,EAAMsxF,WACbhpC,SAAUtoD,EAAMwjG,cAChBxxE,SAAUhyB,EAAMgyB,SAChBynB,MAAOz5C,EAAMy5C,MACb4U,OAAQruD,EAAMquD,OACdsgC,KAAM3uF,EAAM2uF,MACT3uF,EAAMurJ,iBAAA,MAAA,MAMrB,ICxCW6C,GAAaznH,GAAY+kH,IACzB2C,GAAkB1nH,GAAYwnH,ukBCL3C,IAAAG,GAAel5H,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACLuuJ,WAAY53J,MACZ+tJ,YAAa1rJ,OACbiuJ,qBAAsBnlH,QACtBi2G,YAAa,CAACzgJ,OAAQX,MAAOmD,UAC7B8iF,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QAEXjB,OAAQnpB,OACRqiJ,iBAAkB,CAChBt/I,KAAM/C,OACNoqB,QAAS,UAEXhqB,MAAOxC,MACP0kJ,gBAAiB/jJ,OACjB6jJ,QAAS7jJ,OACTiwF,aAAczlD,QACdiyG,iBAAkBjyG,QAClBwpH,kBAAmBxpH,QACnB9c,eAAgBhsB,OAChBulB,KAAM5nB,MACN6nB,MAAO7nB,MACPif,KAAMjf,MACNyhJ,uBAAwBt2G,QACxByF,QAASztC,SACT6jJ,YAAa7jJ,SACb8jJ,iBAAkB9jJ,SAClB+jJ,iBAAkB/jJ,SAClB8hJ,cAAe9hJ,SACfksJ,eAAgBlsJ,SAChB0hJ,cAAe1hJ,SACf6hJ,aAAc7hJ,SACd4hJ,cAAe5hJ,SACfyrJ,mBAAoBzrJ,UAEtBu7B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,4BAC9BT,EAAiBP,GAAU,cAA3BO,aAEFxO,EAASvK,EAAAA,UACb,WAAA,IAAA8wI,EAAA,OAKMA,QALNA,EACE5U,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACd6xH,iBAAkB/zI,EAAM+zI,0BAH1B0U,IAIIA,OAJJA,EAAAA,EAIIvmI,MAAA,IAIFssI,GAAoBxuJ,EAAMsrJ,mBAA4C,IAAvBtrJ,EAAM7G,MAAM3C,OAE3DkyJ,EAAqB/wI,EAAAA,UAAS,WAAA,OAClC6uI,GAAe,CACbtkI,OAAQA,EAAO/oB,MACfyjF,KAAM58E,EAAM48E,KACZm7D,YAAa/3I,EAAM+3I,YACnBv3I,MACER,EAAMinJ,sBAA8C,IAAtBjnJ,EAAM0kJ,YAChC,IAAInmJ,KAAKuzI,GAAa9xI,EAAM7G,MAAM,GAAI+oB,EAAO/oB,MAAO,SAASwoB,SAASy7H,SAAS,EAAG,EAAG,SACrF,EACN71I,IACEvH,EAAMinJ,sBAA8C,IAAtBjnJ,EAAM0kJ,YAChC,IAAInmJ,KAAKuzI,GAAa9xI,EAAM7G,MAAM,GAAI+oB,EAAO/oB,OAAOwoB,SAASy7H,SAAS,GAAI,GAAI,UAC9E,GACP,IAGGqR,EAAiB92I,EAAAA,UAAS,WAAA,OAC9ByvI,GAAa5wH,GAAAA,GAAA,CACXgjH,SAAS,EACTh5I,MAAOR,EAAM7G,MAAM,GAAK24I,GAAa9xI,EAAM7G,MAAM,GAAI+oB,EAAO/oB,OAAOwoB,cAAW,EAC9Epa,IAAKvH,EAAM7G,MAAM,GAAK24I,GAAa9xI,EAAM7G,MAAM,GAAI+oB,EAAO/oB,OAAOwoB,cAAW,EAC5Ey3H,YACGoV,GAAoBxuJ,EAAMuuJ,WAAW,GAClCzc,GAAa9xI,EAAMuuJ,WAAW,GAAIrsI,EAAO/oB,OAAOwoB,cAChD,EACN03H,UACGmV,GAAoBxuJ,EAAMuuJ,WAAW,GAClCzc,GAAa9xI,EAAMuuJ,WAAW,GAAIrsI,EAAO/oB,OAAOwoB,cAChD,EACNpD,KAAMve,EAAMue,KAAK,GACjBC,MAAOxe,EAAMwe,MAAM,GACnBo+D,KAAM58E,EAAM48E,KACZ53D,eAAgBhlB,EAAMglB,gBAAkB0L,EAAav3B,MAAM6rB,gBACxD0jI,EAAmBvvJ,OAAA,GAAA,CACtBi/I,uBAAwBp4I,EAAMo4I,yBAC/B,IAGGsW,EAAe/2I,EAAAA,UAAS,WAAA,OAC5ByvI,GAAa5wH,GAAAA,GAAA,CACXgjH,SAAS,EACTh5I,MAAOR,EAAM7G,MAAM,GAAK24I,GAAa9xI,EAAM7G,MAAM,GAAI+oB,EAAO/oB,OAAOwoB,cAAW,EAC9Epa,IAAKvH,EAAM7G,MAAM,GAAK24I,GAAa9xI,EAAM7G,MAAM,GAAI+oB,EAAO/oB,OAAOwoB,cAAW,EAC5Ey3H,YACGoV,GAAoBxuJ,EAAMuuJ,WAAW,GAClCzc,GAAa9xI,EAAMuuJ,WAAW,GAAIrsI,EAAO/oB,OAAOwoB,cAChD,EACN03H,UACGmV,GAAoBxuJ,EAAMuuJ,WAAW,GAClCzc,GAAa9xI,EAAMuuJ,WAAW,GAAIrsI,EAAO/oB,OAAOwoB,cAChD,EACNpD,KAAMve,EAAMue,KAAK,GACjBC,MAAOxe,EAAMwe,MAAM,GACnBo+D,KAAM58E,EAAM48E,KACZ53D,eAAgBhlB,EAAMglB,gBAAkB0L,EAAav3B,MAAM6rB,gBACxD0jI,EAAmBvvJ,OAAA,GAAA,CACtBi/I,uBAAwBp4I,EAAMo4I,yBAC/B,IAGGuQ,EAAoBhxI,EAAAA,UAAS,WAAA,MAAO,CACxCuK,OAAQA,EAAO/oB,MACfyjF,KAAM58E,EAAM48E,KACZ53D,eAAgBhlB,EAAMglB,gBAAkB0L,EAAav3B,MAAM6rB,eAE3DuiE,aAAcvnF,EAAMunF,aACpBwsD,iBAAkB/zI,EAAM+zI,iBACxBsH,gBAAiBr7I,EAAMq7I,gBACvBK,cAAe17I,EAAM07I,cACrBC,aAAc37I,EAAM27I,aACpBC,cAAe57I,EAAM47I,cACrB+B,YAAa39I,EAAM29I,YACnBC,iBAAkB59I,EAAM49I,iBACxBC,iBAAkB79I,EAAM69I,iBACxB0H,mBAAoBvlJ,EAAMulJ,mBAC1B,IAEK,OAAA,WAAA,OAAA3uH,EAAAA,YAAA,MAAA,CAAAC,MAEI,CACLmU,EAAe7xC,MAAAF,EAAAm4B,GAAAA,GAAAA,OAET4Z,EAAe7xC,yBAAyB,CAAC,OAAQ,SAASqe,SAASxX,EAAMo7I,oBAEjF7zG,QACS,SAAC/sC,GAAA,IAAAoyC,EAAA,OAAsB,QAAtBA,EAAM5sC,EAAMunC,eAAU,IAAAqF,OAAA,EAAhBA,EAAAn1C,KAAAuI,EAAgB,CAAExF,EAAAA,GAAG,GAAA,CAEpC,CAAC,MAAO,QAAQgd,SAASxX,EAAMo7I,kBAAgBxkH,EAAAO,YAAAmvH,GAAA,CAAAnL,QAEnCn7I,EAAMm7I,sBACAn7I,EAAM7G,MAAM6G,EAAM0kJ,aACjC3Q,iBAAkB/zI,EAAM+zI,iBAAAyH,cACTx7I,EAAMw7I,cACrBwK,eAAgBhmJ,EAAMgmJ,eAAA5K,iBACJp7I,EAAMo7I,kBAExB,MAAA,KAAAxkH,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACW4Z,EAAe7xC,MAC3B,qBAAA,CAAC6G,EAAM+zI,iBAsBNn9G,EAAAO,YAAAkuH,GAAA9gH,aAAA,CAAA/rC,IAAA,QAAAypJ,QAIWjiJ,EAAM0kJ,YAAc,MAAQ,QACrCnmI,KAAMve,EAAM0kJ,YAAc1kJ,EAAMue,KAAK,GAAKve,EAAMue,KAAK,SAC9Cve,EAAM0kJ,YAAc1kJ,EAAMwe,MAAM,GAAKxe,EAAMwe,MAAM,GAAA5I,KAClD5V,EAAM0kJ,YAAc1kJ,EAAM4V,KAAK,GAAK5V,EAAM4V,KAAK,GACrDzc,MAAO6G,EAAM7G,MACbmsJ,UAAWtlJ,EAAM0kJ,YAAcgK,EAAav1J,MAAQs1J,EAAet1J,OAC/DwvJ,EAAkBxvJ,OACxB,MAhCA,CAAAy9B,EAAAO,YAAAkuH,GAAA9gH,aAAA,CAAA/rC,IAAA,aAAAypJ,QAAA,QAAA1jI,KAIUve,EAAMue,KAAK,GACjBC,MAAOxe,EAAMwe,MAAM,QACbxe,EAAM4V,KAAK5V,EAAM0kJ,aACvBvrJ,MAAO6G,EAAM7G,MAAAmsJ,UACFmJ,EAAet1J,OACtBwvJ,EAAkBxvJ,OACxB,MAAAy9B,EAAAO,YAAAkuH,GAAA9gH,aAAA,CAAA/rC,IAAA,WAAAypJ,QAAA,MAAA1jI,KAIQve,EAAMue,KAAK,GACjBC,MAAOxe,EAAMwe,MAAM,QACbxe,EAAM4V,KAAK5V,EAAM0kJ,aACvBvrJ,MAAO6G,EAAM7G,MAAAmsJ,UACFoJ,EAAav1J,OACpBwvJ,EAAkBxvJ,OACxB,SAeL,CAAC,SAAU,SAASqe,SAASxX,EAAMo7I,kBAAgBxkH,EAAAA,YAAA0vH,GAAA,CAAAnL,QAEvCn7I,EAAMm7I,sBACAn7I,EAAM7G,MAAM6G,EAAM0kJ,aACjC3Q,iBAAkB/zI,EAAM+zI,iBAAAyH,cACTx7I,EAAMw7I,cACrBwK,eAAgBhmJ,EAAMgmJ,eAAA5K,iBACJp7I,EAAMo7I,wBAExB,OAGV,IC/MK,SAASuT,GACdC,EACAhkI,EACAE,EACA+jI,GAEA,IAAIlkI,EAAWC,EACTC,EAAYC,EAsCX,OArCc,IAAjB8jI,GACEjkI,EAAS,IAAMA,EAAS,KACtBkkI,EAAyBlkI,EAAA,GAAKA,EAAS,GAAK,GAG9CA,EAAS,GAAKA,EAAS,GACnBE,EAAU,IAAMA,EAAU,KAClBA,EAAA,GAAKA,EAAU,GAAK,EACT,KAAjBA,EAAU,KAEZA,EAAU,GAAK,EACfF,EAAW,CAACA,EAAS,GAAIA,EAAS,GAAK,OAQ5B,IAAjBikI,GACEjkI,EAAS,IAAMA,EAAS,KAEtBkkI,EAAyBlkI,EAAA,GAAKA,EAAS,GAAK,GAG9CA,EAAS,GAAKA,EAAS,GACnBE,EAAU,IAAMA,EAAU,KAClBA,EAAA,GAAKA,EAAU,GAAK,GACL,IAArBA,EAAU,KAEZA,EAAU,GAAK,GACfF,EAAW,CAACA,EAAS,GAAK,EAAGA,EAAS,QAMzC,CAAEA,SAAAA,EAAUE,UAAAA,EACrB,CCtBA,IAAAikI,GAAe15H,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP6K,EAAiB7Z,GAAe,qBAEhC49H,EfhBH,SAAkB/uJ,GACjB,IAAAgrC,EAAiB7Z,GAAe,qBAC9BT,EAAiBP,GAAU,cAA3BO,aACAk5H,EAAiBx9F,GAAc,CAAEw9F,aAAcC,KAA/CD,aACF/pH,EAAiBU,KAEjByuH,EAAe9+H,OAAI,GACnBiiE,EAAWjiE,EAAAA,MAEX++H,EAA2EjI,GAAchnJ,GAAvF7G,EAAO81J,EAAP91J,MAAOmvD,EAAA2mG,EAAA3mG,SAAU1yC,EAAMq5I,EAANr5I,KAAM4I,EAAAywI,EAAAzwI,MAAOD,IAAAA,KAAMm2H,EAAYua,EAAZva,WAAYuS,EAAAgI,EAAAhI,qBAElDxS,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZ16D,OAAQliB,EAAMkiB,OACduoG,UAAWzqH,EAAMyqH,UACjBspB,iBAAkB/zI,EAAM+zI,kBACzB,IAGGxsD,EAAer3D,OAAI,GACnB84H,EAAc94H,OAAI,GAClBw0H,EAAcx0H,MAAW,GACzBohE,EAAaphE,EAAIA,IAAA0iH,GAAW5yI,EAAM7G,MAAO,CAAE+oB,OAAQuyH,EAAUt7I,MAAM+oB,UACnE4kC,EAAawoC,KAGbi8D,EAAkB5zI,EAAAA,UAAS,WAAA,OAAA6e,GAAAA,GAC5Bx2B,CAAAA,EAAAA,EAAMurJ,iBAAA,GAAA,CACThnJ,KAAMvE,EAAMuE,KACZ2rB,IAAKiiE,EACLjE,WAAYluF,EAAMkuF,WAClBC,UAAWnuF,EAAMmuF,YAAcrnC,EAAW3tD,MAC1Cm3C,WAAY,WAAZ,OAAkBzQ,EAAe,aAAY,EAC7C0uD,SAAUznC,EAAW3tD,QAAU6G,EAAM8iG,WACrCptD,UAAW11C,EAAM01C,WAAahlB,EAAav3B,MAAMgxB,eACjDpC,YACE/nB,EAAM+nB,aAAgB2I,EAAav3B,MAAM4uB,YAAuD/nB,EAAM48E,MACxG8nE,YAAan9D,EAAapuF,MAAQurJ,EAAYvrJ,WAAQ,EACtDo3C,WAAY,WACV,OAAO1Q,EAAe,eAAiBjJ,EAAAA,YAAAgzH,EAAc,KAAA,KACvD,EACA/yH,MAAA59B,EAAAm4B,GAAAA,GAAAA,OACM4Z,EAAe7xC,MAA8B6vJ,wBAAAA,EAAY7vJ,OAE/DouC,QAAS,SAAAhF,GAAuB,IAApB4G,EAAA5G,EAAA4G,SACEu7G,EAAAvrJ,MAAqB,UAAbgwC,EAAuB,EAAI,CACjD,EACA0lD,QAAS,SAAAtlC,GAAGA,EAAA/uD,EACR24E,kBACFoU,EAAapuF,OAAQ,EACVmvD,SAAAA,EAAA,GAAI,CAAE+4F,WAAY,GAAI98F,QAAS,SAC5C,EACAqqC,OAAQ,SAACmE,EAAAlpC,GAAuF,IAAAwpC,EAAnE74F,EAAAqvD,EAAArvD,EAAG2uC,IAAAA,SACxB,QAAAkqD,EAAArzF,EAAA4uF,cAAA,IAAAyE,GAAAA,EAAA57F,KAAAuI,EAAS,CAAE7G,MAAO45F,EAAQkvD,QAASiF,GAAY/9G,GAAW3uC,EAAAA,GAClE,EACAw0F,QAAS,SAAC+D,EAAAl7B,GAAuF,IAAAs7B,EAAnE34F,EAAAq9D,EAAAr9D,EAAG2uC,IAAAA,SACzB,QAAAgqD,EAAAnzF,EAAAgvF,eAAA,IAAAmE,GAAAA,EAAA17F,KAAAuI,EAAU,CAAE7G,MAAO45F,EAAQkvD,QAASiF,GAAY/9G,GAAW3uC,EAAAA,IACrDkqJ,EAAAvrJ,MAAqB,UAAbgwC,EAAuB,EAAI,CACjD,EAEAmf,SAAU,SAACyqC,EAAA5uD,GAIT,GAJ6BA,EAAA3pC,IAAG2uC,SAChCmoD,EAAWn4F,MAAQ45F,EAGd4/C,GAAY5/C,EAAQ0hD,EAAUt7I,MAAM+oB,QAAzC,CACAwyH,EAAWv7I,MAAQ45F,EACnB,IAAMo2D,EAAyB,GACzBD,EAA0B,GAC1BE,EAAyB,GACxBr2D,EAAAziF,SAAQ,SAAC4N,GACNirI,EAAA/lJ,KAAK0uI,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ3D,QAC5C2qI,EAAA9lJ,KAAK0uI,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ1D,SAC9C4qI,EAAAhmJ,KAAK0uI,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQA,OAAOuyH,EAAUt7I,MAAMo6I,YAC9E,IACAh1H,EAAKplB,MAAQgwJ,EACb3qI,EAAMrlB,MAAQ+vJ,EACdtzI,EAAKzc,MAAQiwJ,CAZqC,CAapD,EACA7+D,QAAS,SAACwI,IACH4/C,GAAY5/C,EAAQ0hD,EAAUt7I,MAAM+oB,SAAYywH,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,WAE9FqlE,EAAapuF,OAAQ,EACjBw5I,GAAY5/C,EAAQ0hD,EAAUt7I,MAAM+oB,QACtComC,SAAAA,EACEsqF,GAAW7/C,EAAQ,CACjB7wE,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,UAC9BuoB,UAAU,IAEZ,CACEqO,WAAYtuD,EAAO/tF,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,WAC9DqiC,QAAS,UAGJouF,GAAYx5I,EAAMA,MAAOs7I,EAAUt7I,MAAM+oB,QACvCovE,EAAAn4F,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAM+oB,SAG1BovE,EAAWn4F,MAAQ,GAEvB,GAAA,IAIIgvE,EAAaxwD,EAAAA,UAAS,WAAA,IAAA0xI,EAAAC,EAAAC,EAAA,OAAA/yH,GAAAA,GAAA,CAC1Bm1C,iBAAiB,GACdzxD,GAAKla,EAAMmoE,WAAY,sBAAmB,CAAA,EAAA,CAC7CK,4BAAyB,UAANxoE,EAAMmoE,kBAAA,IAAAmhF,OAAA,EAANA,EAAkB9gF,yBAAqB,IAAA6gF,EAAAA,EAAA,CAAEryH,MAAO,QACnEsxC,iBAAkB,SAAAihF,EAACvpJ,EAAMmoE,+BAANohF,EAAkBjhF,iBAAkBl3C,GAAAA,OAAG4Z,EAAe7xC,MAAwB,sBACjG8vE,gBAAiB,SAAC12C,EAAkB+X,GAAiB,IAAAk/G,EAAAC,EAAAC,EAAAC,EACnD,IAAI7iG,EAAW3tD,MAAf,CASI,WANEqwJ,EAAAxpJ,EAAAmoE,kBAAA,IAAAqhF,GAA8BC,QAA9BA,EAAAD,EAAYvgF,uBAAZwgF,IAA8BA,GAA9BA,EAAAhyJ,KAAA+xJ,EAA8Bj3H,EAAS+X,GAGvCo/G,QAAAA,EAAA1pJ,EAAAmoE,kBAAAwhF,IAAAD,GAAoCC,QAApCA,EAAAD,EAAa,4BAAbC,IAAoCA,GAApCA,EAAAlyJ,KAAAiyJ,EAAoCn3H,EAAS+X,GAG3B,0BAApBA,EAAQia,QAIV,OAFA4tC,EAASh5F,MAAMgsD,MAAM,CAAEhc,SADN,CAAE,EAAG,QAAS,EAAG,UACQu7G,EAAYvrJ,cACtDouF,EAAapuF,OAAQ,GAIvBouF,EAAapuF,MAAQo5B,CAhBC,CAiBxB,GAAA,IAwCK,OApCPmP,QACEvoC,GACA,SAACA,GACMA,EAIAw5I,GAAYx5I,EAAOs7I,EAAUt7I,MAAM+oB,UAE7BovE,EAAAn4F,MAAQy5I,GAAWz5I,EAAO,CACnC+oB,OAAQuyH,EAAUt7I,MAAMsxH,UACxBqoB,aAAc2B,EAAUt7I,MAAM+oB,UAP9BovE,EAAWn4F,MAAQ,EASvB,GACA,CACE6xD,WAAW,IAKftpB,QACEgjH,GACA,SAACzpJ,GAAU,IAAAq3F,EAAAq4D,EACJqE,EAAa71J,MAIbouF,EAAapuF,gBAElBm5F,EAAAH,EAASh5F,8BAATm5F,EAAgBntC,aAAQ,IAAAwlG,GAAxBA,EAAAlzJ,KAAA66F,EAAwB,CAAEnpD,SADT,CAAE,EAAG,QAAS,EAAG,UACWluC,MAL3C+zJ,EAAa71J,OAAQ,CAMzB,GACA,CACE6xD,WAAW,IAIR,CACLzsC,KAAAA,EACAC,MAAAA,EACArlB,MAAAA,EACAyc,KAAAA,EACA07E,WAAAA,EACA/J,aAAAA,EACAgkE,gBAAAA,EACApjF,WAAAA,EACA6gF,YAAAA,EACAtE,YAAAA,EACAuC,qBAAAA,EACAvS,WAAAA,EACApsF,SAAAA,EAEJ,Ce1JQ4mG,CAASlvJ,GAbXsxF,EAAAy9D,EAAAz9D,WACA/J,EAAAwnE,EAAAxnE,aACAgkE,EAAAwD,EAAAxD,gBACApjF,EAAA4mF,EAAA5mF,WACAhvE,EAAA41J,EAAA51J,MACAolB,EAAAwwI,EAAAxwI,KACAC,EAAAuwI,EAAAvwI,MACA5I,EAAAm5I,EAAAn5I,KACA8+H,EAAAqa,EAAAra,WACAgQ,EAAAqK,EAAArK,YACAsE,EAAA+F,EAAA/F,YACA/B,EAAA8H,EAAA9H,qBACA3+F,EAAAymG,EAAAzmG,SAGIt2B,EAAWqY,KACXyc,EAAawoC,KAEbmlD,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZm3D,iBAAkB/zI,EAAM+zI,iBACxB7xH,OAAQliB,EAAMkiB,OACduoG,UAAWzqH,EAAMyqH,WAClB,IAIGxB,EAAa/4F,OAAI,GA0DvB,SAAS0tH,EAAiBt/H,GACxB0qI,EAAY7vJ,OAAQ,EACpB,IAAMoxJ,EAAYzyJ,EAAKw5F,EAAWn4F,OACxBoxJ,EAAA7F,EAAYvrJ,OAASy5I,GAAWt0H,EAAM,CAC9C4D,OAAQuyH,EAAUt7I,MAAM+oB,SAE1BovE,EAAWn4F,MAAQoxJ,CACrB,CAGA,SAAS1M,IACPmL,EAAY7vJ,OAAQ,EACpBm4F,EAAWn4F,MAAQu7I,EAAWv7I,KAChC,CAGA,SAASwkJ,EAAYr/H,EAAAirC,GAAuE,IAAAugG,EAAzDtvJ,EAAA+uD,EAAA/uD,EAClBsvJ,QAAf9pJ,EAAAA,EAAMu7I,cAANv7I,IAAe8pJ,GAAf9pJ,EAAAA,KAAAA,EAAese,EAAM,CAAE9jB,EAAAA,EAAGynJ,QAASyC,EAAYvrJ,MAAQ,MAAQ,UAE/D6vJ,EAAY7vJ,OAAQ,EACpB8vH,EAAW9vH,OAAQ,EAEnB,IAAMoxJ,EAAYzyJ,EAAKw5F,EAAWn4F,OAQlC,GAPUoxJ,EAAA7F,EAAYvrJ,OAASy5I,GAAWt0H,EAAM,CAC9C4D,OAAQuyH,EAAUt7I,MAAM+oB,SAE1BwyH,EAAWv7I,MAAQoxJ,EACnBj5D,EAAWn4F,MAAQoxJ,GAGfvqJ,EAAM+zI,iBAAV,CAGA,IAAMob,EAAgB5E,EAAUnqB,WAAU,SAACliH,GAAM,OAACA,IAAMy0H,GAAYz0H,EAAGu2H,EAAUt7I,MAAM+oB,WA4BvF,IAzBsB,IAAlBitI,GAA6C,IAArB5E,EAAU/zJ,UAGjCywJ,EAAqB9tJ,OACtB24I,GAAayY,EAAU,GAAI9V,EAAUt7I,MAAM+oB,QAAQZ,QAAQwwH,GAAayY,EAAU,GAAI9V,EAAUt7I,MAAM+oB,UAE5FqoI,EAAA7F,EAAYvrJ,MAAQ,EAAI,GAAK,GACvCu7I,EAAWv7I,MAAQoxJ,EACnBj5D,EAAWn4F,MAAQoxJ,GAEnBjiG,SAAAA,EACEsqF,GAAW2X,EAAW,CACpBroI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,UAC9BuoB,UAAU,IAEZ,CACEqO,WAAYkJ,EAAUvlJ,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,WACjEqiC,QAAS,UAOZ0iG,EAAqB9tJ,OAAUurJ,EAAYvrJ,MAM9CouF,EAAapuF,OAAQ,MANgC,CACrD,IAAIi2J,EAAYD,GACE,IAAdC,IAA8BA,EAAA1K,EAAYvrJ,MAAQ,EAAI,GAC1DurJ,EAAYvrJ,MAAQi2J,EACCnI,EAAA9tJ,QAAUoxJ,EAAU,EAC3C,CApC4B,CAuC9B,CAGA,SAAS3O,EAAc/xF,GAA4E,IAA1EtF,EAASsF,EAATtF,QACjBqqG,EAA2B,UADD/kG,EAAAo4F,QACW,EAAI,EAGzCkI,EADgB,CAAE7rI,KAAM,EAAGkK,KAAM,EAAGhK,MAAO,GAAIyL,QAAS,GAAI1L,KAAM,KACvCve,EAAM48E,OAAS,EAC1ChjE,EAAU,IAAIrb,KAAKggB,EAAKplB,MAAMy1J,GAAepwI,EAAMrlB,MAAMy1J,IAE3DzxI,EAAO,KACK,SAAZonC,EACKpnC,EAAAs6H,GAAc79H,EAASuwI,GACT,YAAZ5lG,EACTpnC,EAAO,IAAI5e,KACU,SAAZgmD,IACFpnC,EAAAu6H,GAAS99H,EAASuwI,IAG3B,IAAIx/H,EAAW7yB,EAAIymB,EAAKplB,OACfwxB,EAAAikI,GAAgBzxI,EAAK+C,cAC9B,IAAI2K,EAAY/yB,EAAI0mB,EAAMrlB,OAChB0xB,EAAA+jI,GAAgBzxI,EAAKiD,WACzB,IAGAivI,EAAgBV,GAAeC,EAAcjkI,EAAUE,EAHtC,CAAC,OAAQ,UAAW,SAASrT,SAASxX,EAAM48E,OAInEjyD,EAAW0kI,EAAc1kI,SACzBE,EAAYwkI,EAAcxkI,UAE1BtM,EAAKplB,MAAQwxB,EACbnM,EAAMrlB,MAAQ0xB,CAChB,CAGA,SAAS06H,EAAmB9mH,GACpB,IAAAy+G,EAAsD5C,GAAe77G,GAAnE+3G,IAAAA,MAAOG,EAASuG,EAATvG,QAASC,EAAAsG,EAAAtG,QAASrB,IAAAA,aAAcnzH,EAAS86H,EAAT96H,SAEzCktI,EAAiBx3J,EAAKw5F,EAAWn4F,OACjCo2J,EAAoBD,EAAe5K,EAAYvrJ,OAC/Cq2J,EAAe7d,GAAM4d,EAAmB9a,EAAUt7I,MAAM+oB,QAAQhB,UAElEywH,GAAM4d,EAAmB9a,EAAUt7I,MAAM+oB,QADzCyvH,KAAQpzH,KAAKA,EAAKplB,MAAMurJ,EAAYvrJ,QAAQqlB,MAAMA,EAAMrlB,MAAMurJ,EAAYvrJ,QAG1EgkJ,EAAY3G,EACZ,MAAM3+I,KAAKuqB,IAA2B,KAAd+6H,IAA+BA,GAAA,IACvD,MAAMtlJ,KAAKuqB,IAAa+6H,EAAY,KAAiBA,GAAA,IAEzD,IAAMkN,EAAWmF,EAAYnP,KAAKlD,GAAWmD,OAAO3J,GAAS4J,OAAO3J,GAASoL,YAAYzM,GAAc5zH,SACvG2tI,EAAe5K,EAAYvrJ,OAASkxJ,EAEpC,IAAMoF,EAAW33J,EAAI8d,EAAKzc,OAC1Bs2J,EAAS/K,EAAYvrJ,OAASslC,EAC9B7oB,EAAKzc,MAAQs2J,EAEbxmC,EAAW9vH,OAAQ,EACRm4F,EAAAn4F,MAAQy5I,GAAW0c,EAAgB,CAC5CptI,OAAQuyH,EAAUt7I,MAAM+oB,SAEfwyH,EAAAv7I,MAAQy5I,GAAW0c,EAAgB,CAC5CptI,OAAQuyH,EAAUt7I,MAAM+oB,QAE5B,CAGS,SAAA8jI,EAAAnuF,GAAyC,IAevCyyF,EAfe9vJ,EAAAq9D,EAAAr9D,EAClB+vJ,EAAYzyJ,EAAKw5F,EAAWn4F,OAE5Bg2J,EAAgB5E,EAAUnqB,WAAU,SAACliH,GAAM,OAACA,IAAMy0H,GAAYz0H,EAAGu2H,EAAUt7I,MAAM+oB,YAGjE,IAAlBitI,GAA6C,IAArB5E,EAAU/zJ,UAGjCywJ,EAAqB9tJ,OACtB24I,GAAayY,EAAU,GAAI9V,EAAUt7I,MAAM+oB,QAAQZ,QAAQwwH,GAAayY,EAAU,GAAI9V,EAAUt7I,MAAM+oB,UAE5FqoI,EAAA7F,EAAYvrJ,MAAQ,EAAI,GAAK,GACvCu7I,EAAWv7I,MAAQoxJ,EACnBj5D,EAAWn4F,MAAQoxJ,IAEnBvqJ,SAAmBsqJ,UAAnBtqJ,EAAOs7I,qBAAYgP,GAAnBtqJ,EAAAA,KAAAA,EAAmB,CACjBse,KAAMisI,EAAUvlJ,KAAI,SAACkZ,UAAMyzH,GAAMzzH,GAAGyD,YACpCnnB,EAAAA,EACAynJ,QAASyC,EAAYvrJ,MAAQ,MAAQ,UAEvCmvD,SAAAA,EACEsqF,GAAW2X,EAAW,CACpBroI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,UAC9BuoB,UAAU,IAEZ,CACEqO,WAAYkJ,EAAUvlJ,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,WACjEqiC,QAAS,cAOjB,GAAK0iG,EAAqB9tJ,OAAUurJ,EAAYvrJ,MAKhB,IAArBoxJ,EAAU/zJ,SACnB+wF,EAAapuF,OAAQ,OANgC,CACrD,IAAIi2J,EAAYD,GACE,IAAdC,IAA8BA,EAAA1K,EAAYvrJ,MAAQ,EAAI,GAC1DurJ,EAAYvrJ,MAAQi2J,EACCnI,EAAA9tJ,QAAUoxJ,EAAU,EAC3C,CAGF,CAGS,SAAA/O,EAAc4K,EAAa97G,GAClC,IAMOolH,EANHxK,EAAckB,GACdvpJ,EAAWupJ,KACblB,EAAckB,KAEXruJ,EAAQmtJ,KAGX58F,SAAAA,EACEsqF,GAAWsS,EAAa,CACtBhjI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB4wH,aAAc2B,EAAUt7I,MAAMsxH,UAC9BuoB,UAAU,IAEZ,CACEqO,WAAY6D,EAAYlgJ,KAAI,SAAC0Z,GAAA,OAAMozH,GAAapzH,EAAG+1H,EAAUt7I,MAAM+oB,WACnEqiC,QAAS,WAGbgjC,EAAapuF,OAAQ,UACrB6G,EAAAA,EAAMw7I,qBAANx7I,OAAAA,EAAAA,KAAAA,EAAsBsqC,IAddjF,QAAAnT,MAAA,WAAAd,OAAiBg1H,wDAgB7B,CAEA,SAASzK,EAAagU,EAAAxrH,GAAmE,IACnFyqH,EAA2B,UADQzqH,EAAA89G,QACE,EAAI,EACzCjiJ,EAAM+zI,mBAAkB6a,EAAelK,EAAYvrJ,OAEvD,IAAIwxB,EAAW7yB,EAAIymB,EAAKplB,OACpB0xB,EAAY/yB,EAAI0mB,EAAMrlB,OAE1BwxB,EAASikI,GAAgBe,EACnB,IAAAd,EAAiB,CAAC,OAAQ,UAAW,SAASr3I,SAASxX,EAAM48E,MAG7DyyE,EAAgBV,GAAeC,EAAcjkI,EAAUE,EAAWgkI,GACxElkI,EAAW0kI,EAAc1kI,SACzBE,EAAYwkI,EAAcxkI,UAE1BtM,EAAKplB,MAAQwxB,EACRkkI,IAAgBrwI,EAAMrlB,MAAQ0xB,EACrC,CAEA,SAAS6wH,EAAciU,EAAA57B,GAAmE,IACpF66B,EAA2B,UADS76B,EAAAkuB,QACC,EAAI,EACzCjiJ,EAAM+zI,mBAAkB6a,EAAelK,EAAYvrJ,OAEvD,IAAM0xB,EAAY/yB,EAAI0mB,EAAMrlB,OAG5B,GAFA0xB,EAAU+jI,GAAgBe,EAEtBpxI,EAAKplB,MAAM,KAAOolB,EAAKplB,MAAM,GAAI,CAKN,IAAAy2J,EAAAC,EAYAC,EAAAC,EAhB7B,GAAqB,IAAjBnB,EAEE,GAAA/jI,EAAU,IAAMA,EAAU,GAExB,GADMA,EAAA,GAAKA,EAAU,GAAK,EACT,KAAjBA,EAAU,GAEZA,EAAU,GAAK,EACVtM,EAAAplB,MAAQ,CAAMy2J,QAANA,EAACrxI,EAAKplB,aAALy2J,IAAKA,OAALA,EAAAA,EAAa,IAASC,QAALA,EAAAtxI,EAAKplB,aAAL02J,IAAKA,OAALA,EAAAA,EAAa,IAAK,GAIvD,GAAqB,IAAjBjB,EAGE,GADJ/jI,EAAU,GAAKxqB,KAAK0U,IAAI8V,EAAU,GAAIA,EAAU,IAC5CA,EAAU,IAAMA,EAAU,GAExB,GADJA,EAAU,IAAM,GACS,IAArBA,EAAU,GAEZA,EAAU,GAAK,GACVtM,EAAAplB,MAAQ,EAAM,QAAL22J,EAAAvxI,EAAKplB,aAAA,IAAA22J,OAAA,EAALA,EAAa,IAAK,UAAGC,EAAAxxI,EAAKplB,aAAL42J,WAAAA,EAAAA,EAAa,GAIxD,CAEAvxI,EAAMrlB,MAAQ0xB,CAChB,CA1TM6W,QAAA6lD,GAAc,SAACh1D,GAEnB,GAAIA,EAcE,GAbJ02F,EAAW9vH,OAAQ,EACnBu7I,EAAWv7I,MAAQy5I,GAAWz5I,EAAMA,OAAS,GAAI,CAC/C+oB,OAAQuyH,EAAUt7I,MAAMsxH,UACxBqoB,aAAc2B,EAAUt7I,MAAM+oB,SAEhCtM,EAAKzc,MAAQu6I,GACXv6I,EAAMA,OAAS,CAACw4I,KAAQzvH,OAAOuyH,EAAUt7I,MAAMo6I,YAAa5B,KAAQzvH,OAAOuyH,EAAUt7I,MAAMo6I,aAC3FkB,EAAUt7I,MAAM+oB,OAChBuyH,EAAUt7I,MAAMo6I,WAChBvzI,EAAM2zI,aAIHx6I,EAAMA,MAAM3C,UASiB,IAAvB2C,EAAMA,MAAM3C,QAAiBwJ,EAAM+zI,iBAa5Cx1H,EAAKplB,MAAQA,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAc4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ3D,UAC1D,IAAtBA,EAAKplB,MAAM3C,SAAc+nB,EAAKplB,MAAQ,CAAColB,EAAKplB,MAAM,GAAIolB,EAAKplB,MAAM,KAErEqlB,EAAMrlB,MAAQA,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAc4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ1D,WAC1D,IAAvBA,EAAMrlB,MAAM3C,SAAcgoB,EAAMrlB,MAAQ,CAACqlB,EAAMrlB,MAAM,GAAIkH,KAAK0U,IAAIyJ,EAAMrlB,MAAM,GAAK,EAAG,UAjB5B,CAE9D,IAAM0xB,EAAY1xB,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAc4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ1D,WACzFD,EAAKplB,MAAQA,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAc4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAMsxH,WAAWlsG,UACnFA,EAAKplB,MAAM,KAAOolB,EAAKplB,MAAM,IAAM0xB,EAAU,KAAOA,EAAU,KAC/C,KAAjBA,EAAU,GAAaA,EAAU,IAAM,EAAMA,EAAU,IAAM,GAE/DrM,EAAMrlB,MAAQ0xB,EAEM,UAAf7qB,EAAM48E,MAAmC,YAAf58E,EAAM48E,MAAuBr+D,EAAKplB,MAAM,KAAOolB,EAAKplB,MAAM,KAClFolB,EAAAplB,MAAQ,CAAColB,EAAKplB,MAAM,GAAIolB,EAAKplB,MAAM,GAAK,GAEjD,KArByB,CACvB,IAAA62J,EAAmDhc,GAAkB,CACnE76I,MAAOA,EAAMA,MACbyjF,KAAM58E,EAAM48E,KACZ16D,OAAQuyH,EAAUt7I,MAAM+oB,OACxB6xH,iBAAkB/zI,EAAM+zI,mBAJZkc,EAAAD,EAANzxI,KAA0B2xI,EAAAF,EAAPxxI,MAM3BD,EAAKplB,MAAQ82J,EACbzxI,EAAMrlB,MAAQ+2J,CAChB,MAoBAxL,EAAYvrJ,MAAQ,EACpB6vJ,EAAY7vJ,OAAQ,EACpB8tJ,EAAqB9tJ,OAAQ,EAClBm4F,EAAAn4F,MAAQy5I,GAAWz5I,EAAMA,MAAO,CACzC+oB,OAAQuyH,EAAUt7I,MAAMsxH,UACxBqoB,aAAc2B,EAAUt7I,MAAM+oB,QAGpC,IAuQM,IAAAuiI,EAAa9sI,EAAAA,UAAS,WAAA,MAAO,CACjC42I,WAAavF,EAAY7vJ,MAAQm4F,EAAWn4F,MAAQ,GACpDA,MAAQ8vH,EAAW9vH,MAAQu7I,EAAWv7I,MAAQA,EAAMA,MACpD8tJ,qBAAsBA,EAAqB9tJ,MAC3CurJ,YAAaA,EAAYvrJ,MACzBolB,KAAMA,EAAKplB,MACXqlB,MAAOA,EAAMrlB,MACb+oB,OAAQuyH,EAAUt7I,MAAM+oB,OACxB06D,KAAM58E,EAAM48E,KACZu+D,QAASn7I,EAAMm7I,QACfvlI,KAAMA,EAAKzc,MACX4+I,YAAa/3I,EAAM+3I,YACnB/yH,eAAgBhlB,EAAMglB,eACtBq2H,gBAAiBr7I,EAAMq7I,gBACvBtH,iBAAkB/zI,EAAM+zI,iBACxBqH,iBAAkBp7I,EAAMo7I,iBACxB7zD,aAAcA,EAAapuF,MAC3BmyJ,kBAAmBtrJ,EAAMsrJ,kBACzBlT,uBAAwBp4I,EAAMo4I,uBAC9BuF,YAAAA,EACAC,iBAAAA,EACAC,iBAAAA,EACAjC,cAAAA,EACAoK,eAAAA,EACAxK,cAAAA,EACAG,aAAAA,EACAD,cAAAA,EACA6J,mBAAAA,EACA,IAEK,OAAA,WAAA,OAAA3uH,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,OACzBy9B,CAAAA,EAAAO,YAAAg5H,GAAA,CAAA5hE,SACYznC,EAAW3tD,eACX64B,EAAS74B,YACZ6G,EAAMy5C,aACLz5C,EAAMquD,YACRruD,EAAM2uF,MAAQxuD,EAAMwuD,KAAA2C,WACdA,EAAWn4F,MAAAgvE,WACXA,EAAWhvE,MAAAoyJ,gBACNA,EAAgBpyJ,MAAAouF,aACnBA,EAAapuF,MAAA0kF,MACpB,WAAA,OAAAjnD,EAAAO,YAAAm3H,GAAuB7J,EAAWtrJ,MAAA,KAAA,GAC3C,QAGN,IC/Zai3J,GAAA,CAEbzc,YAAa,CACX73I,KAAMnF,MACNwsB,QAAS,WAAA,MAAkD,CAAC,WAAY,WAAU,GAGpFw6H,YAAa7jJ,SAEbwuD,SAAUxuD,SAEVwhJ,UAAWxhJ,SAEX4hJ,cAAe5hJ,SAEf0uJ,aAAc1uJ,SAEd0hJ,cAAe1hJ,SAEf+wJ,aAAc/wJ,SAEd6hJ,aAAc7hJ,yOCThB,IAAAu2J,GAAej7H,kBAAgB,CAC7Bx9B,KAAM,wBACNoI,uWAAOw2B,CAAA,CACLr9B,MAAOkyJ,GAAqBlyJ,MAC5BmN,aAAc+kJ,GAAqB/kJ,aACnC0+D,WAAYqmF,GAAqBrmF,WACjChzC,SAAUq5H,GAAqBr5H,SAC/B+lH,YAAasT,GAAqBtT,YAClChE,iBAAkBsX,GAAqBtX,iBACvC/uH,eAAgBqmI,GAAqBrmI,eACrC9C,OAAQmpI,GAAqBnpI,OAC7B06D,KAAMyuE,GAAqBzuE,KAC3Bu+D,QAASkQ,GAAqBlQ,QAC9BC,iBAAkBiQ,GAAqBjQ,iBACvCC,gBAAiBgQ,GAAqBhQ,gBACtCiQ,kBAAmBD,GAAqBC,mBACrC8E,IAGL/6H,MAAAA,SAAMr1B,GACE,IAAAivJ,EAA2EjI,GAAchnJ,GAAvF7G,EAAO81J,EAAP91J,MAAOolB,EAAA0wI,EAAA1wI,KAAMC,EAAOywI,EAAPzwI,MAAO5I,EAAAq5I,EAAAr5I,KAAM8+H,IAAAA,WAAYuS,EAAsBgI,EAAtBhI,qBAAsB3+F,EAAA2mG,EAAA3mG,SAE9DmsF,EAAY98H,EAAAA,UAAS,WAAA,OACzBk8H,GAAiB,CACfj3D,KAAM58E,EAAM48E,KACZm3D,iBAAkB/zI,EAAM+zI,iBACxB7xH,OAAQliB,EAAMkiB,QACf,IAIG+mG,EAAa/4F,OAAI,GACjB84H,EAAc94H,OAAI,GAClBq+H,EAAar+H,MAAI,IACjBw0H,EAAc/sI,EAAAA,UAAS,WAAA,OAAOsvI,EAAqB9tJ,MAAQ,EAAI,KAmBrE,SAASykJ,EAAiBt/H,GACxB0qI,EAAY7vJ,OAAQ,EACpB,IAAMoxJ,EAAYzyJ,EAAKy2J,EAAWp1J,OACxBoxJ,EAAA7F,EAAYvrJ,OAASy5I,GAAWt0H,EAAM,CAC9C4D,OAAQuyH,EAAUt7I,MAAM+oB,SAE1BqsI,EAAWp1J,MAAQoxJ,CACrB,CAGA,SAAS1M,IACPmL,EAAY7vJ,OAAQ,EACpBo1J,EAAWp1J,MAAQu7I,EAAWv7I,KAChC,CAGA,SAASwkJ,EAAYr/H,EAAAikB,GAAsC,IAAAmjH,EAAxBlrJ,EAAA+nC,EAAA/nC,EACb,QAApBkrJ,EAAA1lJ,EAAM29I,mBAAc,IAAA+H,GAApBA,EAAAjuJ,KAAAuI,EAAoB,CAClBxF,EAAAA,EACAynJ,QAASyC,EAAYvrJ,MAAQ,MAAQ,QACrCmlB,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,UAAMyzH,GAAMzzH,GAAGyD,QAAQ,MAGhDqnI,EAAY7vJ,OAAQ,EACpB8vH,EAAW9vH,OAAQ,EAEnB,IAAMoxJ,EAAYzyJ,EAAK48I,EAAWv7I,OACxBoxJ,EAAA7F,EAAYvrJ,OAASy5I,GAAWt0H,EAAM,CAC9C4D,OAAQuyH,EAAUt7I,MAAM+oB,SAE1BwyH,EAAWv7I,MAAQoxJ,EAGfvqJ,EAAM+zI,mBAGe,IAArBwW,EAAU/zJ,QAAgBywJ,EAAqB9tJ,OACjDmvD,SAAAA,EACEsqF,GAAW2X,EAAW,CACpBroI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB8wH,UAAU,IAEZ,CACEqO,WAAYkJ,EAAUvlJ,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,WACjEqiC,QAAS,SAGb0iG,EAAqB9tJ,OAAQ,GAE7B8tJ,EAAqB9tJ,OAAQ,EAEjC,CAGA,SAASyiJ,EAAcryF,GAMpB,IALDhF,EAAAgF,EAAAhF,QACA09F,EAAA14F,EAAA04F,QAKM2M,EAA2B,UAAZ3M,EAAsB,EAAI,EAEzC8I,EAAa,CACjBntG,KAAM,iBACNzgC,KAAM,cAGFgtI,EADgB,CAAE7rI,KAAM,EAAGkK,KAAM,EAAGhK,MAAO,GAAIyL,QAAS,GAAI1L,KAAM,KACvCve,EAAM48E,OAAS,EAC1ChjE,EAAU,IAAIrb,KAAKggB,EAAKplB,MAAMy1J,GAAepwI,EAAMrlB,MAAMy1J,IAE3DzxI,EAAO,KACK,SAAZonC,EACKpnC,EAAAs6H,GAAc79H,EAASuwI,GACT,YAAZ5lG,EACTpnC,EAAO,IAAI5e,KACU,SAAZgmD,IACFpnC,EAAAu6H,GAAS99H,EAASuwI,IAE3B,IAAIx/H,EAAW7yB,EAAIymB,EAAKplB,OACfwxB,EAAAikI,GAAgBzxI,EAAK+C,cAC9B,IAAI2K,EAAY/yB,EAAI0mB,EAAMrlB,OAChB0xB,EAAA+jI,GAAgBzxI,EAAKiD,WACzB,IAO6Cy8H,EAQEF,EAf/CkS,EAAiB,CAAC,OAAQ,UAAW,SAASr3I,SAASxX,EAAM48E,MAG7DyyE,EAAgBV,GAAeC,EAAcjkI,EAAUE,EAAWgkI,IACxElkI,EAAW0kI,EAAc1kI,SACzBE,EAAYwkI,EAAcxkI,UAEtBtM,EAAKplB,MAAMo9C,MAAK,SAAC34B,GAAA,OAAO+M,EAASnT,SAASoG,EAAE,OACzB,QAArBi/H,EAAA78I,EAAM27I,oBAAe,IAAAkB,GAArBA,EAAAplJ,KAAAuI,EAAqB,CACnBiiJ,QAAAA,EACA1jI,KAAMoM,EAASikI,GACftwI,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,UAAMyzH,GAAMzzH,GAAGyD,YACtC4iC,QAAqB,YAAZA,EAAwB,QAAAnzB,QAAAA,OAAmB25H,EAAWxmG,OAG/D/lC,EAAMrlB,MAAMo9C,MAAK,SAACt4B,GAAA,OAAO4M,EAAUrT,SAASyG,EAAE,MAC1B,QAAtB0+H,EAAA38I,EAAM07I,qBAAgB,IAAAiB,GAAtBA,EAAAllJ,KAAAuI,EAAsB,CACpBiiJ,QAAAA,EACAzjI,MAAOqM,EAAU+jI,GACjBtwI,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,UAAMyzH,GAAMzzH,GAAGyD,YACtC4iC,QAAqB,YAAZA,EAAwB,QAAAnzB,SAAAA,OAAoB25H,EAAWxmG,OAIpEhmC,EAAKplB,MAAQwxB,EACbnM,EAAMrlB,MAAQ0xB,CAChB,CAGA,SAAS06H,EAAmB9mH,GAAa,IAAAusH,EACjC9N,EAAsD5C,GAAe77G,GAAnE+3G,IAAAA,MAAOG,EAASuG,EAATvG,QAASC,EAAAsG,EAAAtG,QAASrB,IAAAA,aAAcnzH,EAAS86H,EAAT96H,SACzCktI,EAAiBx3J,EAAK48I,EAAWv7I,OAEjCo2J,EAAoB7a,EAAWv7I,MAAMurJ,EAAYvrJ,OACjDq2J,EAAe7d,GAAM4d,EAAmB9a,EAAUt7I,MAAM+oB,QAAQhB,UAElEywH,GAAM4d,EAAmB9a,EAAUt7I,MAAM+oB,QADzCyvH,KAAQpzH,KAAKA,EAAKplB,MAAMurJ,EAAYvrJ,QAAQqlB,MAAMA,EAAMrlB,MAAMurJ,EAAYvrJ,QAG1EgkJ,EAAY3G,EACZ,MAAM3+I,KAAKuqB,IAA2B,KAAd+6H,IAA+BA,GAAA,IACvD,MAAMtlJ,KAAKuqB,IAAa+6H,EAAY,KAAiBA,GAAA,IAEzD,IAAMkN,EAAWmF,EAAYnP,KAAKlD,GAAWmD,OAAO3J,GAAS4J,OAAO3J,GAASoL,YAAYzM,GAAc5zH,SACvG2tI,EAAe5K,EAAYvrJ,OAASkxJ,EAEpC,IAAMoF,EAAW33J,EAAI8d,EAAKzc,OAC1Bs2J,EAAS/K,EAAYvrJ,OAASslC,EAC9B7oB,EAAKzc,MAAQs2J,EAEbxmC,EAAW9vH,OAAQ,EACRu7I,EAAAv7I,MAAQy5I,GAAW0c,EAAgB,CAC5CptI,OAAQuyH,EAAUt7I,MAAM+oB,SAGL,QAArB8oI,EAAAhrJ,EAAM6qJ,oBAAe,IAAAG,GAArBA,EAAAvzJ,KAAAuI,EAAqB,CACnB4V,KAAM6oB,EACNngB,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQP,YACrEsgI,QAASyC,EAAYvrJ,MAAQ,MAAQ,QACrCorD,QAAS,aAEb,CAGS,SAAAyhG,EAAAn8F,GAAyC,IAAAohG,EAAxBzwJ,EAAAqvD,EAAArvD,EAClB+vJ,EAAYzyJ,EAAK48I,EAAWv7I,OAGT,IAArBoxJ,EAAU/zJ,QAAgBywJ,EAAqB9tJ,OACjDmvD,SAAAA,EACEsqF,GAAW2X,EAAW,CACpBroI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB8wH,UAAU,IAEZ,CACEqO,WAAYkJ,EAAUvlJ,KAAI,SAACkZ,GAAA,OAAM4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,WACjEqiC,QAAS,YAGbhmC,EAAKplB,MAAQoxJ,EAAUvlJ,KAAI,SAACkZ,GAAM,OAAAyzH,GAAMzzH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ3D,UACnEC,EAAMrlB,MAAQoxJ,EAAUvlJ,KAAI,SAACkZ,GAAM,OAAAyzH,GAAMzzH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ1D,WACpEyoI,EAAqB9tJ,OAAQ,GAE7B8tJ,EAAqB9tJ,OAAQ,EAGb,QAAlB8xJ,EAAAjrJ,EAAMs7I,iBAAY,IAAA2P,GAAlBA,EAAAxzJ,KAAAuI,EAAkB,CAAEse,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,GAAM,OAAAyzH,GAAMzzH,GAAGyD,YAAWnnB,EAAAA,GACvE,CAGS,SAAAghJ,EAAc4K,EAAa97G,GAClC,IAMO67G,EANHjB,EAAckB,GACdvpJ,EAAWupJ,KACblB,EAAckB,KAEXruJ,EAAQmtJ,KAGX58F,SAAAA,EACEsqF,GAAWsS,EAAa,CACtBhjI,OAAQuyH,EAAUt7I,MAAM+oB,OACxB8wH,UAAU,IAEZ,CACEqO,WAAY6D,EAAYlgJ,KAAI,SAAC0Z,GAAA,OAAMozH,GAAapzH,EAAG+1H,EAAUt7I,MAAM+oB,WACnEqiC,QAAS,mBAGb4hG,EAAAnmJ,EAAMw7I,qBAAN2K,OAAAA,EAAA1uJ,KAAAuI,EAAsBsqC,IAZdjF,QAAAnT,MAAA,WAAAd,OAAiBg1H,wDAc7B,CAEA,SAASzK,EAAagU,EAAA93F,GAAmE,IAAAqzF,EAAhDjJ,EAAApqF,EAAAoqF,QACnC2M,EAA2B,UAAZ3M,EAAsB,EAAI,EACzCjiJ,EAAM+zI,mBAAkB6a,EAAelK,EAAYvrJ,OAEvD,IAAIwxB,EAAW7yB,EAAIymB,EAAKplB,OACxBwxB,EAASikI,GAAgBe,EACzB,IAAI9kI,EAAY/yB,EAAI0mB,EAAMrlB,OAEpB01J,EAAiB,CAAC,OAAQ,UAAW,SAASr3I,SAASxX,EAAM48E,MAG7DyyE,EAAgBV,GAAeC,EAAcjkI,EAAUE,EAAWgkI,GACxElkI,EAAW0kI,EAAc1kI,SACzBE,EAAYwkI,EAAcxkI,UAE1BtM,EAAKplB,MAAQwxB,EACRkkI,IAAgBrwI,EAAMrlB,MAAQ0xB,GAEd,QAArBqgI,EAAAlrJ,EAAM27I,oBAAe,IAAAuP,GAArBA,EAAAzzJ,KAAAuI,EAAqB,CACnBiiJ,QAAAA,EACA1jI,KAAMoM,EAASikI,GACftwI,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,UAAMyzH,GAAMzzH,GAAGyD,YACtC4iC,QAAS,eAEb,CAEA,SAASm3F,EAAciU,EAAAxrH,GAAmE,IAAAgnH,EAAhDlJ,EAAA99G,EAAA89G,QACpC2M,EAA2B,UAAZ3M,EAAsB,EAAI,EACzCjiJ,EAAM+zI,mBAAkB6a,EAAelK,EAAYvrJ,OAEvD,IAAM0xB,EAAY/yB,EAAI0mB,EAAMrlB,OAG5B,GAFA0xB,EAAU+jI,GAAgBe,EAEtBpxI,EAAKplB,MAAM,KAAOolB,EAAKplB,MAAM,GAAI,CAKN,IAAAy2J,EAAAC,EAYAC,EAAAC,EAhB7B,GAAqB,IAAjBnB,EAEE,GAAA/jI,EAAU,IAAMA,EAAU,GAExB,GADMA,EAAA,GAAKA,EAAU,GAAK,EACT,KAAjBA,EAAU,GAEZA,EAAU,GAAK,EACVtM,EAAAplB,MAAQ,CAAMy2J,QAANA,EAACrxI,EAAKplB,aAALy2J,IAAKA,OAALA,EAAAA,EAAa,IAASC,QAALA,EAAAtxI,EAAKplB,aAAL02J,IAAKA,OAALA,EAAAA,EAAa,IAAK,GAIvD,GAAqB,IAAjBjB,EAGE,GADJ/jI,EAAU,GAAKxqB,KAAK0U,IAAI8V,EAAU,GAAIA,EAAU,IAC5CA,EAAU,IAAMA,EAAU,GAExB,GADJA,EAAU,IAAM,GACS,IAArBA,EAAU,GAEZA,EAAU,GAAK,GACVtM,EAAAplB,MAAQ,EAAM,QAAL22J,EAAAvxI,EAAKplB,aAAA,IAAA22J,OAAA,EAALA,EAAa,IAAK,UAAGC,EAAAxxI,EAAKplB,aAAL42J,WAAAA,EAAAA,EAAa,GAIxD,CAEAvxI,EAAMrlB,MAAQ0xB,EAEQ,QAAtBsgI,EAAAnrJ,EAAM07I,qBAAgB,IAAAyP,GAAtBA,EAAA1zJ,KAAAuI,EAAsB,CACpBiiJ,QAAAA,EACAzjI,MAAOqM,EAAU+jI,GACjBtwI,KAAMnlB,EAAMA,MAAM6L,KAAI,SAACkZ,UAAMyzH,GAAMzzH,GAAGyD,YACtC4iC,QAAS,gBAEb,CAtRAhvB,EAAAA,WAAU,WACR,GAA2B,IAAvBp8B,EAAMA,MAAM3C,SAAiBwJ,EAAM+zI,iBAAkB,CAEvD,IAAMlpH,EAAY1xB,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAc4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAM+oB,QAAQ1D,WACzFD,EAAKplB,MAAQA,EAAMA,MAAM6L,KAAI,SAACkZ,GAAA,OAAc4zH,GAAa5zH,EAAGu2H,EAAUt7I,MAAMsxH,WAAWlsG,UACnFA,EAAKplB,MAAM,KAAOolB,EAAKplB,MAAM,IAAM0xB,EAAU,KAAOA,EAAU,KAC/C,KAAjBA,EAAU,GAAaA,EAAU,IAAM,EAAMA,EAAU,IAAM,GAE/DrM,EAAMrlB,MAAQ0xB,EAEV,CAAC,QAAS,WAAWrT,SAASxX,EAAM48E,OAASr+D,EAAKplB,MAAM,KAAOolB,EAAKplB,MAAM,KACvEolB,EAAAplB,MAAQ,CAAColB,EAAKplB,MAAM,GAAIolB,EAAKplB,MAAM,GAAK,GAEjD,CACF,IA0QM,IAAAsrJ,EAAa9sI,EAAAA,UAAS,WAAA,MAAO,CACjC42I,WAAavF,EAAY7vJ,MAAQo1J,EAAWp1J,MAAQ,GACpDA,MAAQ8vH,EAAW9vH,MAAQu7I,EAAWv7I,MAAQA,EAAMA,MACpDurJ,YAAaA,EAAYvrJ,MACzBolB,KAAMA,EAAKplB,MACXqlB,MAAOA,EAAMrlB,MACbyjF,KAAM58E,EAAM48E,KACZ16D,OAAQuyH,EAAUt7I,MAAM+oB,OACxBi5H,QAASn7I,EAAMm7I,QACfvlI,KAAMA,EAAKzc,MACX4+I,YAAa/3I,EAAM+3I,YACnB/yH,eAAgBhlB,EAAMglB,eACtBq2H,gBAAiBr7I,EAAMq7I,gBACvBtH,iBAAkB/zI,EAAM+zI,iBACxBqH,iBAAkBp7I,EAAMo7I,iBACxBkQ,kBAAmBtrJ,EAAMsrJ,kBACzB/jE,cAAc,EACd6jE,WAAYprJ,EAAMwoJ,aAClB7K,YAAAA,EACAC,iBAAAA,EACAC,iBAAAA,EACAjC,cAAAA,EACAoK,eAAAA,EACAxK,cAAAA,EACAG,aAAAA,EACAD,cAAAA,EACA6J,mBAAAA,EACA,IAEF,OAAO,WAAA,OAAA3uH,EAAAO,YAAAm3H,GAAuB7J,EAAWtrJ,MAAO,MAClD,IC5VWm3J,GAAa3pH,GAAYmiH,IACzByH,GAAkB5pH,GAAYmkH,IAC9B0F,GAAkB7pH,GAAYmoH,IAC9B2B,GAAuB9pH,GAAY0pH,mDCpBhD/4J,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QACA,WACE,IAAI1I,EAAM6F,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAC1E2xJ,EAAW3xJ,UAAUvI,OAAS,EAAIuI,UAAU,QAAKlG,EACrD,IAAK,IAAIL,KAAOk4J,OACU,IAAbx3J,EAAIV,KACbU,EAAIV,GAAOk4J,EAASl4J,IAGxB,OAAOU,CACT,EACA6I,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,sCCfxCtK,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QA0BA,SAAgBnJ,EAAOyc,GAGnBA,EAFqB,iBAAZA,GAEC,EAAIy7I,WAAgB,CAC5BzuI,OAAQhN,GACP07I,IAEO,EAAID,WAAgBz7I,EAAS07I,GAEzC,GAAqB,iBAAVn4J,GApBb,SAAuBypB,GACrB,MAAO,4IAA4IrqB,KAAKqqB,EAC1J,CAkBmC2uI,CAAc37I,EAAQgN,QAAS,CAC9D,GAAIhN,EAAQ47I,YAAcr4J,EAAMjC,SAAW0e,EAAQgN,OAAO1rB,OAAQ,OAAO,EACzE,IASEspF,EATEixE,EAAkB77I,EAAQ87I,WAAW3gG,MAAK,SAAU4gG,GACtD,OAA8C,IAAvC/7I,EAAQgN,OAAOgR,QAAQ+9H,EACpC,IACQC,EAAgBh8I,EAAQ47I,WAAaC,EAAkB77I,EAAQ87I,WAAW3gG,MAAK,SAAU4gG,GAC3F,OAAqC,IAA9Bx4J,EAAMy6B,QAAQ+9H,EAC3B,IACQE,EAzBR,SAAa7yI,EAAM4D,GAGjB,IAFA,IAAIkvI,EAAY,GACd76J,EAAM8J,KAAKC,IAAIge,EAAK9nB,OAAQ0rB,EAAO1rB,QAC5BC,EAAI,EAAGA,EAAIF,EAAKE,IACvB26J,EAAUhuJ,KAAK,CAACkb,EAAK7nB,GAAIyrB,EAAOzrB,KAElC,OAAO26J,CACT,CAkBwBC,CAAI54J,EAAMiQ,MAAMwoJ,GAAgBh8I,EAAQgN,OAAO5W,cAAc5C,MAAMqoJ,IACnFO,EAAU,CAAA,EACVvxE,EAtCR,SAAoCljE,EAAGriB,GAAK,IAAIuiB,EAAI,oBAAsBjmB,QAAU+lB,EAAE/lB,OAAOC,WAAa8lB,EAAE,cAAe,IAAKE,EAAG,CAAE,GAAIpmB,MAAMoB,QAAQ8kB,KAAOE,EAAI9lB,EAA4B4lB,KAAOriB,GAAKqiB,GAAK,iBAAmBA,EAAErmB,OAAQ,CAAEumB,IAAMF,EAAIE,GAAI,IAAIw0I,EAAK,EAAGC,EAAI,aAAiB,MAAO,CAAEj0I,EAAGi0I,EAAGn6J,EAAG,WAAe,OAAOk6J,GAAM10I,EAAErmB,OAAS,CAAE4mB,MAAM,GAAO,CAAEA,MAAM,EAAIjkB,MAAO0jB,EAAE00I,KAAU,EAAE/2J,EAAG,SAAWqiB,GAAK,MAAMA,CAAI,EAAEK,EAAGs0I,EAAM,CAAC,MAAM,IAAIr5J,UAAU,wIAAyI,CAAG,IAAIjB,EAAG+lB,GAAI,EAAID,GAAI,EAAI,MAAO,CAAEO,EAAG,WAAeR,EAAIA,EAAEtlB,KAAKolB,EAAK,EAAExlB,EAAG,WAAe,IAAIwlB,EAAIE,EAAEI,OAAQ,OAAOF,EAAIJ,EAAEO,KAAMP,CAAI,EAAEriB,EAAG,SAAWqiB,GAAKG,GAAI,EAAI9lB,EAAI2lB,CAAI,EAAEK,EAAG,WAAe,IAAMD,GAAK,MAAQF,UAAYA,EAAQ,QAAK,CAAS,QAAE,GAAIC,EAAG,MAAM9lB,CAAE,CAAI,EAAK,CAsCl0B8oF,CAA2BmxE,GAE3C,IACE,IAAKpxE,EAAUxiE,MAAOuiE,EAAQC,EAAU1oF,KAAK+lB,MAAO,CAClD,IAAIq0I,GA9CY50I,EA8CiBijE,EAAM3mF,MA9CpBqB,EA8C2B,EA3CtD,SAAyBqiB,GAAK,GAAIlmB,MAAMoB,QAAQ8kB,GAAI,OAAOA,CAAI,CAHxBJ,CAAgBI,IAEvD,SAA+BA,EAAGC,GAAK,IAAIC,EAAI,MAAQF,EAAI,KAAO,oBAAsB/lB,QAAU+lB,EAAE/lB,OAAOC,WAAa8lB,EAAE,cAAe,GAAI,MAAQE,EAAG,CAAE,IAAIviB,EAAGnD,EAAGZ,EAAGumB,EAAGC,EAAI,GAAIC,GAAI,EAAIhmB,GAAI,EAAI,IAAM,GAAIT,GAAKsmB,EAAIA,EAAEtlB,KAAKolB,IAAIM,KAAM,IAAML,EAAG,CAAE,GAAIxlB,OAAOylB,KAAOA,EAAG,OAAQG,GAAI,CAAG,MAAQ,OAASA,GAAK1iB,EAAI/D,EAAEgB,KAAKslB,IAAIK,QAAUH,EAAE7Z,KAAK5I,EAAErB,OAAQ8jB,EAAEzmB,SAAWsmB,GAAII,GAAI,GAAM,CAAC,MAAOL,GAAK3lB,GAAI,EAAIG,EAAIwlB,EAAa,QAAE,IAAM,IAAKK,GAAK,MAAQH,EAAC,SAAYC,EAAID,WAAYzlB,OAAO0lB,KAAOA,GAAI,MAAO,CAAW,QAAE,GAAI9lB,EAAG,MAAMG,CAAI,CAAA,CAAG,OAAO4lB,CAAE,CAAI,CAFvdy0I,CAAsB70I,EAAGriB,IAAMvD,EAA4B4lB,EAAGriB,IAC3H,WAA8B,MAAM,IAAIrC,UAAU,4IAA+I,CADhEukB,IA+CvHi1I,EAAWF,EAAY,GACvBG,EAAaH,EAAY,GAC3B,IAAKE,IAAaC,GAAcD,EAASn7J,SAAWo7J,EAAWp7J,OAC7D,OAAO,EAET86J,EAAQM,EAAWl2J,OAAO,IAAMi2J,CACjC,CACF,CAAC,MAAO12G,GACP8kC,EAAUvlF,EAAEygD,EAClB,CAAc,QACR8kC,EAAU7iE,GACX,CACD,IAAI20I,EAAWP,EAAQ1zI,EAGvB,GAAIi0I,EAASC,WAAW,KACtB,OAAO,EAET,GAAyB,IAArBR,EAAQ1zI,EAAEpnB,OAAc,CAC1B,IAAIu7J,EAAa51J,SAASm1J,EAAQ1zI,EAAG,IACrC,GAAIu/B,MAAM40G,GACR,OAAO,EAIPF,EADEE,GAD2B,IAAIxzJ,MAAO2hB,cAAgB,IAE7C,KAAKkR,OAAOkgI,EAAQ1zI,GAEpB,KAAKwT,OAAOkgI,EAAQ1zI,EAElC,CACD,IAAIY,EAAQ8yI,EAAQrzI,EACK,IAArBqzI,EAAQrzI,EAAEznB,SACZgoB,EAAQ,IAAI4S,OAAOkgI,EAAQrzI,IAE7B,IAAIyzH,EAAM4f,EAAQ5zI,EAIlB,OAHyB,IAArB4zI,EAAQ5zI,EAAElnB,SACZk7I,EAAM,IAAItgH,OAAOkgI,EAAQ5zI,IAEpB,IAAInf,KAAK,GAAG6yB,OAAOygI,EAAU,KAAKzgI,OAAO5S,EAAO,KAAK4S,OAAOsgH,EAAK,mBAAmBsgB,gBAAkBV,EAAQ5zI,CACtH,CAtFH,IAAwBb,EAAGriB,EAuFzB,IAAK0a,EAAQ47I,WACX,MAAiD,kBAA1Cx5J,OAAOC,UAAUC,SAASC,KAAKgB,IAA8Bw5J,SAASx5J,GAE/E,OAAO,CACT,EA7FA,IACgC+B,EAD5Bm2J,GAC4Bn2J,EADI+pB,GAAAA,UACa/pB,EAAE0gD,WAAa1gD,EAAI,CAAE2oB,QAAS3oB,GAM/E,SAASvD,EAA4B4lB,EAAGI,GAAK,GAAIJ,EAAG,CAAE,GAAI,iBAAmBA,EAAG,OAAOxmB,EAAkBwmB,EAAGI,GAAI,IAAIF,EAAI,GAAGvlB,SAASC,KAAKolB,GAAGnlB,MAAM,GAAI,GAAI,MAAO,WAAaqlB,GAAKF,EAAEllB,cAAgBolB,EAAIF,EAAEllB,YAAYC,MAAO,QAAUmlB,GAAK,QAAUA,EAAIpmB,MAAMK,KAAK6lB,GAAK,cAAgBE,GAAK,2CAA2CllB,KAAKklB,GAAK1mB,EAAkBwmB,EAAGI,QAAK,CAAO,CAAI,CAC1X,SAAS5mB,EAAkBwmB,EAAGI,IAAM,MAAQA,GAAKA,EAAIJ,EAAErmB,UAAYymB,EAAIJ,EAAErmB,QAAS,IAAK,IAAIgE,EAAI,EAAGnD,EAAIV,MAAMsmB,GAAIziB,EAAIyiB,EAAGziB,IAAKnD,EAAEmD,GAAKqiB,EAAEriB,GAAI,OAAOnD,CAAI,CACpJ,IAAIu5J,EAAuB,CACzB1uI,OAAQ,aACR8uI,WAAY,CAAC,IAAK,KAClBF,YAAY,GAkFd/uJ,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,6FC/FxC,SAASvJ,EAAQnB,GAAgC,OAAOmB,EAAU,mBAAqBvB,QAAU,iBAAmBA,OAAOC,SAAW,SAAUG,GAAK,cAAcA,CAAI,EAAG,SAAUA,GAAK,OAAOA,GAAK,mBAAqBJ,QAAUI,EAAES,cAAgBb,QAAUI,IAAMJ,OAAOS,UAAY,gBAAkBL,CAAE,EAAImB,EAAQnB,EAAK,CAJ9TI,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QAEA,SAAsBnJ,GACpB,IAAI2f,EAA4B,iBAAV3f,GAAsBA,aAAiBM,OAC7D,IAAKqf,EAAU,CACb,IAAI85I,EAAc75J,EAAQI,GAE1B,MADc,OAAVA,EAAgBy5J,EAAc,OAAgC,WAAhBA,IAA0BA,EAAcz5J,EAAMd,YAAYC,MACtG,IAAIO,UAAU,oCAAoCi5B,OAAO8gI,GAChE,CACH,EACAnwJ,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,2DCdxCtK,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QAIA,SAAmB+xD,EAAM/N,GACvB,IAAK,IAAInvD,EAAI,EAAGA,EAAImvD,EAAQpvD,OAAQC,IAAK,CACvC,IAAIoP,EAAQ+/C,EAAQnvD,GACpB,GAAIk9D,IAAS9tD,IANC3M,EAMiB2M,EALc,oBAAxCvO,OAAOC,UAAUC,SAASC,KAAKyB,IAKK2M,EAAMhO,KAAK87D,IAClD,OAAO,CAEV,CATH,IAAkBz6D,EAUhB,OAAO,CACT,EACA6I,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,2DCjBxCtK,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QAKA,SAAsB+yB,EAAKzf,GAEzB,IAAIH,EACAzU,GAFJ,EAAI6xJ,EAAqB,SAAEx9H,GAGF,WAArBt8B,EAAQ6c,IACVH,EAAMG,EAAQH,KAAO,EACrBzU,EAAM4U,EAAQ5U,MAGdyU,EAAMhW,UAAU,GAChBuB,EAAMvB,UAAU,IAElB,IAAIxI,EAAM67J,UAAUz9H,GAAKjsB,MAAM,SAASlS,OAAS,EACjD,OAAOD,GAAOwe,SAAuB,IAARzU,GAAuB/J,GAAO+J,EAC7D,EAlBA,IACgC9F,EAD5B23J,GAC4B33J,EADW+pB,GAAAA,UACM/pB,EAAE0gD,WAAa1gD,EAAI,CAAE2oB,QAAS3oB,GAC/E,SAASnC,EAAQnB,GAAgC,OAAOmB,EAAU,mBAAqBvB,QAAU,iBAAmBA,OAAOC,SAAW,SAAUG,GAAK,cAAcA,CAAI,EAAG,SAAUA,GAAK,OAAOA,GAAK,mBAAqBJ,QAAUI,EAAES,cAAgBb,QAAUI,IAAMJ,OAAOS,UAAY,gBAAkBL,CAAE,EAAImB,EAAQnB,EAAK,CAiB9T6K,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,2DCxBxCtK,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QAYA,SAAgB+yB,EAAKzf,IACnB,EAAIi9I,EAAqB,SAAEx9H,IAC3Bzf,GAAU,EAAIy7I,WAAgBz7I,EAASm9I,IAG3BC,oBAA8C,MAAxB39H,EAAIA,EAAIn+B,OAAS,KACjDm+B,EAAMA,EAAI7U,UAAU,EAAG6U,EAAIn+B,OAAS,KAIP,IAA3B0e,EAAQq9I,gBAAiD,IAAtB59H,EAAIzB,QAAQ,QACjDyB,EAAMA,EAAI7U,UAAU,IAEtB,IAAI0yI,EAAQ79H,EAAIjsB,MAAM,KAClB+pJ,EAAMD,EAAMA,EAAMh8J,OAAS,GAC/B,GAAI0e,EAAQw9I,YAAa,CAEvB,GAAIF,EAAMh8J,OAAS,EACjB,OAAO,EAET,IAAK0e,EAAQy9I,oBAAsB,qFAAqF96J,KAAK46J,GAC3H,OAAO,EAIT,GAAI,KAAK56J,KAAK46J,GACZ,OAAO,CAEV,CAGD,IAAKv9I,EAAQy9I,mBAAqB,QAAQ96J,KAAK46J,GAC7C,OAAO,EAET,OAAOD,EAAM90F,OAAM,SAAUuqC,GAC3B,QAAIA,EAAKzxG,OAAS,KAAO0e,EAAQ09I,uBAG5B,8BAA8B/6J,KAAKowG,MAKpC,kBAAkBpwG,KAAKowG,MAKvB,QAAQpwG,KAAKowG,OAGZ/yF,EAAQ29I,mBAAqB,IAAIh7J,KAAKowG,MAI/C,GACA,EAnEA,IAAIkqD,EAAgBW,EAAuBvuI,GAAAA,SACvCosI,EAASmC,EAAuBC,GAAAA,SACpC,SAASD,EAAuBt4J,GAAK,OAAOA,GAAKA,EAAE0gD,WAAa1gD,EAAI,CAAE2oB,QAAS3oB,EAAM,CACrF,IAAI63J,EAAuB,CACzBK,aAAa,EACbG,mBAAmB,EACnBP,oBAAoB,EACpBK,mBAAmB,EACnBJ,gBAAgB,EAChBK,mBAAmB,GA2DrB7wJ,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,2DCzExCtK,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QAqCA,SAASoxJ,EAAKr+H,GACZ,IAAIoC,EAAUh4B,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,GAGlF,IAFA,EAAIozJ,EAAqB,SAAEx9H,GAC3BoC,EAAUh+B,OAAOg+B,IACZA,EACH,OAAOi8H,EAAKr+H,EAAK,IAAMq+H,EAAKr+H,EAAK,GAEnC,GAAgB,MAAZoC,EACF,OAAOk8H,EAAkBp7J,KAAK88B,GAEhC,GAAgB,MAAZoC,EACF,OAAOm8H,EAAkBr7J,KAAK88B,GAEhC,OAAO,CACT,EAlDA,IACgCn6B,EAD5B23J,GAC4B33J,EADW+pB,GAAAA,UACM/pB,EAAE0gD,WAAa1gD,EAAI,CAAE2oB,QAAS3oB,GA8B/E,IAAI24J,EAAoB,uDACpBC,EAAoB,IAAIhiI,OAAO+hI,EAAmB,WAAW/hI,OAAO+hI,GACpEF,EAAoB,IAAIv1J,OAAO,IAAI0zB,OAAOgiI,EAAmB,MAC7DC,EAAoB,uBACpBH,EAAoB,IAAIx1J,OAAO,KAAO,MAAM0zB,OAAOiiI,EAAmB,YAAYjiI,OAAOiiI,EAAmB,QAAU,MAAMjiI,OAAOiiI,EAAmB,YAAYjiI,OAAOgiI,EAAmB,MAAMhiI,OAAOiiI,EAAmB,QAAU,MAAMjiI,OAAOiiI,EAAmB,aAAajiI,OAAOgiI,EAAmB,OAAOhiI,OAAOiiI,EAAmB,cAAgB,MAAMjiI,OAAOiiI,EAAmB,cAAcjiI,OAAOiiI,EAAmB,WAAWjiI,OAAOgiI,EAAmB,OAAOhiI,OAAOiiI,EAAmB,cAAgB,MAAMjiI,OAAOiiI,EAAmB,cAAcjiI,OAAOiiI,EAAmB,WAAWjiI,OAAOgiI,EAAmB,OAAOhiI,OAAOiiI,EAAmB,cAAgB,MAAMjiI,OAAOiiI,EAAmB,cAAcjiI,OAAOiiI,EAAmB,WAAWjiI,OAAOgiI,EAAmB,OAAOhiI,OAAOiiI,EAAmB,cAAgB,MAAMjiI,OAAOiiI,EAAmB,cAAcjiI,OAAOiiI,EAAmB,WAAWjiI,OAAOgiI,EAAmB,OAAOhiI,OAAOiiI,EAAmB,cAAgB,YAAYjiI,OAAOiiI,EAAmB,WAAWjiI,OAAOgiI,EAAmB,SAAShiI,OAAOiiI,EAAmB,cAAgB,4BAgBxlCtxJ,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,sCCxDxCtK,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QA4DA,SAAiB+yB,EAAKzf,GAGpB,IAFA,EAAIi9I,EAAqB,SAAEx9H,IAC3Bzf,GAAU,EAAIy7I,WAAgBz7I,EAASo+I,IAC3BC,sBAAwBr+I,EAAQs+I,mBAAoB,CAC9D,IAAIC,EAAgB9+H,EAAI9uB,MAAM6tJ,GAC9B,GAAID,EAAe,CACjB,IAAIE,EAAeF,EAAc,GAajC,GATA9+H,EAAMA,EAAI/4B,QAAQ+3J,EAAc,IAAI/3J,QAAQ,WAAY,IAMpD+3J,EAAa39G,SAAS,OACxB29G,EAAeA,EAAaj8J,MAAM,GAAI,KAzC9C,SAA6Bi8J,GAC3B,IAAIC,EAA8BD,EAAa/3J,QAAQ,WAAY,MAEnE,IAAKg4J,EAA4BvsF,OAC/B,OAAO,EAKT,GADuB,WAAWxvE,KAAK+7J,GACjB,CAGpB,GAAIA,IAAgCD,EAClC,OAAO,EAKT,KADgCC,EAA4BlrJ,MAAM,KAAKlS,SAAWo9J,EAA4BlrJ,MAAM,OAAOlS,QAEzH,OAAO,CAEV,CACD,OAAO,CACT,CAoBWq9J,CAAoBF,GACvB,OAAO,CAEf,MAAW,GAAIz+I,EAAQq+I,qBACjB,OAAO,CAEV,CACD,IAAKr+I,EAAQ09I,mBAAqBj+H,EAAIn+B,OAASs9J,EAC7C,OAAO,EAET,IAAItB,EAAQ79H,EAAIjsB,MAAM,KAClBqrJ,EAASvB,EAAM3tJ,MACfmvJ,EAAeD,EAAOzoJ,cAC1B,GAAI4J,EAAQ++I,eAAez9J,OAAS,IAAK,EAAI09J,EAAU,SAAUF,EAAc9+I,EAAQ++I,gBACrF,OAAO,EAET,GAAI/+I,EAAQi/I,eAAe39J,OAAS,KAAM,EAAI09J,WAAoBF,EAAc9+I,EAAQi/I,gBACtF,OAAO,EAET,IAAIC,EAAO5B,EAAMnqJ,KAAK,KACtB,GAAI6M,EAAQm/I,6BAAgD,cAAjBL,GAAiD,mBAAjBA,GAAoC,CAW7G,IAAIM,GAHJF,EAAOA,EAAK9oJ,eAGQ5C,MAAM,KAAK,GAG/B,KAAK,EAAI6rJ,EAAqB,SAAED,EAAS14J,QAAQ,MAAO,IAAK,CAC3DmZ,IAAK,EACLzU,IAAK,KAEL,OAAO,EAGT,IADA,IAAIk0J,EAAcF,EAAS5rJ,MAAM,KACxBjS,EAAI,EAAGA,EAAI+9J,EAAYh+J,OAAQC,IACtC,IAAKg+J,EAAc58J,KAAK28J,EAAY/9J,IAClC,OAAO,CAGZ,CACD,MAAkC,IAA9Bye,EAAQ09I,oBAAiC,EAAI2B,EAAqB,SAAEH,EAAM,CAC5E9zJ,IAAK,OACA,EAAIi0J,EAAa,SAAUR,EAAQ,CACxCzzJ,IAAK,OAEL,OAAO,EAET,KAAK,EAAIo0J,EAAe,SAAEX,EAAQ,CAChCrB,YAAax9I,EAAQw9I,YACrBE,kBAAmB19I,EAAQ09I,kBAC3BC,kBAAmB39I,EAAQ29I,oBACzB,CACF,IAAK39I,EAAQy/I,gBACX,OAAO,EAET,KAAK,EAAIC,EAAa,SAAEb,GAAS,CAC/B,IAAKA,EAAOjC,WAAW,OAASiC,EAAO/9G,SAAS,KAC9C,OAAO,EAET,IAAI6+G,EAAkBd,EAAOr8J,MAAM,GAAI,GACvC,GAA+B,IAA3Bm9J,EAAgBr+J,UAAiB,EAAIo+J,EAAK,SAAUC,GACtD,OAAO,CAEV,CACF,CACD,GAAI3/I,EAAQ4/I,oBACyE,IAA/EV,EAAKnlH,OAAO,IAAIvxC,OAAO,IAAI0zB,OAAOlc,EAAQ4/I,kBAAmB,MAAO,MAAc,OAAO,EAE/F,GAAgB,MAAZV,EAAK,IAAwC,MAA1BA,EAAKA,EAAK59J,OAAS,GAExC,OADA49J,EAAOA,EAAK18J,MAAM,EAAG08J,EAAK59J,OAAS,GAC5B0e,EAAQ6/I,sBAAwBC,EAAoBn9J,KAAKu8J,GAAQa,EAAgBp9J,KAAKu8J,GAI/F,IAFA,IAAI3pJ,EAAUyK,EAAQ6/I,sBAAwBG,EAAoBC,EAC9DC,EAAahB,EAAK1rJ,MAAM,KACnBi1D,EAAK,EAAGA,EAAKy3F,EAAW5+J,OAAQmnE,IACvC,IAAKlzD,EAAQ5S,KAAKu9J,EAAWz3F,IAC3B,OAAO,EAGX,OAAO,CACT,EArKA,IAAIw0F,EAAgBW,EAAuBvuI,GAAAA,SACvC2vI,EAAapB,EAAuBC,GAAAA,SACpCwB,EAAgBzB,EAAuBuC,GAAAA,SACvCX,EAAU5B,EAAuBwC,GAAAA,SACjCV,EAAQ9B,EAAuByC,GAAAA,SAC/B5E,EAASmC,EAAuB0C,GAAAA,SACpC,SAAS1C,EAAuBt4J,GAAK,OAAOA,GAAKA,EAAE0gD,WAAa1gD,EAAI,CAAE2oB,QAAS3oB,EAAM,CACrF,IAAI84J,EAAwB,CAC1BE,oBAAoB,EACpBX,mBAAmB,EACnBU,sBAAsB,EACtBwB,uBAAuB,EACvBrC,aAAa,EACboC,kBAAmB,GACnBlC,mBAAmB,EACnBqB,eAAgB,GAChBE,eAAgB,IAKdT,EAAmB,iCACnByB,EAAgB,yCAChBV,EAAgB,aAChBQ,EAAkB,kGAClBC,EAAoB,gFACpBF,EAAsB,gLACtBlB,EAAwB,IA2I5B/xJ,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,ioBCzJjC,SAAS6zJ,GAAah3H,GAKvB,MAFI,kBAFannC,OAAOC,UAAUC,SAASC,KAAKgnC,KAO7C5iC,EAAS4iC,GAAOvlB,GAAQulB,GAAO,CAAC,QAAI,EAAW,MAAMjnB,SAASinB,GACvE,gBC3BAnnC,OAAO+B,eAAwBuI,EAAA,aAAc,CAC3CzI,OAAO,IAETyI,EAAA,QA4CA,SAAe+qB,EAAKzX,GAElB,IADA,EAAIi9I,EAAqB,SAAExlI,IACtBA,GAAO,SAAS90B,KAAK80B,GACxB,OAAO,EAET,GAA+B,IAA3BA,EAAIuG,QAAQ,WACd,OAAO,EAGT,IADAhe,GAAU,EAAIy7I,WAAgBz7I,EAASwgJ,IAC3BC,iBAAmBhpI,EAAIn2B,OAAS0e,EAAQ0gJ,mBAClD,OAAO,EAET,IAAK1gJ,EAAQ2gJ,iBAAmBlpI,EAAInV,SAAS,KAC3C,OAAO,EAET,IAAKtC,EAAQ4gJ,yBAA2BnpI,EAAInV,SAAS,MAAQmV,EAAInV,SAAS,MACxE,OAAO,EAET,IAAIu+I,EAAUC,EAAMriG,EAAMsiG,EAAUC,EAAMC,EAAUztJ,EAAO0tJ,EAM3D,GALA1tJ,EAAQikB,EAAIjkB,MAAM,KAClBikB,EAAMjkB,EAAMy9H,QACZz9H,EAAQikB,EAAIjkB,MAAM,KAClBikB,EAAMjkB,EAAMy9H,SACZz9H,EAAQikB,EAAIjkB,MAAM,QACRlS,OAAS,GAEjB,GADAu/J,EAAWrtJ,EAAMy9H,QAAQ76H,cACrB4J,EAAQmhJ,yBAAmE,IAAzCnhJ,EAAQohJ,UAAUpjI,QAAQ6iI,GAC9D,OAAO,MAEJ,IAAI7gJ,EAAQqhJ,iBACjB,OAAO,EACF,GAAwB,OAApB5pI,EAAIj1B,MAAM,EAAG,GAAa,CACnC,IAAKwd,EAAQshJ,6BACX,OAAO,EAET9tJ,EAAM,GAAKikB,EAAIj1B,MAAM,EACtB,EAED,GAAY,MADZi1B,EAAMjkB,EAAML,KAAK,QAEf,OAAO,EAIT,GAFAK,EAAQikB,EAAIjkB,MAAM,KAEN,MADZikB,EAAMjkB,EAAMy9H,WACOjxH,EAAQuhJ,aACzB,OAAO,EAGT,IADA/tJ,EAAQikB,EAAIjkB,MAAM,MACRlS,OAAS,EAAG,CACpB,GAAI0e,EAAQwhJ,cACV,OAAO,EAET,GAAiB,KAAbhuJ,EAAM,GACR,OAAO,EAGT,IADAstJ,EAAOttJ,EAAMy9H,SACJjzG,QAAQ,MAAQ,GAAK8iI,EAAKttJ,MAAM,KAAKlS,OAAS,EACrD,OAAO,EAET,IAAImgK,EAAcX,EAAKttJ,MAAM,KAC3BkuJ,GAhGqBp8J,EAgGsB,EA3FjD,SAAyBqiB,GAAK,GAAIlmB,MAAMoB,QAAQ8kB,GAAI,OAAOA,CAAI,CALxBJ,CAAfI,EAgGY85I,IA5FpC,SAA+B95I,EAAGC,GAAK,IAAIC,EAAI,MAAQF,EAAI,KAAO,oBAAsB/lB,QAAU+lB,EAAE/lB,OAAOC,WAAa8lB,EAAE,cAAe,GAAI,MAAQE,EAAG,CAAE,IAAIviB,EAAGnD,EAAGZ,EAAGumB,EAAGC,EAAI,GAAIC,GAAI,EAAIhmB,GAAI,EAAI,IAAM,GAAIT,GAAKsmB,EAAIA,EAAEtlB,KAAKolB,IAAIM,KAAM,IAAML,EAAG,CAAE,GAAIxlB,OAAOylB,KAAOA,EAAG,OAAQG,GAAI,CAAG,MAAQ,OAASA,GAAK1iB,EAAI/D,EAAEgB,KAAKslB,IAAIK,QAAUH,EAAE7Z,KAAK5I,EAAErB,OAAQ8jB,EAAEzmB,SAAWsmB,GAAII,GAAI,GAAM,CAAC,MAAOL,GAAK3lB,GAAI,EAAIG,EAAIwlB,EAAa,QAAE,IAAM,IAAKK,GAAK,MAAQH,EAAC,SAAYC,EAAID,WAAYzlB,OAAO0lB,KAAOA,GAAI,MAAO,CAAW,QAAE,GAAI9lB,EAAG,MAAMG,CAAI,CAAA,CAAG,OAAO4lB,CAAE,CAAI,CAJvdy0I,CAAsB70I,EAAGriB,IAEtF,SAAqCqiB,EAAGI,GAAK,GAAIJ,EAAG,CAAE,GAAI,iBAAmBA,EAAG,OAAOxmB,EAAkBwmB,EAAGI,GAAI,IAAIF,EAAI,GAAGvlB,SAASC,KAAKolB,GAAGnlB,MAAM,GAAI,GAAI,MAAO,WAAaqlB,GAAKF,EAAEllB,cAAgBolB,EAAIF,EAAEllB,YAAYC,MAAO,QAAUmlB,GAAK,QAAUA,EAAIpmB,MAAMK,KAAK6lB,GAAK,cAAgBE,GAAK,2CAA2CllB,KAAKklB,GAAK1mB,EAAkBwmB,EAAGI,QAAK,CAAO,CAAI,CAF9RhmB,CAA4B4lB,EAAGriB,IAC3H,WAA8B,MAAM,IAAIrC,UAAU,4IAA+I,CADhEukB,IAiG3H03I,EAAOwC,EAAa,GACpBC,EAAWD,EAAa,GAC1B,GAAa,KAATxC,GAA4B,KAAbyC,EACjB,OAAO,CAEV,CAtGH,IAAwBh6I,EAAGriB,EAuGzBy7J,EAAWvtJ,EAAML,KAAK,KACtB8tJ,EAAW,KACXC,EAAO,KACP,IAAIU,EAAab,EAASpwJ,MAAMkxJ,GAC5BD,GACFnjG,EAAO,GACPyiG,EAAOU,EAAW,GAClBX,EAAWW,EAAW,IAAM,OAG5BnjG,GADAjrD,EAAQutJ,EAASvtJ,MAAM,MACVy9H,QACTz9H,EAAMlS,SACR2/J,EAAWztJ,EAAML,KAAK,OAG1B,GAAiB,OAAb8tJ,GAAqBA,EAAS3/J,OAAS,GAEzC,GADA0/J,EAAO/5J,SAASg6J,EAAU,KACrB,WAAWt+J,KAAKs+J,IAAaD,GAAQ,GAAKA,EAAO,MACpD,OAAO,OAEJ,GAAIhhJ,EAAQ8hJ,aACjB,OAAO,EAET,GAAI9hJ,EAAQi/I,eACV,OAAO,EAAID,EAAU,SAAUvgG,EAAMz+C,EAAQi/I,gBAE/C,GAAa,KAATxgG,IAAgBz+C,EAAQuhJ,aAC1B,OAAO,EAET,MAAK,EAAI7B,WAAejhG,KAAU,EAAI+gG,WAAiB/gG,EAAMz+C,IAAckhJ,IAAS,EAAIxB,WAAewB,EAAM,IAC3G,OAAO,EAGT,GADAziG,EAAOA,GAAQyiG,EACXlhJ,EAAQ++I,iBAAkB,EAAIC,EAAkB,SAAEvgG,EAAMz+C,EAAQ++I,gBAClE,OAAO,EAET,OAAO,CACT,EAlJA,IAAI9B,EAAgBW,EAAuBvuI,GAAAA,SACvC2vI,EAAapB,EAAuBC,GAAAA,SACpC2B,EAAU5B,EAAuBuC,GAAAA,SACjCT,EAAQ9B,EAAuBwC,GAAAA,SAC/B3E,EAASmC,EAAuByC,GAAAA,SACpC,SAASzC,EAAuBt4J,GAAK,OAAOA,GAAKA,EAAE0gD,WAAa1gD,EAAI,CAAE2oB,QAAS3oB,EAAM,CAIrF,SAASnE,EAAkBwmB,EAAGI,IAAM,MAAQA,GAAKA,EAAIJ,EAAErmB,UAAYymB,EAAIJ,EAAErmB,QAAS,IAAK,IAAIgE,EAAI,EAAGnD,EAAIV,MAAMsmB,GAAIziB,EAAIyiB,EAAGziB,IAAKnD,EAAEmD,GAAKqiB,EAAEriB,GAAI,OAAOnD,CAAI,CAkBpJ,IAAIq+J,EAAsB,CACxBY,UAAW,CAAC,OAAQ,QAAS,OAC7B5D,aAAa,EACb6D,kBAAkB,EAClBE,cAAc,EACdO,cAAc,EACdX,wBAAwB,EACxBxD,mBAAmB,EACnBP,oBAAoB,EACpBkE,8BAA8B,EAC9BX,iBAAiB,EACjBC,wBAAwB,EACxBH,iBAAiB,EACjBC,mBAAoB,MAElBmB,EAAe,+BAyGnBh1J,EAAiBH,QAAAA,EAAe,QAChCG,EAAyBH,QAAA,QAAAA,EAAe,wBD3HxC,IAAMq1J,GAAe,CACnB34I,KAAMtF,GACN2T,mBACAuqI,MAAOC,GACPvqI,SAAU,SAAC6R,GAA4B,OAACg3H,GAAah3H,EAAG,EACxD5R,WAAY,SAAC4R,GAA4B,QAAE,QAAQ5mC,KAAK4mC,IAAgB,KAARA,EAAQ,EACxEvR,QAAS,SAACuR,GAA4B,OAAA3lB,GAAU2lB,EAAG,EACnDn+B,IAAK,SAACm+B,EAAgBu6D,GAA0B,OAAA5/E,GAASqlB,GAAOA,GAAOu6D,EAAMtkE,GAAmB+J,IAAQu6D,CAAA,EACxGjkF,IAAK,SAAC0pB,EAAgBu6D,GAA0B,OAAA5/E,GAASqlB,GAAOA,GAAOu6D,EAAMtkE,GAAmB+J,IAAQu6D,CAAA,EACxGziG,IAAK,SAACkoC,EAAgBu6D,GAAA,OAAyBtkE,GAAmB37B,OAAO0lC,MAAUu6D,CAAA,EACnFlzF,OAAQ,SAAC24B,GAA4B,OAAArlB,GAASqlB,EAAG,EACjD3R,KAAM,SAAC2R,EAAgB24H,GAAiC,OAAAA,EAAK5/I,SAASinB,EAAG,EACzE1R,OAAQ,SAAC0R,GAA4B,MAAA,sCAAsC5mC,KAAK4mC,EAAG,EACnFzR,UAAW,SAACyR,GAA4B,MAAA,gBAAgB5mC,KAAK4mC,EAAG,EAChEh0B,QAAS,SAACg0B,EAAgB5vB,GAA4B,OAAAA,EAAOhX,KAAK4mC,EAAG,EAErExR,UAAW,SAACwR,EAAgB44H,GAAAA,OAA2DA,EAAS54H,EAAG,GAWrG,SAAsB64H,GAAA5tG,EAAAM,GAAA,OAAAutG,GAAAv4J,MAAA6B,KAAA9B,UAAA,CAkCtB,SAAAw4J,KAAA,OAAAA,GAAAv8G,GAAAG,GAAAmC,MAlCsB,SAAA+C,EAAgBlnD,EAAkBq+J,GAA4C,IAAAC,EAAAv6J,EAAAw6J,EAAAC,EAAAlhK,EAAA+B,EAAAo/J,EAAA,OAAAz8G,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAC9Fs6I,EAAiE,CAAEh9J,QAAQ,GACzEyC,EAAO5F,OAAO4F,KAAKs6J,GAGhB/gK,EAAI,EAAA,KAAA,EAAA,KAAGA,EAAIyG,EAAK1G,yBACN,GAAXgC,EAAM0E,EAAKzG,GAEZ+gK,EAAK5qI,WAAY6oI,GAAat8J,IAAWq+J,EAAKvqI,UAAW,CAAAqzB,EAAAnjC,KAAA,EAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,SACrDi7G,GAAA,KAAA,EAG2C,KAA9CG,EAAiCX,GAAaz+J,MAE/Bg/J,EAAKh/J,IAAsB,IAAdg/J,EAAKh/J,GAAa,CAAA8nD,EAAAnjC,KAAA,GAAA,KAAA,CAGnC,OADfu6I,GAAyB,IAAdF,EAAKh/J,QAAgB,EAAYg/J,EAAKh/J,GAClCm/J,EAAAC,EAAAt3G,EAAA9D,OAAA,QAAA,IAAA,KAAA,GAZc/lD,IAAK6pD,EAAAnjC,KAAA,EAAA,MAAA,KAAA,GAAA,IAgBlCw6I,EAAc,CAAAr3G,EAAAnjC,KAAA,GAAA,KAAA,CAAA,OAAAmjC,EAAAnjC,KAAA,GAEOw6I,EAAax+J,EAAOu+J,GAAQ,KAAA,GAAlC,IAEb5+I,GAFa2+I,EAAAn3G,EAAAjE,MAEc,CAAAiE,EAAAnjC,KAAA,GAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,SAAAhmB,GAAAA,MACjBghI,GAAM,GAAA,CAAA/8J,OAAQg9J,KAAe,KAAA,GAAA,IAGvC57J,EAAS47J,GAAiB,CAAAn3G,EAAAnjC,KAAA,GAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,SACrBi7G,GAAA,KAAA,GAAA,OAAAn3G,EAAA9D,OAAA,SAGJi7G,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAn3G,EAAAzC,OAAA,GAAAwC,EACT,KAAAk3G,GAAAv4J,MAAA6B,KAAA9B,UAAA,CAGA,SAAsBs4J,GAAAQ,EAAAC,GAAA,OAAAC,GAAA/4J,MAAA6B,KAAA9B,UAAA,CAItB,SAAAg5J,KAAA,OAAAA,GAAA/8G,GAAAG,GAAAmC,MAJsB,SAAAwM,EAAS3wD,EAAkB6+J,GAAsD,IAAAxrB,EAAA3vH,EAAA,OAAAs+B,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EACzC,OAAtDqvH,EAAMwrB,EAAMhzJ,KAAI,SAACwyJ,UAASF,GAAgBn+J,EAAOq+J,MAAKztG,EAAA5sC,KAAA,EAC5CjQ,QAAQs/H,IAAIA,GAAG,KAAA,EAArB,OAAJ3vH,EAAIktC,EAAA1N,KAAA0N,EAAAvN,OAAA,SACH3/B,GAAA,KAAA,EAAA,IAAA,MAAA,OAAAktC,EAAAlM,OAAA,GAAAiM,EACT,MAAA9qD,MAAA6B,KAAA9B,UAAA,CE1Fe,IAAAk5J,GAAA,CAEbC,IAAK,CACHp8J,KAAM/C,OACNoqB,QAAS,IAGXotE,KAAM,CACJz0F,KAAM,CAAC/C,OAAQe,WAGjB2/C,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXg1I,WAAY,CACVr8J,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,OAAOjnB,SAASinB,EAC3C,GAGF25H,WAAY,CACVt8J,KAAM,CAAC/C,OAAQC,SAGjBpB,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGX6D,aAAc,CACZlrB,KAAMgmC,QACN3e,aAAS,GAGX60I,MAAO,CACLl8J,KAAMnF,OAGR0hK,iBAAkB,CAChBv8J,KAAMgmC,QACN3e,aAAS,GAGXkrC,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,IAGXm1I,WAAY,CACVx8J,KAAM,CAACgmC,QAAShoC,UAChBqpB,aAAS,GAGXqtE,cAAe1uD,QAEf6sD,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,+kBCZH,SAAAy+J,GAAqBnoI,EAAuBx4B,GAC1D,OAAKA,EACE,GAAAw5B,OAAGhB,QAAAgB,OAAkBx5B,GAAOgE,QAAQ,aAAc,KADvC,EAEpB,CAEA,IAAA48J,GAAepjI,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP+C,EAAgB3C,KAChBk4H,EAAc3oE,KACZp/D,EAAiBP,GAAU,QAA3BO,aACR88B,EAAgFpB,GAAc,CAC5FuB,sBAAuBC,GACvBwnC,sBAAuBC,GACvBxnC,sBAAuBC,KAHjBH,EAAAH,EAAAG,sBAAuBynC,EAAuB5nC,EAAvB4nC,sBAAuBvnC,EAAAL,EAAAK,sBAKhD9mC,EAAOyJ,EAAOA,OAAAkgE,QAAkB,GAEhChsE,EAAcyM,KACdunI,EAAsBvnI,GAAe,aAErCwnI,EAAmBhhJ,EAAAA,UAAS,WAAM,IAAA4xC,EAAAqvG,EAChC5xI,EAA2CuiC,UAAtB,UAANvpD,EAAMgnB,oBAAA,IAAA4xI,EAAAA,EAAgB7xI,aAAAA,EAAAA,EAAMC,oBAAAuiC,IAAAA,EAAAA,EAAgB74B,EAAav3B,MAAM6tB,aAC9E6xI,EAAaC,EAAW3/J,MAAMinC,QAAO,SAACo3H,GAAS,OAAAA,EAAK5qI,YAAUp2B,OAAS,EAC7E,OAAOwwB,QAAAA,EAAgB6xI,CACzB,IAEME,EAAuBphJ,EAAAA,UAAS,WAAM,IAAAqhJ,EAC1C,OAAqCA,QAArCA,EAAOjyI,aAAAA,EAAAA,EAAMgyI,4BAAwBC,IAAAA,EAAAA,EAAA,MACvC,IAEMC,EAAWthJ,EAAAA,UAAS,WAAA,OAAMwoB,EAAMsZ,OAASz5C,EAAMy5C,SAC/Cy/G,EAAWvhJ,EAAAA,UAAS,WAAA,QAASoP,UAAAA,EAAMoxB,QAAS8gH,EAAS9/J,UACrDggK,EAAahoI,GAAe,eAC5BgnI,EAAaxgJ,EAAAA,UAAS,WAAA,OAAO0B,GAAMrZ,EAAMm4J,YAAcpxI,eAAAA,EAAMoxI,WAAan4J,EAAMm4J,cAChFC,EAAazgJ,EAAAA,UAAS,WAAA,OAAO0B,GAAMrZ,EAAMo4J,YAAcrxI,eAAAA,EAAMqxI,WAAap4J,EAAMo4J,cAEhFhyC,EAAezuG,EAAAA,UAAS,WAAA,MAAM,CAClC8gJ,EAAYt/J,MAAMsgD,MAAAxgD,EAAAA,EAAAA,EAAAA,EAAAA,QAAAm4B,OAEZ+nI,EAAWhgK,MAAA,cAAoBw/J,EAAiBx/J,UAAAi4B,OAChD+nI,EAAWhgK,0BAA0Bw/J,EAAiBx/J,OAAwC,UAA/B4/J,EAAqB5/J,OAAUi4B,GAAAA,OAC9F+nI,EAAWhgK,eAAe8/J,EAAS9/J,QAA+B,QAArBg/J,EAAWh/J,QAAoBi/J,EAAWj/J,QAAAi4B,GAAAA,OACvF+nI,EAAWhgK,gBAAqC,SAArBg/J,EAAWh/J,OAAoBi/J,EAAWj/J,OAAAi4B,GAAAA,OACrE+nI,EAAWhgK,MAAiBg/J,WAAqB,UAArBA,EAAWh/J,OAAqBi/J,EAAWj/J,WAIzE6iI,EAAcrkH,EAAAA,UAClB,WAAA,MAAA,GAAAyZ,OACK1M,EAAYvrB,MAAA,QAAAi4B,OAAYpxB,EAAMquD,QAAU,UACzCruD,KAAAA,OAAiB,YAAjBA,EAAMquD,OAAuBoqG,EAAYt/J,MAAMq3F,cAAgB,GAAA,IAI/DotB,EAAc,WACd,GAA6B,IAA7B5kH,OAAOo/J,EAAWj/J,OAAlB,CAEJ,IAAIq/C,EAAa,CAAA,EASjB,OARI4/G,EAAWj/J,OAA8B,QAArBg/J,EAAWh/J,QAE/Bq/C,EADEp/B,GAASg/I,EAAWj/J,OACT,CAAE69B,MAAA5F,GAAAA,OAAUgnI,EAAWj/J,MAAU,OAEjC,CAAE69B,MAAOohI,EAAWj/J,QAIrCy9B,EAAAA,YAAA,MAAA,CAAAC,MACcuvF,EAAajtH,YAAcq/C,GAAA,CAAA5hB,EAAAO,YAAA,QAAA,CAAA+gI,IACzBl4J,OAAa,MAAO,CAAAkjC,EAAc,WAC7Cg2H,EAAS//J,OAASu3B,EAAav3B,MAAMg0B,WAdN,GAoBhCisI,EAAiB,WACrB,IAAM9sG,EAAa,SAAC7c,GAClB,OAAA7Y,EAAAA,YAAA,OAAA,CAAAC,MAAa4hI,EAAYt/J,MAAMk1D,QAC7Bz3B,CAAAA,EAAAO,YAAAsY,EAAA,KAAA,SAGEriB,EAAOisI,EAAUlgK,MACnB,GAAAmgK,EAAangK,QAAUs3F,GAAe8oE,QACxC,OAAOjtG,EAAWqB,GAEpB,GAAIvgC,SAAAA,EAAO,GAAI,CACP,IAAAtxB,EAAOsxB,EAAK,GAAGtxB,MAAQ,QAM7B,OAAOwwD,EAJL,CACEp6B,MAAOkjE,EACP1vE,QAASmoC,GACT/xD,IAAS6xD,EAEf,CACO,OAAA,MAEH4iF,EAAmB,WAEvB,IAAmB,IADIvwI,EAAfs4J,WACR,CAEA,IAAIhsG,EAAappB,EAAc,aAAc,CAAEtE,YAAaw6H,MACxD,GAAA9sG,EAAY,OAAA11B,EAAAO,YAAA,OAAA,CAAAN,MAAoB4hI,EAAYt/J,MAAMk1D,QAAA,CAAS/B,IAC/D,IAAmB,IAAfA,EAGA,OADSA,EAAAvlC,aAAA,EAAAA,EAAMmc,cAAc,aAAc,CAAEtE,YAAaw6H,IAAkB/5H,OAAQr/B,WACpF,CAPsB,GAYtBw5J,EAAe7hJ,EAAAA,UAAS,WAC5B,IAAK0gJ,EAAiBl/J,MAAc,MAAA,GAChC,GAAAmgK,EAAangK,QAAUs3F,GAAe8oE,QACxC,OAAOv5J,EAAMwwF,cACT,CAACioE,EAAYt/J,MAAMysB,QAAS6yI,EAAYt/J,MAAMq3F,eAAenoF,KAAK,KAClEowJ,EAAYt/J,MAAMysB,QAEpB,GAACyzI,EAAUlgK,MAAM3C,OAAjB,CACJ,IAAMsF,EAAOu9J,EAAUlgK,MAAM,GAAG2C,MAAQ,QACxC,OAAIkE,EAAMquD,OAAe2tE,EAAY7iI,MACrB,UAAT2C,EAAmB28J,EAAYt/J,MAAM+4B,MAAQumI,EAAYt/J,MAAMusB,OAHzC,CAI/B,IACM+zI,EAAiB9hJ,EAAAA,UAAS,WAAA,MAAM,CAAC8gJ,EAAYt/J,MAAMi3F,SAAUopE,EAAargK,UAC1Ek/C,EAAe1gC,EAAAA,UAAS,WAC5B,IAAI0gC,EAAe,CAAA,EASZA,OARH+/G,EAAWj/J,OAA8B,QAArBg/J,EAAWh/J,QAE/Bk/C,EADEj/B,GAASg/I,EAAWj/J,OACP,CAAEqwC,WAAYpY,GAAAA,OAAGgnI,EAAWj/J,MAAU,OAEtC,CAAEqwC,WAAY4uH,EAAWj/J,QAIrCk/C,CACT,IAGMghH,EAAYnpI,MAAqB,IACjCwpI,EAAcxpI,MAAuB,IACrCopI,EAAeppI,EAAAA,IAAIugE,GAAekpE,iBAClCC,EAAkB1pI,OAAI,GACtB2pI,EAAiB3pI,OAAI,GAErB4pI,EAAe,WACnBD,EAAe1gK,OAAQ,EACvBkgK,EAAUlgK,MAAQ,GAClBugK,EAAYvgK,MAAQ,GACpBmgK,EAAangK,MAAQs3F,GAAekpE,iBAgBhCI,EAAa,WAAA,IAAAliG,EAAA7c,GAAAG,GAAAmC,MAAA,SAAA+C,IAAA,IAAA25G,EAAAC,EAAAl7J,UAAA,OAAAo8C,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAAwE,GAAjE68I,EAA6CC,EAAAzjK,OAAA,QAAAqC,IAAAohK,EAAAphK,GAAAohK,KAAAlzI,aAAAA,EAAAA,EAAMizI,UACtEh6J,EAAMpI,KAAA,CAAA0oD,EAAAnjC,KAAA,EAAA,KAAA,CAAA,OAAAmjC,EAAA9D,OAAA,UAAA,KAAA,EAG2E,MADpE,UAAdw9G,EAAuBE,GAAUnzI,aAAM,EAANA,EAAMriB,KAAM1E,EAAMpI,MAfnDuiK,SADEr+J,SAEO,qBAFPA,EAAOxE,OAAOC,UAAUC,SAASC,KAAK2iK,GAAUrzI,aAAAA,EAAAA,EAAMriB,KAAM1E,EAAMpI,UAGzDuiK,EAAA,IAEF,mBAATr+J,IACFq+J,EAAa,IAEF,oBAATr+J,IACFq+J,EAAa,CAAA,GAERA,IAMgB,YAAdH,GAAyBE,GAAUnzI,aAAM,EAANA,EAAMriB,KAAM1E,EAAMpI,KAAMyiK,EAAalhK,OAAKmnD,EAAAnjC,KAAA,EAEhFqY,EAASA,WAAA,KAAA,EACXokI,EAAgBzgK,MAClB0gK,EAAe1gK,OAAQ,EAEV2gK,IACf,KAAA,EAAA,IAAA,MAAA,OAAAx5G,EAAAzC,OAzBoB,IAEhBs8G,EADEr+J,CAwBN,GAAAukD,EACF,KAAA,OAAA,WAZmB,OAAAwX,EAAA74D,MAAA6B,KAAA9B,UAAA,EAAA,GAcbu7J,EAAgB3iJ,EAAAA,UAA2B,WAAA,IAAA4iJ,EAAA,OAA4BA,QAA5BA,EAAMxzI,eAAAA,EAAM2F,wBAAgB6tI,EAAAA,EAAA7pI,EAAav3B,MAAMuzB,gBAC1FosI,EAAanhJ,EAAAA,UAAqB,WAAM,IAAA6iJ,EAC5C,GAAiBA,QAAjBA,EAAIx6J,EAAMg4J,aAANh4J,IAAaw6J,GAAbx6J,EAAaxJ,OAAQ,OAAOwJ,EAAMg4J,MACtC,IAAKh4J,EAAMpI,KAAM,MAAO,GACxB,IAAMqD,EAAQ,GAAAm2B,OAAGpxB,EAAMpI,MAAO6iK,YAAY,OAAQ,EAC5CC,EAAY,GAAAtpI,OAAGpxB,EAAMpI,MAAOF,MAAMuD,EAAQ,GACzC,OAAAm/J,GAAUrzI,aAAM,EAANA,EAAMixI,MAAOh4J,EAAMpI,OAASwiK,GAAUrzI,aAAAA,EAAAA,EAAMixI,MAAO0C,IAAc,EACpF,IAEMC,EAAA,WAAA,IAAAx2H,EAAA6W,GAAAG,GAAAmC,MAAyB,SAAAwM,EAAOvF,GAAkE,IAAAq2G,EAAAngK,EAAA,OAAA0gD,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EAWxB,IAVxE1iB,EAAiC,CACrCi/J,YAAa,GACbL,UAAW,GACXrB,MAAO,GACP6C,WAAY,GACZC,eAAe,IAEV9C,MACO,QAAZzzG,EACIu0G,EAAW3/J,MACX2/J,EAAW3/J,MAAMinC,QAAO,SAACnB,GAAA,OAAUA,EAAKslB,SAAW,YAAcA,MACnEu0G,EAAW3/J,MAAM3C,gBAAUokK,EAACngK,EAAOu9J,aAAP4C,OAAAA,EAAcpkK,OAAQ,CAAAuzD,EAAA5sC,KAAA,EAAA,KAAA,CAAA,OAAA4sC,EAAAvN,OAAA,SAC7C/hD,GAAA,KAAA,EAEc,OAAvBA,EAAOqgK,eAAgB,EAAA/wG,EAAA5sC,KAAA,EACGk6I,GAASl+J,EAAMA,MAAOsB,EAAOu9J,OAAK,KAAA,EAqB5D,OArBAv9J,EAAOogK,kBACPpgK,EAAO4+J,UAAY5+J,EAAOogK,WACvBz6H,QAAO,SAACnB,GAAA,OAAyB,IAAhBA,EAAKxkC,MAAe,IACrCuK,KAAI,SAACi6B,GAaG,OAZP3nC,OAAO4F,KAAK+hC,GAAM3uB,SAAQ,SAAC9X,GAEzB,IAAKymC,EAAK3sB,SAAWgoJ,EAAcnhK,MAAMX,GAAM,CAC7C,IAAMZ,EAAOwgB,GAASpY,EAAMy5C,OAASz5C,EAAMy5C,MAAQz5C,EAAMpI,KAEzDqnC,EAAK3sB,SCxQwCqiB,EDwQrB2lI,EAAcnhK,MAAMX,GCxQcuiK,EDwQR,CAChDnjK,KAAAA,EAEAy/J,SAAUp4H,EAAKzmC,IC1QtBm8B,EAAI/4B,QAAQ,cAAc,SAACqjB,EAAG85B,UAAiBgiH,EAAKhiH,EAAKsuB,SAAW,MD4QjE,CC7QI,IAA2C1yC,EAAaomI,CD8Q9D,IACO97H,CACT,IAEKxkC,EAAAi/J,YAAcj/J,EAAOogK,WAAWz6H,QACrC,SAACnB,UAAyB,IAAhBA,EAAKxkC,QAAmBwkC,EAAK3sB,SAAyB,YAAd2sB,EAAKnjC,IAAS,IAClEiuD,EAAAvN,OAAA,SAEO/hD,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAsvD,EAAAlM,OAAA,GAAAiM,EACT,KAAA,OAxCM6wG,SAAAjxG,GAAA,OAAAvlB,EAAAnlC,MAAA6B,KAAA9B,UAAA,EAAA,GAyCAi8J,EAAA,WAAA,IAAAjnC,EAAA/4E,GAAAG,GAAAmC,MAAkB,SAAA2M,EACtB1F,EACA8zG,GACuC,IAAA4C,EAAAC,EAAAC,EAAAnD,EAAA6C,EAAA,OAAA1/G,GAAAG,MAAA,SAAA4O,GAAA,cAAAA,EAAAtM,KAAAsM,EAAA/sC,MAAA,KAAA,EAGVk7I,OAF7BuB,EAAgBzgK,OAAQ,EAExBiiK,EAAqBjiK,MAAQk/J,EAAAA,EAAAA,KAAAA,EAOnBsC,EAAuBp2G,GAAO,KAAA,EAchB,OAdgB02G,EAAA/wG,EAAA7N,KALzB6+G,EAAAD,EAAbvB,YACWyB,EAAAF,EAAX5B,UACArB,EAAAiD,EAAAjD,MACA6C,EAAAI,EAAAJ,WACAI,EAAAH,gBAIApB,EAAYvgK,MAAQ+hK,EACpB7B,EAAUlgK,MAAQgiK,GAGhBnD,EAAMxhK,SACR8iK,EAAangK,MAAQgiK,EAAe3kK,OAASi6F,GAAe4qE,KAAO5qE,GAAe8oE,SAGhFM,EAAe1gK,OACJ2gK,IAEfF,EAAgBzgK,OAAQ,EAAA+wD,EAAA1N,gBAAAvjD,EAAA,CAAA,EAGrB+G,EAAMpI,KAAiC,IAA1BujK,EAAe3kK,QAAsBqkK,IAAA,KAAA,GAAA,IAAA,MAAA,OAAA3wG,EAAArM,OAAA,GAAAoM,EAEvD,KAAA,OAAA,SAhCMD,EAAA6tG,GAAA,OAAA9jC,EAAA/0H,MAAA6B,KAAA9B,UAAA,EAAA,GAiCAu8J,EAAA,WAAA,IAAA3mC,EAAA35E,GAAAG,GAAAmC,MAAe,SAAAi+G,EAAuBh3G,GAAqE,IAAAi3G,EAAAL,EAAAN,EAAA,OAAA1/G,GAAAG,MAAA,SAAAmgH,GAAA,cAAAA,EAAA79G,KAAA69G,EAAAt+I,MAAA,KAAA,EAAA,OAAAs+I,EAAAt+I,KAAA,EACvDw9I,EAAuBp2G,GAAO,KAAA,SAAAi3G,EAAAC,EAAAp/G,KAAnE8+G,EAAAK,EAAXnC,UAA2BwB,IAAAA,kCAGhC76J,EAAMpI,KAAiC,IAA1BujK,EAAe3kK,QAAsBqkK,IAAA,KAAA,EAAA,IAAA,MAAA,OAAAY,EAAA59G,OAAA,GAAA09G,EAEvD,KAAA,OANMD,SAAAxD,GAAA,OAAAnjC,EAAA31H,MAAA6B,KAAA9B,UAAA,EAAA,GAkBA5F,EAAQwe,EAAAA,UAAoB,WAAA,OAAMoP,eAAAA,EAAMriB,OAAQ01J,GAAUrzI,eAAAA,EAAMriB,KAAM1E,EAAMpI,SAC5EyiK,EAAenqI,EAAAA,SAAe,GAC5Bt4B,EAASssC,EAAAA,OAAOlkC,GAAhBpI,KACF0yC,EAA2BxF,EAAAA,SAAS,CACxCltC,KAAAA,EACAkiK,aAAAA,EACAC,WAAAA,EACA1C,SAAU2D,EACVM,aAAAA,EACAI,mBAnByB,SAACC,IACrBA,GAAoB5jK,EAAQ4jK,MACF,IAA3BA,EAAgBnlK,SAClB6iK,EAAUlgK,MAAQ,GAClBmgK,EAAangK,MAAQs3F,GAAe8oE,SAE5BF,EAAAlgK,MAAQwiK,EAAgB32J,KAAI,SAACi6B,GAAA,OAAAzI,GAAAA,GAAA,CAAA,EAAeyI,GAAA,CAAA,EAAA,CAAMxkC,QAAQ,GAAA,IACpE6+J,EAAangK,MAAQs3F,GAAe4qE,SAetC9lI,EAAAA,WAAU,WACK8kI,EAAAlhK,MAAQuX,GAAUvX,EAAMA,OAC/B4tB,SAAAA,EAAAmY,SAAS97B,KAAKknC,EACtB,IAEAkH,EAAAA,iBAAgB,WACVzqB,IAAMA,EAAKmY,SAAWnY,aAAM,EAANA,EAAMmY,SAASkB,QAAO,SAACgnB,GAAA,OAAQA,IAAQ9c,KACnE,IAEA5I,EAAAA,MACEvoC,EAAA6hD,GAAAG,GAAAmC,MACA,SAAAs+G,IAAA,OAAAzgH,GAAAG,MAAA,SAAAugH,GAAA,cAAAA,EAAAj+G,KAAAi+G,EAAA1+I,MAAA,KAAA,EAAA,OAAA0+I,EAAA1+I,KAAA,EACQ69I,EAAgB,UAAQ,KAAA,EAAA,IAAA,MAAA,OAAAa,EAAAh+G,OAAA,GAAA+9G,EAChC,KACA,CAAEzkF,MAAM,IAGVz1C,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAMpI,KAAM23I,KAAKC,UAAUxvI,EAAMg4J,QAAQ3vJ,KAAK,IAAG,IACxD,WACE2yJ,EAAgB,SAClB,IAGI,IAAAI,EAAuBlrI,EAAAA,SAAa,GACpCmoI,EAAmB1gJ,EAAAA,UAAS,WAC5B,OAAAmB,GAAUsiJ,EAAqBjiK,OAAeiiK,EAAqBjiK,MACnE2f,GAAU9Y,EAAMq4J,kBAA0Br4J,EAAMq4J,iBAC7CtxI,aAAAA,EAAAA,EAAMsxI,gBACf,IAEM1hI,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAC7B8gJ,EAAYt/J,MAAM82F,SAClBsoE,GAAqBG,EAAoBv/J,MAAO6G,EAAMpI,MAAIqB,EAAAA,EAAA,GAEvDw/J,EAAYt/J,MAAM+2F,iBAAmB4rE,EAAS3iK,OAC9Cs/J,EAAYt/J,MAAMg3F,kBAAoB4rE,EAAU5iK,WAG/C2iK,EAAWnkJ,EAAAA,UAAgB,WACzB,IAAA44E,EAAOrtD,EAAc,QACvB,OAAAqtD,EAAM35D,EAAAO,YAAA,MAAA,CAAAN,MAAmB4hI,EAAYt/J,MAAMo3F,MAAA,CAAOA,IAC/C,IACT,IACMwrE,EAAYpkJ,EAAAA,UAAgB,WAAM,IAAAqkJ,EAChCC,EAAe,SAAChzI,GACpB,OAAA2N,EAAAA,YAAA,MAAA,CAAAC,MAAY4hI,EAAYt/J,MAAMm3F,MAAO3nE,MAAOM,GACzC,CAAAA,KAGCmE,EAAOisI,EAAUlgK,MACvB,OAAIk/J,EAAiBl/J,OAAjBk/J,MAA0BjrI,GAAO4uI,QAAAA,EAAP5uI,EAAO,cAAA4uI,GAAPA,EAAW1pJ,QAChC2pJ,EAAa7uI,EAAK,GAAG9a,SAE1BonJ,EAAYvgK,MAAM3C,OACbylK,EAAavC,EAAYvgK,MAAM,GAAGmZ,SAEpC,IACT,IAEMsyG,EAAWjtG,EAAAA,UAAgB,WACzB,IAAAukJ,EAAUh5H,EAAc,QAC9B,IAAKg5H,EAAgB,OAAA,KACf,IAAAC,EAAa,CAAA,GAAA/qI,OAAIsnI,EAAoBv/J,yBAAiBurB,EAAYvrB,eAAc6iI,EAAY7iI,OAClG,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAmBslI,GAAA,CAAaD,GAClC,IAEMxoE,+BAAa,SAAA0oE,IAAA,OAAAjhH,GAAAG,MAAA,SAAA+gH,GAAA,cAAAA,EAAAz+G,KAAAy+G,EAAAl/I,MAAA,KAAA,EAAA,OAAAk/I,EAAAl/I,KAAA,EACX69I,EAAgB,QAAM,KAAA,EAAA,IAAA,MAAA,OAAAqB,EAAAx+G,OAAA,GAAAu+G,EAC9B,KAAA,OAAA,8CAKA,OAJAlrI,EAAAA,QAAQy/D,GAAsB,CAC5B+C,WAAAA,IAGK,WAAA,OAAA98D,EAAAA,YAAA,MAAA,CAAAC,MACOF,EAAQx9B,OAAA,CACjBykH,IAAYhnF,EAAAO,YAAA,MAAA,CAAAN,MACD4iI,EAAetgK,MAAA05B,MAAcwlB,EAAal/C,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MACxC4hI,EAAYt/J,MAAMk3F,iBAAA,CAC3BntD,EAAc,WACdqtG,MAEFurB,EAAS3iK,MACTyrH,EAASzrH,MACT4iK,EAAU5iK,UAInB,IE5aamjK,GAAA,CAEbnkH,MAAOrW,QAEPp9B,KAAM,CACJ5I,KAAMxE,OACN6rB,QAAS,WAAT,MAAgB,EAAC,GAGnB6O,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXuJ,aAAc,CACZ5wB,KAAMxE,QAGRilK,yBAA0B,CACxBzgK,KAAMnF,OAGRuhC,GAAI,CACFp8B,KAAM/C,OACNoqB,aAAS,GAGXg1I,WAAY,CACVr8J,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,OAAOjnB,SAASinB,EAC3C,GAGF25H,WAAY,CACVt8J,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,SAGXiyB,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,UAAUjnB,SAASinB,EACzC,GAGF+9H,qBAAsB,CACpB1gK,KAAMgmC,QACN3e,SAAS,GAGXorE,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGX6D,aAAc,CACZlrB,KAAMgmC,QACN3e,aAAS,GAGX41I,qBAAsB,CACpBj9J,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASjnB,SAASinB,EACpC,GAGFu7H,UAAW,CACTl+J,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,WAAWjnB,SAASinB,EACvC,GAGFu5H,MAAO,CACLl8J,KAAMxE,QAGRmlK,mBAAoB,CAClB3gK,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,GAAI,SAAU,QAAQjnB,SAASinB,EACzC,GAGF45H,iBAAkB,CAChBv8J,KAAMgmC,QACN3e,SAAS,GAGXm1I,WAAY,CACVx8J,KAAM,CAACgmC,QAAShoC,UAChBqpB,aAAS,GAGXu5I,yBAA0B56H,QAE1B66H,QAAS7iK,SAET8iK,SAAU9iK,SAEVu1F,WAAYv1F,UC/Fd+iK,GAAeznI,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAmB,IAAV0gD,EAAAne,EAAAme,OACPxd,EAAgB3C,KACtBwrC,EAA+B7nC,SAAOlkC,GAA9BgyB,EAAA+5C,EAAA/5C,SAAUu8D,EAASxiB,EAATwiB,SAClBr9D,EAAAA,QAA8B,eAAgB,CAC5Cc,SAAAA,IAEFd,EAAAA,QAA8B,eAAgB,CAC5Cq9D,SAAAA,IAGI,IAAAuuE,EAAU5sI,MAAqB,MAC/BgP,EAAWhP,MAAuB,IAElC0pF,EAWF11E,SAAOlkC,GAVTq4J,EAAAz+C,EAAAy+C,iBACAD,EAAAx+C,EAAAw+C,WACAD,EAAAv+C,EAAAu+C,WACAzzJ,EAAAk1G,EAAAl1G,KACAyzC,EAAAyhE,EAAAzhE,MACAnxB,EAAA4yF,EAAA5yF,aACA+xI,EAAAn/C,EAAAm/C,qBACAf,EAAAp+C,EAAAo+C,MACAtrI,EAAAktF,EAAAltF,aACAstI,EAAApgD,EAAAogD,UAEF9oI,EAAAA,QACEw/D,GACA5rD,WAAS,CACPuzH,iBAAAA,EACAD,WAAAA,EACAD,WAAAA,EACAzzJ,KAAAA,EACAyzC,MAAAA,EACAnxB,aAAAA,EACA+xI,qBAAAA,EACAf,MAAAA,EACAtrI,aAAAA,EACAstI,UAAAA,EACA96H,SAAAA,EACAgE,cAAAA,KAIE,IAAA8H,EAAiB7Z,GAAe,QAChCsnI,EAAc3oE,KACditE,EAAYplJ,EAAAA,UAAS,WAAA,MAAM,CAC/B8gJ,EAAYt/J,MAAM4tB,KAAA9tB,EAAAm4B,CAAAA,EAAAA,GAAAA,OACZ4Z,EAAe7xC,MAAiB6G,WAAiB,WAAjBA,EAAMo1C,YAGxC4nH,EAAyB7rI,GAAe,aAExC8rI,EAAgB,SAACxiK,GACrB,GAAIqe,GAAUre,GAAgB,MAAA,GAC9B,IAAOyiK,EAA8BvgJ,GAAlBrlB,OAAO4F,KAAKzC,GAAM,GAAtB,GACf,GAAIuF,EAAMy8J,mBAAoB,CAC5B,IAAMU,EAAe5E,GAAqByE,EAAuB7jK,MAAO+jK,GACxEzhI,EAAS0hI,EACX,CACA,IAAMC,EAAS3iK,EAAOyiK,GAClB,OAACnlK,EAAQqlK,GACNA,EAAOh9H,QAAO,SAACnB,GAAA,OAAUA,EAAKxkC,MAAM,IAAE,GAAG6X,QADnB,IAIzBmpB,EAAW,SAAC6pB,GAChB,IAAOhd,EAAoD3rB,GAA7CmgJ,EAAQ3jK,MAAMkkK,uBAAuB/3G,GAAQ,GAAjD,GACJi3D,EAAWv8G,EAAMy8J,mBACnBlgD,GACFj0E,GAAOA,EAAIg1H,eAAe,CAAE/gD,SAAAA,KAI1BghD,EAAe,SAAC3lK,EAAuB4lK,GAC3C,OAAKA,IAAWzlK,EAAQylK,KACa,IAA9BA,EAAOtqI,QAAA9B,GAAAA,OAAWx5B,KAErB6lK,EAAuB,SAAiBC,GAC5C,IAAMjjK,EAA8BijK,EAAmB3xH,QAAO,SAAClvB,EAAGo+B,GAAQ,OAAA3jD,OAAOq5B,OAAO9T,GAAK,CAAC,EAAGo+B,EAAM,GAAA,CAAE,GAMlG,OALP3jD,OAAO4F,KAAKzC,GAAQ6V,SAAQ,SAAC9X,IACP,IAAhBiC,EAAOjC,WACFiC,EAAOjC,EAElB,MACO0gB,GAAQze,IAAiBA,GAE5B48J,EAAA,WAAA,IAAAxtG,EAAA7O,GAAAG,GAAAmC,MAAW,SAAA+C,EAAOprB,GAAgD,IAAA0oI,EAAA9lG,EAAA2lG,EAAAnrC,EAAA9tE,EAAAq5G,EAAAxwI,EAAA92B,EAAAmE,EAAAojK,EAAA,OAAA1iH,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAIX,OAHnDqgJ,GAD8D3lG,EAChB5iC,GAAS,IAAvDuoI,WAAQj5G,QAAAA,OAAU,IAAA8tE,EAAA,MAAAA,EAAOgmC,EAAiBxgG,EAAjBwgG,iBAC3BjrI,EAAO8R,EAAS/lC,MACnBinC,QAAO,SAAC0J,UAAUjtC,EAAWitC,EAAMutH,WAAakG,EAAaxkK,OAAO+wC,EAAMlyC,MAAO4lK,EAAO,IACxFx4J,KAAI,SAAC8kC,GAAA,OAAUA,EAAMutH,SAAS9yG,EAAS8zG,MAAiB/3G,EAAAnjC,KAAA,EACzCjQ,QAAQs/H,IAAIp/G,GAAI,KAAA,EAMjC,OANK92B,EAAMgqD,EAAAjE,KACN5hD,EAASgjK,EAAqBnnK,GAC9BunK,EAAaZ,EAAcxiK,GACd,QAAnBuF,EAAAA,EAAMqvF,kBAAa,IAAAsuE,GAAnB39J,EAAAA,KAAAA,EAAmB,CACjBy3J,eAAgBh9J,EAChBojK,WAAAA,IACDv9G,EAAA9D,OAAA,SACM/hD,GAAA,KAAA,EAAA,IAAA,MAAA,OAAA6lD,EAAAzC,OAAA,GAAAwC,EACT,KAAA,OAbMg3G,SAAA3tG,GAAA,OAAAG,EAAA7qD,MAAA6B,KAAA9B,UAAA,EAAA,GAcAu8J,EAAA,WAAA,IAAAn3H,EAAA6W,GAAAG,GAAAmC,MAAe,SAAAwM,EAAOzqB,GAA0D,IAAA00F,EAAAypC,EAAAM,EAAAv5G,EAAAn3B,EAAA92B,EAAA,OAAA6kD,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EAIvC,OAHrCqgJ,GAD4EzpC,EAChD10F,GAAU,CAAC,GAAvCm+H,OAAQM,EAAA/pC,EAAAxvE,QAAAA,OAAA,IAAAu5G,EAAU,MAAMA,EAC1B1wI,EAAO8R,EAAS/lC,MACnBinC,QAAO,SAAC0J,UAAUjtC,EAAWitC,EAAMwxH,eAAiBiC,EAAaxkK,OAAO+wC,EAAMlyC,MAAO4lK,EAAO,IAC5Fx4J,KAAI,SAAC8kC,GAAU,OAAAA,EAAMwxH,aAAa/2G,MAAQwF,EAAA5sC,KAAA,EAC3BjQ,QAAQs/H,IAAIp/G,GAAI,KAAA,EAAtB,OAAN92B,EAAMyzD,EAAA1N,KAAA0N,EAAAvN,gBACLihH,EAAqBnnK,IAAG,KAAA,EAAA,IAAA,MAAA,OAAAyzD,EAAAlM,OAAA,GAAAiM,EACjC,KAAA,OAPMwxG,SAAAtxG,GAAA,OAAA7lB,EAAAnlC,MAAA6B,KAAA9B,UAAA,EAAA,GAQAg/J,EAAe7tI,EAAAA,MAWf8tI,EAAA,WAAA,IAAAxpC,EAAAx5E,GAAAG,GAAAmC,MAAS,SAAA2M,EAAO5qB,GAA0D,OAAA8b,GAAAG,MAAA,SAAA4O,GAAA,cAAAA,EAAAtM,KAAAsM,EAAA/sC,MAAA,KAAA,EAC9E4gJ,EAAa5kK,MAAQkmC,EACrB3C,GAAcogI,EAAQ3jK,OAAK,KAAA,EAAA,IAAA,MAAA,OAAA+wD,EAAArM,OAAA,GAAAoM,EAC7B,KAAA,OAHM+zG,SAAAnG,GAAA,OAAArjC,EAAAx1H,MAAA6B,KAAA9B,UAAA,EAAA,GAKAk/J,EAAc/tI,EAAAA,MAsCb,OAFPwwB,EAAO,CAAE22G,SAAAA,EAAU2G,OAAAA,EAAQ7jH,MArBb,SAAwB9a,GACnC4+H,EAAY9kK,MAAgBkmC,EAC7By9H,EAAQ3jK,MAAMghD,SAmBkB+jH,cAhBZ,SAACV,GACZt+H,EAAA/lC,MAAMmX,SAAQ,SAACw5B,GAClBjtC,EAAWitC,EAAMgwH,eAAiByD,EAAaxkK,OAAO+wC,EAAMlyC,MAAO4lK,IACrE1zH,EAAMgwH,cAEV,KAW+C4B,mBATtB,SAACC,GACpB,IAAAz+J,EAAO5F,OAAO4F,KAAKy+J,GACzB,GAAKz+J,EAAK1G,OAAV,CACM,IAAA42B,EAAO8R,EAAS/lC,MACnBinC,QAAO,SAAC0J,UAAUjtC,EAAWitC,EAAM4xH,qBAAuBx+J,EAAKsa,YAAA4Z,OAAY0Y,EAAMlyC,MAAO,IACxFoN,KAAI,SAAC8kC,GAAU,OAAAA,EAAM4xH,mBAAmBC,EAAgB7xH,EAAMlyC,UACjEsV,QAAQs/H,IAAIp/G,EAJM,GAOiDkuI,aAAAA,IAE9D,WAAA,OAAA1kI,EAAAA,YAAA,OAAA,CAAA1G,IACM4sI,QAAgBC,EAAU5jK,MAAOyjK,SAAU,SAACpiK,GAAA,OAtDxC,SAACA,GACZwF,EAAMw8J,sBAAwBhiK,IAChCA,EAAEwzE,iBACFxzE,EAAE24E,mBAEJkkF,EAAS0G,EAAa5kK,OAAO4hD,MAAK,SAACl+B,GAAM,IAAAshJ,EACtB,QAAjBn+J,EAAAA,EAAM48J,gBAAW,IAAAuB,GAAjBn+J,EAAAA,KAAAA,EAAiB,CAAEy3J,eAAgB56I,EAAGghJ,WAAYZ,EAAcpgJ,GAAIriB,EAAAA,GACtE,IACAujK,EAAa5kK,WAAQ,EA8CwCyjK,CAASpiK,EAAC,EAAAmiK,QAAY,SAACniK,GAAM,OAtC5E,SAACA,GAAuB,IAAA4jK,EAClCp+J,EAAMw8J,sBAAwBhiK,IAChCA,EAAEwzE,iBACFxzE,EAAE24E,mBAEJj0C,EAAS/lC,MACNinC,QACC,SAAC0J,GAAA,IAAAu0H,EAAA,OACCxhK,EAAWitC,EAAMiwH,aAAewD,EAAaxkK,OAAO+wC,EAAMlyC,cAAOymK,EAAAJ,EAAY9kK,aAAZklK,WAAAA,EAAAA,EAAmBb,OAAkB,IAEzGltJ,SAAQ,SAACw5B,GAAA,IAAAw0H,EAAA,OAAUx0H,EAAMiwH,mBAAWuE,EAAAL,EAAY9kK,aAAO,IAAAmlK,OAAA,EAAnBA,EAAmBxiK,SAC1DmiK,EAAY9kK,WAAQ,EACd,QAAN6G,EAAAA,EAAM28J,eAAA,IAAAyB,GAANp+J,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,IA0BwEmiK,CAAQniK,EAC/F,GAAA0oC,CAAAA,EAAc,aAGrB,ICvLWq7H,GAAO53H,GAAYk2H,IACnB2B,GAAW73H,GAAY6xH,ICHrBiG,GAAA,CAEbC,aAAc58H,QAEdzP,QAAS,CACPv2B,KAAMgmC,QACN3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMgmC,QACN3e,aAAS,GAGXm0F,eAAgBx1E,QAEhB3e,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBlC,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGXorE,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXhqB,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,SACvB3e,aAAS,GAGXmlC,SAAUxuD,SAEVytC,QAASztC,UCnDE6kK,GAOR7nK,OAAO,qBAEC8nK,GAA4C9nK,OAAO,sBCEhE+nK,GAAezpI,kBAAgB,CAC7Bx9B,KAAM,SACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATwiC,EAAAD,EAAAC,MACP2vD,EAAWjiE,EAAAA,MACjB67C,EAAgC7nC,SAAOlkC,GAOvCgsE,EAAArvD,GANwCooD,GADhCgH,EAAA15C,QAAoB05C,EAAX/G,WAIfhlE,EAAMs3G,eACNt3G,EAAMsoD,SACN,WACF,GANO+vD,EAAcrsC,EAAA,GAAAssC,EAAetsC,EAAA,GAQ9B8yF,EAAennJ,EAAAA,UAAS,WAAA,OAAOonJ,EAAa/+J,EAAM7G,QAAU4lK,EAAW5lK,MAAQk/G,EAAal/G,SAE5F4lK,EAAavuI,EAAOA,OAAAmuI,QAAwB,GAE5CD,EAAe/mJ,EAAAA,UAAS,WAAA,OAAMmqB,QAAQ9hC,EAAM0+J,eAAgBK,aAAA,EAAAA,EAAYL,kBAExE7tH,EAAc,SAACr2C,GACnBA,EAAE24E,mBAGE6rF,EAAe,SAACxkK,GAAkB,IAAA21C,EAClC,IAAAhF,EAAWhyC,QAASgnG,EAAWhnG,QAC7B,QAAN6G,EAAAA,EAAMunC,eAAA,IAAA4I,GAANnwC,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,KAEdskK,EAAa3lK,OAAUulK,EAAavlK,OAExC,GAAI4lK,EAAY,CACd,IAAM5lK,EAAQ2lK,EAAa3lK,OAASulK,EAAavlK,WAAQ,EAAY6G,EAAM7G,MAC3E4lK,EAAWh8B,SAAS5pI,EAAO,CAAEqB,EAAAA,EAAG5C,KAAMmnK,EAAWnnK,MACnD,KAAO,CACL,IAAMuB,GAAQulK,EAAavlK,QAAS2lK,EAAa3lK,MACjCm/G,EAAAn/G,EAAO,CAAEqB,EAAAA,GAC3B,GAGIg9F,EAAc7/E,EAAAA,UAAS,WAAA,OAC3B0b,GAAc,CACZ8xB,MAAO3iB,EAAMwsD,QACbgE,KAAMxwD,EAAMosD,OACZqwE,QAASz8H,EAAMysD,UACfiwE,MAAO18H,EAAM2sD,QACbgwE,UAAW38H,EAAM48H,aAClB,IAEGC,EAAe1nJ,EAAAA,UAAS,WACtB,IAAA6xE,EAAS,GAAAp4D,OAAAt5B,EAAIR,OAAO4F,KAAKs6F,EAAYr+F,QAAK,CAAG,QAAS,WAAU6L,KACpE,SAAC2vB,qBAAaA,EAAI,GAAG03E,eAAYj7E,OAAIuD,EAAIj9B,MAAM,GAAC,IAE3C,OAAAwiB,GAAKsoB,EAAOgnD,EACrB,IAIM81E,EAAgB3nJ,EAAAA,UAAS,WAAA,OAAMonJ,aAAAA,EAAAA,EAAY/sI,YAC3CutI,EAAgB5nJ,EAAAA,UAAS,WAAA,OAAMonJ,aAAAA,EAAAA,EAAYxwE,YAC3CpjD,EAAad,GAAY,CAAES,cAAew0H,IAC1Cn/D,EAAa7Q,GAAY,CAAEO,cAAe0vE,IAG1C3mE,EAAajhF,EAAAA,UAAS,WAAA,MAAO,CACjC/f,KAAMmnK,EAAaA,EAAWnnK,KAAOoI,EAAMpI,KAC3Cy6B,QAASysI,EAAa3lK,MACtB64B,SAAUmZ,EAAWhyC,MACrBo1F,SAAU4R,EAAWhnG,MACrBA,MAAO6G,EAAM7G,MACb,IAGM04B,EAAWR,KAAXQ,OACF2tI,EAAchvI,EAAOA,OAAAouI,QAAyB,GAC9Ca,EAAetuI,GAAe,gBAC9B6Z,EAAiB7Z,GAAe,SAChCw7C,EAAYh1D,EAAAA,UAAS,WAAA,OAAO6nJ,EAAcC,EAAatmK,MAAQ6xC,EAAe7xC,SAC9Ei1F,EAAaz2E,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC7Bu7C,EAAUxzE,OAAAF,EAAAA,EAEV44B,GAAAA,EAAO14B,MAAMk5B,QAAUumE,EAAWz/F,MAAMk5B,SACxCR,EAAO14B,MAAM64B,SAAW4mE,EAAWz/F,MAAM64B,cAKxCkR,EAAgBjC,KAEtB,OAAO,WAAA,OAAArK,EAAAO,oBAAAoN,aAAA,CAAArU,IAEEiiE,QACE/D,EAAWj1F,OACdkmK,EAAalmK,gBACPgyC,EAAWhyC,WAAQ,EAAY,YAChC6lK,IAAApoI,CAAAA,EAAAA,oBAAA2N,aAAA,CAAAzoC,KAAA,QAAA+6B,MAAA,GAAAzF,OAIGu7C,EAAUxzE,MAAA,aAChBq+F,EAAYr+F,MACZy/F,EAAWz/F,MAAA,CAAAouC,QACNsJ,EAAAnF,SAAA,KAAA,aAEGtzB,GAASpY,EAAM7G,OAAS,IAAAi4B,OAAIpxB,EAAM7G,MAAW6G,KAAAA,EAAM7G,MAAA,qBAC3CulK,EAAavlK,YAAS,IAC5C,MAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACgBu7C,EAAUxzE,MAAgB,YAAA,MAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAC1Bu7C,EAAUxzE,mBAAiB+pC,EAAc,UAAW,aAG1E,ICpHaw8H,GAAA,CAEbhB,aAAc58H,QAEd9P,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXvrB,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGXjO,QAAS,CACPpZ,KAAMnF,OAGR43F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAUjnB,SAASinB,EACtC,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,SACvB3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,OAAQ8oC,SACvB3e,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,OAAQ8oC,UAGzBwF,QAAS,CACPxrC,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,iBAAkB,kBAAkBjnB,SAASinB,EAClE,GAGF6pB,SAAUxuD,6kBChEZ,IAAA6lK,GAAevqI,kBAAgB,CAC7Bx9B,KAAM,eACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATwiC,EAAAD,EAAAC,MACbtR,EAAAA,QAAQ0tI,GAAyB95H,WAAS,CAAA,IAEpC,IAAA86H,EAAajoJ,EAAAA,UAAS,WAC1B,IAAM7e,EAAM09B,GAAAA,GACPx2B,CAAAA,EAAAA,GACAka,GACDsoB,EACAlrC,OAAO4F,KAAKslC,GAAOpC,QAAO,SAAC5nC,GAAQ,OAAAA,EAAIs5J,WAAW,KAAK,MAIpD,OAAAh5J,CACT,IAEMoqC,EAAgBjC,KAEf,OAAA,WAAA,IAAAoR,EAvBgB90B,EAuBhB,OAAAqZ,cAAAipI,GAAiBD,EAAWzmK,MAvBZ,mBAAAokB,IAuBoB2lB,EAAc,UAAW,WAvB7CqP,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAuBoD80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,IAC7E,sBC3BWytH,GAAkC,oBAAXhqI,OAAyBA,YAAS,EA4B/D,SAASiqI,GACd/sI,EAEAjoB,GAEA,IAEIy4E,EAf4B7qD,EAYhCzjB,EAAAnW,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAmC,CAAA,EAEnCihK,EAAuD9qJ,EAA/C4gB,OAAAA,OAASgqI,IAAAE,EAAAF,GAAAE,EAAkBC,KAAoB/qJ,EAAA2e,IAEjDqsI,EAAcpqI,GAAU,qBAAsBA,EAE9CqqI,EAAU,WACV38E,IACFA,EAASja,aACEia,OAAA,IAIT48E,EAAY1+H,EAAAA,OAChB,WAAA,OA9BiD2+H,EA8B9BrtI,EA7BfstI,EAAQC,QAAMF,GACkBG,QAAtCA,EAAQF,aAAAA,EAAAA,EAAuBx8E,WAAO08E,IAAAA,EAAAA,EAAAF,EAFjC,IAA8CD,EAAkDG,EAC/FF,CA8BJ,IAAA,SAAC3tI,GACSwtI,IAEJD,GAAepqI,GAAUnD,IAChB6wD,EAAA,IAAIi9E,iBAAiB11J,IACvBy+D,QAAQ72C,EAAIstI,EAEzB,GACA,CAAEj1G,WAAW,IAGTnN,EAAO,WACHsiH,IACEC,KAKL,OA7CyBznI,EA2CdklB,EA1Cd6iH,qBACFC,EAAAA,eAAehoI,GA2CV,CACLunI,YAAAA,EACAriH,KAAAA,EAEJ,okBCvCA,IAAAkqE,GAAe3yF,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAA+rE,EAA8B7nC,SAAOlkC,GAC8DgsE,EAAArvD,GAA/DooD,GAD5BgH,EAAA5yE,MAAkB4yE,EAAX/G,WACkDhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAG1B40F,EAAgB1wI,EAAAA,MAChBuvI,EAAetuI,GAAe,gBACpC8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KAEVuvI,EAAkD,SAAC1nK,EAAOmxC,GAC1DnxB,GAAQhgB,EAAO44F,EAAW54F,QAC9B64F,EAAc74F,EAAOmxC,KCzCX,SACds2H,EACA5uE,GAEM,IAAA8uE,EAAoB,SAACtmK,GACzB,IAAMumK,EAAavmK,EAAEw4B,OAAuB8H,cAAc,SAC1D,GAAKimI,IAEiB5oD,GAAiBtgH,KAAK2C,EAAEhC,MAAQ2/G,GAAiBtgH,KAAK2C,EAAE6zE,OAC3D,CACjB7zE,EAAEwzE,iBAEF,IAAMtpE,EAAOq8J,EAAUt4H,QACnB,GAAAs4H,EAAU1uI,SAAW3tB,EAAKg6J,aACd1sE,OAAA,EAAW,CAAEx3F,EAAAA,QACtB,CAEL,IAAIrB,EAAoCgkD,MAAMnkD,OAAO0L,EAAKvL,QAA+BuL,EAAKvL,MAA1BH,OAAO0L,EAAKvL,OAEvEA,EAAAif,GAASjf,IAAU,CAAE6nK,MAAM,EAAMC,OAAO,GAAQ9nK,IAAWA,EAE5DA,EAAAif,GAASjf,IAAuB,MAAbA,EAAM,GAAaA,EAAMyC,QAAQ,KAAM,IAAMzC,EAC1D64F,EAAA74F,EAAO,CAAEqB,EAAAA,GACzB,CACF,GAGF+6B,EAAAA,WAAU,WACL8D,GAAAunI,EAAcznK,MAAO,UAAW2nK,EACrC,IAEAhyG,EAAAA,eAAc,WACRl1B,GAAAgnI,EAAcznK,MAAO,UAAW2nK,EACtC,GACF,CDWII,CAAYN,EAAeC,GAErB,IAsDFM,EAtDEC,EAAmBzpJ,EAAAA,UAAS,WAAA,MAAA,IAAAyZ,OAAUquI,EAAatmK,MAAS,KAAAi4B,OAAAS,EAAO14B,MAAMk5B,QAAS,IAElFgvI,EAAWnxI,EAAAA,IAAI,CAAE8G,MAAO,MAAOC,OAAQ,MAAOsG,KAAM,MAAOD,IAAK,MAAO,sBAAuB,SAoB9FgkI,EAAe,WAA8B,IAA7BC,EAAAxiK,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GACpB,GAAsB,YAAlBiB,EAAMsnC,QAAV,CAEA,IAAMk6H,EAA4BZ,EAAcznK,MAAM2hC,cAAcsmI,EAAiBjoK,OAE/EsoK,EAAqBF,EAAmB,OAAS,MACvD,GAAKC,EAAL,CAWA,IAAQv4H,EAAqDu4H,EAArDv4H,YAAaC,EAAwCs4H,EAAxCt4H,aAAcoqB,EAA0BkuG,EAA1BluG,WAAY5U,EAAc8iH,EAAd9iH,UAE1CzV,EAGHo4H,EAASloK,MAAQ,CACf,sBAAuBsoK,EACvBzqI,gBAAUiS,EAAA,MACVhS,iBAAWiS,EAAA,MACX3L,eAAS+1B,EAAA,MACTh2B,cAAQohB,EAAA,OA7Cc,WACpB,IAAAixB,EAAMr2C,SAASuD,cAAc,OAC/B8yC,EAAAz/B,aAAa,QAAS,2CAC1By/B,EAAI7yC,YAAY8jI,EAAcznK,MAAMuoK,WAAU,IACrCpoI,SAAA0B,KAAK8B,YAAY6yC,GAE1B,IAAMgyF,EAAmChyF,EAAI70C,cAAcsmI,EAAiBjoK,OACpE8vC,EAAqD04H,EAArD14H,YAAaC,EAAwCy4H,EAAxCz4H,aAAcoqB,EAA0BquG,EAA1BruG,WAAY5U,EAAcijH,EAAdjjH,UAC/C2iH,EAASloK,MAAQq9B,GAAAA,GAAA,CAAA,EACZ6qI,EAASloK,OAAA,GAAA,CACZ69B,gBAAUiS,EAAA,MACVhS,iBAAWiS,EAAA,MACX3L,eAAS+1B,EAAA,MACTh2B,cAAQohB,EAAA,QAEDplB,SAAA0B,KAAKgC,YAAY2yC,GAuBJiyF,EALtB,MAREP,EAASloK,MAAQ,CACf,sBAAuBsoK,EACvBzqI,MAAO,MACPC,OAAQ,MACRsG,KAAM,MACND,IAAK,MAXwB,GAiCnCoE,EAAAA,MAAMqwD,cAAY,SAAA1xC,IAAA,OAAAlF,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAAA,OAAAmjC,EAAAnjC,KAAA,EACVqY,EAASA,WAAA,KAAA,EACF8rI,IAAA,KAAA,EAAA,IAAA,MAAA,OAAAhhH,EAAAzC,OAAA,GAAAwC,EACd,MAED9qB,EAAAA,WAAU,WACR+rI,GAAa,GACbp4F,GACE03F,EACA3kJ,eAAS,SAAA6tC,IAAA,OAAA3O,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EAAA,OAAA4sC,EAAA5sC,KAAA,EACDqY,EAASA,WAAA,KAAA,EACF8rI,IAAA,KAAA,EAAA,IAAA,MAAA,OAAAv3G,EAAAlM,OAAA,GAAAiM,OACZ,MAGC,IAAA+3G,EAAiCjB,EAAcznK,MAAM2hC,iBAAA1J,OACtDgwI,EAAiBjoK,YAAAi4B,OAAUquI,EAAatmK,kBAEzC0oK,IACeV,EAAApB,GACf8B,GACA,SAACC,GACWA,EAAAxxJ,SAAQ,SAACyxJ,GACK,kBAAlBA,EAASjmK,MACEwlK,GAEjB,GACF,GACA,CACErvG,YAAY,EACZlzB,WAAW,EACXijI,eAAe,EACfC,SAAS,IAIjB,IACA93H,EAAAA,aAAY,WAAM,IAAA+3H,EAChBA,QAAAA,EAAAf,aAAAe,GAAAA,EAAgBrkH,MAClB,IAGA,IAAA+7D,EAAqC11E,SAAOlkC,GAApCpI,EAAMgiH,EAANhiH,KAAMo6B,EAAA4nF,EAAA5nF,SAAUu8D,EAASqrB,EAATrrB,SACxBr9D,EAAAA,QACEytI,GACA75H,WAAS,CACPltC,KAAAA,EACAo6B,SAAAA,EACAu8D,SAAAA,EACAp1F,MAAO44F,EACP2sE,aAAc1+J,EAAM0+J,aACpB37B,SAAU89B,KAIR,IAAAsB,EAAiBhxI,GAAe,eAChCyP,EAAaI,KACbohI,EAAc,WACdpiK,GAAAA,EAAMsnC,QAAQ9vB,SAAS,YAAc6B,GAAM04E,EAAW54F,OACjD,OAAAy9B,EAAAA,YAAA,MAAA,CAAA/D,MAAYwuI,EAASloK,sBAAiBgpK,EAAehpK,MAAmB,eAAA,OAuB7EkpK,EAAa1qJ,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC7B+wI,EAAehpK,OAClBm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEX+wI,EAAehpK,MAAA,aAAqC,YAAlB6G,EAAMsnC,SAAY,GAAAlW,OACpD+wI,EAAehpK,kBAAkB6G,EAAMsnC,QAAQ9vB,SAAS,WAAQ4Z,GAAAA,OAChE+wI,EAAehpK,MAA0B6G,oBAAkB,mBAAlBA,EAAMsnC,aAIvD,OAAO,WAAA,OAAA1Q,EAAAA,YAAA,MAAA,CAAA1G,IACK0wI,EAAA/pI,MAAsBwrI,EAAWlpK,OACxCynC,CAAAA,EAAW,aAhCD4mF,QAAbA,EAAOxnH,EAAMkV,eAANlV,IAAMwnH,OAANxnH,EAAAA,EAAegF,KAAI,SAACmvE,GACzB,IAAIz4C,EAAMy4C,GACN/6D,GAAS+6D,IAAW/7D,GAAS+7D,MAC/Bz4C,EAAM,CAAEviC,MAAOg7E,EAAQ16B,MAAO06B,EAAO38E,aAEvC,IAAM8qK,EAAiC,WAAhBtiK,EAAMmuB,MAAqBo0I,GAAeC,GACjE,OAAA5rI,EAAAA,YAAA0rI,EAAA,CAAA9pK,IAAA,uBAAA44B,OAEgCsK,EAAIviC,kBAASkH,KAAKmrG,UAC9C5zG,KAAMoI,EAAMpI,KACZy6B,QAAS0/D,EAAW54F,QAAUuiC,EAAIviC,MAClC64B,SAAU,aAAc0J,EAAMA,EAAI1J,SAAWhyB,EAAMgyB,SACnD74B,MAAOuiC,EAAIviC,OAEV,CAAAgqB,QAAA,WAAA,MAAA,CAAAtmB,EAAW6+B,EAAI+d,OAAS/d,EAAI+d,MAAMh8B,KAAKie,EAAI+d,SAGlD,KAgBG2oH,MAlCiB,IAAe56C,EAqCvC,IEnMWq4C,GAAQl5H,GAAYk4H,IACpB4D,GAAa97H,GAAYohF,IACzB26C,GAAc/7H,GAAYg5H,ICLxBgD,GAAA,CAEb3wI,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXy/I,iBAAkB,CAChB9mK,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXiyB,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,cAAcjnB,SAASinB,EAC7C,GAGFokI,MAAO,CACL/mK,KAAM,CAACxE,OAAQX,QAGjB2J,IAAK,CACHxE,KAAM9C,OACNmqB,QAAS,KAGXpO,IAAK,CACHjZ,KAAM9C,OACNmqB,QAAS,GAGX7H,MAAOwmB,QAEPghI,SAAUhhI,QAEVvmB,KAAM,CACJzf,KAAM9C,OACNmqB,QAAS,GAGX4/I,aAAc,CACZjnK,KAAMxE,QAGR6B,MAAO,CACL2C,KAAM,CAAC9C,OAAQrC,OACfwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC9C,OAAQrC,OACfwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC9C,OAAQrC,OACfwsB,QAAS,GAGXmlC,SAAUxuD,SAEVkpK,YAAalpK,UCtEFmpK,GAAe,SAAC95H,EAAkBm0B,GACtC,OAAAA,EAAa,CAAEhgC,IAAAlM,QAAAA,OAAa,IAAM+X,eAAuB,CAAE5L,KAAM,GAAAnM,OAAG+X,EAAY,KACzF,EAQa+5H,GAAoB,SAACzkI,EAAwB3iC,GACxD,MAAa,UAATA,EACE2iC,aAAe9nC,MACV8nC,EAAI,GAENA,EAELA,aAAe9nC,MACV8nC,EAAI,GAEN,CACT,qkBCvBA,IAAM0kI,GAA4D,CAChE5wI,SAAS,EACTgyB,QAAS,QACTokB,WAAW,EACXH,uBAAmB,EACnBF,sBAAkB,EAClBxjD,OAAQ,OACRqJ,MAAO,WAkBIi1I,GAAmB,SAACC,GAC/B,IAAMC,EAAapzI,EAAAA,MACbqzI,EAAc5rJ,EAAAA,SAAS,CAC3BlT,IAAM,WACG,OAAsC,IAArC4+J,EAAclqK,MAAM4pK,YAC9B,EACA3+J,IAAAA,SAAIq6B,GACK,OAAAA,CACT,IAEI+kI,EAAiBtzI,EAAAA,IAAAsG,GAAsD2sI,CAAAA,EAAAA,KAOvEtjI,EAAiBU,KAGjBkjI,EAAa9rJ,EAAAA,UAAS,WACpB,IAAA+rJ,EAA4DL,EAAclqK,MAAxEwqK,IAAAA,SAAUZ,EAAcW,EAAdX,aAActpH,EAAAiqH,EAAAjqH,MAAOtgD,IAAAA,MAAOgwC,EAAUu6H,EAAVv6H,SAAU7tB,EAAAooJ,EAAApoJ,MAClDoxC,EAAYi3G,EAAW,QAAU,MAEnC16I,GACY,IAAVwwB,EACK1gD,OAAOI,GAEK,iBAAVsgD,EDvBU,SAACA,EAAuBhb,GAC7C,IAAmB,IAAnBqD,QAAQ2X,GACV,OAAO1gD,OAAO0lC,GAEZ,GAAArmB,GAASqhC,GAAQ,CACf,IAAAtX,EAAOppC,OAAO0lC,GACd,IACF,IAAM+4H,EAAO,cAEb,IADwBA,EAAK3/J,KAAK4hD,GAKhC,MADOtX,EAAAsX,EACD,IAAIxf,MAHVkI,EAAOsX,EAAM79C,QAAQ47J,EAAMz+J,OAAO0lC,UAK7BjkC,GACP6qC,QAAQkgC,wEACV,CACO,OAAApjC,CACT,CACO,OAAAsX,CACT,CCGemqH,CAAYnqH,EAAOtgD,GAErB0mC,EAAe,QAAS,CAC7BR,OAAQ/jB,EACJ,CACEniB,MAAAA,EACAgwC,SAAAA,GAEF,CAAEhwC,MAAAA,KAIV,OAAI4pK,aAAwBzrK,QACrByrK,SAAAA,EAAcr2G,YACjB82G,EAAerqK,MAAMuzD,UAAYA,GAE/Bq2G,EAAa95I,UACfA,EAAU85I,EAAa95I,SAGzBuN,GAAAA,GAAAA,MAAYgtI,EAAerqK,OAAU4pK,OAAc95I,QAAAA,KAErDuN,GAAAA,GAAYgtI,CAAAA,EAAAA,EAAerqK,OAAA,GAAA,CAAOuzD,UAAAA,EAAWzjC,QAAAA,GAC/C,IAEO,MAAA,CACLq6I,WAAAA,EACAP,aAAcU,EACdI,cA7CoB,SAACC,GAChBP,EAAYpqK,QACjBqqK,EAAerqK,MAAMo5B,QAAUuxI,IA4C/BP,YAAAA,EAEJ,EC9EaQ,GAA6CjtK,OAAO,eCMjEktK,GAAe5uI,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAO,CACL7G,MAAO,CACL2C,KAAM,CAAC9C,QACPmqB,QAAS,GAEXwgJ,SAAU,CACR7nK,KAAMgmC,QACN3e,SAAS,GAEX4/I,aAAc,CACZjnK,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAEXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQ+oC,QAAShoC,WAE1BwhB,MAAO,CACLxf,KAAMgmC,QACN3e,SAAS,GAEXgmB,SAAU,CACRrtC,KAAM/C,SAGV23C,MAAO,CAAC,QAAS,WACjBrb,eAAMr1B,EAAOonD,GACL,IAAApc,EAAiB7Z,GAAe,kBAChCkyI,EAAgB1rJ,EAAAA,UAAS,WAAA,OAAM3X,KACrCikK,EAAiEb,GAAiBC,GAA1EC,EAAYW,EAAZX,WAAYP,EAAAkB,EAAAlB,aAAcc,IAAAA,cAAeN,EAAYU,EAAZV,YAC3CW,EAAc1zI,SAAOuzI,IACrBI,EAAYj0I,EAAAA,MACZ8zD,EAAU9zD,OAAI,GAGdk0I,EAAmBt/H,EAAAA,SAAS,CAChC62E,UAAU,EACV0oD,SAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,SAAU,EACVC,OAAQ,OAGJC,EAAY/sJ,EAAAA,UAAS,WACzB,OAAO3e,OAAOkrK,EAAY5jK,KAAOtH,OAAOkrK,EAAYnvJ,IACtD,IAEM4vJ,EAAahtJ,EAAAA,UAAS,WAC1B,MAAA,GAAAyZ,QAAYpxB,EAAM7G,MAAQ+qK,EAAYnvJ,KAAO2vJ,EAAUvrK,MAAS,IAAA,IAClE,IAEMoiB,EAAO5D,EAAAA,UAAS,WACpB,OAAOusJ,EAAY3oJ,IACrB,IAEMqpJ,EAAejtJ,EAAAA,UAAS,WACrB,OAAA3X,EAAM2jK,SAAW,CAAEnmI,OAAQmnI,EAAWxrK,OAAU,CAAEokC,KAAMonI,EAAWxrK,MAC5E,IAEAgxD,EAAAA,aAAY,WACE+5G,EAAAW,eAAeT,EAAiBzoD,SAC9C,IAKM,IAAAmpD,EAAc,SAACC,GACnB,IAAIN,EAASM,EACb,GAAe,OAAXN,IAAmBzrK,OAAOmkD,MAAMsnH,GAApC,CAIIA,EAAS,IACFA,EAAA,IACAA,EAAS,IACTA,EAAA,GAEX,IAAMO,EAAc,IAAMzpJ,EAAKpiB,MAASurK,EAAUvrK,MAE9CA,EADUkH,KAAK2hB,MAAMyiJ,EAASO,GACdA,EAAaN,EAAUvrK,MAAQ,IACnDA,GAAS+qK,EAAYnvJ,IACb5b,EAAAH,OAAOg7B,qBAAc76B,IAASqkG,QAAQ0mE,EAAYe,YACtD79G,EAAAzW,KAAK,QAASx3C,GAClBq8B,EAAAA,UAAS,WAAM,IAAA0vI,EAAAC,EACF7B,EAAAnqK,gBAAA+rK,GAASC,EAAA7B,EAAWnqK,OAAMg0E,oBAAe,IAAA+3F,GAAhCA,EAAAztK,KAAA0tK,GACtB,GAfA,GAkBI38E,EAAmB,WACtB27E,EAAUhrK,MAAkCgsD,QAC7C0+G,GAAc,IAEVn7E,EAAmB,WAClB07E,EAAiBzoD,UACpBkoD,GAAc,IAsBZuB,EAAa,SAAC5qK,GAClB,IAAMi/B,EAAQj/B,EACV,GAAC4pK,EAAiBzoD,SAAlB,CAGJ33B,EAAQ7qF,OAAQ,EAChBirK,EAAiBC,SAAU,EACvBH,SAAAA,EAAamB,WAAaxoK,EAAWqnK,aAAA,EAAAA,EAAamB,YACpDnB,EAAYmB,YAEd,IAAI5iJ,EAAO,EACL6iJ,EAAmBpB,EAAYqB,WAC7BzpK,EAAS29B,EAAT39B,KACFq1E,EAAqB13C,EAArB03C,QAASD,EAAYz3C,EAAZy3C,QACf,GAAa,cAATp1E,EAAsB,CACxB,IAAM0pK,EAAS/rI,EAAqBgsI,QAAAl8G,EACf,CAACi8G,EAAM,GAAGr0F,QAASq0F,EAAM,GAAGt0F,SAAhDC,EAAA5nB,EAAA,GAAS2nB,EAAO3nB,EAAA,EACnB,CAMA9mC,GAJEA,EADEziB,EAAM2jK,SACDS,EAAiBG,OAASpzF,EAE1BD,EAAUkzF,EAAiBE,QAErBgB,EAAoB,IAClBlB,EAAAK,OAASL,EAAiBI,SAAW/hJ,EACtDqiJ,EAAYV,EAAiBK,OArB7B,GAwBInpD,EAAY,WACZ8oD,EAAiBzoD,WACnB1lG,YAAW,WACTmuJ,EAAiBzoD,UAAW,EAC5BkoD,GAAc,GACTO,EAAiBC,SACpBS,EAAYV,EAAiBK,QAEvBzgF,EAAA7qF,OAASiuD,EAAIzW,KAAK,WAC1BqzC,EAAQ7qF,OAAQ,IACf,GACI28B,OAAA+D,oBAAoB,YAAaurI,GACjCtvI,OAAA+D,oBAAoB,YAAaurI,GACjCtvI,OAAA+D,oBAAoB,UAAWyhF,GAC/BxlF,OAAA+D,oBAAoB,WAAYyhF,GAChCxlF,OAAA+D,oBAAoB,cAAeyhF,KAI9C,SAASoqD,EAAajsI,GAChByqI,EAAYlyI,WAGhByH,EAAMu0C,iBArEY,SAACv0C,GACnB2qI,EAAiBzoD,UAAW,EAC5ByoD,EAAiBC,SAAU,EACrB,IAAEvoK,EAAS29B,EAAT39B,KACFq1E,EAAqB13C,EAArB03C,QAASD,EAAYz3C,EAAZy3C,QACf,GAAa,eAATp1E,EAAuB,CACzB,IAAM0pK,EAAS/rI,EAAqBgsI,QAAAljI,EACf,CAACijI,EAAM,GAAGr0F,QAASq0F,EAAM,GAAGt0F,SAAhDC,EAAA5uC,EAAA,GAAS2uC,EAAO3uC,EAAA,EACnB,CACIviC,EAAM2jK,SACRS,EAAiBG,OAASpzF,EAE1BizF,EAAiBE,OAASpzF,EAEXkzF,EAAAI,SAAWxwI,WAAW2wI,EAAWxrK,OAClDirK,EAAiBK,OAASL,EAAiBI,SAuD3CrpD,CAAY1hF,GACL3D,OAAAyD,iBAAiB,YAAa6rI,GAC9BtvI,OAAAyD,iBAAiB,UAAW+hF,GAC5BxlF,OAAAyD,iBAAiB,YAAa6rI,GAC9BtvI,OAAAyD,iBAAiB,WAAY+hF,GAC7BxlF,OAAAyD,iBAAiB,cAAe+hF,GACzC,CAEM,IAAAqqD,EAAY,SAAC3zG,GACjB,IAAIkyG,EAAYlyI,SAAhB,CAGA,IAAI4zI,EAAcrqJ,EAAKpiB,MAAQurK,EAAUvrK,MAAS,IACpC,QAAV64D,IACF4zG,GAAcA,GAEhBxB,EAAiBK,OAASzwI,WAAW2wI,EAAWxrK,OAASysK,EACzDd,EAAYV,EAAiBK,OAN7B,GASIoB,EAAkB,SAACrrK,GACjB,IAAE6zE,EAAS7zE,EAAT6zE,KACR7zE,EAAEwzE,iBACW,cAATK,GAAiC,cAATA,GAC1Bs3F,EAAU,OAEC,YAATt3F,GAA+B,eAATA,GACxBs3F,EAAU,QAUd,OAJAv+G,EAAI1G,OAAO,CACTokH,YAAAA,IAGK,WAAA,OAAAluI,EAAAA,YAAA,MAAA,CAAA1G,IAEEi0I,EACLttI,MAAA,GAAAzF,OAAU4Z,EAAe7xC,MACzB,YAAA05B,MAAO+xI,EAAazrK,MAAAuyC,SAAA,IAAA,eAEN63H,EAAYpqK,MAC1B41D,aAAcy5B,EACdx5B,aAAc05B,EACduP,YAAaytE,EACbI,aAAcJ,EACd12E,QAASxG,EACToG,OAAQlG,EACRuG,UAAW42E,GAGX,CAAAjvI,EAAAA,YAAAmvI,GAAAxhI,aAAA,CAAArU,IAAeozI,EAAYj7F,gBAAA,EAAAr2C,UAA0BuxI,EAAYpqK,OAAW4pK,EAAa5pK,OAAA,CAAAgqB,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAC3E,CAACmU,EAAe7xC,MAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAAa4Z,EAAe7xC,MAAoBirK,cAAAA,EAAiBzoD,YAAa,MAAA,MAIlH,ICnPFqqD,GAAe5wI,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAO,CACLs9C,KAAM,CACJxhD,KAAM,CAACxE,OAAQX,MAAOoC,OAAQC,SAEhCitK,MAAO,CACLnqK,KAAM9C,QAERktK,iBAAkB,CAChBpqK,KAAMhC,SACNqpB,QAAS,WAAO,IAGpBkS,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,gBAChCg1I,EAAc,SAAC3rK,GAAkB,IAAA4rK,EACrC5rK,EAAE24E,kBACKnzE,SAAAomK,QAAAA,EAAApmK,EAAAkmK,4BAAAE,GAAAA,EAAA3uK,KAAAuI,EAAmBA,EAAMimK,QAG3B,OAAA,WAAA,OAAArvI,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU4Z,EAAe7xC,MAAA,SAAAouC,QAAuB4+H,GAClDnmK,CAAAA,EAAMs9C,OAGb,ukBCXW,ICGT+oH,GCQJC,GAAelxI,kBAAgB,CAC7Bx9B,KAAM,UACNuvI,MAAO,CACLpuF,KAAM,QACNtf,MAAO,UAETz5B,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAMgyB,EAAWqY,KACXW,EAAiB7Z,GAAe,UAC9BU,EAAWR,KAAXQ,OACRk6C,EAA8B7nC,SAAOlkC,GACgEgsE,EAAArvD,GAA/DooD,GAD9BgH,EAAA5yE,MAAkB4yE,EAAX/G,WACoDhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA9Fi+G,EAAav6F,EAAA,GAAAw6F,EAAcx6F,EAAA,GAE5By6F,EAAqBv2I,EAAAA,MACrBw2I,EAAYx2I,EAAAA,MACZy2I,EAAiBz2I,EAAAA,MACjB02I,EAAkB12I,EAAAA,MAElB22I,EAAa32I,EAAAA,IAAIgzI,GAAkBqD,EAAYptK,MAAO,UACtD2tK,EAAc52I,EAAAA,IAAIgzI,GAAkBqD,EAAYptK,MAAO,WACvDwiH,EAAWzrF,OAAI,GACfq1I,EAAar1I,MAAI,GAEjByzI,EAAWhsJ,EAAAA,UAAS,WACxB,MAAwB,aAAjB3X,EAAMo1C,MACf,IAGM2xH,EAAiBpvJ,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAAI4Z,EAAe7xC,MAAoB,eAAA,CAAE,cAAewqK,EAASxqK,WACjG6tK,EAAcrvJ,EAAAA,UAAS,WACpB,MAAA,CAAA,GAAAyZ,OACF4Z,EAAe7xC,OAAAF,EAAAA,EAAAA,EAAA,CAEhB,cAAe0qK,EAASxqK,OAAA,GAAAi4B,OACpB4Z,EAAe7xC,MAAA,gBAAsB6G,EAAM4iK,kBAAA,GAAAxxI,OAC3C4Z,EAAe7xC,MAAA,cAAoBwqK,EAASxqK,OAC/C04B,EAAO14B,MAAM64B,SAAWA,EAAS74B,OAGxC,IACM8tK,EAAkBtvJ,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAClC4Z,EAAe7xC,MAClB,UAAA,CAAE,aAAc6G,EAAM4iK,iBAAkB5wI,SAAUA,EAAS74B,WAEvD+tK,EAAcvvJ,EAAAA,UAAS,WAC3B,OAAOgsJ,EAASxqK,MAAQ,CAAE89B,OAAQ,QAAW,EAC/C,IACMoqI,EAAW1pJ,EAAAA,UAAS,WAClB,IAAAwvJ,EAAWnnK,EAAMsb,MAAA8V,GAAAA,OAAY,KAAOg2I,EAASjuK,MAAQ6G,EAAM+U,KAAQ2vJ,EAAUvrK,MAAW,KAAA,KACxFkuK,EAAcrnK,EAAMsb,MAAQgsJ,EAASnuK,MAAQiuK,EAASjuK,MAAQ0tK,EAAW1tK,MAAQ6G,EAAM+U,IACvFwyJ,EAAUn2I,GAAAA,OAAI,IAAMi2I,EAAe3C,EAAUvrK,MAAA,KACnD,OAAOwqK,EAASxqK,MACZ,CACE89B,OAAQswI,EACR/pI,OAAQ2pI,GAEV,CACEnwI,MAAOuwI,EACPhqI,KAAM4pI,EAEd,IAIMzC,EAAY/sJ,EAAAA,UAAS,WAClB3X,OAAAA,EAAMM,IAAMN,EAAM+U,GAC3B,IACMqyJ,EAAWzvJ,EAAAA,UAAS,WACxB,OAAOtX,KAAK0U,IAAI8xJ,EAAW1tK,MAAO2tK,EAAY3tK,MAChD,IACMmuK,EAAW3vJ,EAAAA,UAAS,WACxB,OAAOtX,KAAKC,IAAIumK,EAAW1tK,MAAO2tK,EAAY3tK,MAChD,IACMwtB,EAAQhP,EAAAA,UAAS,WACrB,IAAK3X,EAAM8iK,UAAY9iK,EAAM+U,IAAM/U,EAAMM,IAAK,MAAO,GACjDN,GAAe,IAAfA,EAAMub,KAER,OADA8pB,QAAQkgC,KAAK,+CACN,GAKT,IAHM,IAAAiiG,EAAY9C,EAAUvrK,MAAQ6G,EAAMub,KACpCksJ,EAAa,IAAMznK,EAAMub,KAAQmpJ,EAAUvrK,MAC3CsB,EAAS,GACNhE,EAAI,EAAGA,EAAI+wK,EAAW/wK,IACtBgE,EAAA2I,KAAK3M,EAAIgxK,GAElB,OAAIznK,EAAMsb,MACE7gB,EAAO2lC,QACf,SAAC7kB,GACCA,OAAAA,EAAQ,KAAO6rJ,EAASjuK,MAAQ6G,EAAM+U,KAAQ2vJ,EAAUvrK,OACxD6G,EAAMub,KAAQ,KAAO+rJ,EAASnuK,MAAQ6G,EAAMM,KAAQokK,EAAUvrK,KAAA,IAI7DsB,EAAO2lC,QAAO,SAAC7kB,GAASA,OAAAA,EAAQ,KAAOsrJ,EAAW1tK,MAAQ6G,EAAM+U,KAAQ2vJ,EAAUvrK,QAC3F,IACM8rK,EAAYttJ,EAAAA,UAAS,WACnB,IAAA+vJ,EAAa,CAAC1nK,EAAM+U,IAAK/U,EAAMM,IAAKN,EAAMub,MAAMvW,KAAI,SAACi6B,GACzD,IAAM0oI,EAAa,GAAAv2I,OAAG6N,GAAOv2B,MAAM,KACnC,OAAOi/J,EAAW,GAAKA,EAAW,GAAGnxK,OAAS,CAChD,IACA,OAAO6J,KAAKC,IAAItB,MAAM,KAAM0oK,EAC9B,IAEME,EAAY,SAACzuK,GACX,IAAAowD,EAAa,CAACvpD,EAAM+U,IAAK/U,EAAMM,KAA9ByU,OAAKzU,EAAGipD,EAAA,GACf,KAAIx0C,EAAMzU,GAAV,CAKA,GAAIN,EAAMsb,OAASvjB,EAAQoB,GAAQ,CACjC,IAAA0wD,EAA2B,CAACxpD,KAAK0U,IAAA/V,MAALqB,KAAKvI,EAAOqB,IAAQkH,KAAKC,IAAItB,MAATqB,KAAAvI,EAAYqB,KAAvD0uK,EAAAh+G,EAAA,GAAUi+G,EAAQj+G,EAAA,GACnBg+G,EAAWvnK,IACbunK,EAAWhB,EAAW1tK,OAEpB0uK,EAAW9yJ,IACFA,EAAAA,GAET+yJ,EAAW/yJ,IACb+yJ,EAAWhB,EAAY3tK,OAErB2uK,EAAWxnK,IACFA,EAAAA,GACb,IAAAu3D,EACwC,CAACgwG,EAAUC,GAC5C,OADNjB,EAAW1tK,MAAO0+D,EAAA,GAAAivG,EAAY3tK,MAAK0+D,EAAA,GAC7B,CAACgwG,EAAUC,EACpB,CACA,IAAIC,EAAW5uK,EAOR,OANH4uK,EAAWhzJ,IACFA,EAAAA,GAETgzJ,EAAWznK,IACFA,EAAAA,GAENynK,CA1BP,CAFE1iI,QAAQkgC,KAAK,6CA+BXyiG,EAAa,SAAC7uK,GAClB,IAAIgtK,EAAchtK,OACE,IAAhBgtK,IAEAA,EADEnmK,EAAMsb,MACM,CAACurJ,EAAW1tK,MAAO2tK,EAAY3tK,OAE/B0tK,EAAW1tK,OAGvB,IAAA8uK,EAAwBL,EAAUzB,GACxCK,EAAeyB,IAGX5C,EAAY,WACZqB,EAAUvtK,QACZosK,EAAWpsK,MAAQutK,EAAUvtK,MAAAi4B,SAAAA,OAAeuyI,EAASxqK,MAAQ,SAAW,YAKtE+uK,EAAiBh4I,OAAI,GAErBlQ,EAAO,WACP,IAAAmoJ,EACAnoK,EAAMsb,OACJvjB,EAAQwuK,EAAYptK,QACX0tK,EAAA1tK,MAAQkH,KAAKC,IAAIN,EAAM+U,KAAO,EAAGwxJ,EAAYptK,MAAM,IAClD2tK,EAAA3tK,MAAQkH,KAAK0U,IAAI/U,EAAMM,KAAO,IAAKimK,EAAYptK,MAAM,MAEtD0tK,EAAA1tK,MAAQ6G,EAAM+U,KAAO,EACpB+xJ,EAAA3tK,MAAQ6G,EAAMM,KAAO,KAEvB6nK,EAAA/2I,GAAAA,OAAGy1I,EAAW1tK,MAAAi4B,KAAAA,OAAS01I,EAAY3tK,SAE1CigB,GAASmtJ,EAAYptK,OAGb0tK,EAAA1tK,MAAQkH,KAAK0U,IAAI/U,EAAMM,IAAKD,KAAKC,IAAIN,EAAM+U,IAAKwxJ,EAAYptK,QAFvE0tK,EAAW1tK,MAAQ6G,EAAM+U,IAIfozJ,EAAApvK,OAAO8tK,EAAW1tK,QAE5BstK,EAAmBttK,OACFstK,EAAAttK,MAAM+2C,aAAa,iBAAkBi4H,GAEhD9C,IACHvvI,OAAAyD,iBAAiB,SAAU8rI,IAG9BP,EAAc,SAACsD,GACf,IAMAx/H,EANAs1G,EAAekqB,EAAU1D,EAAUvrK,MAAS,KAChD+kJ,EAAcl+I,EAAM+U,IAAMmpI,EACrBl+I,EAAMsb,QAASqrJ,EAAextK,QAUpB,aAJbyvC,EADEvoC,KAAKge,IAAI+oJ,EAASjuK,MAAQ+kJ,GAAe79I,KAAKge,IAAIipJ,EAASnuK,MAAQ+kJ,GAC5D2oB,EAAW1tK,MAAQ2tK,EAAY3tK,MAAQ,UAAY,UAEnD0tK,EAAW1tK,MAAQ2tK,EAAY3tK,MAAQ,UAAY,YAElCwtK,EAAextK,OAC1BwtK,EAAAxtK,MAAM2rK,YAAYsD,GAEpB,YAAXx/H,GAAwBg+H,EAAgBztK,OAC1BytK,EAAAztK,MAAM2rK,YAAYsD,IAbnBzB,EAAAxtK,MAAM2rK,YAAYsD,IAiB/BC,EAAc,WACZlC,IAAAA,EAAcnmK,EAAMsb,MAAQ,CAACurJ,EAAW1tK,MAAO2tK,EAAY3tK,OAAS0tK,EAAW1tK,MACrF,OAAOyuK,EAAUzB,IAIbmC,EAAgB,SAAC7uI,GAA4B,IAAA8uI,EAC7C,IAAAv2I,EAAS74B,QAASwiH,EAASxiH,OAG1ButK,EAAUvtK,MAAf,CACUksK,IACV,IAAIlsK,EAAQ,EACZ,GAAIwqK,EAASxqK,MAAO,CAElBA,GAD2ButK,EAAUvtK,MAAMikC,wBAAwBI,OACpC/D,EAAM03C,SAAWo0F,EAAWpsK,MAAS,IACpE2rK,EAAY3rK,EACd,KAAO,CACL,IAAMqvK,EAAmB9B,EAAUvtK,MAAMikC,wBAAwBG,KACjEpkC,GAAUsgC,EAAMy3C,QAAUs3F,GAAoBjD,EAAWpsK,MAAS,IAClE2rK,EAAY3rK,EACd,CACA,IAAM8uK,EAAWI,YACjBroK,EAAAA,EAAMgjK,mBAANhjK,OAAAA,EAAAA,KAAAA,EAAoBioK,EAbE,GAiBlB9B,EAAc,SAACF,GAAkB,IAAAwC,EACjC,IAAAz2I,EAAS74B,QAASwiH,EAASxiH,MAA3B,CAGMksK,IACV,IAAMlsK,EAAQH,OAAQitK,EAAQvB,EAAUvrK,MAAS,KACjD2rK,EAAY3rK,GACZ6uK,EAAW/B,GACX,IAAMgC,EAAWI,YACjBroK,EAAAA,EAAMgjK,mBAANhjK,OAAAA,EAAAA,KAAAA,EAAoBioK,EANpB,GAUFvmI,EAAAA,OACE,WAAA,OAAM6kI,EAAYptK,KAClB,IAAA,SAAC45F,GACC,IAAuB,IAAnB4oB,EAASxiH,MACb,GAAIpB,EAAQg7F,IAAW/yF,EAAMsb,MAAO,CAAA,IAAAotJ,EAAA/rJ,GACMo2E,EAAA,GAAvC8zE,EAAW1tK,MAAAuvK,EAAA,GAAO5B,EAAY3tK,MAAKuvK,EAAA,EACtC,MACE7B,EAAW1tK,MAAQ45F,CAEvB,IAGFrxD,EAAAA,MAAM,CAACmlI,EAAYC,EAAanrD,IAAW,SAACgtD,EAAWC,GACjDD,EAAU,KAAOC,EAAW,KAC1B5oK,EAAMsb,MACR0sJ,EAAW,CAACZ,EAASjuK,MAAOmuK,EAASnuK,QAErC6uK,EAAWnB,EAAW1tK,QAGtBwvK,EAAU,KAAOC,EAAW,IAC1B5oK,EAAMsb,OACR0sJ,EAAW,CAACZ,EAASjuK,MAAOmuK,EAASnuK,QAGrCwvK,EAAU,KAAOC,EAAW,KAAuB,IAAjBD,EAAU,IACzC3oJ,GAET,IAGAuV,EAAAA,WAAU,WACHvV,IACLkoJ,EAAe/uK,OAAQ,CACzB,IACAq4C,EAAAA,iBAAgB,WACP1b,OAAA+D,oBAAoB,SAAUwrI,EACvC,IAGM,ICnSoBz/H,EACtBhuC,EACAixK,EDiSEC,EAAanxJ,EAAAA,UAAS,WAAA,MAAO,CACjCrX,IAAKN,EAAMM,IACXyU,IAAK/U,EAAM+U,IACX8tJ,MAAO7iK,EAAM6iK,MACbc,SAAUA,EAASxqK,MACnB4vK,WAAY/9H,EAAe7xC,MAC3B,IACI6vK,GCzSFpxK,GADsBguC,ED0SOkjI,GCzSf3vK,MAAM4vK,WACpBF,EAAWlxJ,EAAAA,UAAS,WACxB,IAAMsxJ,EAAYrjI,EAAOzsC,MACrB,IAAC8vK,EAAUpG,MACb,MAAO,GAET,IAAMqG,EAA8B,GAChC,GAAAnxK,EAAQkxK,EAAUpG,OAAQ,CACtB,IAAAsG,EAAYz4J,GAAUu4J,EAAUpG,OAAO9uI,MAAK,SAAC9W,EAAGkC,GAAM,OAAAlC,EAAIkC,KAC1D0oJ,EAAWxnK,KAAKC,IAAAtB,MAALqB,KAAKvI,EAAOqxK,GAAA/3I,QAAW63I,EAAU3oK,OAC5CwnK,EAAWznK,KAAK0U,IAAA/V,MAALqB,KAAKvI,EAAOqxK,GAAA/3I,QAAW63I,EAAUl0J,OAC9C+yJ,EAAWmB,EAAUl0J,KACnBuwD,GAAU,UAAW,uCAEvBuiG,EAAWoB,EAAU3oK,KACnBglE,GAAU,UAAW,uCAEjB6jG,EAAA74J,SAAQ,SAAC2uB,GACjBiqI,EAAW9lK,KAAK,CACd6iK,MAAOhnI,EACPkK,UAAYlK,EAAO6oI,IAAaD,EAAWC,GAAa,IACxDxqH,KAAMre,GAEV,GACF,MACS3nC,OAAA4F,KAAK+rK,EAAUpG,OACnB79J,IAAIgvB,YACJD,MAAK,SAAC9W,EAAGkC,GAAA,OAAMlC,EAAIkC,CAAC,IACpBihB,QAAO,SAAC6lI,GAAU,OAAAA,GAASgD,EAAU3oK,KAAO2lK,GAASgD,EAAUl0J,GAAG,IAClEzE,SAAQ,SAAC21J,GACR,IAAMhnI,EAAiB,CACrBgnI,MAAAA,EACA98H,SAAqC,KAAzB88H,EAAQgD,EAAUl0J,MAAek0J,EAAU3oK,IAAM2oK,EAAUl0J,KACvEuoC,KAAM2rH,EAAUpG,MAAMoD,IAExBiD,EAAW9lK,KAAK67B,EAClB,IAEG,OAAAiqI,CACT,IAEmB,SAACE,GACd,OAACP,EAAS1vK,MAAM3C,OAEpBogC,EAAAO,wBAAAP,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OAEmBx5B,EAAA,YACZixK,CAAAA,EAAS1vK,MAAM6L,KAAI,SAACi6B,EAAMhkC,GACzB,OAAsB,IAAlBgkC,EAAKkK,UAAoC,MAAlBlK,EAAKkK,SAAyB,KACzDvS,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEcx5B,oBAAcA,EACxB,eAAAi7B,MAAOowI,GAAahkI,EAAKkK,SAAUvD,EAAOzsC,MAAMwqK,UAAQnrK,IACnDyC,GACP,gDAISrD,aACZixK,CAAAA,EAAS1vK,MAAM6L,KAAI,SAACi6B,EAAMzmC,GAAA,OAAAo+B,EAAAA,YAAAovI,GAAA,CAAA1oH,KAEjBre,EAAKqe,KAAA2oH,MACJhnI,EAAKgnI,MACZztK,IAAKA,EACLq6B,MAAOowI,GAAahkI,EAAKkK,SAAUvD,EAAOzsC,MAAMwqK,UAChDuC,iBAAkBkD,GACpB,KAAA,QAxB2B,OD0Q7BC,EF5ToB,SAACzjI,GACvB,IAAAhuC,EAAOguC,EAAOzsC,MAAM4vK,WAGpBO,EAAmB3xJ,EAAAA,UAAS,WAAM,IAAA4xJ,EAClCC,EAAiC,CACnCtnJ,YAAQ,EACR6F,YAAa,GACboG,MAAO,SACPwqE,eAAuD4wE,QAAxCA,EAAA3jI,EAAOzsC,MAAMoiB,KAAK/jB,WAAWkR,MAAM,KAAK,UAAxC6gK,IAAwCA,OAAxCA,EAAAA,EAA4C/yK,SAAU,GAEjEoiG,EAAahzD,EAAOzsC,MAC1B,IAAK2f,GAAU8/E,EAAWgqE,kBAAmB,CAAA,IAAA6G,EACrCC,EAA0C,QAA1CD,EAAa7wE,EAAWgqE,wBAAkB,IAAA6G,OAAA,EAA7BA,EAA6Bt7I,MACjCq7I,EAAAhzI,GAAAA,MAAKgzI,GAAiBtvJ,GAAK0+E,EAAWgqE,iBAAkB,aACnE,CAAC,SAAU,MAAO,UAAUprJ,SAASkyJ,KACvCF,EAAar7I,MAAQu7I,EAEzB,CACO,OAAAF,CACT,IAEMG,EAAoBhyJ,EAAAA,UAAS,WAC1B,MAAA,CAAAyZ,GAAAA,OACFx5B,EACH,WAAA,CACE,cAAeguC,EAAOzsC,MAAMwqK,UAGlC,IAwBO,OAtBmB,SAACllI,EAAamrI,GASpC,OAAAhzI,EAAAO,YAAAyrE,GAAAr+D,aACM+kI,EAAiBnwK,MACrB,CAAA09B,MAAO8yI,EAAkBxwK,MAAAA,MAClBslC,EAAAljB,KACDqqB,EAAOzsC,MAAMoiB,KAAA+sC,SAXG,SAAC0wC,EAAyB1uD,GAA2B,IAAAu/H,EAAAC,OACjE,IAAR9wE,GAAsB77C,MAAM67C,IAC9B4wE,EAAS5wE,GAEH6wE,QAAPA,EAAAjkI,EAAOzsC,aAAA0wK,IAAAA,WAAAA,EAAPA,EAAcjH,wBAAuC,IAAAiH,GAAA,QAAAC,EAArDD,EAAqDvhH,gBAArDwhH,IAAqDA,GAArDA,EAAAryK,KAAAoyK,EAAgE7wE,EAAK1uD,IASpEtY,SAAU4T,EAAOzsC,MAAM64B,SACvBjd,IAAK6wB,EAAOzsC,MAAM4b,IAClBzU,IAAKslC,EAAOzsC,MAAMmH,MACpB,MAKN,CEsQ8BypK,CATNpyJ,EAAAA,UAAS,WAAA,MAAO,CAClCrX,IAAKN,EAAMM,IACXyU,IAAK/U,EAAM+U,IACX6tJ,iBAAkB5iK,EAAM4iK,iBACxBrnJ,KAAMvb,EAAMub,KACZwtJ,WAAY/9H,EAAe7xC,MAC3BwqK,SAAUA,EAASxqK,MACnB64B,SAAUA,EAAS74B,MACnB,KAkCFygH,EAA2B11E,SAAOlkC,GAA1B+U,EAAK6kG,EAAL7kG,IAAKzU,EAAAs5G,EAAAt5G,IAAKib,EAAKq+F,EAALr+F,KAgBlB,OAfA2V,EAAAA,QACE6yI,GACAj/H,WAAS,CACP/vB,IAAAA,EACAzU,IAAAA,EACAib,KAAAA,EACAogG,SAAAA,EACAkpD,eAZmB,SAACf,GACtBnoD,EAASxiH,MAAQ2qK,GAYfmB,UAAAA,EACAjzI,SAAAA,EACAqzI,UAAAA,EACAE,WAAAA,KAIG,WAAA,OAAA3uI,EAAAA,YAAA,MAAA,CAAAC,MACOkwI,EAAe5tK,UAAYstK,GAAA,CAAA7vI,EAAAO,YAAA,MAAA,CAAAN,MAE5BmwI,EAAY7tK,oCAEJ6G,EAAM+U,IACrB,gBAAe/U,EAAMM,IAAA,mBACHN,EAAMo1C,OAAA,gBACTpjB,EAAS74B,MACxB,gBAAe6G,EAAM+iK,cAAA,CAAAnsI,EAAAO,YAAA,MAAA,CAAAN,MAETowI,EAAgB9tK,MAAA05B,MAAcq0I,EAAY/tK,MAAOouC,QAAS+gI,MAAoB5B,GAAA,CAAA9vI,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACzE4Z,EAAe7xC,MAAgB,WAAA05B,MAAOwuI,EAASloK,OAAOy9B,MAAAA,EAAAO,YAAA6yI,GAAA,CAAArG,SAEzDA,EAASxqK,MAAAA,MACZ0tK,EAAW1tK,MAClB+2B,IAAKy2I,EACL30I,SAAUA,EAAS74B,MAAAmiB,MACZtb,EAAMsb,MAAA6tB,SAAA,QAAA,gBAEEnpC,EAAM+iK,aACrBtpH,MAAOz5C,EAAMy5C,MAAAumG,QACJ,SAAC9hI,GACR2oJ,EAAW1tK,MAAQ+kB,CACrB,EAAA+rJ,UACW,WAAM,IAAAC,EACTjC,EAAWI,YACjBroK,EAAAA,EAAMgjK,mBAANhjK,OAAAA,EAAAA,KAAAA,EAAoBioK,EACtB,GACF,MACCjoK,EAAMsb,OAAAsb,EAAAA,YAAAozI,GAAA,CAAArG,SAEOA,EAASxqK,MACnBA,MAAO2tK,EAAY3tK,MAAA+2B,IACd02I,EAAA50I,SACKA,EAAS74B,MACnBsgD,MAAOz5C,EAAMy5C,MAAAn+B,MACNtb,EAAMsb,MACb6tB,SAAA,MAAA,gBACenpC,EAAM+iK,aAAA/iB,QACZ,SAAC9hI,GACR4oJ,EAAY3tK,MAAQ+kB,CACtB,EAAA+rJ,UACW,WAAM,IAAAE,EACTlC,EAAWI,YACjBroK,EAAAA,EAAMgjK,mBAANhjK,OAAAA,EAAAA,KAAAA,EAAoBioK,EACtB,GACF,MAEDjoK,EAAM8iK,UAAAlsI,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU4Z,EAAe7xC,MAAA,YAC3BwtB,CAAAA,EAAMxtB,MAAM6L,KAAI,SAACi6B,EAAWzmC,GAC3B,OAAsB,IAAlBymC,EAAKkK,UAAoC,MAAlBlK,EAAKkK,SAAyB,KACzDvS,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,UAAAX,IAAoBA,EAAAq6B,MAAYowI,GAAahkI,EAAM0kI,EAASxqK,QAAQ,KAErG,MAGJ6vK,EAAW7C,OAGf+B,EAAe/uK,OAAS6G,EAAM4iK,mBA5G3BwH,EAAgBxC,EAAUf,EAAW1tK,OAIrCkxK,EAAiBzC,EAAUd,EAAY3tK,OAK3Cy9B,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAAzF,OACF4Z,EAAe7xC,MAClB,qBAAA,CACE,cAAewqK,EAASxqK,SAI3BkwK,CAAAA,EAAkBe,GAhBI,SAAClsJ,GACf2oJ,EAAA1tK,MAAQyuK,EAAU1pJ,MAgB1Ble,EAAMsb,OAASsb,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAsB,kBAAA,MACnE6G,EAAMsb,OAAS+tJ,EAAkBgB,GAdV,SAACnsJ,GACf4oJ,EAAA3tK,MAAQyuK,EAAU1pJ,WAPR,IAClBksJ,EAIAC,EA2GV,IEvbWC,GAAS3jI,GAAY2/H,IACrBiE,GAAe5jI,GAAYq9H,ICFzBwG,GAAA,CAEbC,aAAc,CACZ3uK,KAAMhC,UAGR4wK,YAAa,CACX5uK,KAAMnF,OAGRq7B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXs2B,MAAO,CACL39C,KAAM,CAACnF,MAAOmD,UACdqpB,QAAS,WAAT,MAAuC,EAAC,GAG1C2O,QAASgQ,QAETv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ8oC,SACvB3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,OAAQ8oC,SACvB3e,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,OAAQ8oC,UAGzBwmB,SAAUxuD,UCxCZ6wK,GAAev1I,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACPnO,EAAWqY,KACXW,EAAiB7Z,GAAe,UACtC8Z,EAAyB5Z,KAAjBQ,EAAAoZ,EAAApZ,OAAQP,EAAK2Z,EAAL3Z,KAEhBy6C,EAA8B7nC,SAAOlkC,GAC6DgsE,EAAArvD,GAA/DooD,GAD3BgH,EAAA5yE,MAAkB4yE,EAAX/G,WACiDhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA3FypC,EAAY/lB,EAAA,GAAA4+F,EAAY5+F,EAAA,GAEzBgR,EAAcrlE,EAAAA,UAAS,WAC3B,QAAI3X,EAAM0qK,aAAe1qK,EAAM0qK,YAAYl0K,OAAS,IAC3CwJ,EAAM0qK,YAAY,EAG7B,IACMG,EAAgBlzJ,EAAAA,UAAS,WAC7B,SAAI3X,EAAM0qK,aAAe1qK,EAAM0qK,YAAYl0K,OAAS,IAC3CwJ,EAAM0qK,YAAY,EAG7B,IAGA,SAASI,EAAatwK,GACpB,IAAM63B,EAAU0/D,EAAW54F,QAAU6jF,EAAY7jF,MAAQ0xK,EAAc1xK,MAAQ6jF,EAAY7jF,MAE9EyxK,EAAAv4I,EAAS,CAAE73B,EAAAA,GAC1B,CAEA,SAASuwK,EAAOvwK,GACVw3B,EAAS74B,OAAS6G,EAAM8xB,UAGvB9xB,EAAMyqK,aAIXv9J,QAAQc,QAAQhO,EAAMyqK,gBACnB1vH,MAAK,SAAC78B,GACDA,GACF4sJ,EAAatwK,EAEjB,IAAC,OACM,SAACA,GACA,MAAA,IAAIy/B,MAAM,gCAAA7I,OAAgC52B,GAClD,IAXAswK,EAAatwK,GAYjB,CAGM,IAAAm8B,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC1B4Z,EAAe7xC,OAClBm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAAAA,EAAAA,EAAA,CAAA,EAEd44B,EAAO14B,MAAM64B,SAAWA,EAAS74B,OACjC04B,EAAO14B,MAAM24B,QAAU9xB,EAAM8xB,SAC7BD,EAAO14B,MAAMk5B,QAAU0/D,EAAW54F,QAAU6jF,EAAY7jF,OAAS6G,EAAMglE,aAAegY,EAAY7jF,WAGjG6xK,EAAcrzJ,EAAAA,UAAS,WACpB,MAAA,CAAAyZ,GAAAA,OACF4Z,EAAe7xC,MAAAF,YAAAA,EAAAA,EAEf44B,GAAAA,EAAO14B,MAAM64B,SAAWA,EAAS74B,OACjC04B,EAAO14B,MAAM24B,QAAU9xB,EAAM8xB,SAGpC,IACM2nI,EAAiB9hJ,EAAAA,UAAS,WACvB,MAAA,CAAA,GAAAyZ,OACF4Z,EAAe7xC,MAAA,aAClBm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAEd44B,CAAAA,EAAAA,EAAO14B,MAAM64B,SAAWA,EAAS74B,OAGxC,IAEAuoC,QACEqwD,GACA,SAACtzD,GACKz+B,GAAAA,EAAM0qK,aAAe1qK,EAAM0qK,YAAYl0K,SAAWwJ,EAAM0qK,YAAYlzJ,SAASinB,GAC/E,MAAM,IAAIxE,MAAM7I,mBAAAA,OAAmBm+G,KAAKC,UAAUxvI,EAAM0qK,cAE5D,GACA,CACE1/G,WAAW,IAIT,IAAA/hC,EAAUtR,EAAAA,UAAqB,WAC/B,GAAA9a,EAAWmD,EAAMy5C,OACnB,OAAOz5C,EAAMy5C,MAAMh8B,IAAG,CAAEtkB,MAAO44F,EAAW54F,QAExC,GAAAif,GAASpY,EAAMy5C,OACjB,OAAOz5C,EAAMy5C,MAEf,GAAI1hD,EAAQiI,EAAMy5C,QAAUz5C,EAAMy5C,MAAMjjD,OAAQ,CACxC,IAAAijD,EAAQs4C,EAAW54F,QAAU6jF,EAAY7jF,MAAQ6G,EAAMy5C,MAAM,GAAKz5C,EAAMy5C,MAAM,GACpF,IAAKA,EAAO,OACR,GAAArhC,GAASqhC,GACJ,OAAAA,EAEL,GAAA58C,EAAW48C,GACb,OAAOA,EAAMh8B,EAAAA,EAEjB,CACA,OAAI0iB,EAAMsZ,MACDtZ,EAAMsZ,MAAM,CAAEtgD,MAAO44F,EAAW54F,QAElC,IACT,IACA,OAAO,WACD,IAAA8xK,EACAC,EAOJ,OANIlrK,EAAM8xB,QACSo5I,EAAAt0I,EAAAO,YAAAoU,GAAA,CAAAhnC,KAAA,SAAuB,MAC/B0kB,EAAQ9vB,QACjB8xK,EAAgBhiJ,EAAQ9vB,OAG1By9B,EAAAA,YAAA,MAAA,CAAAC,MACcF,EAAQx9B,cAAgB4xK,GAAA,CAAAn0I,EAAAO,YAAA,OAAA,CAAAN,MACrBm0I,EAAY7xK,OAAQ+xK,CAAAA,+BACrBzR,EAAetgK,OAAA,CAAQ8xK,MAI3C,ICrIWE,GAASxkI,GAAYgkI,ICAnBS,GAAA,CAEbr9E,kBAAmBjsD,QAEnBmsD,UAAWnsD,QAEXupI,SAAU,CACRvvK,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGX6O,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXkrE,aAAc,CACZvyF,KAAM9C,QAGRs1F,UAAW,CACTxyF,KAAM,CAAC/C,OAAQC,SAGjBpB,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,IAGX4E,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXorE,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXkrC,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGFkwD,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,SAGjB41F,OAAQ90F,SAERwuD,SAAUxuD,SAEVk1F,QAASl1F,SAETm1F,UAAWn1F,SAEXo1F,WAAYp1F,SAEZq1F,QAASr1F,SAETu1F,WAAYv1F,UP9Dd,SAASwxK,GACPC,GAGoB,IAAAC,EAFpBC,EAAqB1sK,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EACrB2sK,yDAAqB,KAEhBrF,KACcA,GAAA/sI,SAASuD,cAAc,YAC/BvD,SAAA0B,KAAK8B,YAAYupI,KAGtB,IAAAsF,E5buMD,SAA2BJ,GAC5B,GAAkB,oBAAXz1I,OACF,MAAA,CACL81I,YAAa,EACbC,WAAY,EACZC,UAAW,EACXC,YAAa,IAIX,IAAAl5I,EAAQiD,OAAOE,iBAAiBu1I,GAEhCO,EAAYj5I,EAAMmL,iBAAiB,eACpCnL,EAAMmL,iBAAiB,oBACvBnL,EAAMmL,iBAAiB,sBAgBrB,MAAA,CACL4tI,YAdA53I,WAAWnB,EAAMmL,iBAAiB,mBAChChK,WAAWnB,EAAMmL,iBAAiB,gBAavB6tI,WATb73I,WAAWnB,EAAMmL,iBAAiB,wBAChChK,WAAWnB,EAAMmL,iBAAiB,qBAQX8tI,UAAAA,EAAWC,YALlB72I,GACjBlwB,KAAI,SAACpN,GAAS,MAAAw5B,GAAAA,OAAGx5B,EAAQw5B,KAAAA,OAAAyB,EAAMmL,iBAAiBpmC,GAAO,IACvDyQ,KAAK,KAKV,C4bnOM2jK,CAAkBT,GAJpBK,EAAAD,EAAAC,YACAC,EAAAF,EAAAE,WACAC,EAAAH,EAAAG,UACAC,EAAAJ,EAAAI,YAGF1F,GAAen2H,aAAa,QAAA9e,GAAAA,OAAY26I,EAAA36I,KAAAA,OA/BnB,mQAgCrBi1I,GAAeltK,MAAQoyK,EAAcpyK,OAASoyK,EAAcxjJ,aAAe,GAE3E,IAAIkP,EAASovI,GAAe7sG,aACtB/+D,EAA6B,CAAA,EAC7BwxK,EAA4B,eAAdH,EAGhBG,EACQh1I,GAAA40I,EAHuB,gBAAdC,IAKT70I,GAAA20I,GAGZvF,GAAeltK,MAAQ,GACjB,IAAA+yK,EAAkB7F,GAAe7sG,aAAeoyG,UACtCJ,EAAAnF,UAAA,IAAAmF,GAAA,QAAAA,EAAAA,EAAAttI,kBAAAstI,IAAAA,GAAAA,EAAYxuI,YAAYqpI,IAEvBA,GAAA,KAEX,IAAA8F,EAAa,SAACC,GAClB,IAAIC,EAAaH,EAAkBE,EAI5B,OAHHH,IACFI,EAAaA,EAAaT,EAAcC,GAEnCQ,GAGL,IAAC/yJ,GAAOmyJ,GAAU,CACd,IAAAa,EAAYH,EAAWV,GACpBx0I,EAAA52B,KAAKC,IAAIgsK,EAAWr1I,GAC7Bx8B,EAAO6xK,oBAAeA,EAAA,KACxB,CAKO,OAJFhzJ,GAAOoyJ,KACVz0I,EAAS52B,KAAK0U,IAAIo3J,EAAWT,GAAUz0I,IAEzCx8B,EAAOw8B,iBAAYA,EAAA,MACZx8B,CACT,CQhDA,IAAA8xK,GAAen3I,kBAAgB,CAC7Bx9B,KAAM,YACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAA2C,IAAjBwiC,EAAAD,EAAAC,MAAOke,IAAAA,OAC/B3P,EAAS5f,KACTv5B,EAAOu5B,GAAe,YACtBq7I,EAAsB70J,EAAAA,UAAS,WAAA,MAAA,GAAAyZ,OAASx5B,EAAKuB,MAAa,SAAA,IAC1DszK,EAAiB90J,EAAAA,UAAS,WAAA,MAAA,GAAAyZ,OAASx5B,EAAKuB,MAAc,UAAA,IAE5D4yE,EAA8B7nC,SAAOlkC,GAC8DgsE,EAAArvD,GAA/DooD,GAD5BgH,EAAA5yE,MAAkB4yE,EAAX/G,WACkDhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAC1Bh6C,EAAWqY,KACX81D,EAAa7Q,KACbo9E,EAAgBx8I,MAAmB,CAAA,GAEnCy8I,EAAkBz8I,EAAAA,MAClB+B,EAAU/B,OAAI,GACd08I,EAAc18I,OAAI,GAMlB28I,EAAuB,WAAM,IAAAC,EAC7B9sK,IAAmB,IAAnBA,EAAMqrK,SACR71I,EAAAA,UAAS,WACOk3I,EAAAvzK,MAAQmyK,GAAmBqB,EAAgBxzK,MAC3D,YACS6G,EAAMqrK,UAAsC,WAA1BhzK,EAAO2H,EAAMqrK,UAAuB,CAC/D,IAAA0B,EAA6B/sK,EAAMqrK,SAA3BI,EAAAsB,EAAAtB,QAASC,EAAQqB,EAARrB,QACjBl2I,EAAAA,UAAS,WACPk3I,EAAcvzK,MAAQmyK,GAAmBqB,EAAgBxzK,MAAOsyK,EAASC,EAC3E,GACF,MAAWlpI,EAAM4pI,KACfM,EAAcvzK,MAAQ,CAAE89B,OAAQ,OAAQq1I,UAAW,QAC1C9pI,EAAM3P,OAAyB,QAAzBi6I,EAASH,EAAgBxzK,aAAA2zK,IAAAA,WAAAA,EAAhBA,EAAuBj6I,aAAvBi6I,OAAAA,EAA8B71I,SACtDy1I,EAAcvzK,MAAQ,CAAE89B,OAAQ01I,EAAgBxzK,MAAM05B,MAAMoE,UAgB1Dy7D,EAAyB,SAACl4F,GACxB,IACFikC,EADejkC,EAAXw4B,OAC+B75B,MACvC,GAAI6G,EAAMquF,cAAgBruF,EAAMquF,cAAgB,EAAG,CACjD,IAAM2+E,EAAat4I,GAAmB+J,EAAKz+B,EAAMquF,cAC3C5vD,EAAsB,WAAtBpmC,EAAO20K,IAA2BA,EAAWl4I,UACrD,EACC83I,EAAYzzK,OAAS64F,EAAcvzD,EAAK,CAAEjkC,EAAAA,IAClCg7B,EAAAA,UAAA,WAAA,OApBW,WAA2B,IAA1BtX,EAAAnf,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAmB,GAClCkuK,EAAeN,EAAgBxzK,MAC/Bs5F,EAAK15F,OAAOmlB,GACb+uJ,GAIDA,EAAa9zK,QAAUs5F,IACzBw6E,EAAa9zK,MAAQs5F,EACrBV,EAAW54F,MAAQs5F,GAWN2uB,CAAc3iF,MACRouI,KAGjB14E,EAAc,SAAC35F,GACnBk4F,EAAuBl4F,IAGnBu0F,EAAqB,WACzB69E,EAAYzzK,OAAQ,GAGhB21F,EAAmB,SAACt0F,GACxBoyK,EAAYzzK,OAAQ,EACpBu5F,EAAuBl4F,IAGnB0yK,EAAY,SAA6Ct1K,EAAS4C,GAAqB,IAAA2yK,EAC3F,IAAIn7I,EAAS74B,MAAb,CACM,IAAAi0K,OAAAh8I,OAAiBx5B,EAAK,GAAGy0G,eAAgBz0G,OAAAA,EAAKF,MAAM,YAC1DsI,EAAAA,EAAMotK,UAAa,IAAAD,GAAnBntK,EAAAA,KAAAA,EAAmB+xF,EAAW54F,MAAO,CAAEqB,EAAAA,GAFnB,GAKhB6yK,EAAc,SAAC7yK,GACnB0yK,EAAU,UAAW1yK,IAEjB8yK,EAAY,SAAC9yK,GACjB0yK,EAAU,QAAS1yK,IAEf+yK,EAAe,SAAC/yK,GACpB0yK,EAAU,WAAY1yK,IAGlB04F,EAAY,SAAC14F,GAAkB,IAAA6kH,EACdwtD,IACjB76I,EAAS74B,QACb84B,EAAQ94B,OAAQ,UAChB6G,EAAAA,EAAMgvF,eAAU,IAAAqwB,GAAhBr/G,EAAAA,KAAAA,EAAgB+xF,EAAW54F,MAAO,CAAEqB,EAAAA,MAGhCy1F,EAAWz/D,EAAOA,OAAAmgE,QAAsB,GACxCo5B,EAAW,SAACvvH,GAAkB,IAAA+kH,EAC7B/kH,EAAEw4B,SACc65I,IACrB56I,EAAQ94B,OAAQ,UAChB6G,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAe+xF,EAAW54F,MAAO,CAAEqB,EAAAA,IACnCy1F,SAAAA,EAAUyD,eAIN85E,EAAkB71J,EAAAA,UAAS,WACxB,MAAA,CACL/f,EAAKuB,MAAAF,EAAAA,EAAAm4B,GAAAA,GAAAA,OAEC2f,EAAO53C,MAAsB64B,gBAAAA,EAAS74B,OAAAi4B,GAAAA,OACtC2f,EAAO53C,MAAsBgnG,gBAAAA,EAAWhnG,OAGlD,IACMg+F,EAAax/E,EAAAA,UAA8B,WAC/C,OAAO0b,GAAc,CACnB46D,UAAWjuF,EAAMiuF,UACjBj8D,SAAUA,EAAS74B,MACnBo1F,SAAU4R,EAAWhnG,MACrB4uB,YAAa/nB,EAAM+nB,YACnBumE,WAAatuF,EAAM+tF,mBAAqB/tF,EAAMsuF,gBAAc,EAC5D12F,KAAMoI,EAAMpI,WAAQ,GAExB,IACM61K,EAAkB91J,EAAAA,UAAS,WAC/B,IAAM+1J,EAAgBh5I,GAAmB37B,OAAOg5F,EAAW54F,OAAS,KAChE,MAAyB,WAAzBd,EAAOq1K,GAGFA,EAAcl3K,OAEhBk3K,CACT,IAUQz8E,EAAYL,GARAj5E,EAAAA,UAAS,WAAA,MAAO,CAClCxe,MAAO,MAAC,EAAW,MAAMqe,SAASu6E,EAAW54F,YAAS,EAAYJ,OAAOg5F,EAAW54F,OACpFk1D,OAAQruD,EAAMquD,OACdigC,UAAWt1F,OAAOgH,EAAMsuF,WACxBD,aAAcruF,EAAMquF,aACpBN,kBAAmB/tF,EAAM+tF,kBACzBsB,WAAYrvF,EAAMqvF,WAClB,KACM4B,QAGRvvD,EAAAA,OACE,WAAA,OAAMqwD,EAAW54F,SACjB,WAAA,OAAM0zK,GAAqB,IAGvBnrI,QAAAirI,GAAiB,SAACh6I,GACjBA,IACgBk6I,IACjB7sK,EAAMiuF,WACRt7D,EAAGwyB,QAEP,IAEMzjB,QAAAgrI,GAAe,SAACjuI,GACd,IAAE5L,EAAU2P,EAAV3P,MACJh3B,EAASg3B,GACXH,GAASi6I,EAAgBxzK,MAAO0gB,GAAMgZ,EAAO4L,IAEpC/L,GAAAi6I,EAAgBxzK,MAAOslC,EAEpC,IAEAiD,EAAAA,MAAMqwD,GAAY,WACPv8D,EAAAA,UAAA,WAAA,OAAMq3I,MACjB,IAEAnrI,EAAAA,OAAM,WAAA,OAAM1hC,EAAMqrK,QAAA,GAAUwB,EAAsB,CAAE11F,MAAM,IAEnDz2B,EAAA,CACLyE,MAhKY,WAAA,IAAAwoH,EAAA,OAAsB,QAAtBA,EAAMhB,EAAgBxzK,aAAA,IAAAw0K,OAAA,EAAhBA,EAAuBxoH,OAAM,EAiK/C6tC,KAhKW,WAAA,IAAA46E,EAAA,OAAsB,QAAtBA,EAAMjB,EAAgBxzK,aAAA,IAAAy0K,OAAA,EAAhBA,EAAuB56E,MAAK,IAmK/Cz9D,EAAAA,WAAU,WACas3I,GACvB,IAEA,IAAMhtI,EAAiBU,KACvB,OAAO,WAAM,IAAAstI,EACLr2E,EAAcnkE,GAAc,CAChC27D,QAASkE,EACTtE,OAAQm7B,EACR96B,UAAWo+E,EACXl+E,QAASm+E,EACTp+E,WAAYq+E,IAEN17I,EAAWR,KAAXQ,OACF8E,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC1Bx5B,EAAKuB,MAAAF,WAAAA,EAAAA,EAAAA,EAAAA,EAAA,GAAA,GAAAm4B,OAEF2f,EAAO53C,MAAY,QAAAi4B,OAAA6/D,EAAQ93F,OAAU83F,EAAQ93F,OAChD04B,EAAO14B,MAAM64B,SAAWA,EAAS74B,OACjC04B,EAAO14B,MAAM84B,QAAUA,EAAQ94B,OAAAi4B,GAAAA,OAC5B2f,EAAO53C,sBAAgD,WAA1Bd,EAAO2H,EAAMqrK,WAEhD,uBAGI18E,EAAO9uD,EAAe,QAEtBiuI,EAAWn/E,GAAA/3D,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACAo7I,EAAoBrzK,MAAS,KAAAi4B,OAAAx5B,EAAKuB,kBAAgB6G,OAAAA,EAAMquD,QAAU,WAAA,CAAasgC,IAG1Fo/E,EACH/tK,EAAMquF,cAAAz3D,EAAAA,YAAA,OAAA,CAAAC,MACQ41I,EAAetzK,OAAAi4B,CAAAA,GAAAA,OAAWq8I,EAAgBt0K,kBAAS6G,EAAMquF,kBAEtEruF,EAAMquF,cAAgBruF,EAAMsuF,WAAA13D,EAAAO,YAAA,OAAA,CAAAN,MACf41I,EAAetzK,OAAA,CAAA,GAAAi4B,OAAW2gE,EAAW54F,MAAkC00K,QAAlCA,EAAQ90K,OAAOg5F,EAAW54F,cAAlB00K,IAA0BA,OAA1BA,EAAAA,EAA0Br3K,OAAS,EAC3FwJ,KAAAA,OAAAA,EAAMsuF,aAKV,OAAA13D,EAAAO,kBAAAoN,aAAA,CAAA1N,MAAY22I,EAAgBr0K,OAAW+gB,GAAKsoB,EAAO,CAAC,WAAQ,CAAA5L,EAAAA,YAAA,WAAA2N,aAAA,CAAAy7G,QAE/C7rD,qBACWpF,EAAAD,iBACFA,EAClB5+D,IAAKy8I,EACLxzK,MAAO44F,EAAW54F,MAClB09B,MAAOF,EAAQx9B,OACXq+F,EACAL,EAAWh+F,aAEhB20K,GAAYC,EAAAn3I,EAAAO,YAAA,MAAA,CAAAN,MAEF,IAAAzF,OACFx5B,EAAKuB,MAAAF,kBAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEFx5B,EAAKuB,MAAA,yBAA+B20K,KAE5C,CAECA,EACAC,IAED,OAIZ,ICnRWC,GAAWrnI,GAAY4lI,mOCA7B,IAEM0B,GAAS,SACTC,GAAS,SAiBtB,SAASC,GAAyBp1H,GAC5B,OAAAhhD,EAAQghD,GACH,CACL16C,OAAQ06C,EAAK,GACb/lB,OAAQ+lB,EAAK,IAGV,CACL16C,OAAQ06C,EACR/lB,OAAQ+lB,EAEZ,CAEA,SAASq1H,GACP1pK,EACA2pK,GAMsB,IAAA9rI,EAAAxjC,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GADlB,CACkB,EAAAuvK,EAAA/rI,EAJpBgsI,WAAAA,OAAa,IAAAD,GAAAA,EAAAE,EAAAjsI,EACb3d,QAAAA,OAAU,IAAA4pJ,GAAAA,EAAAC,EAAAlsI,EACVmsI,YAAAA,OAAc,MAAA,GAACD,EAIjB,GAAIF,EAAY,CACd,IAAI9zK,EAA+B,GACnC,GAAIiK,EACF,IAAA,IAASjO,EAAI,EAAGA,EAAIiO,EAAKlO,OAAQC,IAAK,CACpC,IAAMwoC,EAAOv6B,EAAKjO,GACZk4K,EAAYN,EAAa72J,SAASynB,EAAK9lC,SAAW8lC,EAAKjN,SACzD,GAACpN,IAAW+pJ,EAKhB,GAAI1vI,EAAKC,UAAYD,EAAKC,SAAS1oC,OAAS,EAAG,CAC7C,IAAMo4K,EAAcR,GAAcnvI,EAAKC,SAAUmvI,EAAc,CAC7DE,WAAAA,EACA3pJ,QAAAA,IAEOnqB,EAAAA,EAAO22B,OAAOw9I,QACbhqJ,GAAW+pJ,IAAgB/pJ,IAAY+pJ,IAC1Cl0K,EAAA2I,KAAK67B,EAAK9lC,MAErB,CAEK,OAAAsB,CACT,CACO,OAAAiK,EACJ07B,QAAO,SAACnB,GACP,IAAKA,EAAa,OAAA,EAClB,IAAM0vI,EAAYN,EAAa72J,SAASynB,EAAK9lC,OAC7C,OACIyrB,GAAW+pJ,IAAgB/pJ,IAAY+pJ,MAAiB1vI,EAAKjN,UAAY08I,EAAYl3J,SAASynB,EAAK9lC,OAEzG,IACC6L,KAAI,SAACi6B,GAAA,OAASA,EAAK9lC,QACxB,CAEA,SAAS01K,GACPnqK,EACAxH,GAE2B,IAD3BqxK,EAAAxvK,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GAEMquB,EAAkC1oB,EAAKM,KAAI,SAAC8pK,EAAkB7zK,GAA8B,IAAA8zK,EAC1FC,GAAW9xK,eAAAA,EAAMu8C,QAAS,QAC1Bw1H,GAAW/xK,eAAAA,EAAM/D,QAAS,QAC1B+1K,GAAchyK,eAAAA,EAAM80B,WAAY,WAClC,GAAAzY,GAAYu1J,EAAiBE,IAC/B,MAAM,IAAI/0I,MAAM,GAAA7I,OAAG49I,mCAAiCz/B,KAAKC,UAAUs/B,KAEjE,GAAAv1J,GAAYu1J,EAAiBG,IAC/B,MAAM,IAAIh1I,MAAM,GAAA7I,OAAG69I,mCAAiC1/B,KAAKC,UAAUs/B,KAErE,IAAMr0K,EAA6B,CACjCg/C,MAAOq1H,EAAiBE,GACxB71K,MAAO21K,EAAiBG,GACxBz2K,IAAA,cAAA44B,OAAmB09I,EAAiBG,GAAmB79I,WAAAA,OAAAn2B,GACvD+2B,SAA2C,QAA3C+8I,EAAUD,EAAiBI,UAAgB,IAAAH,GAAAA,EAC3CrqK,KAAMoqK,GAKD,OAHHP,GAAcO,EAAiB5vI,WACjCzkC,EAAOykC,SAAW2vI,GAAgBC,EAAiB5vI,SAAUhiC,GAAM,IAE9DzC,CACT,IACO,OAAA2yB,CACT,CASA,SAAS+hJ,GAAgBzqK,EAA0B2pK,EAAoCe,GAA6B,IAAAC,EAClH,OAAK3qK,EAED2pK,EAAa72J,SAAS9S,EAAKvL,OACtBi2K,UAGLC,EAAA3qK,EAAKw6B,gBAALmwI,OAAAA,EAAe74K,OACVkO,EAAKw6B,SAASqX,MAAK,SAACtX,UAASkwI,GAAgBlwI,EAAMovI,EAAce,OAElEA,GATWA,CAUrB,CAGA,SAASE,GACPC,EACAC,EACAnB,EACAe,GAEWG,EAAAj/J,SAAQ,SAAC2uB,GACd,IAAAwwI,GA5BR,SAAwB/qK,EAA0B2pK,EAAoCe,GACpF,QAAIf,EAAa72J,SAAS9S,EAAKvL,QACtBi2K,CAGX,CAwBQM,CAAezwI,EAAMovI,EAAce,GAI5BD,GAAgBlwI,EAAMovI,EAAce,KAEnCK,mWAAAj5I,CACLyI,GAAAA,UAEEwwI,EAAQvwI,SACfswI,EAAWpsK,KAAKqsK,GACZxwI,EAAKC,WACPuwI,EAAQvwI,SAAW,GACnBowI,GAAoBrwI,EAAKC,SAAUuwI,EAAQvwI,SAAUmvI,EAAce,GACnC,IAA5BK,EAAQvwI,SAAS1oC,eACZi5K,EAAQvwI,YAbnBuwI,EAAU/+J,GAA8BuuB,GACxCuwI,EAAWpsK,KAAKqsK,GAgBpB,GACF,CAGA,SAASE,GACPjrK,EACA2pK,GAGA,IAFAe,IAAYrwK,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,KAAAA,UAAA,GAGZ,8DACE,OAAIqwK,EAEKf,EAAarpK,KAAI,SAAC7L,UAAUuL,EAAK2rD,MAAK,SAACpxB,GAAS,OAAAA,EAAK9lC,QAAUA,IAAM,IAAEinC,QAAO,SAACnB,GAAS,QAAEA,KAG5Fv6B,EAAK07B,QAAO,SAACnB,GAElB,OADgBovI,EAAa72J,SAASynB,EAAK9lC,MAE7C,IAGF,IAAMsB,EAAoC,GAEnC,OADa60K,GAAA5qK,EAAMjK,EAAQ4zK,EAAce,GACzC30K,CACT,CAGA,SAASm1K,GAAYjoD,GACnB,IAAI//F,EAAQ,EAQL,OAPD+/F,EAAAr3G,SAAQ,SAACw5B,GACTA,EAAM5K,UAAY4K,EAAM5K,SAAS1oC,OAAS,EACnCoxB,GAAAgoJ,GAAY9lI,EAAM5K,UAElBtX,GAAA,CAEb,IACOA,CACT,CCnMA,IAAAioJ,GAAez6I,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAO,CACL7G,MAAO,CACL2C,KAAM/C,OACNoqB,QAAS,IAEX8rB,OAAQ,CACNnzC,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAEX4E,YAAa,CACXjsB,KAAM/C,OACNoqB,QAAS,IAEXmlC,SAAUxuD,UAEZu7B,MAAAA,SAAMr1B,GACJ,IAAM0kB,EAAcyM,KACZ2+I,EAAe1jH,GAAc,CAAE0jH,WAAYC,KAA3CD,WACFzpD,EAAe,SAACltH,EAAe62K,GAAmB,IAAArtB,EAC9CnoJ,EAAew1K,EAAfx1K,EAAG+pD,EAAYyrH,EAAZzrH,QACM,QAAjBo+F,EAAA3iJ,EAAMsoD,gBAAW,IAAAq6F,GAAjBA,EAAAlrJ,KAAAuI,EAAiB,CACf7G,MAAAA,EACAqB,EAAAA,EACA+pD,QAAAA,KAGEq0C,EAAqC,WAAxBvgG,EAAO2H,EAAMivC,QAAsBjvC,EAAMivC,OAAS,CAAEk/C,WAAW,GAE3E,OAAA,WAAA,OAAAv3D,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU1M,EAAYvrB,MACzB,8BAAA,CAAAy9B,EAAAO,YAAAwrE,GAAAp+D,EAAAA,WAAYq0D,EAAA,CAAAtyF,aAA0BtG,EAAM7G,eAAiBktH,EAAAt+F,YAA2B/nB,EAAM+nB,cAC5F,CAAA5E,QAAA,WAAA,MAAAyT,CAAAA,EAAAO,YAAA24I,EAAA,CAAA92H,KAAA,eAAA,MAAA,MAIR,ukBCzBsB,SAAA6sG,GAAAtoI,GAAA,MAAA,mBAAAA,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,EAAA,CAExB,IAAMvd,GAAQ,CACZiwK,cAAe,CACbn0K,KAAMxE,OACN6rB,QAAS,WAAT,MAAgB,EAAC,GAEnB+sJ,WAAY,CACVp0K,KAAMnF,MAAAwsB,QACNA,WACE,MAAO,EACT,GAEFgtJ,SAAU,CACRr0K,KAAM/C,OACNoqB,QAAS,UAEXwF,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAEjBs2K,aAAc,CACZt0K,KAAMnF,MAAAwsB,QACNA,WACE,MAAO,EACT,GAEF6O,SAAU,CACRl2B,KAAMgmC,QACN3e,SAAS,GAEX8rB,OAAQ,CACNnzC,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAEXktJ,aAAcv2K,SACdmtB,MAAO,CACLnrB,KAAM,CAAChC,SAAUf,SAEnByuB,WAAY,CAACsa,QAASxqC,QACtBg5K,OAAQ,CAACx2K,SAAUf,QACnBgsH,SAAUjjF,QACVysI,WAAY,CACVzyK,KAAMgmC,QACN3e,SAAS,GAEXojG,gBAAiBzsH,SACjBy2K,aAAcz2K,SACdivE,SAAUjvE,SACV6wH,SAAU7wH,SACV02K,aAAc12K,SACd6jF,UAAW77C,QACXylF,aAAc,CACZzrH,KAAMnF,QAIV85K,GAAer7I,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAM0kB,EAAcyM,KACZo2F,EAAiBrjF,EAAAA,OAAOlkC,GAAxBunH,aACRh4C,EAA4Bp/C,GAAU,YAA9BpT,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aAELggJ,EAAcxgJ,MAAI,IAElB4lG,EAAiB5lG,MAAI,GAErBimG,EAAkBjmG,MAAI,GAEtBygJ,EAAch5J,EAAAA,UAAS,WAC3B,IAAM6P,EAAaxnB,EAAMwnB,WACzB,OAAOA,aAAAA,EAAAA,EAAY5N,UAAWk8G,EAAe38H,QAASquB,aAAAA,EAAAA,EAAYsuG,eACpE,IACMI,EAAWv+G,EAAAA,UAAS,WACxB,IAAM6P,EAAaxnB,EAAMwnB,WACzB,OAAOA,aAAAA,EAAAA,EAAY0uG,WAAYC,EAAgBh9H,QAASquB,aAAAA,EAAAA,EAAY2uG,gBACtE,IAEMy6C,EAAej5J,EAAAA,UAAS,WAE5B,OADmB3X,EAAMkwK,WAAW35H,MAAK,SAACtX,UAASA,EAAKC,UAAYD,EAAKC,SAAS1oC,UAOzEq6K,EAAiB7wK,EAAMkwK,WAAYQ,EAAYv3K,OAL/C6G,EAAMkwK,WAAW9vI,QAAO,SAACnB,GAEvB,OADOA,GAAQA,EAAKwa,MAAMjiD,YACpB8T,cAAc4nB,QAAQw9I,EAAYv3K,MAAMmS,gBAAiB,CACxE,GAIJ,IAEMwlK,EAAYn5J,EAAAA,UAAS,WACzB,OAAQi5J,EAAaz3K,OAASy3K,EAAaz3K,MAAM3C,QAAW,CAC9D,IAEMu6K,EAAcp5J,EAAAA,UAAS,WAC3B,IAAIq5J,EAAWJ,EAAaz3K,MAC5B,IAAK6G,EAAMwnB,WAAmB,OAAAwpJ,EAC9B,GAAuB,IAAnB96C,EAAS/8H,MAAoB,OAAA63K,EACjC,IAAMC,GAAcN,EAAYx3K,MAAQ,GAAK+8H,EAAS/8H,MAChD4rF,EAAW4rF,EAAYx3K,MAAQ+8H,EAAS/8H,MAEvC,OADI63K,EAAAA,EAASt5K,MAAMu5K,EAAYlsF,EAExC,IACMmsF,EAAkBv5J,EAAAA,UAAS,WAKxB,MAA4B,WAA5Btf,EAAO2H,EAAMwnB,YAChBgP,GAAAA,GAAAA,GAAA,CAAA,EAL8C,CAChDmgG,cAAc,EACdP,gBAAiB,KAKVp2H,EAAMwnB,YAAA,CAAA,EAAA,CACTjjB,KAAM,QACN4pB,MAAO,SACPvU,QAAS+2J,EAAYx3K,MACrByuB,MAAOkpJ,EAAU33K,MACjB+8H,SAAUA,EAAS/8H,QAErB,CAAA,CACN,IACA4qF,EC1IoB,SACtBwjC,EACAwpD,EACAI,GAEM,IAAA92D,EAAgBnqF,MAAI,MACpBkhJ,EAAgBlhJ,MAAI,MACpBmhJ,EAAcnhJ,MAAI,MAwEjB,MAAA,CACLirF,YAvEkB,SAAC3gH,GACnB,IAAMS,EAAQjC,OAAQwB,EAAEw4B,OAAuByV,QAAQxtC,OACvDo/G,EAAclhH,MAAQ8B,GAsEtBqgH,UApCgB,WAChBjB,EAAclhH,MAAQ,KACtBi4K,EAAcj4K,MAAQ,KACtBk4K,EAAYl4K,MAAQ,IAkCpBkiH,OA/Ba,SAAC7gH,GACdA,EAAEwzE,iBACF,IAAMsjG,EAAuBj3D,EAAclhH,MACrCo4K,EAAuBH,EAAcj4K,MAK3C,GAHAkhH,EAAclhH,MAAQ,KACtBi4K,EAAcj4K,MAAQ,KACtBk4K,EAAYl4K,MAAQ,GAChBm4K,IAAyBC,EAA7B,CAIA,IAAM5rC,EAAU7tI,EAAIyvH,EAAapuH,OAE3Bq4K,EAAaT,EAAY53K,MAAMm4K,GAAsBn4K,MACrDs4K,EAAaV,EAAY53K,MAAMo4K,GAAsBp4K,MACrDu4K,EAAc/rC,EAAQzyG,QAAQs+I,GAChC1sF,EAAc6gD,EAAQzyG,QAAQu+I,GAE1B9rC,EAAAhhI,OAAO+sK,EAAa,GAEF,WAAtBL,EAAYl4K,QACC2rF,GAAA,GAET6gD,EAAAhhI,OAAOmgF,EAAa,EAAG0sF,GAC/BL,SAAAA,EAAmBxrC,EAAS,CAAC6rC,EAAYC,GAfzC,GAsBA72D,WArEiB,SAACpgH,GAElB,GADAA,EAAEwzE,iBACExzE,EAAEyqD,cAAe,CACnB,IAAM0sH,EAAiBn3K,EAAEyqD,cACnBhqD,EAAQjC,OAAO24K,EAAelpI,QAAQxtC,OACtC22K,EAAaD,EAAezoI,aAC5B2oI,EAAQr3K,EAAE22E,QAAUwgG,EAAev0I,wBAAwBE,IAE3Dw0I,EADoB,GACDF,EAIrB,GAFJR,EAAcj4K,MAAQ8B,EAElBm2K,EAAcj4K,QAAUkhH,EAAclhH,MAExC,YADAk4K,EAAYl4K,MAAQ,IAIpBk4K,EAAYl4K,MADV04K,EAAQC,EACU,MACXD,EAAQD,EAAaE,EACV,SAEA,QAExB,GA+CAC,YA5CkB,WAClBV,EAAYl4K,MAAQ,GACpBi4K,EAAcj4K,MAAQ,MA4C1B,CDoDwE8rF,CAClEsiC,EACAwpD,EACA/wK,EAAMwwK,cAHAr1D,EAAap3B,EAAbo3B,YAAaG,EAAAv3B,EAAAu3B,UAAWD,EAAQt3B,EAARs3B,OAAQT,EAAA72B,EAAA62B,WAAYm3D,IAAAA,YAK9CC,EAAer6J,EAAAA,UAAS,WAC5B,IAAMs6J,EAAW7D,GAAcpuK,EAAMkwK,WAAY,GAAI,CAAE3B,WAAYvuK,EAAMuuK,WAAY3pJ,SAAS,IAG5F5kB,OAAAA,EAAMowK,aAAa55K,OAAS,IAC3BwJ,EAAMuuK,WACH0D,EAASv0G,OAAM,SAACz+B,GAAA,OAASj/B,EAAMowK,aAAa54J,SAASynB,EAAK,KACzDj/B,EAAMivC,OAAS2hI,EAAaz3K,MAAQ6G,EAAMkwK,YAAYxyG,OACrD,SAACz+B,UAA6BA,EAAKjN,UAAYhyB,EAAMowK,aAAa54J,SAASynB,EAAK9lC,MAClF,IAER,IACMs5B,EAAgB9a,EAAAA,UAAS,WAC7B,OAAQq6J,EAAa74K,OAAS6G,EAAMowK,aAAa55K,OAAS,CAC5D,IAEM07K,EAAav6J,EAAAA,UAAS,WACnB,OAAAi4J,GAAY5vK,EAAMkwK,WAC3B,IAEMxuI,QAAAwwI,GAAY,SAACzzI,GACjB,GAAIA,IAAQkyI,EAAYx3K,MAAQ,GAAK+8H,EAAS/8H,MAAO,CACnD,IAAMg5K,EAAW9xK,KAAKqL,KAAK+yB,EAAMy3F,EAAS/8H,OAC1C28H,EAAe38H,MAAQg5K,CACzB,CACF,IAEM,IAAAtB,EAAmB,SAACzjJ,EAA4BoyG,GACpD,IEhIU7qH,EAAYtV,EF4If,OE5IGsV,EFgISjE,GAAU0c,GEhIP/tB,EFgIc,SAACs7B,GAC/B,QAAAA,EAAK8e,MAAMnuC,cAAckM,SAASgoH,EAAQl0H,mBAG1CqvB,EAAKuE,UAAYvE,EAAKuE,SAAS1oC,OAAS,IAC1CmkC,EAAKuE,SAAW2xI,EAAiBl2I,EAAKuE,SAAUsgG,GAC5C7kG,EAAKuE,SAAS1oC,OAAS,GAK/B,GE1IOuB,EAAQ4c,GAActI,GAAc6L,IACnCvD,EAAYN,GAAahV,KF6I7B+yK,EAAyB,SAACz4C,GAAuB,IAAA04C,UACrDryK,EAAAA,EAAMuwK,oBAANvwK,OAAAA,EAAAA,KAAAA,EAAqB25H,GACrB7D,EAAe38H,MAAQwgI,EAAS//G,QAChCu8G,EAAgBh9H,MAAQwgI,EAASzD,UAE7Bo8C,EAAsB,SAAC7zI,GAA8B,IAAA8zI,UACzDvyK,EAAAA,EAAMumH,uBAANvmH,OAAAA,EAAAA,KAAAA,EAAwBy+B,IAEpB+zI,EAAyB,SAACngJ,GAC9B,GAAIA,EAAS,CACL,IAAA4/I,EAAW7D,GAAcpuK,EAAMivC,OAAS2hI,EAAaz3K,MAAQ6G,EAAMkwK,WAAY,GAAI,CACvF3B,WAAYvuK,EAAMuuK,WAClB3pJ,SAAS,IAEX0tJ,EAAoBL,EACtB,MACEK,EAAoB,KAGlBhzH,EAAe,SAAC9kD,GAAa,IAAAk0E,UACjC1uE,EAAAA,EAAM+oE,gBAAN/oE,OAAAA,EAAAA,KAAAA,EAAiBxF,IAEbk5H,EAAe,SAACl5H,GAAW,IAAAm5H,EACzBl6F,EAAqB,CACzBg5I,MAAOj4K,EAAErB,MACT2C,KAAMkE,EAAMmwK,SACZ31K,EAAGA,EAAEA,EACL+pD,QAAS/pD,EAAE+pD,SAEbmsH,EAAYv3K,MAAQqB,EAAErB,cACtB6G,EAAAA,EAAM2qH,gBAAN3qH,OAAAA,EAAAA,KAAAA,EAAiBy5B,IAEboG,EAAiBmB,KAWjBkC,EAAgB,WACpB,IAyBOwvI,EAvBWC,EAFZC,EAAc5yK,EAAM29E,WAAa39E,EAAMmwK,WAAajC,GACtDtvI,EAA2B,KAC1Bg0I,EAwBHh0I,EAAAhI,EAAAO,YAAA07I,GAAA,CAAA15K,MACyB6G,EAAMowK,aAAc9nH,SAAUgqH,QAClDvB,EAAY53K,MAAM6L,KAAI,SAACi6B,EAAMhkC,GAC5B,IAAA63K,EAAA,OAAAl8I,EAAAA,YAAA,MAAA,CAAA+mD,UACai1F,EAAAl3D,UACAJ,EACXE,YAAaL,EACbM,WAAYb,cACCm3D,EAAA12D,OACLA,EACR,aAAYpgH,4CAGA+E,EAAMgyB,UAAYiN,EAAKjN,SACjC74B,MAAO8lC,EAAK9lC,MACZssH,YAAY,QACL,CAAA,GAAAr0F,OACF1M,EAAYvrB,MACf6G,wBAAAA,EAAMowK,aAAa54J,SAASynB,EAAK9lC,OAASi4B,GAAAA,OAAG1M,EAAYvrB,MAAqB,eAAA,QAE3E8lC,EAAKzmC,KACNwH,EAAMiwK,eAAApqB,GAAAitB,EAETjzI,EAAe,eAAgB,CAC9BjB,YAAahI,EAAAO,YAAA,OAAA,KAAA,CAAO8H,EAAKwa,QACzBpa,OAAQ,CAAE36B,KAAMu6B,EAAKv6B,KAAMzJ,MAAAA,EAAOa,KAAMkE,EAAMmwK,aAElD2C,EAAA,CAAA3vJ,QAAA,WAAA,MAAA,CAAA2vJ,EAAA,6CAjDNl0I,EAAAhI,EAAAO,YAAA07I,GAAA,CAAA15K,MAAuB6G,EAAMowK,aAAA9nH,SAAwBgqH,GAClDzsB,GAAA8sB,EAAA5B,EAAY53K,MAAM6L,KAAI,SAACi6B,EAAMhkC,wDAEhB+E,EAAMgyB,UAAYiN,EAAKjN,SACjC74B,MAAO8lC,EAAK9lC,MAAAssH,YACA,EAAA5uF,MACL,CAAA,GAAAzF,OACF1M,EAAYvrB,MACf6G,wBAAAA,EAAMowK,aAAa54J,SAASynB,EAAK9lC,OAASi4B,GAAAA,OAAG1M,EAAYvrB,MAAqB,eAAA,QAE3E8lC,EAAKzmC,KACNwH,EAAMiwK,eAAApqB,GAAAxzG,EAETxS,EAAe,eAAgB,CAC9BjB,YAAahI,EAAAO,YAAA,OAAA,KAAA,CAAO8H,EAAKwa,QACzBpa,OAAQ,CAAE36B,KAAMu6B,EAAKv6B,KAAMzJ,MAAAA,EAAOa,KAAMkE,EAAMmwK,aAC/C99H,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,2CAwCX,OAAAzb,EAAAA,YAAA,MAAA,CAAAC,MACc,CAAA,GAAAzF,OAAI1M,EAAYvrB,MAAgC,2BAAA,oBAAqB4vE,SAAUzpB,GACxFzf,CAAAA,EAAe,OAAQ,CACtBjB,YAAAA,EACAS,OAAQ,CACN36B,KAAMqsK,EAAY53K,MAClBA,MAAO6G,EAAMowK,aACb9nH,SAAUgqH,QAMdS,EAAc,WAClB,IAAM9rJ,EAAQjnB,EAAMinB,OAASlK,EAAE2T,EAAav3B,MAAM8tB,OAC5C2X,EAAqBxmB,GAAS6O,GAAK2P,EAAAO,YAAA,OAAA,KAAA,CAAWlQ,IAAgB,KACpE,OAAA2P,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB1M,EAAYvrB,MAAA,qBACxB0mC,CAAAA,EAAe,QAAS,CACvBjB,YAAAA,EACAS,OAAQ,CACNvjC,KAAMkE,EAAMmwK,eAMhBlrB,EAAe,WACnB,IAAMrmH,EAAcxmB,GAASpY,EAAMswK,6CAClB5rJ,EAAYvrB,MAAA,sBAAA,CAA2B6G,EAAMswK,SAC1D,KACJ,OAAOzwI,EAAe,SAAU,CAC9BjB,YAAAA,EACAS,OAAQ,CACNvjC,KAAMkE,EAAMmwK,aAKlB,OAAO,WAAA,OAAAv5I,EAAAA,YAAA,MAAA,CAAAC,MACO,IAAAzF,OAAI1M,EAAYvrB,MAAAi4B,mBAAAA,GAAAA,OAA2B1M,EAAYvrB,MAAwB6G,oBAAAA,OAAAA,EAAMmwK,YAAU,CAAAv5I,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAC1F1M,EAAYvrB,MAAA,2BAAAy9B,CAAAA,EAAAA,wBAEtB52B,EAAM+kH,UACLnuF,EAAAO,YAAA67I,GAAA,CAAAhhJ,SACYhyB,EAAMgyB,WAAahyB,EAAMkwK,WAAW15K,OAAA67B,QACrC2/I,EAAa74K,MAAAs5B,cACPA,EAAct5B,MAAAmvD,SACnBkqH,GACZ,MAAA57I,EAAAO,YAAA,OAAA,KAAA,CAGCpa,EAAE2T,EAAav3B,MAAMwvB,MAAO,CAC3B0J,QAASryB,EAAMowK,aAAa55K,OAC5BoxB,MAAOsqJ,EAAW/4K,aA5HtBylC,EAAc5+B,EAAM2oB,OAASvQ,GAASpY,EAAM2oB,OAASiO,EAAAO,YAAA,WAAA,KAAA,CAAWn3B,EAAM2oB,QAAoB,KAC1FsqJ,EAAYpzI,EAAe,QAAS,CACxCjB,YAAAA,EACAS,OAAQ,CACNvjC,KAAMkE,EAAMmwK,YAGTv5I,EAAAO,yBAAO87I,OAyHGr8I,EAAAO,YAAA,MAAA,CAAAN,MAGN,IAAAzF,OACF1M,EAAYvrB,MACf6G,wBAAAA,EAAMivC,UAAA7d,OAAY1M,EAAYvrB,sCAAsC,KACtE,CAEC6G,EAAMivC,sCAEUyhI,EAAYv3K,MAAA4uB,YACZhL,EAAE2T,EAAav3B,MAAM4uB,aAAWugC,SACnCorE,EACV1hG,SAAUhyB,EAAMgyB,SAChBid,OAAQjvC,EAAMivC,QAChB,MAED8hI,EAAY53K,MAAM3C,OAAS,EAAI0sC,IAAkB6vI,MAEnD/yK,EAAMwnB,YAAc0uG,EAAS/8H,MAAQ,GAAK23K,EAAU33K,MAAQ,wCAC5CurB,EAAYvrB,oEACT+3K,EAAgB/3K,MAAO,CAAAmvD,SAAU8pH,IADlD,QAIFntB,MAzJe,IACZrmH,EACAq0I,EA0JV,IGjXaC,GAAA,CAEbjD,cAAe,CACbn0K,KAAMxE,QAGR+6B,QAAS,CACPv2B,KAAMnF,MACNwsB,aAAS,GAGXm0F,eAAgB,CACdx7G,KAAMnF,MACNwsB,QAAS,WAAT,MAAkD,EAAC,GAGrDze,KAAM,CACJ5I,KAAMnF,MACNwsB,QAAS,WAAT,MAAwC,EAAC,GAG3CiH,UAAW,CACTtuB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,QAAQjnB,SAASinB,EAC5C,GAGFzM,SAAU,CACRl2B,KAAM,CAACgmC,QAASnrC,OAChBwsB,aAAS,GAGX8D,MAAO,CACLnrB,KAAM,CAAC/C,OAAQpC,MAAOmD,UACtBqpB,QAAS,IAGXmtJ,OAAQ,CACNx0K,KAAM,CAACnF,MAAOmD,WAGhBoD,KAAM,CACJpB,KAAMxE,QAGR67K,UAAW,CACTr3K,KAAM,CAACnF,MAAOmD,WAGhB0tB,WAAY,CACV1rB,KAAM,CAACxE,OAAQX,QAGjBs4C,OAAQ,CACNnzC,KAAM,CAACgmC,QAASxqC,OAAQX,OACxBwsB,SAAS,GAGXiwJ,aAAc,CACZt3K,KAAM,CAACgmC,QAASnrC,OAChBwsB,SAAS,GAGXkwJ,gBAAiBvxI,QAEjBwxI,WAAY,CACVx3K,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,OAAQ,WAAWjnB,SAASinB,EAClD,GAGF9V,MAAO,CACL7sB,KAAM,CAACnF,MAAOmD,UACdqpB,QAAS,WAAT,MAAyC,EAAC,GAG5CktJ,aAAc,CACZv0K,KAAMhC,UAGRX,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAAgD,EAAC,GAGnDmlC,SAAUxuD,SAEVysH,gBAAiBzsH,SAEjBy2K,aAAcz2K,SAEdivE,SAAUjvE,SAEV6wH,SAAU7wH,UCzGZy5K,GAAen+I,kBAAgB,CAC7Bx9B,KAAM,sBACNoI,MAAO,CAELwzK,aAAc,CACZ13K,KAAMgmC,QACNlV,UAAU,GAGZ6mJ,cAAe,CACb33K,KAAMgmC,QACNlV,UAAU,GAEZumJ,UAAWnzK,GAAMmzK,WAEnBziI,MAAO,CAAC,cAAe,cACvBrb,eAAMr1B,EAAAA,GAAwB,IAAfmgC,EAAAoC,EAAApC,MAAOwQ,IAAAA,KACdjsB,EAAcyM,KACpBq8B,EAA8CpB,GAAc,CAC1DqnB,iBAAkBC,GAClB6M,gBAAiBC,KAFX/M,EAAAjmB,EAAAimB,iBAAkB8M,EAAgB/yB,EAAhB+yB,gBAIpBmzF,EAAc,WAClB/iI,EAAK,gBAEDgjI,EAAa,WACjBhjI,EAAK,eAEDijI,EAAe,WACnB,OAAAh9I,cAAA68C,EAAA,KAAA,OAEIogG,EAAc,WAClB,OAAAj9I,cAAA2pD,EAAA,KAAA,OAEIuzF,EAAU,SAAC1pJ,GACX,OAAAvtB,EAAWmD,EAAMmzK,YAGH,UAAd/oJ,GAAyBpqB,EAAMmzK,WAAat2K,EAAWmD,EAAMmzK,UAAU,KAGzD,SAAd/oJ,GAAwBpqB,EAAMmzK,WAAat2K,EAAWmD,EAAMmzK,UAAU,KAItEhzI,EAAMgzI,UATD,KAaY,SAAd/oJ,EAAuBypJ,EAAcD,GAGxCG,EAAe,SAACt2J,EAA8B2M,GAC9C,GAAAvtB,EAAWsjC,EAAMgzI,WACnB,OAAOhzI,EAAMgzI,UAAU,CACrB/oJ,UAAAA,IAIF,IAGE8Y,EAJA,GAAArmC,EAAWmD,EAAMmzK,WAEnB,OAAOjwI,EADeljC,EAAMmzK,WACP11J,EAAU,CAAE2M,UAAAA,IAG/B,GAAAryB,EAAQiI,EAAMmzK,WAAY,CAC5B,IAAAa,EAAAr3J,GAAsB3c,EAAMmzK,UAAA,GAArB51I,EAAAy2I,EAAA,GAAMv2I,EAAKu2I,EAAA,GACF9wI,EAAc,UAAd9Y,EAAwBqT,EAAQF,CAClD,MACkB2F,EAAA,GAEX,OAAAA,GAGT,OAAO,WAAA,OAAAtM,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU1M,EAAYvrB,MAAA,0BAAAy9B,CAAAA,EAAAO,YAAAwU,GAAA,CAAArE,QAAA,UAAA/iC,KAAA,QAAA8iC,MAIhBtvC,EAAQiI,EAAMmzK,YAAc/6J,GAASpY,EAAMmzK,UAAU,IAAM,YAAc,SAChF36K,IAAKwH,EAAMyzK,cAAgB,gBAAkB,aAAAzhJ,SACnChyB,EAAMyzK,cAAAlsI,QACPmsI,EACTvuJ,KAAM2uJ,EAAQ,UAAO,CAAA3wJ,QAAA,WAAA,MAEpBgd,CAAAA,EAAMgzI,WAAcp7K,EAAQiI,EAAMmzK,YAAcnzK,EAAMmzK,UAAU,GAAMY,EAAat2J,EAAGA,EAAA,SAAW,KAAA,IAAAmZ,EAAAO,YAAAwU,GAAA,CAAArE,QAAA,UAAA/iC,KAAA,QAAA8iC,MAK3FtvC,EAAQiI,EAAMmzK,YAAc/6J,GAASpY,EAAMmzK,UAAU,IAAM,YAAc,SAChF36K,IAAKwH,EAAMyzK,cAAgB,eAAiB,YAAAzhJ,SAClChyB,EAAMwzK,aAAAjsI,QACPosI,EACTxuJ,KAAM2uJ,EAAQ,SAAM,CAAA3wJ,QAAA,WAAA,MAEnBgd,CAAAA,EAAMgzI,WAAcp7K,EAAQiI,EAAMmzK,YAAcnzK,EAAMmzK,UAAU,GAAMY,EAAat2J,EAAGA,EAAA,QAAU,KAAA,MAIzG,ICnFF,IAAAw2J,GAAe7+I,kBAAgB,CAC7Bx9B,KPnB2B,YOoB3BoI,MAAAA,GAEAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACPnO,EAAWqY,KACX3lB,EAAcyM,KACpB46C,EAAuC7nC,SAAOlkC,GAAtC7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAY3yC,EAAQ05C,EAAR15C,QACwE25C,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAEzBqsC,EAA+F17F,GAA/E2nD,GAAgBjyC,EAASryB,EAAMs3G,eAAgBt3G,EAAMumH,gBAAiB,WAAS,GAAnF,GACb2tD,EAAYv8J,EAAAA,UAAS,WAAA,OAAMo6E,EAAW54F,SAEtCo1K,EAAa52J,EAAAA,UAAS,WAE1B,OAAO9a,EADUsjC,EAAM3Z,KAEzB,IAEM2tJ,EAAqBx8J,EAAAA,UAAS,WAAA,MAA0B,UAApB3X,EAAMoqB,aAC1CgqJ,EAAsBz8J,EAAAA,UAAS,WAAA,MAA0B,SAApB3X,EAAMoqB,aAE3CiqJ,EAAe18J,EAAAA,UAAS,WAC5B,OAAOk3J,GAAgB7uK,EAAM0E,KAAM1E,EAAM9C,KAAMqxK,EAAWp1K,MAC5D,IACMm7K,EAAa38J,EAAAA,UAAS,WAC1B,OAAOg4J,GAAmB0E,EAAal7K,MAAO+6K,EAAU/6K,OAA0B,EAAOo1K,EAAWp1K,MACtG,IACMo7K,EAAa58J,EAAAA,UAAS,WAC1B,OAAOg4J,GAAmB0E,EAAal7K,MAAO+6K,EAAU/6K,OAA0B,EAAMo1K,EAAWp1K,MACrG,IAEMi3K,EAAez4J,EAAAA,UAAS,WACrB,OAAA1e,EAAAA,EAAA,CAAA,EACJg1K,GAASG,GAAckG,EAAWn7K,MAAOk/G,EAAal/G,MAAO,CAAEo1K,WAAYA,EAAWp1K,SACtF+0K,GAASE,GAAcmG,EAAWp7K,MAAOk/G,EAAal/G,MAAO,CAAEo1K,WAAYA,EAAWp1K,QAE3F,IACMq7K,EAAY78J,EAAAA,UAAS,WACzB,QAASwoB,EAAMmwI,UAAYtwK,EAAMswK,MACnC,IACMmE,EAAiB98J,EAAAA,UAAS,WAE9B,QAAS3X,EAAMwnB,aAAe2Y,EAAMlX,OACtC,IACMyrJ,EAAa/8J,EAAAA,UAAS,WAEnB,QAAE3X,EAAMivC,MACjB,IACM0lI,EAAeh9J,EAAAA,UAAS,WAE5B,OAAOw2J,GADQnuK,EAAMswK,QAAU,GAEjC,IACMsE,EAAcj9J,EAAAA,UAAS,WACpB,OAAAw2J,GAAiCnuK,EAAMinB,MAChD,IACM4tJ,EAAel9J,EAAAA,UAAS,WACrB,OAAAw2J,GAA+BnuK,EAAMivC,OAC9C,IACMiiF,EAAiBv5G,EAAAA,UAAS,WACvB,OAAAw2J,GAA+BnuK,EAAMozK,aAC9C,IACM0B,EAAiBn9J,EAAAA,UAAS,WACvB,OAAAw2J,GAA+Bn8I,EAAS74B,MACjD,IACM47K,EAAcp9J,EAAAA,UAAS,WACpB,OAAAw2J,GAAkEnuK,EAAM2oB,MACjF,IACMqsJ,EAAmBr9J,EAAAA,UAAS,WACzB,OAAAw2J,GAAyCnuK,EAAMwnB,WACxD,IAEM8qJ,EAAsB,SAAC7zI,EAA2B0xI,GAA+B,IAAAoC,EAC/E0C,EAAgB9E,IAAalC,GAASxvI,EAAM2xI,EAAaj3K,MAAM80K,IAC/DiH,EAAgB/E,IAAajC,GAASzvI,EAAM2xI,EAAaj3K,MAAM+0K,IAC/D77I,EAAUjB,GAAAA,OAAAt5B,EAAIm9K,GAAAn9K,EAAkBo9K,IAChCz7I,EAAwB,CAC5BpH,QAAAA,EACA4iJ,cAAAA,EACAC,cAAAA,EACAp5K,KAAMq0K,GAGR93D,EAAal/G,MAAQk5B,UACrBryB,EAAAA,EAAMumH,uBAANvmH,OAAAA,EAAAA,KAAAA,EAAwBy5B,IAGpB07I,EAAa,SAACC,GAClB,IACIC,EADEC,EAAuC/lC,KAAK5vH,MAAM4vH,KAAKC,UAAU0kC,EAAU/6K,QAE3Eo8K,EAAmBH,IAAgBlH,GAASkC,EAAaj3K,MAAM80K,IAAUmC,EAAaj3K,MAAM+0K,IAElG,GAAIkH,IAAgBnH,GACDoH,EAAAC,EAAel1I,QAAO,SAACliB,GAAA,OAAOq3J,EAAiB/9J,SAAS0G,WAC3E,GAAgC,aAArBle,EAAMszK,WAA2B,CAE1C,IAAM5E,EAAc2F,EAAal7K,MAAM4yC,QAAO,SAACsH,EAAK3uC,GAClD,OAAI4wK,EAAe99J,SAAS9S,EAAKvL,QAAUuL,EAAKstB,SACvCqhB,EAAIjiB,OAAO1sB,EAAKvL,OAElBk6C,CACT,GAAG,IACHgiI,EAAiBjH,GAAciG,EAAal7K,MAAOm8K,EAAelkJ,OAAOmkJ,GAAmB,CAC1FhH,WAAYA,EAAWp1K,MACvBu1K,YAAAA,GAEJ,MACmB2G,EADa,YAArBr1K,EAAMszK,WACEiC,EAAiBnkJ,OAAOkkJ,GAExBA,EAAelkJ,OAAOmkJ,GAIzCjD,EAAoB,GAAI8C,IAAgBnH,GAASC,GAASD,IAM1Dj8E,EAAcqjF,EAJe,CAC3Bv5K,KAAMs5K,EACNI,WAAYD,KAMVE,EAAkB,WACtBN,EAAWjH,KAGPwH,EAAiB,WACrBP,EAAWlH,KAaPv6C,EAAe,SAACl5H,GAAmB,IAAAm5H,UACvC3zH,EAAAA,EAAM2qH,gBAAN3qH,OAAAA,EAAAA,KAAAA,EAAiBxF,IAMb22K,EAAmB,SAACzsK,EAA4B8wK,GACpDxjF,EAActtF,EAAM,CAClB5I,KAAMoyK,GACNsH,WAAAA,KAGEG,EAAqB,SAACxF,GACpB,IA5JmB5yJ,EA4JnBq4J,EAAcz6J,GAAKglB,EAAO,CAAC,QAAS,QAAS,SAAU,YAAa,eAAgB,UAAW,SACrG,OAAAvJ,EAAAA,YAAA65I,GAAA,CAAAR,cAEmBjwK,EAAMiwK,cACrBI,aAAcrwK,EAAMqwK,aACpB,YAAWF,EACXxnJ,MAAOosJ,EAAY57K,MAAMg3K,GAAA,cACZA,IAAalC,GAASqG,EAAWn7K,MAAQo7K,EAAWp7K,MACjE,gBAAei3K,EAAaj3K,MAAMg3K,GAAAn+I,SACxB8iJ,EAAe37K,MAAMg3K,UACvB0E,EAAa17K,MAAMg3K,GAC3B3oJ,WAAYwtJ,EAAiB77K,MAAMg3K,GAAA,YACxBj/C,EAAe/3H,MAAMg3K,UACxBwE,EAAax7K,MAAMg3K,GAAAlpJ,MACpB2tJ,EAAYz7K,MAAMg3K,mBACR,SAAC31C,UAAgB83C,EAAoB93C,EAAQ21C,EAAQ,EAAApnG,SAC5D,SAACyxD,GAAA,OAxCI,SAAChgI,EAAU21K,GAA+B,IAAAzhG,EACvD17C,EAASx4B,EAAEw4B,OAEXyG,EAAsE,CAC1Ej/B,EAAAA,EACAq7K,eAHqB7iJ,EAAOwmC,aAAexmC,EAAO+I,UAAY/I,EAAOkjC,aAIrEp6D,KAAMq0K,WAERnwK,EAAAA,EAAM+oE,gBAAN/oE,OAAAA,EAAAA,KAAAA,EAAiBy5B,GAgCc6lB,CAAak7E,EAAQ21C,aACtCz8C,EAAA68C,aACI,SAAC/1C,UA7BI,SAACb,EAAoBw2C,GAA+B,IAAAkC,EACtDA,QAArBryK,EAAAA,EAAMuwK,oBAANvwK,IAAqBqyK,GAArBryK,EAAAA,KAAAA,EAAqB25H,EAAU,CAAE79H,KAAMq0K,IA4BJv2C,CAAiBY,EAAQ21C,EACxD,EAAA5B,WAAYA,EAAWp1K,MACvBq3K,aAAcW,eACA+C,EAAU/6K,gBACb6G,EAAMqzK,iBAAmBlD,IAAajC,IAlL5B,mBAAA3wJ,EAoLpBq4J,IApLoBrjI,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAoLpBq4J,6BAAAA,OAKA,OAAA,WAAA,OAAAh/I,EAAAA,YAAA,MAAA,CAAAC,MAEI,CAAA,GAAAzF,OACF1M,EAAYvrB,MACfu7K,aAAAA,EAAWv7K,MAAAi4B,GAAAA,OAAW1M,EAAYvrB,MAA2B,qBAAA,GAC7Dq7K,EAAUr7K,MAAAi4B,GAAAA,OAAW1M,EAAYvrB,MAA2B,qBAAA,GAC5Ds7K,EAAet7K,MAAAi4B,GAAAA,OAAW1M,EAAYvrB,+BAA+B,GACrEo1K,EAAWp1K,MAAA,GAAAi4B,OAAW1M,EAAYvrB,MAA8B,wBAAA,KAClE,CAECw8K,EAAmB1H,IAAMr3I,EAAAA,YAAA28I,GAAA,CAAAC,aAGtBsB,EAAe37K,MAAM+0K,KAAWiG,EAAmBh7K,OAA+C,IAAtCi3K,EAAaj3K,MAAM+0K,IAAQ13K,OAAWi9K,cAGlGqB,EAAe37K,MAAM80K,KAAWmG,EAAoBj7K,OAA+C,IAAtCi3K,EAAaj3K,MAAM80K,IAAQz3K,OAE1F28K,UAAWnzK,EAAMmzK,UACjB2C,cAAeL,EACfM,aAAcL,GACL,CAAEvC,UAAWhzI,EAAMgzI,YAE7BwC,EAAmBzH,MAG1B,ICpOW8H,GAAWrvI,GAAYstI,ukBCapCtiC,GAAM7uH,OAAO2zH,IAEb,IAAAw/B,GAAe7gJ,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAM6/B,EAAiBU,KACf7P,EAAiBP,GAAU,cAA3BO,aACFsa,EAAiB7Z,GAAe,eAC9BU,EAAWR,KAAXQ,OACAqkJ,EAAa9pH,GAAc,CAAE8pH,SAAUC,KAAvCD,SAEF3uD,EAAer3F,MAAI,IACnB+wH,EAAc/wH,OAAI,GAClBiwE,EAAa7Q,KAEnBvjB,EAA8B7nC,SAAOlkC,GAC8DgsE,EAAArvD,GAA/DooD,GAD5BgH,EAAA5yE,MAAkB4yE,EAAX/G,WACkDhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA5FypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAE1Bh6C,EAAWqY,KACjBuvE,EAA+B11E,SAAOlkC,GAA9B8iG,EAAA8W,EAAA9W,WAAY5gF,EAAO03F,EAAP13F,OAEdk0J,EAAez+J,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC/B4Z,EAAe7xC,iBAAAF,EAAA,CAAA,EAEf44B,EAAO14B,MAAM84B,QAAUgvH,EAAY9nJ,WAIlCk9K,EAAkB,SAAC9jJ,EAAkB+X,GAA+B,IAAAgsI,EAAAhoH,EACxE2yF,EAAY9nJ,MAAQo5B,EACpBA,EAAyB,QAAzB+jJ,EAAUt2K,EAAMigJ,cAAS,IAAAq2B,GAAft2K,EAAAA,KAAAA,EAAesqC,WAAWtqC,EAAAA,EAAMisD,eAANjsD,OAAAA,EAAAA,KAAAA,EAAgBsqC,IAGhD0hH,EAAc,SAAC1hH,GAA+B,IAAA40E,EACpC50E,EAAN9vC,EACN24E,kBACFo0C,EAAapuH,MAAQ,KACrB64F,EAAc,MACdhyF,iBAAAA,EAAAA,EAAO6uF,sBAAP7uF,EAAAA,KAAAA,EAAiBsqC,IAGbisI,EAAoB,SAACp9K,GACzBouH,EAAapuH,MAAQA,GAGjBq9K,EAAkB,SAACr9K,EAAemxC,GAAoC,IAAAi1E,EACtEzc,EAAW3pG,QACOgnJ,GAAmB54B,EAAapuH,MAAO+oB,EAAO/oB,QAEhE64F,EAAcouD,GAAiB74B,EAAapuH,MAAO+oB,EAAO/oB,SAG/C,QAAf6G,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAe,CAAE7G,MAAAA,EAAOm4F,WAAYhnD,EAAQgnD,WAAY92F,EAAG8vC,EAAQ9vC,KAG/Di8K,EAAqB,SAACj8K,GAAkB,IAAA8vJ,EAC5CtqJ,SAAOsqJ,QAAAA,EAAPtqJ,EAAOs7I,qBAAAgP,GAAPtqJ,EAAAA,KAAAA,EAAmB,CAAExF,EAAAA,IACD2lJ,GAAmB54B,EAAapuH,MAAO+oB,EAAO/oB,QACjD64F,EAAcu1B,EAAapuH,OAC5C8nJ,EAAY9nJ,OAAQ,GAGhBu9K,EAAoB,SAACx4J,EAAW1jB,GAAkB,IAAAsvJ,EACtDviC,EAAapuH,MAAQ+kB,EACf4rI,QAAN9pJ,EAAAA,EAAMu7I,cAANv7I,IAAM8pJ,GAAN9pJ,EAAAA,KAAAA,EAAeke,EAAG,CAAE1jB,EAAAA,KAGhBq3H,EAAqBl6G,EAAAA,UAAS,WAAM,IAAAg7E,EACjC,MAAA,CACLx5F,MAAO8nJ,EAAY9nJ,MAAQouH,EAAapuH,MAA4B,QAA5Bw5F,EAAQZ,EAAW54F,aAASw5F,IAAAA,EAAAA,OAAA,EAExE,IASA,OAPAjxD,EAAAA,OACE,WAAA,OAAMu/G,EAAY9nJ,KAAA,IAClB,WAAM,IAAAwyJ,EACJpkC,EAAapuH,MAAQ8nJ,EAAY9nJ,eAAQwyJ,EAAA55D,EAAW54F,qBAAc,EACpE,IAGK,WAAA,IAAA2zJ,EAAAK,EAAA,OAAAv2H,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,OACzB,CAAAy9B,EAAAA,YAAA+/I,GAAApyI,aAAA,CAAAyqD,QACWhvF,EAAMgvF,QAAAH,QACNm9D,EAAA99D,WACGluF,EAAMkuF,WAAAl8D,SACRA,EAAS74B,MACnBg1F,UAAWnuF,EAAMmuF,UAAA2U,WACLA,EAAW3pG,MAAA09B,MAChBu/I,EAAaj9K,YACb6G,EAAMy5C,MACblJ,WAAY,WAAA,OAAA3Z,cAAAs/I,EAAA,KAAA,KACZ,EAAA3uF,cAAe4Y,EAAWhnG,OAAS8nJ,EAAY9nJ,oBAChCo9K,EAAA3nF,OACP4nF,EAAA/yE,qBACc4yE,EACtBtuJ,YAAcgqE,EAAW54F,WAA8D,EAAtD6G,EAAM+nB,aAAe2I,EAAav3B,MAAM4uB,YAAc5uB,MAChF8nJ,EAAY9nJ,MAAQouH,EAAapuH,MAAmB2zJ,QAAnBA,EAAQ/6D,EAAW54F,iBAAA2zJ,EAAAA,OAAS,aACxD7L,EAAY9nJ,MAAQouH,EAAapuH,MAAmBg0J,UAAXp7D,EAAW54F,iBAAAg0J,EAAAA,OAAS,EACzEv0D,WAAApiE,GAAAA,GAAkBx2B,CAAAA,EAAAA,EAAM44F,YAAA,GAAA,CAA2Br0F,KAAMvE,EAAMuE,OAAA4jE,WAAA3xC,GAAA,CACjDgyC,kBAAmB,CAAExxC,MAAO,OAAQgrB,QAAS,IAAShiD,EAAMmoE,YAAsB9Z,OACxFruD,EAAMquD,YACRruD,EAAM2uF,KACZ4U,aAAc,WAAA,OAAM1jE,EAAe,eAAgB,CAAER,OAAQwyF,EAAmB14H,OAC3E6G,GAAAA,EAAMwqH,iBACX,CAAA3sC,MAAO,WAAA,OAAAjnD,EAAAA,YAAAggJ,GAAA,CAAAjwJ,MAEI3mB,EAAM2mB,MACbzE,OAAQA,EAAO/oB,MACfA,MAAOouH,EAAapuH,MAAAwrJ,iBACH,EACjB1D,YAAaA,EAAY9nJ,MAAA2mJ,YACZ9/I,EAAM8/I,YACnBx3F,SAAUouH,mBACQ12K,EAAM+/I,iBACxB6E,mBAAoB6xB,UACXz2K,EAAMm7I,SACjB,KAAA,IAAA,QAKV,ICvIa07B,GAAA,CAEb/zE,WAAYhhE,QAEZkxG,SAAU,CACRl3I,KAAMgmC,QACN3e,SAAS,GAGX+qE,WAAYpsD,QAEZqsD,UAAWrsD,QAEXg+G,YAAa,CACXhkJ,KAAMhC,UAGRk4B,SAAU,CACRl2B,KAAM,CAACgmC,QAASnrC,OAChBwsB,aAAS,GAGXjB,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,YAGX48H,iBAAkB,CAChBjkJ,KAAMgmC,QACN3e,SAAS,GAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM,CAAC/C,OAAQpC,OACfwsB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGR6jJ,QAAS,CACPr/I,KAAMxE,QAGRi0J,gBAAiB,CACfzvJ,KAAMxE,QAGRi3F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGF9X,MAAO,CACL7qB,KAAMnF,MACNwsB,QAAS,WAAA,MAAuC,CAAC,EAAG,EAAG,EAAC,GAG1DwrE,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,OAGRi4F,OAAQ90F,SAERwuD,SAAUxuD,SAEVk1F,QAASl1F,SAETkmJ,QAASlmJ,SAETyhJ,OAAQzhJ,6kBC5FV63I,GAAM7uH,OAAO2zH,IAEb,IAAAqgC,GAAe1hJ,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,eAAYA,QAAOurJ,gBAAiBj0J,OAAQ6wE,WAAY7wE,SACxD+9B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,qBAC9BT,EAAiBP,GAAU,cAA3BO,aACAmB,EAAWR,KAAXQ,OACAqkJ,EAAa9pH,GAAc,CAAE8pH,SAAUC,KAAvCD,SAEFlkJ,EAAWqY,KACX0sI,EAAkB7mJ,EAAAA,SAAI,GACtBq3F,EAAer3F,MAAmBuvH,IAClCwB,EAAc/wH,OAAI,GAClB42B,EAAawoC,KAEb8mF,EAAez+J,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC/B4Z,EAAe7xC,iBAAAF,EAAA,CAAA,EAEf44B,EAAO14B,MAAM84B,QAAUgvH,EAAY9nJ,WAGxC4yE,EAAkD7nC,SAAOlkC,GAAjD7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAY89B,IAAAA,WAAY5gF,EAAO6pD,EAAP7pD,OACmE8pD,EAAArvD,GAAtEooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAe,GAAnGypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAE1BqqG,EAAkB,SAAC9jJ,EAAkB+X,GACrCwc,EAAW3tD,QAES,0BAApBmxC,EAAQia,QAIZ08F,EAAY9nJ,MAAQo5B,EAHlB0uH,EAAY9nJ,OAAQ,IAMlB6yJ,EAAc,SAAC1hH,GACLA,EAAN9vC,EACN24E,kBACFo0C,EAAapuH,MAAQsmJ,GACrBztD,EAAc,OAGVnhD,EAAc,SAAA0Y,GAAoD,IAAjDpgB,EAAAogB,EAAApgB,SACL4tI,EAAA59K,MAAqB,UAAbgwC,EAAuB,EAAI,GAG/C6tI,EAAmB,SAAC72K,EAA6B3F,GACjD,GAAAzC,EAAQoI,GACVonH,EAAapuH,MAAQgH,OACvB,GAAqC,IAA1B42K,EAAgB59K,MAAa,CAAA,IAAA89K,EACtC1vD,EAAapuH,MAAQ,CAACgH,UAAA82K,EAAU1vD,EAAapuH,MAAM,kBAAMgH,EAC3D,KAAO,CAAA,IAAA+2K,EACL3vD,EAAapuH,MAAQ,CAAoB,QAApB+9K,EAAC3vD,EAAapuH,MAAM,UAAA+9K,IAAAA,EAAAA,EAAM/2K,EAAUA,EAC3D,CACAg3K,EAAah3K,EAAU3F,IAGnBg8K,EAAkB,SAACr9K,EAAuB0wD,GAA6B,IAAA01D,EAA3B/kH,IAAAA,EAChD,GAAIsoG,EAAW3pG,OACOgnJ,GAAmB54B,EAAapuH,MAAM49K,EAAgB59K,OAAQ+oB,EAAO/oB,OACxE,CAAA,IAAAi+K,EAAAC,EACTz0B,EAAexC,GAAiB74B,EAAapuH,MAAM49K,EAAgB59K,OAAQ+oB,EAAO/oB,OAC9D,IAA1B49K,EAAgB59K,MACXouH,EAAapuH,MAAQ,CAACypJ,EAAiCw0B,QAAjCA,EAAc7vD,EAAapuH,MAAM,UAAAi+K,IAAAA,EAAAA,EAAMx0B,GAC7Dr7B,EAAapuH,MAAQ,CAAoB,QAApBk+K,EAAC9vD,EAAapuH,MAAM,UAAA,IAAAk+K,EAAAA,EAAMz0B,EAAcA,EACpE,CAEa,QAAf5iJ,EAAAA,EAAM4uF,cAAS,IAAA2wB,GAAfv/G,EAAAA,KAAAA,EAAe,CAAE7G,MAAAA,EAAOqB,EAAAA,KAGpB+7K,EAAoB,SACxB/yC,EAAA3rE,GAEG,IAAAy/G,EADD98K,EAAAq9D,EAAAr9D,EAAG2uC,IAAAA,SAELo+E,EAAapuH,MAAQqqI,EACf,QAANxjI,EAAAA,EAAMggJ,eAAA,IAAAs3B,GAANt3K,EAAAA,KAAAA,EAAgB,CAAE7G,MAAO44F,EAAW54F,MAAOqB,EAAAA,EAAG2uC,SAAuB,UAAbA,EAAuB,QAAU,SAGrFstI,EAAqB,YACJlvD,EAAapuH,MAAMk3D,MAAK,SAACnyC,GAAM,OAACiiI,GAAmBjiI,EAAGgE,EAAO/oB,WACjE64F,EAAcu1B,EAAapuH,OACxC6G,EAAMgzI,UAAuBukC,IACjCt2B,EAAY9nJ,OAAQ,GAGhBgzJ,EAAc,SAAChzJ,EAAAA,GAA4F,IAAAkmH,EAAnE7kH,EAAA2pC,EAAA3pC,EAAG2uC,IAAAA,SAC/B,QAAhBnpC,EAAAA,EAAMgvF,eAAU,IAAAqwB,GAAhBr/G,EAAAA,KAAAA,EAAgB,CAAE7G,MAAAA,EAAOqB,EAAAA,EAAG2uC,SAAuB,UAAbA,EAAuB,QAAU,SAGnEouI,EAAe,WACnB,IAAAC,EAAA76J,GAA6B4qG,EAAapuH,MAAA,GAAnC6iC,EAAAw7I,EAAA,GAAWC,EAAOD,EAAA,GACnBE,EAAa/lC,GAAM31G,EAAWh8B,EAAMkiB,QACpCy1J,EAAWhmC,GAAM8lC,EAASz3K,EAAMkiB,QAElCw1J,EAAWp2J,QAAQq2J,EAAU,UAC/B3lF,EAAc,CAACu1B,EAAapuH,MAAM,GAAIouH,EAAapuH,MAAM,KAEzD64F,EAAc,CAACu1B,EAAapuH,MAAM,GAAIouH,EAAapuH,MAAM,MAIvDg+K,EAAe,SAACS,EAA8Bp9K,GAAkB,IAAAsvJ,EAEhEx/G,EADAutI,EAAmB,GAEnB,GAAA9/K,EAAQ6/K,GACSC,EAAAD,EACnBttI,EAAU,CAAE9vC,EAAAA,QACd,GAAqC,IAA1Bu8K,EAAgB59K,MAAa,CAAA,IAAA2+K,EACtCD,EAAmB,CAACD,UAAAE,EAAWvwD,EAAapuH,MAAM,kBAAMy+K,GAC9CttI,EAAA,CAAE9vC,EAAAA,EAAG2uC,SAAU,QAC3B,KAAO,CAAA,IAAA4uI,EACLF,EAAmB,CAAoB,QAApBE,EAACxwD,EAAapuH,MAAM,UAAA4+K,IAAAA,EAAAA,EAAMH,EAAWA,GAC9CttI,EAAA,CAAE9vC,EAAAA,EAAG2uC,SAAU,MAC3B,SACAnpC,EAAAA,EAAMu7I,cAAS,IAAAuO,GAAf9pJ,EAAAA,KAAAA,EAAe63K,EAAkBvtI,IAWnC,OARA5I,EAAAA,OACE,WAAA,OAAMu/G,EAAY9nJ,KAAA,IAClB,WAAM,IAAAw5F,EACJ40B,EAAapuH,MAAQ8nJ,EAAY9nJ,eAAQw5F,EAAAZ,EAAW54F,qBAA6BsmJ,GAC5EwB,EAAY9nJ,QAAO49K,EAAgB59K,WAAQ,EAClD,IAGK,WAAA,IAAAwyJ,EAAAmB,EAAA,OAAAl2H,EAAAA,YAAA,MAAA,CAAAC,MACOmU,EAAe7xC,OACzBy9B,CAAAA,EAAAO,YAAAk3H,GAAA,CAAAr8H,SACYA,EAAS74B,MAAAouF,aACL05D,EAAY9nJ,qBAExBqvE,kBAAmB,CACjBxxC,MAAO,OACPgrB,QAAS,GAEXinB,gBAAiBotG,GACdr2K,EAAMmoE,YAAAq7B,cAEI+yE,EAAAjlF,WACH2vD,EAAY9nJ,MAAQouH,EAAapuH,MAA4B,QAApBwyJ,EAAA55D,EAAW54F,aAASwyJ,IAAAA,EAAAA,EAAAlM,GAAA8L,gBAAA/0H,GAAA,CAEvEjyB,KAAMvE,EAAMuE,KACZ4pF,UAAWnuF,EAAMmuF,UACjBt3D,MAAOu/I,EAAaj9K,MACpBA,MAAO8nJ,EAAY9nJ,MAAQouH,EAAapuH,MAA4B2zJ,QAA5BA,EAAQ/6D,EAAW54F,iBAAS2zJ,EAAAA,OAAA,EACpE/kI,YAAa/nB,EAAM+nB,aAAe,CAAC2I,EAAav3B,MAAM4uB,YAAa2I,EAAav3B,MAAM4uB,aACtFmmE,WAAYluF,EAAMkuF,WAClB39C,WAAY,WAAZ,OAAA3Z,cAAAs/I,EAAA,KAAA,KAA4B,EAC5BrnF,QAASm9D,EACTzkH,QAASsJ,EACTm+C,QAASm9D,EACTv9D,OAAQ4nF,EACRjoF,SAAUznC,EAAW3tD,QAAU2pG,EAAW3pG,MAC1CurJ,YAAaqyB,EAAgB59K,OAC1B6G,EAAMurJ,iBAAA9xG,MAEJz5C,EAAMy5C,MACb4U,OAAQruD,EAAMquD,OAAAsgC,KACR3uF,EAAM2uF,KACZ9Q,MAAO,WAAA,OAAAjnD,EAAAA,YAAAggJ,GAAA,CAAAjwJ,MAEI3mB,EAAM2mB,MACbzE,OAAQA,EAAO/oB,MAAA8nJ,YACFA,EAAY9nJ,MACzB2mJ,YAAa9/I,EAAM8/I,YAAAC,iBACD//I,EAAM+/I,kCACP,EAAA5mJ,MACVouH,EAAapuH,MAAM49K,EAAgB59K,OAAS,GAAAmvD,SACzC0uH,EAAAz7B,OACF47B,EAAAvyB,mBACY6xB,EAAAttI,SACgB,IAA1B4tI,EAAgB59K,MAAc,QAAU,MAAAurJ,YACrCqyB,EAAgB59K,MAC7BgiJ,QAASn7I,EAAMm7I,SAAA,KAAA,GAGrB,QAGN,IC7LW68B,GAAarxI,GAAYsvI,IACzBgC,GAAkBtxI,GAAYmwI,IAC9BF,GAAkBjwI,GAAY69G,ICmB3C,IAAMl3B,GAAmB,SAACpyF,EAAoCmE,GAAmC,IAAA64I,EAAAC,EAEzFvsD,EAAc17F,MAAW,IAEzBm8F,EAAan8F,EAAKA,cAAAgoJ,EAAA74I,EAAOlmC,MAAMuL,YAAA,IAAAwzK,OAAA,EAAbA,EAAmB1hL,SAAU,KAA2B2hL,QAArBA,EAAA94I,EAAOlmC,MAAM8nE,kBAAQk3G,SAArBA,EAAqB1qD,YAAa,KAEvFj0D,EAAetpC,MAAI,GAGrBkoJ,EAAyB,GACvBC,EAAkBnoJ,MAAI,GACtBooJ,EAAiBpoJ,MAAI,GACrBqoJ,EAAmBroJ,EAAAA,IAAsB,CAAC,EAAG,KAG7CsoJ,EAAU7gK,EAAAA,UAAS,WAAM,IAAA8gK,EAAAC,EACrBz3G,EAAW5hC,EAAOlmC,MAAlB8nE,OACR,OAAKA,EACE,CACL4nD,WAAY5nD,EAAO4nD,YAAc,GACjC2E,iBAA6C,QAA7CirD,EAAkBx3G,EAAOusD,wBAAoB,IAAAirD,GAAAA,EAC7ChrD,UAAWxsD,EAAOwsD,WAAa,GAC/BpC,UAAWpqD,EAAOoqD,WAAa,IAC/BvvH,KAAMmlE,EAAOnlE,KACb68K,UAA+B,QAApBD,EAAAz3G,EAAO03G,iBAAa,IAAAD,EAAAA,EAAA,CAAC,EAAG,IAPjB,EAStB,IAGME,EAAkBjhK,EAAAA,UAAS,WACzB,IAAEjT,EAAS26B,EAAOlmC,MAAhBuL,KACR,MAA8B,YAAvB8zK,EAAQr/K,MAAM2C,MAAsB08K,EAAQr/K,MAAMkyH,UAAY3mH,EAAKlO,MAC5E,IAGA,SAASqiL,IAcE,IAdsB,IAAAC,EAAA9rD,EACzBjxF,EAA0C,QAA1C+8I,EAAsB,QAAtB9rD,EAAY9xF,EAAU/hC,aAAV6zH,IAAUA,OAAVA,EAAAA,EAAiBjxF,iBAAa+8I,IAAAA,EAAAA,EAAA,EAC1CC,EAAaP,EAAQr/K,MAAMw/K,UAAU,GAGrCK,EAAiC,GAEnCC,EAAe,EAEfC,GAAe,EACfC,GAAa,EAEbC,EAAc,EAET3iL,EAAI,EAAGF,EAAM8oC,EAAOlmC,MAAMuL,KAAKlO,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAA4iL,EACtD5rD,EAA+B4rD,QAAnBA,EAAAjB,EAAa3hL,cAAM4iL,EAAAA,EAAAb,EAAQr/K,MAAMs0H,UAuB/C,IAtBJ2rD,GAA4B3rD,GAEV1xF,IAAkC,IAArBm9I,IACdA,EAAAziL,GACI+hL,EAAQr/K,MAAM0vH,WAAa,IAC7BowD,EAAAG,EAAc3rD,EAAY1xG,GAAIi9J,KAGxB,IAArBE,IACFF,EAAqB51K,KAAKqqH,GACtBurD,EAAqBxiL,OAASgiL,EAAQr/K,MAAM0vH,YAC9CmwD,EAAqB7yC,UAMtB,IADDgzC,IACCC,EAAcf,EAAgBl/K,MAAQ4iC,GAAatlC,IAAM4oC,EAAOlmC,MAAMuL,KAAKlO,OAAS,KAExE2iL,EAAA1iL,IAGY,IAAvByiL,IAA0C,IAAnBC,EAEzB,KAEJ,CAGM,IC7FGp+K,ED6FHk2K,GC7FGl2K,ED6Fc,CAACm+K,EAAeV,EAAQr/K,MAAM0vH,WAAY,KC5FlD9tH,EAAMvE,OACnBmjB,GAAa5e,EAAO6B,EAAUub,SAC9Btf,ED2FIksF,EE9FV,SAAahqF,GACX,OAAQA,GAASA,EAAMvE,OACnBmjB,GAAa5e,EAAO6B,EAAU8c,SAC9B7gB,CACN,CF0FqBkc,CAAI,CAACokK,EAAaX,EAAQr/K,MAAM0vH,WAAYxpF,EAAOlmC,MAAMuL,KAAKlO,SAKxE,MAAA,CACLy6K,WAAAA,EACAlsF,SAAAA,EACAsnC,WAAY4sD,EALOl9J,GAAIq8J,EAAa1gL,MAAM,EAAG2I,KAAK0U,IAAIk8J,EAAY8H,KAOtE,CAEM,IAAAxsD,EAAoBtwG,IAAS,WAEjC,IAAAq9J,EAA8DT,IAAtD5H,EAAYqI,EAAZrI,WAAYlsF,EAAAu0F,EAAAv0F,SAAsBw0F,EAAAD,EAAZjtD,WAIxBmtD,EAAA78J,GADY67J,EAAQr/K,MAAMw/K,UACD,GAAxBI,EAAYS,EAAA,GAAAC,EAAQD,EAAA,GACvBE,EAAiBX,EAAa15I,EAAOlmC,MAAMuL,KAAKhN,MAAM,EAAGqhL,GAAc,GACvEA,GAAc9H,EAAa8H,IACZW,EAAAA,EAAehiL,MAAM,EAAGu5K,IAE3C,IAAI0I,EAAeF,EAAWp6I,EAAOlmC,MAAMuL,KAAKhN,MAAM2nC,EAAOlmC,MAAMuL,KAAKlO,OAASijL,GAAY,GACvFG,EAAmB70F,EAAW1lD,EAAOlmC,MAAMuL,KAAKlO,OAAS,GAAKijL,QAAAA,EAAY,GAC5EA,GAAYG,EAAmB,IAClBD,EAAAA,EAAajiL,MAAMkiL,IAGhCrB,EAAiBp/K,MAAMkP,SAAW,CAAC4oK,EAAYlsF,GAAU18E,QAAU4oK,GAAc,IACnF5kD,EAAWlzH,MAAQogL,EACP3tD,EAAAzyH,MAAQugL,EAAetoJ,OAAOiO,EAAOlmC,MAAMuL,KAAKhN,MAAMu5K,EAAYlsF,GAAW40F,GACxEpB,EAAAp/K,MAAQ,CAAC83K,EAAYlsF,MAEvC,KAyCGvW,EAAkB,YAAyD,IAAtDvzE,IAAAA,UAAOqiC,IAAAA,OAAM,IAAAu8I,EAAA,EAAAA,EAAGt9D,IAAAA,SACnCxgF,EAAYhgB,GAAIq8J,EAAa1gL,MAAM,EAAGuD,EAAQ,IAAMqiC,EAE1DpC,EAAU/hC,MAAMsiC,SAAS,CACvB6B,IAAKvB,EACLwgF,SAAUA,GAAY,UA+DnB,OA3CPrzC,GACEvxD,YAAS,WAAA,OAAOihK,EAAgBz/K,MAAQ+hC,EAAU/hC,WAAQ,MA9C/B,YAA8C,IAA1CgxE,EAA0CxtD,GAAA4lB,EAAA,GAA1C,GAAA4nC,YAE/B,IAAI9qC,EAAOlmC,MAAM2gL,qBAAjB,CAEIz5K,KAAKge,IAAI8rD,EAAYnzC,MAAQshJ,EAAen/K,OADtB,IACsD+hC,EAAU/hC,QACxF+hC,EAAU/hC,MAAM4iC,UAAY,EAC5BswF,EAAWlzH,MAAQ,GAErBm/K,EAAen/K,MAAQgxE,EAAYnzC,MAEnCqhJ,EAAgBl/K,MAAQgxE,EAAYlzC,MARG,KAiDzCyK,EAAAA,OACE,WAAA,MAAM,CAAA5pC,EAAKunC,EAAOlmC,MAAMuL,MAAO8zK,EAAQr/K,MAAOy/K,EAAgBz/K,MAAO+hC,EAAU/hC,MAAK,IACpF,WACE,GAAKy/K,EAAgBz/K,OAAU+hC,EAAU/hC,MAAzC,CAOA,GAhDmB,SAACuL,GACjBA,EAAA4L,SAAQ,SAAC2uB,EAAMhkC,GAElBgkC,EAA+B,qBAAAhkC,CACjC,IAuCE8+K,CADiB16I,EAAOlmC,MAAhBuL,MAIR2zK,EAAgBl/K,MAAQ+hC,EAAU/hC,MAAMikC,wBAAwBnG,OAE5DmhJ,EAAa5hL,SAAW6oC,EAAOlmC,MAAMuL,KAAKlO,OAAQ,CAG9C,IAAAwjL,EAA2BrjL,MAAMK,KAAKohL,GAE7B4B,EAAAxjL,OAAS6oC,EAAOlmC,MAAMuL,KAAKlO,OAC1CwjL,EAAe3tI,KAAKmsI,EAAQr/K,MAAMs0H,WAAa,IAChC2qD,EAAA4B,CACjB,CAEaxgH,EAAArgE,MAAQ4iB,GAAIq8J,GAGRG,EAAAp/K,MAAQ,CAAC,EAAG,GACXozH,GArB8B,CAsBlD,GACA,CAAEvhE,WAAW,IAIftpB,EAAAA,OACE,WAAA,OAAM22I,EAAgBl/K,KAAA,IACtB,WACoBozH,GACpB,IAGK,CACLX,YAAAA,EACAS,WAAAA,EACA7yD,aAAAA,EACAo/G,gBAAAA,EACAt5H,aAlGmB,WACds5H,EAAgBz/K,OACHozH,KAiGlBc,iBAhHuB,SAAC4sD,GAAiB,IAAAC,EACrC,GAACtB,EAAgBz/K,OAAU8gL,IAAWzB,EAAQr/K,MAAMq0H,kBAAqBtyF,EAAU/hC,MAAnF,CACE,IAAAghL,GAAuBD,QAAZA,EAAAD,EAAQ/pJ,IAAI/2B,iBAAA+gL,SAAZA,EAAmB98I,wBAAwBnG,SAAUuhJ,EAAQr/K,MAAMs0H,UAC9EhF,EAAWwxD,EAAQv1K,KAAK01K,qBAE1B,GAAAhC,EAAa3vD,KAAc0xD,EAAU,CACjC,IAAA13J,EAAO03J,EAAW/B,EAAa3vD,GACrC2vD,EAAa3vD,GAAY0xD,EAEZ3gH,EAAArgE,MAAQqgE,EAAargE,MAAQspB,CAC5C,CAT8F,GAgH9F43J,gBA/DsB,SAAC37J,GAGnB,GAFJ8vD,EAAgB9vD,IAEX85J,EAAQr/K,MAAMq0H,iBAAkB,IAAA8sD,EAC7BphJ,EAAqB,QAArBohJ,EAAW57J,EAAE9I,YAAQ,IAAA0kK,EAAAA,EAAA,GACrBl3I,EAAQntB,YAAW,WACvBu4D,EAAgB9vD,GAChBnI,aAAa6sB,KACZlK,IAyDT,EGnNaqhJ,GAAqB,CAChC3iL,KAAM,YACN44B,OAAQ,CACNgqJ,OATuB,CACzBr3J,aAAS,KAyBJ,SAASs3J,GAAiBh9J,GAI/B,OAAOi9J,EAAIj9J,CACb,CAMgB,SAAAsnD,GACd/kE,EACA26K,GAKA,IAJA98I,EAAW9+B,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,QACX67K,yDAAkB,eAClBC,EAAA97K,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAgB,WAMRimE,EAAe21G,EAAf31G,WAOD,MALU,UAAbnnC,EACGi9I,GAAYH,EAAU98I,GAAWmnC,EAAYhlE,EAAM46K,GAAkB56K,EAAM66K,GAAgBh9I,GAE3Fk9I,GAAkBJ,EAAU98I,GAAW79B,EAAM46K,GAAkB56K,EAAM66K,GAAgBh9I,EAG9F,CCjGY,IAAAm9I,YAAAA,GAAAA,OACVA,EAAAA,UAAA,GAAA,SACAA,EAAAA,SAAS,GAAT,SACAA,EAAAA,QAAQ,GAAR,QAHUA,CAAA,EAAAA,IAAA,CAAA,GAQZ,SAAwBC,GAAajpH,GAC7B,IAAEkpH,EAAgBlpH,EAAhBkpH,YACFC,EAAar2I,EAAAA,SAAS,CAC1Bs2I,YAAY,EACZC,YAAY,EACZC,aAAc,IAsBVC,EAAgB,SAACltH,EAAkBmtH,GAAyB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACxDlhJ,EAAoBq3B,EAApBr3B,KACAmhJ,EADoB9pH,EAAd+pH,UACND,KACR,GAAKA,EAEG,OAAAztH,GACD,IAAA,YACH8sH,EAAWE,YAAa,EACxBF,EAAWG,aAAe,EACH,QAAvBG,EAAAK,EAAKE,uBAAkB,IAAAP,GAAvBA,EAAAhkL,KAAAqkL,EAAuB,CAAEnhJ,KAAAA,EAAM6gJ,UAAAA,IAC/B,MACG,IAAA,UACHL,EAAWE,YAAa,EACxBF,EAAWC,YAAa,EACxBD,EAAWG,aAAe,EAC1BW,EAA2BzlK,SACN,QAArBklK,EAAAI,EAAKI,qBAAgB,IAAAR,GAArBA,EAAAjkL,KAAAqkL,EAAqB,CAAEnhJ,KAAAA,EAAM6gJ,UAAAA,IAC7B,MACG,IAAA,WACHL,EAAWC,YAAa,EACxBa,EAA2BT,GACL,QAAtBG,EAAAG,EAAKK,sBAAiB,IAAAR,GAAtBA,EAAAlkL,KAAAqkL,EAAsB,CAAEnhJ,KAAAA,EAAM6gJ,UAAAA,IAC9B,MACG,IAAA,YACHL,EAAWC,YAAa,EACxBD,EAAWG,aAAe,EAC1BW,EAA2BzlK,SACJ,QAAvBolK,EAAAE,EAAKM,uBAAkB,IAAAR,GAAvBA,EAAAnkL,KAAAqkL,EAAuB,CAAEnhJ,KAAAA,EAAM6gJ,UAAAA,IAC/B,MACG,IAAA,eACHK,EAAAC,EAAKO,yBAALR,EAAApkL,KAAAqkL,EAAkB,CAAEnhJ,KAAAA,EAAM2gJ,aAAcH,EAAWG,aAAcE,UAAAA,IACjEL,EAAWC,YAAa,EACxBa,EAA2BzlK,WAmD3BylK,EAA6BhgK,IAAS,SAACu/J,IAtGlB,SAACA,GAAyB,IAAAc,EAC7C9oH,EAAW0nH,EAAY/hL,MAC7B,GAAKq6D,EAAL,CAEM,IAAAr2B,EAAOq2B,SAAkC,UAAlCA,EAAUp2B,6BAAVk/I,IAAkCA,OAAlCA,EAAAA,EAAA7kL,KAAA+7D,GACP+oH,EAAUzmJ,OAAOg3F,QAAU3vF,EAAKG,IAC9Bk/I,EAAUhB,EAAVgB,MACFC,EAAYt/I,EAAKlG,OAAS,EAC1BxU,EAAO+5J,EAAQD,EAEjB95J,EAAOg6J,EACTtB,EAAWG,cAAe,EACjB74J,EAAO0a,EAAKlG,OAASwlJ,EAC9BtB,EAAWG,aAAe,EAE1BH,EAAWG,aAAe,CAbb,EAqGfoB,CAAmBlB,EACrB,IAEO,MAAA,CACLL,WAAAA,EACAa,gBAlDsB,SAAC7tG,GAEnB,GADanc,EAATr3B,KACEi4I,cAAN,CACJzkG,EAAIgF,kBACJooG,EAAc,YAAaptG,GAEvB,IAAA,IAAAwuG,EAEEA,QAAAA,EAAAxuG,EAAAyuG,oBAAAD,IAAAA,GAAAA,EAAcE,QAAQ,aAAc,GAC1C,OAASriL,GAET,CATyB,GAiDzB0hL,cArCoB,SAAC/tG,GACJnc,EAATr3B,KACEi4I,gBACVzkG,EAAIgF,kBACJooG,EAAc,UAAWptG,KAkCzBguG,eA/BqB,SAAChuG,GACLnc,EAATr3B,KACEi4I,gBACVzkG,EAAIgF,kBACJhF,EAAIH,iBACJutG,EAAc,WAAYptG,KA2B1BiuG,gBAxBsB,SAACjuG,GACNnc,EAATr3B,KACEi4I,gBACVzkG,EAAIgF,kBACJooG,EAAc,YAAaptG,KAqB3BkuG,WAlBiB,SAACluG,GACDnc,EAATr3B,KACEi4I,gBACVzkG,EAAIgF,kBACJhF,EAAIH,iBACJutG,EAAc,OAAQptG,KAe1B,gOC/HO,SAAS2uG,GACd98K,EACAsqC,EACAyyI,GAGM,IAAAC,EAAU5xK,GAAU,MAAAgmB,OAAM2rJ,IAChCA,EAAQnhL,QAAQ,MAAO,IAAI0P,cAAY,IAAAslB,IAAAA,EAAA7xB,UAAAvI,OAHpCkK,MACH/J,MAAAi6B,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IADGnwB,EACHmwB,EAAA9xB,GAAAA,UAAA8xB,GAG8B,mBAAnB7wB,EAAMg9K,IACTh9K,EAAAg9K,GAAAh+K,MAAAgB,EAAYU,EAMtB,CAEgB,SAAAu8K,GAAiBzjJ,EAAuB3/B,GAG/C,IAFP,IAAMuzB,EAAO,GACTuF,EAAkB6G,EACf7G,GAAMA,EAAGuL,aACd9Q,EAAKhqB,KAAKuvB,GACNA,IAAO94B,IAGX84B,EAAKA,EAAGuL,WAEH,OAAA9Q,CACT,CAgBgB,SAAA8vJ,GAAQtlL,EAAc4hC,EAAuB3/B,GAC3D,IAAMuzB,EAfQ,SAAex1B,EAAc4hC,EAAuB3/B,GAE3D,OADMojL,GAAiBzjJ,EAAS3/B,GAEpCmL,KAAI,SAAC2tB,GAMG,MALgB,CACrB/6B,KAAAA,EACAuB,OAAOw5B,aAAA,EAAAA,EAAIovB,aAAanqD,KAAS,GACjC+6B,GAAAA,EAGJ,IACCyN,QAAO,SAACkd,GAAA,OAASA,EAAKnkD,QAC3B,CAGegkL,CAAevlL,EAAM4hC,EAAS3/B,GAEpC,OADMuzB,EAAKvoB,OAAS,IAE7B,CAQgB,SAAAu4K,GAASrkI,EAAqB7jC,GAC5C,IAKgCmoK,EAL5BC,EAAQ,KACRr+I,EAAO,KACL2tG,mWAAOp2G,CAAA,CAAA,EACRthB,GAEe,mBAAT6jC,EACT9Z,EAAO8Z,EAAK6zF,EAAK/vG,cAAoB,QAApBwgJ,EAAezwC,EAAKjyG,YAAL0iJ,IAAKA,OAALA,EAAAA,EAAWl6C,YAClB,iBAATpqF,IACT9Z,EAAA8Z,GAOF,OALa,iBAAT9Z,GAEAA,KADDq+I,EAAAr+I,GAIHq+I,CACT,CAuCgB,SAAAp6C,GAAQoM,EAAsBrwG,GAC5C,IACIR,EAAM,KAOH,MANa,iBAATQ,GAAqC,iBAATA,EAC/BR,EAAAQ,EACGA,GATN,SAAyBA,GAC9B,MAAuB,iBAATA,GAAqC,iBAATA,CAC5C,CAOqBs+I,CAAgBt+I,EAAK9lC,SACtCslC,EAAMQ,EAAK9lC,OAENm2I,EAAMpM,QAAQzkG,EAEvB,CC3HA,SAAwB++I,GAAcxrH,GACpC,IAAMyrH,EAAYzrH,EACVs9E,EAAUmuC,EAAVnuC,MACFl/G,EAAgBe,GAAe,QAAQh4B,MAE7CukL,EAAA/gK,GAA4Bq1C,EAAM2rH,QAAA,GAA3B59E,EAAA29E,EAAA,GAAQ19E,EAAS09E,EAAA,GACxBE,EAAAjhK,GAAgCq1C,EAAM6rH,UAAA,GAA/BC,EAAAF,EAAA,GAAUG,EAAWH,EAAA,GAC5BI,EAAArhK,GAAkCq1C,EAAMisH,WAAA,GAAjCC,EAAAF,EAAA,GAAWG,EAAYH,EAAA,GAExB9yF,EAAc,SAACjsD,EAAsBmrG,GACnC,IAAAzvG,EAAOuoG,GAAQoM,EAAOrwG,GACtB02D,EAAa8nF,EAAU9nF,WACvByoF,EAAiC,CACrCzjJ,KAAMA,EAAKwoG,WACX3oI,EAAGm7F,EACHpxC,QAAS,WAEX,GAAIoxC,EAAY,CACdyoF,EAAO75H,QAAU,aACjB,IAAMvxB,EAAS2iE,EAAW3iE,OACpBiyB,EAAgB0wC,EAAW1wC,eD+BvB,SAAertD,EAAc4hC,EAAuB3/B,GAG3D,OAFMojL,GAAiBzjJ,EAAS3/B,GACvB08C,MAAK,SAAC5jB,UAAOA,EAAGuH,UAAUC,SAASviC,KAErD,EClCUymL,CAAejtJ,GAAAA,OAAGhB,YAAuB4C,EAAQiyB,KACnDm5H,EAAO75H,QAAU,aAErB,CACM,IAAA/xB,EAAWmI,EAAKuwD,YAAYk/C,EAAY,CAC5CG,UAAU,IAML,OAJP4zC,EAAa3rJ,EAAU4rJ,GACA,YAAnBA,EAAO75H,SACT+qF,EAAM5K,gBAAiBw5C,EAAU/kL,OAAS,IAErCq5B,GAWHs4G,EAAa,SAAC7rG,EAAsB8rG,GAClC,IAAApwG,EAAOuoG,GAAQoM,EAAOrwG,GACtB02D,EAAa8nF,EAAU9nF,WACvByoF,EAAiC,CACrCzjJ,KAAMA,EAAKwoG,WACX3oI,EAAGm7F,EACHpxC,QAAS,WAEPoxC,IACFyoF,EAAO75H,QAAU,cAEb,IAAAghF,EAAU5qG,EAAKmwG,WAAWC,EAAW,CACzCC,SAA6B,eAAnBozC,EAAO75H,QACjBgmF,UAAU,IAML,OAJPwzC,EAAYx4C,EAAS64C,GACE,YAAnBA,EAAO75H,SACT+qF,EAAMgvC,eAAgBR,EAAS3kL,OAAS,IAEnCosI,GAQHvC,EAAa,SAAC/jG,EAAsBgkG,EAAoB77E,GACtD,IAAAzsB,EAAOuoG,GAAQoM,EAAOrwG,GACtB02D,EAAavuC,aAAAA,EAAAA,EAAK5sD,EAClB4jL,EAAiC,CACrCzjJ,KAAMA,EAAKwoG,WACX3oI,EAAGm7F,EACHpxC,QAAS,WAEPoxC,IACFyoF,EAAO75H,QAAU,cAEb,IAAAlyB,EAAUsI,EAAKqoG,WAAWC,EAAW,CACzC+H,SAA6B,eAAnBozC,EAAO75H,QACjBgmF,UAAU,IAOL,OALPvqC,EAAU3tE,EAAS+rJ,GAEI,YAAnBA,EAAO75H,SACT+qF,EAAMH,eAAgBpvC,EAAO5mG,OAAS,IAEjCk5B,GAYF,MAAA,CACL64D,YAAAA,EACAqzF,eArEqB,SAACt/I,GAChB,IAAAtE,EAAOuoG,GAAQoM,EAAOrwG,GAE5B,GAAKtE,EAAKuE,SAEV,OAAOgsD,EAAYvwD,GAAOA,EAAKyvG,eAiE/BU,WAAAA,EACA0zC,cAzCoB,SAACv/I,GACf,IAAAtE,EAAOuoG,GAAQoM,EAAOrwG,GAC5B,OAAO6rG,EAAWnwG,GAAOA,EAAKowG,cAwC9B/H,WAAAA,EACAy7C,cAfoB,SAACx/I,EAAsBmoB,GACrC,IAAAzsB,EAAOuoG,GAAQoM,EAAOrwG,GACxB,GAAAtE,EAAKyuF,kBAAmB,CACpB,IAAAiiB,EAAc1wG,EAAKywG,0BAClB,OAAApI,EAAWroG,EAAM0wG,EAAajkF,EACvC,CACA,OAAO47E,EAAWroG,GAAOA,EAAKsoG,YAAa77E,IAW/C,CCtHA,SAAwBs3H,GAAc1sH,GAC9B,IAAE1nB,EAAY0nB,EAAZ1nB,QACF5lB,EAAcyM,KAAiBh4B,MAYjCwlL,GAAU,EAkCP,MAAA,CACLt4D,aA7CkD,SAACpnG,EAAGmoC,GAChD,IAAEzsB,EAASq3B,EAATr3B,KAEFikJ,EAA6B,CACjCnlJ,MAFY,IAAIolJ,MAAM,UAGtBlkJ,KAAAA,GAEM2P,EAAAqG,KAAK,SAAUiuI,EAAYx3H,IAuCnCvW,YAlCkB,SAACs9B,GAAoB,IAAA2wG,EAAAC,EAC/BpkJ,EAAoBq3B,EAApBr3B,KACRqkJ,EAD4BhtH,EAAd+pH,UACNtsC,UACAwvC,QADA,IAAAD,EAAY,CAAA,EAACA,GACbC,kBACFC,EAAY/wG,EAAIn7C,OAChBmsJ,EACJxkJ,EAAKuE,UACL+/I,IACCC,EAAU9kJ,YAAchJ,GAAAA,OAAG1M,EAAiC,qBAAoC,UAApCw6J,EAAU3rF,QAAQjoF,eAIjF,IAAIqzK,IAAWQ,EAAf,CACUR,GAAA,EAEV1oK,YAAW,WACC0oK,GAAA,CACZ,IAGIM,GAAqBtkJ,EAAKuE,WAA6E,aAAjE4/I,EAAAI,EAAU9kJ,wBAAqB,UAA/B0kJ,EAAqB5rJ,eAAU,IAAA6rJ,OAAA,EAA/BA,EAAAtnL,KAAAqnL,EAAA,GAAA1tJ,OAAkC1M,qBAC1EypD,EAAIH,iBAEN,IAAM4wG,EAA6B,CACjCjpF,WAAYxnB,EACZ10C,MAAO00C,EACPxzC,KAAAA,EACAt0B,KAAMs0B,EAAK2nG,WAELh4F,EAAAqG,KAAK,QAASiuI,EAjBU,GAwBpC,CCnDA,SAAwBQ,GAAcptH,GAC9B,IAAAttC,EAAcyM,KAAiBh4B,MAC/Bi3B,EAAgBe,GAAe,QAAQh4B,MAUvCkmL,EAAkB,SAAClxG,GAEvBA,EAAIH,kBAmDC,MAAA,CACLpf,WAjDiB,SAACnxC,GACZ,IAZE6hK,EAYA3kJ,EAAoBq3B,EAApBr3B,KAAMohJ,EAAc/pH,EAAd+pH,UACNnG,EAAgBmG,EAAhBnG,YAEAzwJ,IADU42J,aAAAA,EAAAA,EAAWtsC,YAAa,CAAA,GAClCtqH,KACJo6J,GAAgB,EAEhBC,EAAW,KAsCR,OArCM,IAATr6J,EACEywJ,SAAAA,EAAazwJ,KACfq6J,EAAW5J,EAAYzwJ,KAAK,CAC1BwV,KAAMA,eAAAA,EAAMwoG,aAEJxoG,EAAK0sG,SAOJm4C,EAAA,IANKD,GAAA,EAzBZD,EAAwBlzH,GAAc,CAC5CkzH,oBAAqBG,KADfH,oBA0BJE,EAvBJ5oJ,cAAA0oJ,EAAA,KAAA,MAwBQ3kJ,EAAK7I,SAAW6I,EAAKnI,WACvBgtJ,EAAA5oJ,EAAAA,YAAA2U,GAAqB,KAAA,QAKhBpmB,IACTq6J,EAAWpC,GAASj4J,EAAM,CACxB0X,cAAepf,EACfkd,KAAAA,KAIE/D,EAAAO,YAAA,OAAA,CAAAN,MAEK,IAAAzF,OACFhB,EAAA,UAAA,GAAAgB,OACA1M,EACH66J,gBAAAA,KAAAnuJ,OAAmBhB,EAAiC,mBAAA,IACtDm0B,QAAA,SAAAm7H,OAAA,SAAAC,YAKaN,GAAA,CAEZG,KAST,okBClEA,SAAwBI,GAAe5tH,GAC/B,IAAAttC,EAAcyM,KAAiBh4B,MAC/Bi3B,EAAgBe,GAAe,QAAQh4B,MAErCktH,EAAiBq4D,GAAc1sH,GAA/Bq0D,aAoFD,MAAA,CACLzI,YAnFkB,SAACngG,GACb,IAAEkd,EAAoBq3B,EAApBr3B,KAAMohJ,EAAc/pH,EAAd+pH,UACNnG,EAAgCmG,EAAhCnG,YAAAoJ,EAAgCjD,EAAnBtsC,UAAAA,OAAY,IAAAuvC,EAAA,CAAA,IACzBvlI,EAA6Bg2F,EAA7Bh2F,MAAOwlI,EAAsBxvC,EAAtBwvC,kBACTp7C,GAAa4L,aAAAA,EAAAA,EAAW5L,aAAc,CAAA,EAExCrD,EAAY,KAGZA,GAFU,IAAV/mF,EACEm8H,SAAAA,EAAan8H,MACHm8H,EAAYn8H,MAAM,CAC5B9e,KAAMA,eAAAA,EAAMwoG,aAGFxoG,EAAK8e,OAAS,GAGhB2jI,GAAS3jI,EAAO,CAC1B5c,cAAepf,EACfkd,KAAAA,IAIJ,IA/BsBpd,EA+BhB6oG,EAAe,CAAA,GAAAh1F,OAChBhB,EAAAn3B,WAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEG1M,kBAA0BiW,EAAK4tG,eAAgB5tG,EAAK4qG,UAItDs6C,EAAyBloK,EAAAA,UAAS,WAAM,IAAA8kE,EACtCqjG,EAAqBnpL,MAAMoB,QAAQ4iC,EAAKuE,oBAAau9C,EAAA9hD,EAAKuE,6BAALu9C,EAAejmF,QAAS,EAE7EupL,EAA4BjnK,GAAU6hB,EAAKuE,WAAavE,EAAKuE,SAEnE,OAAO+/I,IADca,GAAsBC,EAE7C,IAEA,GAAIplJ,EAAKysG,YAAa,CACpB,IAAI44C,GAAmB,EACnBrlJ,EAAK8sG,aAAe9sG,EAAK6sG,WACRw4C,GAAA,GAEjBrlJ,EAAKwQ,eACY60I,GAAA,GAErB,IAAMC,EAAiBzpJ,GAAAA,MAClBqtG,GAAA,GAAA,CACH7xG,SAAUguJ,IACZE,EAcK1/C,EAZLA,EAAA5pG,EAAAO,YAAAgpJ,GAAA,CAAAtpJ,MAEWuvF,EAAA/zF,QACEsI,EAAKtI,QACdI,cAAekI,EAAKlI,cAAAT,SACVguJ,EAAApoL,KACJmB,OAAO4hC,EAAKxhC,OAAKmvD,SACb+9D,EAAAX,iBACQm6D,EAAuB1mL,MACzCumL,OAAQjwC,EAAUwvC,kBAAoB,SAAW,gBAAAj/K,MAC1CigL,GArES,mBAAA1iK,EAuEfijH,IAvEejuF,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAuEfijH,kCAGP,KAAO,CACL,IAAM4/C,qDAA0C5/C,IAEpCA,EAAA7lG,EAAK4tG,cAAY3xG,EAAAA,YAAA,OAAA,CAAAp+B,IAAA,IAAA03B,IAAA,QAAA2G,MACMuvF,EAAAz9F,MAAqBgS,EAAK8e,OACxD2mI,CAAAA,IAAAxpJ,EAAAA,YAAA,OAAA,CAAAp+B,IAAA,IAAAq+B,MAGkBuvF,EAAAz9F,MAAqBgS,EAAK8e,OAC5C,CAAA2mI,GAGP,CAEO,OAAA5/C,GAMX,gOCxFA,SAAwB6/C,GAAYruH,GAC5B,IAAE+pH,EAA2B/pH,EAA3B+pH,UAAWb,EAAgBlpH,EAAhBkpH,YACXoF,EAA+CvE,EAA/CuE,cAAeC,EAAgCxE,EAAhCwE,eAAgBC,EAAgBzE,EAAhByE,YACjC97J,EAAcyM,KAAiBh4B,MAC/Bi3B,EAAgBe,GAAe,QAAQh4B,MAErC03C,EAAgB6tI,GAAc1sH,GAA9BnhB,YACA+d,EAAewwH,GAAcptH,GAA7BpD,WACAgvD,EAAgBgiE,GAAe5tH,GAA/B4rD,YACR6iE,ECdF,SAAsCzuH,GAC9B,IAAA5hC,EAAgBe,GAAe,QAAQh4B,MA8DtC,MAAA,CACLunL,WA7DiB,SAACjjK,GACZ,IAAEkd,EAAoBq3B,EAApBr3B,KAAMohJ,EAAc/pH,EAAd+pH,UACNnG,EAAgBmG,EAAhBnG,YACFnmC,GAAYssC,aAAAA,EAAAA,EAAWtsC,YAAa,CAAA,EAClCkxC,EAASlxC,EAATkxC,KACFC,IAAgBnxC,EAAUtqH,KAE5B07J,EAAW,KACf,IAAa,IAATF,GACF,GAAI/K,SAAAA,EAAa+K,KACfE,EAAWjL,EAAY+K,KAAK,CAC1BhmJ,KAAMA,eAAAA,EAAMwoG,kBAEL,GAAAxoG,EAAK3gB,QAAU2gB,EAAKnU,KAAM,CACnC,IAAQ6gH,EAA+B1sG,EAA/B0sG,SAAUC,EAAqB3sG,EAArB2sG,UAAWl7B,EAAUzxE,EAAVyxE,MAEvB00E,EAAc,GAGRA,EAAA19K,KAAA,GAAAguB,OAAQhB,cAIhBi3G,GAAau5C,GACHE,EAAA19K,KAAA,GAAAguB,OAAQhB,mBAKlBk3G,GAAas5C,GACHE,EAAA19K,KAAA,GAAAguB,OAAQhB,oBAKtB,IAAM2wJ,EAAyB,GACzBx3C,EAAU5uG,EAAKmrG,aACrByD,EAAQ1kI,MACA0kI,EAAAj5H,SAAQ,SAAC81H,EAAiBnrI,GAC3BmrI,EAAMmB,UACIw5C,EAAA39K,KAAAguB,SAAAA,OAAcn2B,EAAQ,EAAkC,mCAEzE,IAEA,IAAM23B,EAAS,CACb,UAAWw5E,EAAQrzG,OAAOqzG,QAAS,EACnC,aAAc20E,EAAa14K,KAAK,MAGlCw4K,EAAAjqJ,EAAAO,YAAA,OAAA,CAAAN,MAAwBiqJ,EAAAjuJ,MAAoBD,GAAQ,KACtD,OAEAiuJ,EAAWzD,GAASuD,EAAM,CACxB9jJ,cAAepf,EACfkd,KAAAA,IAGG,OAAAkmJ,GAMX,CDpDyBG,CAAchvH,GAA7B0uH,EAAAD,EAAAC,WACRO,EEfF,SAA4CjvH,GACpC,IAAA5hC,EAAgBe,GAAe,QAAQh4B,MA+BtC,MAAA,CACL+nL,iBA9BuB,SAACzjK,GAClB,IAAEkd,EAAoBq3B,EAApBr3B,KAAMohJ,EAAc/pH,EAAd+pH,UACNnG,EAAgBmG,EAAhBnG,YAEAl6F,IADUqgG,aAAAA,EAAAA,EAAWtsC,YAAa,CAAA,GAClC/zD,WAEJylG,EAAS,KAoBN,OAlBLA,EADEvL,SAAAA,EAAal6F,WACNk6F,EAAYl6F,WAAW,CAC9B/gD,KAAMA,eAAAA,EAAMwoG,aAGLi6C,GAAS1hG,EAAY,CAC5B7+C,cAAepf,EACfkd,KAAAA,OAOAwmJ,EAAAvqJ,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAAgBhB,2CACb+wJ,KAIAA,GAMX,CFpB+BC,CAAoBpvH,GAAzCkvH,EAAAD,EAAAC,iBACFG,EACJpG,GAAajpH,GADPmpH,IAAAA,WAAYa,EAAiBqF,EAAjBrF,gBAAiBE,EAAAmF,EAAAnF,cAAeC,IAAAA,eAAgBC,EAAiBiF,EAAjBjF,gBAAiBC,EAAAgF,EAAAhF,WAG/EiF,EGdgB,SACtBl1G,EACAm1G,EACAliJ,GAEM,IAAAmiJ,EAAa7pK,EAAAA,UAAS,WAAA,OAAMtX,KAAKC,IAAI++B,EAAOouF,WAAa,GAAI,OAC7Dg0D,EAASvxJ,OAAI,GACbwxJ,EAAoB/pK,EAAAA,UAAS,WAAA,MAAuB,UAAjB0nB,eAAAA,EAAQvjC,QAAoB2lL,EAAOtoL,SAEtE4/B,GAA0BK,IAAYtD,OAAOiD,uBAA2B,SAAC4oJ,GAAA,OAAO1rK,WAAW0rK,EAAI,OAE/F3hK,EAAO,WACNyhK,EAAOtoL,OACV4/B,GAAsB,WACpB0oJ,EAAOtoL,OAAQ,CACjB,KAaG,OATPo8B,EAAAA,WAAU,WACa,UAAjB8J,eAAAA,EAAQvjC,OACZ05B,EAAAA,UAAS,WACP,IAAMqzF,EAAaxoH,KAAKC,IAAI,GAAI++B,EAAOwpF,YAAc,IAC/C5xF,EAASuqJ,EAAWroL,MAAQ0vH,EAClCr/C,GAAQ+3G,EAASpoL,MAAOizE,EAAajzE,MAAO6mB,EAAMiX,EACpD,GACF,IAEO,CACLyqJ,kBAAAA,EACAF,WAAAA,EAEJ,CHlB4CI,CACxCrB,EACArF,EACAp2I,EAASA,0WAAAtO,CAAKgqJ,GAAAA,aAAA,EAAAA,EAAarnL,SAHrBuoL,EAAmBJ,EAAnBI,kBAAmBF,EAAAF,EAAAE,WAM3B,SAASK,IACD,IAAElnJ,EAASq3B,EAATr3B,KAER,GADkB2lJ,eAAAA,EAAe1H,gBAAgBz/K,MAGzC,IAAAiqC,EAAQntB,YAAW,WACvBqqK,EAAcjzD,iBAAiB,CAC7Bn9F,IAAKgrJ,EACLx2K,KAAMi2B,IAERpkB,aAAa6sB,KACZ,IAEP,CAEA7N,EAAAA,WAAU,WACwBssJ,GAClC,IAGA/8G,EAAAA,WAAU,WACwB+8G,GAClC,IAGA,IA8CMh9C,EAAa,SAACpnH,GAClB,IAAMqkK,EAAyB,GAEzBtC,EAAW5wH,EAAWnxC,GAEtBojK,EAAWH,EAAWjjK,GACxBojK,GACFiB,EAAU1+K,KAAKy9K,GAEbrB,GACFsC,EAAU1+K,KAAKo8K,GAEX,IAAAh/C,EAAY5iB,EAAYngG,GAC1B+iH,GACFshD,EAAU1+K,KAAKo9H,GAEX,IAAA2gD,EAASD,EAAiBzjK,GAIzB,OAHH0jK,GACFW,EAAU1+K,KAAK+9K,GAEVW,GAqCF,MAAA,CACLJ,kBAAAA,EACAF,WAAAA,EACAO,eArCqB,SAACtkK,GAChB,IAAEkd,EAAgBq3B,EAAhBr3B,KAAM36B,EAAUgyD,EAAVhyD,MACd,IAAK26B,EAAa,OAAA,KAEZ,IAAEyxE,EAAiBzxE,EAAjByxE,MAAOjzG,EAAUwhC,EAAVxhC,MACTy5B,EA1Ec,WACd,IACEw5E,EADSp6C,EAATr3B,KACAyxE,MAKF41E,qBAAyB51E,EAAA,KAExB,gBADa41E,GAkELC,GACT/nJ,EA/DiB,WACjB,IAAES,EAASq3B,EAATr3B,KACAygJ,EAAyCD,EAAzCC,WAAYC,EAA6BF,EAA7BE,WAAYC,EAAiBH,EAAjBG,aAC1BluJ,EAAO,GA4BN,OA3BFA,EAAAhqB,KAAA,GAAAguB,OAAQhB,aACbhD,EAAKhqB,KAAKnK,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OACJhB,kBAA8BuK,EAAKnI,UAAApB,GAAAA,OACnC1M,EAAA,gBAA0BiW,EAAK4tG,eAAgB5tG,EAAK4qG,SAAU,GAAAn0G,OAC9D1M,kBAA4BiW,EAAKwQ,eAEvC/d,EAAKhqB,KAAKnK,QAAAm4B,OACJhB,EAAmC,qBAAAuK,EAAKi4I,gBAE1Cj4I,EAAKpI,QACFnF,EAAAhqB,KAAA,GAAAguB,OAAQhB,sBAERhD,EAAAhqB,KAAA,GAAAguB,OAAQhB,qBAEXuK,EAAK8sG,YACFr6G,EAAAhqB,KAAA,GAAAguB,OAAQhB,qBAEXuK,EAAK6sG,UACFp6G,EAAAhqB,KAAA,GAAAguB,OAAQhB,sBAGfhD,EAAKhqB,KAAKnK,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OACJhB,EAAkCirJ,oBAAAA,GAAAjqJ,GAAAA,OAClChB,EAAiC,mBAAAgrJ,GAAcE,EAAe,GAAAlqJ,GAAAA,OAC9DhB,EAAoC,sBAAAgrJ,GAAcE,EAAe,GAAAlqJ,GAAAA,OACjEhB,EAAA,0BAAwCirJ,GAAcD,GAA+B,IAAjBE,IAEnEluJ,EAgCW80J,GAyBX,OArBWlwH,EACRk7E,QAAUltI,EAAMktI,QAGxBt2G,EAAAO,YAAA,MAAA,CAAAjH,IAAA,cAAA2G,MAESqD,EACP,aAAY/gC,EACZ,aAAYizG,EACZv5E,MAAOD,EACP2U,QAAS,SAAC4mC,GAAA,OAAoBt9B,EAAYs9B,EAC1C,EAAAwP,UAAWhjD,EAAKi4I,cAChBp3D,YAAa,SAACrtC,GAAA,OAAmB6tG,EAAgB7tG,cACtC,SAACA,GAAmB,OAAA+tG,EAAc/tG,EAAG,EAAAstC,WACpC,SAACttC,GAAmB,OAAAguG,EAAehuG,EAAG,EAAAg0G,YACrC,SAACh0G,GAAmB,OAAAiuG,EAAgBjuG,EACjD,EAAAktC,OAAQ,SAACltC,GAAA,OAAmBkuG,EAAWluG,EAEtC,GAAA,CAAAuzG,EAAkBvoL,MAAQ,CAAAy9B,EAAAO,YAAQ,MAAA,KAAA,OAAI0tG,EAAWpnH,MAW1D,okBItJO,IAAM2kK,GAAgB,CAC3Bl1C,QAAS,CACPpxI,KAAM/C,QAERspL,QAAS,CACPvmL,KAAM/C,QAER0vH,SAAU,CACR3sH,KAAM9C,QAER+iL,UAAW,CACTjgL,KAAMxE,SAIVgrL,GAAeltJ,EAAgBA,gBAAAoB,GAAAA,GAAA,CAC7Bx2B,MAAOoiL,IACJ7H,IAAA,GAAA,CACHllJ,eAAMr1B,EAA0BsqC,GAC9B,IAAAi4I,EC5BoB,SAAaviL,EAA0BsqC,GACvD,IAAAk4I,EAAWt+I,SAAOlkC,GAClBk7K,EAAchrJ,MAAI,MAChB6rJ,EAAc/7K,EAAd+7K,UAEFphJ,EADYohJ,EAAVzsC,MACWzH,WAAWpjI,IAAIzE,EAAMqiL,SAYjC,MAAA,CACLrwH,MAX+B,CAC/Bk7E,QAASltI,EAAMktI,QACfltI,MAAAA,EACAsqC,QAAAA,EACAyxI,UAAAA,EACAyG,SAAAA,EACA7nJ,KAAAA,EACAugJ,YAAAA,GAMJ,CDQsBuH,CAAaziL,EAAOsqC,GAA9B0nB,EAAAuwH,EAAAvwH,MACAkpH,EAAgBlpH,EAAhBkpH,YAKD,OAJOhrJ,QAIP,CACLgrJ,YAAAA,EACA6G,eAJyB1B,GAAYruH,GAA/B+vH,eAMV,EACAh9I,OAAAA,SAAOtnB,GACC,IAAAof,EAAgB49I,KAIlB,MAA+B,mBAAxB55K,KAAKkhL,eACPlhL,KAAKkhL,eAAellJ,GAEtB,IACT,KE9CF,SAAwB6lJ,GAAa1wH,GACnC,IAAQs9E,EAAiDt9E,EAAjDs9E,MAAOqzC,EAA0C3wH,EAA1C2wH,MAAO30C,EAAmCh8E,EAAnCg8E,SAAUrmB,EAAyB31D,EAAzB21D,MAAO24D,EAAkBtuH,EAAlBsuH,cACvCsC,ECHF,SAAsC5wH,GACpC,IAAMyrH,EAAYzrH,EACVhyD,EAAmBy9K,EAAnBz9K,MAAOsqC,EAAYmzI,EAAZnzI,QACfu4I,EAAyDrF,GAAcxrH,GAA/DusH,EAAgBsE,EAAhBtE,eAAgBC,EAAAqE,EAAArE,cAAeC,EAAcoE,EAAdpE,cA2DhC,MAAA,CACLp4D,aAVmB,SAACy8D,EAA0B17H,GACxC,IAAEp1B,EAAahyB,EAAbgyB,SACA2I,EAASmoJ,EAATnoJ,KACHA,IAAQ3I,IAAY2I,EAAK3I,UAAa2I,EAAKsvG,eAGhDw0C,EAAc9jJ,EAAMysB,IAKpBvW,YA3DkB,SAACiyI,GACnB,IAAQntF,EAA4BmtF,EAA5BntF,WAAYl8D,EAAgBqpJ,EAAhBrpJ,MAAOkB,EAASmoJ,EAATnoJ,KACvB,GAACA,GAASg7D,EAAV,CAGJ8nF,EAAU9nF,WAAaA,EAEvB,IAAIotF,EAAe/iL,EAAMi/K,kBACrB+D,GAAgBhjL,EAAMgyB,WAAa2I,EAAK3I,UAAY2I,EAAK4tG,cAI7D,CAAC,UAAW,UAAUj4H,SAAQ,SAAC2yK,GAC7B,IAAM3lI,EAAO4/H,GAAQ+F,EAAUxpJ,EAAMzG,OAAuByG,EAAMwrB,eAC5Di+H,GAAY5lI,eAAAA,EAAMnkD,QAAS,GAC7B+pL,EAAUhwJ,QAAQ,WAAa,IAEhB,YAAb+vJ,EACaF,GAAA,EACO,WAAbE,IACMF,GAAA,IAGfG,EAAUhwJ,QAAQ,WAAa,GAEhB,WAAb+vJ,IACaD,GAAA,EAGrB,IAEID,GACFxE,EAAe5jJ,GAGbqoJ,GACFxE,EAAc7jJ,GAGhB,IAAMyjJ,EAAS,CACbzjJ,KAAMA,EAAKwoG,WACX3oI,EAAGm7F,GAEuCmnF,GAAA98K,EAAOsqC,EAAS,QAAS8zI,GAErEX,EAAU9nF,WAAa,IA3CG,GA2D9B,CD/DwCwtF,CAAcnxH,GAA5CnhB,EAAA+xI,EAAA/xI,YAAaw1E,EAAau8D,EAAbv8D,aACf+8D,EAAalzJ,OAAI,GAEjBmzJ,MAAev+K,IAEf+/D,EAAU,WACLmpE,EAAA70I,MAAQm2I,EAAMjN,YAGnBihD,EAAsB,WAEtB,KADchD,eAAAA,EAAe1H,gBAAgBz/K,OAC7C,CAEJ,IAAMi0B,EAAuB,GAEzBm2J,GAAiB,EACZv1C,EAAA70I,MAAMmX,SAAQ,SAACqqB,GAClBA,EAAKpI,UAEUgxJ,GAAA,EACjBF,EAASj/K,IAAIu2B,EAAKxhC,MAAOwhC,EAAKxhC,QAE5BkqL,EAAS7+K,IAAIm2B,EAAKxhC,QAEpBi0B,EAAKhqB,KAAKu3B,EAEd,IACS0oJ,EAAA/yK,SAAQ,SAACnX,GAEXm2I,EAAMpM,QAAQ/pI,IACjBkqL,EAAA,OAAgBlqL,EAEpB,IAEAwuH,EAAMxuH,MAAQi0B,EACdg2J,EAAWjqL,OAASoqL,CAxBL,GA2BXC,EAAsB,WAE1B,GADkBlD,eAAAA,EAAe1H,gBAAgBz/K,MACjD,CAEM,IAAAi0B,EAAOkzJ,EAAc10D,YAAYzyH,MACvCwuH,EAAMxuH,MAAQi0B,EACHg2J,EAAAjqL,MAAQi0B,EAAK52B,QAAU,CAJlB,GA8CX,OARPkrC,QAAMssG,EAAUs1C,GACV5hJ,EAAAA,MAAA4+I,EAAc10D,YAAa43D,GAEzB3+G,IACYy+G,IACAE,IACdl0C,EAAA/C,QAAQlzG,GAAG,SAAUwrC,GAEpB,CACLu+G,WAAAA,EACAK,gBAlBsB,SAAChmK,GACvB,IAAMyvH,EAAU,UAAA97G,QAAU,IAAI7yB,MAAOmjB,WAC/BgiK,EAA6B/7D,EAAMxuH,MAAM6L,KAAI,SAAC21B,EAAoB1/B,GAAA,OAxBvD,SAACwiB,EAAsBkd,EAAmB1/B,EAAeiyI,GACpE,IAAAzkB,EAAW9tF,EAAKy/I,sBAAwBn/K,EACxC0oL,EAAehpJ,EAAKmsG,IAiBnB,6BATE68C,EAAAl7D,SACKA,EACVykB,QAASA,EACTm1C,QAASsB,YACEhB,EAAAp7I,QACFsJ,EAAAyX,SACC+9D,GACZ,MAQAwe,CAAWpnH,EAAGkd,EAAM1/B,EAAOiyI,EAAO,IAE7B,OAAAw2C,GAeX,okBE1FA,SAAwBE,GAAc5xH,GACpC,IAAMyrH,EAAYzrH,EACVhyD,EAAwEy9K,EAAxEz9K,MAAOsqC,EAAiEmzI,EAAjEnzI,QAAS0jG,EAAwDyvC,EAAxDzvC,SAAUrmB,EAA8C81D,EAA9C91D,MAAOg7D,EAAuClF,EAAvCkF,MAAOpC,EAAgC9C,EAAhC8C,eAAgBsD,EAAgBpG,EAAhBoG,YAE1DrD,EAAmC7oK,EAAAA,UAAS,WAAA,OAAA6e,GAAA,CAEhDi3F,UAAW,IACRztH,EAAMihE,OAAA,IAEX0hH,EAAMnC,YAAcA,EAGd,IAAAsD,EAAsBnsK,EAAAA,UAAS,WAE5B,MAAA,CACLjT,KAFWspI,EAAS70I,MAAMinC,QAAO,SAACzF,GAAA,OAAmBA,EAAKpI,WAG1D0uC,OAAQu/G,EAAYrnL,MACpB2gL,sBAAsB,EAE1B,IAEMwG,EAAgBhzD,GAAiBizD,EAAgBuD,GACvDnB,EAAMrC,cAAgBA,EACtB7C,EAAU6C,cAAgBA,EAE1B/qJ,EAAAA,WAAU,YACU+qJ,eAAAA,EAAe1H,gBAAgBz/K,QAE/CmnL,EAAchhI,cAElB,IAEM,IAOFykI,EAA6B,KAa7B91D,EAAc,EAqCX,MAAA,CAELsyD,eAAAA,EACAryD,qBAvC2B,SAAC1zH,GAZ5BqpL,EAAY1qL,OAAQ,EAChB4qL,IACFxtK,aAAawtK,GACKA,EAAA,MAEpBA,EAAkB9tK,YAAW,WACT8tK,EAAA,KAClBF,EAAY1qL,OAAQ,IACnB,KAMG,IAAAyvH,EAAY03D,eAAAA,EAAe1H,gBAAgBz/K,MAE3CmkC,GADU9iC,EAAEw4B,QAAUx4B,EAAEwpL,YACXjoJ,UAGfkyF,IAAgB3wF,EACdsrF,IACF03D,EAAchhI,eACRqoE,EAAAxuH,MAAQmnL,EAAc10D,YAAYzyH,OAG5B80H,EAAA,EAEFA,EAAA3wF,EApCQ,SAAC9iC,GAAkB,IAAAypL,EACnC,QAAAA,EAAAjkL,EAAA+oE,gBAAA,IAAAk7G,GAAAA,EAAAxsL,KAAAuI,EAAW,CAAExF,EAAAA,IAEnB8vC,EAAQqG,KAAK,SAAU,CAAEn2C,EAAAA,IAkCzB0pL,CAAgB1pL,IAwBhB8lL,cAAAA,EACAjG,gBAtBqB,SAACh7I,GACtB,IAAIpkC,EAAQokC,EAAOpkC,MACf,IAACA,GAAmB,IAAVA,EAAa,CAAA,IAAAkpL,EACrB,IAAC9kJ,EAAO7mC,IAEV,YADI8sE,GAAM,OAAQ,wDAMpB,IAHArqE,EAAwB,QAAxBkpL,EAAQn2C,EAAS70I,aAAO,IAAAgrL,OAAA,EAAhBA,EAAgB/jD,WAAU,SAACnhG,GACjC,IAAAmwG,EAAA,MAAA,CAAC3qI,GAAIw6B,EAAKv6B,KAAM,OAAQD,GAAIw6B,EAAKv6B,cAAM0qI,EAAApvI,EAAM9C,yBAANkyI,EAAyB,QAAA,UAAU53H,SAAS6nB,EAAO7mC,IAAG,KAEnF,EAEV,YADA8sE,GAAU,OAAA,GAAAl0C,OAAWiO,EAAO7mC,IAA+D,0DAG/F,CACA8nL,EAAcjG,yBAAqBh7I,OAAQpkC,MAAOA,EAAQ,MAS9D,CCrGO,SAASmpL,GAAcC,GAC5B,OAAKA,EACElnI,MAAMnkD,OAAOqrL,IAASA,YAAUA,EAAA,MADrBA,CAEpB,CCGe,IAAAC,GAAA,CAEb59C,UAAW5kG,QAEXqpG,eAAgBrpG,QAEhByjG,QAAS,CACPzpI,KAAMnF,MACNwsB,aAAS,GAGXohK,eAAgB,CACdzoL,KAAMnF,OAGR6tL,UAAW,CACT1oL,KAAMhC,UAGR8vI,sBAAuB9nG,QAEvB+hG,WAAY,CACV/nI,KAAMxE,QAGR0qI,cAAelgG,QAEf6kG,UAAW7kG,QAEXp9B,KAAM,CACJ5I,KAAMnF,MACNwsB,QAAS,WAAT,MAAoC,EAAC,GAGvC2mH,aAAc,CACZhuI,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGX6O,SAAU8P,QAEV67C,UAAW77C,QAEX7a,MAAO,CACLnrB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXukH,UAAW5lG,QAEXumG,YAAa,CACXvsI,KAAM9C,OACNmqB,QAAS,GAGXo4D,YAAaz5C,QAEbm9I,kBAAmBn9I,QAEnB2oG,aAAc3oG,QAEdtP,SAAU,CACR12B,KAAMnF,MACNwsB,aAAS,GAGXm4D,gBAAiB,CACfx/E,KAAMnF,MACNwsB,QAAS,WAAT,MAA+C,EAAC,GAGlDid,OAAQ,CACNtkC,KAAMhC,UAGRm9B,OAAQ,CACNn7B,KAAM,CAAC/C,OAAQC,SAGjBq3C,MAAOvO,QAEP3c,KAAM,CACJrpB,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXjmB,KAAM,CACJpB,KAAMxE,QAGRmiD,MAAO,CACL39C,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXy6D,KAAM,CACJ9hF,KAAMgmC,QACN3e,SAAS,GAGXw9J,KAAM,CACJ7kL,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGX6gH,KAAM,CACJloI,KAAMhC,UAGR28E,UAAW,CACT36E,KAAM,CAAC/C,OAAQC,SAGjB0iF,WAAY,CACV5/E,KAAMhC,UAGRmnE,OAAQ,CACNnlE,KAAMxE,QAGRmyC,WAAY,CACV3tC,KAAMgmC,QACN3e,SAAS,GAGXhqB,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAA4C,EAAC,GAG/C8gH,UAAW,CACTnoI,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,cAAe,OAAOjnB,SAASinB,EACrD,GAGFgmJ,SAAU3qL,SAEVwuD,SAAUxuD,SAEVytC,QAASztC,SAETwhH,UAAWxhH,SAEXi4K,YAAaj4K,SAEb8gH,WAAY9gH,SAEZqhH,YAAarhH,SAEbuhH,OAAQvhH,SAER6hF,SAAU7hF,SAEVkyI,OAAQlyI,SAERivE,SAAUjvE,6kBCjJZ,IAAA4qL,GAAetvJ,kBAAgB,CAC7Bx9B,KAAM,QACNuvI,MAAO,CACLpuF,KAAM,QACNtf,MAAO,UAGTz5B,MAAOw2B,GACFx2B,CAAAA,EAAAA,IAGLq1B,eAAMr1B,EAAOsqC,GACX,IAAAilC,EAAsBp/C,GAAU,QAAxBpT,EAAAwyD,EAAAxyD,EAAGrjB,EAAO61E,EAAP71E,OACLgrB,EAAcyM,KACdf,EAAgBe,GAAe,QAGrCwzJ,EC9CoB,SAAa3kL,EAAkBsqC,GACrD,IAAMi2I,EAAiBrwJ,EAAAA,MACjBy3F,EAA6Bz3F,MAAI,IACjC89G,EAAgC99G,MAAI,IACpC2zJ,EAAgC3zJ,OAAI,GAEpCsyJ,EAAWt+I,SAAOlkC,GAClB29K,EAAU54G,GAAU/kE,EAAOwiL,EAAU,QAAS,eAAgB,WAAY,UAC1E3E,EAAY94G,GAAU/kE,EAAOwiL,EAAU,UAAW,iBAAkB,WAAY,UAChFvE,EAAal5G,GAAU/kE,EAAOwiL,EAAU,WAAY,kBAAmB,WAAY,UAQnFxwH,EAAuB,CAC3BhyD,MAAAA,EACAsqC,QAAAA,EAEAglG,MAAO,KAEPixC,eAAAA,EAEA54D,MAAAA,EAEAqmB,SAAAA,EAEA61C,YAAAA,EAEAluF,WAAY,KAEZ2qF,cAAe,KAEfqC,MAAO,CACLrzC,MAAO,KACPixC,eAAAA,EACA9wC,UAAWzvI,EACX41K,YAAa,CAAC,EACd0K,cAAe,MAEjBsE,SA/BF,SAAkBt1C,GAChBt9E,EAAMs9E,MAAQA,EACdt9E,EAAM2wH,MAAMrzC,MAAQA,EACXtB,EAAA70I,MAAQm2I,EAAMjN,UACzB,EA4BEmgD,SAAAA,EACA7E,QAAAA,EACAE,UAAAA,EACAI,WAAAA,GAGK,MAAA,CACLjsH,MAAAA,EAEJ,CDNsB6yH,CAAa7kL,EAAOsqC,GAA9B0nB,EAAA2yH,EAAA3yH,MACAuuH,EAAgCvuH,EAAhCuuH,eAAgBsD,EAAgB7xH,EAAhB6xH,YACxBiB,EEtCJ,SAAqC9yH,GACnC,IAAQhyD,EAA6BgyD,EAA7BhyD,MAAOsqC,EAAsB0nB,EAAtB1nB,QAASk4I,EAAaxwH,EAAbwwH,SAChBv+C,EAA4BjkI,EAA5BikI,UAAW7jG,EAAiBpgC,EAAjBogC,OAAQljC,EAAS8C,EAAT9C,KAErBoyI,EAAmB,IAAIvD,GAAU,CACrC9H,UAAAA,EACA7jG,OAAAA,IAII2/D,EAAS/tC,EAAM2rH,QAAQ,GAEvBG,EAAW9rH,EAAM6rH,UAAU,GAE3BK,EAAYlsH,EAAMisH,WAAW,GAG7B8G,EAAoB,WAGlB,IAAAC,EAAa7pK,GAAKnb,EAAO,CAC7B,YACA,cACA,cACA,eACA,YACA,iBACA,WACA,eACA,YACA,YACA,gBACA,OACA,OACA,YACA,SACA,0BAEFsvI,EAAMI,UAAUs1C,IAGZt3C,EAAiB,WACf,IAAEjD,EAAiBzqI,EAAjByqI,aACR,GAAK9zI,MAAMoB,QAAQmmL,EAAU/kL,OAA7B,CAGM,IAAAmvI,MAAkBxjI,IACdo5K,EAAA/kL,MAAMmX,SAAQ,SAACmuB,GAEvB,GADY6pG,EAAAlkI,IAAIq6B,GAAK,GACjBgsG,EAAc,CACV,IAAA9vG,EAAO20G,EAAMpM,QAAQzkG,GACvB9D,GACFA,EACGwoG,WACA2C,aACAx1H,SAAQ,SAAC0+H,GACI1G,EAAAlkI,IAAI4qI,EAAG71I,OAAO,EAC5B,GAEN,CACF,IACA,IAAM81I,EAAct4I,MAAMK,KAAKsxI,EAAYprI,QAC3CoyI,EAAMpkD,YAAY+jD,EAnBmB,GAsBnCg2C,GAAgB,EAChBC,EAAwC,KAKtCC,EAAmB,WACvB,GAAKnlL,EAAM4pI,uBACNq7C,EAIL,GAFgBA,GAAA,EAEZjlL,EAAMogC,OAAQ,CACX8kJ,IAEHA,EAAe51C,EAAMxK,eAIvB,IAAMsgD,EAA+B,GACJ91C,EAAMjN,WAC9B/xH,SAAQ,SAACqqB,GACZA,EAAK8sG,YACI29C,EAAAhiL,KAAKu3B,EAAKxhC,MAEzB,IACAm2I,EAAMpkD,YAAYk6F,QACTF,IAET51C,EAAM5K,gBAAgBwgD,GACPA,EAAA,OAMbG,EAAoB,SAACC,EAA4BC,GAChDvlL,EAAM4pI,wBACXq7C,EAAgBK,IAAcC,IAG1BC,EAAa,SAAC//J,GACZ,IACA24J,EAAS,CACbzjJ,KAFelV,EAATkV,KAEKwoG,YAETxsI,MAAMoB,QAAQgoG,EAAO5mG,QAAU4mG,EAAO5mG,MAAM3C,OAAS,GACjD84I,EAAAH,eAAepvC,EAAO5mG,OAE1BxC,MAAMoB,QAAQmmL,EAAU/kL,QAAU+kL,EAAU/kL,MAAM3C,OAAS,GACvD84I,EAAA5K,gBAAgBw5C,EAAU/kL,OAE9BxC,MAAMoB,QAAQ+lL,EAAS3kL,QAAU2kL,EAAS3kL,MAAM3C,OAAS,GACrD84I,EAAAgvC,eAAeR,EAAS3kL,OAE5B6G,SAAAA,EAAOgsI,SACThsI,SAAAA,EAAOgsI,OAAOoyC,IAER9zI,EAAAqG,KAAK,OAAQytI,IA+FhB,OAzEL9uC,EAAMI,UAAU,CACdxyI,KAAAA,IAEgB6nL,IAClBz1C,EAAMla,OAAOp1H,EAAM0E,MAAQ,IAI3B4qI,EAAM7K,eAGF9tI,MAAMoB,QAAQgoG,EAAO5mG,QACjBm2I,EAAAtM,WAAWjjC,EAAO5mG,OAIXu0I,IAGX/2I,MAAMoB,QAAQ+lL,EAAS3kL,QACnBm2I,EAAAxE,WAAWgzC,EAAS3kL,OAGtBm2I,EAAA/C,QAAQlzG,GAAG,OAAQmsJ,GACnBl2C,EAAA/C,QAAQlzG,GAAG,SAAU8rJ,GAM7BnzH,EAAM4yH,SAASt1C,GAEf5tG,EAAAA,OACE,WAAA,OAAA5pC,EAAWioG,EAAO5mG,OAAS,GAAG,IAC9B,SAACssL,GACCn2C,EAAMH,eAAes2C,EACvB,IAEF/jJ,EAAAA,OACE,WAAA,OAAA5pC,EAAWomL,EAAU/kL,OAAS,GAAG,IACjC,SAACssL,GACCn2C,EAAM5K,gBAAgB+gD,EACxB,IAEF/jJ,EAAAA,OACE,WAAA,OAAA5pC,EAAWgmL,EAAS3kL,OAAS,GAAG,IAChC,SAACssL,GACCn2C,EAAMgvC,eAAemH,EACvB,IAGF/jJ,EAAAA,MAAM8gJ,EAASpiJ,QAAQ,SAACqlJ,EAAMC,GAC5BL,EAAkBI,EAAMC,EAC1B,IACMhkJ,EAAAA,MAAA8gJ,EAAStlL,MAAM,SAACA,GACpBoyI,EAAMI,UAAU,CACdxyI,KAAAA,GAEJ,IAEMwkC,EAAAA,MAAA8gJ,EAAS96C,WAAW,SAAC+9C,GACzB,GAAIA,EAAM,CACF,IAAAvR,EAAY5kC,EACfjN,WACAjiG,QAAO,SAACzF,GAAA,OAAShkC,MAAMoB,QAAQ4iC,EAAKuE,WAAavE,EAAKuE,SAAS1oC,MAAM,IACrEwO,KAAI,SAAC21B,GAAA,OAASA,EAAKxhC,SACtBm2I,EAAMpkD,YAAYgpF,EACpB,MACE5kC,EAAM5K,gBAAgBwgD,GACPA,EAAA,IAEnB,IAEO,CACL51C,MAAAA,EACAq2C,QA9Fc,SAACv4J,GACTkiH,EAAAD,OAAOjiH,GAAQ,IACrBkiH,EAAM7K,eAEF9tI,MAAMoB,QAAQgoG,EAAO5mG,QACjBm2I,EAAAtM,WAAWjjC,EAAO5mG,OAGXu0I,IAEX/2I,MAAMoB,QAAQ+lL,EAAS3kL,QACnBm2I,EAAAxE,WAAWgzC,EAAS3kL,OAG5Bm2I,EAAM5C,gBAiFN24C,kBAAAA,EACAN,kBAAAA,EACAr3C,eAAAA,EACAy3C,iBAAAA,EAEJ,CF5LkDS,CAAa5zH,GAAnDs9E,EAAOw1C,EAAPx1C,MAAOy1C,EAAAD,EAAAC,kBAAmBY,EAAQb,EAARa,SG/CtC,SAAsC3zH,GACpC,IAAQhyD,EAAiCgyD,EAAjChyD,MAAOsqC,EAA0B0nB,EAA1B1nB,QAASq4I,EAAiB3wH,EAAjB2wH,MAAOrzC,EAAUt9E,EAAVs9E,MAC3Bu2C,EAAqB,KAyEnB/J,EAAuB,CAC3BE,gBAxEsB,SAAChqH,GACjB,IAAEwpH,EAAoBxpH,EAApBwpH,UAAW7gJ,EAASq3B,EAATr3B,KACRkrJ,EAAAlrJ,EAEX,IAAMysB,EAAM,CACVzsB,KAAMA,EAAKwoG,WACX3oI,EAAGghL,GAE2CsB,GAAA98K,EAAOsqC,EAAS,aAAc8c,IAiE9E80H,cA9DoB,SAAClqH,GACf,IAAEwpH,EAAoBxpH,EAApBwpH,UAAW7gJ,EAASq3B,EAATr3B,KACRkrJ,EAAAlrJ,EAEX,IAAMysB,EAAM,CACVzsB,KAAMA,EAAKwoG,WACX3oI,EAAGghL,GAEyCsB,GAAA98K,EAAOsqC,EAAS,WAAY8c,IAuD1E+0H,eApDqB,SAACnqH,GAChB,IAAEwpH,EAAoBxpH,EAApBwpH,UACFp0H,EAAM,CACVzsB,KAF0Bq3B,EAATr3B,KAENwoG,WACX3oI,EAAGghL,GAE0CsB,GAAA98K,EAAOsqC,EAAS,YAAa8c,IA+C5Eg1H,gBA5CsB,SAACpqH,GACjB,IAAEwpH,EAAoBxpH,EAApBwpH,UACFp0H,EAAM,CACVzsB,KAF0Bq3B,EAATr3B,KAENwoG,WACX3oI,EAAGghL,GAE2CsB,GAAA98K,EAAOsqC,EAAS,aAAc8c,IAuC9Ei1H,WApCiB,SAACrqH,GAA8B,IAAA8zH,EACxCtK,EAAkCxpH,EAAlCwpH,UAAW7gJ,EAAuBq3B,EAAvBr3B,KAAM2gJ,EAAiBtpH,EAAjBspH,aACzB,GAAI3gJ,EAAKxhC,QAAU0sL,EAAS1sL,QAASwhC,EAAKmrG,aAAavvF,MAAK,SAAC4yC,GAAA,OAAUA,EAAMhwF,QAAU0sL,EAAS1sL,KAAK,IAArG,CAEA,IAAMiuD,EAAM,CACV2+H,SAAUprJ,EAAKwoG,WACf0iD,SAAUA,EAAS1iD,WACnBm4C,aAAAA,EACA9gL,EAAGghL,IAG0B,aAA3BsK,EAAA9lL,EAAMwkL,iBAAY,IAAAsB,OAAA,EAAlBA,EAAAruL,KAAAuI,EAAkBonD,MAERkoF,EAAMjN,WACd9rF,MAAK,SAAC4yC,GACN,OAAAA,EAAMhwF,QAAUwhC,EAAKxhC,QACnBmiL,IAAiBN,GAAagL,OACvBH,EAAAp9C,SAAS6G,EAAOnmD,GAChBmyF,IAAiBN,GAAaiL,OACvCtrJ,EAAKqP,aAAa67I,GAElBlrJ,EAAKirG,YAAYigD,IAEZ,EAGX,IAE2C/I,GAAA98K,EAAOsqC,EAAS,OAAQ8c,GA1BqC,IAqC1Gu7H,EAAM7G,KAAOA,CAKf,CHvCIoK,CAAcl0H,GACd,IAAA6wH,EAAgDrF,GAAcxrH,GAAtD84E,EAAY+3C,EAAZ/3C,WAAY5/C,EAAA23F,EAAA33F,YAAa83C,EAAW6/C,EAAX7/C,WACjCmjD,EAAiEvC,GAAc5xH,GAAvEk8D,EAAsBi4D,EAAtBj4D,qBAAsBoyD,EAAA6F,EAAA7F,cAAejG,EAAgB8L,EAAhB9L,gBAC7C+L,EAAwC1D,GAAa1wH,GAA7CyxH,EAAA2C,EAAA3C,gBAAiBL,EAAWgD,EAAXhD,WACzBiD,EFlDJ,SAAsCr0H,GAC9B,IAAEhyD,EAAUgyD,EAAVhyD,MACFowB,EAAgBe,GAAe,QAAQh4B,MACvCurB,EAAcyM,KAAiBh4B,MAC7BmnL,EAAyCtuH,EAAzCsuH,cAAeuD,EAA0B7xH,EAA1B6xH,YAAarB,EAAaxwH,EAAbwwH,SAE5BvrJ,EAAsBurJ,EAAtBvrJ,OAAQw/C,EAAc+rG,EAAd/rG,UAqET,MAAA,CACL6vG,YApEkB3uK,EAAAA,UAAS,WACrB,IAAAyV,EAAsB,CAACgD,GACrB4B,EAAiFhyB,EAAjFgyB,SAAUqe,EAAuErwC,EAAvEqwC,MAAO5G,EAAgEzpC,EAAhEypC,WAAYk9F,EAAoD3mI,EAApD2mI,UAAWhpD,EAAyC39E,EAAzC29E,UAAWshG,EAA8Bj/K,EAA9Bi/K,kBAAmBh+G,EAAWjhE,EAAXihE,OA8BvE,OA7BHjvC,GACG5E,EAAAhqB,KAAA,GAAAguB,OAAQ1M,mBAEX2rB,GACGjjB,EAAAhqB,KAAA,GAAAguB,OAAQhB,kBAEXu2G,GACGv5G,EAAAhqB,KAAA,GAAAguB,OAAQhB,kBAEXutD,GACGvwD,EAAAhqB,KAAA,GAAAguB,OAAQhB,kBAEXqZ,GACGrc,EAAAhqB,KAAA,GAAAguB,OAAQhB,mBAEX6uJ,GACG7xJ,EAAAhqB,KAAA,GAAAguB,OAAQhB,oBAGGkwJ,eAAAA,EAAe1H,gBAAgBz/K,QAE1Ci0B,EAAAhqB,KAAA,GAAAguB,OAAQhB,gBACTyzJ,EAAY1qL,OACTi0B,EAAAhqB,KAAA,GAAAguB,OAAQhB,mBAEN6wC,GAA0B,SAAhBA,EAAOnlE,MACrBsxB,EAAAhqB,KAAA,GAAAguB,OAAQhB,iBAGRhD,CACT,IAoCEm5J,kBAlCwB5uK,EAAAA,UAAqB,WAAA,MAAO,CACpDsf,OAAQmtJ,GAAcntJ,EAAO99B,OAC7Bs9E,UAAW2tG,GAAc3tG,EAAUt9E,OACnCq/D,UAAW4rH,GAAcntJ,EAAO99B,QAAUirL,GAAc3tG,EAAUt9E,OAAS,YAAS,EACpF,IA+BAqtL,aA7BmB7uK,EAAAA,UAAqB,WAElC,IACA00G,GADYi0D,eAAAA,EAAe1H,gBAAgBz/K,OAClBmnL,aAAAA,EAAAA,EAAej0D,WAAWlzH,MAAQ,EAC3DsH,uBAA0B4rH,EAAA,OAOzB,MANU,CACf5rH,UAAAA,EACA,gBAAiBA,EACjB,iBAAkBA,EAClB,oBAAqBA,EAGzB,IAkBEgmL,aAhBmB9uK,EAAAA,UAAqB,WAClC,IACA00G,GADYi0D,eAAAA,EAAe1H,gBAAgBz/K,OAClBmnL,aAAAA,EAAAA,EAAej0D,WAAWlzH,MAAQ,EAC3DutL,yBAA4Br6D,EAAA,OAC3B,MAAA,CACL5rH,UAAWimL,EACX,gBAAiBA,EACjB,iBAAkBA,EAClB,oBAAqBA,EAEzB,IAQF,CE/B2EC,CAAc30H,GAI9E,MAAA,CACLj1C,EAAAA,EACArjB,OAAAA,EACAgrB,YAAAA,EACA0L,cAAAA,EACA4hC,MAAAA,EACAs9E,MAAAA,EACAg3C,YAXmBD,EAAbC,YAYN/F,eAAAA,EAEAoF,QAAAA,EACAZ,kBAAAA,EACAj6C,WAAAA,EACA5/C,YAAAA,EACA83C,WAAAA,EACAygD,gBAAAA,EACAL,WAAAA,EAEAS,YAAAA,EACA31D,qBAAAA,EACAq4D,kBAxBmBF,EAAAE,kBAyBnBC,eAzBsCA,aA0BtCC,aA1BiEJ,EAAbI,aA2BpDnG,cAAAA,EACAjG,gBAAAA,EACA5+I,SAAU4+I,EAEd,EAEA34I,MAAO,CAGLh9B,KAAAA,SAAK0oB,GACHvsB,KAAK8kL,QAAQv4J,EACf,GAIFggE,QAAS,CAEPvoB,QAAgB,WACdhkE,KAAKyuI,MAAM5C,cACb,EAEAk6C,iBAAQztL,EAAsB+b,GAA8B,IAAAsvC,EAAA3jD,KACpD85B,EAAiB95B,KAAKyuI,MAAMpM,QAAQ/pI,GACpC2zI,EAAO53H,EACPhY,EAAO5F,OAAO4F,KAAK4vI,GACrBnyG,GAAQmyG,IACV,CAAC,WAAY,UAAW,WAAWx8H,SAAQ,SAAC1Y,GACtC,GAAAsF,EAAKsa,SAAS5f,GAAO,CACvB,IAAM6mC,EAAMquG,EAAKl1I,UACVk1I,EAAKl1I,GACN,IAAAgR,QAAAwoB,OAAmB7lB,GAAW3T,IAC9BivL,EAAcriI,EAAK57C,GACrB/L,EAAWgqL,IACDA,EAAApvL,KAAK+sD,EAAM7pB,EAAM8D,EAEjC,CACF,IACA9D,EAAKv2B,IAAI0oI,GAEb,EAEAg6C,QAAAA,SAAQ3tL,GACN,IAAMwhC,EAAiB95B,KAAKyuI,MAAMpM,QAAQ/pI,GAC1C,OAAOwhC,eAAAA,EAAMwoG,UACf,EAGA4jD,SAAAA,SAAS5tL,GAEP,OADc0H,KAAKyuI,MAAMjN,SAASlpI,GACrB6L,KAAI,SAAC21B,GAAmB,OAAAA,EAAKwoG,aAC5C,EAGAsF,kBAASoE,EAAsB5tG,GACvB,IAAEqwG,EAAUzuI,KAAVyuI,OAEJ34I,MAAMoB,QAAQknC,GACTA,EAEA,CAACA,IAEL3uB,SAAQ,SAAC2uB,GACN,IAAAR,GAAMQ,eAAAA,EAAM9lC,QAAS,GACrBwhC,EAAOuoG,GAAQoM,EAAO7wG,GACxB9D,EACI20G,EAAA03C,YAAYn6C,EAAMlyG,GAElB20G,EAAA03C,YAAYn6C,EAAM5tG,EAE5B,GACF,EAEA+K,sBAAa7wC,EAAsB8lC,GAC3B,IAAEqwG,EAAUzuI,KAAVyuI,MAEF30G,EAAOuoG,GAAQoM,GADTrwG,eAAAA,EAAM9lC,QAAS,IAEvBwhC,EACI20G,EAAAtlG,aAAa7wC,EAAOwhC,GAEpB20G,EAAAtlG,aAAa7wC,EAAO8lC,EAE9B,EAEA2mG,qBAAYzsI,EAAsB8lC,GAC1B,IAAEqwG,EAAUzuI,KAAVyuI,MAEF30G,EAAOuoG,GAAQoM,GADTrwG,eAAAA,EAAM9lC,QAAS,IAEvBwhC,EACI20G,EAAA1J,YAAYzsI,EAAOwhC,GAEnB20G,EAAA1J,YAAYzsI,EAAO8lC,EAE7B,EAEAtjB,OAAAA,SAAOxiB,GACE,OAAA0H,KAAKyuI,MAAM3zH,OAAOxiB,EAC3B,EAEAssI,SAAAA,SAAStsI,GACA,OAAA0H,KAAKyuI,MAAM23C,aAAa9tL,EACjC,EAEAwzI,UAAAA,SAAUxzI,GACR,IAAMwhC,EAAO95B,KAAKyuI,MAAM3C,UAAUxzI,GAClC,OAAOwhC,eAAAA,EAAMwoG,UACf,EAEA2C,WAAAA,SAAW3sI,GAET,OADc0H,KAAKyuI,MAAMxJ,WAAW3sI,GACvB6L,KAAI,SAAC21B,GAAmB,OAAAA,EAAKwoG,aAC5C,EAEAb,QAAAA,SAAQnpI,GACN,IAAMwhC,EAAO95B,KAAKyuI,MAAMpM,QAAQ/pI,GAC5B+tL,EAAiC,GAI9B,OAHHvsJ,IACUusJ,EAAAvsJ,EAAK2nG,UAAUt9H,KAAI,SAAC21B,GAAmBA,OAAAA,EAAKwoG,eAEnD+jD,CACT,EAEAC,YAAAA,SAAYhuL,GACV,IAAIi0B,EAAmB,GACvB,GAAIj0B,EAAO,CAET,IADa0H,KAAKyuI,MAAMpM,QAAQ/pI,GACrB,MAAO,GACXi0B,EAAAvsB,KAAKyuI,MAAMjN,SAASlpI,EAC7B,MACSi0B,EAAAvsB,KAAKyuI,MAAMjN,WAGpB,IAAMuF,EAAmG,CAAA,EACnGnF,EAAkC,GA4BjC,OA3BFr1G,EAAA9c,SAAQ,SAAC2uB,GACN,IAAE9lC,EAAU8lC,EAAV9lC,MACFiuL,EAAW5wJ,GAAAA,GACZyI,CAAAA,EAAAA,EAAKv6B,MAAA,GAAA,CACRvL,MAAAA,KAEwB,IAAtBiuL,EAASloJ,iBACJkoJ,EAASloJ,SAElB0oG,EAAQzuI,GAASiuL,EACX,IAAAptK,EAASilB,EAAK0tG,YACpB,GAAK3yH,EAGE,CACC,IAAAqtK,EAAaz/C,EAAQ5tH,EAAO7gB,OAC7BkuL,GAIE1wL,MAAMoB,QAAQsvL,EAAWnoJ,YAC5BmoJ,EAAWnoJ,SAAW,IAEbmoJ,EAAAnoJ,SAAS97B,KAAKgkL,IALzB3kD,EAAUr/H,KAAKgkL,EAOnB,MAZE3kD,EAAUr/H,KAAKgkL,EAanB,IACO3kD,CACT,GAEF19F,OAAAA,SAAOtnB,GAAsB,IAAA6pK,EAAAnD,EAAAoD,EAAAC,EAEzBx1H,EAUEnxD,KAVFmxD,MACAs0H,EASEzlL,KATFylL,YACAvB,EAQElkL,KARFkkL,kBACAtB,EAOE5iL,KAPF4iL,gBACAL,EAMEviL,KANFuiL,WACAS,EAKEhjL,KALFgjL,YACAvD,EAIEz/K,KAJFy/K,cACAiG,EAGE1lL,KAHF0lL,kBACAC,EAEE3lL,KAFF2lL,aACAC,EACE5lL,KADF4lL,aAGI5pJ,EAAgB49I,KAEdkI,EAA8B3wH,EAA9B2wH,MAAO30C,EAAuBh8E,EAAvBg8E,SAAUw0C,EAAaxwH,EAAbwwH,SAEnBG,EAAA/M,YAA6B/0K,KlBrLrB++B,OkBuLImlJ,IAEZ,IAAArB,EAAgBD,EAAgB5mJ,GAChC4qJ,EAAQ5mL,KAAKuvB,cACbw4F,EAAY03D,EAAc1H,gBAAgBz/K,MAG5CuuL,EAAkC,KACtC,GAAItE,EAAY,CACd,IACMuE,GADa9mL,KAAKomB,QAAUpmB,KAAK++B,OAAO3Y,MACbpmB,KAAKkc,EAAElc,KAAKnH,OAAOutB,OAAS4Y,GAAeh/B,KAAM,SAClF6mL,EAAA9wJ,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OAA2Bq2J,EAAA,YAAA,CAAiBE,GAC9C,MAAWjE,EAAcltL,QAAU,IAGjCkxL,EAAA9wJ,EAAAA,YAAiB,MAAA,KAAA,OAIb,IAtQcrZ,EAyQhBqqK,EAAe,KAIfA,GAPe/mL,KAAXgnL,OACAp+I,YAGYm/E,GAAai7D,EAG7BjtJ,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OAAeq2J,kBAAsBjB,GAAA,CAClC9C,IAKL9sJ,EAAAO,YAAA2wJ,kBAAA,CAAAxtL,IAAA,MAAAu8B,MAAAzF,GAAAA,OAGcq2J,EACV,UAAA,qBAAAr2J,GAAAA,OAAuBq2J,EAAA,wBAAA,qBAAAr2J,GAAAA,OACAq2J,EAAA,wBAAA50J,MAChB2zJ,GAzRO,mBAAAjpK,EA2RbmmK,IA3RanxI,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA2RbmmK,6BAAAA,MAKP,IAAMqE,GACsDT,QAAzDA,EAAgB,QAAhBnD,EAAAn2C,EAAS70I,aAATgrL,IAAgBA,OAAhBA,EAAAA,EAAgB/jJ,QAAO,SAACzF,GAAS,OAAAA,EAAKpI,OAAO,IAAE/7B,cAAU8wL,IAAAA,EAAAA,EAAA,IAA0C,QAA1CC,UAAAC,EAAMhF,EAASvhH,OAAO9nE,0BAAhBquL,EAAuB/5D,iBAAa,IAAA85D,EAAAA,EAAA,IAChGS,EAAgC,CACpChxJ,MAAO,MACPC,OAAQ,MACR2S,QAAS,EACTP,cAAe,OACfF,SAAU,WACV5L,KAAM,EACND,cAAQyqJ,EAAA,OAGJE,EAAgBrxJ,EAAAO,YAAA,MAAA,CAAAtE,MAAYm1J,GAAmB,MAU9C,OARDpxJ,EAAAO,YAAA,MAAA,CAAAN,MACQyvJ,EAAAp2J,IAAA,iBAAA64C,SAA4CloE,KAAKqtH,qBAAAr7F,MAA6B0zJ,GACvF39D,CAAAA,wCAA4B6+D,EAAA,oBAAA50J,MAAgC4zJ,GAAc,MAC1EiB,GAAaE,EACbh/D,GAAaq/D,GAKpB,II3UWC,GtB+DJC,GsB/DuBzD,ICIjB0D,GAAA,CAEbp6F,UAAWlsD,QAEXosD,WAAYpsD,QAEZqsD,UAAWrsD,QAGXihE,eAAgB,CACdjnG,KAAMhC,UAGR4K,KAAM,CACJ5I,KAAMnF,MACNwsB,QAAS,WAAT,MAA0C,EAAC,GAG7C6O,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX8D,MAAO,CACLnrB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXid,OAAQ,CACNtkC,KAAMhC,UAGRwsB,WAAYwb,QAEZ82D,WAAY,CACV98F,KAAMxE,QAGRg6F,WAAY,CACVx1F,KAAM,CAAC/C,OAAQC,QACfmqB,aAAS,GAGX6/E,kBAAmB,CACjBlnG,KAAM,CAAC/C,OAAQC,SAGjBkE,KAAM,CACJpB,KAAMxE,QAGRw6B,QAASgQ,QAETha,YAAa,CACXhsB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGX7iB,IAAK,CACHxE,KAAM9C,OACNmqB,QAAS,GAGX8/E,gBAAiB,CACfnnG,KAAM9C,OACNmqB,QAAS,GAGX+/E,SAAUphE,QAEV40C,mBAAoB,CAClB56E,KAAM,CAAC/C,OAAQe,WAGjB68E,gBAAiB,CACf76E,KAAM,CAAC/C,OAAQe,WAGjBiuB,YAAa,CACXjsB,KAAM/C,OACNoqB,aAAS,GAGXglD,WAAY,CACVrsE,KAAMxE,QAGRiwF,aAAc,CACZzrF,KAAMgmC,QACN3e,aAAS,GAGXmtB,WAAY,CACVx0C,KAAMhC,UAGRy0F,SAAU,CACRzyF,KAAMgmC,QACN3e,aAAS,GAGXqnG,iBAAkB,CAChB1uH,KAAMxE,QAGRiN,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF1G,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjBy2C,WAAY,CACVz0C,KAAMhC,UAGRwpG,SAAU,CACRxnG,KAAMxE,QAGRm4I,UAAW,CACT3zI,KAAMxE,QAGR6B,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,OAAQ1B,OAAQX,OAC/BwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM,CAAC/C,OAAQC,OAAQ1B,OAAQX,OAC/BwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAM,CAAC/C,OAAQC,OAAQ1B,OAAQX,QAGjC4sG,aAAc,CACZznG,KAAMhC,UAGR2wH,UAAW,CACT3uH,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAUjnB,SAASinB,EACtC,GAGFmwD,OAAQ90F,SAERwuD,SAAUxuD,SAEV+0F,QAAS/0F,SAETk1F,QAASl1F,SAET0pG,cAAe1pG,SAEf2pG,qBAAsB3pG,SAEtBikF,SAAUjkF,SAEV6wH,SAAU7wH,6kBCzJZ,IC+BQuuL,GAMJC,GAIAC,GAIIC,GAEJC,GAEAC,MDjDJC,GAAevzJ,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAA6C,IAAjBmgC,EAAAoC,EAAApC,MAAOugB,IAAAA,OACjC7gB,EAAiBU,KACjBkuF,EAAqBztF,KACrBtc,EAAcyM,KACZT,EAAiBP,GAAU,cAA3BO,aACF+Z,EAAeJ,KACf81D,EAAa7Q,KAGbs5F,EAAU14J,MAAI,MAGdq1G,EAAUr1G,MAAI,IACdsC,EAAWtC,MAAI,IACf24J,EAAW34J,MAAI,MACf44J,EAAU54J,MAAI,GAGpB67C,EAAwD7nC,SAAOlkC,GAAvD7G,EAAO4yE,EAAP5yE,MAAO6rE,EAAA+G,EAAA/G,WAAYuiB,IAAAA,aAAc+J,EAAWvlB,EAAXulB,WACoEtlB,EAAArvD,GAA/DooD,GAAU5rE,EAAO6rE,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAAtGygI,EAAiB/8G,EAAA,GAAAg9G,EAAkBh9G,EAAA,GAM1CkR,EAAAvgE,GALwC2nD,GACtCijB,GACA,EACAvnF,EAAMyjG,qBACN,gBACF,GALO5yB,EAAcqM,EAAA,GAAApM,EAAeoM,EAAA,GAWpCq0C,EAAA50G,GAL8C2nD,GAC5CgtB,EACAtxF,EAAMgjG,kBACNhjG,EAAMwjG,cACN,cACF,GALO8rB,EAAiBiC,EAAA,GAAA03D,EAAkB13D,EAAA,GAUpC23D,EAAyB,WACvB,IAAApjD,EAAa,SAAC3sI,GAAAA,OEvDnB,SACL+b,EACAgpI,EACAirC,EACAC,GAEA,IAC0EC,EADtEC,EAAqBprC,EAIzB,OAH0B,MAAtBorC,GAA4D,WAA9BjxL,EAAOixL,KACvCA,EAAkF,QAAlFD,EAAsBC,SAAAD,IAA4DA,OAA5DA,EAAAA,EAA4DF,IAE1D,MAAtBG,EAAmC,GAE9B,SAAAC,EAAS5hE,EAAyB6hE,GACzC,IAAI/uL,EAAiC,KAe9B,OAdDktH,EAAApxE,MAAK,SAAC5b,GACV,IAAM8uJ,EAAU,GAAAr4J,OAAAt5B,EAAI0xL,GAAA,CAAY7uJ,EAAKwuJ,KACjC,OAAAxuJ,EAAKwuJ,KAAeG,GACb7uL,EAAA+uL,GACF,MAEL7yL,MAAMoB,QAAQ4iC,EAAKyuJ,MAAkBzuJ,EAAKyuJ,GAAc5yL,QAE3C,QADNiE,EAAA8uL,EAAS5uJ,EAAKyuJ,GAAeK,IAM1C,IACOhvL,CACT,CAEO8uL,CAASr0K,EAAS,KAAO,EAClC,CFwBQw0K,CAAiB1pL,EAAM0E,KAAMvL,EAAOgwL,EAAUhwL,MAAOiwL,EAAajwL,MAAK,EAErEwwL,EAAiC,GACjCZ,EAAgB5vL,QACdxC,MAAMoB,QAAQgxL,EAAgB5vL,QAAU6G,EAAMkjG,SAClCymF,EAAAZ,EAAgB5vL,MAAMywL,QAAQ9jD,GAClCnvI,MAAMoB,QAAQgxL,EAAgB5vL,QAAW6G,EAAMkjG,WAC3CymF,EAAA7jD,EAAWijD,EAAgB5vL,SAG7Cq5B,EAASr5B,MAAQxC,MAAMK,KAAK,IAAImW,IAAIikB,GAAAA,OAAAt5B,EAAI06B,EAASr5B,OAAOrB,EAAG6xL,OAI7DjoJ,EAAAA,MAAMqnJ,cAAiB,SAAA1oI,IAAA,OAAAlF,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAAA,OAAAmjC,EAAAnjC,KAAA,EACf0sK,KAAe,KAAA,EAChB7pL,EAAMkjG,WACDqiC,EAAApsI,MAAQ0vL,EAAS1vL,MAAQ,CAAC0vL,EAAS1vL,MAAMA,OAAS,IAErC+vL,IAAA,KAAA,EAAA,IAAA,MAAA,OAAA5oI,EAAAzC,OAAA,GAAAwC,EACxB,MACD3e,EAAAA,OACE,WAAA,OAAM1hC,EAAM0E,IAAA,GAAAs2C,GAAAG,GAAAmC,MACZ,SAAAwM,IAAA,OAAA3O,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EAAA,OAAA4sC,EAAA5sC,KAAA,EACQ0sK,KAAe,KAAA,EACRC,KAAA,KAAA,EAAA,IAAA,MAAA,OAAA//H,EAAAlM,OAAA,GAAAiM,EACf,KACA,CACEqtB,MAAM,IAMJ,IAAA4yG,EAAepyK,EAAAA,UAAS,WACtBxe,IAAAA,EAAQm2H,EAAgBn2H,OAAS,GACvC,MAAc,KAAVA,EACK,KAEF,SAACwhC,GACF,GAAA99B,EAAWmD,EAAMogC,QAAS,CAC5B,IAAMA,EAAqCpgC,EAAMogC,OAAOrnC,OAAOI,GAAQwhC,GACnE,GAAA7hB,GAAUsnB,GACL,OAAAA,CAEX,CACA,OAAOzF,EAAKj2B,KAAKslL,EAAU7wL,OAAO+5B,QAAQ/5B,IAAU,EAExD,IACM+mG,EAAYvoF,EAAAA,UAAS,WAClB,OAAA8yB,EAAatxC,OAAS6G,EAAMgyB,QACrC,IAEMm+G,EAAmBx4H,EAAAA,UACvB,WAAA,IAAAsyK,EAAA,OAAOp5G,EAAa13E,gBAAS8wL,EAAApB,EAAS1vL,0BAAT8wL,EAAgBxwI,QAAUz5C,EAAM+nB,aAAe2I,EAAav3B,MAAM4uB,WAAA,IAG3FmiK,EAAavyK,EAAAA,UAAS,WAC1B,MAAO,CAAA,GAAAyZ,OAAI1M,EAAYvrB,MAAA,qBAA0B,mBACnD,IAEM+1H,EAAoBv3G,EAAAA,UAAS,WAC1B,MAAA,CACL4Z,MAAO,IACPC,OAAQ,IACRC,MAAO,KACPzxB,EAAMuE,KACV,IAEM4lL,EAAgBxyK,EAAAA,UAAS,WAAA,MAA0B,WAApB3X,EAAMyqH,aAErCp4F,EAAU1a,EAAAA,UAAS,WACvB,OAAI3X,EAAMkjG,SACJinF,EAAchxL,MACTpB,EAAQgxL,EAAgB5vL,OAC1B4vL,EAAgB5vL,MAAiC6L,KAAI,SAACi6B,GAAU,OAAAA,EAAsB9lC,KAAK,IAC5F,GAECpB,EAAQgxL,EAAgB5vL,OAC1B4vL,EAAgB5vL,MAAiC6L,KAAI,SAACi6B,GAAA,OAASA,CAAqB,IACrF,GAEC,EACT,IAEMmrJ,EAAqBzyK,EAAAA,UAAS,WAClC,OACE3X,EAAMkjG,YACJljG,EAAMM,KACRvI,EAAQgxL,EAAgB5vL,QACxB6G,EAAMM,KAAQyoL,EAAgB5vL,MAAiC3C,MAEnE,IAEMwzL,EAAYryK,EAAAA,UAAS,WAAM,IAAA+3G,EAC3B,OAACx2G,GAAQlZ,EAAMyvI,YAAev2H,GAASlZ,EAAMyvI,UAAwBvyI,eAGlE8C,EAAAA,EAAM9C,YAAN8C,WAAAA,EAAAA,EAAYy5C,QAAS,QAFlBz5C,EAAMyvI,UAAwBvyI,KAAKu8C,OAAS,OAGxD,IAEM0vI,EAAYxxK,EAAAA,UAAS,WAAM,IAAAg4G,EAC3B,OAACz2G,GAAQlZ,EAAMyvI,YAAev2H,GAASlZ,EAAMyvI,UAAwBvyI,eAGlE8C,EAAAA,EAAM9C,YAAN8C,WAAAA,EAAAA,EAAY7G,QAAS,QAFlB6G,EAAMyvI,UAAwBvyI,KAAK/D,OAAS,OAGxD,IAEMiwL,EAAezxK,EAAAA,UAAS,WAAM,IAAAi4G,EAC9B,OAAC12G,GAAQlZ,EAAMyvI,YAAev2H,GAASlZ,EAAMyvI,UAAwBvyI,eAGlE8C,EAAAA,EAAM9C,YAAN8C,WAAAA,EAAAA,EAAYk/B,WAAY,WAFrBl/B,EAAMyvI,UAAwBvyI,KAAKgiC,UAAY,UAG3D,IAEA3J,EAAAA,UAAAylB,GAAAG,GAAAmC,MAAU,SAAA2M,IAAA,IAAAogI,EAAA,OAAAlvI,GAAAG,MAAA,SAAA4O,GAAA,cAAAA,EAAAtM,KAAAsM,EAAA/sC,MAAA,KAAA,EACe+rK,KAClBH,EAAgB5vL,OAAS6G,EAAMsG,cAC3BtG,EAAAA,EAAMsG,aAAc,KAAM,WAE/B6jL,EAAchxL,MAChBosI,EAAQpsI,MAAQpB,EAAQgxL,EAAgB5vL,OACnC4vL,EAAgB5vL,MAAiC6L,KAAI,SAACi6B,GAAA,OAAUA,aAAAA,EAAAA,EAAuB9lC,KAAK,IAC7F,SAAAkxL,EAAEtB,EAAgB5vL,0BAAhBkxL,EAAwClxL,OAE7CosI,EAAQpsI,MAA4BpB,EAAQgxL,EAAgB5vL,OACzD4vL,EAAgB5vL,MAChB,CAAC4vL,EAAgB5vL,OAER0wL,KAAA,KAAA,EAAA,IAAA,MAAA,OAAA3/H,EAAArM,OAAA,GAAAoM,EAChB,MAED,IAAM9wB,EAAS,SACbmxJ,EACA3vJ,EACA4pB,GAEAykI,EAAmBsB,EAAY,CAAE3vJ,KAAAA,EAAM4pB,QAAAA,IACxBslI,MAGX3lL,EAAQ,SAAC+kB,GAA+B,IAAAi2F,EACtC54G,EAAgCtG,EAAMkjG,SAAW,GAAK,GAC5DqiC,EAAQpsI,MAAQ,GACTggC,EAAA7yB,EAAc,KAAM,SACX,QAAhBtG,EAAAA,EAAM6uF,eAAU,IAAAqwB,GAAhBl/G,EAAAA,KAAAA,EAAgB,CAAExF,EAAGyuB,EAAQzuB,KAGzB+vL,EAAiB,SACrBD,EACAhgJ,GAEA,IAAI1wB,EAA2B0wK,EAC3BH,EAAchxL,QACNygB,EAAA0wK,EAAWtlL,IAAIwlL,KAEpBrxJ,EAAAvf,EAAS0wB,EAAQ3P,KAAM,UAG1B8vJ,EAAiB,SACrBH,EACAhgJ,GAMA,GAJKtqC,EAAMkjG,UACTpyB,GAAgB,EAAOxmC,IAGrBtqC,EAAMkjG,UAAa54D,EAAQ3P,KAAK4qG,SAIhCwjD,EAAgB5vL,QAAUmxC,EAAQ3P,KAAKj2B,KAAKykL,EAAUhwL,OAA1D,CAGA,IAAIygB,EAA2B0wK,EAC/B,GAAIH,EAAchxL,MAAO,CACvB,IAAM6yF,EAAY9yE,GAAQoxK,GAAc,GAAKA,EAAW,GACxD1wK,EAAU4wK,GAAYx+F,EACxB,MACEpyE,EAAUV,GAAQoxK,GAAc,GAAKA,EAAW,GAE3CnxJ,EAAAvf,EAAS0wB,EAAQ3P,KAAM,SAC9B4qG,EAAQpsI,MAAQmxL,CAThB,GAYII,EAAiB,SAACJ,GACtB93J,EAASr5B,MAAQmxL,GAGbK,EAAe,WACJd,MAGXe,EAAc,SAACzxL,GAA2B,IAAA0xL,EAErBl3D,EAApB9iD,EAAa13E,OAIlB8vL,EAAmB9vL,GACb,QAAN6G,EAAAA,EAAM2qH,gBAAN3qH,IAAM6qL,GAAN7qL,EAAAA,KAAAA,EAAiBjH,OAAOI,KAJhB,QAAN6G,EAAAA,EAAM2qH,gBAAN3qH,IAAM2zH,GAAN3zH,EAAAA,KAAAA,EAAiBjH,OAAOI,KAOtB2xL,GAA+C,SAAC3xL,EAAOmxC,GAAY,IAAA27C,EAC/D1hC,EAAmBja,EAAnBia,QAAStpD,EAAUqvC,EAAVrvC,MACb,CAAC,aAAc,aAAauc,SAAS+sC,IACvCxsD,EAAQgxL,EAAgB5vL,QAAW4vL,EAAgB5vL,MAAiCwL,OAAO1J,EAAO,GAEnF,QAAjB+E,EAAAA,EAAM+9E,gBAAW,IAAAkI,GAAjBjmF,EAAAA,KAAAA,EAAiB,CAAE7G,MAAAA,EAAOuL,KAAM,KAAMlK,EAAG8vC,GAAYA,EAAQ9vC,IACtD2+B,EAAA4vJ,EAAgB5vL,MAAO,KAAMorD,IAGhCulE,GAA2B,SAACv3F,EAAkB+X,GAClDwmC,EAAgBv+C,EAAS+X,GAErB/X,GAA+B,0BAApB+X,EAAQia,SAAqC0kI,EAAmB,KAE3EY,gCAAiB,SAAAtuB,IAAA,OAAApgH,GAAAG,MAAA,SAAAmgH,GAAA,cAAAA,EAAA79G,KAAA69G,EAAAt+I,MAAA,KAAA,EAChBnd,EAAMkjG,SAMAljG,EAAMkjG,SACXnrG,EAAQgxL,EAAgB5vL,OAC1B0vL,EAAS1vL,MAAQ4xL,KAEjBlC,EAAS1vL,MAAQ,GAGnB0vL,EAAS1vL,MAAQ,KAZb4vL,EAAgB5vL,OAAmC,IAA1B4vL,EAAgB5vL,MAC3C0vL,EAAS1vL,MAAQ6xL,KAEjBnC,EAAS1vL,MAAQ,GAUrB,KAAA,EAAA,IAAA,MAAA,OAAAsiK,EAAA59G,OAAA,GAAA09G,EACF,KAAA,OAAA,8CAEMyvB,GAAoB,WACxB,IAAMh/F,EAAYm+F,EAAchxL,MAAS4vL,EAAgB5vL,MAAuBA,MAAQ4vL,EAAgB5vL,MACxG,OAAOqxL,GAAYx+F,IAGf++F,GAAsB,WAC1B,OAAQhC,EAAgB5vL,MAAiC6L,KAAI,SAAC7L,GAC5D,IAAM6yF,EAAYm+F,EAAchxL,MAASA,EAAuBA,MAAQA,EACxE,OAAOqxL,GAAYx+F,EACrB,KAGIw+F,GAAc,SAACtsC,GACnB,GAAI0qC,EAAQzvL,MAAO,CACjB,IAAMwhC,EAAOiuJ,EAAQzvL,MAAM2tL,QAAQ5oC,GACnC,GAAIvjH,EACK,OAAAnE,GAAAA,GACFmE,CAAAA,EAAAA,EAAKj2B,MAAA,GAAA,CACR+0C,MAAO9e,EAAKj2B,KAAKslL,EAAU7wL,OAC3BA,MAAOwhC,EAAKj2B,KAAKykL,EAAUhwL,QAGjC,CACA,IAAMwhC,EAAOswJ,GAAYjrL,EAAM0E,KAAMw5I,GACrC,OAAIvjH,GAGG,CACL8e,MAAOykG,EACP/kJ,MAAO+kJ,IAIL+sC,GAAc,SAACvmL,EAA6Bw5I,GAChD,IAAA,IAASznJ,EAAI,EAAGF,EAAMmO,EAAKlO,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAMwoC,EAAOv6B,EAAKjO,GACd,GAAAwoC,EAAKkqJ,EAAUhwL,SAAW+kJ,EACrB,OAAA1nH,GAAAA,GAAA,CAAA,EACFyI,GAAA,CAAA,EAAA,CACHwa,MAAOxa,EAAK+qJ,EAAU7wL,OACtBA,MAAO8lC,EAAKkqJ,EAAUhwL,SAGtB,GAAA8lC,SAAAA,EAAOmqJ,EAAajwL,OAAQ,CAC9B,IAAMsB,EAASwwL,GAAYhsJ,aAAO,EAAPA,EAAOmqJ,EAAajwL,OAAQ+kJ,GACnD,IAAC7kI,GAAM5e,GACF,OAAAA,CAEX,CACF,CACO,OAAA,MAGHqvL,GAAe,WACnBhB,EAAQ3vL,OAAS,GAmDZ,OAJAunD,EAAA,CACLkoI,QAAAA,IAGK,WAAA,OAAAhyJ,EAAAO,YAAA0tF,GAAAtgF,aAAA,CAAA1N,MAAA,GAAAzF,OAEO1M,EAAYvrB,MAAA,gBAAAA,MACf0vL,EAAS1vL,MAChBm4F,WAAYzgB,EAAa13E,MAAQm2H,EAAgBn2H,MAAQ,GAAAouF,aAC3C1W,EAAa13E,MAC3B64B,SAAUkuE,EAAU/mG,MAAA+pG,SACVljG,EAAMkjG,SAChBpxE,QAAS9xB,EAAM8xB,QAAAq8D,UACJnuF,EAAMmuF,UAAAH,UACNhuF,EAAMguF,UACjBE,WAAYluF,EAAMkuF,WAAAK,SACR4R,EAAWhnG,MACrB4uB,YAAaooH,EAAiBh3I,MAAA2pG,WAClB9iG,EAAMsmB,YAAczpB,EAAWmD,EAAMogC,QAAM6iE,gBACtCjjG,EAAMijG,gBACvB,kBAAiBjjG,EAAM+iG,eAAA56B,WAAA3xC,GAAA,CAErB8xC,iBAAkB4hH,EAAW/wL,OACzB6G,EAAMmoE,YAAAywB,WAAApiE,GAAA,CAGVjyB,KAAMvE,EAAMuE,MACRvE,EAAM44F,YAAAyK,cAEG,CACb9+F,KAAMvE,EAAMuE,mBAGZisE,SAAU,KACNxwE,EAAMsjG,UAAA7pD,MAEL,WAAA,OAAM5Z,EAAe,sBACpB7/B,EAAM+3B,OACdwY,WAAY,WACNvwC,OAAAA,EAAMuwC,YAAcpQ,EAAMoQ,WACrB1Q,EAAe,cAnDxBjJ,EAAAA,YAAAowD,GAAA,CAAA7I,SAEQtN,EAAa13E,MACvB64B,SAAUhyB,EAAMgyB,SAAAs2C,iBAAArvE,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEV1M,EAAYvrB,MAAgC03E,0BAAAA,EAAa13E,OAAA,GAAAi4B,OACzD1M,EAAYvrB,MAAA,wBAA8B6G,EAAMgyB,WAAA,eAkD7C9tB,EAAA0qF,OACD,SAAC3vE,EAAQqrB,GAAY,IAAAi1E,UAC3Bv/G,EAAAA,EAAM4uF,qBAAN5uF,EAAAA,KAAAA,EAAe,CAAE7G,MAAO4vL,EAAgB5vL,MAAOqB,EAAG8vC,EAAQ9vC,GAE5D,EAAAw0F,QAAS,SAAC/vE,EAAQqrB,GAA+B,IAAA+0E,UAC/Cr/G,EAAAA,EAAMgvF,sBAANhvF,EAAAA,KAAAA,EAAgB,CAAE7G,MAAO4vL,EAAgB5vL,MAAOqB,EAAG8vC,EAAQ9vC,GAE7D,EAAA+oG,aAAc,WAAA,OACZ1jE,EAAe,eAAgB,CAC7BR,OAAQr/B,EAAMkjG,SACV,CACE/pG,MAAO0vL,EAAS1vL,MAChB8yD,QAAS,SAAChxD,GACR,IAAM9B,EAAQ0vL,EAAS1vL,MAAM6L,KAAI,SAAC21B,GAAA,OAAyBA,EAAKxhC,SAChE2xL,GAAU3xL,EAAO,CACforD,QAAS,aACTtpD,MAAAA,EACAgkC,KAAM9lC,EAAM8B,IAEhB,GAEF,CACE9B,MAAO0vL,EAAS1vL,OAAAF,EAAAA,EAAY+wL,CAAAA,EAAAA,EAAU7wL,MAAQ,IAAKgwL,EAAUhwL,WAAQ,qBA4BhEyxL,EACflnF,YAAaonF,wBACShhE,IACjB9pH,EAAMwqH,kBA3BF,CACPzyF,OAAQoI,EAAMpI,OACd8lD,MAAO,WAAA,OAAAjnD,EAAAA,YAAA,MAAA,CAAAC,MAEI,IAAAzF,OACF1M,EAAYvrB,MAAAi4B,2BAAAA,GAAAA,OACZ1M,EAAYvrB,MAAA,kCAAAi4B,OAAsC89F,EAAkB/1H,SACzE,CAEC0mC,EAAe,mBAAiBmvC,EAAAA,eAAAp4C,EAAAA,YAAA,IAAA,CAAAC,MAGxB,CAAA,GAAAzF,OAAI1M,EAAYvrB,MAA6B,wBAAA,GAAAi4B,OAAG1M,EAAYvrB,MAAmC,kCAErGs1H,CAAAA,EAAmB,cAAe,CACjC7vF,YAAAhI,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAA4B1M,EAAYvrB,MAAwB,mBAAA,CAAAu3B,EAAav3B,MAAM2uB,4BAJ7E9nB,EAAM8xB,UAAYouE,EAAU/mG,SA9H7B61E,iBAAAp4C,EAAAA,YAAAsxJ,GAAA3jJ,aAAA,CAAArU,IAEV04J,EAAApwL,IAEAswL,EAAQ3vL,cACFk5B,EAAQl5B,OAAKk3C,OAAA,EAAAnzC,KAElB8C,EAAM9C,KACZwH,KAAM1E,EAAM0E,KAAAgiI,WACA1mI,EAAMkjG,SAAAyjC,UACP3mI,EAAMkjG,SAAAlxE,SACPkuE,EAAU/mG,OAASixL,EAAmBjxL,MAChDoL,KAAMvE,EAAMuE,KACZ67B,OAAQ2pJ,EAAa5wL,MAAAgsB,MACd4kK,EAAa5wL,MAAAosI,QACXA,EAAQpsI,MAAAq5B,SACPA,EAASr5B,MACnBgyI,eAAgBnrI,EAAMkjG,SAAA56C,SACZiiI,EACV9F,SAAUgG,EACV9uG,SAAU+uG,EACV1+C,OAAQ2+C,EACR1L,mBAAmB,GAOdj/K,EAAMyvI,WANF,CACPxoH,MAAO,WAAP,OACEwnG,EAAmB,QAAS,CAC1B7vF,YAAAhI,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAA4B1M,EAAYvrB,MAAwB,mBAAA,CAAAu3B,EAAav3B,MAAM8tB,SACpF,MACLmoD,EAAAub,OAzBS3qF,EAAM8xB,WAmIR+N,EAAe,uBAhBjB,EAmBHkjE,eAAgB5iE,EAAM4iE,iBAQ9B,IGlfWmoF,GAAavkJ,GAAYgiJ,ICGvBwC,GAAA,CAEbj9F,WAAYpsD,QAEZqsD,UAAWrsD,QAEXspJ,WAAY,CACVtvL,KAAMnF,MACNwsB,QAAS,WAAA,MAAwC,CAAC,aAAc,kBAAiB,GAGnF6O,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXkoK,YAAavpJ,QAEbwpJ,uBAAwB,CACtBxvL,KAAMgmC,QACN3e,SAAS,GAGXjB,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,OAAQ,OAAOjnB,SAASinB,EAC9F,GAGFm6D,WAAY,CACV98F,KAAMxE,QAGR6wE,WAAY,CACVrsE,KAAMxE,QAGRi0L,aAAc,CACZzvL,KAAMnF,MACNwsB,aAAS,GAGXqoK,oBAAqB,CACnB1vL,KAAMnF,MACNwsB,QAAS,WAAT,MAA0D,EAAC,GAG7DqnG,iBAAkB,CAChB1uH,KAAMxE,QAGRm0L,wBAAyB,CACvB3vL,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFitJ,aAAc,CACZ5vL,KAAMnF,MACNwsB,aAAS,GAGXhqB,MAAO,CACL2C,KAAM/C,OACNoqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM/C,OACNoqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM/C,OACNoqB,QAAS,IAGXmlC,SAAUxuD,SAEV+0F,QAAS/0F,SAET6xL,mBAAoB7xL,SAEpB8xL,qBAAsB9xL,UCnClB+xL,GAAkB,0CAElBzvL,GAAW,SAACu4B,GAAgB,OAAAt0B,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAK5Y,SAASw4B,EAAK,KAAI,EAOjEm3J,GAAmB,SAACrzL,GAC3B,GAAA,QAAQZ,KAAKY,GAAQ,CACvB,IACMoN,EADMpN,EAAMmD,QAAQ,MAAO,IACfiK,MAAMgmL,IAKlBE,EAzCc,SAAC79E,EAAciE,EAAiB6D,EAAgB5I,GACtE,IAAI5vF,EAAI0wF,EAAO,IACXjwF,EAAIk0F,EAAU,IACdv0F,EAAIo4F,EAAS,IACXnzF,EAAIuqF,EAAQ,IAMdvwF,EAAI,GAJJW,EAAAA,GAAK,EAAIqF,GAAKA,GAKd9D,EAAI,GAJJd,EAAAA,GAAK,EAAI4E,GAAKA,GAKd1D,EAAI,GAJJvB,EAAAA,GAAK,EAAIiF,GAAKA,GASX,MAAA,CACLhG,EAJEA,EAAAxc,KAAK2hB,MAAM,IAAMnF,GAKnBkC,EAJEA,EAAA1e,KAAK2hB,MAAM,IAAMjD,GAKnBI,EAJEA,EAAA9e,KAAK2hB,MAAM,IAAM7C,GAMvB,CAmBwB6sK,CAJV5vL,GAASyJ,EAAM,IACfzJ,GAASyJ,EAAM,IACfzJ,GAASyJ,EAAM,IACfzJ,GAASyJ,EAAM,KACjBgX,IAAAA,EAAGkC,EAAGgtK,EAAHhtK,EAAGI,EAAA4sK,EAAA5sK,EACP,MAAAiS,OAAAA,OAAOvU,eAAMkC,EAAM,MAAAqS,OAAAjS,EAAA,IAC5B,CACO,OAAA1mB,CACT,EC/EawzL,GAAc,CACzBC,WAAY,cACZ,kBAAmB,iBAORC,GAA0B,wEAG1BC,GAA+B,CAC1C,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAMWC,GAAU,CACrB,MACA,MACA,MACA,MACA,OACA,OAMWC,GAAmB,CAC9BC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QAMMC,GAAkE,CAC7EH,IAAK,CACH,CACEh0L,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,gBAGV4wL,IAAK,CACH,CACEl0L,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,gBAGV2wL,IAAK,CACH,CACEj0L,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,gBAGV8wL,KAAM,CACJ,CACEp0L,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,eAER,CACEtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACLxE,KAAM,gBAGV+wL,IAAK,CACH,CACEr0L,IAAK,MACLsD,KAAM,QACN22C,KAAM,IAGV85I,IAAK,CACH,CACE/zL,IAAK,MACLsD,KAAM,QACN22C,KAAM,KL7KNq6I,GAAgB,SAACC,EAAiCC,GAEtD,IADA,IAAI3uL,EAAS,GACJ5H,EAAI,EAAGA,EAAIs2L,EAAWv2L,OAAQC,IACjC2hB,GAAS20K,EAAWt2L,IACtB4H,GAAU0uL,EAAWt2L,GAErB4H,GAAW0uL,EAAWt2L,GAAc4H,OAGjC,OAAA,IAAIX,OAAOW,EAAQ2uL,EAC5B,EAiJMC,IAhHE5E,GAAS,UAMbC,GAAS,kCAITC,GAASuE,GACP,CAAC,MAVa,+BAUK,IAAK,cATX,yCASoC,IAAK,gBAP7C,sDAOwE,IAHxE,qBAGuF,KAChG,IAEEtE,GAAasE,GAAc,CAACvE,GAAQ,UAAWD,GAAQ,UAAWA,GAAQ,QAAS,IAEvFG,GAAiBqE,GAAc,CAAC,MAAOtE,GAAYH,GAAQ,KAAMG,IAAa,IAE9EE,GAAeoE,GAAc,CAAC,OArBjB,0CAqBiC,KAnBrB,wEAmB+C,KAAM,IASzE,CACLI,eARkBJ,GAAc,CAAC,OAAQpE,GAAc,IAAKL,GAAQ,MAAOI,GAAgB,KAxBzE,MAiClB0E,gBAPmBL,GACjB,CAAC,QAASvE,GAAQ,IAAK,UAAW,IAAKD,GAAQ,MAAO,MAAOD,GAAQ,UA3BrD,QAqHhB+E,GAAe,8CAORC,GAAkB,SAAC50L,GAEvB,OADP20L,GAAap+K,UAAY,EAClBo+K,GAAanwL,KAAKxE,EAC3B,EAGM60L,GAAsB,CAC1BhwJ,IAAK,EACLG,MAAO,GACPD,OAAQ,IACRD,KAAM,IACN,WAAY,IACZ,WAAY,IACZ,YAAa,GACb,YAAa,GACb,cAAe,IACf,cAAe,IACf,eAAgB,IAChB,eAAgB,KAQLgwJ,GAAsB,SAAC90L,GAC5B,IAAAoN,EAAQwnL,GAAgB50L,GAC9B,IAAKoN,EAAc,OAAA,EAEnB,IAAM2nL,EAAiC,CACrCC,OAAQ,GACRC,OAAQ,GAGJjzL,EA/Gc,SAACkzL,EAAsBl1L,GACvC,IAAAgC,EACAmzL,EACAC,EAGJF,EAAUT,eAAel+K,UAAY,EAErC,IAAM8+K,EAAgBH,EAAUT,eAAejwL,KAAKxE,GAChD,IAAC6gB,GAAOw0K,GA2BH,IA1BErzL,EAAA,CACPszL,SAAUD,EAAc,GACxBE,cAAe,IAIbF,EAAc,KAEhBrzL,EAAOkmL,KAAOmN,EAAc,IAG1BA,EAAc,KAEhBrzL,EAAOwzL,MAAQH,EAAc,IAG3BA,EAAc,KAEhBrzL,EAAOyzL,WAAaJ,EAAc,IAIpCH,EAAUR,gBAAgBn+K,UAAY,EAGtC4+K,EAAiBD,EAAUR,gBAAgBlwL,KAAK6wL,EAAc,KACtDx0K,GAAOs0K,IACAC,EAAA,CACXr6J,MAAOo6J,EAAe,IAIpBA,EAAe,KAEjBC,EAAW1kJ,SAAWykJ,EAAe,IAEhCnzL,EAAAuzL,cAAc5qL,KAAKyqL,GAG1BD,EAAiBD,EAAUR,gBAAgBlwL,KAAK6wL,EAAc,IAK3D,OAAArzL,CACT,CAwDsC0zL,CAAclB,GAAYpnL,EAAM,IACpE,GAAIpL,EAAOszL,SAAS1mH,SAAWxhE,EAAM,GAAGwhE,OAAe,OAAA,EAEjD,IAAAomH,EAA+BhzL,EAAOuzL,cAAchpL,KACxD,SAAAu9B,EAAsBtnC,EAAOF,GAAU,IAApCy4B,EAAA+O,EAAA/O,MAAO2V,EAAS5G,EAAT4G,SACF88H,EAAe3uK,OAAA2G,OAAO,MAC5BgoK,EAAMzyI,MAAQ46J,GAAU56J,GAAOi2E,cAE3B,IAAAlsE,EAAOvJ,WAAWmV,GAMf,OALHnwC,OAAOmkD,MAAM5f,KACPA,EAAAtiC,GAASF,EAAMvE,OAAS,GAAM,KAGxCyvK,EAAM1oI,KAAOA,EACN0oI,CACT,IAEFunB,EAAeC,OAASA,EAExB,IAAIC,EAASvxL,SAAS1B,EAAOwzL,MAAO,IAQ7B,OAPHj1L,OAAOmkD,MAAMuwI,KAGNA,EAAAJ,GAAoB7yL,EAAOyzL,aAAmD,KAEzFV,EAAeE,OAASA,EAEjBF,CACT,qkBMzMA,IAAMa,GAAYhuL,KAAK2hB,MACjBssK,GAAW,SAACC,GAAA,OAAqDH,GAAUG,GAAQhnF,OAAM,EASlFinF,GAAwB,SAAC3wL,GAC9B,IAAE4vL,EAAmB5vL,EAAnB4vL,OAAQC,EAAW7vL,EAAX6vL,OACVe,EAAahB,EAChB15J,MAAK,SAAC26J,EAAIC,GAAO,OAAAD,EAAGnxJ,KAAOoxJ,EAAGpxJ,IAAI,IAClCv4B,KAAI,SAAC0Z,GAAA,MAAA,GAAA0S,OAAS1S,EAAE8U,MAAS,KAAApC,OAAA/wB,KAAK2hB,MAAe,IAATtD,EAAE6e,MAAc,IAAM,IAAA,IAE7D,MAAAnM,mBAAAA,OAA0Bs8J,EAAAt8J,QAAAA,OAAaq9J,EAAWpmL,KAAK,KAAG,IAC5D,EAkBaumL,GAAmB,SAACrxJ,EAAc/J,EAAe0E,GAAqC,MAAA,CACjGA,GAAIA,IATsB,EAAoB,WAAhB73B,KAAKmrG,UAAuBh0G,SAAS,IAUnE+lC,KAAAA,EACA/J,MAAAA,EACF,EAEaq7J,GAAM,WAqBjB,OAAAjzG,IAFA,SAAAizG,EAAYp2L,GAAegsD,QAAAoqI,GAAA51L,EAlBL4H,KAAA,SAAA,CACpB0c,EAAG,IACHW,EAAG,IACHT,EAAG,IACHR,EAAG,IACLhkB,EAAA4H,KAAA,mBAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAMiC4H,KAAA,iBAAA,CAC/BiuL,OAAQ,GACRpB,OAAQ,EACRqB,WAAY,KACZ16H,IAAK,KAILxzD,KAAKiiE,OAAOrqE,EACd,GAAA,CAAA,CAAAD,IAAA,SAAAW,MAEA,SAAOV,GAAe,IAAA+rD,EAAA3jD,KACpB,GAAIpI,IAAUoI,KAAKmuL,YAAnB,CACM,IAAAxB,EAAiBD,GAAoB90L,GAEvC,GAAAoI,KAAKouL,aAAezB,EAAgB,CAOtC,IAAM0B,EAAWd,GAAU31L,GAAO2vG,QAGlC,OAFAvnG,KAAK0tL,OAASW,OACdruL,KAAKsuL,4BAEP,CACAtuL,KAAKmuL,YAAcv2L,EACnBoI,KAAKouL,YAAa,EAClB,IAAIG,EAAa32L,EACjB,GAAI+0L,EAAgB,CAAA,IAAA6B,EAAAC,EAClBzuL,KAAKouL,YAAa,EAClB,IAAMpxL,EAAS2vL,EACTC,EAAS5vL,EAAO4vL,OAAOzoL,KAAI,SAACwY,EAAGviB,GAAU,IAAAs0L,EAAA,OAAAX,GAAiBpxK,EAAE+f,KAAM/f,EAAEgW,MAAkC+7J,QAA3BA,EAAA/qI,EAAKgrI,eAAeV,OAAO7zL,UAA3Bs0L,IAA2BA,OAA3BA,EAAAA,EAAmCr3J,OACpHr3B,KAAK2uL,eAAiB,CACpBV,OAAQrB,EACRC,OAAQ7vL,EAAO6vL,OACfqB,WAAYluL,KAAK2uL,eAAeT,qBAAcM,EAAA5B,EAAO,uBAAP4B,EAAWn3J,KAAM,MAE5Dr3B,KAAA2uL,eAAen7H,IAAMxzD,KAAK4uL,eAC/BL,EAAyC,QAAzCE,EAAazuL,KAAK6uL,6BAAuB,IAAAJ,OAAA,EAA5BA,EAA4B97J,KAC3C,CAEA3yB,KAAK8uL,aAAaP,EA/Bc,CAgClC,GAAA,CAAA52L,IAAA,aAAAiM,IAEA,WACE,OAAO5D,KAAK0tL,OAAOhxK,CACrB,EAAAnZ,IAEA,SAAejL,GACR0H,KAAA0tL,OAAOhxK,EAAIld,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAK5b,IAC1C0H,KAAKsuL,4BACP,GAAA,CAAA32L,IAAA,QAAAiM,IAEA,WACE,OAAO5D,KAAK0tL,OAAOrwK,CACrB,EAAA9Z,IAEA,SAAUjL,GACH0H,KAAA0tL,OAAOrwK,EAAI7d,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAK5b,IAC1C0H,KAAKsuL,4BACP,GAAA,CAAA32L,IAAA,MAAAiM,IAEA,WACE,OAAO5D,KAAK0tL,OAAO9wK,CACrB,EAAArZ,IAEA,SAAQjL,GACD0H,KAAA0tL,OAAO9wK,EAAIpd,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAK5b,IAC1C0H,KAAKsuL,4BACP,GAAA,CAAA32L,IAAA,QAAAiM,IAEA,WACE,OAAO5D,KAAK0tL,OAAOtxK,CACrB,EAAA7Y,IAEA,SAAUjL,GACR0H,KAAK0tL,OAAOtxK,EAAI5c,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,EAAG1U,KAAK2hB,MAAc,IAAR7oB,GAAe,MAClE0H,KAAKsuL,4BACP,GAAA,CAAA32L,IAAA,MAAAiM,IAEA,WACE,IAAAmrL,EAAoBtB,GAASztL,KAAK0tL,QAA1B1xK,EAAG+yK,EAAH/yK,EAAGkC,EAAA6wK,EAAA7wK,EAAGI,IAAAA,EACP,MAAA,OAAAiS,OAAOi9J,GAAUxxK,SAACuU,OAAMi9J,GAAUtvK,GAACqS,MAAAA,OAAMi9J,GAAUlvK,GAAC,IAC7D,GAAA,CAAA3mB,IAAA,OAAAiM,IAEA,WACQ,IAAAorL,EAEFvB,GAASztL,KAAK0tL,QADhB1xK,EAAAgzK,EAAAhzK,EAAGkC,EAAA8wK,EAAA9wK,EAAGI,EAAA0wK,EAAA1wK,EAAGlC,EAAA4yK,EAAA5yK,EAEJ,MAAAmU,QAAAA,OAAQi9J,GAAUxxK,GAAC,MAAAuU,OAAMi9J,GAAUtvK,GAAC,MAAAqS,OAAMi9J,GAAUlvK,GAAO,MAAAiS,OAAAnU,EAAA,IACpE,GAAA,CAAAzkB,IAAA,MAAAiM,IAEA,WACE,IAAAqrL,EAAoBjvL,KAAKkvL,UAAjBtyK,EAAGqyK,EAAHryK,EAAGF,EAAAuyK,EAAAvyK,EAAGW,EAAE4xK,EAAF5xK,EACP,MAAAkT,OAAAA,OAAO3T,eAAMF,EAAO,OAAA6T,OAAAlT,EAAA,KAC7B,GAAA,CAAA1lB,IAAA,OAAAiM,IAEA,WACQ,IAAAurL,EAEFnvL,KAAKkvL,UADPtyK,EAAAuyK,EAAAvyK,EAAGF,EAAAyyK,EAAAzyK,EAAGW,EAAA8xK,EAAA9xK,EAAGjB,EAAA+yK,EAAA/yK,EAEJ,MAAA,QAAAmU,OAAQ3T,EAAM,MAAA2T,OAAA7T,EAAA6T,OAAAA,OAAOlT,EAAOkT,OAAAA,OAAAnU,EAAA,IACrC,GAAA,CAAAzkB,IAAA,MAAAiM,IAEA,WACE,IAAAwrL,EAAoBpvL,KAAKqvL,UAAjBzyK,EAAGwyK,EAAHxyK,EAAGF,EAAA0yK,EAAA1yK,EAAGT,EAAEmzK,EAAFnzK,EACP,MAAAsU,OAAAA,OAAO3T,eAAMF,EAAO,OAAA6T,OAAAtU,EAAA,KAC7B,GAAA,CAAAtkB,IAAA,OAAAiM,IAEA,WACQ,IAAA0rL,EAEFtvL,KAAKqvL,UADPzyK,EAAA0yK,EAAA1yK,EAAGF,EAAA4yK,EAAA5yK,EAAGT,EAAAqzK,EAAArzK,EAAGG,EAAAkzK,EAAAlzK,EAEJ,MAAA,QAAAmU,OAAQ3T,EAAM,MAAA2T,OAAA7T,EAAA6T,OAAAA,OAAOtU,EAAOsU,OAAAA,OAAAnU,EAAA,IACrC,GAAA,CAAAzkB,IAAA,MAAAiM,IAEA,WACE,OAAO2pL,GAAUvtL,KAAK0tL,QAAQnlF,aAChC,GAAA,CAAA5wG,IAAA,OAAAiM,IAEA,WACE,OAAO2pL,GAAUvtL,KAAK0tL,QAAQ/kF,cAChC,GAAA,CAAAhxG,IAAA,OAAAiM,IAEA,WACQ,IAAA2rL,EAEFvvL,KAAKwvL,UADP7yK,EAAA4yK,EAAA5yK,EAAGS,EAAAmyK,EAAAnyK,EAAGL,EAAAwyK,EAAAxyK,EAAGiF,EAAAutK,EAAAvtK,EAEJ,MAAA,QAAAuO,OAAQ5T,EAAM,MAAA4T,OAAAnT,EAAAmT,MAAAA,OAAMxT,EAAMwT,MAAAA,OAAAvO,EAAA,IACnC,GAAA,CAAArqB,IAAA,MAAAiM,IAEA,WACE,OAAI5D,KAAKouL,WACApuL,KAAK4uL,eAEP5uL,KAAKyjG,IACd,GAAA,CAAA9rG,IAAA,iBAAAiM,IAEA,WACQ,IAAE+oL,EAAmC3sL,KAAnC2sL,eAAgB8C,EAAmBzvL,KAAnByvL,eACxB,OAAO9B,GAAsB,CAC3Bf,OAAQD,EACRE,OAAQ4C,GAEZ,GAAA,CAAA93L,IAAA,iBAAAiM,IAEA,WACE,OAAO5D,KAAK2uL,eAAeV,MAC7B,EAAA1qL,IAEA,SAAmB0qL,GACjBjuL,KAAK2uL,eAAeV,OAASA,EACxBjuL,KAAA2uL,eAAen7H,IAAMxzD,KAAK4uL,cACjC,GAAA,CAAAj3L,IAAA,qBAAAiM,IAEA,WACE,OAAO5D,KAAK2uL,eAAeT,UAC7B,EAAA3qL,IAEA,SAAuB8zB,GAAY,IAAAq4J,EAC7Br4J,IAAOr3B,KAAK2vL,qBAGhB3vL,KAAK2uL,eAAeT,WAAa72J,EAC5Br3B,KAAA8uL,aAAkB,QAAlBY,EAAa1vL,KAAK6uL,6BAAA,IAAAa,OAAA,EAALA,EAA4B/8J,OAChD,GAAA,CAAAh7B,IAAA,iBAAAiM,IAEA,WACE,OAAO5D,KAAK2uL,eAAe9B,MAC7B,EAAAtpL,IAEA,SAAmBspL,GACZ7sL,KAAA2uL,eAAe9B,OAASrtL,KAAKC,IAAI,EAAGD,KAAK0U,IAAI,IAAK24K,IAClD7sL,KAAA2uL,eAAen7H,IAAMxzD,KAAK4uL,cACjC,GAAA,CAAAj3L,IAAA,wBAAAiM,IAEA,WACQ,IAAE+oL,EAAuC3sL,KAAvC2sL,eAAgBgD,EAAuB3vL,KAAvB2vL,mBACxB,OAAOhD,EAAen9H,MAAK,SAAC78B,GAAU,OAAAA,EAAM0E,KAAOs4J,IACrD,GAAA,CAAAh4L,IAAA,qBAAAW,MAEA,WACS,MAAA,CACLozL,IAAK1rL,KAAK6lG,IACVkmF,KAAM/rL,KAAK4vL,KACXjE,IAAK3rL,KAAKojG,IACVysF,KAAM7vL,KAAKyjG,KACXmoF,IAAK5rL,KAAK0jG,IACVosF,KAAM9vL,KAAK2jG,KACXkoF,IAAK7rL,KAAK4jG,IACVmsF,KAAM/vL,KAAK6jG,KACXmoF,IAAKhsL,KAAKwzD,IACVw8H,KAAMhwL,KAAK8jG,KAEf,GAAA,CAAAnsG,IAAA,oBAAAW,MAEA,SAAkB+oB,EAAqBmpK,GACrC,GAAIxqL,KAAKouL,WAAY,OAAOpuL,KAAK4uL,eACjC,IAAMqB,EACJzF,GAAenpK,KAAUoqK,GACrBA,GAAiBpqK,GACjBA,EAEC,OAAArhB,KAAKkwL,qBAAqBD,EACnC,GAAA,CAAAt4L,IAAA,6BAAAW,MAEA,WACE,IAAQ81L,EAAmDpuL,KAAnDouL,WAAYzB,EAAuC3sL,KAAvC2sL,eAAgBgD,EAAuB3vL,KAAvB2vL,mBAC5Bh6L,EAAWg3L,EAAXh3L,OACFojB,EAAU/Y,KAAK6uL,sBACrB,IAAKT,GAAyB,IAAXz4L,IAAiBojB,EAC3B,OAAA,EAET,IAAM3e,EAAQuyL,EAAeptD,WAAU,SAAC5sG,GAAU,OAAAA,EAAM0E,KAAOs4J,KACzDplF,EAAW50E,GAAAA,MACZ5c,GAAA,GAAA,CACH4Z,MAAO3yB,KAAKyjG,OAIP,OAFQkpF,EAAA7oL,OAAO1J,EAAO,EAAGmwG,GAC3BvqG,KAAA2sL,eAAiBA,EAAe91L,QAC9BmJ,IACT,GAAA,CAAArI,IAAA,eAAAW,MAEA,SAAaV,GACX,IACMisG,EADQ0pF,GAAUtC,GAAiBrzL,IACtB2vG,QACnBvnG,KAAK0tL,OAAS7pF,CAChB,GAAA,CAAAlsG,IAAA,UAAAW,MAEA,WACQ,IAAA63L,EAEF1C,GAASztL,KAAK0tL,QADhB1xK,EAAAm0K,EAAAn0K,EAAGkC,EAAAiyK,EAAAjyK,EAAGI,EAAA6xK,EAAA7xK,EAAGlC,EAAA+zK,EAAA/zK,EAEJ,MAAA,CACLJ,EAAGwxK,GAAUxxK,GACbkC,EAAGsvK,GAAUtvK,GACbI,EAAGkvK,GAAUlvK,GACblC,EAAAA,EAEJ,GAAA,CAAAzkB,IAAA,UAAAW,MAEA,WACE,IAAA83L,EAAoBpwL,KAAKqwL,UACnBC,EF1Uc,SAAC78E,EAAalE,EAAe9C,GACnD,IAAI8jF,EAAY,EACZC,EAAY,EACZC,EAAY,EAGVz0K,EAAI1gB,SAAS,GAAAi1B,OAAGkjF,GAAM14G,QAAQ,MAAO,IAAK,IAC1CmjB,EAAI5iB,SAAS,GAAAi1B,OAAGg/E,GAAQx0G,QAAQ,MAAO,IAAK,IAC5CujB,EAAIhjB,SAAS,GAAAi1B,OAAGk8E,GAAO1xG,QAAQ,MAAO,IAAK,IAEjD,GAAU,IAANihB,GAAiB,IAANkC,GAAiB,IAANI,EAExB,MAAO,CAAC,EAAG,EAAG,EAAG,GAGnBiyK,EAAY,EAAIv0K,EAAI,IACpBw0K,EAAY,EAAItyK,EAAI,IACpBuyK,EAAY,EAAInyK,EAAI,IAEd,IAAAoyK,EAASlxL,KAAK0U,IAAIq8K,EAAW/wL,KAAK0U,IAAIs8K,EAAWC,IAMvD,MAAO,CALMF,GAAAA,EAAYG,IAAW,EAAIA,GAC3BF,GAAAA,EAAYE,IAAW,EAAIA,GAC3BD,GAAAA,EAAYC,IAAW,EAAIA,GAC5BA,EAGd,CEgTyBC,CADVP,EAAHp0K,EAAGo0K,EAAAlyK,EAAKkyK,EAAF9xK,GACuBsyK,EAAA90K,GAAAw0K,EAAA,GAA9B3zK,OAAGS,EAAGwzK,EAAA,GAAA7zK,EAAA6zK,EAAA,GAAG5uK,EAAC4uK,EAAA,GACV,MAAA,CACLj0K,EAAG6wK,GAAc,IAAJ7wK,GACbS,EAAGowK,GAAc,IAAJpwK,GACbL,EAAGywK,GAAc,IAAJzwK,GACbiF,EAAGwrK,GAAc,IAAJxrK,GAEjB,GAAA,CAAArqB,IAAA,UAAAW,MAEA,WACM,IAAAu4L,EAlT+DtD,GAoTtDvtL,KAAK0tL,QApTmEnmF,QAmTnF3qF,EAAAi0K,EAAAj0K,EAAGF,EAAAm0K,EAAAn0K,EAAGW,EAAAwzK,EAAAxzK,EAAGjB,EAAAy0K,EAAAz0K,EAMJ,MAAA,CACLQ,EALFA,EAAI4wK,GAAU5wK,GAMZF,EALEA,EAAA8wK,GAAc,IAAJ9wK,GAMZW,EALEA,EAAAmwK,GAAc,IAAJnwK,GAMZjB,EALGA,GAAA,EAOP,GAAA,CAAAzkB,IAAA,UAAAW,MAEA,WACM,IAAAw4L,EAjU+DvD,GAmUtDvtL,KAAK0tL,QAnUmEvnF,QAkUnFvpF,EAAAk0K,EAAAl0K,EAAGF,EAAAo0K,EAAAp0K,EAAGT,EAAA60K,EAAA70K,EAAGG,EAAA00K,EAAA10K,EAMJ,MAAA,CACLQ,EALFA,EAAI4wK,GAAU5wK,GAMZF,EALEA,EAAA8wK,GAAc,IAAJ9wK,GAMZT,EALEA,EAAAuxK,GAAc,IAAJvxK,GAMZG,EALGA,GAAA,EAOP,GAAA,CAAAzkB,IAAA,SAAAW,MAOA,SAAOq6B,GACL,OAAO46J,GAAU/iF,OAAOxqG,KAAKyjG,KAAM9wE,EACrC,IAAA,CAAA,CAAAh7B,IAAA,UAAAW,MAOA,SAAeq6B,GACT,QAAA+5J,GAAoB/5J,IAGjB46J,GAAU56J,GAAOtS,SAC1B,GAAA,CAAA1oB,IAAA,aAAAW,MAEA,SAAkBskB,EAAWF,EAAWW,EAAWjB,GACjD,OAAOmxK,GAAU,CACf3wK,EAAAA,EAAGF,EAAAA,EAAGW,EAAAA,EAAGjB,EAAAA,IACRgsF,aACL,GAAA,CAAAzwG,IAAA,aAAAW,MAEA,SAAkBskB,EAAWF,EAAWT,EAAWG,GACjD,OAAOmxK,GAAU,CACf3wK,EAAAA,EAAGF,EAAAA,EAAGT,EAAAA,EAAGG,EAAAA,IACRisF,aACL,GAAA,CAAA1wG,IAAA,aAAAW,MAEA,SAAkB0jB,EAAWkC,EAAWI,EAAWlC,GACjD,OAAOmxK,GAAU,CACfvxK,EAAAA,EAAGkC,EAAAA,EAAGI,EAAAA,EAAGlC,EAAAA,IACRgsF,aACL,GAAA,CAAAzwG,IAAA,YAAAW,MAEA,SAAiButG,EAAazpF,GACtB,IAAAuW,EAAQ46J,GAAU1nF,GAExB,OADAlzE,EAAMw1E,SAAS/rF,GACRuW,EAAM41E,aACf,GAAA,CAAA5wG,IAAA,eAAAW,MAQA,SAAoB0E,EAAaqkB,GAC/B,GAAe,SAAXA,EAAmB,CACf,IACJ1E,EACE3f,EADF2f,EAAGS,EACDpgB,EADCogB,EAAGL,EACJ/f,EADI+f,EAAGiF,EACPhlB,EADOglB,EAEJ,MAAA,QAAAuO,OAAQ5T,EAAM,MAAA4T,OAAAnT,EAAAmT,MAAAA,OAAMxT,EAAMwT,MAAAA,OAAAvO,EAAA,IACnC,CAIA,OAHcurK,GAAUvwL,EAAQ,CAC9BqkB,OAAAA,IAEWunF,aACf,IAAA,CAxWiB,GAwYnBmoF,GAxYa/C,GAAM51L,EAAN41L,GA+Wc,mBAAA,SAACp2L,WAAoB40L,GAAgB50L,EAAK,IAAAo5L,EA/WxDhD,GAAM,WAuXA,SAACvjF,EAAgBC,GAC1B,IAAAumF,EAAmBjD,GAAMxB,gBAAgB/hF,GACzCymF,EAAmBlD,GAAMxB,gBAAgB9hF,GAC/C,GAAIumF,GAAoBC,EAAkB,CAClC,IAAAC,EAAezE,GAAoBjiF,GACnC2mF,EAAe1E,GAAoBhiF,GACrC,SAACymF,IAAiBC,IAECzD,GAAsBwD,KACtBxD,GAAsByD,EAE/C,CACI,OAACH,IAAqBC,GACjB3D,GAAU/iF,OAAOC,EAAQC,EAGpC,IAGF,IAAM2mF,GAA2B,CAC/B,QACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,aACA,QACA,cAQWC,GAAiB,SAAC3+J,GAC7B,IAAKA,EACI,OAAA,KAEH,IAAA4+J,EAAqB96L,OAAA2G,OAAO,MAO3B,OANkBi0L,GAAA5hL,SAAQ,SAAC9X,GAChC45L,EAAY55L,GAAQg7B,EAAiCh7B,EACvD,IACIg7B,EAAMy7J,aACRmD,EAAY3C,eAAiBj8J,EAAMi8J,gBAE9B2C,CACT,o3BCleA,IAAMC,GAAkC,CACtC7xL,MAAO,SAAC8xL,EAAwB74J,GAA2B,EAC3DqiJ,KAAM,SAACwW,EAAwB74J,GAA2B,EAC1DlyB,IAAK,SAAC+qL,EAAwB74J,GAA2B,GAC3D84J,OAAAC,QAEaC,GAAU,WAkBrB,OAAA72G,IATA,SAAA62G,EAAY9/J,EAAiBzd,GAA0BuvC,QAAAguI,GAAAC,QAAAH,IAAAt5L,mBARpC,GAAAA,EAAA4H,KAAA,WAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,eAAA,GASjBA,KAAKijF,IAAMnxD,EACX9xB,KAAKb,MAAQw2B,GAAAA,GAAK67J,CAAAA,EAAAA,IAAoBn9K,GACtCrU,KAAK8xL,QAAU,CACbnyL,MAAOoyL,GAAAL,GAAA1xL,KAAKgyL,IAAWrsI,KAAK3lD,MAC5Bi7K,KAAM8W,GAAAL,GAAA1xL,KAAKiyL,IAAMtsI,KAAK3lD,MACtB0G,IAAKqrL,GAAAL,GAAA1xL,KAAKkyL,IAASvsI,KAAK3lD,OAE1BA,KAAKijF,IAAIvqD,iBAAiB,YAAa14B,KAAK8xL,QAAQnyL,OAAO,EAC7D,GAAA,CAAA,CAAAhI,IAAA,UAAAW,MA0CA,WACE0H,KAAKijF,IAAIjqD,oBAAoB,YAAah5B,KAAK8xL,QAAQnyL,OAAO,GAC9Ds1B,OAAO+D,oBAAoB,YAAah5B,KAAK8xL,QAAQ7W,MAAM,GAC3DhmJ,OAAO+D,oBAAoB,UAAWh5B,KAAK8xL,QAAQprL,KAAK,GACxDuuB,OAAO+D,oBAAoB,cAAeh5B,KAAK8xL,QAAQprL,KAAK,EAC9D,IAAA,CAjEqB,GAkEvB,SAAAsrL,GA9Cap5J,GACL54B,KAAK86G,WAIT7lF,OAAOyD,iBAAiB,YAAa14B,KAAK8xL,QAAQ7W,MAAM,GACxDhmJ,OAAOyD,iBAAiB,UAAW14B,KAAK8xL,QAAQprL,KAAK,GACrDuuB,OAAOyD,iBAAiB,cAAe14B,KAAK8xL,QAAQprL,KAAK,GACzD1G,KAAK86G,UAAW,EAChB96G,KAAKb,MAAMQ,MAAMoyL,GAAAL,GAAA1xL,KAAKmyL,IAAev7L,KAApBoJ,KAAoB44B,GAAQA,GAC/C,CAAA,SAAAq5J,GAEMr5J,GACC54B,KAAK86G,UAGV96G,KAAKb,MAAM87K,KAAK8W,GAAAL,GAAA1xL,KAAKmyL,IAAev7L,KAApBoJ,KAAoB44B,GAAQA,EAC9C,CAAA,SAAAs5J,GAESt5J,GAAuB,IAAA+qB,EAAA3jD,KAC9BoV,YAAW,WACTuuC,EAAKm3D,UAAW,EAChBn3D,EAAKxkD,MAAMuH,IAAIqrL,GAAAL,GAAA/tI,EAAKwuI,IAAev7L,KAApB+sD,EAAoB/qB,GAAQA,KAC1C,GACH3D,OAAO+D,oBAAoB,YAAah5B,KAAK8xL,QAAQ7W,MAAM,GAC3DhmJ,OAAO+D,oBAAoB,UAAWh5B,KAAK8xL,QAAQprL,KAAK,GACxDuuB,OAAO+D,oBAAoB,cAAeh5B,KAAK8xL,QAAQprL,KAAK,EAC9D,CAAA,SAAAyrL,GAEev5J,GACP,IAAA0D,EAAOt8B,KAAKijF,IAAI1mD,wBAChBu4D,EAAal8D,EACb8D,EAAOo4D,EAAWzkB,QAAU/zC,EAAKI,KACjCD,EAAMq4D,EAAWxkB,QAAUh0C,EAAKG,IAC/B,MAAA,CACL1f,EAAGvd,KAAK0U,IAAI1U,KAAKC,IAAI,EAAGg9B,GAAMH,EAAKlG,QACnCzX,EAAGnf,KAAK0U,IAAI1U,KAAKC,IAAI,EAAGi9B,GAAOJ,EAAKnG,OAExC,CCjFW,IAYAi8J,GAAoB,SAACz/J,EAAc13B,GAC9C,MAAa,WAATA,EACK,CACL4wL,IAAKl5J,EAAMu8J,UACXa,KAAMp9J,EAAMu8J,UACZtD,IAAKj5J,EAAM08J,UACXS,KAAMn9J,EAAM08J,UACZ1D,IAAKh5J,EAAM09J,UACXR,KAAMl9J,EAAM09J,UACZtE,KAAMp5J,EAAM68J,UACZxD,IAAK,CACHx4H,IAAK7gC,EAAM6gC,KAEbk4H,IAAK,CACH7lF,IAAKlzE,EAAMkzE,KAEbmqF,KAAM,CACJnqF,IAAKlzE,EAAMmxE,OAMVnxE,EAAMu9J,oBACf,EAcamC,GAAuB,WAG/B,IACCpC,EAHJ5uK,EAAsBnjB,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,MACtBssL,EACGtsL,UAAAvI,OAAAuI,EAAAA,kBAAAlG,EAcH,GAPgBi4L,EADZzF,GACY/zL,OAAO4F,KAAKovL,IAAkBj8H,MAC1C,SAAC73D,GAAA,OAAQA,KAAO8zL,IAAoBA,GAAiB9zL,KAAmC0pB,CAC1F,KAEcA,GAGXyqK,GAAoBmE,GAAkC,MAAO,GAElE,IAAMqC,EAAUr7L,EACV60L,GAAoBmE,IAenB,OAXHzF,GAA0B,SAAXnpK,GACjBixK,EAAQ/vL,KAAK,CACXtH,KAAM,cACNtD,IAAK,IACLuc,IAAK,EACLzU,IAAK,IACL4hB,OAAQ,SAAC/oB,GAAA,MAAAi4B,GAAAA,OAAqBj4B,EAAA,IAAA,EAC9Bs5C,KAAM,OAIH0gJ,CACT,ECpFaC,GAAmB,SAACh5J,GACzB,IAAAi5J,EAAgBliK,GARI,gBASnB,OAAAxZ,EAAAA,UAAS,WAAA,OAAOyiB,EAAY,GAAAhJ,OAAGiiK,EAAcl6L,MAASi4B,KAAAA,OAAAgJ,GAAci5J,EAAcl6L,QAC3F,qkBCN0B,SAAA0sJ,GAAAtoI,GAAA,MAAA,mBAAAA,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,EAAA,CAE1B,IAAA+1K,GAAel+J,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACH48E,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,SAEXowK,YAAa,CACXz3L,KAAMhC,UAER05L,aAAc,CACZ13L,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,KAGJkS,MAAAA,SAAMr1B,GACJ,IAAQ0wB,EAAiBP,GAAU,eAA3BO,aACF2iK,EAAgBD,KAChBK,EAAYvjK,EAAAA,IAAIlwB,EAAM48E,MACtB82G,EAAmB,SAACx1K,GAAcle,OAAAA,EAAMwzL,aAAat1K,EAAC,EAK5D,OAJAwjB,EAAAA,OACE,WAAA,OAAM1hC,EAAM48E,IAAA,IACZ,SAAC1+D,GAAO,OAAAu1K,EAAUt6L,MAAQ+kB,CAAA,IAErB,WAAM,IAAAy0J,EAAAghB,EACP3zL,OAA6B,KAAX,QAAlBA,EAAAA,EAAMorL,kBAAY,IAAAuI,OAAA,EAAlB3zL,EAAkBxJ,QACb,KAGPogC,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAeiiK,EAAcl6L,MAC3B,WAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAeiiK,EAAcl6L,qFACiCs6L,EAAUt6L,MAAA,sBAAA,SAAAqhI,GAAA,OAAVi5D,EAAUt6L,MAAAqhI,CAAA,EAAAlyE,SAAiBorI,GAAA7tC,GAAA8sB,EACpFr7K,OAAO4F,KAAK+uL,IAAajnL,KAAI,SAACxM,GAC7B,IAAA65C,EAAA,OAAAzb,EAAAA,YAAA2rI,GAAA,CAAA/pK,IAAmBA,EAAAW,MAAYX,GAAAqtJ,GAAAxzG,EAC5B4Q,QAAQx+C,IAAIisB,EAAav3B,MAAO8yL,GAAYzzL,KAAgC65C,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,+CAQ7F,ICnDa6qF,GAAA,CAEblrG,SAAU8P,QAEVtO,MAAO,CACL13B,KAAMxE,QAERgxD,SAAU,CACRxsD,KAAMhC,SACNqpB,QAAS,WAAT,OAAe,WAAM,CAAC,ukBCH1B,IAAMywK,GAAwB,CAAC,SAAU,aAEzCC,GAAez+J,kBAAgB,CAC7Bx9B,KAAM,iBACN0qC,cAAc,EACdtiC,MAAOw2B,GAAAA,MACF0mG,IAAA,CAAA,EAAA,CACHouD,uBAAwB,CACtBxvL,KAAMgmC,QACN3e,SAAS,KAGbkS,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAEhB/uH,EADahzC,KAAXQ,OACwB14B,MAC1B26L,EAAY5jK,MAAiB,MAC7B6jK,EAAajvJ,EAAAA,SAAS,CAC1BvH,KAAM,EACNvG,MPwKuC,MOtKnCqkJ,EAAanrJ,OAAa,GAC1B8jK,EAAU9jK,OAAa,GACvBw9J,EAASx9J,EAAAA,IAAIlwB,EAAMwzB,MAAM88J,gBACzBvB,EAAa7+J,EAAAA,IAAIlwB,EAAMwzB,MAAMg9J,oBAC7B1B,EAAS5+J,EAAAA,IAA0Bxf,GAAU1Q,EAAMwzB,MAAMg6J,iBAE/D9rJ,EAAAA,OACE,WAAA,OAAM1hC,EAAMwzB,MAAM88J,cAAA,IAClB,SAACn3L,GAAW,OAAAu0L,EAAOv0L,MAAQA,CAAA,IAE7BuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMwzB,MAAMg9J,kBAAA,IAClB,SAACr3L,GAAW,OAAA41L,EAAW51L,MAAQA,CAAA,IAEjCuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMwzB,MAAMg6J,cAClB,IAAA,SAACr0L,GACQ21L,EAAA31L,MAAQuX,GAAUvX,EAC3B,GACA,CACEg+E,MAAM,IAIV,IAAMkvC,EAAe,SAAC7tH,EAAyCy7L,EAAcC,GACvEl0L,EAAMgyB,UAGVhyB,EAAMsoD,SAAS,CACb9vD,IAAAA,EACAy7L,QAAAA,EACAC,aAAAA,KAIEC,EAAqB,SAACh7L,GACtB6G,EAAMgyB,UAAY74B,IAAU6G,EAAMwzB,MAAM88J,iBAG5C5C,EAAOv0L,MAAQA,EACFktH,EAAA,SAAUltH,GAAO,KAG1Bi7L,EAAyB,SAACj7L,GAC1B6G,EAAMgyB,WAGV+8J,EAAW51L,MAAQA,EACnBktH,EAAa,aAAcltH,KAGvBk7L,EAAqB,SAACl7L,EAA6Bm7L,GACnDt0L,EAAMgyB,WAGV88J,EAAO31L,MAAQA,EACFktH,EAAA,SAAUltH,EAAOm7L,KA2C1BC,EAAa,SAAC/5L,GAClB,GAAK6gL,EAAWliL,QAAS6G,EAAMgyB,SAA/B,CAGM,IAAAuL,EAAO/iC,EAAE02E,QAAU6iH,EAAWx2J,KACpCy2J,EAAQ76L,OAAQ,EAxCY,SAACokC,GACvB,IAAAtiC,EAAQ6zL,EAAO31L,MAAMinI,WAAU,SAAC5iH,GAAM,OAAAA,EAAE0a,KAAO62J,EAAW51L,SAChE,IAAkB,IAAd8B,EAAJ,CAGM,IAAAgrK,EAAQ6oB,EAAO31L,MAAM8B,GAErBu5L,GADCj3J,EAAAl9B,KAAKC,IAAI,EAAGD,KAAK0U,IAAIg/K,EAAW/8J,MAAOuG,KAClBw2J,EAAW/8J,MAAS,IACzC83J,EAAA31L,MAAMwL,OAAO1J,EAAO,EAAG,CAC5Bu4B,MAAOyyI,EAAMzyI,MACb+J,KAAMi3J,EACNt8J,GAAI+tI,EAAM/tI,KAEZm8J,EAAmBvF,EAAO31L,MAT1B,EAqCAs7L,CAAsBl3J,EAHtB,GAOIm3J,EAAY,WACXrZ,EAAWliL,QAGhB8c,YAAW,WACTolK,EAAWliL,OAAQ,IAClB,GACC66L,EAAQ76L,QACSk7L,EAAAvF,EAAO31L,OAAO,GACjC66L,EAAQ76L,OAAQ,GAEX28B,OAAA+D,oBAAoB,YAAa06J,GAAY,GAC7Cz+J,OAAA+D,oBAAoB,UAAW66J,GAAW,GAC1C5+J,OAAA+D,oBAAoB,cAAe66J,GAAW,KAGjDC,EAAc,SAACn6L,GACnB,IAAIwF,EAAMgyB,SAAV,CAGA,IAAMy7J,EAASqB,EAAO31L,MAClB4rK,EAAM0oB,EAAOrtD,WAAU,SAAC5iH,UAAMA,EAAE0a,KAAO62J,EAAW51L,SAC9C3C,EAAWi3L,EAAXj3L,OAER,GAAIo9L,GAAYp8K,SAAShd,EAAEhC,IAAIo8L,sBAAwBp+L,EAAS,GAAKuuK,GAAO,GAAKA,GAAOvuK,EAAS,EAAG,CAC3Fi3L,EAAA9oL,OAAOogK,EAAK,GACd0oB,EAAO1oB,KAEJA,EAAA0oB,EAAO1oB,EAAM,GAAKA,EAAM,EAAI0oB,EAAO1oB,EAAM,GAAKA,EAAM,EAAI,GAEhE,IAAMnrJ,EAAU6zK,EAAO1oB,GACvBsvB,EAAmB5G,GAAQ,GAC3B2G,EAAuBx6K,eAAAA,EAASse,GAClC,CAdA,GAiBI28J,EAAsB,SAACr6L,GAC3B,IAAIwF,EAAMgyB,UAAahyB,EAAMsrL,uBAA7B,CAGI,IAAA/tJ,EAAO/iC,EAAE02E,QAAU6iH,EAAWx2J,KAE5Bi3J,GADCj3J,EAAAl9B,KAAKC,IAAI,EAAGD,KAAK0U,IAAIg/K,EAAW/8J,MAAOuG,KAClBw2J,EAAW/8J,MAAS,IAC1C89J,EAAWlG,GAAiB4F,EAAax0L,EAAMwzB,MAAM8wE,MACpDwqF,EAAA31L,MAAMiK,KAAK0xL,GACCT,EAAAvF,EAAO31L,OAAO,GACjCi7L,EAAuBU,EAAS58J,GAPhC,GAsBF,OAZA3C,EAAAA,WAAU,WACF,IAAA4H,EAAO22J,EAAU36L,MAAMikC,wBAC7B22J,EAAWx2J,KAAOJ,EAAKI,KACZw2J,EAAA/8J,MAAQmG,EAAKnG,OPKe,GOJzC,IAEAwa,EAAAA,iBAAgB,WACP1b,OAAA+D,oBAAoB,YAAa06J,GAAY,GAC7Cz+J,OAAA+D,oBAAoB,UAAW66J,GAAW,GAC1C5+J,OAAA+D,oBAAoB,cAAe66J,GAAW,EACvD,IAEO,WACL,IAAAK,EAA2C/0L,EAAMwzB,MAAzCi8J,EAAAsF,EAAAtF,eAAgBjC,EAAeuH,EAAfvH,eAClBwH,EAAkBxG,GAAsB,CAC5Cf,OAAQD,EACRE,OAAQ,KAEV,OAAA92J,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiBiiK,EAAcl6L,MAAA,eAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACZiiK,EAAcl6L,MAAA,sBAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAElB,CAAAzF,GAAAA,OAAIiiK,EAAcl6L,MAAiBi4B,YAAAA,GAAAA,OAAGiiK,EAAcl6L,MAC3D,eAAAg2F,QAASwlG,EACTjpJ,SAAU,EACVxb,IAAK4jK,GAEL,CAAAl9J,EAAAO,YAAA,KAAA,CAAAN,MAAA,kBAAA0Q,QAEWstJ,QACF,CACLp+J,WAAYu+J,IAGblG,CAAAA,EAAO31L,MAAM6L,KAAI,SAAC+X,GACjB,IAAMwgB,YAAUl9B,KAAK2hB,MAAe,IAATjF,EAAEwgB,MAAc,IAAA,KAEzC,OAAA3G,EAAAA,YAAA,KAAA,CAAAC,MACS,CAAA,GAAAzF,OACFiiK,EAAcl6L,MAAA,WACjB,wBACA41L,EAAW51L,QAAU4jB,EAAEmb,GAAKmsC,EAAiBjyC,OAAS,IACxD55B,IACKukB,EAAEmb,GAAAvP,MAAAyI,GAAAA,OACGrU,EAAEyW,MAASpC,KAAAA,OAAAmM,GAAA1K,MACd,CACLW,MAAOzW,EAAEyW,MACT+J,KAAAA,GACFgK,QACS,SAAC/sC,GAAA,OAAkBA,EAAE24E,iBAAgB,EAAA8kB,YACjC,WAAA,OA/HX,SAAC//D,GACb,IAAAiF,EAAO22J,EAAU36L,MAAMikC,wBAC7B22J,EAAWx2J,KAAOJ,EAAKI,KACZw2J,EAAA/8J,MAAQmG,EAAKnG,OPkFe,IOjFnCqkJ,EAAWliL,OAAS6G,EAAMgyB,WAG9BgiK,EAAQ76L,OAAQ,EAChBkiL,EAAWliL,OAAQ,EACnBi7L,EAAuBl8J,GAEvB47J,EAAU36L,MAAMgsD,QACTrvB,OAAAyD,iBAAiB,YAAag7J,GAAY,GAC1Cz+J,OAAAyD,iBAAiB,UAAWm7J,GAAW,GACvC5+J,OAAAyD,iBAAiB,cAAem7J,GAAW,IAiHfO,CAAYl4K,EAAEmb,GAEjC,GAAA,CAAAtB,EAAAO,YAAA,OAAA,CAAAN,MAAa,CAAC,8BAAA,GAAAzF,OAAkCiiK,EAAcl6L,MAAA,gBAAoB,OAGvF,UACHy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAGWiiK,EAAcl6L,2CAAoCu0L,EAAOv0L,MAAA,QAAAy9B,CAAAA,EAAAO,YAAA+9J,GAAA,CAAA3wL,KAAA,QAAA4pB,MAAA,SAAApZ,IAI/D,EACLzU,IAAK,IACLib,KAAM,SACE,SAACpiB,GAAkB,MAAAi4B,GAAAA,OAAGj4B,sBACrBu0L,EAAOv0L,MAChB,sBAAA,SAAAqhI,GAAA,OADSkzD,EAAOv0L,MAChBqhI,CAAA,EAAA5rC,OAAQulG,UACCA,EAAAniK,SACChyB,EAAMgyB,UAAA,QAAA4E,EAAAA,YAAA,MAAA,CAAAC,MAGR,CAAA,GAAAzF,OAAIiiK,EAAcl6L,MAAA,sBAAA,GAAAi4B,OAA8BiiK,EAAcl6L,sBACxE,CAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,gBAAAhE,MAES,CACL4D,WAAYg5J,IACd,UAMZ,ICvQF0F,GAAe//J,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAOk9H,GACP7nG,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChBgC,EAAWllK,MAAiB,MAC5BmlK,EAAWnlK,MAAiB,MAC5BolK,EAAeplK,MAAe,MAC9BqlK,EAAYzwJ,EAAAA,SAAS,CACzB9N,MR+KwC,IQ9KxCC,OR+KyC,MQ5KrCrE,EAASjb,EAAAA,UAAS,WACtB,IAAAo9K,EAA8B/0L,EAAMwzB,MAA5BgiK,EAAAT,EAAAS,WAAYr8L,EAAM47L,EAAN57L,MACZ69B,EAAkBu+J,EAAlBv+J,MAAOC,EAAWs+J,EAAXt+J,OACTqG,EAAMj9B,KAAK2hB,OAAO,EAAI7oB,GAAS89B,GAC/BsG,EAAOl9B,KAAK2hB,MAAMwzK,EAAax+J,GAC9B,MAAA,CACLxD,MAAOxzB,EAAMwzB,MAAMywE,IACnB1mE,eAASA,EAAA,MACTD,cAAQA,EAAA,MAEZ,IAaMm4J,EAAa,SAACnD,EAAwBgC,GAC1C,IAAIt0L,EAAMgyB,SAAV,CAGA,IAAA0jK,EAfwC,SAACpD,GACnC,IAAEt7J,EAAkBu+J,EAAlBv+J,MAAOC,EAAWs+J,EAAXt+J,OACPzX,EAAS8yK,EAAT9yK,EAAG5B,EAAM00K,EAAN10K,EAGJ,MAAA,CACL43K,WAHiBn1L,KAAK2hB,MAAOxC,EAAIwX,EAAS,KAI1C79B,MAHYkH,KAAK2hB,MAAyB,KAAlB,EAAIpE,EAAIqZ,KAWJ0+J,CAAkCrD,GAAxDkD,EAAAE,EAAAF,WAAYr8L,EAAMu8L,EAANv8L,MACpB6G,EAAMsoD,SAAS,CACbktI,WAAYA,EAAa,IACzBr8L,MAAOA,EAAQ,IACf+6L,aAAcI,GALhB,GASIpY,EAAgB,SAACoW,GACjBtyL,EAAMgyB,UAGVwD,EAAAA,UAAS,WACPigK,EAAWnD,GAAY,EACzB,KAGIsD,EAAkBj+K,EAAAA,UAAS,WACxB,MAAA,OAAAyZ,OAAOpxB,EAAMwzB,MAAMk0E,IAAA,eAC5B,IAqBA,OAnBAnyE,EAAAA,WAAU,WACEggK,EAAAv+J,MAAQo+J,EAASj8L,MAAM8vC,aR0HO,IQzH9BssJ,EAAAt+J,OAASm+J,EAASj8L,MAAM+vC,cR0HO,IQzHzCosJ,EAAan8L,MAAQ,IAAIs5L,GAAU2C,EAASj8L,MAAO,CACjDqH,MAAQ,WACI+0L,EAAAv+J,MAAQo+J,EAASj8L,MAAM8vC,YACvBssJ,EAAAt+J,OAASm+J,EAASj8L,MAAM+vC,YACpC,EACA4yI,KAAM,SAACwW,GACLmD,EAAWnD,EACb,EACA/qL,IAAK20K,GAET,IAEA1qI,EAAAA,iBAAgB,WACd8jJ,EAAan8L,MAAMosD,SACrB,IAEO,WAEH,OAAA3uB,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAAzF,OAAIiiK,EAAcl6L,MAAmB,iBAAA+2B,IACvCklK,EAAAviK,MACE,CACL4D,WAAYm/J,EAAgBz8L,qCAIrB,IAAAi4B,OAAIiiK,EAAcl6L,MAAc,YAAA0uH,KAAA,SAAAn8E,SAE7B,MACL2pJ,EAAAxiK,MACED,EAAOz5B,OAAA,QAKxB,ukBCtGF,IAAA08L,GAAezgK,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAOw2B,GAAAA,MACF0mG,IAAA,CAAA,EAAA,CACH9iG,UAAW,CACTt+B,KAAM/C,OACNoqB,QAAS,IAEXhqB,MAAO,CACL2C,KAAM9C,OACNmqB,QAAS,GAEXmkJ,SAAU,CACRxrK,KAAM9C,OACNmqB,QAAS,KAEX2yK,UAAW,CACTh6L,KAAMxE,QAERwE,KAAM,CACJA,KAAM/C,OACNoqB,QAAS,SAGbkS,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChBgC,EAAWllK,MAAiB,MAC5BmlK,EAAWnlK,MAAiB,MAC5BolK,EAAeplK,MAAe,MAC9BqlK,EAAYzwJ,EAAAA,SAAS,CACzB9N,MT+J8B,MS7J1BpE,EAASjb,EAAAA,UAAS,WAEtB,GADkB49K,EAAVv+J,MACR,CAGA,IAAMuG,EAAOl9B,KAAK2hB,MAAOhiB,EAAM7G,MAAQ6G,EAAMsnK,SAAY,KAClD,MAAA,CACL/pI,eAASA,EAAA,KACT/J,MAAOxzB,EAAMwzB,MAAMywE,IAJrB,CAMF,IAEMwxF,EAAa,SAACnD,EAAwBgC,GAC1C,IAAIt0L,EAAMgyB,SAAV,CAGM,IAAEgF,EAAUu+J,EAAVv+J,MACAxX,EAAM8yK,EAAN9yK,EACFrmB,EAAQkH,KAAK2hB,MAAOxC,EAAIwX,EAASh3B,EAAMsnK,SAAW,KAAO,IACzDtnK,EAAAsoD,SAASnvD,EAAOm7L,EAJtB,GAOIpY,EAAgB,SAACoW,GACjBtyL,EAAMgyB,UAGVyjK,EAAWnD,GAAY,IAqBzB,OAlBA/8J,EAAAA,WAAU,WACEggK,EAAAv+J,MAAQo+J,EAASj8L,MAAM8vC,aT+HH,IS9H9BqsJ,EAAan8L,MAAQ,IAAIs5L,GAAU2C,EAASj8L,MAAO,CACjDqH,MAAO,WAEK+0L,EAAAv+J,MAAQo+J,EAASj8L,MAAM8vC,WACnC,EACA6yI,KAAM,SAACwW,GACLmD,EAAWnD,EACb,EACA/qL,IAAK20K,GAET,IAEA1qI,EAAAA,iBAAgB,WACd8jJ,EAAan8L,MAAMosD,SACrB,IAEO,WACL,IAAMwwI,EAAe,CACnBt/J,mFAA6Ez2B,EAAMwzB,MAAMywE,IAAA,UAAA7yE,OAAYpxB,EAAMwzB,MAAMywE,IAAA,WAGjH,OAAArtE,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAAzF,OACFiiK,EAAcl6L,MAAAi4B,oBAAAA,GAAAA,OACdiiK,EAAcl6L,MAAA,sBAAAi4B,OAA0BpxB,EAAMlE,KAAA,WACnD,CAEgB,UAAfkE,EAAMlE,MAAS86B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAA0BiiK,EAAcl6L,MAAyB,oBAAA05B,MAAOkjK,GAAc,MAAAn/J,EAAAO,YAAA,MAAA,CAAAN,MAC1F,CAAA,GAAAzF,OAAIiiK,EAAcl6L,MAAiB6G,YAAAA,EAAMo6B,WAASlK,IAAQklK,GAAA,CAAAx+J,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACrDiiK,EAAcl6L,MAAe,UAAA05B,MAAO7yB,EAAM81L,WAAW,MAAAl/J,EAAAO,YAAA,OAAA,CAAAN,MAE3D,IAAAzF,OAAIiiK,EAAcl6L,MAAc,YAAA0uH,KAAA,SAAAn8E,SAE7B,EACVxb,IAAKmlK,EACLxiK,MAAOD,EAAOz5B,OACf,UAKX,ICzGF68L,GAAe5gK,kBAAgB,CAC7Bx9B,KAAM,YAEN0qC,cAAc,EACdtiC,MAAOk9H,GACP7nG,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAEtB,OAAO,WAEH,OAAAx8J,EAAAA,YAAAi/J,GAAA,CAAAh/J,MAAA,GAAAzF,OACYiiK,EAAcl6L,MACxB,SAAAq6B,MAAOxzB,EAAMwzB,MACbr6B,MAAO6G,EAAMwzB,MAAMk0E,IAAAp/C,SACTtoD,EAAMsoD,SAAAt2B,SACNhyB,EAAMgyB,SAAAl2B,KAAA,OAAA,MAKxB,ICpBFm6L,GAAe7gK,kBAAgB,CAC7Bx9B,KAAM,cACN0qC,cAAc,EACdtiC,MAAO,CACLwzB,MAAO,CACL13B,KAAMxE,QAER06B,SAAU,CACRl2B,KAAMgmC,QACN3e,SAAS,GAEXmlC,SAAU,CACRxsD,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,IAGJkS,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChB/sE,EAAe,SAACnoG,EAAWg4K,GACzBl2L,EAAAsoD,SAASpqC,EAAI,IAAKg4K,IAEpBJ,EAAYn+K,EAAAA,UAAS,WAClB,MAAA,CACL8e,0DAAArF,OAA2DpxB,EAAMwzB,MAAMywE,IAAA,KAE3E,IAEA,OAAO,WACL,OAAArtE,EAAAA,YAAAi/J,GAAA,CAAAh/J,MAEW,CAAAzF,GAAAA,OAAIiiK,EAAcl6L,MAAgBi4B,WAAAA,GAAAA,OAAGiiK,EAAcl6L,MAC1D,eAAAq6B,MAAOxzB,EAAMwzB,MACbr6B,MAA2B,IAApB6G,EAAMwzB,MAAM2iK,MAAQ7tI,SACjB+9D,EAAA,aACEyvE,EAAU38L,MACtB,YAAW,IACX64B,SAAUhyB,EAAMgyB,SAAAl2B,KAAA,SAAA,MAKxB,ukBCzCF,IAAAs6L,GAAehhK,kBAAgB,CAC7Bx9B,KAAM,eACN0qC,cAAc,EACdtiC,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACHwzB,MAAO,CACL13B,KAAMxE,QAERksG,cAAe,CACb1nG,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,KAGJkS,MAAAA,SAAMr1B,GACE,IAAAglE,EAAalgC,WAAc,CAAA,GAC3BuxJ,EAAiBvxJ,WAAc,CAAA,GAG/BwxJ,EAAmB,WACjB,IAAEp0K,EAAkBliB,EAAlBkiB,OAAQsR,EAAUxzB,EAAVwzB,MAChB,GAAKA,EAAL,CACA,IAAMhtB,EAASysL,GAAkBz/J,EAAO,UAAUtR,GAElD1b,EAAOyW,EAAI5c,KAAK2hB,MAAoB,IAAdwR,EAAM2iK,OAC5B7+L,OAAO4F,KAAKsJ,GAAQ8J,SAAQ,SAAC9X,GAE3BwsE,EAAWxsE,GAAOgO,EAAOhO,GAEzB69L,EAAe79L,GAAOgO,EAAOhO,EAC/B,GATY,GAYG89L,IACX,IAAAC,EAAiBt6K,GAASq6K,EAAkB,KAElD50J,EAAAA,OAAM,WACJ,IAAA80J,EAA0Cx2L,EAAMwzB,MAChD,MAAO,CADagjK,EAAZhB,WAAYgB,EAAA9uF,IAAY8uF,EAAPr9L,MAAOq9L,EAAAL,MACOn2L,EAAMkiB,UAC5Cq0K,GAEG,IAAAlwE,EAAe,SAAC7tH,EAAa0lB,GACjC,GAAIA,IAAMm4K,EAAe79L,GAAzB,CAEY,MAARA,EAGFwH,EAAMwzB,MAAM2iK,MAASj4K,EAAe,IACnB,QAAR1lB,GAAyB,QAARA,EAE1BwH,EAAMwzB,MAAMsvC,OAAO5kD,GAGnBle,EAAMwzB,MAAMsvC,OAAO+rH,GAAM4H,aAAazxH,EAAYhlE,EAAMkiB,SAG1D,IAAM/oB,EAAQ85L,GAAkBjzL,EAAMwzB,MAAO,UAAUxzB,EAAMkiB,QAC7DliB,EAAMwjG,cAAcrqG,EAAO6G,EAAMwzB,MAAM2iK,MAAO39L,EAAK0lB,EAfpB,GAkBjC,OAAO,WACL,IAAM06E,EAAapiE,GACZx2B,CAAAA,EAAAA,EAAM44F,YAAsB,CAAA,GAEnC,OAAAhiE,EAAAA,YAAA,MAAA,CAAAC,MAAA,eAAA,CAEKq8J,GAAqBlzL,EAAMkiB,OAAQliB,EAAMqrL,aAAarmL,KAAI,SAAC4gC,GAC1D,OAAAhP,EAAAA,YAAA,MAAA,CAAAC,MAAA,oBAAAr+B,IAGSotC,EAAOptC,UACL,CACLi6C,KAAM7M,EAAO6M,MAAQ,IACvB,CAEiB,UAAhB7M,EAAO9pC,KAAS86B,EAAAA,YAAA+rE,GAAAp+D,EAAA2qC,WAET0pB,EAAA,CAAA1nD,MAAA,SAAA3sC,KAAA,QAAAytB,SAGMhyB,EAAMgyB,oBACPgzC,EAAWp/B,EAAOptC,KAC3B,sBAAA,SAAAgiI,GAAA,OADSx1D,EAAWp/B,EAAOptC,KAC3BgiI,CAAA,EAAAlsC,UAA4B,QAAjBtuF,EAAMkiB,OAAmB,OAAI,EACxCyG,MAAOq8C,EAAWp/B,EAAOptC,KAAAo2F,OACjB,SAAC1wE,GAAA,OAAcmoG,EAAazgF,EAAOptC,IAAK0lB,EAChD,EAAAqsE,QAAS,SAACrsE,GAAc,OAAAmoG,EAAazgF,EAAOptC,IAAK0lB,0CAI7C06E,EACJ,CAAA1nD,MAAA,SAAA3sC,KAAA,QAAAytB,SAEUhyB,EAAMgyB,SAAAgzC,WACPA,EAAWp/B,EAAOptC,8CAAlBwsE,EAAWp/B,EAAOptC,cACpBwsE,EAAWp/B,EAAOptC,KACzBuc,IAAK6wB,EAAO7wB,IACZzU,IAAKslC,EAAOtlC,IACZib,KAAM,SACEqqB,EAAO1jB,6BAEP,SAAChE,GAAA,OAAcmoG,EAAazgF,EAAOptC,IAAK0lB,EAChD,EAAAqsE,QAAS,SAACrsE,GAAc,OAAAmoG,EAAazgF,EAAOptC,IAAK0lB,EACnD,IAAA,OAIP,MAIT,ukBC7GF,IAAAw4K,GAAethK,kBAAgB,CAC7Bx9B,KAAM,cACN0qC,cAAc,EACdtiC,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACHwzB,MAAO,CACL13B,KAAMxE,QAERksG,cAAe,CACb1nG,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,KAGJkS,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChBuD,EAAczmK,EAAAA,IAAkClwB,EAAMkiB,QAE5Dwf,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAMkiB,WACb,WAAA,OAAOy0K,EAAYx9L,MAAQ6G,EAAMkiB,MAAA,IAO7B,IAAAwxK,EAAmB,SAACx1K,GACxBy4K,EAAYx9L,MAAQ+kB,GAGtB,OAAO,WAAM,IAAAm0B,EAnCgB90B,EV2CK8tK,EUP1BuL,EAAWpgK,GAAAA,MACZx2B,GAAAA,GAAAA,CACHkiB,OAAQy0K,EAAYx9L,QAEhBqxH,EAAmBh0F,GAClBx2B,CAAAA,EAAAA,EAAMwqH,kBAA+B,CAAA,GAE5C,OAAA5zF,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiBiiK,EAAcl6L,MAAA,aAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACZiiK,EAAcl6L,MAAA,mBAAAy9B,CAAAA,EAAAO,YAAAylH,GAAA,CAAAr4I,KAAA,QAAAsyB,MAAA,GAAAzF,OAGfiiK,EAAcl6L,MACxB,wBAAAqxH,iBAAAh0F,MAAuBg0F,GAAAriD,WAAA3xC,GAAA,CAErB8xC,iBAAAl3C,GAAAA,OAAqBiiK,EAAcl6L,MAAA,qBAC/BqxH,EAAwCriD,YAAAnD,WAErC2xH,EAAYx9L,MAAA,sBAAA,SAAAqhI,GAAA,OAAZm8D,EAAYx9L,MAAAqhI,CAAA,EAAAlyE,SACXorI,IAvDSn2K,EAuDT80B,GVZcg5I,EUcDrrL,EAAMqrL,YVbzCA,EACIgB,GAAQrnL,KAAI,SAACi6B,GAAA,OAAUA,KAAQqtJ,GAAmBA,GAAiBrtJ,GAAkCA,CAAK,IAC1GotJ,IUWkDrnL,KAAI,SAACi6B,gCAC/BA,EAAA9lC,MAAa8lC,EAAAwa,MAAaxa,EAAApM,MAAa,CAAEoD,SAAU,SAAU,SA1D1D,mBAAA1Y,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA4DrB80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,OAAAzb,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEaiiK,EAAcl6L,2CACTy9L,EAAU,UAKtC,ukBCjEF,IAAAC,GAAezhK,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAOw2B,GAAAA,MACF0mG,IAAA,CAAA,EAAA,CACH4xD,OAAQ,CACNhzL,KAAMnF,MACNwsB,QAAS,WAAT,MAAe,EAAC,GAElBwF,MAAO,CACL7sB,KAAM/C,OACNoqB,QAAS,4BAEX2zK,SAAU,CACRh7L,KAAMgmC,QACN3e,SAAS,GAEX4zK,WAAY,CACVj7L,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,GAEF6zK,eAAgB,CACdl7L,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,KAGJkS,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChB5lI,EAA0BpB,GAAc,CAAE6qI,WAAYC,GAAcz2G,QAASC,KAA3Eu2G,EAAYzpI,EAAZypI,WAAYx2G,EAAAjzB,EAAAizB,QAEdpc,EADahzC,KAAXQ,OACwB14B,MAC1Bg+L,EAAoBjnK,OAAa,GAOjCknK,EAAsB,SAAC5jK,GAC3B,OAAOq7J,GAAMwI,QAAQ7jK,EAAOxzB,EAAMwzB,MAAM6gC,MAGpCijI,EAAqB3/K,EAAAA,UAAS,WAClC,OAAO3X,EAAM8uL,OAAO1uD,WAAU,SAAC5sG,GAAU,OAAA4jK,EAAoB5jK,KAC/D,IAKM+jK,EAAoB,WAClB,IAlBsBhlK,EAkBpBu8J,EAAW9uL,EAAX8uL,OACF0I,EAAgBF,EAAmBn+L,OACnB,IAAlBq+L,IACG1I,EAAAnqL,OAAO6yL,EAAe,GAC7Bx3L,EAAMsoD,SAASwmI,GAtBav8J,GAuBP,EAtBrB4kK,EAAkBh+L,MAAQo5B,IAyB5B,OAAO,WACC,IAAAklK,EAAArmK,GAAAA,OAAmBiiK,EAAcl6L,MAAA,cAsBrC,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAY4gK,GAAA,CAAA7gK,EAAAO,YAAA,KAAA,CAAAN,MAAAzF,GAAAA,OACIqmK,EAAA,YAAA7gK,CAAAA,EAAAO,YACLn3B,OAAAA,KAAAA,CAAAA,EAAM2oB,QArBZ3oB,EAAM82L,SAKTlgK,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OAAeqmK,EAAA,cAAA,CAAA7gK,EAAAO,YAAA,OAAA,CAAA0wF,KAAA,SAAAhxF,MAAA,GAAAzF,OACiBiiK,EAAcl6L,MAAA,UAAAouC,QAAwB,WAAA,OAAMvnC,EAAMg3L,gBAAe,GAAA,CAAApgK,EAAAA,YAAA6pD,EAAA,KAAA,QAG9FzgF,EAAM8uL,OAAOt4L,OAAS,EAAAogC,EAAAA,YAAA,OAAA,CAAAixF,KAAA,SAAAhxF,MAAA,GAAAzF,OACSiiK,EAAcl6L,MAAe,UAAAouC,QAAS,WAAA,OAAMgwJ,GAAkB,GAAA,CAAA3gK,EAAAA,YAAAqgK,EAAA,KAAA,QAG1F,OAZC,OAqBUrgK,EAAAA,YAAA,KAAA,CAAAC,MAEN,CAAAzF,GAAAA,OAAIqmK,aAAwB,qBACpCz3L,CAAAA,EAAM8uL,OAAO9pL,KAAI,SAACwuB,GAEf,OAAAoD,EAAAA,YAAA,KAAA,CAAAC,MACS,IAAAzF,OACFqmK,EACHL,UAAAA,EAAoB5jK,IAAUxzB,EAAM82L,SAAWzyH,EAAiBjyC,OAAS,UAEpEoB,EAAAh7B,IACFg7B,EAAA+T,QACI,WACHvnC,EAAMgyB,UA7DN,SAACwB,GAAkBxzB,EAAM+2L,WAAWvjK,EAAK,CAgE7Cqd,CAAYrd,EACd,+BAEY,CAAA,GAAApC,OAAIqmK,gBAAwBrmK,OAAGiiK,EAAcl6L,MAAA,uDAE3Cs+L,mBACH,CACLhhK,WAAYjD,IAEf,SAIT,QAKV,ukBCvGF,IAAAkkK,GAAetiK,kBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACHuzL,YAAa,CACXz3L,KAAMhC,YAGVu7B,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KACdvhK,EAAWR,KAAXQ,OACR09C,EAA4Bp/C,GAAU,eAA9BpT,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aACL2zC,EAAmBxyC,EAAO14B,MAChC4yE,EAAwD7nC,SAAOlkC,GAAhDsxF,EAAAvlB,EAAP5yE,MAAmB6rE,IAAAA,WAAYumH,EAAax/G,EAAbw/G,aACiEv/G,EAAArvD,GAApEooD,GAAUusB,EAAYtsB,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAAjGypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAMhCkR,EAAAvgE,GALkD2nD,GAChDinH,EACAvrL,EAAMwrL,oBACNxrL,EAAM4rL,qBACN,gBACF,GALO+L,EAAmBz6G,EAAA,GAAA06G,EAAoB16G,EAAA,GAOxC26G,EAAiB,SAACp/L,GAClBuH,OAA4B,IAA5BA,EAAMorL,WAAW50L,OAAqBwJ,EAAMorL,WAAW,GACpDprL,EAAMorL,WAAW5zK,SAAS,oBAAsBq3K,GAAMxB,gBAAgB50L,GACzE,kBACA,cAEAmkF,EAAO1sD,EAAAA,IAAkB2nK,EAAe9lG,EAAW54F,QAEnD81L,EAAat3K,EAAAA,UAAS,WAAA,MAAqB,oBAAfilE,EAAKzjF,SACjC2+L,EAAoBngL,EAAAA,UAAS,WAAA,OAAOs3K,EAAW91L,MAAQgzL,Gf3CpC,ae6CnB34J,EAAQtD,MAAI,IAAI2+J,GAAM98F,EAAW54F,OAAS2+L,EAAkB3+L,QAE5Dw9L,EAAczmK,EAAkCA,IZtD3B,SAAChO,EAAqBmpK,GAC/C,OAAAA,GAAenpK,KAAUoqK,IACpBpqK,KAAUoqK,GAAmBA,GAAiBpqK,GAEhDA,CACT,CYiD0D61K,CAAgB/3L,EAAMkiB,OAAQliB,EAAMqrL,cAMpF2M,EAAuB,WAC3B,GAAgC,OAA5BL,EAAkBx+L,QAA8C,IAA5Bw+L,EAAkBx+L,MAA1D,CAGA,IAAM21L,EAASp+K,GAAUinL,EAAkBx+L,QAAsB,GAC3D8+L,EAAezkK,EAAMr6B,MAAM81L,WAAaz7J,EAAMr6B,MAAMs2L,eAAiBj8J,EAAMr6B,MAAMmrG,KACjFrpG,EAAQ6zL,EAAO57J,QAAQ+kK,GACzBh9L,GAAY,GACP6zL,EAAAnqL,OAAO1J,EAAO,GAEvB6zL,EAAOr7J,QAAQwkK,GACXnJ,EAAOt4L,OfzE4B,Me0ErCs4L,EAAOt4L,Of1E8B,Ke4EvC0hM,EAA+BpJ,EAX/B,GAkBIoJ,EAAiC,SAACpJ,GACtC8I,EAAqB9I,IAOjBqJ,EAAkB,SAAC5zI,GACvB,IAAMprD,EAAQq6B,EAAMr6B,MAAMi/L,kBAAkBp4L,EAAMkiB,OAAQliB,EAAMqrL,aAChEr5F,EAAc74F,EAAO,CACnBq6B,MAAO2+J,GAAe3+J,EAAMr6B,OAC5BorD,QAASA,GAAW,mCAIxB7iB,EAAAA,OACE,WAAA,OAAMqwD,EAAW54F,KACjB,IAAA,SAACiyG,GACO,IAAAitF,EAAUR,EAAezsF,GAC/BxuB,EAAKzjF,MAAQk/L,EACP7kK,EAAAr6B,MAAM81L,WAAyB,oBAAZoJ,EACnB7kK,EAAAr6B,MAAM2pE,OAAOsoC,EACrB,IAQI,IAAAsoF,EAAmB,SAAC2E,GACxBz7G,EAAKzjF,MAAQk/L,EAEb,IAAMC,EAA6B,oBAAZD,EACvB7kK,EAAMr6B,MAAM81L,WAAaqJ,EAErBA,EACF9kK,EAAMr6B,MAAM2pE,OACVtvC,EAAMr6B,MAAMq0L,eAAeh3L,OAAS,EAAIg9B,EAAMr6B,MAAMs2L,eAAiBtD,IAGvE34J,EAAMr6B,MAAM2pE,OAAOtvC,EAAMr6B,MAAMmrG,MAGjB6zF,KAOZI,EAA0B,SAAAh2J,GAAkE,IAA/DizJ,EAAAjzJ,EAAAizJ,WAAYr8L,IAAAA,MAC7Cq/L,EAAwChlK,EAAMr6B,MAA1Bs/L,EAAAD,EAAZhD,WAAwB/2J,EAAA+5J,EAAPr/L,MACrBu/L,EAA0C,gCAC1C,GAAAv/L,IAAUslC,GAAO+2J,IAAeiD,EAClCjlK,EAAMr6B,MAAMq8L,WAAaA,EACzBhiK,EAAMr6B,MAAMA,MAAQA,EACJu/L,EAAA,qCAClB,GAAWlD,IAAeiD,EACxBjlK,EAAMr6B,MAAMq8L,WAAaA,EACTkD,EAAA,yBAClB,IAAWv/L,IAAUslC,EAInB,OAHAjL,EAAMr6B,MAAMA,MAAQA,EACJu/L,EAAA,oBAGlB,CAEAP,EAAgBO,IAOZC,EAAkB,SAACjxF,GAAgB,IAAAkxF,EACvCplK,EAAMr6B,MAAMuuG,IAAMA,EAClBywF,EAAgB,mBACW,QAA3Bn4L,EAAAA,EAAM2rL,0BAAqB,IAAAiN,GAA3B54L,EAAAA,KAAAA,EAA2B,CACzBwzB,MAAO2+J,GAAe3+J,EAAMr6B,UAQ1B0/L,EAAoB,SAAC1C,GACzB3iK,EAAMr6B,MAAMg9L,MAAQA,EACpBgC,EAAgB,sBAQZ5hB,EAAoB,SAAC99K,EAAe09L,GAClC3iK,EAAAr6B,MAAM2pE,OAAOrqE,GACnB+6B,EAAMr6B,MAAMg9L,MAAQA,EACpBgC,EAAgB,UAOZW,EAAuB,YAMvB,IALJtgM,EAAA+wD,EAAA/wD,IACAy7L,EAAA1qI,EAAA0qI,QAKI1vI,EAAoC,gCAChC,OAAA/rD,GACD,IAAA,SACHg7B,EAAMr6B,MAAMm3L,eAAiB2D,EACnB1vI,EAAA,QACV,MACG,IAAA,aACH/wB,EAAMr6B,MAAMq3L,mBAAqByD,EACjC,MACG,IAAA,SACHzgK,EAAMr6B,MAAMq0L,eAAiByG,EAGjCkE,EAAgB5zI,IAQZw0I,EAAiB,SAAC5/L,EAAeorD,GAC/B,IAAA8zI,EAAUR,EAAe1+L,GAC/ByjF,EAAKzjF,MAAQk/L,EACP7kK,EAAAr6B,MAAM81L,WAAyB,oBAAZoJ,EACnB7kK,EAAAr6B,MAAM2pE,OAAO3pE,GACnBg/L,EAAgB5zI,IAGlB,OAAO,WACL,IAAM24E,EAAY,CAChB1pG,MAAOA,EAAMr6B,MACb64B,SAAUhyB,EAAMgyB,UAIZgnK,EAAkD,IAA5Bh5L,EAAMorL,WAAW50L,QAAgBwJ,EAAMorL,WAAW5zK,SAAS,mBAGnF+zK,EAAeoM,EAAkBx+L,MACjC6/L,GAAuBriM,MAAMoB,QAAQwzL,KACvCA,EAAeA,EAAanrJ,QAAO,SAAC5M,UAAUq7J,GAAMxB,gBAAgB75J,OAEtE,IAAMylK,IAAmBtiM,MAAMoB,QAAQwzL,GAGnC2N,EAAel5L,EAAM0rL,kBACJ,IAAjBwN,IACaA,EAAAphM,EAAIs0L,KAEjB4M,IACFE,EAAeA,EAAa94J,QAAO,SAAC5M,UAAUq7J,GAAMxB,gBAAgB75J,OAEhE,IAAA2lK,EAAmBxiM,MAAMoB,QAAQmhM,GAgCrC,OAAAtiK,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAAAzF,GAAAA,OAAIiiK,EAAcl6L,MAAA,aAAgB6G,EAAMgyB,UAAWqyC,EAAiBryC,WAAgB,CAAA4E,EAAAO,YAAAm8J,GAAA/uJ,EAAAA,WAC7EvkC,EAAAA,CAAAA,KAAa48E,EAAKzjF,MAAAq6L,aAAqBE,IAAkB,MAAA98J,EAAAO,YAAA,MAAA,CAAAN,MAC9D,CAAAzF,GAAAA,OAAIiiK,EAAcl6L,MAAa,YACxC81L,CAAAA,EAAW91L,MACVy9B,EAAAO,YAAA08J,GAAAtvJ,EAAA2qC,WACMguD,EAAA,CAAA50E,SACMwwI,EACVxN,uBAAwBtrL,EAAMsrL,yBAE9B,MAAA,KAAA10J,EAAAO,YAAAg+J,GAAA5wJ,EAAA2qC,WAEiBguD,EAAW,CAAA50E,SAAUiwI,IAAyB,MAAA3hK,EAAAO,YAAA,MAAA,CAAAN,MAEvD,CAAAzF,GAAAA,OAAIiiK,EAAcl6L,MAAwB,uBAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MACxC,CAAAzF,GAAAA,OAAIiiK,EAAcl6L,MAAgB,eAAA,CAAAy9B,EAAAO,YAAA6+J,GAAAzxJ,EAAAA,WAC7B24F,EAAW,CAAA50E,SAAUqwI,IACnC34L,MAAAA,EAAMqrL,YAAcz0J,EAAAA,YAAAq/J,GAAA1xJ,EAAA2qC,WAAiBguD,EAAW,CAAA50E,SAAUuwI,UAAwB,OAGpF74L,EAAMyrL,wBACL70J,EAAAO,YAAA,MAAA,CAAAN,MAAY,CAAA,GAAAzF,OAAIiiK,EAAcl6L,MAAA,qBAAA,GAAAi4B,OAA6BiiK,EAAcl6L,MAAA,uDAE3Dk6L,EAAcl6L,uCACjB,CACLs9B,WAAYw4J,EAAW91L,MAAQq6B,EAAMr6B,MAAMs2L,eAAiBj8J,EAAMr6B,MAAMmrG,OAI5E,QAAA,OAAA1tE,cAAA8/J,GAAAnyJ,EAAA2qC,WAGWlvE,EAAAA,CAAAA,MAAcwzB,EAAMr6B,aAAew9L,EAAYx9L,MAAOqqG,cAAe+yE,IACrF6iB,MA7DAD,GAAqBF,EAC1BriK,EAAAO,YAAA4gB,EAAA5Y,SAAA,KAAA,CAAAvI,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEmBiiK,EAAcl6L,MAAA,oBAC1B8/L,CAAAA,EAAAriK,EAAAA,YAAAigK,GAAAtyJ,EAAAA,WAEO24F,EACJ,CAAAv0G,MAAO5L,EAAE2T,EAAav3B,MAAM00B,kBAAgBipK,UAAA,EAAAhI,OAEpCvD,iBACQyM,EAAAjB,WACJ,SAACvjK,GAAkB,OAAAulK,EAAevlK,EAAO,SAAQ,EAAA80B,SACnD4vI,IAEV,MAAA,KACHiB,gCAEOj8D,SACGngH,EAAE2T,EAAav3B,MAAMy0B,yBACpBsrK,EAAAnC,WACI,SAACvjK,GAAAA,OAAkBulK,EAAevlK,EAAO,mBAErD,SAtBuC,SAkEvD,ukBChUF,IAAA6lK,GAAejkK,kBAAgB,CAC7Bx9B,KAAM,oBACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATwiC,EAAAD,EAAAC,MACPo0J,EAAWj/K,EAAAA,UAAS,WAAA,OCY9B,SAAgB9Z,EAAQwB,GACtB,GAAc,MAAVxB,EACF,MAAO,GAET,IAAImC,EAAQlF,EAASkS,GAAanP,IAAS,SAASk7C,GAClD,MAAO,CAACA,EACV,IAEA,OADA15C,EAAYgV,GAAahV,GAClBkb,GAAW1c,EAAQmC,GAAO,SAAS7G,EAAOkN,GAC/C,OAAOhH,EAAUlG,EAAOkN,EAAK,GAC/B,GACF,CDvBoCizL,CAAA9iK,GAAAA,GAAYx2B,CAAAA,EAAAA,GAAUwiC,IAAS,SAACtkB,GAAM,YAAM,IAANA,QAChE6yB,EAAS5f,KACR,OAAA,WAAA,OAAAyF,EAAAO,YAAAugK,GAAAnzJ,aAAsBqyJ,EAASz9L,MAAA,CAAAgvE,WAAmB,KAAMtxC,MAAA,GAAAzF,OAAU2f,EAAO53C,MAAmB,gBAAA,MACrG,IEPFogM,GAAenkK,kBAAgB,CAC7Bx9B,KAAM,iBACN0qC,cAAc,EACdtiC,MAAO,CACLwzB,MAAO,CACL13B,KAAM/C,OACNoqB,QAAS,IAEX6O,SAAU,CACRl2B,KAAMgmC,QACN3e,SAAS,GAEX+qE,WAAY,CACVpyF,KAAMgmC,QACN3e,SAAS,GAEXgrE,UAAW,CACTryF,KAAMgmC,QACN3e,SAAS,GAEXy1E,WAAY,CACV98F,KAAMxE,OACN6rB,QAAS,WACA,MAAA,CACL6qE,WAAW,EAEf,GAEFwrG,gBAAiB,CACf19L,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,GAEFs2K,eAAgB,CACd39L,KAAMhC,SACNqpB,QAAS,WACP,OAAO,WAAM,CACf,GAEF5e,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,WAGbkS,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChBj6L,EAAQ+2B,EAAAA,IAAIlwB,EAAMwzB,OACV4wC,EAAmB/yC,KAAzBC,KACRoQ,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAMwzB,UACb,WAAA,OAAOr6B,EAAMA,MAAQ6G,EAAMwzB,KAAA,IAGvB,IAAA6yF,EAAe,SAAC5tH,GAChBA,IAAUuH,EAAMwzB,OACZxzB,EAAAw5L,gBAAgBrgM,EAAMA,MAAO,CACjCq6B,MAAO2+J,GAAe,IAAItD,GAAMp2L,IAChC8rD,QAAS,WAKTynG,EAAc,SAAC1hH,GAA+B,IAAAovJ,EAAA,eAAAA,EAAA15L,EAAMy5L,sBAANC,WAAAA,EAAAA,EAAAjiM,KAAAuI,EAAuBsqC,EAAO,EAElF,OAAO,WACL,IAAMqvJ,EAAa,CACjBlgJ,MAAO,WACL,OAAA7iB,EAAAA,YAAA,MAAA,CAAAC,MACc,CAAA,GAAAzF,OAAIiiK,EAAcl6L,MAAkC,6BAAA,GAAAi4B,OAAGiiK,EAAcl6L,MAAA,gBAC/E,CAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MACS,CACL,cAAA59B,EAEGmrE,CAAAA,EAAAA,EAAejrE,MAAM6G,EAAMuE,MAAuB,WAAfvE,EAAMuE,aAGvC,CACLkyB,WAAYt9B,EAAMA,QACpB,OAIR,GAGA,OAAAy9B,EAAAO,YAAAwrE,GAAAp+D,aAAA,CAAA2pD,WACcluF,EAAMkuF,WAAAC,UACPnuF,EAAMmuF,UACjB5pF,KAAMvE,EAAMuE,KAAAygE,WAEH7rE,EAAMA,MAAA,sBAAA,SAAAqhI,GAAA,OAANrhI,EAAMA,MAAAqhI,CAAA,EAAAxoG,SACLhyB,EAAMgyB,SAChB48D,OAAQy3B,EACR/9D,SAAU+9D,EACVx3B,QAASm9D,GACLhsJ,EAAM44F,YAND+gG,GAUjB,ukBCjGF,IAAAC,GAAexkK,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAMqzL,EAAgBD,KAChBhvD,EAAwBpjG,KACxBzO,EAAUrC,OAAI,GACd+7C,EAAa,SAAC9yE,GAAoB,OAAAo5B,EAAQp5B,MAAQA,CAAA,EAExD4yE,EAAwD7nC,SAAOlkC,GAAhDsxF,EAAAvlB,EAAP5yE,MAAmB6rE,IAAAA,WAAYumH,EAAax/G,EAAbw/G,aACiEv/G,EAAArvD,GAApEooD,GAAUusB,EAAYtsB,EAAYhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAAjGypC,EAAY/lB,EAAA,GAAAgmB,EAAahmB,EAAA,GAMhCkR,EAAAvgE,GALkD2nD,GAChDinH,EACAvrL,EAAMwrL,oBACNxrL,EAAM4rL,qBACN,gBACF,GALO+L,EAAmBz6G,EAAA,GAAA06G,EAAoB16G,EAAA,GAOxC28G,EAAa3pK,EAAAA,MAEb87H,EAAc,SAAC1hH,GAA+BtqC,IAAAA,EAAAA,eAAAA,EAAAA,EAAM6uF,eAAN7uF,WAAAA,EAAAA,EAAAA,KAAAA,EAAgBsqC,EAAO,EAErEwvJ,EAAqB,WACzB,OAAI95L,EAAMgyB,SACD,KAGT4E,cAAA8gK,GAAAnzJ,EAAA2qC,WAEQlvE,EACJ,CAAA7G,MAAO44F,EAAW54F,MAAAoyL,aACJoM,EAAkBx+L,MAChCmvD,SAAU0pC,EACV45F,qBAAsBgM,IACxB,OAIJ,OAAO,WACL,IAAMmC,EAAWvjK,GAAAA,GAAA,CACfk2B,UAAW,eACN1sD,EAAMmoE,YAAsB,CAAC,GAAA,CAAA,EAAA,CAClC5jB,QAAS,QACTz/B,OAAQ,OACRwjD,iBAAkB,CAAC+qH,EAAcl6L,OACjCo5B,QAASA,EAAQp5B,MACjBqvE,kBAAmB,CACjBxmB,QAAS,GAEXinB,gBAAiB,SACf12C,EACA+X,GAIwB,aAApBA,EAAQia,SACV0nB,GAAW,EAEf,IAEF,OAAAr1C,cAAAojK,GAAAz1J,EAAA2qC,WACc6qH,EAAA,CAAA9wK,QAAmB6wK,IAC7B,CAAA32K,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAeiiK,EAAcl6L,MAAkB,aAAAouC,QAAS,WAAA,OAAM0kC,GAAY15C,EAAQp5B,MAAK,EAAA+2B,IAAQ2pK,GAC5F,CAAAz1D,EACC,UAAAxtG,EAAAA,YAAA2iK,GAAA,CAAArrG,WAEcluF,EAAMkuF,iBACX6D,EAAW54F,MAClB64B,SAAUhyB,EAAMgyB,SAAAm8D,UACLnuF,EAAMmuF,UAAA,cACJnuF,EAAM44F,WACnB4gG,gBAAiBxnG,iBACDg6D,EAAAznJ,KACVvE,EAAMuE,MACd,SACF,IAKV,IC/EW01L,GAAmBtzJ,GAAY0yJ,IAC/Ba,GAAcvzJ,GAAYizJ,ICHxBO,GAAA,CAEbC,IAAK,CACHt+L,KAAM/C,OACNoqB,QAAS,IAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBugM,iBAAkBv4J,QAElB3c,KAAM,CACJrpB,KAAMhC,UAGRwtB,MAAO,CACLxrB,KAAM/C,OACNoqB,QAAS,IAGXm3K,WAAY,CACVx+L,KAAMxE,QAGR+vC,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGFl6B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,IAGXo3K,QAASzgM,UC5CI0gM,GAAA,CAEbJ,IAAK,CACHt+L,KAAM/C,OACNoqB,QAAS,IAGX+O,MAAO,CACLp2B,KAAM,CAAC/C,OAAQe,WAGjB2gM,SAAU,CACR3+L,KAAM/C,OACNoqB,QAAS,IAGXu3K,IAAK,CACH5+L,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,QAAS,OAAQ,OAAQ,cAAcjnB,SAASinB,EACrE,GAGFk8J,QAAS74J,QAET87C,KAAM97C,QAENhQ,QAAS,CACPh2B,KAAM,CAAC/C,OAAQe,WAGjB8gM,eAAgB,CACd9+L,KAAM,CAAC/C,OAAQe,WAGjB+gM,eAAgB,CACd/+L,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGF1W,YAAa,CACXjsB,KAAM,CAAC/C,OAAQe,WAGjBqvC,SAAU,CACRrtC,KAAM/C,OACNoqB,QAAS,UAGX23K,eAAgB,CACdh/L,KAAM/C,OACNoqB,QAAS,kCACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CACL,cACA,6BACA,SACA,2BACA,cACA,gBACA,kCACA,cACAjnB,SAASinB,EACb,GAGF4I,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,QAAS,UAAUjnB,SAASinB,EAChD,GAGFs8J,IAAK,CACHj/L,KAAM,CAAC/C,OAAQzB,SAGjB0jM,OAAQ,CACNl/L,KAAMxE,QAGRijM,QAASzgM,SAETkyI,OAAQlyI,UCzFVmhM,GAAe7lK,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAk7L,EAAShrK,MAAiB,MAC1BirK,EAASjrK,MAAsB,MACjCm1F,EAA2B,KAEvB01E,EAAQ72J,EAAAA,OAAOlkC,GAAf+6L,IAEFl7J,EAAiBU,KAEvBhL,EAAAA,WAAU,WAAM,IAAA6lK,EAMd,GAJWA,QAAPA,EAAAD,EAAOhiM,aAAPiiM,IAAOA,GAAPA,EAAcr9I,WAAa/9C,EAAM49E,MACjBy9G,IAGfr7L,EAAM49E,MAASs9G,EAAO/hM,MAA3B,CAEA,IAAMutH,EAAal9C,GAAQ0xH,EAAO/hM,MAAO,KAAMmiM,EAAiB,GAC3Dj2E,EAAAqB,CAH6B,CAIpC,IACAv8E,EAAAA,aAAY,WACV+wJ,EAAO/hM,OAASksH,GAAMA,EAAG/7C,UAAU4xH,EAAO/hM,MAC5C,IAEA,IAAAo2E,EAAsCp/C,GAAU,SAAxCzL,EAAA6qD,EAAA7qD,YAAagM,EAAa6+C,EAAb7+C,aAGf6qK,EAAcrrK,EAAAA,IAAI6qK,EAAI5hM,OAE5BuoC,EAAAA,MACE,CAACq5J,EAAKrqK,IACN,SAAA6R,GAAyB,IAAAgnB,EAAA5sC,GAAA4lB,EAAA,GAAvBw4J,EAAKrqK,EAAAA,GACG8qK,GADSjyI,EAAA,IAC2B,CAAC,GAArCiyI,gBACFC,EAAS5+L,EAAW2+L,GAAmBA,EAAgBx7L,GAAS+6L,EAClEU,IAAWF,EAAYpiM,OAASoiM,EAAYpiM,QAChDoiM,EAAYpiM,MAAQsiM,EACtB,GACA,CAAEzwI,WAAW,IAGf,IAAQ4c,EAAeF,GAAmB6zH,GAAlC3zH,WAEFlmC,QAAA,CAACkmC,IAAa,WAClB8zH,EAASviM,OAAQ,EACjBwiM,EAASxiM,OAAQ,CACnB,IAEA,IAAMyiM,EAAa1rK,EAAAA,KAAKlwB,EAAM49E,MACxB09G,EAAkB,WACtBM,EAAWziM,OAAQ,GAGfwiM,EAAWzrK,OAAI,GACfs1J,EAAa,SAAChrL,GAAa,IAAAqhM,EAC/BF,EAASxiM,OAAQ,EACX,QAAN6G,EAAAA,EAAMgsI,cAAA,IAAA6vD,GAAN77L,EAAAA,KAAAA,EAAe,CAAExF,EAAAA,KAEb6gM,EAAoB,WAClB,IAAAS,EAAY,IAAIjd,MAAM,QACrBvnL,OAAA+B,eAAeyiM,EAAW,SAAU,CACzC3iM,MAAOgiM,EAAOhiM,MACdG,YAAY,IAEdksL,EAAWsW,IAEPJ,EAAWxrK,OAAI,GACf6rK,EAAc,SAACvhM,GAAa,IAAAwhM,EAChCN,EAASviM,OAAQ,EACX,QAAN6G,EAAAA,EAAMu6L,eAAA,IAAAyB,GAANh8L,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,IACdwF,EAAMy6L,WACRc,EAAYpiM,MAAQ6G,EAAMy6L,SAC1BiB,EAASviM,OAAQ,IAIf8iM,EAAgBtkL,EAAAA,UAAS,WAC7B,MAAgC,UAAzB3X,EAAM66L,cACf,IAEMqB,EAAevkL,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAC/B1M,EAAYvrB,MAAAi4B,UAAAA,GAAAA,OACZ1M,EAAYvrB,sBAAAi4B,OAAoBpxB,EAAM06L,KAAA,GAAAtpK,OACtC1M,EAAYvrB,MAAA,qBAAAi4B,OAAyBpxB,EAAMmpC,cAG1CgzJ,EAAoBjsK,EAAAA,KAAK+rK,EAAc9iM,OACvCijM,EAAsB,WACtBH,EAAc9iM,QACEgjM,EAAAhjM,OAASgjM,EAAkBhjM,QAyCjD,SAASkjM,IAEP,IAAM1vK,EAAMvU,GAASmjL,EAAYpiM,OAASoiM,EAAYpiM,MAAQyuE,EAAWzuE,MACzE,OAAAy9B,EAAAA,YAAA,MAAA,CAAA1G,IAESirK,MACAxuK,EAAA4tK,QACIwB,EACT/vD,OAAQw5C,EACR3uJ,MAAOqlK,EAAa/iM,MACpBihM,IAAKp6L,EAAMo6L,IACXU,eAAgB96L,EAAM86L,gBACxB,KAEJ,CAEA,IAAMwB,EAAoBt7J,KAE1B,OAAO,WACL,OAAApK,EAAAO,kBAAAoN,aAAA,CAAArU,IAESgrK,EAAArkK,MACE,IAAAzF,OACF1M,EAAYvrB,4BAAAi4B,OACZ1M,EAAYvrB,MAAAi4B,2BAAAA,OAA+BpxB,EAAMqnC,OACpDrnC,EAAM26L,YAAWvpK,OAAG1M,EAAYvrB,kCAChC8iM,EAAc9iM,UAASi4B,OAAG1M,EAAYvrB,mDAE1BijM,EAAAptI,aACAotI,GACVliL,GAAKla,EAAO,CACd,MACA,MACA,MACA,WACA,QACA,cACA,UACA,QACA,iBACA,iBACA,OACA,UACA,SACA,aAGDmiH,EAnFCp6F,EAAc8X,EAAe,eAC9B9X,EACL6O,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAsB1M,EAAYvrB,MAAA,wBAAA,CAA6B4uB,IADtC,MAKpB/nB,EAAM26L,QACX/jK,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAsB1M,EAAYvrB,MAA+B,2BAAA,MADtC,MAgFrBuiM,EAASviM,QAAUyiM,EAAWziM,QAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAyB1M,EAAYvrB,MAAe,WAAA,QACjFuiM,EAASviM,QAAUyiM,EAAWziM,SAC9B6G,EAAMg7L,QAAU1jM,OAAO4F,KAAK8C,EAAMg7L,QAAQxkM,OA9DjDogC,cAAA,UAAA,KAAA,CAEKt/B,OAAO2M,QAAQjE,EAAMg7L,QAAQh2L,KAAI,SAAA6yD,GAAA,IAAA1zB,EAAAxnB,GAAAk7C,EAAA,GAAE/7D,EAAMqoC,EAAA,GAAAxX,EAAGwX,EAAA,GAAA,OAAAvN,EAAAA,YAAA,SAAA,CAAA96B,KAC7BA,EAAMk/L,OAAQruK,YAE7B0vK,MAyD2EA,OACzEX,EAASviM,QAAUyiM,EAAWziM,SAAWwiM,EAASxiM,OACnDy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe1M,EAAYvrB,MAAA,oBAAA,CACxB0mC,EAAe,YACdjJ,EAAAA,YAAAohB,GAAA,CAAA5tB,UAAA,WAAA7lB,KAAkC,EAAA2sC,MAAA,UAAA,CAAA/tB,QAAA,WAAA,MAAAyT,CAAAA,EAAAO,YAAAolK,GAAA,CAAAh4L,KAAA,QAAA,MAE/B6T,GAASpY,EAAM8xB,SAAW9xB,EAAM8xB,QAAUpB,EAAav3B,MAAM2uB,YAAA,MAMrE4zK,EAASviM,4CACOurB,EAAYvrB,MACxB,kBAAAmjM,CAAAA,EAAkB,QAAS,CAC1B19J,wDACoC,kFAE/BxmB,GAASpY,EAAMkyB,OAASlyB,EAAMkyB,MAAQxB,EAAav3B,MAAMo1B,UAAA,SA/FlEqsK,EAAiB0B,EAAkB,kBACpC1B,EAEHhkK,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAAzF,OACF1M,EAAYvrB,MACf,4BAACgjM,EAAkBhjM,OAASi4B,GAAAA,OAAG1M,EAAYvrB,MAAA,qCAC7C,CAECyhM,IARuB,QAFR,IACdA,EAXA7yK,EAqHV,ICxNWy0K,GAAQ71J,GAAYs0J,ukBCFjC,IAAAwB,GAAernK,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,UAChC+R,EAAgBjC,KAChBpB,EAAiBU,KACfjP,EAASD,KAATC,KACForK,EAAclsK,EAAOA,OAAA,mBAAe,GACpCmsK,EAASzsK,MAAwB,MACjC0sK,EAAc1sK,MAAwB,MACtC2sK,EAAa3sK,OAAI,GAEjBwnB,EAAMxnB,MAAI,GACV4sK,EAAQ5sK,MAAI,IAEZ6sK,EAAYplL,EAAAA,UAAkC,WAAA,OAAM3X,EAAMuE,OAAQm4L,eAAAA,EAAan4L,SAC/Ey4L,EAAerlL,EAAAA,UAAS,WAAA,OAAMolL,EAAU5jM,QAAUm4B,EAAKn4B,MAAM4jM,EAAU5jM,UAEvE8jM,EAAmBtlL,EAAAA,UAAS,WAChC,OAAOqlL,EAAa7jM,MAChB,CACE69B,MAAO+lK,EAAU5jM,MACjB89B,OAAQ8lK,EAAU5jM,MAClB,sBAAgBH,OAAOmD,SAAS4gM,EAAU5jM,MAAO,IAAM,EAAA,OAEzD,EACN,IACM+jM,EAAkBvlL,EAAAA,UAAS,WAC/B,OAAOqlL,EAAa7jM,MAChB,CACE89B,OAAQ8lK,EAAU5jM,MAClB69B,MAAO+lK,EAAU5jM,OAEnB,EACN,IACMgkM,EAAsBxlL,EAAAA,UAAS,WAC5B,MAAA,CACLlX,UAAWq8L,EAAM3jM,MAErB,IAEMikM,EAA4C,SAAA76J,GAAW,IAAAy5J,EAARxhM,EAAA+nC,EAAA/nC,EAC3C6/L,EAAqBr6L,EAArBq6L,iBACRwC,EAAW1jM,OAASkhM,EACd,QAANr6L,EAAAA,EAAMu6L,eAAA,IAAAyB,GAANh8L,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,KAGd6iM,EAAiB,WACrB,IAAMC,EAAUX,EAAOxjM,MACjBokM,EAAeX,EAAYzjM,MAC3BqkM,EAAcF,aAAAA,EAAAA,EAASr0J,YACvBw0J,EAAmBF,aAAAA,EAAAA,EAAct0J,YACvB,EAAZyO,EAAIv+C,MAAYqkM,IACZV,EAAA3jM,MACJskM,EAAmBD,EAA0B,EAAZ9lJ,EAAIv+C,MACjC,SAAAi4B,QAAUosK,EAA0B,EAAZ9lJ,EAAIv+C,OAAaskM,EACzC,KAAA,aA0BV,OAtBAloK,EAAAA,WAAU,WACRC,EAAAA,UAAS,WACQ6nK,GACjB,GACF,IAEAv4H,EAAAA,WAAU,WACRtvC,EAAAA,UAAS,WACQ6nK,GACjB,GACF,IAEA37J,EAAAA,OACE,WAAA,OAAM1hC,EAAMsnB,KACZ,IAAA,SAACmX,GACKA,IAEFo+J,EAAW1jM,OAAQ,EAEvB,IAGK,WACD,IAAA8vB,EAAUia,EAAc,UAAW,WACjC/d,EAAO0a,EAAe,QACtB69J,EAAav4K,IAAS8D,EACpBoe,EAAsBrnC,EAAtBqnC,MAAO/f,EAAetnB,EAAfsnB,MAAO8yK,EAAQp6L,EAARo6L,IAChBuD,EAAc,CAAA,GAAAvsK,OACf4Z,EAAe7xC,OAClBm4B,EAAKn4B,MAAM4jM,EAAU5jM,OAAAF,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEf4Z,EAAe7xC,MAAkBkuC,YAAU,WAAVA,MAAUjW,OAC3C4Z,EAAe7xC,MAAA,WAA2B,UAAVkuC,GAAUjW,GAAAA,OAC1C4Z,EAAe7xC,MAAgB,YAAEukM,IAuBzC,OAnBEz0K,EAAA2N,EAAAO,YAAA,OAAA,CAAAjH,IAAW0sK,EAAa/pK,MAAA2D,GAAA,GAAY2mK,EAAoBhkM,QAAA,CACrD8vB,IAGD9D,IACF8D,EAAU,CAAC9D,EAAOu4K,EAAuB,GAAVz0K,IAG7B3B,GAASu1K,EAAW1jM,QACtB8vB,EAAA2N,EAAAA,YAAA4lK,GAAAj4J,aAAA,CAAA1R,MAAA2D,GAAA,GAEgB0mK,EAAgB/jM,OAAA4hM,IACvBzzK,MACA8yK,EAAAG,QACI6C,GACLp9L,EAAMs6L,YACX,OAGL1jK,EAAAA,YAAA,MAAA,CAAA1G,IACYysK,EAAA9lK,MAAe8mK,EAAA9qK,MAAA2D,GAAA,GAAyBymK,EAAiB9jM,QAAM,CACtE8vB,IAIT,ICzHa20K,GAAA,CAEbC,UAAW,CACT/hM,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,YAAYjnB,SAASinB,EAC1C,GAGFq/J,eAAgB,CACdhiM,KAAM,CAAC/C,OAAQe,WAGjBwG,IAAK,CACHxE,KAAM9C,QAGRmvE,WAAY,CACVrsE,KAAMxE,QAGRiN,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,KC3Bb,IAAA46K,GAAe3oK,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJkxB,UAAQ,cAAelxB,GACvB,IAAM6/B,EAAiBU,KAEjBy9J,EAAc7sK,GAAe,UAC7B6Z,EAAiB7Z,GAAe,gBAEhC8sK,EAAuB,SAAC/+J,GACxB,IAAAA,aAAAA,EAAAA,EAAU1oC,QAASwJ,EAAMM,IAAK,CAC1B,IAAA2oB,EAAUi1K,EAAmBh/J,GAC7Bi/J,EAAYj/J,EAASxnC,MAAM,EAAGsI,EAAMM,KAMnC,OALG69L,EAAA/6L,KAAAwzB,EAAAO,YAAAinK,GAAA,CAAAvnK,MAAA,GAAAzF,OACU4sK,EAAY7kM,yBAAyB6G,EAAMuE,MAjB3C,mBAAAgZ,EAkBf0L,IAlBespB,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAkBf0L,EAAA,CAAA9F,QAAA,WAAA,MAAA,CAAA8F,EAAA,KAGEk1K,CACT,CAtBsB,IAAA5gL,EAuBf,OAAA2hB,GAIHg/J,EAAqB,SAACh/J,GAC1B,OAAOW,EAAe,uBAAgBzO,OAAS8N,EAAS1oC,OAASwJ,EAAMM,MAGzE,OAAO,WACC,IAAA4+B,EAAWW,EAAe,WACxBg+J,EAAmB79L,EAAnB69L,UAAWv9L,EAAQN,EAARM,IACb+hK,EAAa,CAAAjxI,GAAAA,OACd4Z,EAAe7xC,OAAAF,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEZ4sK,EAAY7kM,MAAwB0kM,kBAAc,aAAdA,MAAczsK,OAClD4sK,EAAY7kM,MAAA,iBAAqC,YAAd0kM,IAGrC50K,EAAU3oB,GAAOA,GAAO,EAAI,CAAC29L,EAAqBn/J,GAAYI,KAAc,CAACA,GAEnF,OAAAtI,EAAAA,YAAA,MAAA,CAAAC,MAAmBwrI,GAAA,CAAap5I,IAEpC,ICtCWm1K,GAASz3J,GAAY81J,IACrB4B,GAAc13J,GAAYo3J,ICHxBO,GAAA,CAEb9qK,MAAO,CACL13B,KAAM/C,OACNoqB,QAAS,IAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjB2E,MAAO,CACL3C,KAAM,CAAC/C,OAAQC,OAAQc,UACvBqpB,QAAS,GAGXA,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBykM,IAAKz8J,QAEL08J,SAAU,CACR1iM,KAAM9C,OACNmqB,QAAS,IAGX1c,OAAQ,CACN3K,KAAMnF,OAGR0wC,MAAO,CACLvrC,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,MAAO,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGFggK,SAAU38J,QAEVv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,MAAO,CAAC,QAAS,UAAUjnB,SAASinB,EACtC,ICnDJigK,GAAetpK,kBAAgB,CAC7Bx9B,KAAM,SACN0qC,cAAc,EACdtiC,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATwiC,EAAAD,EAAAC,MACPU,EAAgBjC,KAChBpB,EAAiBU,KAGjBo+J,EAAehnL,EAAAA,UAAS,WACxB,IAAAlZ,EAAQohC,EAAe,SAE3B,OAAI7mC,OAAOmkD,MAAMnkD,OAAOyF,IACfA,GAEDA,EAAAzF,OAAOgH,EAAMvB,QACNuB,EAAMw+L,SAAW,GAAAptK,OAAGpxB,EAAMw+L,SAAc,KAAA//L,CACzD,IAYMimB,EAAcyM,KACd6Z,EAAiB7Z,GAAe,SAChCytK,EAAWjnL,EAAAA,UAAS,WACxB,OAAQ3X,EAAMy+L,WAAoC,IAAvBE,EAAaxlM,OAAsC,MAAvBwlM,EAAaxlM,MACtE,IAEM0lM,EAAkBlnL,EAAAA,UAAS,WACxB,MAAA,CAAA1e,EAAAA,EAAAA,EAAAA,EAAAm4B,GAAAA,GAAAA,OAEC4Z,EAAe7xC,MAAe,WAAE6G,EAAMu+L,KAAA,GAAAntK,OACtC4Z,EAAe7xC,MAAkB,aAAC6G,EAAMu+L,KAAuB,WAAhBv+L,EAAMqnC,OAAUjW,GAAAA,OAC/D4Z,EAAe7xC,MAAiB,YAAC6G,EAAMu+L,KAAuB,UAAhBv+L,EAAMqnC,OAAUjW,GAAAA,OAC9D1M,EAAYvrB,MAAA,WAAgC,UAAf6G,EAAMuE,MAG7C,IAEMu6L,EAAcnnL,EAAAA,UAAS,WAC3B,IAAAonL,EA5BgB,WAChB,IAAK/+L,EAAMyG,OAAQ,MAAO,GAC1B,IAAAm3H,EAAAjhH,GAAiD3c,EAAMyG,OAAA,GAAlDu4L,EAAAphE,EAAA,GAASqhE,EAAOrhE,EAAA,GAGd,MAAA,CAAEohE,QAFTA,EAAUhmM,OAAOmkD,MAAMnkD,OAAOgmM,IAAYA,YAAaA,EAAA,MAErCC,QADlBA,EAAUjmM,OAAOmkD,MAAMnkD,OAAOimM,IAAYA,YAAaA,EAAA,OAwB1B3vI,GAArB0vI,EAAAD,EAAAC,QAASC,EAAQF,EAARE,QACV,MAAA,CACLxoK,WAAYz2B,EAAMwzB,MAClBiK,MAAOuhK,EACP1hK,IAAK2hK,EAET,IAGA,OAAO,WAAA,OAAAroK,EAAAO,kBAAAoN,aAAA,CAAA1N,MACOmU,EAAe7xC,OAAWqpC,GAAA,CACnCU,EAAc,UAAW,WACzB07J,EAASzlM,MAAQ,KAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MACJgoK,EAAgB1lM,MAAA05B,MAAcisK,EAAY3lM,OACnD6G,CAAAA,EAAMu+L,IAAM,KAAOI,EAAaxlM,UAK3C,IC9DW+lM,GAAQv4J,GAAY+3J,ICAlBS,GAAA,CAEbC,KAAM,CACJtjM,KAAM,CAAC/C,OAAQe,WAGjBulM,WAAY,CACVvjM,KAAM,CAAC/C,OAAQe,WAGjBorB,iBAAkB,CAChBppB,KAAM,CAACgmC,QAASxqC,QAChB6rB,aAAS,GAGX8B,aAAc,CACZnpB,KAAMgmC,QACN3e,aAAS,GAGX6B,eAAgB,CACdlpB,KAAM9C,OACNi0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGjnB,SAASinB,EACxC,GAGFvc,OAAQ,CACNpmB,KAAM/C,OACNoqB,QAAS,cAGXm8K,KAAM,CACJxjM,KAAM,CAAC/C,OAAQe,WAGjBylM,qBAAsB,CACpBzjM,KAAMgmC,QACN3e,SAAS,GAGXy5D,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQjnB,SAASinB,EACpC,GAGFjgB,MAAO,CACL1iB,KAAM,CAAC/C,OAAQC,SAGjBkqG,SAAUphE,QAEV09J,uBAAwB19J,QAExBxmB,MAAO,CACLxf,KAAMnF,OAGRw3B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAQjnB,SAASinB,EACnC,GAGFtlC,MAAO,CACL2C,KAAM,CAAC/C,OAAQpC,MAAO4H,OAGxBiqB,KAAM,CACJ1sB,KAAM,CAACnF,MAAOmD,WAGhBykB,KAAM,CACJziB,KAAM,CAAC/C,OAAQC,SAGjB2kJ,YAAa7jJ,SAEb2lM,kBAAmB3lM,SAEnB4lM,iBAAkB5lM,SAElB6lM,mBAAoB7lM,SAEpB4hJ,cAAe5hJ,UC5FJkxC,GAAiB,WAIjB40J,GAAW,KAwCXC,GAAqC,CAChD,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,UCjDQr/K,GAAS,SAACs/K,GACrB,IAAIpuD,EAAMC,GAAMmuD,GAAIpuD,MAIb,OAHK,IAARA,IACIA,EAAA,GAEDA,CACT,EAiCaquD,GAAU,SAACD,EAAUE,GAC1B,IAAAtiL,EAAI,IAAInf,KAAKuhM,GAEZ,OADPpiL,EAAEq7H,QAAQr7H,EAAE4C,UAAY0/K,GACjBtiL,CACT,EAgCauiL,GAAuB,SAACjgM,EAAwBgyD,GA2C3D,IA1CM,IACazzC,EAKfyzC,EALFkuI,gBACkB1hL,EAIhBwzC,EAJFmuI,iBACoBn7K,EAGlBgtC,EAHFouI,mBACAC,EAEEruI,EAFFquI,QACAC,EACEtuI,EADFsuI,YAEMp+K,EAAqBliB,EAArBkiB,OAAQghF,EAAaljG,EAAbkjG,SAEVw1C,EAA4B,GAE5B6nD,EAAc5uD,aAASpzH,OAAA6S,OAAQ5S,IAAS4C,QAAQ,SAASO,SAEzDpa,EAAYoqI,GAAMA,GAAM,GAAAvgH,OAAG7S,cAAQC,IAAS6C,MAAM,SAASa,OAAO,eAAeP,SACjFq+K,EAAOz4L,EAAI+Y,UAEXkgL,EAlEuB,SAACx7K,EAAwB86K,GACtD,IACMpuD,EAAMlxH,GAAOs/K,GAMZ,OALHpuD,GAAO1sH,EACJ0sH,EAAM1sH,EAEN,EAAIA,EAAiB0sH,CAG9B,CAyD4B+uD,CAAgBz7K,EAAgBu7K,GACtDjqM,EAAM,GACN0iG,EAAM,EAEJ0nG,EAAiB,SAACC,EAAkB/8C,EAAoBtlI,EAAYsiL,GAEjE,MAAA,CACLhkH,KAAM,QACN+jH,SAAAA,EACA/8C,UAAAA,EACAlS,IALUlxH,GAAOlC,GAMjBsiL,UAAAA,EACAtiL,KAAAA,EACAuiL,cAAelvD,GAAMrzH,GAAM4D,OAAOA,GAClC4+K,WAAY,KACZC,oBAAqB,KACrBC,eAAe,IAIbC,EAAiB,SAAC3iL,GAEf,OADW4kF,IAAao9F,EAAYjwI,MAAK,SAACpxB,GAAS,OAAAA,EAAK9d,OAAOwwH,GAAMrzH,GAAM,IAAI+hL,EAAQl/K,OAAOwwH,GAAMrzH,KAKpG7nB,EAAI,EAAGA,EAAI+pM,EAAmB/pM,IAAK,CAC1C,IAAM6nB,EAAOyhL,GAAQQ,EAAO9pM,EAAI+pM,GAChClqM,EAAI8M,KAAKs9L,GAAe,GAAI,EAAOpiL,EAAM06E,IACtB,IAAf1iG,EAAIE,SACNkiJ,EAAQt1I,KAAK9M,GACbA,EAAM,GACC0iG,GAAA,EAEX,CACA,IAAA,IAASviG,EAAI,EAAGA,EAAIupM,EAAMvpM,IAAK,CACvB,IAAA6nB,EAAOyhL,GAAQQ,EAAO9pM,GACtBmtJ,EAAYq9C,EAAe3iL,GACjChoB,EAAI8M,KAAKs9L,EAAe,EAAG98C,EAAWtlI,EAAM06E,IACzB,IAAf1iG,EAAIE,SACNkiJ,EAAQt1I,KAAK9M,GACbA,EAAM,GACC0iG,GAAA,EAEX,CAEA,GAAI1iG,EAAIE,OAAQ,CAEd,IADM,IAAA0qM,EAAmB,EAAI5qM,EAAIE,OACxBC,EAAI,EAAGA,EAAIyqM,EAAkBzqM,IAAK,CACzC,IAAM6nB,EAAOyhL,GAAQx4L,EAAK9Q,EAAI,GAC9BH,EAAI8M,KAAKs9L,EAAe,GAAG,EAAOpiL,EAAM06E,GAC1C,CACA0/C,EAAQt1I,KAAK9M,EACf,CAEO,OAAAoiJ,CACT,EAMayoD,GAAuB,kBAAmBxvD,GAAMA,KAAQzvH,OAAO,cAAa,EC3JlF,SAASk/K,GAASphM,GACvB,IAAQ0wB,EAAiBP,GAAU6a,IAA3Bta,aAEFshC,EAAQltB,EAAAA,SAAwB,CACpCs7J,mBAAoB,EACpBC,QAAS,KACTC,YAAa,GACbJ,gBAAiB,KACjBC,iBAAkB,KAClBkB,gBAAiB,KACjBL,eAAe,EACfM,YAAa,WAsGR,OAtDP5/J,EAAAA,OACE,WAAA,OAAM1hC,EAAMglB,cAAA,IACZ,WAAM,IAAAud,EAAA8kH,EACJr1F,EAAMouI,mBAAkF,QAA7D79J,EAAwB8kH,QAAxBA,EAAArnJ,EAAMglB,0BAAkBqiI,EAAAA,EAAA32H,EAAav3B,MAAM6rB,sBAAkB,IAAAud,EAAAA,EAAA,CAC1F,GACA,CAAEyoB,WAAW,IAEftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAM7G,KACZ,IAAA,SAAC+kB,GAzBH,IAA4B/kB,EA0BpB6G,EAAMkjG,SAzBRnrG,EADsBoB,EA2BH+kB,GAzBrB8zC,EAAMsuI,YAAcnnM,GAASA,EAAM3C,OAAS2C,EAAM6L,KAAI,SAACi6B,GAAS,OAAA0yG,GAAM1yG,EAAK,IAAI,CAACkiK,MAE1EnvI,EAAAsuI,YAAcnnM,EAAQ,CAACw4I,GAAMx4I,IAAU,CAACgoM,MAZlD,SAAwBhoM,GAClBpB,EAAQoB,GACJ64D,EAAAquI,QAAUlnM,GAASA,EAAM3C,OAASm7I,GAAMx4I,EAAM,IAAMgoM,KAE1DnvI,EAAMquI,QAAUlnM,EAAQw4I,GAAMx4I,GAASgoM,IAE3C,CA+BMI,CAAerjL,EAEnB,GACA,CAAE8sC,WAAW,IAEftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAMue,IACZ,IAAA,SAACL,GA1DH,IAA4BK,EACpB2hL,KADoB3hL,EA2DLL,GA1DU/hB,SAAS,GAAAi1B,OAAG7S,GAAQ,IAAM4iL,KAAuB5iL,QAC3E4+B,MAAM+iJ,IAAoBA,EAAkB,IAC/CluI,EAAMkuI,gBAAkBA,EAyD1B,GACA,CAAEl1I,WAAW,IAEftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAMwe,KACZ,IAAA,SAACN,GA1DH,IAA6BM,EACrB2hL,KADqB3hL,EA2DLN,GA1DW/hB,YAASi1B,OAAG5S,GAAS,IAAMriB,SAASglM,KAAuBj/K,OAAO,KAAM,KACpGi7B,MAAMgjJ,IAAqBA,EAAmB,GAAKA,GAAoB,KAC1EnuI,EAAMmuI,iBAAmBA,EAyD3B,GACA,CAAEn1I,WAAW,IAEftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAMu/L,oBACZ,IAAA,SAACrhL,GACC8zC,EAAMgvI,cAAgB9iL,CACxB,GACA,CAAE8sC,WAAW,IAEftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAM48E,IACZ,IAAA,SAAC1+D,GACC8zC,EAAMqvI,gBAAkBnjL,CAC1B,GACA,CAAE8sC,WAAW,IAEftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAMmuB,KACZ,IAAA,SAACjQ,GACW,SAANA,IAAc8zC,EAAMsvI,YAAc,SAC5B,SAANpjL,IAAc8zC,EAAMsvI,YAAc,SACxC,GACA,CAAEt2I,WAAW,IAER,CACLgH,MAAAA,EACAwvI,QArGF,WACE,IAAMnB,EAAUc,KAChBnvI,EAAMquI,QAAUA,EACVruI,EAAAkuI,gBAAkBG,EAAQ9hL,OAChCyzC,EAAMmuI,iBAAmBhkM,SAASkkM,EAAQn+K,OAAO,KAAM,GACzD,EAiGEu/K,gBAjEF,SAAyB/vD,GACvB,IAAIgwD,GAAK,EAIF,OAHF1vI,EAAMgvI,gBACJU,EAAQ,IAARhwD,GAAqB,IAARA,GAEbgwD,CACT,EA6DF,okBCvHA,IAAMC,GAAiC,WAA0C,MAAA,CAC/EpvK,UADsCxzB,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,KAAAA,UAAA,GAEtCizB,UAAU,EAEV4qD,KAAM,CACJrqD,SAAS,EACTqvK,gBAAiB,CAAC,GAGpBrjL,KAAM,CACJgU,SAAS,EACT8jG,YAAa,CAAC,GAGhB73G,MAAO,CACL+T,SAAS,EACT8jG,YAAa,CAAC,GAGhBwrE,QAAS,CACPtvK,SAAS,EACTuvK,uBAAwB,CAAC,EACzBC,uBAAwB,CAAC,GAG3BnoL,QAAS,CACP2Y,SAAS,EACTyvK,sBAAuB,CAAC,EACxBC,wBAAyB,CAAC,GAE9B,EC9BgB,SAAAC,GAAcliM,EAAwBgyD,GACpD,IAAAud,EAA4Bp/C,GAAU6a,IAA9BjuB,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aAELyxK,EAAkBxqL,EAAAA,UAAkC,WACjD,OAAA3X,EAAMwoB,MAAQzL,EAAE2T,EAAav3B,MAAMqvB,MAAM9f,MAAM,IACxD,IACA,SAAS05L,EAAeC,GACtB,IHQEX,EACEY,EGTEC,EAAWJ,EAAgBhpM,MAC1B,OAAA0C,EAAS0mM,IAAaA,EAASF,EAAU,GAAKE,EAASF,EAAU,IHOtEX,EAAK,IACHY,EGRwFD,EHQ3E7qM,cACLqoM,KACZ6B,EAAK7B,GAAWyC,IAEXZ,EGXP,CACM,IAAAc,EAAiB7qL,EAAAA,UAA0B,WAK/C,IAJA,IAAM+pL,EAAsB,GAInBjrM,EAAIu7D,EAAMouI,mBAAoB3pM,GAFlB,EAE4BA,IAC/CirM,EAAGt+L,KAAK,CACN41F,IAAKviG,EACLk1D,QAASy2I,EAAe3rM,KAGxB,GAAAu7D,EAAMouI,mBATW,EAUnB,IAAA,IAAS3pM,EAVU,EAUDA,EAAIu7D,EAAMouI,mBAAoB3pM,IAC9CirM,EAAGt+L,KAAK,CACN41F,IAAKviG,EACLk1D,QAASy2I,EAAe3rM,KAIvB,OAAAirM,CACT,IAEO,MAAA,CACLc,eAAAA,EAEJ,okBCjCA,IAAMC,GAAwB,CAC5B1lK,MAAO,QACP2lK,SAAU,WACVC,YAAa,cAGfC,GAAextK,kBAAgB,CAC7Bx9B,KAAM,gBACN0qC,cAAc,EACdtiC,MAAO,CACLi/B,KAAM,CACJnjC,KAAMxE,OACN6rB,QAAS,kBAAoB,IAAA,GAE/B8B,aAAc,CACZnpB,KAAMgmC,QACN3e,aAAS,GAEXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,kBAAc,IAAA,GAEzBpG,EAAGjjB,SACHJ,OAAQpC,OACR8nM,KAAM,CAACrmM,OAAQe,UACfulM,WAAY,CAACtmM,OAAQe,WAEvB42C,QAAWp5C,OAAOkP,OAAOi8L,KACzBptK,eAAMr1B,EAAAuiC,GAAiB,IC6BjBsgK,ED7BSlyJ,EAAApO,EAAAoO,KACPzN,EAAgBjC,KAChBjH,GC2BF6oK,EAAc1xK,GAAe6Z,IAe5B,CACL83J,cAdoBnrL,EAAAA,UAAmB,WAChC,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAwB,qBACjD,IAaE4pM,kBAZwBprL,EAAAA,UAAiB,WACzC,MAAA,GAAAyZ,OAAUyxK,EAAY1pM,MAAA,yBACxB,IAWE6pM,qBAV2BrrL,EAAAA,UAAmB,WACvC,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAgC,6BACzD,IASE8pM,sBAR4BtrL,EAAAA,UAAmB,WACxC,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAgC,6BACzD,MDvCU04B,EAAWR,KAAXQ,OAEF0xE,EAAe5rF,EAAAA,UAAiB,WAChC,GAAoB,UAApB3X,EAAMi/B,KAAK29C,KAAkB,CAAA,IAAArzB,EAAA25I,EACzBC,EAAUnjM,EAAMi/B,KAAK3gB,KAAKgC,UAEzB,OADU6iL,EAAU,KAA0D,QAA1D55I,EAA6B,QAA7B25I,EAAOljM,EAAMilB,oBAAgB,IAAAi+K,EAAAA,EAAAljM,EAAMtG,OAAOurB,oBAAgB,IAAAskC,GAAAA,GAC9En4B,IAAAA,OAAe+xK,GAAYA,CACpC,CAEA,OADYnjM,EAAM+c,EAAE/c,EAAMtG,OAAO+uB,WAAW/f,MAAM,KACvC1I,EAAMi/B,KAAK3gB,KAAK8B,WAAW5oB,WACxC,IACM4rM,EAAYzrL,EAAAA,UAAkB,WAClC,MAAuB,SAAhB3X,EAAMmuB,KACf,IACM6D,EAAWra,EAAAA,UAAkB,WACjC,MAA2B,UAApB3X,EAAMi/B,KAAK29C,MAA4C,IAAxB58E,EAAMi/B,KAAK0hK,QACnD,IACM0C,EAAU1rL,EAAAA,UAAS,WACvB,IAAA2rL,EAAiDtjM,EAAMi/B,KAA/C29C,EAAM0mH,EAAN1mH,KAAMt+D,EAAAglL,EAAAhlL,KAAMuiL,EAAeyC,EAAfzC,cAAej9C,EAAA0/C,EAAA1/C,UAC7BplJ,EAAM,IAAID,KACVglM,EACK,SAAT3mH,EACIp+E,EAAI4hB,aAAe9B,EAAK8B,YAAc5hB,EAAI0hB,gBAAkB5B,EAAK4B,cACjE2gL,IAAkBlvD,KAAQzvH,OAAO,cAChC,MAAA,CACL8X,EAAI8oK,cAAc3pM,MAAAF,EAAAA,EAAAA,EAAA,CAAA,EAEf44B,EAAO14B,MAAM64B,SAAWA,EAAS74B,OACjC04B,EAAO14B,MAAMk5B,QAAUuxH,GACvB5pH,EAAI+oK,kBAAkB5pM,MAAQoqM,GAGrC,IACMC,EAAY,SAAChpM,GACjB,IAAIw3B,EAAS74B,MAAb,CACM,IAAAsqM,EAAWhB,GAAsBjoM,EAAEsB,MACzC60C,EAAK8yJ,EAAUjpM,EAFK,GAiBtB,OAAO,WACL,OACEwF,EAAMi/B,MAAArI,EAAAO,YAAA,KAAA,CAAAN,MACOwsK,EAAQlqM,MAAAouC,QAAgBi8J,EAAAE,WAAuBF,EAAWG,cAAeH,GACjF,CAAAtgK,EAAc,YAAQ,EAAW,CAChCtE,sEAfM5E,EAAIgpK,qBAAqB7pM,OAAQ,CAAAoqG,EAAapqG,mCAC9C6gC,EAAIipK,sBAAsB9pM,OACnCiqM,CAAAA,EAAUjqM,OACT+pC,EAAc,kBAAc,EAAW,CACrC7D,OAAQ7I,GAAKx2B,GAAAA,EAAMi/B,YAYnBI,OAAQ7I,GAAKx2B,GAAAA,EAAMi/B,UAM/B,ukBEvEF,IAAA2kK,GAAexuK,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP+C,EAAgBjC,KACtBsuC,EAA4Bp/C,GAAU6a,IAA9BjuB,EAAAwyD,EAAAxyD,EAAG2T,EAAa6+C,EAAb7+C,aAEXmzK,EAA4CzC,GAASphM,GAA7CgyD,EAAO6xI,EAAP7xI,MAAOwvI,EAAAqC,EAAArC,QAASC,EAAgBoC,EAAhBpC,gBAGlBznK,EDrCM,SAAiBh6B,EAAwBgyD,GACjD,IAAA6wI,EAAc1xK,GAAe6Z,IA0C5B,MAAA,CACLhQ,KAzCWrjB,EAAAA,UAAmB,WACvB,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,UAAAi4B,OAAYyxK,EAAY1pM,MAAAi4B,MAAAA,OAAUpxB,EAAMmuB,OACjE,IAwCE0vD,MAvCYlmE,EAAAA,UAAmB,WACxB,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,oBAAAi4B,OAAmByxK,EAAY1pM,MAAAi4B,aAAAA,OAAiB4gC,EAAMqvI,iBAC/E,IAsCEyC,QArCcnsL,EAAAA,UAAmB,WAC1B,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAgB,aACzC,IAoCEwvB,MAnCYhR,EAAAA,UAAmB,WACxB,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAc,WACvC,IAkCE4qM,eAjCqBpsL,EAAAA,UAAmB,WACjC,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAwB,qBACjD,IAgCE6qM,mBA/ByBrsL,EAAAA,UAAmB,WACrC,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAA6B,0BACtD,IA8BE8qM,WA7BiBtsL,EAAAA,UAAmB,WAC7B,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAoB,iBAC7C,IA4BE2sB,MA3BYnO,EAAAA,UAAmB,WACxB,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAc,WACvC,IA0BE+qM,UAzBgBvsL,EAAAA,UAAmB,WAC5B,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAmB,gBAC5C,IAwBEgrM,aAvBmBxsL,EAAAA,UAAmB,WAC/B,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAuB,oBAChD,IAsBEirM,cArBoBzsL,EAAAA,UAAmB,WAChC,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAwB,qBACjD,IAoBEkrM,UAnBgB1sL,EAAAA,UAAmB,WAC5B,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAmB,gBAC5C,IAkBEmrM,aAjBmB3sL,EAAAA,UAAmB,WAC/B,MAAA,IAAAyZ,OAAIyxK,EAAY1pM,MAAuB,oBAChD,IAiBF,CCrBgBorM,CAAiBvkM,EAAOgyD,GAG5BwwI,EAAmBN,GAAcliM,EAAOgyD,GAAxCwwI,eAGFgC,EJTM,SAAexkM,EAAwBgyD,GACrD,IAAQthC,EAAiBP,GAAU6a,IAA3Bta,aAEFxb,EAAUyC,EAAAA,UAA4B,WAC1C,IAAM8sL,EAAkB9yD,GAAMvgH,GAAAA,OAAG4gC,EAAMkuI,gBAAA,KAAA9uK,OAAmB4gC,EAAMmuI,mBAOzD,MANI,CACTa,cAAehvI,EAAMgvI,cACrBF,WAAY2D,EAAgB9iL,SAC5Bo/K,oBAAqB0D,EAAgBviL,OAAOliB,EAAMkiB,QAClD06D,KAAM5qB,EAAMqvI,gBAGhB,IACMqD,EAAa/sL,EAAAA,UAA8B,WAAM,IAAA4qB,EAAAoiK,EAC/Cz/K,UAAmBqd,EAA0B,QAA1BoiK,EAAA3kM,EAAMklB,wBAAoB,IAAAy/K,EAAAA,EAAAj0K,EAAav3B,MAAM+rB,wBAAoB,IAAAqd,GAAAA,EACtF,OAAAzpB,GAAUoM,GACLy8K,GAA+Bz8K,GAEjCsR,GAAAA,GAAA,CAAA,EACFmrK,MACAz8K,EAEP,IACMqN,EAAU5a,EAAAA,UAAkB,WAChC,QAAS+sL,EAAWvrM,OAASurM,EAAWvrM,MAAMo5B,OAChD,IAkCO,MAAA,CACLrd,QAAAA,EACAwvL,WAAAA,EACAnyK,QAAAA,EACAqyK,uBAhCF,SAAgChtM,GAC9B,IAAI8pM,GAAK,EACH90D,EAAO83D,EAAWvrM,MAIjB,OAHFyzI,GAASA,EAAKr6G,UAA0B,IAAfq6G,EAAKh1I,MAAoBg1I,EAAKh1I,IAAUg1I,EAAKh1I,GAAM26B,WAC1EmvK,GAAA,GAEAA,CACT,EA0BEmD,wBAnBO,SAAwBjtM,EAAc2sE,GAC7C,IAAIm9H,GAAK,EACH90D,EAAO83D,EAAWvrM,MAIjB,OAHHyzI,IAASA,EAAK56G,UAAa46G,EAAKh1I,IAASg1I,EAAKh1I,GAAM2sE,IAAcqoE,EAAKh1I,GAAM2sE,GAAWvyC,YACrF0vK,GAAA,GAEAA,CACT,EAaEoD,qBAZF,WACEtvK,EAAAA,UAAS,WACI34B,EAAAmD,EAAM2/L,qBAAuB3/L,EAAM2/L,sBAAwBzqL,GAAAA,EAAQ/b,OAChF,GACF,EAUF,CI1DuB4rM,CAAe/kM,EAAOgyD,GAGnCgzI,EAAcrtL,EAAAA,UAAwB,WAC1C,IAAK3X,EAAMsb,OAAStb,EAAMsb,MAAM9kB,OAAS,EAChC,OAAA,KAET,IAAAyuM,EAAAtoL,GAAiB3c,EAAMsb,MAAA,GAAhB4pL,EAAAD,EAAA,GAAI7oH,EAAE6oH,EAAA,GACb,OAAItzD,GAAMuzD,GAAI3jL,SAASowH,GAAMv1D,IACpB,CACLplF,KAAMkuM,EACNxxK,GAAI0oD,GAGD,CACLplF,KAAMolF,EACN1oD,GAAIwxK,EAER,IACS,SAAAC,EAAkC5mL,EAAcC,GACvD,IAAIwT,GAAW,EACf,GAAIgzK,EAAY7rM,OAAS6rM,EAAY7rM,MAAMnC,MAAQguM,EAAY7rM,MAAMu6B,GAAI,CACvE,IAAM0xK,EAAYzzD,GAAMqzD,EAAY7rM,MAAMnC,MAAMunB,OAC1CwgI,EAAUpN,GAAMqzD,EAAY7rM,MAAMu6B,IAAInV,OAC5C,GAAIA,IAAS6mL,EAEXpzK,EAAWxT,EADMriB,SAASw1I,GAAMqzD,EAAY7rM,MAAMnC,MAAMkrB,OAAO,KAAM,SAEvE,GAAW3D,IAASwgI,EAAS,CAE3B/sH,EAAWxT,EADIriB,SAASw1I,GAAMqzD,EAAY7rM,MAAMu6B,IAAIxR,OAAO,KAAM,GAEnE,CACF,CACO,OAAA8P,CACT,CAiBA0P,EAAAA,OACE,WACS,MAAA,CACLnjB,QAAA6S,OAAS4gC,EAAMkuI,iBACf1hL,MAAA4S,GAAAA,OAAU4gC,EAAMmuI,kBAEpB,IACA,SAACjiL,GACYle,EAAAA,EAAM07I,gBAAkB17I,EAAM07I,iBAAmBx9H,CAAAA,EAAAA,IAC5DsmL,EAAWM,sBACb,IAEF,IAAMO,EAAa,CACjBC,qBAAsB3tL,YAA4B,WAChD,IAAM+pL,EAAwB,GAC1BnB,EAAgBvuI,EAAMkuI,gBAAkB,GACxC34L,EAAcyqD,EAAMkuI,gBAAkB,GACtC8E,EAAY7rM,OAAS6rM,EAAY7rM,MAAMnC,MAAQguM,EAAY7rM,MAAMu6B,KACnE6sK,EAAQ5uD,GAAMqzD,EAAY7rM,MAAMnC,MAAMunB,OACtChX,EAAMoqI,GAAMqzD,EAAY7rM,MAAMu6B,IAAInV,QAGhCgiL,EAAQX,KACFW,EAAAX,IAENr4L,EAAMq4L,KACFr4L,EAAAq4L,IAGR,IAAA,IAASnpM,EAAI8pM,EAAO9pM,GAAK8Q,EAAK9Q,IAC5BirM,EAAGt+L,KAAK,CACNjK,MAAO1C,EACPgjD,MAAO18B,EAAE2T,EAAav3B,MAAM6uB,cAAe,CAAEzJ,KAAM9nB,IACnDu7B,UAAU,IAGP,OAAA0vK,CACT,IACA6D,oBAAqB5tL,YAAkB,WAC9B,OAAA6sL,EAAWI,uBAAuB,OAC3C,IACAY,qBAAsB7tL,YAAkB,WAC/B,OAAA6sL,EAAWK,wBAAwB,OAAQ,cACpD,IACAY,sBAAuB9tL,YAA4B,YA3DrD,WAA6B,IAAA+tL,EAAAC,EAC3B,GAAgBD,QAAZA,EAAAV,EAAY7rM,aAAZusM,IAAYA,GAAZA,EAAmB1uM,cAAQ2uM,EAAAX,EAAY7rM,aAAZwsM,OAAAA,EAAmBjyK,GAAI,CACpD,IAAM0xK,EAAYzzD,GAAMqzD,EAAY7rM,MAAMnC,MAAMunB,OAC1CwgI,EAAUpN,GAAMqzD,EAAY7rM,MAAMu6B,IAAInV,OACtCqnL,EAAWzpM,SAASw1I,GAAMqzD,EAAY7rM,MAAMnC,MAAMkrB,OAAO,KAAM,IACjEijL,EAAkCnzI,EAAMkuI,gBAAiBluI,EAAMmuI,oBAC3DnuI,EAAAmuI,iBACJnuI,EAAMkuI,kBAAoBkF,EACtBQ,EACA5zI,EAAMkuI,kBAAoBnhD,EAC1B,EACA/sF,EAAMmuI,iBAEhB,CACF,CA8CgB0F,GAEZ,IADA,IAAMnE,EAAwB,GACrBjrM,EPpIkB,EOoIOA,GPlIR,GOkIiCA,IAAK,CAC9D,IAAMu7B,EAAWmzK,EAAkCnzI,EAAMkuI,gBAAiBzpM,GAC1EirM,EAAGt+L,KAAK,CACNjK,MAAO1C,EACPgjD,MAAO18B,EAAE2T,EAAav3B,MAAM8uB,eAAgB,CAAEzJ,MAAO/nB,IACrDu7B,SAAAA,GAEJ,CACO,OAAA0vK,CACT,IACAoE,qBAAsBnuL,YAAkB,WACtC,MAAiC,UAA1Bq6C,EAAMqvI,iBAA+BmD,EAAWI,uBAAuB,QAChF,IACAmB,sBAAuBpuL,YAAkB,WAChC,OAAA6sL,EAAWK,wBAAwB,QAAS,mBAIjDmB,EAAa,CACjB9+E,WAAYvvG,YAAuB,WAC1B,MAAA,CACL,CAAExe,MAAO,QAASsgD,MAAO18B,EAAE2T,EAAav3B,MAAMgvB,aAC9C,CAAEhvB,MAAO,OAAQsgD,MAAO18B,EAAE2T,EAAav3B,MAAM+uB,YAEjD,IACAmiH,UAAW1yH,YAAkB,WACpB,OAAA6sL,EAAWI,uBAAuB,OAC3C,IACAz5J,WAAYxzB,YAAkB,WACrB,OAAA6sL,EAAWK,wBAAwB,OAAQ,uBAIhDoB,EAAa,CACjB9jK,KAAMxqB,YAAiB,WACd,OAAAq6C,EAAMgvI,cAAgBjkL,EAAE2T,EAAav3B,MAAMivB,aAAerL,EAAE2T,EAAav3B,MAAMkvB,YACxF,IACA69K,MAAOvuL,YAAiB,WAChB,IAAA6F,EAAIgnL,EAAWE,WAAWvrM,MAAM0oM,QACtC,OAAO7vI,EAAMgvI,cAAgBxjL,EAAEukL,uBAAyBvkL,EAAEskL,sBAC5D,IACAz3D,UAAW1yH,YAAkB,WAEzB3X,MAAgB,SAAhBA,EAAMmuB,OACNq2K,EAAWI,uBAAuB,YAClCJ,EAAWI,uBAAuB,UAEtC,IACAz5J,WAAYxzB,YAAkB,WACtB,IAAA+G,EAAIszC,EAAMgvI,cAAgB,yBAA2B,yBACpD,OAAAwD,EAAWK,wBAAwB,UAAWnmL,OAInDynL,EAAa,CACjBhkK,KAAMxqB,YAAiB,WACd,MAA0B,UAA1Bq6C,EAAMqvI,gBAA8BtkL,EAAE2T,EAAav3B,MAAMmvB,OAASvL,EAAE2T,EAAav3B,MAAMovB,UAChG,IACA29K,MAAOvuL,YAAiB,WAChB,IAAA6F,EAAIgnL,EAAWE,WAAWvrM,MAAMygB,QACtC,MAAiC,UAA1Bo4C,EAAMqvI,gBAA8B7jL,EAAEwkL,sBAAwBxkL,EAAEykL,uBACzE,IACA53D,UAAW1yH,YAAkB,WAC3B,MAAuB,SAAhB3X,EAAMmuB,OAAoBq2K,EAAWI,uBAAuB,UACrE,IACAz5J,WAAYxzB,YAAS,WACnB,IAAM+G,EAA8B,UAA1BszC,EAAMqvI,gBAA8B,wBAA0B,0BACjE,OAAAmD,EAAWK,wBAAwB,UAAWnmL,OA2FnD0nL,EAAgB,SAACC,EAAoC7rM,EAAe8rM,GACpE,GAAAzpM,EAAWmD,EAAMqmM,IAAkB,CACrC,IAAMnxL,EAA2B,CAC/BkqL,KAAM5oK,GAAAA,GACD8vK,CAAAA,EAAAA,GACA9B,EAAWtvL,QAAQ/b,OAExBqB,EAAAA,GAEDwF,EAAMqmM,GAA6BnxL,EACtC,GAEIsuL,EAAY,SAAChpM,EAAe8rM,GAC1B,IAAA5oL,EAAIi0H,GAAM20D,EAAShoL,MACrBte,EAAMkjG,SACJlxC,EAAMsuI,YAAYjwI,MAAK,SAACpxB,UAASA,EAAK9d,OAAOzD,EAAE,IAC3Cs0C,EAAAsuI,YAAc3kL,GAAOq2C,EAAMsuI,aAAa,SAACrhK,UAAUA,EAAK9d,OAAOzD,MAE/Ds0C,EAAAsuI,YAAYl9L,KAAKsa,GAGzBs0C,EAAMquI,QAAU3iL,EAEJ0oL,EAAA,cAAe5rM,EAAG8rM,IAE5BC,EAAkB,SAAC/rM,EAAe8rM,GACxBF,EAAA,oBAAqB5rM,EAAG8rM,IAElCE,EAAiB,SAAChsM,EAAe8rM,GACjCtmM,EAAMw/L,wBACRhlM,EAAEwzE,iBAEUo4H,EAAA,mBAAoB5rM,EAAG8rM,IAGjCG,EAAiB9uL,EAAAA,UAA2B,WAEzC,OAD2B+uL,GAA2B1mM,EAAOgyD,EAEtE,IAmDM20I,EAAgBhvL,EAAAA,UAA2B,WAK/C,IAJA,IAAM+pL,EAAuB,GACvBkF,ENjVuB,SAAC5mM,EAAwBgyD,GAK1D,IAJA,IAAyBzzC,EAA+ByzC,EAAhDkuI,gBAAuBG,EAAyBruI,EAAzBquI,QAASC,EAAgBtuI,EAAhBsuI,YAChCp+K,EAAqBliB,EAArBkiB,OAAQghF,EAAaljG,EAAbkjG,SAEV0jG,EAA4B,GAACruK,EAAA,SAAAygE,GAEjC,IAAM16E,EAAO,IAAI/f,KAAKggB,EAAMy6E,EAAM,GAC5B4qD,EAAY1gD,IACZo9F,EAAYjwI,MAAK,SAACpxB,GAAA,OAASA,EAAK1gB,SAAWA,GAAQpiB,SAAS8iC,EAAK/c,OAAO,KAAM,MAAQ82E,CAAG,IAC3FqnG,EAAQ9hL,SAAWA,GAAQpiB,SAASkkM,EAAQn+K,OAAO,KAAM,MAAQ82E,EACrE4tG,EAAUxjM,KAAK,CACbw5E,KAAM,OACNgnE,UAAAA,EACAtlI,KAAAA,EACAuiL,cAAelvD,GAAMrzH,GAAM4D,OAAOA,GAClC4+K,WAAY,KACZC,oBAAqB,KACrBC,eAAe,KAZVhoG,EDjDwB,ECiDGA,GD/CJ,GC+C+BA,IAAOzgE,EAAAygE,GAgB/D,OAAA4tG,CACT,CM2TwCF,CAA0B1mM,EAAOgyD,GAC7D60I,EAAWxmM,KAAKqL,KAAKk7L,EAAUpwM,OPhXD,GOiXhCyE,EAAQ,EACHxE,EAAI,EAAGA,GAAKowM,EAAUpwM,IAAK,CAElC,IADA,IAAM2iD,EAAsB,GACnB7e,EAAI,EAAGA,GPpXkB,EOoXeA,IAC3C6e,EAAAh2C,KAAKwjM,EAAU3rM,IACVA,GAAA,EAEXymM,EAAGt+L,KAAKg2C,EACV,CACO,OAAAsoJ,CACT,IA8BA,OAAO,WACL,OAAA9qK,EAAAA,YAAA,MAAA,CAAAC,MACcmD,EAAIgB,KAAK7hC,OAClBqrM,CAAAA,EAAWjyK,QAAQp5B,OA/NxBy9B,EAAAA,YAAA,MAAA,CAAAC,MACcmD,EAAI8pK,QAAQ3qM,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MACVmD,EAAIrR,MAAMxvB,OACnB,CAAA+pC,EAAc,YAAQ,EAAW,CAChC7D,OAAQ7I,GAAA,CAAA,EAAKguK,EAAWtvL,QAAQ/b,sCAGxB6gC,EAAI+pK,eAAe5qM,OAAA,CAC5BksM,EAAWE,oBAAoBpsM,OAC9By9B,EAAAA,YAAA,MAAA,CAAAC,MAAYmD,EAAIgqK,mBAAmB7qM,OAAA,CAAAy9B,EAAAA,YAAAgmH,GAAAr4G,aAAA,CAAAygC,WAEtBhT,EAAMkuI,yDAANluI,EAAMkuI,wBACTluI,EAAMsvI,YACZtzG,WAAW,GACPw2G,EAAWE,WAAWvrM,MAAMolB,KAAK83G,YACrC,CAAArkG,SAAUqzK,EAAWG,qBAAqBrsM,cACjCksM,EAAWC,qBAAqBnsM,QAAA,QAI9CksM,EAAWS,qBAAqB3sM,OAC/By9B,EAAAO,YAAA,MAAA,CAAAN,MAAYmD,EAAIgqK,mBAAmB7qM,OAAA,CAAAy9B,EAAAA,YAAAgmH,GAAAr4G,aAAA,CAAAypD,WAEpB,EAAAhpB,WACFhT,EAAMmuI,iBAAA,sBAAA,SAAA3lE,GAAA,OAANxoE,EAAMmuI,iBAAA3lE,CAAA,EAAAj2H,KACTytD,EAAMsvI,aACRkD,EAAWE,WAAWvrM,MAAMqlB,MAAM63G,YACtC,CAAArkG,SAAUqzK,EAAWU,sBAAsB5sM,cAClCksM,EAAWI,sBAAsBtsM,QAAA,QAI/C6sM,EAAW37D,UAAUlxI,OAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MACRmD,EAAIgqK,mBAAmB7qM,MAAO05B,MAAA,gBAAA,CAAA+D,EAAAA,YAAAkwK,GAAAviK,aAAA,CAAAygC,WAE7BhT,EAAMqvI,gBACf,sBAAA,SAAA7mE,GAAA,OADSxoE,EAAMqvI,gBACf7mE,CAAA,EAAAlzF,QAAA,iBAAA/iC,KACMytD,EAAMsvI,aACRkD,EAAWE,WAAWvrM,MAAMyjF,KAAKglH,gBACrC,CAAA5vK,SAAUg0K,EAAW76J,WAAWhyC,MAAAmvD,SACtBk8I,EAAWM,wBAvOVvnL,EAyOV80B,EAAA2zJ,EAAW9+E,WAAW/tH,MAAM6L,KAAI,SAACi6B,GAAA,OAAArI,EAAAA,YAAA2rI,GAAA,CAAA/pK,IACbymC,EAAK9lC,MAAAA,MAAc8lC,EAAK9lC,OACxC,CAAAgqB,QAAA,WAAA,MAAA8b,CAAAA,EAAKwa,MACR,OA5OS,mBAAAl8B,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA6OV80B,EAAA,CAAAlvB,QAAA,WAAA,MAAA,CAAAkvB,EAAA,OAKN4zJ,EAAW57D,UAAUlxI,OACpBy9B,EAAAO,YAAA,MAAA,CAAAN,MAAYmD,EAAIgqK,mBAAmB7qM,OACjC,CAAAy9B,EAAAA,YAAAmwK,GAAAxiK,aAAA,CAAA1N,MACSmD,EAAIiqK,WAAW9qM,MAAAg1B,MACf6jC,EAAMgvI,cAAgB,UAAY,UACzCz8L,KAAA,SACI0hM,EAAWC,MAAM/sM,MAAA,CAAA64B,SACXi0K,EAAW96J,WAAWhyC,MAAAouC,QACvB,WACDyqB,EAAAgvI,eAAiBhvI,EAAMgvI,cAC7BwD,EAAWM,sBACb,+BAECmB,EAAW9jK,KAAKhpC,MACnB,MAGHgtM,EAAW97D,UAAUlxI,OACpBy9B,EAAAO,YAAA,MAAA,CAAAN,MAAYmD,EAAIgqK,mBAAmB7qM,OAAA,CAAAy9B,EAAAA,YAAAmU,GAAAxG,aAAA,CAAAhgC,KAEzBytD,EAAMsvI,aACR6E,EAAWD,MAAM/sM,MAAA,CAAA64B,SACXm0K,EAAWh7J,WAAWhyC,MAChCouC,QAAS,WACCi6J,GACV,+BAEC2E,EAAWhkK,KAAKhpC,MACnB,UAgJqCy9B,EAAAO,YAAA,MAAA,CAAAN,MAC/BmD,EAAI6jD,MAAM1kF,OAAA,CAAkC,UAA1B64D,EAAMqvI,gBAjGxCzqK,EAAAA,YAAA,QAAA,CAAAC,MACgBmD,EAAIlU,MAAM3sB,OAAA,CAAAy9B,EAAAO,YAAA,QAAA,CAAAN,MACRmD,EAAIkqK,UAAU/qM,OAAA,CAAAy9B,EAAAO,YAAA,KAAA,CAAAN,MACfmD,EAAImqK,aAAahrM,OACzBqpM,CAAAA,EAAerpM,MAAM6L,KACpB,SAACi6B,EAAMhkC,GACL,OAAAwmM,EAAgBxiK,EAAK+5D,MAAGpiE,EAAAA,YAAA,KAAA,CAAAC,MACXmD,EAAIoqK,cAAcjrM,OAC1BpB,CAAAA,EAAQiI,EAAMwoB,MACXxoB,EAAMwoB,KAAKvtB,GACXioC,EAAc,YAAQ,EAAW,CAC/BtE,YAAahI,EAAAO,YAAA,OAAA,KAAA,CAAO8H,EAAK0sB,UACzBtsB,OAAQ,CAAEqyG,IAAKzyG,EAAK+5D,QAIlC,QAAApiE,EAAAA,YAAA,QAAA,CAAAC,MAIUmD,EAAIqqK,UAAUlrM,OACzBstM,CAAAA,EAAettM,MAAM6L,KAAI,SAACwjB,EAAMw+K,oCACpBhtK,EAAIsqK,aAAanrM,QACzBqvB,EAAKxjB,KACJ,SAACi6B,EAAMgoK,GAAA,OACJj1I,EAAMgvI,eAAiB/hK,EAAKyyG,IAAM,IACjC96G,EAAAO,YAAAyrK,GAAA,CAAApqM,IAAA,KAAA44B,OACY41K,EAAA51K,KAAAA,OAAa61K,GACvBhoK,KAAMA,EACN9Q,MAAOnuB,EAAMmuB,MAAApR,EACVA,EAAArjB,OACKg3B,EAAav3B,MACrBimM,KAAMp/L,EAAMo/L,KAAAC,WACAr/L,EAAMq/L,wBACJr/L,EAAMilB,aACpBsiB,QAAS,SAAC/sC,GAAA,OAAkBgpM,EAAUhpM,EAAGykC,EAAI,EAAAykK,WACjC,SAAClpM,GAAkB,OAAA+rM,EAAgB/rM,EAAGykC,EAClD,EAAAioK,aAAc,SAAC1sM,GAAA,OAAkBgsM,EAAehsM,EAAGykC,EAAI,GAAAzI,GACzC2J,CAAAA,EAAAA,GAGtB,KACF,QAuBRvJ,EAAAA,YAAA,QAAA,CAAAC,MACgBmD,EAAIlU,MAAM3sB,OAAA,CAAAy9B,EAAAO,YAAA,QAAA,CAAAN,MACRmD,EAAIqqK,UAAUlrM,OACzBwtM,CAAAA,EAAcxtM,MAAM6L,KAAI,SAACo6L,EAAM+H,oCACnBntK,EAAIsqK,aAAanrM,OACzB,CAAAimM,EAAKp6L,KAAI,SAACi6B,EAAMgoK,4CAEHE,EAAA/1K,KAAAA,OAAa61K,QACjBhoK,EAAA9Q,MACCnuB,EAAMmuB,MAAApR,EACVA,EACHrjB,OAAQg3B,EAAav3B,MAAAimM,KACfp/L,EAAMo/L,KAAAC,WACAr/L,EAAMq/L,WAAAp6K,aACJjlB,EAAMilB,aAAAsiB,QACX,SAAC/sC,GAAA,OAAkBgpM,EAAUhpM,EAAGykC,eAC7B,SAACzkC,UAAkB+rM,EAAgB/rM,EAAGykC,EAAI,EAAAioK,aACxC,SAAC1sM,GAAA,OAAkBgsM,EAAehsM,EAAGykC,WACrCkB,GAEjB,KACH,YAtNY,IAAMkS,EA9LH90B,EAma3B,ICrbW6pL,GAAWzgK,GAAYi9J,ICArByD,GAAA,CAEb7hJ,QAAS,CACP1pD,KAAM,CAAC/C,OAAQe,WAGjB6iM,OAAQ,CACN7gM,KAAM,CAAC/C,OAAQe,WAGjBo+C,SAAU,CACRp8C,KAAMgmC,QACN3e,SAAS,GAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBwtM,MAAO,CACLxrM,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBytM,YAAa,CACXzrM,KAAM,CAAC/C,OAAQe,WAGjBw2K,OAAQ,CACNx0K,KAAM,CAAC/C,OAAQe,WAGjB0tM,OAAQ,CACN1rM,KAAM,CAAC/C,OAAQe,WAGjB2tM,eAAgB3lK,QAEhB4lK,YAAa5lK,QAEbhQ,QAAS,CACPh2B,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXikB,aAAc,CACZtrC,KAAMxE,QAGRqwM,OAAQ7lK,QAERv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,SAASjnB,SAASinB,EACtC,GAGF4vB,OAAQ,CACNvyD,KAAM/C,OACNoqB,QAAS,IAGXykL,SAAU,CACR9rM,KAAM,CAAC/C,OAAQe,WAGjBq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,UAAW,WAAWjnB,SAASinB,EACnD,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,YClFnB,IAAA+tM,GAAezyK,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACPN,EAAiBU,KACjByK,EAAiB7Z,GAAe,QAC9BG,EAASD,KAATC,KAEFw2K,EAAUnwL,EAAAA,UAAS,WACjB,IAAAowL,EAAe,CAAC/8J,EAAe7xC,OAO9B,MALY,UAAf6G,EAAMuE,MAAkBwjM,EAAa3kM,KAAK,GAAAguB,OAAGE,EAAKn4B,MAAM6G,EAAMuE,QAC9DvE,EAAMk4C,UAAuB6vJ,EAAA3kM,KAAAguB,GAAAA,OAAQ4Z,EAAe7xC,qBACpD6G,EAAM2nM,QAAqBI,EAAA3kM,KAAAguB,GAAAA,OAAQ4Z,EAAe7xC,mBAClD6G,EAAM0nM,aAA0BK,EAAA3kM,KAAAguB,GAAAA,OAAQ4Z,EAAe7xC,yBAEpD4uM,CACT,IAEMC,EAAYrwL,EAAAA,UAAS,WACzB,IAAMowL,EAAe,CAAA32K,GAAAA,OAAI4Z,EAAe7xC,MAAe,aAChD6G,OAAAA,EAAMynM,eACTM,EAAa32K,OAAOA,GAAAA,OAAG4Z,EAAe7xC,MAAA,sBACtC,CAAA,GAAAi4B,OAAI4Z,EAAe7xC,MAAe,YACxC,IAEM8uM,EAAmB92K,GAAe,wBAClC+2K,EAAkB/2K,GAAe,gBACjCg3K,EAAiBh3K,GAAe,eAChCi3K,EAAoBj3K,GAAe,kBACnCk3K,EAAuBl3K,GAAe,qBACtCm3K,EAAan3K,GAAe,iBAE5Bo3K,EAAUp3K,GAAe,cACzBq3K,EAAWr3K,GAAe,eAC1Bs3K,EAAYt3K,GAAe,gBAC3Bu3K,EAAmBv3K,GAAe,wBAIlCw3K,EAAYhxL,EAAAA,UAAS,WAAA,MAAsB,YAAhB3X,EAAMmuB,SAEjCy6K,EAAYjxL,EAAAA,UAAS,WAAA,OAAM3X,EAAM2oB,OAASwX,EAAMxX,SAChDkgL,EAAalxL,EAAAA,UAAS,WAAA,OAAM3X,EAAMwnM,QAAUrnK,EAAMqnK,UAClDsB,EAAenxL,EAAAA,UAAS,WAAA,OAAM3X,EAAM4nM,UAAYznK,EAAMynK,YACtDmB,EAAapxL,EAAAA,UAAS,WAAA,OAAM3X,EAAM28L,QAAUx8J,EAAMw8J,UAClDqM,EAAkBrxL,EAAAA,UAAS,WAAA,OAAM3X,EAAMunM,aAAepnK,EAAMonK,eAC5D0B,EAAatxL,EAAAA,UAAS,WAAA,OAAM3X,EAAMquD,QAAUluB,EAAMkuB,UAClD66I,EAAcvxL,EAAAA,UAAS,WAAA,OAAM3X,EAAMwlD,SAAWrlB,EAAMqlB,WACpD2jJ,EAAaxxL,EAAAA,UAAS,WAAA,OAAM3X,EAAMswK,QAAUnwI,EAAMmwI,UAClD84B,EAAYzxL,EAAAA,UAAS,WAAA,OAAM3X,EAAMsnM,OAASnnK,EAAMmnK,SAChD+B,EAAc1xL,EAAAA,UAAS,WAAA,OAAM3X,EAAM8xB,SAAWqO,EAAMrO,WACpDw3K,EAAc3xL,EAAAA,UAAS,WAAA,OAAM3X,EAAMipB,SAAWkX,EAAMlX,SAAWjpB,EAAAA,SAAiBmgC,EAAa,WAG7FopK,EAAiB5xL,EAAAA,UACrB,WAAA,OACEkxL,EAAW1vM,OACXyvM,EAAUzvM,OACV2vM,EAAa3vM,OACb6vM,EAAgB7vM,OAChB4vM,EAAW5vM,OACV8vM,EAAW9vM,OAASwvM,EAAUxvM,OAC9B+vM,EAAY/vM,QAAUwvM,EAAUxvM,KAAA,IAI/BqwM,EAAiB7xL,EAAAA,UAAS,WAAA,OAAMwxL,EAAWhwM,OAAU+vM,EAAY/vM,OAASwvM,EAAUxvM,SA2B1F,OAAO,WACL,IALMswM,EA7FalsL,EAkGb0L,EACJ2N,EAAAO,YAAA,MAAA,CAAAN,MAAYixK,EAAQ3uM,OACjBowM,CAAAA,EAAepwM,MA1BhB0vM,EAAW1vM,MAAcy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYmxK,EAAU7uM,OAAQ0mC,CAAAA,EAAe,YAExEjJ,EAAAA,YAAA,MAAA,CAAAC,MAAYmxK,EAAU7uM,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MACRoxK,EAAiB9uM,OAAA,CAC1B4vM,EAAW5vM,OAASy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYqxK,EAAgB/uM,OAAQ,CAAA0mC,EAAe,YAAlDjJ,EAAAO,YAAA,MAAA,KAAA,CAEnByxK,EAAUzvM,OAASy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYsxK,EAAehvM,OAAQ0mC,CAAAA,EAAe,WACrEipK,EAAa3vM,OAASy9B,EAAAO,YAAA,MAAA,CAAAN,MAAYuxK,EAAkBjvM,OAAQ0mC,CAAAA,EAAe,cAC3EmpK,EAAgB7vM,OAASy9B,EAAAO,YAAA,IAAA,CAAAN,MAAUwxK,EAAqBlvM,OAAQ,CAAA0mC,EAAe,qBAGnFqpK,EAAY/vM,QAAUwvM,EAAUxvM,OAASy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYyxK,EAAWnvM,OAAQ0mC,CAAAA,EAAe,aACvFopK,EAAW9vM,OAASy9B,EAAAO,YAAA,MAAA,CAAAN,MAAYyxK,EAAWnvM,OAAQ,CAAA0mC,EAAe,cAc1B,KACxCupK,EAAUjwM,OARTswM,EAAYrxL,GAASpY,EAAMsnM,OACjC1wK,EAAAA,YAAA,MAAA,CAAAC,MAAmB2xK,EAASrvM,OAAQswM,CAAAA,EAAY7yK,EAAAO,YAAA,MAAA,CAAA4jK,IAAU/6L,EAAMsnM,OAAgBznK,MAAAA,EAAe,YAOxD,KAClCypK,EAAYnwM,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MACC0xK,EAAQpvM,OAAQ,CAAA0mC,EAAe,YAAcA,EAAe,aAEzE2pK,EAAerwM,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MACF4xK,EAAUtvM,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MACR6xK,EAAiBvvM,QAAQ0mC,EAAe,YACnDqpK,EAAY/vM,OAASwvM,EAAUxvM,OAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAqByxK,EAAWnvM,OAAQ,CAAA0mC,EAAe,iBAM/F,OAAIwpK,EAAYlwM,MAEZ0mC,EAAe,YACbjJ,EAAAA,YAAA2U,GAAevrC,EAAMonC,aArHR,mBAAA7pB,EAqHuD0L,IArHvDspB,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAqHuD0L,6BAAAA,MAInEA,EAEX,ICxHWygL,GAAO/iK,GAAYkhK,ICCjB8B,GAAA,CAEbnkJ,QAAS,CACP1pD,KAAMnF,OAGRizM,OAAQ,CACN9tM,KAAM,CAAC/C,OAAQe,WAGjB6iM,OAAQ,CACN7gM,KAAM,CAAC/C,OAAQzB,OAAQwC,WAGzBmvB,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjB+vM,SAAU,CACR/tM,KAAM,CAAC/C,OAAQe,WAGjBiM,MAAO,CACLjK,KAAM,CAAC/C,OAAQe,WAGjBgwM,MAAO,CACLhuM,KAAM,CAAC/C,OAAQe,YC5BnB,IAAAiwM,GAAe30K,kBAAgB,CAC7Bx9B,KAAM,WACNoI,MAAAA,GACAq1B,MAAQ,WACA,IAAA2V,EAAiB7Z,GAAe,WAChC0O,EAAiBU,KACjB+V,EAAkBD,KAExB,OAAO,WACC,IAAAyzJ,EAAQjqK,EAAe,SACvB+pK,EAAS/pK,EAAe,UACxBgqK,EAAWhqK,EAAe,YAC1B95B,EAAQ85B,EAAe,SACvB2lB,EAAU3lB,EAAe,WACzB5W,EAAU4W,EAAe,WACzB88J,EAAS98J,EAAe,UACxBmqK,EAAqBryL,EAAAA,UAAS,WAAA,OAAMiyL,GAAUC,KAE9CI,EAAWH,EAAQlzK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,YAAiB2wM,CAAAA,IAAe,KAEjFI,EAAWnkM,EAAQ6wB,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,YAAiB4M,CAAAA,IAAe,KAEjFokM,EAAYxN,EAChB/lK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,aAAA,CAC3Bif,GAASukL,GAAU/lK,EAAAA,YAAA,MAAA,CAAAmkK,IAAU4B,EAAAvC,IAAA,GAAAvjK,MAAA,GAAAzF,OAAyB4Z,EAAe7xC,MAAuB,mBAAKwjM,MAAAA,IAElG,KAEEyN,EAAoBJ,EAAmB7wM,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAC5B4Z,EAAe7xC,MAAA,aAC3BywM,CAAAA,GAAAhzK,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAA0B4Z,EAAe7xC,MAAA,WAAA,CAAgBywM,IACzDC,GAAAjzK,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OAA4B4Z,EAAe7xC,MAAA,WAAgB0wM,CAAAA,MAkB1DQ,EACJzzK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,cAC3BixM,CAAAA,EAAAxzK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACc4Z,EAAe7xC,MAAA,aAAA,CAAkB8vB,IAC/CihL,EAlBiB,WAChB,IAAC1kJ,IAAYA,EAAQhvD,OAAe,OAAA,KAClC,IAAA8zM,EAAeh0J,EAAgBkP,GAEnC,OAAA5uB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe4Z,EAAe7xC,qBAC3BmxM,EAAatlM,KAAI,SAACw9C,EAAQvnD,GACzB,OAAA27B,EAAAA,YAAA+U,GAAA,CAAAnzC,IAAA44B,UAAAA,OAAuBn2B,GAASsJ,KAAA,QAAA+iC,QAAA,QA3CT,mBAAA/pB,EA4CpBilC,IA5CoBjQ,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA4CpBilC,EACH,CAAAr/B,QAAA,WAAA,MAAA,CADGq/B,EACH,IA7CuB,IAAAjlC,CA8CxB,MAUFgtL,KAKH,OAAA3zK,EAAAA,YAAA,MAAA,CAAAC,MAAYmU,EAAe7xC,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV4Z,EAAe7xC,MAAA,YAAA,CAC3BgxM,EACAE,IAEFJ,IAIT,ICpEW9zJ,GAAUxP,GAAYojK,ICApBS,GAAA,CAEbhoJ,OAAQ,CACN1mD,KAAMhC,UAGRytM,YAAa,CACXzrM,KAAM,CAAC/C,OAAQe,WAGjBwtB,MAAO,CACLxrB,KAAM,CAAC/C,OAAQe,WAGjB2wM,WAAY,CACV3uM,KAAMxE,QAGRiN,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAGjBgC,KAAM,CACJA,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAW,OAAQ,gBAAiB,eAAejnB,SAASinB,EAC/E,IC5CJisK,GAAet1K,kBAAgB,CAC7Bx9B,KAAM,iBACNy9B,MAAQ,WACN,OAAO,WAAA,OAAAuB,EAAAA,YAAA,MAAA,CAAAI,MAAA,MAAAC,OAAA,MAAAH,QAAA,YAAAuV,KAAA,OAAAnV,MAAA,8BAAA,CAAAN,EAAAO,YAAA,IAAA,CAAAe,GAEG,mEACJ,CAAAtB,EAAAO,YAAA,IAAA,CAAAe,GAAA,YAAA,CAAAtB,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,6CAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,0DAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,uFAAA2uB,KAAA,oCAAA,YAWR,ICjBFs+J,GAAev1K,kBAAgB,CAC7Bx9B,KAAM,kBACNy9B,MAAQ,WACN,OAAO,WAAA,OAAAuB,EAAAA,YAAA,MAAA,CAAAI,MAAA,MAAAC,OAAA,MAAAH,QAAA,YAAAuV,KAAA,OAAAnV,MAAA,8BAAA,CAAAN,EAAAO,YAAA,IAAA,CAAAe,GAEG,mDACJ,CAAAtB,EAAAO,YAAA,IAAA,CAAAe,GAAA,SAAA,CAAAtB,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,qBAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,qCAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,wLAAA2uB,KAAA,oCAAA,YAWR,ICjBFu+J,GAAex1K,kBAAgB,CAC7Bx9B,KAAM,WACNy9B,MAAQ,WACN,OAAO,WAAA,OAAAuB,EAAAA,YAAA,MAAA,CAAAI,MAAA,MAAAC,OAAA,MAAAH,QAAA,YAAAuV,KAAA,OAAAnV,MAAA,8BAAA,CAAAN,EAAAO,YAAA,IAAA,CAAAe,GAEG,kDACJ,CAAAtB,EAAAO,YAAA,IAAA,CAAAe,GAAA,SAAA,CAAAtB,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,mBAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,qEAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAA,YAAA,UAAA,YAAA,UAAAzZ,EAAA,wNAAA2uB,KAAA,oCAAA,MAAAzV,EAAAO,YAAA,OAAA,CAAAzZ,EAAA,qEAAA2uB,KAAA,oCAAA,YAoBR,IC1BFw+J,GAAez1K,kBAAgB,CAC7Bx9B,KAAM,UACNy9B,MAAQ,WACC,OAAA,WAAA,OAAAuB,EAAAA,YAAA,MAAA,CAAAI,MAAA,MAAAC,OAAA,MAAAH,QAAA,YAAAuV,KAAA,OAAAnV,MAAA,8BAAA,CAAAN,EAAAO,YAAA,OAAA,CAAA,YAAA,UAAA,YAAA,UAAAzZ,EAAA,mRAAA2uB,KAAA,WAAA,QAUT,ICbFy+J,GAAe11K,kBAAgB,CAC7Bx9B,KAAM,aACNy9B,MAAQ,WACC,OAAA,WAAA,OAAAuB,EAAAA,YAAA,MAAA,CAAAI,MAAA,MAAAC,OAAA,MAAAH,QAAA,YAAAuV,KAAA,OAAAnV,MAAA,8BAAA,CAAAN,EAAAO,YAAA,OAAA,CAAA,YAAA,UAAA,YAAA,UAAAzZ,EAAA,mTAAA2uB,KAAA,WAAA,QAUT,ICDF0+J,GAAe31K,kBAAgB,CAC7Bx9B,KAAM,SACNozM,WAAY,CAAEC,OAAQzO,IACtBx8L,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAgC,IAATmgC,EAAAoC,EAAApC,MACrB4rC,EAAsF7nC,EAAAA,OAAOlkC,GAA3FuE,EAAMwnE,EAANxnE,KAAa2mM,EAAYn/H,EAAnBzkD,MAAgC6jL,EAAkBp/H,EAA/Bw7H,YAAsC6D,EAAYr/H,EAAnBpjD,MAAmB7sB,EAAAiwE,EAAAjwE,KAC3E40B,EAAiBP,GAAU,SAA3BO,aACFhM,EAAcyM,GAAe,SAC7B+vD,EAAavpE,EAAAA,UAAS,WAAA,OAAM3X,EAAMwiD,QAAUriB,EAAMqiB,UAChDlxB,EAASD,KAATC,KACFuO,EAAiBU,KAEjB8qK,EAEF,CACFlkL,YAAa,CACXG,MAAOoJ,EAAav3B,MAAMmuB,MAAMH,aAAeujL,GAC/C/hL,MAAO+H,EAAav3B,MAAM+tB,UAAUC,aAEtCvB,QAAS,CACP0B,MAAOoJ,EAAav3B,MAAMmuB,MAAM1B,SAAWklL,GAC3CniL,MAAO+H,EAAav3B,MAAM+tB,UAAUtB,SAEtCwB,KAAM,CACJE,MAAOoJ,EAAav3B,MAAMmuB,MAAMF,MAAQyjL,GACxCliL,MAAO+H,EAAav3B,MAAM+tB,UAAUE,MAEtC,gBAAiB,CACfE,MAAOoJ,EAAav3B,MAAMmuB,MAAMD,cAAgBsjL,GAChDhiL,MAAO+H,EAAav3B,MAAM+tB,UAAUG,cAEtCJ,MAAO,CACLK,MAAOoJ,EAAav3B,MAAMmuB,MAAML,OAAS2jL,GACzCjiL,MAAO+H,EAAav3B,MAAM+tB,UAAUD,QAIlCqkL,EAAe3zL,EAAAA,UAAS,WAAA,MAAM,CAAC+M,EAAYvrB,MAAOm4B,EAAKn4B,MAAMoL,EAAKpL,WAClEoyM,EAAe,CAAAn6K,GAAAA,OAAI1M,EAAYvrB,MAAc,YAC7C+iM,EAAe,CAAA9qK,GAAAA,OAAI1M,EAAYvrB,MAAc,YAC7CqyM,EAAqB,CAAAp6K,GAAAA,OAAI1M,EAAYvrB,MAAoB,kBACzDsyM,EAAc,CAAAr6K,GAAAA,OAAI1M,EAAYvrB,MAAe,aAE7CuyM,EAAiB/zL,EAAAA,UAAS,WAAA,IAAAg0L,EAAA,eAAAA,EAAMN,EAAYvvM,EAAK3C,sBAAU,QAC3DyyM,EAAYj0L,EAAAA,UAAS,WAAA,IAAAk0L,EAAAC,EAAA,OAAMZ,EAAW/xM,QAASgnC,mBAAAA,EAAO7Y,aAAQ,IAAAukL,OAAA,EAAfA,EAAAp0M,KAAA0oC,MAAmC2rK,QAApBA,EAAKJ,EAAevyM,aAAf2yM,IAAeA,OAAfA,EAAAA,EAAsBxkL,UACzFshL,EAAYjxL,EAAAA,UAAS,WAAA,IAAAo0L,EAAAC,EAAA,OAAMZ,EAAWjyM,QAASgnC,mBAAAA,EAAOxX,aAAQ,IAAAojL,OAAA,EAAfA,EAAAt0M,KAAA0oC,MAAmC6rK,QAApBA,EAAKN,EAAevyM,aAAf6yM,IAAeA,OAAfA,EAAAA,EAAsBrjL,UACzFqgL,EAAkBrxL,EAAAA,UAAS,WAAA,IAAAs0L,EAAA,OAAMd,EAAiBhyM,QAASgnC,iBAAA8rK,EAAA9rK,EAAOonK,gCAAP0E,EAAAx0M,KAAA0oC,OA4BjE,OAAO,WAEH,OAAAvJ,EAAAA,YAAA,MAAA,CAAAC,MAAYy0K,EAAanyM,OAAA,CACtByyM,EAAUzyM,MACTy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYqlK,QAAqBl8L,EAAMyqM,YACpC,CAAAtqK,SAAAA,EAAO7Y,MAAQuY,EAAe,UAlBjCn7B,EAAOknM,EAAUzyM,MACnBsB,EAAS,KACT2d,GAAS1T,GACFjK,EAAAm8B,EAAAO,YAAAqlK,GAAA,CAAAzB,IAAYr2L,GAAM,MAClBA,GAAQu+C,QAAQz+C,IAAIE,EAAM,SACnCjK,EAASgjB,EAAAA,EAAE/Y,GACF2C,GAAc3C,KACdjK,EAAAm8B,EAAAA,YAAA4lK,GAAW93L,EAAM,OAGrBA,EAAOjK,EAAS,QAUf,KAhCHmuM,EAAUzvM,MAGfy9B,EAAAA,YAAA,MAAA,CAAAC,MAAmB00K,GAAe3C,CAAAA,EAAUzvM,QAFnC,KAKJ6vM,EAAgB7vM,MAGrBy9B,EAAAA,YAAA,MAAA,CAAAC,MAAmB20K,GAAqBxC,CAAAA,EAAgB7vM,QAF/C,KA4BJ+nF,EAAW/nF,MAAQy9B,EAAAO,YAAA,MAAA,CAAAN,MAAY40K,IAAc5rK,EAAe,YAAmB,OAxBlE,IACZn7B,EACFjK,EA0BR,IC7FWyxM,GAAQvlK,GAAYokK,ICL3BoB,GAAiB,CAAC,SAAU,UAK5BC,GAAaxwH,IAAA,SAAAwwH,IAAA,IAAA5nJ,EAAA3jD,KAAA4jD,QAAA2nJ,GAAAnzM,EACI4H,KAAA,aAAA,CACnBm8H,UAAW7vH,IACXkY,WAAYlY,IACZmF,YAAanF,IACboZ,WAAYpZ,MACdlU,qBAEgC,IAACA,EAAA4H,KAAA,iBAET,SAAC/E,GAKvB,OAHW,YAATA,EACInF,MAAMK,KAAKwtD,EAAK6nJ,WAAW/5L,SAASzN,OAhBjB,IAiBnBlO,MAAMK,KAAKwtD,EAAK6nJ,WAAWrvE,OAAOn4H,OAlBjB,KAEN,KAkBnB5L,EAAA4H,KAAA,OAEa,SAAC/E,GACN,IAAAsmC,EAASoiB,EAAK8nJ,cAAcxwM,GAM3B,OALF0oD,EAAA6nJ,WAAWvwM,GAAM0U,IAAI4xB,GACtB+pK,GAAe30L,SAAS1b,IACrB0oD,EAAA6nJ,WAAWrvE,MAAMxsH,IAAI4xB,GAEvBoiB,EAAA+nJ,YAAYnpM,KAAKg/B,GACfA,KACTnpC,EAEgB4H,KAAA,UAAA,SAACuhC,EAAgBtmC,GAC1B0oD,EAAA6nJ,WAAWvwM,GAAM,OAAOsmC,GACzB+pK,GAAe30L,SAAS1b,IACrB0oD,EAAA6nJ,WAAWrvE,MAAM,OAAO56F,GAE/B,IAAMnnC,EAAQupD,EAAK+nJ,YAAYr5K,QAAQkP,IACrB,IAAdnnC,GACGupD,EAAA+nJ,YAAY5nM,OAAO1J,EAAO,MAEnChC,EAG+B4H,KAAA,yBAAA,SAAC2rM,EAAsBpqK,GAAmB,IAAAqqK,EACnE,OAAAN,GAAe30L,SAASg1L,GAEnBpqK,IADYoiB,EAAK+nJ,YAAY/nJ,EAAK+nJ,YAAY/1M,OAAS,MAIhC,QAA5Bi2M,EAAAjoJ,EAAK6nJ,WAAWG,UAAhBC,IAA4BA,OAA5BA,EAAAA,EAA4BloM,MAAO,IAC9B69B,IAAWzrC,MAAMK,KAAKwtD,EAAK6nJ,WAAWG,IAAY3nM,SAI7D5L,wBAEuB,WACrB,OAAOurD,EAAK+nJ,YAAY/nJ,EAAK+nJ,YAAY/1M,OAAS,KACpD,IAGIk2M,GAAe,IAAIN,GAEzB,SAAwBO,GACtB7wM,GAQA,IAAAymC,EAAAxjC,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GADI,CACJ,EANEwzB,EAAAgQ,EAAAhQ,QACAq6K,EAAArqK,EAAAqqK,aAMIxqK,EAASlS,MAAI,GAEb2iD,EAAO,WACJzwC,EAAAjpC,MAAQuzM,GAAal8L,IAAI1U,IAG5BgyC,EAAQ,WACC4+J,UAAOtqK,EAAOjpC,MAAO2C,IAkC7B,OAxBP4lC,EAAAA,OACE,WAAA,OAAMnP,aAAAA,EAAAA,EAASp5B,KACf,IAAA,SAACo5B,GACKA,EACGsgD,IAEC/kC,GAEV,GACA,CACEkd,WAAW,IAIX4hJ,IACFr3K,EAAAA,WAAU,WACHs9C,GACP,IAEArhC,EAAAA,iBAAgB,WACR1D,GACR,KAGK,CACL1L,OAAQmsD,WAASnsD,GACjBywC,KAAAA,EACA/kC,MAAAA,EACA++J,sBAnC4B,WACxB,QAAAV,GAAe30L,SAAS1b,IACnB4wM,GAAaG,sBAAsB/wM,EAAMsmC,EAAOjpC,QAmC7D,gOCpHO,SAAS2zM,GAAQC,GAChB,IAAAtsM,EAAYyvB,MAAI68K,GAyBf,MAAA,CAAEtsM,UAAAA,EAAWusM,iBAvBK,SAACxyM,GACxB,IAAe8pK,EAA0B9pK,EAAjCyyM,MAAsB1oC,EAAW/pK,EAAlBgiL,MACvB0wB,EAAmCzsM,EAAUtH,MAArCg0M,EAAAD,EAAAC,WAAY9gF,EAAW6gF,EAAX7gF,WACd+gF,EAAmB,SAAC5yM,GAClB,IAAEyyM,EAAiBzyM,EAAjByyM,MAAOzwB,EAAUhiL,EAAVgiL,MACf/7K,EAAUtH,MAAQ,CAChBg0M,WAAYA,EAAaF,EAAQ3oC,EACjCj4C,WAAYA,EAAamwD,EAAQjY,IAG/B8oC,EAAiB,WACZ/zK,SAAAO,oBAAoB,YAAauzK,GACjC9zK,SAAAO,oBAAoB,UAAWwzK,IAGjC/zK,SAAAC,iBAAiB,YAAa6zK,GAC9B9zK,SAAAC,iBAAiB,UAAW8zK,IAODC,eAJf,WACX7sM,EAAAtH,uWAAAq9B,CAAA,CAAA,EAAau2K,IAI3B,CC9BA,IAAAQ,GAAen4K,kBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAO,CACLwtM,OAAQx0M,OACR8jM,MAAO9jM,OACP61C,OAAQ71C,OACR+hM,IAAK,CAAChiM,OAAQzB,QACdm2M,aAAc,CAAC10M,OAAQzB,QACvBo2M,MAAO5rK,QACP6rK,oBAAqB50M,QAGvBs8B,MAAAA,SAAMr1B,GACJ,IAAA+rE,EAAqC7nC,SAAOlkC,GAApC+6L,EAAKhvH,EAALgvH,IAAK0S,EAAA1hI,EAAA0hI,aAAcC,EAAM3hI,EAAN2hI,MACrBhpL,EAAcyM,KACde,EAAQhC,OAAI,GACZ09K,EAAS19K,OAAI,GACb29K,EAAkCf,GAAQ,CAAEK,WAAY,EAAG9gF,WAAY,IAArE5rH,EAAWotM,EAAXptM,UAAWusM,EAAAa,EAAAb,iBAEbz+K,EADmB4B,GAAU,eAA3BO,aACuBv3B,MAAMo1B,UAC/Bu/K,EAAW59K,EAAAA,MAEX69K,EAAWp2L,EAAAA,UAAS,WAAA,MAAO,CAC/BlX,UAAW2wB,UAAAA,OAAUpxB,EAAMwtM,OAAAp8K,eAAAA,OAAoBpxB,EAAM88L,MAAA,KACrDnxI,SAAU3rD,EAAMytM,cAAgBG,EAAOz0M,MAAQ,QAAU,OACzD,IACI60M,EAAoBr2L,EAAAA,UAAS,WAAA,MAAO,CACxClX,UAAW2wB,UAAAA,OAAUpxB,EAAMwtM,OAAAp8K,eAAAA,OAAoBpxB,EAAM88L,MAAA,KACrDnxI,QAAUiiJ,EAAOz0M,MAAkB,OAAV,QACzB,IACI80M,EAAWt2L,EAAAA,UAAS,WACxB,IAAAu1L,EAAmCzsM,EAAUtH,MAArCg0M,EAAAD,EAAAC,WAAY9gF,EAAW6gF,EAAX7gF,WACb,MAAA,CACL5rH,UAAW2wB,aAAAA,OAAa+7K,EAAiB/7K,QAAAA,OAAAi7F,EAAAj7F,cAAAA,OAAuBpxB,EAAM6uC,OAAA,QAE1E,IAUMq/J,EAAA,WAAA,IAAA3rK,EAAAyY,GAAAG,GAAAmC,MAAkB,SAAA+C,EAAO1zB,GAAgB,IAAAwhL,EAAAC,EAAAC,EAAA70K,EAAA80K,EAAApzK,EAAAqzK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAzzJ,GAAAG,MAAA,SAAAgF,GAAA,cAAAA,EAAA1C,KAAA0C,EAAAnjC,MAAA,KAAA,EAAA,OAAAmjC,EAAAnjC,KAAA,EACtB0xL,MAAMliL,GAAG,KAAA,EAA1B,IAAAyhL,EAAA9tJ,EAAAjE,MACQ6nD,GAAI,CAAA5jD,EAAAnjC,KAAA,EAAA,KAAA,CACF,MAAd+U,EAAM/4B,OAAQ,EACR,IAAI8gC,MAAA7I,wBAAAA,OAA8Bg9K,EAASU,aAAY,KAAA,EAAA,OAAAxuJ,EAAAnjC,KAAA,EAEzCixL,EAASjsK,OAAK,KAAA,EAA9BksK,EAAA/tJ,EAAAjE,MAEA7iB,EAAUs0K,EAAS30M,OACjB41M,UAAY,GACD,QAAnBZ,EAAA30K,EAAQU,iBAARi0K,IAAmBA,GAAnBA,EAAmB39L,OAAA4gB,OAAO1M,EAAYvrB,yCAChCm1M,EAAa90K,EAAQw1K,aAAa,CAAEpyH,KAAM,YAE1C1hD,EAAY5B,SAASuD,cAAc,QAE/BhK,MAAM4D,WAAa,+BAC7ByE,EAAUrI,MAAMmvB,QAAU,MAC1B9mB,EAAUrI,MAAMuW,aAAe,MAC/BlO,EAAUrI,MAAM4jD,UAAY,OAC5Bv7C,EAAUrI,MAAM29C,SAAW,OAC3Bt1C,EAAUrI,MAAMi5I,UAAY,aAC5B5wI,EAAUrI,MAAMoE,OAAS,OACzBiE,EAAU6zK,UAAYV,EACtBC,EAAWxxK,YAAY5B,IAEjBqzK,EAAarzK,EAAUJ,cAAc,WAEnC0zK,EAAaD,EAAWxsJ,aAAa,aAEnC0sJ,EAAgBD,EACnB9lM,MAAM,UACN03B,QAAO,SAAUliB,GACT,OAAAA,CACT,IACClZ,IAAIgvB,YAGD06K,EAAkBD,EAAc,GAE5BvzK,EAAArI,MAAMmE,gBAAW03K,EAAA,QAErBC,EAAOJ,EAAWU,UAClBL,EAAA,GAAAx9K,OAAuBu9K,EAAKnvL,EAAA,KAAA4R,OAAKu9K,EAAK/wL,EAAKwT,KAAAA,OAAAu9K,EAAK33K,kBAAS23K,EAAK13K,QACzDs3K,EAAAr+J,aAAa,UAAW0+J,GAEzB1zK,EAAArI,MAAMmE,MAAQ,GAAA5F,OAAGu9K,EAAK33K,MAAA,OAElCu3K,EAAW17K,MAAM4jD,UAAY,OAC7B83H,EAAW17K,MAAM29C,SAAW,OAC5B+9H,EAAW17K,MAAMoE,OAAS,OAC1Bs3K,EAAW17K,MAAM84B,QAAU,QAC3B4iJ,EAAW17K,MAAM44F,WAAa,UAEhCmiF,EAAOz0M,OAAQ,EAAA,KAAA,GAAA,IAAA,MAAA,OAAAmnD,EAAAzC,OAAA,GAAAwC,EACjB,KAAA,OAtDM6tJ,SAAAxkJ,GAAA,OAAAnnB,EAAAvjC,MAAA6B,KAAA9B,UAAA,EAAA,GAwDcmwM,EAAwBxnI,GAAmBqzH,GAAvDnzH,WACYunI,EAA6BznI,GAAmB+lI,GAA5D7lI,WAYR,OAVAlmC,EAAAA,MAAM,CAACwtK,EAAqBC,IAA2B,WAlErDj9K,EAAM/4B,OAAQ,EACdy0M,EAAOz0M,OAAQ,EACXu0M,EAAMv0M,OACR+0M,EAAgBgB,EAAoB/1M,MAiExC,IAEAo8B,EAAAA,UAAAylB,GAAAG,GAAAmC,MAAU,SAAAwM,IAAA,OAAA3O,GAAAG,MAAA,SAAAyO,GAAA,cAAAA,EAAAnM,KAAAmM,EAAA5sC,MAAA,KAAA,EAAA,IACJuwL,EAAMv0M,MAAO,CAAA4wD,EAAA5sC,KAAA,EAAA,KAAA,CAAA,OAAA4sC,EAAA5sC,KAAA,EACT+wL,EAAgBgB,EAAoB/1M,OAAK,KAAA,EAAA,IAAA,MAAA,OAAA4wD,EAAAlM,OAAA,GAAAiM,EAElD,MAEM,WAAA,OAAAlzB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU1M,EAAYvrB,MAAA,6BAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV1M,EAAYvrB,MAAA,4BAAA05B,MAAwCo7K,EAAS90M,OAAA,CACzE+4B,EAAM/4B,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU1M,EAAYvrB,MAAA,6BAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEV1M,EAAYvrB,MAAA,qCAAAy9B,CAAAA,EAAAO,YAAAi4K,GAAA,CAAA7qM,KAAA,OAAA,MAAAqyB,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEV1M,EAAYvrB,MAAA,kCAAA,CAAuCo1B,SAKtE2D,EAAM/4B,SAAW6G,EAAMytM,cAAgB0B,EAAyBh2M,OAChEy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACY1M,EAAYvrB,MACtB,8BAAA8+F,YAAa,SAACx+D,GACZA,EAAM05C,kBACN65H,EAAiBvzK,EAEnB,EAAAshK,IAAKoU,EAAyBh2M,MAAA05B,MACvBm7K,EAAkB70M,MACzB2hM,eAAgB96L,EAAM2tM,oBAAAvT,IAAA,QAAAz8G,UAAA,SAAA,OAMxBzrD,EAAM/4B,OAAS+1M,EAAoB/1M,QAAUu0M,EAAMv0M,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEvC1M,EAAYvrB,MACtB,8BAAA8+F,YAAa,SAACx+D,GACZA,EAAM05C,kBACN65H,EAAiBvzK,EACnB,EAAAshK,IACKmU,EAAoB/1M,MAAA6yI,OACjB,WAAA,OAAO4hE,EAAOz0M,OAAQ,CAAA,EAAAohM,QACrB,WAAA,OAAOroK,EAAM/4B,OAAQ,CAAA,EAAA05B,MACvBk7K,EAAS50M,MAChB2hM,eAAgB96L,EAAM2tM,oBACtBvT,IAAA,QAAAz8G,UAAA,SAAA,OAKFzrD,EAAM/4B,OAAS+1M,EAAoB/1M,OAASu0M,EAAMv0M,OAClDy9B,EAAAO,YAAA,MAAA,CAAAjH,IACO49K,kBACKppL,EAAYvrB,MACtB,8BAAA8+F,YAAa,SAACx+D,GACZA,EAAM05C,kBACN65H,EAAiBvzK,2BAGZs0K,EAAS50M,MAAAwkF,UAAA,SAEjB,UAKX,ICjLF0xH,GAAej6K,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAO,CACLgyB,SAAU8P,QACVyF,QAASztC,SACT2/C,MAAO1gD,OACPosB,KAAMrrB,UAERu7B,MAAAA,SAAMr1B,GACJ,IAAM0kB,EAAcyM,KACd0O,EAAiBU,KACjB+uK,EAAY33L,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC5B1M,EAAYvrB,mCAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAET1M,EAAYvrB,sBAAsB6G,EAAMgyB,cAIhD,OAAO,WAAA,OAAA4E,EAAAA,YAAA,MAAA,CAAAC,MACOy4K,EAAUn2M,MAAAouC,QAAgBvnC,EAAMunC,SACzC1H,CAAAA,EAAe,QACf7/B,EAAMy5C,OAAS7iB,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAgB1M,EAAYvrB,MAAA,oCAAyC6G,CAAAA,EAAMy5C,UAGjG,ICpBa81J,GAAA,CAEbzqL,OAAQ,CACNhpB,KAAM,CAAC/C,OAAQe,WAGjBkhC,KAAM,CACJl/B,KAAM,CAAC/C,OAAQe,WAGjB01M,UAAW,CACT1zM,KAAM,CAAC/C,OAAQzB,OAAQwC,SAAU,OAGnCkyD,SAAU,CACRlwD,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXmC,kBAAmB,CACjBxpB,KAAMgmC,QACN3e,aAAS,GAGXoC,oBAAqB,CACnBzpB,KAAMgmC,QACN3e,aAAS,GAGXssL,WAAY,CACV3zM,KAAM,CAAC/C,OAAQzB,OAAQwC,SAAU,OAGnC41M,eAAgB,CACd5zM,KAAMgmC,QACN3e,aAAS,GAGXwsL,eAAgB7tK,QAEhB3e,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBsuE,eAAgBtmC,QAEhB8tK,gBAAiB,CACf9zM,KAAM/C,OACNoqB,QAAS,IAGX0sL,YAAa,CACX/zM,KAAMxE,QAGRqmF,UAAW77C,QAEXwuI,OAAQ,CACNx0K,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXqkL,OAAQ,CACN1rM,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXy6D,KAAM97C,QAEN86C,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,WAAY,SAAU,eAAejnB,SAASinB,EACjE,GAGFiuB,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,MAAO,UAAUjnB,SAASinB,EACpC,GAGFwD,qBAAsB,CACpBnmC,KAAMgmC,QACN3e,SAAS,GAGX2sL,sBAAuBhuK,QAEvBI,YAAa,CACXpmC,KAAMgmC,QACN3e,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,OAAQ,UAAW,SAAU,WAAWjnB,SAASinB,EACtE,GAGFnB,IAAK,CACHxhC,KAAM,CAAC/C,OAAQC,SAGjBu5B,QAASuP,QAET9K,MAAO,CACLl7B,KAAM,CAAC/C,OAAQC,SAGjBopC,OAAQ,CACNtmC,KAAM9C,QAGR+2M,cAAej2M,SAEfk2M,aAAcl2M,SAEdm2M,SAAUn2M,SAEVmyD,QAASnyD,SAEToyD,gBAAiBpyD,SAEjBo2M,SAAUp2M,SAEVwhJ,UAAWxhJ,SAEXq2M,aAAcr2M,SAEds2M,SAAUt2M,SAEVgvE,eAAgBhvE,6kBClHX,SAASu2M,GAAU7tJ,GACxB,IAAMjjB,EAAWhP,EAAAA,qBACXsP,EAAiBU,KAsCjB+vK,EAAmB,SACvB1nK,EACAvJ,GAMA,IAAQkxK,EAAkDlxK,EAAlDkxK,mBAAoBn2K,EAA8BiF,EAA9BjF,UAAWs1K,EAAmBrwK,EAAnBqwK,eACnCc,EAAaD,EASjB,OARIn4L,GAASwwB,GACX4nK,EAAWvnL,QAAU2f,EACZ/sC,EAAS+sC,KAClB4nK,EAAAh6K,GAAAA,MAAkBg6K,GAAe5nK,SAEZ,IAAnB8mK,IACFc,EAAW1+K,QAAU49K,GAEvB94K,EAAAO,YAAA4T,GAAAxG,aAAA,CAAA1N,MAAuBuD,GAAeo2K,GAAY,OA0C7C,MAAA,CAAEC,cAxCa,SAACv7L,GACrB,IAAQu6L,EAA0Cv6L,EAA1Cu6L,WAAYr1K,EAA8BllB,EAA9BklB,UAAWs1K,EAAmBx6L,EAAnBw6L,eAC/B,GAAmB,OAAfD,EAA4B,OAAA,KAC5BA,GAAclwK,EAASY,MAAMsvK,YAC/BpqK,QAAQkgC,KAAK,6FAET,IAAAgrI,EA9D0B,SAACr7L,GACjC,IAAQw7L,EAAgDx7L,EAAhDw7L,cAAeviL,EAAiCjZ,EAAjCiZ,MAAOwiL,EAA0Bz7L,EAA1By7L,sBAE1B3wM,EAAqB,CAGvBmuB,MAJmBuQ,GAAsBxkB,GAAKy2L,EAAuB,CAAC,SAAUxiL,IAAU,UAK1F5pB,KAAM2Q,EAAQ3Q,KACdgjC,QAAS,SAAC/sC,GACRgoD,EAAOouJ,iBAAiBp2M,EAC1B,GAOK,OALH4d,GAASs4L,GACX1wM,EAAMipB,QAAUynL,EACP70M,EAAS60M,KAClB1wM,EAAAw2B,GAAAA,MAAax2B,GAAU0wM,IAElB1wM,EA6CoB6wM,CAA0B37L,GAErD,OAAKu6L,GAAelwK,EAASY,MAAMsvK,WAI/BA,GAAc,CAAC,SAAU,UAAUj4L,SAASnf,EAAOo3M,IAC9Ca,EAAiBb,EAAoC,CAC1Dc,mBAAAA,EACAn2K,UAAAA,EACAs1K,eAAAA,IAIG7vK,EAAe,cAXpBjJ,EAAAO,YAAA4T,GAAAxG,aAAA,CAAA1N,MAAuBuD,EAAWtI,QAAS49K,GAAoBa,GAAoB,OA+B/DO,aAlBH,SAAC57L,GACd,IAAEs6L,EAAyBt6L,EAAzBs6L,UAAWp1K,EAAcllB,EAAdklB,UACnB,GAAkB,OAAdo1K,EAA2B,OAAA,KAC3BA,GAAajwK,EAASY,MAAMqvK,WAC9BnqK,QAAQkgC,KAAK,0FAET,IAAAgrI,EAhEyB,SAACr7L,GAC1B,IAAE67L,EAAiB77L,EAAjB67L,aACJ/wM,EAAqB,CACvBmuB,MAAO,UACP5pB,KAAM2Q,EAAQ3Q,KACdgjC,QAAS,SAAC/sC,GACRgoD,EAAOwuJ,gBAAgBx2M,EACzB,GAOK,OALH4d,GAAS24L,GACX/wM,EAAMipB,QAAU8nL,EACPl1M,EAASk1M,KAClB/wM,EAAAw2B,GAAAA,MAAax2B,GAAU+wM,IAElB/wM,EAkDiCixM,CAAyB/7L,GAEjE,OAAKs6L,GAAcjwK,EAASY,MAAMqvK,UAI9BA,GAAa,CAAC,SAAU,UAAUh4L,SAASnf,EAAOm3M,IAC7Cc,EAAiBd,EAAmC,CAAEe,mBAAAA,EAAoBn2K,UAAAA,IAG5EyF,EAAe,aAPpBjJ,EAAAO,YAAA4T,GAAAxG,aAAA,CAAA1N,MAAuBuD,GAAem2K,GAAoB,OAUhE,CC9FgB,SAAAW,KAA0D,IAAxCh2K,EAAyBn8B,UAAAvI,OAAAuI,QAAAlG,IAAAkG,UAAAlG,GAAAkG,UAAAu6B,GAAAA,SAAS0B,KAC9D,OAAAE,IAAc5B,SAAS0B,KAClBlF,OAAO6H,WAAarE,SAASkC,gBAAgBe,YAE/CrB,EAAU+N,YAAc/N,EAAUqB,WAC3C,CC/CO,SAAS40K,GAAYjzL,GACnB,OAAAllB,OAAOmkD,MAAMnkD,OAAOklB,IAAMA,KAAAkT,OAAOp4B,OAAOklB,GAAC,KAClD,CCOe,IAAAkzL,GAAA,CAEbp2K,KAAM,CACJl/B,KAAM,CAAC/C,OAAQe,WAGjB01M,UAAW,CACT1zM,KAAM,CAAC/C,OAAQzB,OAAQwC,WAGzBkyD,SAAU,CACRlwD,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXssL,WAAY,CACV3zM,KAAM,CAAC/C,OAAQzB,OAAQwC,WAGzB41M,eAAgB,CACd5zM,KAAMgmC,QACN3e,aAAS,GAGXmtJ,OAAQ,CACNx0K,KAAM,CAACgmC,QAAShoC,WAGlB0tM,OAAQ,CACN1rM,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,OAAQ,UAAW,SAAU,WAAWjnB,SAASinB,EACtE,GAGFwxK,SAAUn2M,SAEVoyD,gBAAiBpyD,SAEjBwhJ,UAAWxhJ,6kBCvCb,ICOIu3M,GDPJC,GAAel8K,kBAAgB,CAC7Bx9B,KAAM,cAEN25M,WAAY,CACV5zH,mBAAUhrD,EAAIlwB,GFhBX,IACCuwB,EACAw+K,EACAC,EEeE9+K,GAAMlwB,GAAWA,EAAQtJ,QFjB3B65B,EEkBcL,EFjBd6+K,EAAmB17K,OAAO6H,YAAcrE,SAASkC,gBAAgBe,YACjEk1K,EAAoB37K,OAAO4H,aAAepE,SAASkC,gBAAgB06B,aAClEljC,EAAAuG,iBAAiB,aAAa,SAACm4K,GAE9B,IAAAC,EAAOD,EAAYxgI,QAAUl+C,EAAOsgC,WACpCs+I,EAAOF,EAAYvgI,QAAUn+C,EAAO0rB,UACpCmzJ,EAAU7+K,EAAOiW,YACjB6oK,EAAU9+K,EAAOkW,aAGvB,SAAS6oK,EAAkBC,GAErB,IAAAz0K,EAAOy0K,EAAc9gI,QAAUygI,EAC/Br0K,EAAM00K,EAAc7gI,QAAUygI,EAG9Br0K,EAAO,IAAUA,EAAA,GACjBD,EAAM,IAASA,EAAA,GACfk0K,EAAmBx+K,EAAOiW,YAAc1L,EAAO,IAAGA,EAAOi0K,EAAmBx+K,EAAOiW,aACnFwoK,EAAoBz+K,EAAOkW,aAAe5L,EAAM,IAAGA,EAAMm0K,EAAoBz+K,EAAOkW,cACxFlW,EAAOH,MAAMsW,SAAW,WACjBnW,EAAAH,MAAM0K,eAAUA,EAAA,MAChBvK,EAAAH,MAAMyK,cAASA,EAAA,KACxB,CACA,SAAS+vK,IAEE/zK,SAAAO,oBAAoB,YAAak4K,GAEjCz4K,SAAAO,oBAAoB,UAAWwzK,EAC1C,CApBIwE,EAAUL,GAAoBM,EAAUL,IAsBnCn4K,SAAAC,iBAAiB,YAAaw4K,GAE9Bz4K,SAAAC,iBAAiB,UAAW8zK,GAE5B/zK,SAAAC,iBAAiB,UAAW8zK,GACvC,IEjBE,GAEFrtM,MAAOw2B,GAAAA,MACFy7K,IACAb,IAEL/7K,eAAMr1B,EAAAuiC,GAAmB,IAAVme,EAAAne,EAAAme,OACPwxJ,EAAUhiL,MAAwB,MAClC8a,EAAiB7Z,GAAe,UAChCzM,EAAcyM,KACd0O,EAAiBU,KACjB2C,EAAgBjC,KACdvQ,EAAiBP,GAAU,UAA3BO,aACR88B,EAA0FpB,GAAc,CACtG6B,UAAWC,GACXT,qBAAsBC,GACtBC,sBAAuBC,GACvBC,sBAAuBC,KAJjBG,EAAWT,EAAXS,UAAWR,EAAAD,EAAAC,qBAAsBE,EAAuBH,EAAvBG,sBAAuBE,EAAAL,EAAAK,sBAMhEke,EAAkD7nC,SAAOlkC,GAAjDwvM,EAAWzjI,EAAXyjI,UAAWC,EAAA1jI,EAAA0jI,WAAYC,EAAe3jI,EAAf2jI,eAGzByC,EAAkC9B,GAAU,CAAEO,iBAF3B,SAACp2M,GAAA,IAAAywJ,EAAA,OAAoC,QAApCA,EAAkBjrJ,EAAMs7I,iBAAY,IAAA2P,OAAA,EAAlBA,EAAAxzJ,KAAAuI,EAAkB,CAAExF,EAAAA,GAAG,EAEGw2M,gBAD9C,SAACx2M,GAAA,IAAA43M,EAAA,OAAmC,QAAnCA,EAAkBpyM,EAAMiwM,gBAAW,IAAAmC,OAAA,EAAjBA,EAAA36M,KAAAuI,EAAiB,CAAExF,EAAAA,GAAG,IACzDi2M,IAAAA,cAAeK,EAAaqB,EAAbrB,aAEjBuB,EAAa16L,EAAAA,UAAS,WAAA,MAAqB,aAAf3X,EAAM48E,QAElC01H,EAAe36L,EAAAA,UAAS,WAAA,MAAqB,gBAAf3X,EAAM48E,QACpC21H,EAAiB,SAAC/3M,GAAA,IAAAg4M,EAAA,OAAkBxyM,SAAyB,UAAzBA,EAAOksD,uBAAPsmJ,IAAyBA,OAAzBA,EAAAA,EAAA/6M,KAAAuI,EAAyB,CAAExF,EAAAA,GAAG,EAClEi4M,EAAa,SAACj4M,GACd63M,EAAWl5M,OAAXk5M,MAAoBryM,GAAAA,EAAO29E,WAAWnjF,EAAE24E,mBAWvCzyB,EAAA,CACLojC,IAAKouH,EACLQ,cAVoB,YACfR,EAAQ/4M,OAASk5M,EAAWl5M,OAAS6G,EAAM29E,YACxCu0H,EAAA/4M,MAAM05B,MAAMsW,SAAW,WACvB+oK,EAAA/4M,MAAM05B,MAAM0K,KAAO,QACnB20K,EAAA/4M,MAAM05B,MAAMyK,IAAM,YAStB,IAAAq1K,EAAch7L,EAAAA,UAAS,WAC3B,IAAMg7L,EAAc,CAAA,GAAAvhL,OACf4Z,EAAe7xC,OAAAi4B,GAAAA,OACf4Z,EAAe7xC,MAAAi4B,YAAAA,OAAgBpxB,EAAMmuB,OACxCkkL,EAAWl5M,OAAS6G,EAAM29E,WAAAvsD,GAAAA,OAAgB4Z,EAAe7xC,MAAA,eACzD6G,EAAM4vM,iBAQD+C,OALHL,EAAan5M,MACfw5M,EAAYvvM,KAAAguB,GAAAA,OAAQ4Z,EAAe7xC,MAAmB,iBAEtDw5M,EAAYvvM,KAAApE,MAAZ2zM,EAAoB,CAAAvhL,GAAAA,OAAI4Z,EAAe7xC,sBAAkBi4B,OAAG4Z,EAAe7xC,MAAA,MAAAi4B,OAAUpxB,EAAM0sD,aAEtFimJ,CACT,IACM9C,EAAcl4L,EAAAA,UAAS,WAC3B,OAAQ26L,EAAan5M,MAAgEq9B,GAASx2B,CAAAA,EAAAA,EAAM6vM,aAA/Er5K,GAAA,CAAUQ,MAAOm6K,GAAYnxM,EAAMg3B,QAAWh3B,EAAM6vM,YAC3E,IAuGO,OAAA,WAAA,OAAA7gI,EAAAC,eAAAr4C,EAAAO,YAAA,MAAA,CAAA3+B,IAAA,SAAA03B,IAGEgiL,EAAAr7K,MACE87K,EAAYx5M,MAAA05B,MACZg9K,EAAY12M,OAAA,EAzGfy5M,EAAoBj7L,EAAAA,UAAS,WAAM,IAAAk7L,EAEhC,OAAkB,QAAlBA,EAAApD,EAAWt2M,aAAO,IAAA05M,OAAA,EAAlBA,EAAkB/gL,UAAW49K,EAAev2M,KACrD,IACM25M,4BAEDhC,EAAa,CACZtB,UAAWA,EAAUr2M,MACrB43M,aAAcrgL,EAAav3B,MAAMqd,OACjC4jB,UAAAhJ,GAAAA,OAAc4Z,EAAe7xC,MAAA,cAE9Bs3M,EAAc,CACbtiL,MAAOnuB,aAAAA,EAAAA,EAAOmuB,MACdshL,WAAYA,EAAWt2M,MACvBu3M,cAAehgL,EAAav3B,MAAM2vB,QAClC6nL,sBAAuBjgL,EAAav3B,MAAMqsB,gBAC1C4U,aAAAhJ,OAAc4Z,EAAe7xC,MAAA,aAC7Bu2M,eAAgBkD,EAAkBz5M,UAKlC45M,EAAgBlzK,EAAe,SAAUizK,GAsE7Cl8K,EAAAO,YAAA4gB,EAAA5Y,SAAA,KAAA,EAlEMqoK,EAA8DhtH,QAA9DA,EAAS36C,EAAe,SAAUjJ,EAAAO,YAAA,KAAA,CAAAN,MAAA,SAAA,cAA4B2jD,IAAAA,GAAAA,EAC9Dw4H,EAAkBV,EAAan5M,MACjC,CAAAi4B,GAAAA,OAAI4Z,EAAe7xC,qBAAiBi4B,OAAG4Z,EAAe7xC,MAAA,yBACtDi4B,GAAAA,OAAG4Z,EAAe7xC,MAAA,YAEhB85M,EAAiBX,EAAan5M,MAChC,CAAAi4B,GAAAA,OAAI4Z,EAAe7xC,oBAAgBi4B,OAAG4Z,EAAe7xC,MAAA,wBACrDi4B,GAAAA,OAAG4Z,EAAe7xC,MAAA,YAWnBquM,IAAUxnM,aAAO,EAAPA,EAAOgsD,YAAAp1B,EAAAA,YAAA,MAAA,CAAAC,MACJm8K,cAA8BP,GAAA,CAAA77K,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACzB4Z,EAAe7xC,MAAA,qBAAA,CAXrB,CACXssB,sCAAsCf,EAAYvrB,MAAiB,aAAA,MACnEusB,yCAA0ChB,EAAYvrB,MAAoB,gBAAA,MAC1EwsB,wCAAyCjB,EAAYvrB,MAAkB,cAAA,MACvEysB,yCAA0ClB,EAAYvrB,MAAoB,gBAAA,OAEhE6G,aAAAA,EAAAA,EAAOmuB,OAOZq5K,IAGFxnM,SAAAA,EAAOgsD,SAAAp1B,EAAAA,YAAA,OAAA,CAAAC,MACOo8K,EAAgB1rK,QAASgrK,GACnC1yK,CAAAA,EAAe,2BAAyB,KAAA,SAEzC,SAOJ7E,EAAOkI,EAAc,UAAW,QAChCgwK,EACa,aAAjBlzM,aAAA,EAAAA,EAAOmuB,OAAsB,CAAAiD,GAAAA,OAAI4Z,EAAe7xC,MAAiB,WAAA,CAAAi4B,GAAAA,OAAI4Z,EAAe7xC,MAAmB,iBACrGm5M,EAAan5M,OAAS45M,EACVG,EAAA9vM,KAAAguB,GAAAA,OAAQ4Z,EAAe7xC,MAAyB,uBACrDm5M,EAAan5M,OACR+5M,EAAA9vM,KAAAguB,GAAAA,OAAQ4Z,EAAe7xC,MAAyC,uCAEhFy9B,EAAAA,YAAA,MAAA,CAAAC,MACcq8K,cAA4BT,GAAA,CACrCz3K,OAuBAh7B,EAAMswK,SAjBL6iC,EAAkBb,EAAan5M,MACjC,CAAAi4B,GAAAA,OAAI4Z,EAAe7xC,qBAAiBi4B,OAAG4Z,EAAe7xC,MAAA,yBACtDi4B,GAAAA,OAAG4Z,EAAe7xC,MAAA,YAGpB45M,GAAAn8K,EAAAO,YAAA,MAAA,CAAAN,MACcs8K,cAA8BV,GAAA,CACvCM,4CAqBMV,EAAWl5M,OAAS6G,EAAM29E,aA3GxB,IA+ETw1H,EAhBAn4K,EACAk4K,EAvCmB14H,EAEnBgtH,EACAwL,EAIAC,EA/BFL,EAIAE,EAkBAC,EAyFV,0DCvKoB,oBAAXj9K,QAA0BA,OAAOwD,UAAYxD,OAAOwD,SAASkC,iBACtElC,SAASkC,gBAAgBjC,iBAAiB,SAXnB,SAAC/+B,GACR62M,GAAA,CACd7xL,EAAGhlB,EAAE02E,QACLtzD,EAAGpjB,EAAE22E,SAEPl7D,YAAW,WACOo7L,GAAA,OACf,IACL,IAGuE,GAGvE,IAAI74M,GAAM,EAEV46M,GAAeh+K,kBAAgB,CAC7Bx9B,KAAM,UACN0qC,cAAc,EACdtiC,MAAAA,GACA0wC,MAAO,CAAC,kBACRrb,eAAMr1B,EAAOsqC,GACL,IAAAU,EAAiB7Z,GAAe,UAChCzM,EAAcyM,KACdkiL,EAAgBnjL,MAA4D,MAC1EQ,EAAiBP,GAAU,UAA3BO,aACFkgL,EAAmB,SAACtmK,GAA+B,IAAAggH,UACvDtqJ,EAAAA,EAAMs7I,iBAANt7I,OAAAA,EAAAA,KAAAA,EAAkBsqC,IAEd0mK,EAAkB,SAAC1mK,GAA+B,IAAAgpK,UACtDtzM,EAAAA,EAAMiwM,gBAANjwM,OAAAA,EAAAA,KAAAA,EAAiBsqC,GACjBipK,EAAe,CAAE/4M,EAAG8vC,EAAQ9vC,EAAG+pD,QAAS,YAGpClhB,EAAkB9B,IAAY,WAAA,OAAMvhC,EAAM8kB,UAC9B8/C,KAClB,IAAMxhC,EAAQlT,EAAAA,MACRsjL,EAAUtjL,EAAAA,MAEVujL,EAAU97L,EAAAA,UAAS,WAAA,MAAqB,UAAf3X,EAAM48E,QAE/By1H,EAAa16L,EAAAA,UAAS,WAAA,MAAqB,aAAf3X,EAAM48E,QAElC01H,EAAe36L,EAAAA,UAAS,WAAA,MAAqB,gBAAf3X,EAAM48E,QACpC82H,EAAkB/7L,EAAAA,UAAS,WAAA,OAAM3X,EAAMuyB,WACvCohL,EAAYh8L,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC5B4Z,EAAe7xC,iBACjB6G,EAAMkiC,gBAAe9Q,OAAG1M,EAAYvrB,wBAEjCy6M,EAAgBj8L,EAAAA,UAAS,WAC7B,OAAI26L,EAAan5M,MAAc,CAAAi4B,GAAAA,OAAI4Z,EAAe7xC,MAA4B,0BAC1Es6M,EAAQt6M,OAASk5M,EAAWl5M,MACvB,CAAA,GAAAi4B,OACF4Z,EAAe7xC,MAAA,gBAChB6G,EAAMs9B,KAAA,GAAAlM,OAAU4Z,EAAe7xC,MAAA,YAAAi4B,OAC9BpxB,EAAM0sD,YAAc1sD,EAAMs9B,cAAS0N,EAAe7xC,MAAU6G,MAAAA,OAAAA,EAAM0sD,WAAc,KAGhF,EACT,IACM4iJ,EAAY33L,EAAAA,UAAS,WAAA,OACzB26L,EAAan5M,OAASs6M,EAAQt6M,OAASk5M,EAAWl5M,MAAQ,CAAA,GAAAi4B,OAAI4Z,EAAe7xC,MAAA,WAAiB,IAAA,IAE1F0lI,EAAgBlnH,EAAAA,UAAS,WAC7B,GAAI26L,EAAan5M,MAAO,MAAO,GAGzB,IAAEmkC,EAAQt9B,EAARs9B,IACJu2K,EAAW,CAAA,OACH,IAARv2K,IAESu2K,EAAA,CAAE/pH,WADIqnH,GAAY7zK,KAGxB,OAAAu2K,CACT,IAEQhH,EAA0BF,GAAgB,SAAU,CAC1Dp6K,QAASmhL,IADH7G,sBAIFiH,EAAY5jL,OAAI,GA4BtB,SAAS6jL,IAAc,IAAAC,EAAAC,EACPD,QAAdA,EAAAR,EAAQr6M,MAAM+kC,kBAAA+1K,IAAAD,GAA0BC,QAA1BA,EAAdD,EAA0Bh3K,mBAA1Bi3K,IAAwCA,GAAxCA,EAAAx8M,KAAAu8M,EAAwCR,EAAQr6M,MAClD,CA5BAuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMuyB,OACZ,IAAA,SAACp5B,GACY,IAAA+6M,EAAP/6M,GACF26M,EAAU36M,OAAQ,GACbs6M,EAAQt6M,QAAU6G,EAAM8vM,uBAA0BwC,EAAan5M,SAC9D6G,EAAMiiC,sBACC3I,SAAA0B,KAAK8B,YAAY02K,EAAQr6M,OAGpCq8B,EAAAA,UAAS,WAAM,IAAA2+K,EACT,GAAA9C,IAA+B,QAA/B8C,EAAiBd,EAAcl6M,aAAA,IAAAg7M,GAAdA,EAAqBrwH,IAAK,CACvC,IAAAnxD,EAAK0gL,EAAcl6M,MAAM2qF,IAC5BnxD,EAAAE,MAAMwD,0BAAqBg7K,GAAc7xL,EAAImT,EAAG2gC,WAAA,OAAAliC,OAAgBigL,GAAczzL,EAAI+U,EAAG+rB,UAAA,KAC1F,CACF,aAGDw1J,EAAA56K,SAASunE,4BAATqzG,EAAwClhH,SAa7Cz8E,aAAa6sB,EAAMjqC,OACbiqC,EAAAjqC,MAAQ8c,YAAW,WACX89L,MACX,MAZDK,EAAiBj7M,EACnB,IAcI,IC/IoB03C,EAExBwjK,EACAC,ED4IIF,EAAmB,SAAC/lJ,GACpBA,GACO/0B,SAAAC,iBAAiB,UAAWg7K,GACrCv0M,EAAM2vM,gBAAkBr2K,SAASC,iBAAiB,UAAWi7K,KAEpDl7K,SAAAO,oBAAoB,UAAW06K,GACxCv0M,EAAM2vM,gBAAkBr2K,SAASO,oBAAoB,UAAW26K,KAI9DA,EAAqB,SAACh6M,GAEtB,GAAmC,UADtBA,EAAEw4B,OACNugE,QAAQjoF,cAAjB,CACE,IACuEmpM,EADrEpmI,EAAS7zE,EAAT6zE,KACR,IAAc,UAATA,GAA6B,gBAATA,IAA2Bw+H,IAC5C,QAAN7sM,EAAAA,EAAMs7I,iBAAA,IAAAm5D,GAANz0M,EAAAA,KAAAA,EAAkB,CAAExF,EAAAA,GAH0B,GAM5C+5M,EAAgB,SAAC/5M,GAC+B,IAAAk6M,EAAAC,EAArC,WAAXn6M,EAAE6zE,MAAqBw+H,MACnB,QAAN7sM,EAAAA,EAAMmwM,oBAAA,IAAAuE,GAAN10M,EAAAA,KAAAA,EAAqB,CAAExF,EAAAA,KAEbm6M,QAAVA,EAAI30M,EAAMslB,yBAAAqvL,IAAAA,EAAAA,EAAqBjkL,EAAav3B,MAAMmsB,qBAChDiuL,EAAe,CAAE/4M,EAAAA,EAAG+pD,QAAS,QAE7B/pD,EAAEo6M,8BAURC,GClL0BhkK,ED4KJ,SAACr2C,GAAkB,IAAAs6M,EACyD/mI,EAA5F/tE,EAAMkiC,cAA6C,QAA7BliC,EAAAA,EAAMulB,2BAAuBuvL,IAAAA,EAAAA,EAAApkL,EAAav3B,MAAMosB,uBAClE,QAANvlB,EAAAA,EAAM8oE,sBAAA,IAAAiF,GAAN/tE,EAAAA,KAAAA,EAAuB,CAAExF,EAAAA,IACzB+4M,EAAe,CAAE/4M,EAAAA,EAAG+pD,QAAS,cC7K/B8vJ,GAAmB,EACnBC,GAAiB,EAiBd,CAAE/sK,QAfO,SAAC/sC,GACX65M,GAAoBC,GACtBzjK,EAAYr2C,GAEK65M,GAAA,EACFC,GAAA,GAUDr8G,YAPE,SAACz9F,GACA65M,EAAA75M,EAAEw4B,SAAWx4B,EAAEyqD,eAMLglH,UAJb,SAACzvK,GACA85M,EAAA95M,EAAEw4B,SAAWx4B,EAAEyqD,iBDiKxB1d,EAASstK,EAATttK,QAAS0wD,EAAA48G,EAAA58G,YAAagyE,EAAU4qC,EAAV5qC,UACxBsoC,EAAiB,SAACjoK,GAA+B,IAAAikB,UACrDvuD,EAAAA,EAAMksD,uBAANlsD,OAAAA,EAAAA,KAAAA,EAAwBsqC,GACTipK,EAAA,CACbhvJ,QAAS,YACT/pD,EAAG8vC,EAAQ9vC,KAKTovF,EAAc,WAAM,IAAAmrH,EACH,QAArB/0M,EAAAA,EAAMgwM,oBAAe,IAAA+E,GAArB/0M,EAAAA,KAAAA,IAIImqF,EAAa,WAAM,IAAA6qH,EACN,QAAjBh1M,EAAAA,EAAMowM,gBAAW,IAAA4E,GAAjBh1M,EAAAA,KAAAA,IAIIoqF,EAAc,WAAM,IAAA6qH,EACF,QAAtBj1M,EAAAA,EAAM+vM,qBAAgB,IAAAkF,GAAtBj1M,EAAAA,KAAAA,IAIIsqF,EAAa,WAAM,IAAA4qH,EAAAC,EAAAC,UACvBF,EAAA7B,EAAcl6M,8BAAd+7M,EAAqBxC,qBAAgB,IAAAyC,GAArCA,EAAA19M,KAAAy9M,GACiB,QAAjBl1M,EAAAA,EAAMkwM,gBAAW,IAAAkF,GAAjBp1M,EAAAA,KAAAA,IAGIuzM,EAAiB,SAACnsJ,GAA4B,IAAAkH,UAClDtuD,EAAAA,EAAMisD,eAANjsD,OAAAA,EAAAA,KAAAA,EAAgBonD,GAER9c,EAAAqG,KAAK,kBAAkB,IAyCjCpb,EAAAA,WAAU,WACR,IACMkH,EADenD,SAASkC,gBAAgBg+B,aAAelgC,SAASkC,gBAAgB06B,aACnDg7I,KAAsB,EACjDsC,EAAAr6M,MAAQmgC,SAASuD,cAAc,SAC/B22K,EAAAr6M,MAAMsvC,QAAQvQ,GAAK,aAAA9G,QAAc,IAAI7yB,iBAAW/F,IAAO,GAC/Dg7M,EAAQr6M,MAAM41M,gGAAY39K,OAGDqL,EAAA,0BAG3B,IAEA+U,EAAAA,iBAAgB,WACd4iK,GAAiB,GACLL,GACd,IAEM,IAAAsB,EAAe19L,EAAAA,UAAS,WAC5B,IAAQywD,EAAkCpoE,EAAlCooE,eAAgB71C,EAAkBvyB,EAAlBuyB,QAASqrD,EAAS59E,EAAT49E,KAC7B,OAACk2H,EAAU36M,MAGNo5B,IAAY61C,GAFXwV,CAIZ,IAEA,OAAO,WACC,IAEA03H,EAAO,EAFK7B,EAAQt6M,OAASm5M,EAAan5M,QAAAy9B,EAAAO,YAAA,MAAA,CAAA3+B,IAAA,OAAAq+B,MAAiC88K,EAAUx6M,OAAO,MAvD/E,WAEnB,IAAQg1B,EAA+DnuB,EAA/DmuB,MAA+DnuB,EAAxDs7I,UAAwDt7I,EAA7CiwM,SAA6CjwM,EAAnCksD,gBAAoBqpJ,IAAAA,KAAev1M,EAAAA,IACvE,OAAA42B,EAAAA,YAAA,MAAA,CAAAC,MAEcy4K,EAAUn2M,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAEX+8K,EAAcz6M,MAAA05B,MACdgsG,EAAc1lI,MAAAouC,QACZA,EACT0wD,YAAaA,YACFgyE,GAAA,CAAArzI,EAAAA,YAAA4+K,GAAAjxK,aAAA,CAAArU,IAGJmjL,EACLllL,MAAOA,GACHonL,EAAA,CAAAj6D,UAEOs1D,EAAAX,SACDe,EACV9kJ,gBAAiBqmJ,IAHRjoK,EAAQnK,WAuCNs1K,IAEbC,EAAW,CAAEtzK,OAAQpiC,EAAMoiC,QAI3BuzK,EAAW,CAAA,GAAAvkL,OACZ4Z,EAAe7xC,MAAAF,SAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEZ4Z,EAAe7xC,MAAsBs6M,gBAAAA,EAAQt6M,OAASm5M,EAAan5M,OAAA,GAAAi4B,OACnE4Z,EAAe7xC,MAAyBs6M,mBAAAA,EAAQt6M,OAAS6G,EAAM8vM,uBAAA,GAAA1+K,OAC/D4Z,EAAe7xC,MAAyBk5M,mBAAAA,EAAWl5M,QAKzD,OAAAy9B,EAAAA,YAAA0N,EAAAA,SAAA,CAAAtS,UAAqBhyB,EAAM8kB,SAAWue,EAAgBlqC,MAAOu6B,GAAI2P,EAAgBlqC,OAC/E,CAAAgqB,QAAA,WAAA,MAAAyT,CAAAA,EAAAO,YAAAmuD,aAAA,CAAApsD,SACY,IAAAthC,KAAA,GAAAw5B,OACD4Z,EAAe7xC,MACxB,cAAAy8M,cAAehsH,EACfY,aAAcL,gBACCC,EAAAyrH,aACDvrH,GAEb,CAAAnnE,QAAA,WAAA,MAAAkyL,CAAAA,EAAal8M,gEACuBw8M,EAAU9iL,MAAO6iL,GAAcprK,EAAQ9H,OACvE8yK,CAAAA,cADUt1M,EAAMuyB,WAAlB,IAAA,IAQb,ukBErTF,IAAMujL,GAA6B,SAAC91M,GAC5B,IAAAkV,EAAAshB,GAAA,CAAA,EAAex2B,GACfmwD,EAAU72B,SAASuD,cAAc,OACjCtK,EAAUrC,OAAI,GACZkK,EAAqBllB,EAArBklB,UAAWvH,EAAU3d,EAAV2d,MAEfkjL,EAAe37K,EAEb47K,EAAuB,SAAC57K,EAAmBvH,GAC/C,GAAIuH,EAAW,CACmC,IAAA67K,EAA5C,GAAAF,GAAgBA,IAAiB37K,GACnC67K,EAAA9lJ,EAAQ+lJ,kBAAkBh8K,WAAUve,OAAO3c,MAAAi3M,EAAAn+M,EAAGi+M,EAAartM,MAAM,KAAK1D,KAAI,SAACpN,GAAA,OAASA,EAAKyvE,MAAM,MAEjGjtC,EAAU1xB,MAAM,KAAK4H,SAAQ,SAAC1Y,GAC5Bu4D,EAAQ+lJ,kBAAkBh8K,UAAU1pB,IAAI5Y,EAAKyvE,OAC/C,GACF,CAEIx0C,IACDs9B,EAAQ+lJ,kBAAkCrjL,MAAMsjL,SAAWtjL,GAG/CuH,EAAAA,GAGXwK,EAAYxP,EAAAA,gBAAgB,CAChCC,eAAMr1B,EAAAA,GAAmB,IAAV0gD,EAAAne,EAAAme,OACP01J,EAAgBlmL,MAAyBhb,GAC/CqgB,EAAAA,WAAU,WACRhD,EAAQp5B,OAAQ,EAEfmgC,SAASunE,cAA8B7N,OAExCx9D,EAAAA,UAAS,WACPwgL,EAAqB57K,EAAWvH,EAClC,GACF,IAYA,OAJO6tB,EAAA,CACLoiB,OARa,SAAC0tI,GACd4F,EAAcj9M,MAAQq9B,GAAAA,GACjBthB,CAAAA,EAAAA,GACAs7L,MAQA,WACC,IAAAvkJ,EACJ/2C,EAAQ+2C,SACR,WACE15B,EAAQp5B,OAAQ,GAIpB,cAFO+b,EAAQklB,iBACRllB,EAAQ2d,MACRpV,IAAE44L,GAAiB7/K,GAAA,CACxBy1B,QAAAA,EACA15B,QAASA,EAAQp5B,OACdi9M,EAAcj9M,QAGvB,IAEIm9M,EAAkBpxK,YAAUN,GAC5Bvf,EAASixL,EAAgBnxK,MAAMgrB,GAE/Bj1B,EAAYR,GAAUxlB,EAAQ4P,QA8B7B,OA7BHoW,EACFA,EAAU4B,YAAYqzB,GAEtB9qB,QAAQnT,MAAM,uBAGmB,CACjC66C,KAAM,WACJx6C,EAAQp5B,OAAQ,CAClB,EACAmsC,KAAM,WACJ/S,EAAQp5B,OAAQ,CAClB,EACA2pE,OAAQ,SAAC0tI,GAEPnrL,EAAOy9C,OAAO5oD,GAAKs2L,EAAY,CAAC,YAAa,WACxBwF,EAAAxF,EAAWp2K,UAAWo2K,EAAW39K,MACxD,EACA0yB,QAAS,WACPhzB,EAAQp5B,OAAQ,EAChB8c,YAAW,WACTqgM,EAAgB/wK,UAChB4qB,EAAQx0C,WACP,IACL,EACA46L,kBAAmB,SAAC93K,GAClBpZ,EAAOy9C,OAAO,CAAE4sI,eAAgBjxK,GAClC,EAGJ,EAgBM+xB,GAAqB,CACzB1nC,QATmC,SAAC9oB,GAAyB,OAAA81M,GAAa91M,EAAK,EAU/EqtB,MAR+B,SAACrtB,GAC1B,IAAAkV,EAAAshB,GAAA,CAAA,EAAex2B,GAErB,OADAkV,EAAQs6L,UAAY,KACbsG,GAAa5gM,EACtB,GASashM,GAAeV,GAE5BU,GAAa7wK,QAAU,SAACV,GAClBA,EAAAW,OAAOC,iBAAiB4wK,QAAUX,GACtCx+M,OAAO4F,KAAKszD,IAAUlgD,SAAQ,SAACugD,GAC7B5rB,EAAIW,OAAOC,iBAAiB4wK,QAAQ5lJ,GAAYL,GAASK,EAC3D,GACF,EAEAv5D,OAAO4F,KAAKszD,IAAUlgD,SAAQ,SAACugD,GAC7B2lJ,GAAa3lJ,GAAYL,GAASK,EACpC,QChIa6lJ,GAAS/vK,GAAYysK,IACrBuD,GAAahwK,GAAY2qK,ICFvBsF,GAAA,CAEb9xL,OAAQ,CACNhpB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,QAGX6oC,SAAU,CACRlwD,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXmC,kBAAmB,CACjBxpB,KAAMgmC,QACN3e,SAAS,GAGX0zL,eAAgB/0K,QAEhB67C,UAAW,CACT7hF,KAAMgmC,QACN3e,aAAS,GAGXwqL,oBAAqB,CACnB7xM,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CACL,cACA,6BACA,SACA,2BACA,cACA,gBACA,kCACA,cACAjnB,SAASinB,EACb,GAGFq4K,WAAY,CACVh7M,KAAMxE,QAGRy/M,OAAQ,CACNj7M,KAAMnF,MACNwsB,QAAS,WAAT,MAA6C,EAAC,GAGhDloB,MAAO,CACLa,KAAM9C,OACNmqB,aAAS,GAGX6zL,aAAc,CACZl7M,KAAM9C,OACNmqB,QAAS,GAGXy5D,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,YAAYjnB,SAASinB,EACxC,GAGFw4K,gBAAiB,CACfn7M,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGX+e,YAAa,CACXpmC,KAAMgmC,QACN3e,aAAS,GAGXwF,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAGjByqD,QAAS,CACPzoD,KAAM,CAAC/C,OAAQe,WAGjBo9M,YAAa,CACXp7M,KAAMxE,QAGRi7B,QAAS,CACPz2B,KAAMgmC,QACN3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMgmC,QACN3e,aAAS,GAGX0lD,eAAgB/mC,QAEhBM,OAAQ,CACNtmC,KAAM9C,QAGRizD,QAASnyD,SAETq9M,WAAYr9M,SAEZs9M,cAAet9M,UC9GjBu9M,GAAejiL,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAO,CACL88L,MAAO9jM,OACPs+M,SAAUx9M,SACVy9M,SAAUz9M,SACV09M,UAAW19M,SACX29M,SAAU39M,SACV6iK,QAAS7iK,SACTq9M,WAAYr9M,SACZ49M,aAAc,CACZ57M,KAAMxE,OAAA6rB,QACNA,WACE,MAAO,EACT,IAGJkS,MAAAA,SAAMr1B,GACJ,IAAM0kB,EAAcyM,KAGZy2C,EAAeF,GAFN/vD,EAAAA,UAAS,WAAA,OAAM3X,EAAM03M,aAAaC,cAE3C/vI,WACAl3C,EAAiBP,GAAU,eAA3BO,aAED,OAAA,WAAA,OAAAkG,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACU1M,EAAYvrB,MAAA,yBAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV1M,EAAYvrB,MAAA,iCAAAy9B,CAAAA,EAAAO,YAAAygL,GAAA,CAAAtvI,iBAAA,GAAAl3C,OAEF1M,EAAYvrB,MAAA,6BAAA8vB,QACxByH,EAAav3B,MAAMs1B,cAAA25C,gBAAA,EAAA1b,UAAA,MAAAic,WAAA,EAAAx6C,MAAA,WAAA,CAAAhL,QAAA,WAAA,MAAAyT,CAAAA,EAAAO,YAAAk4K,GAAA,CAAA9nK,QAMDvnC,EAAMy3M,SAAUtyL,KAAM,WAAA,OAAAyR,EAAAA,YAAAihL,GAAA,CAAAtzM,KAAA,UAAA,KAAA,GAAgC,MAAA,IAAAqyB,EAAAO,YAAAygL,GAAA,CAAAtvI,iBAAA,GAAAl3C,OAG5D1M,EAAYvrB,MAAA,6BAAA8vB,QACxByH,EAAav3B,MAAMu1B,cAAA05C,gBAAA,EAAA1b,UAAA,MAAAic,WAAA,EAAAx6C,MAAA,WAAA,CAAAhL,QAAA,WAAA,MAAAyT,CAAAA,EAAAO,YAAAk4K,GAAA,CAAA9nK,QAMDvnC,EAAMs3M,SAAUnyL,KAAM,WAAA,OAAAyR,EAAAA,YAAAkhL,GAAA,CAAAvzM,KAAA,UAAA,KAAA,GAAkC,MAAA,IAAAqyB,EAAAO,YAAAk4K,GAAA,CAAAlqL,KAE7D,WAAA,OAAAyR,EAAAA,YAAAmhL,GAAA,CAAAxzM,KAAA,UAAA,KAAiC,EAAAgjC,QAAavnC,EAAMw3M,WAAW5gL,MAAAA,EAAAO,YAAAk4K,GAAA,CAAAx4K,MAAA,GAAAzF,OAE3E1M,EAAYvrB,kEAEZukG,GAAmB3kG,OAAqB,IAAdiH,EAAM88L,QAC5C,MAAAlmK,MAAAA,EAAAO,YAAAk4K,GAAA,CAAAlqL,KAEwB,WAAA,OAAAyR,EAAAA,YAAAohL,GAAA,CAAAzzM,KAAA,UAAA,KAAgC,EAAAgjC,QAAavnC,EAAMu3M,UAAU3gL,MAAAA,EAAAO,YAAAygL,GAAA,CAAAtvI,iBAAA,GAAAl3C,OAE9D1M,EAAYvrB,2CACxBu3B,EAAav3B,MAAMw1B,oBAAAy5C,gBAAA,EAAA1b,UAAA,MAAAic,WAAA,EAAAx6C,MAAA,WAAA,CAAAhL,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAMb1M,EAAYvrB,MACzB,8BAAAy9B,CAAAA,EAAAO,YAAAk4K,GAAA,CAAAlqL,KAAwB,WAAA,OAAAyR,EAAAA,YAAA2lK,GAAA,CAAAh4L,KAAA,UAAA,eAA4CvE,EAAM28J,qBAG7E38J,EAAM03M,aAAa1pK,UAClBpX,EAAAA,YAAAy4K,GAAA,CAAAlqL,KACQ,WAAA,OAAAyR,EAAAA,YAAAqhL,GAAA,CAAA1zM,KAAA,UAAA,KAAkC,EAAAgjC,QAC/B,WACDvnC,EAAAm3M,WAAWvvI,EAAWzuE,MAC9B,GACF,UAKV,IC9EF++M,GAAe9iL,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAO,CACLoiC,OAAQppC,OACRu5B,QAASuP,QACT7mC,MAAOjC,OACP+9M,OAAQ/2M,GAAM+2M,OACdja,MAAO9jM,OACPw0M,OAAQx0M,OACR61C,OAAQ71C,OACR2vB,MAAO3oB,GAAM2oB,MACb+uL,aAAc,CACZ57M,KAAMxE,OAAA6rB,QACNA,WACE,MAAO,EACT,GAEFm0L,SAAUx9M,SACVy9M,SAAUz9M,SACV09M,UAAW19M,SACX29M,SAAU39M,SACV6iK,QAAS7iK,SACTmyD,QAASjsD,GAAMisD,QACfkrJ,WAAYn3M,GAAMm3M,WAClBx5H,UAAW,CACT7hF,KAAMgmC,QACN3e,SAAS,GAEX+zL,YAAa,CACXp7M,KAAMxE,OAAA6rB,QACNA,WACE,MAAO,EACT,GAEF+e,YAAaJ,QACbkqB,SAAUhsD,GAAMgsD,SAChB2hJ,oBAAqB3tM,GAAM2tM,qBAE7Bt4K,MAAAA,SAAMr1B,GACJ,IAAM0kB,EAAcyM,KACdgnL,EAAY53K,KACZ1N,EAAQlb,EAAAA,UAAS,WAAA,MAAO,CAC5B2+D,SAAUt2E,EAAMk3M,YAAY5gI,SAC5Bg2F,UAAWtsK,EAAMk3M,YAAY5qC,UAC7B,IAEK,OAAA,WAAA,OAAA11I,EAAAA,YAAAwhL,GAAA,CAAAhwI,gBAAA,EAAAtjD,OAAA,OAAAmnC,QAIMjsD,EAAMisD,QACf15B,QAASvyB,EAAMuyB,QAAAm6B,UAAA,SAAAkwB,KAAA,WAAA5lD,MAGR,IACPw4K,UAAW,KACXC,WAAY,KACZ9xH,UAAW39E,EAAM29E,UAAAv7C,OACTpiC,EAAMoiC,mBACDpiC,EAAMkiC,YACnBrL,MAAA,GAAAzF,OAAU1M,EAAYvrB,MACtB,yBAAAquM,OAAQ2Q,EAAU,QAAS,IAAE7nC,OACrB,WAAA,OAAA15I,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACS1M,EAAYvrB,MACzB,+BAAAy9B,CAAAA,EAAAO,YAAAkgL,GAAA,CAAAE,SACYv3M,EAAMu3M,SAAAC,UACLx3M,EAAMw3M,UACjB1a,MAAO98L,EAAM88L,MACb4a,aAAc13M,EAAM03M,aAAAJ,SACVt3M,EAAMs3M,SAChBG,SAAUz3M,EAAMy3M,SAAA96C,QACP38J,EAAM28J,QACfw6C,WAAYn3M,EAAMm3M,YACpB,OAAA,GAVD,CAAAh0L,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAcY1M,EAAYvrB,MAAA,+BAAA05B,MAA2CA,EAAM15B,OAC1Ey9B,CAAAA,EAAAO,YAAAo2K,GAAA,CAAAC,OACUxtM,EAAMwtM,OACd1Q,MAAO98L,EAAM88L,MAAAjuJ,OACL7uC,EAAM6uC,OACdksJ,IAAK/6L,EAAM03M,aAAaC,UACxBlK,aAAcztM,EAAM03M,aAAaW,UAAA3K,MAC1B1tM,EAAM03M,aAAahK,MAAAC,oBACL3tM,EAAM2tM,qBAC7B,QAAA,IAIR,ICnGgB2K,YAAAA,GAAAA,OAChBA,EAAO,KAAA,YACPA,EAAK,GAAA,UACLA,EAAQ,MAAA,aACRA,EAAO,KAAA,YACPA,EAAM,IAAA,SALUA,CAAA,EAAAA,IAAA,CAAA,kOCKL,IAiCAC,GAAe,SAACxB,GACvB,OAACh/M,EAAQg/M,GACNA,EAAO/xM,KAAI,SAACi6B,GACb,OAPY,SAAC3X,GACZ,SAAEA,GAAUlP,GAASkP,IAAYA,aAAiBkxL,KAC3D,CAKQC,CAAYx5K,oWACPzI,CAAA,CACLwX,UAAU,EACVqqK,UAAWp5K,EAAK04K,WACb14K,GAGA,CACL04K,UAAW14K,EACXo5K,UAAWp5K,EACX+O,UAAU,EAEd,IAd6B,EAe/B,EClCA0qK,GAAetjL,kBAAgB,CAC7Bx9B,KAAM,eACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GAAO,IAAA24M,EACLj0L,EAAcyM,KACd6Z,EAAiB7Z,GAAe,gBAChC0O,EAAiBU,KACjBq4K,EAAW1oL,OAAI,GACf2oL,EAAmBlhM,EAAAA,UAAS,WAAA,OD4BZ,SAAC3X,GACrB,YAAsB,IAAtBA,EAAMkiC,YACDliC,EAAMkiC,YAEO,UAAfliC,EAAM48E,IACf,CCjC4CtO,CAAWtuE,MAEnD+rE,EAA4D7nC,SAAOlkC,GAA3D/E,EAAO8wE,EAAP9wE,MAAOs3B,EAAAw5C,EAAAx5C,QAASyyC,IAAAA,WAAY2oI,EAAoB5hI,EAApB4hI,oBAC4EzwH,EAAAvgE,GAA5E2nD,GAAgBrpE,UAAO+E,EAAAA,EAAMg3M,oBAAgB,IAAA2B,EAAAA,EAAA,EAAG34M,EAAMo3M,cAAe,SAAO,GAAzG0B,EAAY57H,EAAA,GAAA67H,EAAa77H,EAAA,GACgFlR,EAAArvD,GAAxEooD,GAAUxyC,EAASyyC,EAAYhlE,EAAM6oE,gBAAgB,cAAU,WAAS,GAAzGmwI,OAAcC,EAAejtI,EAAA,GAC9BktI,EAAehpL,OAAI,GACnBipL,EAAiBjpL,EAAAA,MAEjBmT,EAAkB9B,IAAY,WAAA,OAAMvhC,EAAM8kB,UAE1CwqL,EAAY33L,EAAAA,UAAS,WAAA,MAAM,CAC/BqzB,EAAe7xC,SAAAi4B,OACZ4Z,EAAe7xC,MAAA,kBAAAF,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEZ1M,EAAYvrB,mBAAmB6/M,EAAa7/M,WAG9CigN,EAAczhM,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OAC9B1M,EAAYvrB,qCAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAET1M,EAAYvrB,kBAAkBy/M,EAASz/M,WAGzCkgN,EAAc1hM,EAAAA,UAAS,WAAA,IAAA2hM,EAAA,eAAAA,EAAMt5M,EAAMoiC,sBAAU,QAC7Cm3K,EAAe,WACVX,EAAAz/M,OAASy/M,EAASz/M,OAG7BqgN,ElBjBG,WACC,IAAA3qK,EAAS3e,MAAI,GAQZ,MAAA,CAAE2e,OAAAA,EAAQ4oK,SAPA,WACf5oK,EAAO11C,QAAS,GAMSsgN,YAJP,WAClB5qK,EAAO11C,MAAQ,GAInB,CkBO8CugN,GAAlC7qK,EAAA2qK,EAAA3qK,OAAQ4oK,EAAU+B,EAAV/B,SAAUgC,EAAAD,EAAAC,YACpBE,ElBNM,WAAmE,IAA1D7C,sDAAyB,GAAA,CAAEx2M,IAAK,EAAGyU,IAAK,GAAKwG,KAAM,IAClEjb,EAAiCw2M,EAAjCx2M,IAAKyU,EAA4B+hM,EAA5B/hM,IAAKwG,EAAuBu7L,EAAvBv7L,KAAMq+L,EAAiB9C,EAAjB8C,aAClB9c,EAAQ5sK,MAAI0pL,QAAAA,EAAgB,GAE5BrC,EAAWt7L,IAAS,WACxB,IAAMxhB,EAAS2jG,GAAY0+F,EAAM3jM,MAAOoiB,GACxCs+L,EAASp/M,KACR,IAEG+8M,EAAYv7L,IAAS,WACzB,IAAMxhB,EAASqkG,GAAiBg+F,EAAM3jM,MAAOoiB,GAC7Cs+L,EAASp/M,KACR,IAEGq/M,EAAa,WACjBhd,EAAM3jM,MAAQygN,QAAAA,EAAgB,GAG1BC,EAAW,SAACE,GAChB,IAAI5gN,EAAQ4gN,EACRA,EAAWhlM,IACL5b,EAAA4b,GAENglM,EAAWz5M,IACLnH,EAAAmH,GAEVw8L,EAAM3jM,MAAQA,GAQhB,OALAuoC,EAAAA,OACE,WAAA,OAAMo1K,KACN,WAAA,OAAMgD,GAAW,IAGZ,CAAEhd,MAAAA,EAAOya,SAAAA,EAAUC,UAAAA,EAAWsC,WAAAA,EACvC,CkB7BuDE,CAASh6M,EAAM82M,YAA1Dha,IAAAA,MAAOya,EAAUoC,EAAVpC,SAAUC,EAAAmC,EAAAnC,UAAWsC,IAAAA,WACpCG,ElB8BG,WACC,IAAAzM,EAASt9K,MAAI,GAUZ,MAAA,CAAEs9K,OAAAA,EAAQ8J,SAPA,WACf9J,EAAOr0M,OAHU,IASQ+gN,YAJP,WAClB1M,EAAOr0M,MAAQ,GAInB,CkB1C8CghN,GAAlC3M,EAAAyM,EAAAzM,OAAQ8J,EAAU2C,EAAV3C,SAAU4C,EAAAD,EAAAC,YACpBE,EAAS,WACDX,IACDK,IACCI,KAGRnD,EAASp/L,EAAAA,UAAS,WAAA,OAAM4gM,GAAav4M,EAAM+2M,WAC3CW,EAAe//L,EAAAA,UAAS,WAAA,IAAA0iM,EAAA,OAAwC,QAAxCA,EAAMtD,EAAO59M,MAAM2/M,EAAW3/M,cAAU,IAAAkhN,EAAAA,EAAA,CAAE1C,UAAW,OAE3E9K,EAA0BF,GAAgB,SAAU,CAC1Dp6K,QAASymL,IADHnM,sBAIFyN,EAAY,WACV,IAAApnF,EAAW4lF,EAAW3/M,MAAQ,EAC7BihN,IACPrB,EAAc7lF,EAAW,EAAI,EAAIA,EAAU,CAAE3uE,QAAS,UAGlDg2J,EAAY,WACV,IAAArnF,EAAW4lF,EAAW3/M,MAAQ,EAC7BihN,IACOrB,EAAA7lF,GAAY6jF,EAAO59M,MAAM3C,OAASsiN,EAAW3/M,MAAQ+5H,EAAU,CAAE3uE,QAAS,UAOpFi2J,EAAkB,SAAC7tL,GACvB3sB,EAAMm3M,WAAan3M,EAAMm3M,WAAWxqL,GDpFd,SAAU8tL,GAAgB,IAAAC,EAAAC,EAAAC,EAC9CtzL,EAAQ,IAAIk1K,MAIZ5kM,GAAO6iN,SAAgBC,UAAhBD,EAAQ/xM,iBAAQgyM,WAAAA,EAAhBA,EAAAjjN,KAAAgjN,EAAgB,mBAAW,UAA3BC,EAAuB,UAAI,IAAAA,GAAAC,QAAAA,EAA3BD,EAA2BhyM,iBAAAiyM,GAAWA,QAAXA,EAA3BA,EAAAljN,KAAAijN,EAAmC,gBAAGC,WAAAA,EAAtCA,EAA0C,UAAI,IAAAA,GAAA,QAAAC,EAA9CD,EAA8CjyM,aAAA,IAAAkyM,OAAA,EAA9CA,EAAAnjN,KAAAkjN,EAAsD,KAAK91M,QAASxE,KAAKmrG,SAASh0G,SAAS,IAAIE,MAAM,GAE5G4vB,EAAA4oB,aAAa,cAAe,aAElC5oB,EAAM2gD,OAAS,WACP,IAAA4yI,EAASvhL,SAASuD,cAAc,UACtCg+K,EAAO7jL,MAAQ1P,EAAM0P,MACrB6jL,EAAO5jL,OAAS3P,EAAM2P,OAEN4jL,EAAOC,WAAW,MAC1BC,UAAUzzL,EAAO,EAAG,EAAGA,EAAM0P,MAAO1P,EAAM2P,QAC3C4jL,EAAAG,QAAO,SAACC,GACP,IAAAtuL,EAAMuuL,IAAIC,gBAAgBF,GAC1Bh+L,EAAIqc,SAASuD,cAAc,KACjC5f,EAAE+wB,SAAWp2C,EACbqlB,EAAEkqB,KAAOxa,EACT1P,EAAE8f,QACF9f,EAAEtB,SACFu/L,IAAIE,gBAAgBzuL,EACtB,KAEFrF,EAAMyzK,IAAM0f,CACd,CCyDiDY,CAAa1uL,IAGpD2uL,EAAc,WAClBrC,GAAgB,IAEZhtJ,EAAyC,SAAC7E,GAAQ,IAAAkH,EACtD2qJ,GAAgB,WAChBj5M,EAAAA,EAAMisD,eAANjsD,OAAAA,EAAAA,KAAAA,EAAgBonD,IAEZmrJ,EAAiB,SAAC/3M,GACtByxD,EAAQ,CAAEzxD,EAAAA,EAAG+pD,QAAS,eAElBg3J,EAAsB,SAAC/gN,GACvBwF,EAAM62M,gBACR5qJ,EAAQ,CAAEzxD,EAAAA,EAAG+pD,QAAS,aAIpBi3J,EAAiB,SAAChhN,GAGtB,OAFAA,EAAE24E,kBAEM34E,EAAE6zE,MAAA,KACHiqI,GAAW/6K,KACJ+8K,IACV,MAAA,KACGhC,GAAW76K,MACJ88K,IACV,MAAA,KACGjC,GAAWmD,GACLlE,IACT,MAAA,KACGe,GAAWoD,KACJlE,IACV,MAAA,KACGc,GAAWqD,IACV37M,EAAMslB,mBAAqBunL,KAC7B5gJ,EAAQ,CAAEzxD,EAAAA,EAAG+pD,QAAS,UAQxB22I,EAAShrK,EAAAA,MACfwR,EAAAA,OACE,WAAA,OAAMs3K,EAAa7/M,KACnB,IAAA,SAACslC,GACCloB,aAAa4iM,EAAehgN,OACxBslC,GACFy6K,EAAa//M,OAAQ,EACZq8B,EAAAA,WAAEulB,MAAK,WAAM,IAAA6gK,EAAAC,UACpBD,EAAA1gB,EAAO/hM,8BAAPyiN,EAAcz2J,aAAQ,IAAA02J,GAAtBA,EAAApkN,KAAAmkN,EACF,IAEOxB,KAEQjB,EAAAhgN,MAAQ8c,YAAW,WAChCijM,EAAa//M,OAAQ,IACpB,IAEP,IAGI,IAAAssF,EAAU,SAACjrF,GACfA,EAAEwzE,iBACiBxzE,EAAXuoF,OACC,EAAIy0H,IAAcD,KAGvBuE,GAAankM,EAAAA,UAAS,WAAA,MAAO,CACjClX,UAAA2wB,oBAAAA,OAA+B0nL,EAAW3/M,MAAA,8BAC1C,IAEIktF,GAAe,WAAA,OAAAzvD,EAAAA,YAAA,MAAA,CAAAC,MACPuiL,EAAYjgN,OAAAy9B,CAAAA,EAAAO,YAAAk4K,GAAA,CAAAlqL,KAEd,WAAA,OAAAyR,cAAAyrE,GAAA,KAAA,KACN,EAAAxrE,MAAA,GAAAzF,OAAU4Z,EAAe7xC,MACzB,mBAAAouC,QAASgyK,GACX,MAAA3iL,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACe4Z,EAAe7xC,8DACb6xC,EAAe7xC,MAAA,kBAAA05B,MAA8BipL,GAAW3iN,OACpE49M,CAAAA,EAAO59M,MAAM6L,KAAI,SAACsiB,EAAOrsB,GAAAA,OAAAA,EAAAA,YAAAA,MAAAA,CAAAA,IAEjBA,EAAAA,MACE,IAAAm2B,OACF4Z,EAAe7xC,sBAAAF,EAAA,CAAA,EAAA,GAAAm4B,OAEZ1M,EAAYvrB,MAAA,cAAoB8B,IAAU69M,EAAW3/M,SAE7Dy9B,CAAAA,EAAAO,YAAAqlK,GAAA,CAAAzB,IAGOzzK,EAAM+wL,WAAa/wL,EAAMqwL,UAAAzlL,MAAA,GAAA2E,MAAA,GAAAzF,OAEpB4Z,EAAe7xC,MACzB,gBAAAouC,QAAS,WAAA,OAvGJ,SAAC9wC,GAClBsiN,EAActiN,EAAG,CAAE8tD,QAAS,YAsGDw3J,CAAW9gN,EAAK,GAAA,OAAA,WAQvC+gN,GAAwB,SAAClgN,GACvB,IAAAmgN,EAAqB,SAATngN,EAAkB,EAAI,IAClCqpB,EAAO0a,EACX,kBAAAjJ,EAAAA,YAAA2pD,GAAA,CAAA1tD,MACwB,CAAEpyB,2BAAqBw7M,EAAA,SAAmB13M,KAAA,QAAA,OAGpE,OAAAqyB,EAAAA,YAAAy4K,GAAA,CAAAx4K,MAAAzF,GAAAA,OAEc4Z,EAAe7xC,MAAgBi4B,YAAAA,OAAAt1B,EAAA,OAAAyrC,QACvB,SAATzrC,EAAkBw+M,EAAYC,EACvCp1L,KAAM,WAAA,OAAMA,CACd,GAAA,OAIE+2L,GAAiB,WACjBl8M,IAAmB,IAAnBA,EAAMgsD,SAIR,OAAAp1B,EAAAA,YAAA,MAAA,CAAAC,MACS,CAAAzF,GAAAA,OAAI4Z,EAAe7xC,MAAAi4B,gBAAAA,GAAAA,OAAwB4Z,EAAe7xC,mCACxDo5M,GAAA,CAER1yK,EAAe,WAAYjJ,EAAAA,YAAAq3B,GAAA,CAAA1pD,KAAA,QAAA,UAKlC,OAAO,WACDvE,MAAe,aAAfA,EAAM48E,KAENhmD,EAAAO,YAAA4gB,EAAA5Y,eACGU,EAAe,UAAW,CAAER,OAAQ,CAAEwzC,KAAMyoI,KAAe1kL,EAAAO,YAAA+gL,GAAA,CAAA91K,OAElDi3K,EAAYlgN,cACX6/M,EAAa7/M,MACtB8B,MAAO69M,EAAW3/M,MAAA49M,OACVA,EAAO59M,MAAA2jM,MACRA,EAAM3jM,MACbq0M,OAAQA,EAAOr0M,MACf01C,OAAQA,EAAO11C,MAAAu+M,aACDA,EAAav+M,eACjBm+M,EAAAC,SACAA,EAAAC,UACCA,EAAAC,SACDA,EACV96C,QAASy9C,EACTnuJ,QAASA,EACTkrJ,WAAYqD,YACDx6M,EAAM29E,UACjBz7C,YAAa22K,EAAiB1/M,MAAAwvB,MACvB3oB,EAAM2oB,MAAAglL,oBACQA,EAAoBx0M,OAC3C,QAMJy9B,EAAAO,YAAA4gB,EAAA5Y,eACGU,EAAe,UAAW,CAAER,OAAQ,CAAEwzC,KAAMyoI,KAAe1kL,EAAAO,YAAAmN,WAAA,CAAAtS,UACvChyB,EAAM8kB,SAAWue,EAAgBlqC,MAAOu6B,GAAI2P,EAAgBlqC,OAC/E,CAAAgqB,QAAA,WAAA,MAAAyT,CAAAA,EAAAA,YAAA0uD,EAAAA,WAAA,KAAA,CAAAniE,QAAA,WAAA,MAAA,EACI61L,EAAa7/M,QAAU+/M,EAAa//M,QAAA61E,EAAAA,eAAAp4C,EAAAO,YAAA,MAAA,CAAAjH,IAE7BgrK,EACLrkK,MACOy4K,EAAUn2M,MACjB05B,MAAO,CAAEuP,OAAQi3K,EAAYlgN,OAAMssF,QAC1BA,EACT/5C,sBACW8vK,GAAA,GAER3C,EAAiB1/M,OAClBy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAqB,gBAAAouC,QAASg0K,GAAqB,MAElFxE,EAAO59M,MAAM3C,OAAS,GACrBogC,cAAAmhB,EAAAA,SAAA,KAAA,CACGsuC,KAAazvD,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACC4Z,EAAe7xC,MAAA,kBAAA,CAC3B6G,EAAM2oB,OAASkX,EAAe,SAAO,GAAAzO,OAClC0nL,EAAW3/M,MAAQ,EAAAi4B,KAAAA,OAAK2lL,EAAO59M,MAAM3C,UAE1CwlN,GAAsB,QACtBA,GAAsB,UAG1BE,KAAetlL,EAAAA,YAAAygL,GAAA,CAAAE,SAEJA,YACCC,EAAAC,SACDA,EACV96C,QAASy9C,WACC9C,EAAAH,WACEqD,EACZ1d,MAAOA,EAAM3jM,MACbu+M,aAAcA,EAAav+M,OAC7By9B,MAAAA,EAAAO,YAAAo2K,GAAA,CAAAzQ,MAESA,EAAM3jM,MAAAq0M,OACLA,EAAOr0M,MAAA01C,OACPA,EAAO11C,MACf4hM,IAAK2c,EAAav+M,MAAMw+M,UAAAlK,aACViK,EAAav+M,MAAMk/M,UAAA3K,MAC1BgK,EAAav+M,MAAMu0M,MAAAC,oBACLA,EAAoBx0M,OAC3C,QAAA,CAAA,CAAAi2E,EAAAub,MAxCQquH,EAAa7/M,SAFtB,IAAA,MAkDf,IC/SWgjN,GAAcx1K,GAAY+xK,ICCxB0D,GAAA,CAEb55J,OAAQ,CACN1mD,KAAM,CAAC/C,OAAQe,WAGjBmvB,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,YCfnBuiN,GAAejnL,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,MAAQ,WACA,IAAA2V,EAAiB7Z,GAAe,aAChC0O,EAAiBU,KAEvB,OAAO,WACC,IAAA+7K,EAAez8K,EAAe,WAC9B08K,EAAsB18K,EAAe,WACrC28K,EAAqB38K,EAAe,UAGxC,OAAAjJ,EAAAA,YAAA,KAAA,CAAAC,MAAWmU,EAAe7xC,6CACT6xC,EAAe7xC,MAAA,UAAA,CAC3BojN,GAAuBD,EACvBE,GAAA5lL,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAAoC4Z,EAAe7xC,MAAA,aAAA,CAAkBqjN,QAKhF,ICjBaC,GAAA,CAEbC,aAAc,CACZ5gN,KAAM,CAAC/C,OAAQe,WAGjBw2K,OAAQ,CACNx0K,KAAM,CAAC/C,OAAQe,WAGjB0tM,OAAQ,CACN1rM,KAAM,CAAC/C,OAAQe,WAGjBs7C,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFwiC,OAAQ,CACNnlE,KAAMxE,QAGRiN,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGF/1B,MAAOo5B,QAEP66K,OAAQ76K,QAER86K,WAAY9iN,SAEZivE,SAAUjvE,UCnDC+iN,GAAY,2oECOlB,ICMPC,GAAe1nL,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAgC,ICVhC8zE,EDUsBpzB,EAAAne,EAAAme,OACpBq8J,EAAU7sL,EAAAA,MAERQ,EAAiBP,GAAU,QAA3BO,aACFsa,EAAiB7Z,GAAe,QAC9BG,EAASD,KAATC,KACFuO,EAAiBU,KACfy8K,GCjBJlpI,EAAyBn+B,KAkBxB,CACLqnK,UAjBgBrlM,EAAAA,UAAS,WACzB,IAAMslM,EAAoB,GAEpBC,EAAgBppI,EAAuB,YAEzC,GAAA/7E,EAAQmlN,GAAgB,CAAA,IACSp9H,EADTC,EAAAC,GACNk9H,GAAe,IAAnC,IAAAn9H,EAAAxiE,MAAAuiE,EAAAC,EAAA1oF,KAAA+lB,MAAmC,CAAA,IAAxB0sB,UACTmzK,EAAkB75M,KAAKozB,GAAAA,GAAA,CAAA,EAClBsT,EAAM9pC,OAAA,GAAA,CACTmgC,MAAO2J,EAAM5K,WAEjB,CAAA,CAAA,MAAA+b,GAAA8kC,EAAAvlF,EAAAygD,EAAA,CAAA,QAAA8kC,EAAA7iE,GAAA,CACF,CACO,OAAA+/L,CACT,MDCUD,UAERG,EDlBgC,SAClCl8I,EACA87I,EACAC,GAEM,IAAAl5B,EAAsBnsK,EAAAA,UAAS,WAAA,MAAO,CAC1CjT,KAAMs4M,EAAU7jN,MAChB8nE,OAAAA,EACA,IACIq/G,EAAgBhzD,GAAiByvF,EAASj5B,GAC1ClL,EAAkBjhK,EAAAA,UAAS,WAAA,OAAM2oK,EAAc1H,gBAAgBz/K,SACjE80H,GAAc,EAaZI,EAAc12G,EAAAA,UAClB,WAAA,MACG,CACCwxB,SAAU,WACVnS,MAAO,MACPC,OAAQ,MACRwS,WAAY,iBACZhpC,UAAA,gBAAA2wB,OAA2BkvJ,EAAc9mH,aAAargE,MAAA,OACtD,gBAAA,gBAAAi4B,OAAiCkvJ,EAAc9mH,aAAargE,MAAA,OAC5D,iBAAA,gBAAAi4B,OAAkCkvJ,EAAc9mH,aAAargE,MAAA,OAC7D,oCAAAi4B,OAAqCkvJ,EAAc9mH,aAAargE,MAAA,OAClE,IAGEikN,EAAYzlM,EAAAA,UAChB,WAAA,MACG,CACClX,UAAA,gBAAA2wB,OAA2BkvJ,EAAcj0D,WAAWlzH,MAAA,OACpD,gBAAA,gBAAAi4B,OAAiCkvJ,EAAcj0D,WAAWlzH,MAAA,OAC1D,iBAAA,gBAAAi4B,OAAkCkvJ,EAAcj0D,WAAWlzH,MAAA,OAC3D,oCAAAi4B,OAAqCkvJ,EAAcj0D,WAAWlzH,MAAA,OAChE,IAiBG,MAAA,CACLmnL,cAAAA,EACAjyD,YAAAA,EACA+uF,UAAAA,EACAxkC,gBAAAA,EACA1qD,qBAtD2B,SAAC1zH,GACtB,IACA8iC,GADU9iC,EAAEw4B,QAAUx4B,EAAEwpL,YACXjoJ,UACfkyF,IAAgB3wF,EACJgjJ,EAAA1H,gBAAgBz/K,OAASmnL,EAAchhI,eAEvC2uE,GAAA,EAEFA,EAAA3wF,GA+Cd+8I,gBApBqB,SAACh7I,GAChB,IAAEpkC,EAAeokC,EAAfpkC,MAAOzC,EAAQ6mC,EAAR7mC,IACTssF,EAAwB,IAAV7pF,GAAsBA,QAARA,EAAiBjC,OAAOR,GACrDssF,GAA+B,IAAhBA,EAIhBA,EAAc,GAAKA,GAAek4H,EAAU7jN,MAAM3C,OAChD8uE,GAAM,UAAQl0C,OAAG0zD,EAAwE,4DAG/Fw7F,EAAcjG,yBAAqBh7I,OAAQpkC,MAAO6pF,EAAc,KAP1Dxf,GAAM,OAAQ,2CAkBxB,CCnDM+3I,CAAqBr9M,EAAMihE,OAAQ87I,EAASC,GADtC18B,EAAA68B,EAAA78B,cAAejyD,EAAa8uF,EAAb9uF,YAAa+uF,EAAAD,EAAAC,UAAWxkC,EAAiBukC,EAAjBvkC,gBAAiB1qD,EAAAivF,EAAAjvF,qBAAsBmsD,EAAgB8iC,EAAhB9iC,gBAIhFijC,EAAY3lM,EAAAA,UAAS,WAClB,MAAA,CAAA,GAAAyZ,OACF4Z,EAAe7xC,OAClBm4B,EAAKn4B,MAAM6G,EAAMuE,MAAAtL,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEX4Z,EAAe7xC,MAAiB6G,WAAAA,EAAM0I,OAAA0oB,GAAAA,OACtC4Z,EAAe7xC,MAAA,YAAkB6G,EAAM28M,QAAAvrL,GAAAA,OACvC4Z,EAAe7xC,MAA2B6G,qBAAiB,aAAjBA,EAAMo1C,QAG1D,IA6BMkK,EAAe,SAAC9kD,GAAkB,IAAAk0E,EAChC6uI,EAAc/iN,EAAEw4B,OACd+I,EAA0CwhL,EAA1CxhL,UAAWy9B,EAA+B+jJ,EAA/B/jJ,aAActD,EAAiBqnJ,EAAjBrnJ,aAC7B0iH,EAAgBz/K,OAAO+0H,EAAqB1zH,GAC/B,QAAjBwF,EAAAA,EAAM+oE,gBAAW,IAAA2F,GAAjB1uE,EAAAA,KAAAA,EAAiB,CACfxF,EAAAA,EACAuhC,UAAAA,EACAyhL,aAAchkJ,EAAetD,EAAen6B,KAM1C0hL,EAAe9lM,EAAAA,UAAS,WACrB,OAAAS,GAASpY,EAAM08M,eAAiB,CAAC,UAAW,aAAallM,SAASxX,EAAM08M,cAC3EtrL,GAAAA,OAAG4Z,EAAe7xC,MAAei4B,WAAAA,OAAA4Z,EAAe7xC,yBAAgB6G,EAAM08M,cAAAtrL,GAAAA,OACnE4Z,EAAe7xC,MAAA,SACxB,IAEMukN,EAAgB,WACpB,GAAI19M,EAAM08M,cAAgBtkM,GAASpY,EAAM08M,cAAe,CAClD18M,GFxFW,YEwFXA,EAAM08M,aACR,OAAA9lL,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAA2U,GAAA,KAAA,MAAA3U,EAAAA,YAAA,OAAA,KAAA,CAGWlG,EAAav3B,MAAM2uB,gBAI5B9nB,GAAAA,EAAM08M,eAAiBG,GACzB,OAAAjmL,EAAAA,YAAclG,OAAAA,KAAAA,CAAAA,EAAav3B,MAAM+vB,iBAErC,CACA,OAAO2W,EAAe,iBAGlB89K,EAAiB,SAACnjN,GAAkB,IAAAojN,EACpCxlM,GAASpY,EAAM08M,eAAiB18M,EAAM08M,eAAiBG,IACrD,QAAN78M,EAAAA,EAAM48M,kBAAA,IAAAgB,GAAN59M,EAAAA,KAAAA,EAAmB,CAAExF,EAAAA,KAGvB,OADOkmD,EAAA,CAAEjlB,SAAU4+I,IACZ,WACL,IArEMwjC,EACAC,EACAllC,EAmEAp3C,EAAc,EArEdq8E,EAAqBh+K,EAAe,UACpCi+K,EAAqBj+K,EAAe,UACpC+4I,EAAkB0H,EAAc1H,gBAAgBz/K,MAEpDy9B,EAAAA,YAAAmhB,EAAAA,SACG8lK,KAAAA,CAAAA,EAAAjnL,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAoC4Z,EAAe7xC,MAAA,aAAkB0kN,CAAAA,IAA4B,KACjGjlC,EACChiJ,cAAAmhB,EAAAA,SAAA,KAAA,CAAAnhB,EAAAO,YAAA,MAAA,CAAAtE,MACcw7F,EAAYl1H,OAAO,MAAAy9B,EAAAO,YAAA,KAAA,CAAAN,MAAA,GAAAzF,OACjB4Z,EAAe7xC,MAAA,WAAA05B,MAAuBuqL,EAAUjkN,OAC3DmnL,CAAAA,EAAc10D,YAAYzyH,MAAM6L,KAAI,SAACi6B,GACpC,OAAArI,EAAAO,YAAA4gB,EAAA5Y,SAAAvI,KAAAA,CAAAA,EAAAO,YAAA4mL,GACsC7jM,GAAK+kB,EAAM,SAA3BA,EAAKkB,QAE5B,QAAAvJ,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAIS4Z,EAAe7xC,MAAiB,YAAA0mC,CAAAA,EAAe,aAE9Di+K,EAAAlnL,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAoC4Z,EAAe7xC,MAAA,aAAkB2kN,CAAAA,IAA4B,QAkDtFlnL,EAAAA,YAAA,MAAA,CAAAC,MACF4mL,EAAatkN,cAAgBwkN,GACtCD,CAAAA,OAIL,OAAA9mL,EAAAA,YAAA,MAAA,CAAAC,MAEWymL,EAAUnkN,eACPmmD,EAAApvB,IACL6sL,EAAAlqL,MACE+lJ,EAAgBz/K,MAAQ,yBAAsB,GAAA,CAEpDqoI,IAIT,IEvHaw8E,GAAA,CAEbrhB,OAAQ,CACN7gM,KAAM,CAAC/C,OAAQe,WAGjBytM,YAAa,CACXzrM,KAAM,CAAC/C,OAAQe,WAGjBwtB,MAAO,CACLxrB,KAAM,CAAC/C,OAAQe,WAGjB6uB,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,YClBnBmkN,GAAe7oL,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAOonD,GACL,IAAApc,EAAiB7Z,GAAe,mBAChC+R,EAAgBjC,KAChBpB,EAAiBU,KAEjB29K,EAAe,YACfl+M,EAAM28L,QAAUv1I,EAAIjnB,MAAMw8J,SAC5Bt3J,QAAQkgC,KAAK,kEAET,IAAA8yI,EAAYn1K,EAAc,SAAU,SAC1C,GAAKm1K,EACD,OAAAjgM,GAASigM,GAETzhL,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAC5B,YAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAA4jK,IAAUsd,GAAW,QAI3BzhL,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAsB4Z,EAAe7xC,MAAA,YAAA,CAAiBk/M,KAExD,OAAO,WACC,IAAA8F,EAAoBt+K,EAAe,SACnCu+K,EAA0Bv+K,EAAe,eAEzCw+K,EAAsB,CAC1BH,IAAatnL,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACE4Z,EAAe7xC,MAAA,aAC3BglN,CAAAA,GAAAvnL,EAAAO,YAAA,KAAA,CAAAN,MAAA,GAAAzF,OAAmC4Z,EAAe7xC,MAAA,WAAA,CAAgBglN,IAClEC,GAAAxnL,EAAAA,YAAA,IAAA,CAAAC,MAAA,GAAAzF,OAAwC4Z,EAAe7xC,MAAA,iBAAsBilN,CAAAA,OAIlF,OAAAxnL,EAAAA,YAAA,MAAA,CAAAC,MAAmBmU,EAAe7xC,OAAA,CAAQklN,IAE9C,IC9BWC,GAAO33K,GAAYm2K,IACnByB,GAAW53K,GAAY01K,IACvBmC,GAAe73K,GAAYs3K,ICf3BQ,GACL,OADKA,GAEJ,QAFIA,GAGH,SAEGC,GACJ,QADIA,GAEH,SAFGA,GAGJ,QAEIC,GACJ,GADIA,GAEH,IAFGA,GAGJ,IAEIC,GACJ,GAAKD,GADDC,GAEH,GAAKD,GAFFC,GAGJ,GAAKD,GAGDE,GAAc,CAAC,UAAW,QAAS,WCZjCC,GAAA,CAEbtrL,MAAO,CACL13B,KAAM,CAAC/C,OAAQzB,OAAQX,OACvBwsB,QAAS,IAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGX47L,WAAY,CACVjjN,KAAM9C,OACNmqB,QAAS,GAGX5e,KAAM,CACJzI,KAAM,CAAC/C,OAAQC,QACfmqB,QAAS,UAGXkrC,OAAQ,CACNvyD,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,QAAS,UAAW,UAAUjnB,SAASinB,EAC5D,GAGFugL,YAAa,CACXljN,KAAM,CAAC/C,OAAQC,SAGjBm1B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,UAAUjnB,SAASinB,EAC9C,GAGFwgL,WAAY,CACVnjN,KAAM/C,OACNoqB,QAAS,KCnCb+7L,GAAe9pL,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAM6/B,EAAiBU,KACjByK,EAAiB7Z,GAAe,YAChCq8B,EACJpB,GAAc,CACZgpC,sBAAuBC,GACvB1nC,sBAAuBC,GACvBC,sBAAuBC,GACvBG,UAAWC,GACXytE,UAAWC,GACXujF,UAAWC,KAPPhqH,IAAAA,sBAAuBznC,EAAuBH,EAAvBG,sBAAuBE,EAAAL,EAAAK,sBAAuBI,IAAAA,UAAW0tE,EAAWnuE,EAAXmuE,UAAWwjF,EAAA3xJ,EAAA2xJ,UAU7FE,EAAc1nM,EAAAA,UAAS,WAC3B,OAAK3X,EAAMquD,QAAUruD,EAAM++M,YAAc,IAChC,UAEF/+M,EAAMquD,QAAU,SACzB,IAEMixJ,EAAe3nM,EAAAA,UAAS,WAC5B,IAAMkb,EAAuB,CAAA,EAC7B,GAAI7yB,EAAMg/M,YAAa,CACf,IAAA/nL,EAAS7e,GAASpY,EAAMg/M,aAAeh/M,EAAMg/M,YAAA5tL,GAAAA,OAAiBpxB,EAAMg/M,YAAA,MAC1EnsL,EAAMoE,OAASA,EACfpE,EAAMuW,aAAenS,CACvB,CAIO,OAHHj3B,EAAMi/M,aACRpsL,EAAM8W,gBAAkB3pC,EAAMi/M,YAEzBpsL,CACT,IAEMwuI,EAAW1pJ,EAAAA,UAAS,WACjB,MAAA,CACLqf,SAAA5F,OAAUpxB,EAAM++M,WAAA,KAChBtoL,WAAYz2B,EAAMwzB,OAASD,GAAmBvzB,EAAMwzB,OAExD,IAEM+rL,EAAkB5nM,EAAAA,UAAS,WAExB,MAAA,CACLsvE,OAFkBprF,EAASmE,EAAMwzB,OAAS,GAAKxzB,EAAMwzB,MAIzD,IAEMgsL,EAAmB7nM,EAAAA,UAAS,WAEzB,MAAA,CACLsvE,OAFkBprF,EAASmE,EAAMi/M,YAAc,GAAKj/M,EAAMi/M,WAI9D,IAGMQ,EAAW9nM,EAAAA,UAAS,WACxB,IAAI8nM,EAAWd,GACX,IAAC3+M,EAAMuE,KACFk7M,OAAAA,EAET,IAAQC,EAAyBhB,GAAlBiB,EAAkBjB,GAAXkB,EAAWlB,GACjC,OAAQ1+M,EAAMuE,MACP,KAAAm7M,EACHD,EAAWd,GACX,MACG,KAAAiB,EACHH,EAAWd,GACX,MACG,KAAAgB,EACHF,EAAWd,GACX,MAAA,QAEAc,EAAWzmN,OAAOgH,EAAMuE,MAGrBk7M,OAAAA,CACT,IAEMI,EAAUloM,EAAAA,UAAS,WACvB,OAAO8nM,EAAStmN,MAAQ,CAC1B,IAEM2mN,EAASnoM,EAAAA,UAAS,WACf,OAAAkoM,EAAQ1mN,MAAQ4mN,EAAkB5mN,MAAQ,CACnD,IAEM6mN,EAAcroM,EAAAA,UAAS,WACvB3X,GAAAA,EAAMmuB,QAAUswL,GAClB,MAAO,GAGL,IAAAxoL,EAAWwpL,EAAStmN,MAAQylN,GAOzB,OANHa,EAAStmN,OAASwlN,GACT1oL,EAAAwpL,EAAStmN,MAAQylN,GACnBa,EAAStmN,OAASwlN,KAChB1oL,EAAAwpL,EAAStmN,MAAQylN,IAGvB,CACL5nL,SAAA5F,OAAUquL,EAAStmN,MAAA,MACnB89B,UAAA7F,OAAWquL,EAAStmN,MAAA,MACpB88B,mBAAaA,EAAA,MAEjB,IAEM8pL,EAAoBpoM,EAAAA,UAAS,WACjC,IAAMsoM,EAAejgN,EAAMuE,OAASm6M,GAAoB,EAAI,EAC5D,OAAO1+M,EAAMg/M,YAAchmN,OAAOgH,EAAMg/M,aAAeiB,CACzD,IAEMC,EAAgBvoM,EAAAA,UAAS,WAC7B,IAAMmoM,GAAUL,EAAStmN,MAAQ4mN,EAAkB5mN,OAAS,EACtDgnN,EAAsB,EAAV9/M,KAAK+/M,GAASN,EAC1B13C,EAAUpoK,EAAM++M,WAAa,IACnC,MAAA,GAAA3tL,OAAU+uL,EAAY/3C,EAAY,MAAAh3I,OAAA+uL,GAAa,EAAI/3C,GACrD,IAeMi4C,EAAkB,WAClB,IAbEC,EAKAC,EAQFzoH,EAAA1mE,GAAAA,OAAkCpxB,EAAM++M,WAAA,KACtC1wJ,EAASruD,EAAMquD,QAAU,GAC/B,GAAIwwJ,GAAYrnM,SAAS62C,IAAWruD,EAAMmuB,QAAUswL,GAAiB,CACnE,IACM75K,GAjBF07K,EAAe,CACnB16L,QAAS+1G,EACTj2G,QAASy5L,EACTjtL,MAAO+7B,GAEHsyJ,EAAe,CACnB36L,QAAS+nC,EACTjoC,QAASmoC,EACT37B,MAAOkjE,GAEFp1F,EAAMmuB,QAAUswL,GAAmB6B,EAAeC,GAO1BlyJ,GACzBzpB,IACFkzD,EAAAlhE,EAAAO,YAAAyN,EAAA,CAAA/N,MAAiC,CAAAzF,GAAAA,OAAI4Z,EAAe7xC,kBAAgB,MAExE,CACO,OAAA2+F,GAGT,OAAO,WACL,IAAMA,EACJlhE,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAgB,WAAA0mC,CAAAA,EAAe,QAASwgL,OAIlEG,EACJxgN,EAAM++M,WAFe,GAEF3tL,GAAAA,OAAoB4Z,EAAe7xC,MAAAi4B,cAAAA,GAAAA,OAAuB4Z,EAAe7xC,MAAA,eAE5F,OAAAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAYmU,EAAe7xC,OACxB6G,CAAAA,EAAMmuB,QAAUswL,IAAU7nL,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACV4Z,EAAe7xC,iBAAAi4B,OAAe4Z,EAAe7xC,MAAAi4B,cAAAA,OAAkBiuL,EAAYlmN,QAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACzE4Z,EAAe7xC,MAAA,SAAA05B,MAAqBysL,EAAanmN,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAC/C4Z,EAAe7xC,MAAA,WAAA05B,MAAuBwuI,EAASloK,OAE/D2+F,QAAAA,IAIJ93F,EAAMmuB,QAAUswL,IACf7nL,EAAAA,YAAA,MAAA,CAAAC,MACS,CAAAzF,GAAAA,OACF4Z,EAAe7xC,MAAc,UAAAi4B,OAAA4Z,EAAe7xC,MAAgBi4B,YAAAA,OAAAovL,GAAAvnN,EAAA,CAAA,EAAA,GAAAm4B,OACzD4Z,EAAe7xC,2BAAkBkmN,EAAYlmN,OAAUkmN,EAAYlmN,QAC3E05B,MACOysL,EAAanmN,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEL4Z,EAAe7xC,MAAA,WAAA05B,MAAuBwuI,EAASloK,OAC3D6G,CAAAA,EAAM++M,WAvBM,IAuByBjnH,IAEvC93F,EAAM++M,YAzBQ,IAyBwBjnH,IAI1C93F,EAAMmuB,QAAUswL,IAAU7nL,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEb4Z,EAAe7xC,0BAAiB6xC,EAAe7xC,MAAAi4B,cAAAA,OAAkBiuL,EAAYlmN,OAAA05B,MAChFmtL,EAAY7mN,OAElB2+F,CAAAA,EAAAlhE,EAAAO,YAAA,MAAA,CAAAH,MACWyoL,EAAStmN,MAAO89B,OAAQwoL,EAAStmN,MAAA29B,QAAA1F,OAAAA,OAAuBquL,EAAStmN,WAAAi4B,OAASquL,EAAStmN,QAAA,CAAAy9B,EAAAO,YAAA,SAAA,CAAAspL,GAEvFZ,EAAQ1mN,MAAAunN,GACRb,EAAQ1mN,MAAA0jB,EACTijM,EAAO3mN,MACV,eAAc4mN,EAAkB5mN,MAChCkzC,KAAA,OAAAxV,MACO,IAAAzF,OAAI4Z,EAAe7xC,MAAqB,mBAAA05B,MACxC2sL,EAAiBrmN,OAC1B,MACC6G,EAAM++M,WAAa,GAAAnoL,EAAAO,YAAA,SAAA,CAAAspL,GAEZZ,EAAQ1mN,MAAAunN,GACRb,EAAQ1mN,QACT2mN,EAAO3mN,MACV,eAAc4mN,EAAkB5mN,MAChCkzC,KAAA,OAAA,iBAAA,QAAAxV,MAEO,IAAAzF,OAAI4Z,EAAe7xC,MAC1B,mBAAAsH,UAAA,qBAAA2wB,OAAgCquL,EAAStmN,8BACvB+mN,EAAc/mN,MAChC05B,MAAO0sL,EAAgBpmN,OACzB,YAQhB,IClOWwnN,GAAWh6K,GAAYu4K,ICArB0B,GAAA,CAEbj8L,UAAW,CACT7oB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,UAAW,QAAQjnB,SAASinB,EAClD,GAGFmD,MAAO,CACL9lC,KAAM9C,OACNmqB,QAAS,GAGX2O,QAAS,CACPh2B,KAAMgmC,QACN3e,SAAS,GAGX09L,OAAQ,CACN/kN,KAAMnF,OAGRw3B,MAAO,CACLryB,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAAU,YAAa,cAAe,MAAO,WAAWjnB,SAASinB,EACnF,IC9BEqiL,GAA6D,CACjE3+K,KAAM,CAAC,GACPw6J,OAAQ,CAAC,CAAE7gM,KAAM,SAAUyI,KAAM,SACjCw8M,UAAW,CAAC,EAAG,EAAG,CAAE/pL,MAAO,QAC3B,cAAe,CAAC,CAAC,CAAEl7B,KAAM,UAAY,CAAEA,KAAM,OAAQm7B,OAAQ,UAC7D+pL,IAAK,CAAC,CAAE/pL,OAAQ,QAAU,CAAEA,OAAQ,UACpCgqL,QAAS,CACP,CAAEnlN,KAAM,OAAQm7B,OAAQ,OAAQD,MAAO,QACvC,CAAEl7B,KAAM,OAAQm7B,OAAQ,QAASD,MAAO,QACxC,CACE,CAAEl7B,KAAM,OAAQm7B,OAAQ,QACxB,CAAEn7B,KAAM,OAAQm7B,OAAQ,QACxB,CAAEn7B,KAAM,OAAQm7B,OAAQ,SAE1B,CACE,CAAEn7B,KAAM,OAAQm7B,OAAQ,QACxB,CAAEn7B,KAAM,OAAQm7B,OAAQ,SAE1B,CACE,CAAEn7B,KAAM,OAAQm7B,OAAQ,QACxB,CAAEn7B,KAAM,OAAQm7B,OAAQ,SAE1B,CACE,CAAEn7B,KAAM,OAAQm7B,OAAQ,QACxB,CAAEn7B,KAAM,OAAQm7B,OAAQ,WAKxBiqL,GAAkB,SAAChoN,GACjB,IACA25B,EAAev7B,OAAA2G,OAAO,MAarB,MAdW,CAAC,QAAS,SAAU,cAAe,aAAc,SAAU,OAAQ,aAAc,mBAEzFqS,SAAQ,SAAC1Y,GAEjB,GAAIA,KAAQsB,EAAK,CACf,IAAMulC,EAAMvlC,EAAItB,GACVupN,EAAK/nM,GAASqlB,GAAG,GAAArN,OAAOqN,EAAU,MAAAA,EACxC,GAAa,SAAT7mC,EAAiB,CAAA,IAAA2qC,EACW,CAAC4+K,EAAIA,GAAlCtuL,EAAMmE,MAAOuL,EAAA,GAAA1P,EAAMoE,OAAMsL,EAAA,EAC5B,MACE1P,EAAMj7B,GAAQupN,CAElB,CACF,IACOtuL,CACT,EAEAuuL,GAAehsL,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAopB,EAAAppB,MACPkhL,EAASnxL,OAAI,GACb8a,EAAiB7Z,GAAe,YAChC+R,EAAgBjC,KAChBqgL,EAAkB,SAACpoN,GAA2B,MAAA,IAAAk4B,OAC/C4Z,EAAe7xC,MAAAi4B,SAAAA,GAAAA,OACf4Z,EAAe7xC,MAAe,WAAAi4B,OAAAl4B,EAAI4C,MAAQ,QAAA7C,EAAAm4B,CAAAA,EAAAA,GAAAA,OACvC4Z,EAAe7xC,6BAAoB6G,EAAM2kB,WAAc3kB,EAAM2kB,WACrE,EAkBM48L,EAAe,SAACC,GACd,IAAAX,EAAyBW,GAAWxhN,EAAM6gN,OAIhD,OAAOA,EAAO77M,KAAI,SAACi6B,GAAA,OAAArI,EAAAA,YAAA,MAAA,CAAAC,MAFS,IAAAzF,OAAI4Z,EAAe7xC,MAAY,WAEDsoN,EArBxCC,EAqBmDziL,GAnBjElnC,EAAQ2pN,GACHA,EACEtoM,GAASsoM,GACX,IAAI/qN,MAAM+qN,GAAOr1K,KAAK,CAAEvwC,KAAM,SAE9B,CAAC4lN,IAEE18M,KAAI,SAAC9L,GACf,OAAA09B,EAAAA,YAAA,MAAA,CAAAC,MAAYyqL,EAAgBpoN,GAAG25B,MAAUquL,GAAgBhoN,IACtD,CAAA2D,EAAW3D,EAAI+vB,SAAW/vB,EAAI+vB,QAAQxL,KAAKvkB,EAAI+vB,SAClD,OAZe,IAACy4L,CAqBuD,KAGvEt+K,EAAwB,KAsB5B,OApBA1B,EAAAA,OACE,WAAA,OAAM1hC,EAAM8xB,OACZ,IAAA,SAAC6vL,GACC,IAAKA,EAGH,OAFAprM,aAAa6sB,QACbi+K,EAAOloN,OAAQ,GAGb6G,EAAM4hC,MAAQ,EAChBwB,EAAQntB,YAAW,WACjBM,aAAa6sB,GACbi+K,EAAOloN,OAAQ,CACjB,GAAG6G,EAAM4hC,OAETy/K,EAAOloN,OAAQ,CAEnB,GACA,CAAE6xD,WAAW,IAGR,WACC,IAAA/hC,EAAUia,EAAc,UAAW,WAEzC,GAAI/C,EAAM,UAAYkhL,EAAOloN,MACpB,OAAAy9B,EAAAO,wBAAMlO,IAGX,GAACo4L,EAAOloN,MAAR,CAIJ,IAAM+lC,EAAW,GAYjB,OAXIl/B,EAAMmuB,OACR+Q,EAAS97B,KAAKm+M,EAAaT,GAAS9gN,EAAMmuB,SAExCnuB,EAAM6gN,QACR3hL,EAAS97B,KAAKm+M,EAAavhN,EAAM6gN,SAE9B7gN,EAAMmuB,OAAUnuB,EAAM6gN,QAEhB3hL,EAAA97B,KAAKm+M,EAAa,CAAC,EAAG,EAAG,EAAG,CAAEvqL,MAAO,UAGhDJ,EAAAA,YAAA,MAAA,CAAAC,MAAmBmU,EAAe7xC,OAAA,CAAQ+lC,GAd1C,EAgBJ,ICnIW0iL,GAAWj7K,GAA8By6K,ICAvCS,GAAA,CAEbl9L,UAAW,CACT7oB,KAAMxE,QAGRwqN,eAAgBhgL,QAEhBtO,MAAO,CACL13B,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,OAAQ,MAAO,SAAU,SAASjnB,SAASinB,EAC9D,GAGFk6D,cAAe,CACb78F,KAAM9C,QAGRs3F,MAAO,CACLx0F,KAAM,CAAC/C,OAAQe,WAGjBooB,OAAQ,CACNpmB,KAAMhC,UAGRg4B,QAASgQ,QAETiP,OAAQ,CACNj1C,KAAM,CAAC/C,OAAQe,WAGjB47C,UAAW,CACT55C,KAAM/C,OACNoqB,QAAS,KAGX4U,OAAQ,CACNj8B,KAAM,CAAC/C,OAAQe,WAGjB6uB,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAGjBioN,MAAO,CACLjmN,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,WAAY,YAAYjnB,SAASinB,EAC3C,GAGFujL,eAAgB,CACdlmN,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASjnB,SAASinB,EACpC,GAGF4lJ,KAAM,CACJvoL,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM9C,SC5DJipN,GAAW,SAACllM,GAAc,OAAA,EAAI1c,KAAKge,IAAKhe,KAAAu+F,IAAA7hF,EAAI,EAAM,GAAC,EAEpCmlM,GAAM,WAqDzB,OAAAtmI,IA9BA,SAAAsmI,EAAA3/K,GAOkB,IAAAiiB,EAAA3jD,KANhB7J,EAAAurC,EAAAvrC,KACA08B,EAAA6O,EAAA7O,GAAAyuL,EAAA5/K,EACArJ,SAAAA,OAAW,IAAAipL,EAAA,IAAAA,EACXC,EAAA7/K,EAAA6/K,QAAAC,EAAA9/K,EACA2pG,SAAAA,aAAW,WAAO,EAAAm2E,EAClBr1J,EAAAzqB,EAAAyqB,SAAAvI,QAAAy9J,GAAAjpN,EAAA4H,KAAA,YAAA,GAAA5H,EAAA4H,KAAA,UAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,YAAA,GAAA5H,cA0Ba,GAAAA,iBAEG,GA1BhB4H,KAAK7J,KAAOA,EACZ6J,KAAK6yB,GAAKA,EACV7yB,KAAKq4B,SAAWA,EAChBr4B,KAAKuhN,QAAUA,EACfvhN,KAAKqrI,SAAWA,EAChBrrI,KAAKmsD,SAAWA,EACXnsD,KAAAm7B,UAAYz9B,KAAKC,MACtBqC,KAAKyhN,SAAU,EACfzhN,KAAK0hN,UAAW,EAChB1hN,KAAKuiC,MAAQ,KACbviC,KAAK3D,KAAO,GACL5F,OAAA2M,QAAQjN,GAAMsZ,SAAQ,SAAAi5C,GAAkB,IAAAM,EAAAltC,GAAA4sC,EAAA,GAAhB/wD,EAAAqxD,EAAA,GAAK1wD,EAAK0wD,EAAA,QAClB,IAAjBrF,EAAK9wB,GAAGl7B,KACVgsD,EAAK9wB,GAAGl7B,GAAOW,EAEnB,IAEO7B,OAAA2M,QAAQyvB,GAAIpjB,SAAQ,SAAAunD,GAAkB,IAAA1zB,EAAAxnB,GAAAk7C,EAAA,GAAhBr/D,EAAA2rC,EAAA,GAAKhrC,EAAKgrC,EAAA,QACd,IAAnBqgB,EAAKxtD,KAAKwB,KACZgsD,EAAKxtD,KAAKwB,GAAOW,EAErB,GACF,GAAA,CAAA,CAAAX,IAAA,SAAAW,MAMQ,WAAS,IAAA4rD,EAAAlkD,KAEf,GADKA,KAAA+U,KAAOrX,KAAKC,QACbqC,KAAK+U,KAAO/U,KAAKm7B,WAAan7B,KAAK0hN,UAAvC,CAEmC,IAAAC,EAA/B,GAAA3hN,KAAK4hN,SAAW5hN,KAAKq4B,SAGvB,OAFAr4B,KAAK0hN,UAAW,eACXC,EAAA3hN,KAAAmsD,gBAAA,IAAAw1J,GAAAA,EAAA/qN,KAAAoJ,KAAWA,KAAK3D,OAGjB,IAAAulN,EAAUpiN,KAAK0U,IAAIlU,KAAK+U,KAAO/U,KAAKm7B,UAAWn7B,KAAKq4B,UAC1Dr4B,KAAK4hN,QAAUA,EACf,IAOmBC,EAPbr2L,EAAW41L,GAASQ,EAAU5hN,KAAKq4B,UAOrC,GALJ5hC,OAAO4F,KAAK2D,KAAK6yB,IAAIpjB,SAAQ,SAAC9X,GAC5B,IAAMmqN,EAAQ59J,EAAKrxB,GAAGl7B,GAAOusD,EAAK/tD,KAAKwB,GACvCusD,EAAK7nD,KAAK1E,GAAOusD,EAAK/tD,KAAKwB,GAAOmqN,EAAQt2L,CAC5C,KAEKxrB,KAAKyhN,gBACHI,EAAA7hN,KAAAuhN,eAAA,IAAAM,GAAAA,EAAAjrN,KAAAoJ,KAAUA,KAAK3D,MACpB2D,KAAKyhN,SAAU,EAGZzhN,KAAAqrI,SAASrrI,KAAK3D,KArB8B,CAsBnD,GAAA,CAAA1E,IAAA,gBAAAW,MAEQ,WAAgB,IAAAwvI,EAAA9nI,KAChB4hN,EAAUlkN,KAAKC,MAAQqC,KAAKm7B,UAC5B4mL,EAAWX,GAASQ,EAAU5hN,KAAKq4B,UAEpCr4B,KAAAuiC,MAAQy/K,aAAY,WACvBl6E,EAAK7lE,SACD6lE,EAAK45E,UACPO,cAAcn6E,EAAKvlG,SAEpBw/K,EACL,GAAA,CAAApqN,IAAA,cAAAW,MAEQ,WAAc,IAAAkwI,EAAAxoI,KACdkiN,EAAO,WACX15E,EAAKvmE,SACAumE,EAAAjmG,MAAQrK,sBAAsBgqL,GAE/B15E,EAAKk5E,WACPvpL,qBAAqBqwG,EAAKjmG,OAC1BimG,EAAKjmG,MAAQ,OAGZ2/K,GACP,GAAA,CAAAvqN,IAAA,QAAAW,MAEO,WACA0H,KAAAm7B,UAAYz9B,KAAKC,MAElB01B,KAAiB,GAAIrzB,KAAKmiN,gBACzBniN,KAAKoiN,aACZ,GAAA,CAAAzqN,IAAA,OAAAW,MAEO,WAED+6B,KAAiB,GAAI4uL,cAAcjiN,KAAKuiC,OACvCpK,qBAAqBn4B,KAAKuiC,OAC/BviC,KAAKuiC,MAAQ,IACf,IAAA,CA1HyB,GCjBd8/K,GAAY,CACvB91G,MAAO,+BACPE,KAAM,wBACNgH,IAAK,wBACLf,OAAQ,0BACRnD,MAAO,2BCOT,IAAA+yG,GAAe/tL,kBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAmB,IAAAojN,EAAAC,EAAV3iK,EAAAne,EAAAme,OACP1V,EAAiB7Z,GAAe,aAChC0O,EAAiBU,KACvBitB,EAAmEpB,GAAc,CAC/Ek3J,0BAA2BC,GAC3BC,4BAA6BC,KAFvBH,EAAA91J,EAAA81J,0BAA2BE,EAA4Bh2J,EAA5Bg2J,4BAI7BE,EAAa,CACjBC,SAAA/sL,EAAAO,YAAAmsL,EAAqC,KAAA,MACrCM,SAAAhtL,EAAAO,YAAAqsL,EAAA,KAAA,OAEIK,EAAclsM,EAAAA,UAAS,WAAA,OAAOyB,GAASpZ,EAAM7G,OAAS6G,EAAM7G,MAAQ,KACpE44F,EAAa7hE,MAAqBkzL,QAAjBpjN,EAAiB,QAAjBA,EAAAA,EAAM2kB,iBAAN3kB,IAAiBqjN,OAAjBrjN,EAAAA,EAAiB8jN,iBAAAV,IAAAA,EAAAA,EAAapjN,EAAM7G,OACrD4qN,EAAqBpsM,EAAAA,UACzB,WAAA,IAAA4xC,EAAAy6J,EAAAC,EAAA,OAAmF,QAAnF16J,EAAYy6J,QAAZA,EAAMhkN,EAAM24F,qBAAAqrH,IAAAA,EAAAA,EAAyDC,QAAzDA,EAAiBJ,EAAY1qN,MAAM3B,WAAWkR,MAAM,KAAK,UAAxCu7M,IAAwCA,OAAxCA,EAAAA,EAA4CztN,cAAU+yD,IAAAA,EAAAA,EAAA,CAAA,IAG/E26J,EAAQh0L,EAAAA,MACN/2B,EAAU+qC,EAAAA,OAAOlkC,GAAjB7G,MAEFqH,EAAQ,WAAoF,IAAA2jN,EAAAC,EAC/EC,EADJrtN,EAAegJ,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA8BmkN,QAA9BnkN,UAAAA,EAAAA,EAAM2kB,iBAAN3kB,WAAAA,EAAAA,EAAiB8jN,iBAAaK,IAAAA,EAAAA,EAAA,EAAGzwL,EAAa30B,UAAAvI,OAAAuI,QAAAlG,IAAAkG,UAAAlG,GAAAkG,UAAA8kN,GAAAA,EAAY1qN,MAClFnC,IAAS08B,IACLwwL,EAAA/qN,MAAQ,IAAI+oN,GAAM,CACtBlrN,KAAM,CACJmC,MAAOnC,GAET08B,GAAI,CACFv6B,MAAOu6B,GAETwF,SAAUl5B,EAAM2kB,UAAUuU,SAC1BgzG,SAAU,SAAChvI,GACT60F,EAAW54F,MAAQH,OAAOkE,EAAK/D,MAAMqkG,QAAQumH,EAAmB5qN,OAClE,EACA6zD,SAAU,WACR+kC,EAAW54F,MAAQu6B,CACrB,YAEF2wL,EAAAH,EAAM/qN,oBAANkrN,EAAa7jN,UAIX8jN,EAAc3sM,EAAAA,UAAS,WACvB,OAAA9a,EAAWmD,EAAMkiB,QACZliB,EAAMkiB,OAAO6vE,EAAW54F,ODlDvB,SAAeA,EAAmCw/F,EAAsBjjD,GACtF,IAAMxgC,EAAU,CACdqvM,sBAAuB5rH,QAAAA,EAAiB,EACxC6rH,sBAAuB7rH,QAAAA,EAAiB,GACxC8rH,cAAe/uK,GAGjB,OAAOv8C,EAAMurN,oBAAe,EAAWxvM,GAAStZ,QAAQ,YAAQ85C,EAClE,CC6CaivK,CAAe5yH,EAAW54F,MAAO6G,EAAM24F,cAAe34F,EAAM01C,UACrE,IAEM2C,EAAe1gC,EAAAA,UAAS,WACtB,IAAE6b,EAAUxzB,EAAVwzB,MACD,MAAA,CACLA,MAAO0vL,GAAU1vL,IAAUA,EAE/B,IAyBA,OAvBAkO,EAAAA,OACE,WAAA,OAAM1hC,EAAM8hN,cACZ,IAAA,SAAC3oN,GACK6G,EAAM2kB,WAAaxrB,IAAU+qN,EAAM/qN,OAC/BqH,GAEV,IAEIkhC,QAAAvoC,GAAO,SAACA,GACK,IAAAyrN,EAAbV,EAAM/qN,gBACPyrN,EAAAV,EAAM/qN,oBAANyrN,EAAqB/mK,OACtBqmK,EAAM/qN,MAAQ,MAEhB44F,EAAW54F,MAAQA,EACf6G,EAAM8hN,gBAAkB9hN,EAAM2kB,WAC1BnkB,GAEV,IAEA+0B,EAAAA,WAAU,WAAA,OAAMv1B,EAAM2kB,WAAa3kB,EAAM8hN,gBAAkBthN,OAEpDkgD,EAAA,CAAElgD,MAAAA,IAEF,WACL,IAAMqkN,EAAY7kN,EAAM+hN,MAAQ2B,EAAW1jN,EAAM+hN,OAAS,KACpDhxK,EAASlR,EAAe,YAAcglL,GAAsC,UAAzB7kN,EAAMgiN,eAA6B6C,EAAY,MAClG9sL,EAAS8H,EAAe,YAAcglL,GAAsC,UAAzB7kN,EAAMgiN,eAA6B6C,EAAY,MAClGl8L,EAAQkX,EAAe,SACvBwkJ,EAAOxkJ,EAAe,QACtBywD,EAAQzwD,EAAe,SAG3B,OAAAjJ,EAAAA,YAAA,MAAA,CAAAC,MAAYmU,EAAe7xC,OACxBwvB,CAAAA,GAAAiO,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAwB4Z,EAAe7xC,MAAA,WAAA,CAAgBwvB,IAA7CiO,EAAAA,YAAAgrL,GAAA,CAAAj9L,UAAA,WAAAwJ,MAAA,OAAA2D,UAC4C9xB,EAAM8xB,SAAA,CAAA3O,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAC5C4Z,EAAe7xC,MAAA,YAAA05B,MAAwBwlB,EAAal/C,OAChE43C,CAAAA,GAAAna,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAA0B4Z,EAAe7xC,MAAA,oBAAyB43C,CAAAA,IAAvDna,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OACI4Z,EAAe7xC,MAAwB,mBAAA,CAAAmrN,EAAYnrN,QAClEkrL,GAAAztJ,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OAAwB4Z,EAAe7xC,MAAA,kBAAA,CAAuBkrL,IAC9DtsJ,GAAAnB,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OAA0B4Z,EAAe7xC,MAAA,oBAAA,CAAyB4+B,MAAvD,IAGfu4D,GAAA15D,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAwB4Z,EAAe7xC,MAAA,WAAA,CAAgBm3F,MAIhE,IC/GWw0H,GAAYn+K,GAAYw8K,ICCtB4B,GAAA,CAEbpgM,UAAW,CACT7oB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQjnB,SAASinB,EACpC,GAGFumL,SAAU,CACRlpN,KAAMgmC,QACN3e,SAAS,GAGXvJ,QAAS,CACP9d,KAAM9C,OACNmqB,QAAS,GAGX2yG,eAAgB,CACdh6H,KAAM9C,OACNmqB,QAAS,GAGXiH,UAAW,CACTtuB,KAAM/C,OACNoqB,QAAS,aACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFvF,SAAU,CACRp9B,KAAM9C,OACNmqB,QAAS,KAGX8T,OAAQ,CACNn7B,KAAM9C,QAGR4pN,SAAU,CACR9mN,KAAM9C,OACNmqB,QAAS,KAGX8hM,KAAM,CACJnpN,KAAMgmC,QACN3e,SAAS,GAGX+hM,WAAY,CACVppN,KAAM,CAACxE,OAAQwC,WAGjBqrN,YAAa,CACXrpN,KAAMgmC,QACN3e,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQjnB,SAASinB,EACpC,GAGF8lB,QAAS,CACPzoD,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAASjnB,SAASinB,EACrC,GAGF3iC,KAAM,CACJA,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,QAAQjnB,SAASinB,EACtC,GAGF2mL,UAAW,CACTtpN,KAAM9C,OACNmqB,QAAS,IAAM,KAGjBmlC,SAAUxuD,6kBCrGZ,IAAMurN,GAAkB,CACtBpqN,MAAO,CACLa,KAAM9C,QAERk7E,aAAc,CACZp4E,KAAM9C,QAERssN,YAAa,CACXxpN,KAAMgmC,QACN3e,SAAS,GAEXoiM,iBAAkB,CAChBzpN,KAAMhC,UAER0rN,iBAAkB,CAChB1pN,KAAM9C,OACNmqB,QAAS,IAGPsiM,GAAY,KAElBC,GAAetwL,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAOw2B,GAAAA,MACFx2B,IACAqlN,IAELhwL,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP4Q,EAAS5f,KACTiB,EAASza,EAAAA,UAAS,WAAA,OAAM3X,EAAM/E,QAAU+E,EAAMk0E,gBAC9CyxI,EAAehuM,EAAAA,UAAS,WAC5B,MAAmB,SAAf3X,EAAMlE,KAAwB,EACP,IAAvBkE,EAAMk0E,cAAsBl0E,EAAM/E,QAAU+E,EAAMwlN,iBAAmB,GAChE,EAELxlN,EAAMk0E,eAAiBl0E,EAAMwlN,iBAAmB,GAAqB,IAAhBxlN,EAAM/E,MACtD+E,EAAMwlN,iBAEXxlN,EAAM/E,MAAQ+E,EAAMk0E,aAAe,GAAKl0E,EAAMk0E,aAAel0E,EAAM/E,OAAS+E,EAAMwlN,iBAAmB,EAChGxlN,EAAMwlN,iBAAmB,EAE9BxlN,EAAM/E,MAAQ+E,EAAMk0E,aAAe,GAAKl0E,EAAM/E,MAAQ+E,EAAMk0E,cAAgBl0E,EAAMwlN,iBAAmB,GAChG,EAEFxlN,EAAM/E,KACf,IACMkyM,EAAax1L,EAAAA,UAAS,WAC1B,GAAmB,SAAf3X,EAAMlE,KAAwB,OAAA,EAClC,IAAM6jD,EAAY3/C,EAAMulN,iBAAiB,gBAAkB,EACrDK,GAAkBxzL,EAAOj5B,OAAS6G,EAAMwlN,iBAAmB,EAAIG,EAAaxsN,MAAQ6G,EAAM/E,MAEhG,OADgBoF,KAAKge,IAAIunM,EAAiB5lN,EAAMk0E,eAAiB,EAG5Dv0B,IAAcimK,EAAiB5lN,EAAMk0E,eAAiB,EAAIuxI,GAAYzlN,EAAMolN,WAAaK,GAAY,GAAM,EAG5GG,EAAiB5lN,EAAMk0E,cACjB,MAAc,EAAIl0E,EAAMolN,WAAazlK,EAAa,GAEnD,EAAI8lK,IAAazlN,EAAMolN,UAAY,IAAMzlK,EAAa,CACjE,IACMvd,EAASzqB,EAAAA,UAAS,WACtB,GAAmB,SAAf3X,EAAMlE,KAAwB,OAAA,EAC5B,IAAA8pN,GAAkBxzL,EAAOj5B,OAAS6G,EAAMwlN,iBAAmB,EAAIG,EAAaxsN,MAAQ6G,EAAM/E,MAC1F4qN,EAAaD,IAAmB5lN,EAAMk0E,aACtC4xI,EAAUzlN,KAAK2hB,MAAM3hB,KAAKge,IAAIunM,EAAiB5lN,EAAMk0E,gBAAkB,EAC7E,OAAI2xI,EACK,EAELC,EACK,EAEF,CACT,IACMC,EAAYpuM,EAAAA,UAAS,WACrB3X,GAAoB,SAApBA,EAAM2kB,UACD,MAAA,CACLilB,QAASxX,EAAOj5B,MAAQ,EAAI,EAC5BswC,WAAYzpC,EAAMslN,YAAAl0L,WAAAA,OAAyBpxB,EAAMk5B,SAAW,SAAU,GACtEkJ,OAAQhQ,EAAOj5B,MAAQ,EAAI,GAG3B6G,GAAe,SAAfA,EAAMlE,KAAiB,CACnB,IACA+pN,IADkBzzL,EAAOj5B,OAAS6G,EAAMwlN,iBAAmB,EAAIG,EAAaxsN,MAAQ6G,EAAM/E,SAC1D+E,EAAMk0E,aACrC,MAAA,CACLzzE,+BAAyB0sM,EAAWh0M,MAAkBi4B,cAAAA,OAAAy0L,EAAa,EAAI7lN,EAAMolN,UAAA,KAC7E37K,WAAA,aAAArY,OAAyBpxB,EAAMk5B,SAAW,IAAA,UAC1CkJ,OAAQA,EAAOjpC,MAEnB,CACA,MAAO,EACT,IAEO,OAAA,WAAA,IAAA28C,EAAA,OAAAlf,EAAAA,YAAA,MAAA,CAAAC,MAEI,CAAA,GAAAzF,OACF2f,EAAO53C,MAAAF,4BAAAA,EAAAA,EAAAA,QAAAm4B,OAEJ2f,EAAO53C,MAAA,iBAAsC,SAAf6G,EAAMlE,MAASs1B,GAAAA,OAC7C2f,EAAO53C,oBAAmC,SAAf6G,EAAMlE,MAAmBs2B,EAAOj5B,UAAAi4B,OAC3D2f,EAAO53C,MAAA,iBAA2C,SAApB6G,EAAM2kB,YAE5CkO,MACOkzL,EAAU5sN,OAEhB,EAAgB,QAAhB28C,EAAA3V,EAAgB,eAAhB2V,IAAgBA,OAAhBA,EAAAA,EAAAr+C,KAAA0oC,EAAgB,MAAO,KAG9B,ukBCtGF,IAAM6lL,GAAsC,CAC1Ct5J,UAAW,SACXu5J,aAAc,SACd1hN,KAAM,SACNzI,KAAM,QAGRoqN,GAAe9wL,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACA0wC,MAAO,CAAC,kBACRrb,eAAMr1B,EAAAA,GAAiB,IAAR2wC,EAAApO,EAAAoO,KACPI,EAAS5f,KACT0O,EAAiBU,KAEvBitB,EAA8CpB,GAAc,CAC1Dm0B,gBAAiBC,GACjB/M,iBAAkBC,KAFZ6M,EAAA/yB,EAAA+yB,gBAAiB9M,EAAiBjmB,EAAjBimB,iBAIrB0yI,EAAoD,KACpDC,EAAuB,EACvBC,GAAe,EACfC,GAAe,EACbpyI,EAAehkD,EAAAA,IAAIlwB,EAAM4Z,SAAW5Z,EAAM81H,gBAC1CywF,EAAiBr2L,EAAAA,IAAIlwB,EAAM4Z,SAAW5Z,EAAM81H,gBAC5C0wF,EAAat2L,OAAI,GACjBo1L,EAAcp1L,OAAI,GAClBy4C,EAAYz4C,OAAI,GAChBu2L,EAAav2L,EAAAA,MACbssG,EAA0B7mF,KAE1B6vK,EAAmBt1L,MAAI,GACvBw2L,EAAmB/uM,EAAAA,UAAS,WACzB,OAAA6e,GAAAA,MACFwvL,IACCnnL,EAAAA,QAAQ7+B,EAAMklN,YAAc,CAAA,EAAMllN,EAAMklN,WAEhD,IACMrrE,EAAQliI,EAAAA,UAAS,WACjB3X,MAAe,SAAfA,EAAMlE,MACAkE,EAAMilN,MAAQ/wI,EAAa/6E,MAAQ,GAAKqsN,EAAiBrsN,OAE3D6G,EAAMilN,MAAQ/wI,EAAa/6E,MAAQ,GAAKqsN,EAAiBrsN,KACnE,IACMwtN,EAAwBhvM,EAAAA,UAAS,WAC9B,MAAA,CAAC3X,EAAMglN,SAAU9wI,EAAa/6E,MAAO6G,EAAMk5B,SAAUl5B,EAAM4iN,SACpE,IACMgE,EAAkBjvM,EAAAA,UAAS,WACxB,OAAA1e,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,QAAAm4B,OACD2f,EAAO53C,wBAAuB,GAAA,GAAAi4B,OAC9B2f,EAAO53C,yBAA8D,WAArCutN,EAAiBvtN,MAAMuzD,WAAc,GAAAt7B,OACrE2f,EAAO53C,MAA0B,oBAAqC,YAArCutN,EAAiBvtN,MAAMuzD,WAAc,GAAAt7B,OACtE2f,EAAO53C,MAAA,qBAA+C,aAApB6G,EAAMoqB,cAAcgH,OACtD2f,EAAO53C,MAAwButN,kBAAgC,UAAhCA,EAAiBvtN,MAAMoL,SAAS6sB,OAC/D2f,EAAO53C,wBAAwD,UAAhCutN,EAAiBvtN,MAAMoL,KAE9D,IACMsiN,EAAiBlvM,EAAAA,UAAS,WACxB,IAAAuxB,EAAelpC,EAAMi3B,OAAS,GAAA7F,OAAGpxB,EAAMi3B,gBAAa7F,OAAGm0L,EAAiB,gBAAc,MAC5F,GAAmB,SAAfvlN,EAAMlE,MAAuC,SAApBkE,EAAM2kB,UAC1B,MAAA,CACLsS,OAAQiS,GAGRlpC,GAAoB,UAApBA,EAAM2kB,UAAuB,CAC/B,IAAMkO,EAAyC,CAC7C4W,WAAY67K,EAAYnsN,MAAAi4B,aAAAA,OAAqBpxB,EAAMk5B,SAAW,IAAe,UAAA,IAE3E9G,EAAS8hD,EAAa/6E,MAgBnB,OAfHqsN,EAAiBrsN,MAAQ,IACjBi5B,GAAA,GACNi0L,GAAgBC,KAClBzzL,EAAM4W,WAAa,KAGC,aAApBzpC,EAAMoqB,WACRyI,EAAMoE,OAASiS,EACTrW,EAAApyB,UAAA2wB,mBAAAA,OAAwC,IAATgB,EAAS,YAExCS,EAAApyB,UAAA2wB,gBAAAA,OAAqC,IAATgB,EAAS,gBAE7C,CAAC,cAAe,mBAAmB9hB,SAAQ,SAAC9X,GAC1Cq6B,EAAMr6B,GAAOq6B,EAAMpyB,SACrB,IACOoyB,CACT,CACA,MAAO,EACT,IACMi0L,EAAc,WACZ,IAAAC,EAAiBvqF,EAAwB,cAC/CgpF,EAAiBrsN,MAAQ4tN,EAAevwN,OACxC,IAAM+hD,EAAQwuK,EAAe/hN,KAAI,SAACgiN,EAAiB/rN,GAAU,IAAAo3C,EA7FvC90B,EA8FdmB,QAAS1e,CAAAA,EAAAA,GAAUgnN,EAAWhnN,OAElC,OAAA42B,EAAAO,YAAA8vL,GAAA1iL,aAAA,CAAAtpC,MACSA,EAAAi5E,aACOA,EAAa/6E,MAAAmsN,YACdA,EAAYnsN,MAAAosN,iBACPA,EAClBC,iBAAkBA,EAAiBrsN,OAC/BulB,GAtGY,mBAAAnB,EAsGZ80B,EAEH20K,EAAW9nL,SAAS,YAxGLqT,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,qCA2GtB,IACA,GAAwB,UAApBvd,EAAM2kB,WAAyB4zB,EAAM/hD,OAAS,EAAG,CAC7C,IAAA2wJ,EAAQ+/D,EAAAA,WAAW3uK,EAAM,GAAI,CACjC//C,iCAA2B,KAEvBsf,EAAOovM,EAAAA,WAAW3uK,EAAMA,EAAM/hD,OAAS,GAAI,CAC/CgC,2BAAA44B,OAA4BmnB,EAAM/hD,OAAS,KAE7C+hD,EAAM9kB,QAAQ3b,GACdygC,EAAMn1C,KAAK+jJ,EACb,CACO,OAAA5uG,GAGH4uK,EAAW,SAAClsN,EAAeqvC,GAA4C,IAAAkf,EACvEs7B,EAAc7pF,EAAQuqN,EAAiBrsN,MAC3CotN,EAAeptN,MAAQ2rF,EACvBn0C,EAAK,iBAAkBm0C,WACvB9kF,EAAAA,EAAMsoD,gBAAW,IAAAkB,GAAjBxpD,EAAAA,KAAAA,EAAiB8kF,EAAax6C,GAC9Bg7K,EAAYnsN,OAAQ,EACI,UAApB6G,EAAM2kB,WAAyB6gM,EAAiBrsN,MAAQ,GAAoB,SAAf6G,EAAMlE,OACvDgpF,EAAA7pF,EACCorN,GAAA,EACAC,GAAA,EACXrrN,GAASuqN,EAAiBrsN,QACjBq1D,IACXv4C,YAAW,WACMqwM,GAAA,EACfpyI,EAAa/6E,MAAQ,CACvB,GAAG6G,EAAMk5B,WAEgB,IAAvBg7C,EAAa/6E,QAEZqsN,EAAiBrsN,MAAQ,GAAK8B,IAAUuqN,EAAiBrsN,MAAQ,GACtC,IAA3BqsN,EAAiBrsN,OAAyB,IAAV8B,KAEnB6pF,GAAA,EACCyhI,EAAAptN,MAAQqsN,EAAiBrsN,MAAQ,EACrCq1D,IACXv4C,YAAW,WACMowM,GAAA,EACFnyI,EAAA/6E,MAAQqsN,EAAiBrsN,MAAQ,CAChD,GAAG6G,EAAMk5B,YAIfg7C,EAAa/6E,MAAQ2rF,GAEjBt2B,EAAa,WACb23J,IACF5vM,aAAa4vM,GACCA,EAAA,OAGZ13J,EAAW,WACXzuD,EAAMglN,UAAYhlN,EAAM4iN,SAAW,IAC1Bp0J,IACG23J,EAAAlwM,YACZ,WACEkxM,EAASjzI,EAAa/6E,MAAQ,EAAG,CAAEkF,OAAQ,YAC7C,GACuB,IAAvB61E,EAAa/6E,MAAc6G,EAAM4iN,UAAY5iN,EAAMk5B,SAAW,IAAMl5B,EAAM4iN,YAK1EzjG,EAAe,WACnBqnG,EAAWrtN,OAAQ,EACf6G,EAAMmlN,aACG32J,IAE+B,UAAxCk4J,EAAiBvtN,MAAM8sN,eACzBt9I,EAAUxvE,OAAQ,IAGhBszE,EAAe,WACnB+5I,EAAWrtN,OAAQ,EACd0gJ,EAAM1gJ,OACAs1D,IAEiC,UAAxCi4J,EAAiBvtN,MAAM8sN,eACzBt9I,EAAUxvE,OAAQ,IAahBiuN,EAAS,SAAC98K,GACd,IAAIg7K,EAAYnsN,MACZ6G,MAAe,SAAfA,EAAMlE,KACDqrN,EAASjzI,EAAa/6E,MAAQ,GAAKqsN,EAAiBrsN,MAAQ,EAAI+6E,EAAa/6E,MAAQ,EAAGmxC,GAE1F68K,EAASjzI,EAAa/6E,MAAQ,EAAGmxC,IAEpC+8K,EAAa,SAAC/8K,GAClB,IAAIg7K,EAAYnsN,MACZ,OAAA+6E,EAAa/6E,MAAQ,EAAI,EACH,UAApB6G,EAAM2kB,WAAoD,IAA3B6gM,EAAiBrsN,MAC3CguN,EAAS,EAAG78K,GAEd68K,EAAS3B,EAAiBrsN,MAAQ,EAAGmxC,GAEvC68K,EAASjzI,EAAa/6E,MAAQ,EAAGmxC,IAEpCi7K,EAAmB,SAACh/E,GAAiB,IAAA+gF,EAClC,eAAAA,EAAAb,EAAWttN,oBAAoBmuN,UAA/BA,EAAkBppL,sBAAaopL,SAA/BA,EAA+B/gF,IA+BlCghF,EAAmB,WACnB,GAAA1oL,EAAAA,QAAQ7+B,EAAMklN,YAAa,OAAOllN,EAAMklN,WACtC,IA9BAsC,EA8BAC,EAAiB5nL,EAAe,cAClC,GAAA4nL,GAAkB5oL,EAAQA,QAAA4oL,aAAAA,EAAAA,EAAiB,IAAY,OAAAA,EAEvD,GAAgC,aAAhCf,EAAiBvtN,MAAM2C,KACzB,OAAA86B,EAAAA,YAAA,MAAA,CAAAC,MACc,CAAA,GAAAzF,OAAI2f,EAAO53C,MAA4B,uBAAA,GAAAi4B,OAAG2f,EAAO53C,MAAA,mCAC1DuuN,EApCDF,EAAgBtzI,EAAa/6E,MAAQ,EAAIqsN,EAAiBrsN,MAAQ,EAAI+6E,EAAa/6E,MAAQ,EACjGy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB2f,EAAO53C,MAAA,mBAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACL2f,EAAO53C,qCAAqC,WAAA,OAAMkuN,EAAW,CAAEhpN,OAAQ,+EAGvE0yC,EAAO53C,MAAA,sCACnBquN,CAAAA,EAAc,IAAEhC,EAAiBrsN,QAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAErB2f,EAAO53C,sCAAsC,WAAA,OAAMiuN,EAAO,CAAE/oN,OAAQ,+CA+BjF,IAAA0oN,EAAiBvqF,EAAwB,cAE7C,OAAA5lG,EAAAA,YAAA,KAAA,CAAAC,MACS,CAAA,GAAAzF,OACF2f,EAAO53C,MAAAF,uBAAAA,EAAAA,EAAAA,QAAAm4B,OAEJ2f,EAAO53C,MAAkC,4BAAgC,SAAhCutN,EAAiBvtN,MAAM2C,SAASs1B,OACzE2f,EAAO53C,MAAkC,4BAAgC,SAAhCutN,EAAiBvtN,MAAM2C,SAASs1B,OACzE2f,EAAO53C,MAAsC,gCAAgC,aAAhCutN,EAAiBvtN,MAAM2C,QAE5E,CAECirN,EAAe/hN,KAAI,SAACia,EAAGxoB,kCAEfA,EAAAogC,MACE,CAAA,GAAAzF,OACF2f,EAAO53C,MAAA,4BAAAF,EAAAm4B,CAAAA,EAAAA,GAAAA,OAEJ2f,EAAO53C,MAAoB1C,cAAAA,IAAM8vN,EAAeptN,qBAG1C,WAAA,OA5FW,SAAC1C,GACZ,UAAlBuJ,EAAMukD,SACR4iK,EAAS1wN,EAAG,CAAE4H,OAAQ,UA0FIspN,CAA2BlxN,YACtC,WAAA,OAxFW,SAACA,GACP,UAAlBuJ,EAAMukD,SACR4iK,EAAS1wN,EAAG,CAAE4H,OAAQ,UAsFDupN,CAAsBnxN,uCAIxC,OAyCP,OAjCAirC,EAAAA,OACE,WAAA,OAAMilL,EAAsBxtN,KAAA,IAC5B,WACWs1D,GACX,IAEF/sB,EAAAA,OACE,WAAA,OAAM4jL,EAAYnsN,KAAA,IAClB,WACMmsN,EAAYnsN,QACVitN,GAAsB7vM,aAAa6vM,GACvCA,EAAuBnwM,YAAW,WAChCqvM,EAAYnsN,OAAQ,EACGitN,EAAA,EACnBvsE,EAAM1gJ,OACGq1D,GAEf,GAAGxuD,EAAMk5B,SAAW,IAExB,IAEFwI,EAAAA,OACE,WAAA,OAAM1hC,EAAM4Z,OAAA,IACZ,WACEutM,EAASnnN,EAAM4Z,QAAS,CAAEvb,OAAQ,YACpC,IAGFk3B,EAAAA,WAAU,WACCk5B,IACCka,EAAAxvE,MAAgD,WAAxCutN,EAAiBvtN,MAAM8sN,YAC3C,IAEO,WAAA,OAAArvL,EAAAA,YAAA,MAAA,CAAAC,MACO,IAAAzF,OAAI2f,EAAO53C,MAAc,YAAA41D,aAAiBowD,EAAAnwD,aAA4Byd,EAAcv8C,IAAKu2L,+BACvFG,EAAgBztN,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAEjB,CAAAzF,GAAAA,OACF2f,EAAO53C,MAAA,oBAAAF,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEJ2f,EAAO53C,MAAsB6G,gBAAoB,SAApBA,EAAM2kB,cAAcyM,OACjD2f,EAAO53C,MAAsB6G,gBAAe,SAAfA,EAAMlE,QAI3C,CAAA86B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe2f,EAAO53C,MAAA,sBAAA05B,MAAkCg0L,EAAe1tN,OACpE0uN,CAjDFf,QAoDFS,IA3GA5+I,EAAUxvE,MAEby9B,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAAA,GAAAzF,OAAI2f,EAAO53C,MAAA,kBAAA,GAAAi4B,OAA0B2f,EAAO53C,MAA8B,6BAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACrE2f,EAAO53C,qCAAqC,WAAA,OAAMkuN,EAAW,CAAEhpN,OAAQ,+EAGvE0yC,EAAO53C,sCAAsC,WAAA,OAAMiuN,EAAO,CAAE/oN,OAAQ,4CAN1D,SAgHjC,IC7VWypN,GAASnhL,GAAYu/K,IACrB6B,GAAaphL,GAAY++K,ICFvBsC,GAAA,CAEbC,cAAe,CACbnsN,KAAMnF,MACNwsB,aAAS,GAGX+kM,qBAAsB,CACpBpsN,KAAMnF,MACNwsB,QAAS,WAAT,MAAyD,EAAC,GAG5DglM,cAAe,CACbrsN,KAAM/C,OACNoqB,QAAS,IAGXilM,uBAAwB,CACtBtsN,KAAMgmC,QACN3e,aAAS,GAGX2B,OAAQ,CACNhpB,KAAM,CAAC/C,OAAQe,WAGjBo+C,SAAUpW,QAEV4/F,cAAe,CACb5lI,KAAM,CAAC/C,OAAQe,WAGjBuuN,iBAAkB,CAChBvsN,KAAM,CAAC/C,OAAQe,WAGjBwuN,QAAS,CACPxsN,KAAMnF,MACNwsB,QAAS,WAAT,MAA4C,EAAC,GAG/Cze,KAAM,CACJ5I,KAAMnF,MACNwsB,QAAS,WAAT,MAAyC,EAAC,GAG5ColM,gBAAiBzmL,QAEjB0mL,wBAAyB,CACvB1sN,KAAMgmC,QACN3e,aAAS,GAGX8D,MAAO,CACLnrB,KAAM,CAAC/C,OAAQe,UACfqpB,QAAS,IAGXslM,aAAc,CACZ3sN,KAAM,CAAC/C,OAAQe,WAGjB6+K,UAAW,CACT78K,KAAMnF,OAGR+xN,SAAU,CACR5sN,KAAMnF,MACNwsB,QAAS,WAAT,MAA6C,EAAC,GAGhDwlM,iBAAkB,CAChB7sN,KAAMxE,QAGRsxN,oBAAqB,CACnB9sN,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGX0lM,cAAe,CACb/sN,KAAM,CAAC/C,OAAQe,WAGjBgvN,iBAAkB,CAChBhtN,KAAMxE,QAGRyxN,iBAAkB,CAChBjtN,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGX8T,OAAQ,CACNn7B,KAAM,CAAC/C,OAAQC,SAGjBgwN,8BAA+B,CAC7BltN,KAAM,CAACgmC,QAASxqC,SAGlB+4C,MAAOvO,QAEPmnL,iBAAkB,CAChBntN,KAAMgmC,QACN3e,SAAS,GAGX+lM,YAAa,CACXptN,KAAM,CAAC/C,OAAQe,WAGjBmrH,SAAUnjF,QAEVhQ,QAAS,CACPh2B,KAAM,CAACgmC,QAAShoC,UAChBqpB,aAAS,GAGXikB,aAAc,CACZtrC,KAAMxE,QAGR8nB,OAAQ,CACNtjB,KAAMxE,QAGRm/E,UAAW,CACT36E,KAAM,CAAC/C,OAAQC,SAGjBwuB,WAAY,CACV1rB,KAAMxE,QAGR6xN,wBAAyB,CACvBrtN,KAAM,CAACgmC,QAASxqC,SAGlB8xN,UAAWtnL,QAEXunL,cAAe,CACbvtN,KAAM,CAACxE,OAAQX,MAAOmD,WAGxBwvN,aAAc,CACZxtN,KAAM,CAAC/C,OAAQzB,OAAQX,MAAOmD,WAGhCyvN,OAAQ,CACNztN,KAAM/C,OACNoqB,QAAS,KACTyJ,UAAU,GAGZ48L,kBAAmB,CACjB1tN,KAAMhC,UAGR2vN,0BAA2B,CACzB3tN,KAAMhC,UAGRmnE,OAAQ,CACNnlE,KAAMxE,QAGRuxM,WAAY,CACV/sM,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASjnB,SAASinB,EAC/C,GAGFk+K,OAAQ76K,QAER4nL,kBAAmB,CACjB5tN,KAAM/C,OACNoqB,QAAS,IAGXs1B,YAAa,CACX38C,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASjnB,SAASinB,EACpC,GAGFgjG,WAAY,CACV3lI,KAAM,CAAC/C,OAAQe,WAGjB6vN,cAAe,CACb7tN,KAAM/C,OACNoqB,QAAS,SACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,MAAO,SAAU,UAAUjnB,SAASinB,EAC9C,GAGFmrL,eAAgB9vN,SAEhB+vN,kBAAmB/vN,SAEnB6jJ,YAAa7jJ,SAEbgwN,qBAAsBhwN,SAEtBy2K,aAAcz2K,SAEdiwN,WAAYjwN,SAEZkwN,cAAelwN,SAEfmwN,eAAgBnwN,SAEhBowN,gBAAiBpwN,SAEjBqwN,gBAAiBrwN,SAEjBswN,eAAgBtwN,SAEhBuwN,aAAcvwN,SAEdivE,SAAUjvE,SAEVwwN,UAAWxwN,SAEXywN,UAAWzwN,UC9ON,SAAS0wN,GAAalC,EAA2BmC,GAGtD,IAHqG,IAAnB3jN,EAAA/H,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAQ,EACtF2rN,EAAW5jN,EAENrQ,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAk0N,EAC5CtrE,EAAMipE,EAAQ7xN,GAEhB,GADKg0N,EAAArmN,IAAIi7I,EAAKv4I,GACdu4I,iBAAAsrE,EAAAtrE,EAAKngH,uBAALyrL,EAAen0N,OAAQ,CACzB,IAAM2gF,EAAOqzI,GAAanrE,EAAIngH,SAAUurL,EAAU3jN,EAAQ,GACtDqwE,EAAOuzI,IACEA,EAAAvzI,EAEf,CACF,CACO,OAAAuzI,CACT,CAGgB,SAAAE,GAAqBjwL,GAGnC,IAHyE,IACrEkwL,EAD0D9rN,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAQ,EAEhE+rN,GAAenwL,aAAM,EAANA,EAAMuE,WAAY,GAC9BzoC,EAAI,EAAGF,EAAMu0N,EAAat0N,OAAQC,EAAIF,EAAKE,IAAK,CACvD,IAAMwoC,EAAO6rL,EAAar0N,GACtBwoC,EAAKC,SACI2rL,EAAAD,GAAqB3rL,EAAM4rL,GAE1BA,GAAA,CAEhB,CACO,OAAAA,CACT,CAGO,SAASE,GAAuBzC,GAC/B,IAAAmC,MAAe3lN,IACfkmN,EAAeR,GAAalC,EAASmC,GACrCQ,MAAgDnmN,IAChDmgN,EAAO,SAACt9F,EAAyBujG,GACrC,IAAA,IAASz0N,EAAI,EAAGF,EAAMoxH,EAAMnxH,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAA00N,EAC1C9rE,EAAM13B,EAAMlxH,GACZ20N,EAAU/rE,EAAIngH,SAAW,EAAI8rL,EAAeP,EAAShmN,IAAI46I,GAAO,EAChEzlG,EAAUylG,EAAIngH,SAAW0rL,GAAqBvrE,GAAO,EAErDtsG,EAAuB,CAAA,EACnBq4K,EAAA,IAAMr4K,EAAKq4K,QAAUA,GACrBxxK,EAAA,IAAM7G,EAAK6G,QAAUA,GACVqxK,EAAA7mN,IAAIi7I,EAAKtsG,GAC1BssG,iBAAA8rE,EAAA9rE,EAAKngH,uBAALisL,EAAe30N,OACZyuN,EAAA5lE,EAAIngH,SAAUgsL,GAEnBA,EAAY9nN,KAAKi8I,EAErB,GAEI6rE,EAAgC,GAE/B,OADPjG,EAAKqD,EAAS4C,GACP,CAAED,qBAAAA,EAAsBC,YAAAA,EACjC,CC9DA,SAAwBG,KACtB,IAAM3mM,EAAcyM,KAwLb,MAvLY,CACjBzM,YAAaA,EAAYvrB,MACzBmyN,eAAgB,CACdxlM,SAAAsL,OAAU1M,EAAYvrB,MAAA,UACtBoyN,wBAAAn6L,OAAyB1M,EAAYvrB,MAAA,4BACrCqyN,mBAAAp6L,OAAoB1M,EAAYvrB,MAAA,4BAChC6hC,QAAA5J,OAAS1M,EAAYvrB,MAAA,gBACrB8vB,WAAAmI,OAAY1M,EAAYvrB,MAAA,mBACxBsoI,cAAArwG,OAAe1M,EAAYvrB,MAAA,uBAC3BuoI,iBAAAtwG,OAAkB1M,EAAYvrB,MAAA,0BAC9BsyN,kBAAAr6L,OAAmB1M,EAAYvrB,MAAA,2BAC/BuyN,aAAAt6L,OAAc1M,EAAYvrB,MAAA,uBAC1BwyN,cAAAv6L,OAAe1M,EAAYvrB,MAAA,wBAC3ByyN,eAAAx6L,OAAgB1M,EAAYvrB,MAAA,yBAC5B0yN,gBAAAz6L,OAAiB1M,EAAYvrB,MAAA,oBAC7B2yN,gBAAA16L,OAAiB1M,EAAYvrB,MAAA,0BAC7B4yN,gBAAA36L,OAAiB1M,EAAYvrB,MAAA,qBAC7B++C,YAAA9mB,OAAa1M,EAAYvrB,MAAA,oBACzB6yN,WAAA56L,OAAY1M,EAAYvrB,MAAA,mBACxBk3C,SAAAjf,OAAU1M,EAAYvrB,MAAA,qBACtB24B,WAAAV,OAAY1M,EAAYvrB,MAAA,mBACxBqwN,qBAAAp4L,OAAsB1M,EAAYvrB,MAAA,2BAClC8tB,SAAAmK,OAAU1M,EAAYvrB,MAAA,iBACtB8yN,YAAA76L,OAAa1M,EAAYvrB,MAAA,qBACzB+yN,eAAA96L,OAAgB1M,EAAYvrB,MAAA,wBAC5BgzN,eAAA/6L,OAAgB1M,EAAYvrB,MAAA,wBAC5BizN,iBAAAh7L,OAAkB1M,EAAYvrB,MAAA,0BAC9BkzN,kBAAAj7L,OAAmB1M,EAAYvrB,MAAA,2BAC/BmzN,iBAAAl7L,OAAkB1M,EAAYvrB,MAAA,0BAC9BozN,wBAAAn7L,OAAyB1M,EAAYvrB,MAAA,kCACrCqzN,iBAAAp7L,OAAkB1M,EAAYvrB,MAAA,0BAC9BszN,oBAAAr7L,OAAqB1M,EAAYvrB,MAAA,8BACjCuzN,oBAAAt7L,OAAqB1M,EAAYvrB,MAAA,8BACjCwzN,qBAAAv7L,OAAsB1M,EAAYvrB,MAAA,+BAElCyzN,oBAAAx7L,OAAqB1M,EAAYvrB,MAAA,8BAEjC0zN,cAAAz7L,OAAe1M,EAAYvrB,MAAA,uBAE3B2zN,cAAA17L,OAAe1M,EAAYvrB,MAAA,uBAC3B4zN,oBAAA37L,OAAqB1M,EAAYvrB,MAAA,8BACjC6zN,kBAAA57L,GAAAA,OAAsB1M,EAAYvrB,MAAA,oCAGpC8zN,eAAgB,CACd1vL,QAAAnM,OAAS1M,EAAYvrB,MAAA,eACrBskC,SAAArM,OAAU1M,EAAYvrB,MAAA,gBACtBuyD,OAAAt6B,GAAAA,OAAW1M,EAAYvrB,MAAA,kBAGzB+zN,mBAAoB,CAClB1lB,UAAAp2K,OAAW1M,EAAYvrB,MAAA,kBACvBg0N,cAAA/7L,OAAe1M,EAAYvrB,MAAA,+BAC3Bi0N,SAAAh8L,OAAU1M,EAAYvrB,MAAA,yBACtBkzN,eAAAj7L,GAAAA,OAAmB1M,EAAYvrB,MAAA,6BAGjCk0N,mBAAoB,CAClB/8C,UAAAl/I,OAAW1M,EAAYvrB,MAAA,kBACvBi0N,MAAAh8L,GAAAA,OAAU1M,EAAYvrB,MAAA,0BAGxBm0N,kBAAmB,CACjBhwL,OAAAlM,OAAQ1M,EAAYvrB,MAAA,uBACpBo0N,UAAAn8L,OAAW1M,EAAYvrB,MAAA,0BACvBqkC,OAAApM,GAAAA,OAAW1M,EAAYvrB,MAAA,2BAGzBq0N,qBAAsB,CACpBlwL,OAAAlM,OAAQ1M,EAAYvrB,MAAA,0BACpBqkC,UAAApM,OAAW1M,EAAYvrB,MAAA,6BACvBs0N,eAAAr8L,OAAgB1M,EAAYvrB,MAAA,mCAC5Bu0N,oBAAAt8L,GAAAA,OAAwB1M,EAAYvrB,MAAA,uCAGtCw0N,qBAAsB,CACpBpwL,QAAAnM,OAAS1M,EAAYvrB,MAAA,4BACrBskC,SAAArM,OAAU1M,EAAYvrB,MAAA,6BACtBy0N,YAAAx8L,OAAa1M,EAAYvrB,MAAA,iCACzB00N,cAAAz8L,OAAe1M,EAAYvrB,MAAA,mCAC3B20N,cAAA18L,OAAe1M,EAAYvrB,MAAA,uCAC3B40N,YAAA38L,GAAAA,OAAgB1M,EAAYvrB,MAAA,yCAG9B60N,mBAAoB,CAClBj9J,QAAA3/B,OAAS1M,EAAYvrB,MAAA,uBACrBi0N,MAAAh8L,GAAAA,OAAU1M,EAAYvrB,MAAA,yBAGxB80N,mBAAA78L,OAAoB1M,EAAYvrB,MAAA,uBAGhC+0N,oBAAqB,CACnBC,QAAA/8L,OAAS1M,EAAYvrB,MAAA,qBACrBi1N,gBAAAh9L,OAAiB1M,EAAYvrB,MAAA,0BAC7Bk1N,oBAAAj9L,OAAqB1M,EAAYvrB,MAAA,4BACjCsvN,gBAAAr3L,OAAiB1M,EAAYvrB,MAAA,0BAC7B+vN,YAAA93L,GAAAA,OAAgB1M,EAAYvrB,MAAA,0BAI9Bm1N,mBAAoB,CAClBC,WAAAn9L,OAAY1M,EAAYvrB,MAAA,sBACxBq1N,YAAAp9L,OAAa1M,EAAYvrB,MAAA,gCACzBs1N,eAAAr9L,OAAgB1M,EAAYvrB,MAAA,yBAC5Bu1N,aAAAt9L,OAAc1M,EAAYvrB,MAAA,uBAC1BigD,OAAAhoB,OAAQ1M,EAAYvrB,MAAA,wBACpBw1N,YAAAv9L,OAAa1M,EAAYvrB,MAAA,8BACzBq5B,YAAApB,OAAa1M,EAAYvrB,MAAA,yBACzBkiF,UAAAjqD,GAAAA,OAAc1M,EAAYvrB,MAAA,2BAI5By1N,iBAAkB,CAChBC,YAAAz9L,OAAa1M,EAAYvrB,MAAA,0BACzB21N,cAAA19L,OAAe1M,EAAYvrB,MAAA,uBAC3BwvB,SAAAyI,OAAU1M,EAAYvrB,MAAA,uBACtBorD,WAAAnzB,OAAY1M,EAAYvrB,MAAA,8BACxB41N,cAAA39L,OAAe1M,EAAYvrB,MAAA,wBAC3B6sB,YAAAoL,OAAa1M,EAAYvrB,MAAA,qBACzB61N,cAAe,CACbC,OAAA79L,OAAQ1M,EAAYvrB,MAAA,mBACpB+1N,KAAA99L,GAAAA,OAAS1M,EAAYvrB,MAAA,qBAEvBg2N,cAAA/9L,OAAe1M,EAAYvrB,MAAA,6BAC3Bi2N,YAAAh+L,GAAAA,OAAgB1M,EAAYvrB,MAAA,wBAI9Bk2N,qBAAsB,CACpBl9L,YAAAf,OAAa1M,EAAYvrB,MAAA,yBACzB64B,YAAAZ,OAAa1M,EAAYvrB,MAAA,yBACzBm2N,UAAAl+L,GAAAA,OAAc1M,EAAYvrB,MAAA,uBAI5Bo2N,mBAAoB,CAClBjpM,cAAA8K,OAAe1M,EAAYvrB,MAAA,4BAC3B6jI,SAAA5rG,OAAU1M,EAAYvrB,MAAA,sBACtBgsB,QAAAiM,OAAS1M,EAAYvrB,MAAA,uBACrBq2N,gBAAAp+L,OAAiB1M,EAAYvrB,MAAA,8BAC7BsB,UAAA22B,OAAW1M,EAAYvrB,MAAA,yBACvBinL,SAAAhvJ,OAAU1M,EAAYvrB,MAAA,4BACtBs2N,iBAAAr+L,OAAkB1M,EAAYvrB,MAAA,kCAC9Bu2N,gBAAAt+L,OAAiB1M,EAAYvrB,MAAA,oCAC7Bw2N,SAAAv+L,GAAAA,OAAa1M,EAAYvrB,MAAA,6BAI3By2N,qBAAAx+L,OAAsB1M,EAAYvrB,MAAA,yBAClC02N,gBAAAz+L,OAAiB1M,EAAYvrB,MAAA,aAC7B22N,kBAAA1+L,OAAmB1M,EAAYvrB,MAAA,eAC/B42N,mBAAA3+L,OAAoB1M,EAAYvrB,MAAA,iBAGhC62N,iBAAkB,CAChB3wE,OAAAjuH,OAAQ1M,EAAYvrB,MAAA,oBACpB82N,aAAA7+L,OAAc1M,EAAYvrB,MAAA,4BAC1BgsB,QAAAiM,OAAS1M,EAAYvrB,MAAA,wBACrB+2N,SAAA9+L,GAAAA,OAAa1M,EAAYvrB,MAAA,2BAI3Bg3N,sBAAuB,CACrBC,gBAAAh/L,OAAiB1M,EAAYvrB,MAAA,yBAC7Bk3N,uBAAAj/L,OAAwB1M,EAAYvrB,MAAA,iCACpCm3N,gBAAAl/L,OAAiB1M,EAAYvrB,MAAA,yBAC7Bs/B,UAAArH,OAAW1M,EAAYvrB,MAAA,4BACvB+tC,SAAA9V,OAAU1M,EAAYvrB,MAAA,gCACtBo3N,UAAAn/L,OAAW1M,EAAYvrB,MAAA,iCACvBwiH,YAAAvqF,OAAa1M,EAAYvrB,MAAA,mCACzBq3N,WAAAp/L,GAAAA,OAAe1M,EAAYvrB,MAAA,0BAG7Bs3N,qBAAsB,CACpBroK,UAAAh3B,OAAW1M,EAAYvrB,MAAA,iCACvBquM,OAAAp2K,GAAAA,OAAW1M,EAAYvrB,MAAA,kCAGzBu3N,oBAAAt/L,OAAqB1M,EAAYvrB,MAAA,uBACjCw3N,kBAAAv/L,GAAAA,OAAsB1M,EAAYvrB,MAAA,wBAItC,gOC1KA,IAAAy3N,GAAex7L,kBAAgB,CAC7Bx9B,KAAM,YAENoI,MAAO,CAELipB,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB+2N,eAAgB,CACd/0N,KAAM,CAAC/C,OAAQC,OAAQc,WAGzB4yD,UAAW3zD,OAEX+rB,OAAQ,CAAC/rB,OAAQe,UAEjBipK,aAAczrK,OACd8qC,OAAQppC,OACRsvE,iBAAkBvvE,OAClB2rB,YAAa,CACX5oB,KAAM/C,OACNoqB,QAAS,MAIbkS,MAAAA,SAAMr1B,GACJ,IAAMnG,EAAOq2B,EAAAA,MAGP4gM,EAAO5gM,OAAI,GACX6gM,EAAa7gM,OAAI,GAEjB8gM,EAAkBr5M,EAAAA,UAAS,WAAA,MAAM,CAAAyZ,GAAAA,OAClCpxB,EAAM0kB,YAAA0M,oBAAAA,GAAAA,OACNpxB,EAAM0kB,YACV,sBAEKusM,EAAyBt5M,EAAAA,UAA2C,WAAA,MAAM,CAAA,GAAAyZ,OAC3EpxB,EAAM0kB,YACT1kB,4BAAAA,EAAMsoE,qBAGR/yC,EAAAA,WAAU,WACGw7L,EAAA53N,MAAQijC,GAAeviC,EAAKV,MACzC,IAEA2rE,EAAAA,WAAU,WACGisJ,EAAA53N,MAAQijC,GAAeviC,EAAKV,MACzC,IAGA,IAYM+3N,EAAgBl8M,IAAS,SAACxa,GACnB,eAAXA,EAAEsB,KAPGjC,EAAKV,MALLU,EAAKV,QACV23N,EAAK33N,OAAQ,KAYZ,IAEI,MAAA,CACL23N,KAAAA,EACAj3N,KAAAA,EACAk3N,WAAAA,EACAC,gBAAAA,EACAC,uBAAAA,EACAC,cAAAA,EACA/2I,oBAf0B,SAACj8D,GACtBA,IAAG4yM,EAAK33N,OAAQ,IAgBzB,EAEA4rC,OAAS,WACP,ItlB+B0BklC,EAA6B/oC,EAAeC,EAAejsB,EACjFmqB,EACAT,EAEAwC,EAEAC,EACAC,EAEAxoC,EslBxI+BykB,EAgG7B4zM,GtlB+BoBlnJ,EslB/BKppE,KtlB+BwBqgC,EslB/BlB,UtlB+BiCC,EslB/BtB,UtlBgC5C9B,EAASD,GAAUlqB,GACnB0pB,EAAcD,GAAezpB,GAI7BmsB,EAAQxB,GAAeoqC,EAAI/oC,EAF3BE,EAAW/B,EAAS,CAAEA,OAAAA,QAAW,GAGjCiC,EAAQzB,GAAeoqC,EAAI9oC,EAAOC,GAElCtoC,EAAMogB,GAAQmoB,GAASC,EAAQD,EAC9BnoB,GAAQpgB,GAAO8lC,EAAc9lC,GslBvC5B87E,EACJh+C,EAAAO,YAAA,MAAA,CAAAjH,IAAA,OAAA2G,MAESh2B,KAAKmwN,gBACZjiK,aAAcluD,KAAKqwN,cAAAliK,aACLnuD,KAAKqwN,oBACZ,CACL59I,aAAczyE,KAAKkwN,WAAa,WAAa,SAC/C,CAECI,IAGDloM,EAAU,KACR85I,EAAeliK,KAAKkiK,aACtB,GAAAliK,KAAKkwN,YAAclwN,KAAKiwN,KAAM,CAChC,IAAMM,mWAAS56L,CAAA,CACbvN,QAAUpoB,KAAKgwN,gBAA8B,WAAA,OAAMM,CAAA,EACnD/oJ,gBAAgB,EAChBhmC,OAAQvhC,KAAKuhC,OACbtd,OAAQjkB,KAAKikB,OACb4nC,UAAW7rD,KAAK6rD,UAChB4b,iBAAkBy6F,SAAAA,EAAcz6F,iBAC5BznE,KAAKowN,uBAAuB7/L,OAAO2xI,EAAaz6F,kBAChDznE,KAAKowN,uBACThoJ,gBAAiBpoE,KAAKs5E,qBACnB4oF,GAEL95I,EAAA2N,EAAAO,YAAA4uI,GAAwBqrD,EA9HS,mBAAA7zM,EA8HAq3D,IA9HAriC,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA8HAq3D,EAAA,CAAAzxD,QAAA,WAAA,MAAA,CAAAyxD,EAAA,GACnC,MACY3rD,EAAA2rD,EAEL,OAAA3rD,CACT,ukBC9Hc,SAAAkiC,GAAYhrB,EAA8Bk/G,EAA0BpkJ,GAClF,IAAMokC,EAAS,CAAEggH,IAAAA,EAAKgyE,SAAUp2N,GAC5B,OAAA4B,EAAWwiJ,EAAI12H,OACV02H,EAAI12H,MAAMlL,EAAAA,EAAG4hB,GAElBjnB,GAASinI,EAAI12H,QAAUwX,EAAMk/G,EAAI12H,OAC5BwX,EAAMk/G,EAAI12H,OAAO0W,GAEtBxiC,EAAWwiJ,EAAIt6G,SAEfs6G,EAAIt6G,OAAOtnB,IAAG+Y,GAAAA,GAAA,CAAA,EACT6I,GAAA,GAAA,CACHvjC,KAAM,QACNs9C,IAAK,CAAC,EACNqvE,UAAU,MAIT42B,EAAI12H,KACb,CAEA,SAAwB2oM,GAAetxN,GACrC,IAAAuxN,EAAiDlG,KAAzCuD,EAAA2C,EAAA3C,iBAAkBW,EAAmBgC,EAAnBhC,mBAEpBiC,EAAoB75M,EAAAA,UAAS,WAAA,OAAMozM,GAAuB/qN,EAAMsoN,YAEhEmJ,EAAS95M,EAAAA,UAAS,WAAA,OH8BA2wM,EG9BgBtoN,EAAMsoN,QH+BxCrD,EAAO,SAACt9F,EAAyB+pG,GAGrC,IAHyE,IAAAC,EACrEC,EAA8B,GAC9B1yL,EAA6B,GACxBzoC,EAAI,EAAGF,EAAMoxH,EAAMnxH,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAgmF,EAC1C9hD,EAAOgtF,EAAMlxH,GACbg7N,EAAS,CAAC92L,GACJi3L,EAAAA,EAAUxgM,OAAOqgM,GACzB92L,iBAAA8hD,EAAA9hD,EAAMuE,uBAANu9C,EAAgBjmF,SACP0oC,EAAAA,EAAS9N,OAAOuJ,EAAKuE,UAEpC,CAKO,eAJPyyL,EAAIzyL,SAAAyyL,OAAAA,EAAUn7N,QACZyuN,EAAK/lL,EAAUwyL,GAEjBA,EAAOtuN,KAAKwuN,GACLA,GAGT3M,EAAKqD,EADDl7L,EAAgC,IAE7BA,EAAKuwB,UApBP,IAAmB2qK,EAClBrD,EAiBF73L,KG/CEykM,EAAmBl6M,EAAAA,UAAS,WAAA,OAAM85M,EAAOt4N,MAAM3C,OAAS,KA+CvD,MAAA,CACLi7N,OAAAA,EACAI,iBAAAA,EACAL,kBAAAA,EACAM,qBAjD2B,SAAvBvvL,EAEJ88G,EACAgyE,EACAU,EACAjtM,EACAwrE,GAIG,IA1Ce/yE,EA0CfgsC,EAAA5sC,GAAA4lB,EAAA,GATF5Z,EAAO4gC,EAAA,GAAAvjC,EAAAujC,EAAA,GAAUtjC,EAAUsjC,EAAA,GAUtB5yB,EAAU19B,EAAAA,KACb21N,EAAiBC,SAAW7oM,GAC5BupM,EAAmBjpM,WAAaL,GAE7BgD,EAAUpsB,EAAWk1N,GAAiBA,EAAct0M,EAAAA,EAAG,CAAE4hI,IAAAA,EAAKgyE,SAAAA,SAAc,EAC5EW,OAA+B,IAAlBD,EAA8BjwL,QAAQiwL,GAAiBjwL,QAAQu9G,EAAInxG,UACtF,OAAAtX,EAAAA,YAAA,MAAA,CAAAC,MACcF,+BACEi4L,EAAiBjmM,OAAA,CAC1BqpM,EACCp7L,EAAAO,YAAAy5L,GAAA,CAAAlkK,UAAA,SAAA5nC,OAEU9kB,EAAM8kB,SAAWA,EAAS,WAAA,OAAMA,CAAS,OAAA,GAAA+rM,eACjC5nM,GAAY,WAAA,OAAMA,CAClC,EAAA85I,aAAuC,WAAzB1qK,EAAO05N,GAA6BA,OAAgB,EAClErtM,YAAa4rE,aAAAA,EAAAA,EAAO5rE,YACpB4jD,iBAAkBgoB,aAAO,EAAPA,EAAO2hI,2BA3DjB10M,EA6DPoL,EA7DO,mBAAApL,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA6DPoL,6BAAAA,iCAGGA,IAEPmZ,QAAQ9b,GAAYC,+BACPspM,EAAmBI,UAC5B3pM,CAAAA,EACAC,SAcf,gOC1EA,SAAwBisM,GAAgB7yL,GAahC,IAaF8yL,EACAC,EAbFC,EAQEhzL,EARFgzL,gBACAC,EAOEjzL,EAPFizL,gBACAC,EAMElzL,EANFkzL,iBACAC,EAKEnzL,EALFmzL,eACAC,EAIEpzL,EAJFozL,kBACAC,EAGErzL,EAHFqzL,iBACAC,EAEEtzL,EAFFszL,6BACA7I,EACEzqL,EADFyqL,qBAEI8I,EAAgB1iM,EAAAA,MAChB2iM,EAAe3iM,MAA+B,CAAA,GAC9Cg7L,EAAch7L,MAAI,IAIxBqF,EAAAA,WAAU,WACF,IAAAu9L,EAAkC,oBAAbx5L,SACL64L,EAAAW,EAAcx5L,SAASy5L,cAAgB,KACzCX,EAAAU,EAAcx5L,SAAS05L,YAAc,IAC3D,IAEA,IAAMC,EAAyB,SAACtrG,EAAqC1sH,EAAea,GAElF,IADA,IAAIrF,EAAIwE,EACD0sH,EAAMlxH,KAA6B,IAAvBkxH,EAAMlxH,GAAG2yN,WACb,SAATttN,EACGrF,GAAA,EAEAA,GAAA,EAGT,OAAOkxH,EAAMlxH,IAITy8N,EAAkB,SAACvrG,EAAqC3tG,GACvD2tG,IACLujG,EAAY/xN,MAAQwuH,EACdA,EAAAr3G,SAAQ,SAACjZ,EAAG4D,GAChB,IAAMk4N,EAAWF,EAAuBtrG,EAAO1sH,EAAQ,EAAG,QACpDm4N,EAAWH,EAAuBtrG,EAAO1sH,EAAQ,EAAG,QACpDo4N,EAAgBr5M,EAAS64M,EAAa15N,MAAM6gB,EAAOs5M,QAAQ11K,KAAOw1K,EAClEG,EAAgBv5M,EAAS64M,EAAa15N,MAAM6gB,EAAOs5M,QAAQn2M,KAAOg2M,EAClEv1K,EAAiB,IAAV3iD,EAAco4N,EAAgBF,EACrCh2M,EAAOliB,IAAU0sH,EAAMnxH,OAAS,EAAI+8N,EAAgBH,EAC7CP,EAAA15N,MAAM9B,EAAEi8N,QAAU,CAC7B11K,KAAAA,EACAzgC,KAAAA,EACAvD,QAAS,CACP45M,YAAaP,EAAuBtrG,EAAO1sH,EAAQ,EAAG,QACtDw4N,YAAaR,EAAuBtrG,EAAO1sH,EAAQ,EAAG,UAG1Ci4N,EAAA77N,EAAE6nC,SAAU7nC,EAC9B,MAGIq8N,EAAmB,CACvBr4C,YAAY,EACZs4C,YAAa,KACbC,cAAe,EAEfC,UAAW,QAGPC,EAAkBhvL,EAAAA,SAAS,CAC/B6mB,QAAS,OACT10B,OAAQ,OACRsG,KAAM,OACNC,OAAQ,MAIJu2L,EAAsB,SAAC10E,GAAA,MAAkD,UAAdA,EAAI+tE,OAAqBmF,EAAiB90L,KAAA,EA0CrGu2L,EAAoB,SAACC,GAA0C,IAAAC,EAAAC,EAC7DC,EAAeh7M,GAAS66M,EAAU39I,UAAY29I,EAAU39I,SAAWn6E,SAAS83N,EAAU39I,UAAY,IAAK,IACtG,MAAA,CACL+9I,YAAah0N,KAAKC,KAAsB4zN,QAAlBA,EAAAD,EAAU1wJ,kBAAQ2wJ,SAAlBA,EAAkB59I,WAxIpB,GAwImD89I,GACvEE,aAAuB,QAAVH,EAAAF,EAAU1wJ,cAAA,IAAA4wJ,OAAA,EAAVA,EAAkB3jJ,WAxIX,MA8MlB+jJ,EAAqB,SACzBl1E,EACAm1E,EACAC,EACAC,GAEA,OAAAF,EAxE0B,SAC1Bn1E,EACAm1E,EACAC,EACAC,GAEM,IAAAC,EAAgBF,EAAgBh3L,MAAQi3L,EAAen3L,KACvDq3L,EAAUH,EAAgBl3L,KAAOm3L,EAAen3L,KAChD02L,EAA2C,SAA/BP,EAAiBG,UAAuBx0E,EAAMm1E,EAChEK,EAAqCb,EAAkBC,GAChD,MAAA,CACLU,cAAAA,EACAG,kBAAmBF,EAHbC,EAAAR,YAINU,kBAAmBH,EAJYC,EAAZP,aAgEjBU,CAAoB31E,EAAKm1E,EAAeC,EAAiBC,GAtC9B,SAACD,EAA0BC,GACpD,IAAAC,EAAgBF,EAAgBl3L,KAAOm3L,EAAen3L,KACtDq3L,EAAUH,EAAgBl3L,KAAOm3L,EAAen3L,KAC/C,MAAA,CACLo3L,cAAAA,EACAG,kBAAmBF,EACnBG,kBAAmBH,GAiCjBK,CAAyBR,EAAiBC,EAAc,EA0GvD,MAAA,CACL9B,cAAAA,EACAkB,gBAAAA,EACAoB,kBAtOwB,SAAC16N,EAAe6kJ,GAExC,GAAKuzE,EAAcz5N,QAASu6N,EAAiBr4C,YAAe7gL,EAAEw4B,OAA9D,CACA,IAAMA,EAAUx4B,EAAEw4B,OAAuBmzB,QAAQ,MAE3CmtK,EAAStgM,EAAO+uB,aAAa,eAC/B,GAACmpK,EAAY/xN,MAAMk3D,MAAK,SAACtzC,GAAM,OAAAA,EAAEu2M,SAAWA,CAAM,IAAlD,CACE,IAI+B6B,EAJ/BV,EAAkBzhM,EAAOoK,wBACzBg4L,EAAgBX,EAAgBh3L,MAAQjjC,EAAEyyM,OAnGnC,EAoGPooB,EAAe76N,EAAEyyM,MAAQwnB,EAAgBl3L,MApGlC,EAqGP+3L,EAAiBvB,EAAoB10E,GAC3C,GAAI+1E,GAAiBE,GAEnB,GADsC,QAAhCH,EAAe91E,EAAI+pE,iBAAa,IAAA+L,GAAAA,EACpB,CAChBniM,EAAOH,MAAMu1B,OAASgtK,GAAkBE,GAAkBD,EAAgB,aAAe,GACzF,IAAMzxE,EAAawxE,IAAkBE,GAAoBA,GAAkBD,EAG3E,OAFiB3B,EAAAC,YAAc/vE,EAAY5wH,EAAUA,EAAOk3C,wBAC5DwpJ,EAAiBG,UAAY,OAE/B,UACSwB,EAAc,CACvB,IAAME,EAASviM,EAAOwiM,uBACtB,GAAID,EAAQ,CAAA,IAAAE,EAAAC,EACJlB,EAAgD,QAAhCiB,EAAA5C,EAAa15N,MAAMkmJ,EAAIi0E,eAAvBmC,IAAgCA,OAAhCA,EAAAA,EAAgC73K,KAEtD,GADiD83K,QAA3CA,EAAelB,eAAAA,EAAepL,iBAAasM,IAAAA,GAAAA,EAK/C,OAHA1iM,EAAOH,MAAMu1B,OAAS,aACtBsrK,EAAiBC,YAAc4B,OAC/B7B,EAAiBG,UAAY,OAGjC,CACF,CAEA7gM,EAAOH,MAAMu1B,OAAS,GACtBsrK,EAAiBC,YAAc,KAC/BD,EAAiBG,UAAY,IA9B4B,CAJa,GAqOtE8B,kBA3GwB,SAACn7N,EAAe6kJ,EAAiCpkJ,GAAkB,IAAA26N,EAAAC,EAAAC,EAC3F,GAAKpC,EAAiBC,YAAtB,CACA,IAAM3gM,EAAS0gM,EAAiBC,YAC1Bc,EAAkBzhM,EAAOoK,wBACzBs3L,EAAiCkB,QAAjCA,EAAiBtD,EAAgBn5N,aAAhBy8N,IAAgBA,OAAhBA,EAAAA,EAAuBx4L,wBACxC24L,EAAgD,QAAhCF,EAAAhD,EAAa15N,MAAMkmJ,EAAIi0E,eAAvBuC,IAAgCA,OAAhCA,EAAAA,EAAgC14M,KAChDq3M,EAAgD,QAAhCsB,EAAAjD,EAAa15N,MAAMkmJ,EAAIi0E,eAAvBwC,IAAgCA,OAAhCA,EAAAA,EAAgCl4K,KACtDrb,EAAgEwxL,EAAoB10E,GAnEpD,SAChCrsH,EACAqsH,EACAm1E,EACAC,EACAC,GAEM,IAAAC,EAAgBF,EAAgBl3L,KAAOm3L,EAAen3L,KACtD02L,EAAYjhM,EAAOyV,QAAQutL,SAAW32E,EAAIi0E,OAASj0E,EAAMm1E,EACzDI,EAAUH,EAAgBl3L,KAAOm3L,EAAen3L,KACtD04L,EAAqCjC,EAAkBC,GAA/CI,EAAA4B,EAAA5B,YAAaC,EAAY2B,EAAZ3B,YACd,MAAA,CACLK,cAAAA,EACAG,kBAAmBF,GAAWH,EAAgBz9L,MAAQs9L,GACtDS,kBAAmBH,GAAWH,EAAgBz9L,MAAQq9L,IAsDpD6B,CAA0BljM,EAAQqsH,EAAK02E,EAAetB,EAAiBC,GACvEH,EAAmBl1E,EAAK02E,EAAetB,EAAiBC,GAFpDC,EAAepyL,EAAfoyL,cAAeG,EAAAvyL,EAAAuyL,kBAAmBC,IAAAA,kBAS1C,GAJArB,EAAiBr4C,YAAa,EAC9Bq4C,EAAiBE,cAAgBp5N,EAAEglB,EAG/BozM,SAAAA,EAAez5N,MAAO,CACxB26N,EAAgBnoK,QAAU,QAC1BmoK,EAAgB78L,OAAS7F,GAAAA,OAAGsjM,EAAel3L,OAASi3L,EAAgBn3L,IAAA,MACpEw2L,EAAgBv2L,eAAUo3L,EAAA,MAC1B,IAAM36M,EAASs4M,EAAgBn5N,MAAMi0E,cAAchwC,wBACnD02L,EAAgBt2L,OAASpM,GAAAA,OAAGpX,EAAOwjB,OAASk3L,EAAel3L,OAAA,KAC7D,CAGA,IAAM89E,EAAY,WAAM,IAAA66G,EACtB,GAAKzC,EAAiBr4C,WAAtB,CACA,IAAM+6C,EAAezB,EAAgB3gM,WAAW8/L,EAAgBv2L,OAAS,EAOnE84L,EAAc7D,EAAe,aAC7B8D,EAA6C,QAAhCH,EAAAtD,EAAa15N,MAAMkmJ,EAAIi0E,eAAvB6C,IAAgCA,OAAhCA,EAAAA,EAAgCv8M,QACnD,GAAK08M,EAAL,CACA,IAAMC,EAAgD,SAA/B7C,EAAiBG,UAAuByC,EAAW7C,YAAc6C,EAAW9C,YAE7FgD,mWAAAhgM,CAAA,CAAA,EAAsB6/L,GAEtBI,GAAkC,IAAlBp3E,EAAI+pE,UAAsB/pE,EAAMk3E,EAGhDG,EArEwB,SAChCF,EACAT,EACA13J,EACApjE,GAEA,IAAI07N,GAAkB,EACtB,GAAIZ,EAAe,CACjB,IAAAa,EAAqC5C,EAAkB+B,GAA/C1B,EAAAuC,EAAAvC,YAAaC,EAAYsC,EAAZtC,YACfuC,EAAqBL,EAAeT,EAAczC,QAAUj1J,EAChDs4J,EAAAE,EAAqBxC,GAAewC,EAAqBvC,CAC7E,CACA,QAASqC,GAAmBtE,EAAgBl5N,OAAS8B,IAAUiwN,EAAY/xN,MAAM3C,OAAS,GAyDvDsgO,CAA0BN,EADX,SAA/B9C,EAAiBG,UAAuByC,EAAW7C,YAAcp0E,EACG+2E,EAAcn7N,GAEhE,SAA/By4N,EAAiBG,UAEfE,EAAoB10E,GAElBrsH,EAAOyV,QAAQutL,SAAW32E,EAAIi0E,OAChCkD,EAAeT,EAAczC,SAAW8C,EAExCI,EAAeC,EAAcnD,SAAW8C,GAI1CI,EAAeC,EAAcnD,SAAW8C,EACpCM,IACFF,EAAeT,EAAczC,SAAW8C,IAGJ,SAA/B1C,EAAiBG,YACtB6C,IACFF,EAAeC,EAAcnD,SAAW8C,GAExB5B,IAAAgC,EAAehC,EAAclB,SAAW8C,IAE5D3D,EAAkB+D,GACZ,IAAAO,EArGiB,SAACV,GAC1B,IAAIU,EAAa,EAIV,OAHK7L,EAAA/xN,MAAMmX,SAAQ,SAAC+uI,GACzB03E,GAAcV,EAAYh3E,EAAIi0E,OAChC,IACOyD,EAgGcC,CAAmBR,GACrB9D,EAAAryN,KAAK2hB,MAAM+0M,IACCpE,IAG7Be,EAAiBr4C,YAAa,EAC9Bq4C,EAAiBC,YAAc,KAC/BD,EAAiBG,UAAY,KAC7B7gM,EAAOH,MAAMu1B,OAAS,GACtB0rK,EAAgBnoK,QAAU,OAC1BmoK,EAAgBv2L,KAAO,IACnB3D,GAAAN,SAAU,UAAWgiF,GACrB1hF,GAAAN,SAAU,YAAashF,GAC3BthF,SAASy5L,cAAgBZ,EACzB74L,SAAS05L,YAAcZ,EACAtI,SAAAA,EAAA,CAAEmN,aAAcT,GAhDtB,CAViB,GA8D9B57G,EAAa,SAACpgH,GAClB,GAAIk5N,EAAiBr4C,WAAY,CAC/B,IAAM99I,EAAOo3L,EAAgBn6N,EAAEglB,EAAIk0M,EAAiBE,cACpCE,EAAAv2L,KAAAnM,GAAAA,OAAU/wB,KAAK0U,IAAI1U,KAAKC,IAAIi9B,EAAMu3L,GAAoBC,GAAiB,KACzF,GAGC17L,GAAAC,SAAU,UAAWgiF,GACrBjiF,GAAAC,SAAU,YAAashF,GAG1BthF,SAASy5L,cAAgB,WAAA,OAAM,CAAA,EAC/Bz5L,SAAS05L,YAAc,WAAA,OAAM,CAAA,CAnGM,GA2GnCE,gBAAAA,EAEJ,okBC3TO,SAASgE,GACd73E,EACApkJ,EACAk8N,EACAxJ,GAEA,IAAMyJ,EAAWD,aAAAA,EAAAA,EAAwB1yN,IAAI46I,EAAIi0E,QAAUr4N,GAC3D,IAAKm8N,EAAU,MAAO,GACtB,IAAMC,EAAYp+N,EAAAA,EAAAA,EAAAA,EACf00N,CAAAA,EAAAA,EAAqBpwL,KAAqB,SAAd8hH,EAAI+tE,OAChCO,EAAqBlwL,MAAsB,UAAd4hH,EAAI+tE,OACjCO,EAAqBC,SAAyB,SAAdvuE,EAAI+tE,OAAoBgK,EAASE,kBACjE3J,EAAqBE,WAA2B,UAAdxuE,EAAI+tE,OAAqBgK,EAASG,oBAMhE,MAAA,CACL1kM,MALe,CACf0K,KAAoB,SAAd8hH,EAAI+tE,MAAmB,GAAAh8L,OAAGgmM,EAAS75L,KAAW,WAAA,EACpDE,MAAqB,UAAd4hH,EAAI+tE,MAAoBh8L,GAAAA,OAAGgmM,EAAS35L,iBAAY,GAIvD9G,QAAS0gM,EAEb,CAkCA,SAAwBG,GACtBx3N,EACAsqC,EACAmtL,EACA14K,GAEM,IAAAgtB,EAaF7nC,SAAOlkC,GAZTsoN,EAAAv8I,EAAAu8I,QACA7vK,EAAAszB,EAAAtzB,YACAixK,EAAA39I,EAAA29I,kBACA/wC,EAAA5sG,EAAA4sG,UACA8vC,EAAA18I,EAAA08I,aACAS,EAAAn9I,EAAAm9I,YACAzyI,EAAA1K,EAAA0K,UACAsyI,EAAAh9I,EAAAg9I,iBACAH,EAAA78I,EAAA68I,oBACA1wK,EAAA6zB,EAAA7zB,SACAkxK,EAAAr9I,EAAAq9I,UACAhB,EAAAr8I,EAAAq8I,uBAEI1jN,EAAOwrB,MAAoB,IAC3BwnM,EAAWxnM,EAAAA,MACXoiM,EAAkBpiM,EAAAA,MAClBynM,EAAgBznM,OAAI,GACpBmiM,EAAkBniM,OAAI,GACtB0nM,EAAc1nM,EAAAA,MAEd2nM,EAAiB3nM,MAAI,GAErBinM,EAAyBjnM,EAAAA,IAAgC,IAAAprB,KACzDytN,EAAmBztL,EAAAA,SAAS,CAChCvH,MAAM,EACNE,OAAO,IAGHq6L,EAAyB5nM,EAAAA,IAAmC,CAAEqN,KAAM,EAAGD,IAAK,IAC5Ey5L,EAAa7mM,MAAI,GACjB6nM,EAAgB7nM,MAAI,GACpBmmM,EAAcnmM,MAAkC,CAAA,GAEhD8nM,EAAgB9nM,OAAI,GACpB+nM,EAAqB/nM,OAAI,GACzBgoM,EAAoBhoM,OAAI,GAExBioM,EAAkBxgN,EAAAA,UAAS,WAAA,IAAA4qB,EAAA61L,EAAA,eAAA71L,UAAA61L,EAAMhQ,EAAuBjvN,aAAS,IAAAi/N,EAAAA,EAAAhP,EAAUjwN,yBAG3Ek/N,EAAqB1gN,EAAAA,UACzB,WAAA,IAAAuzG,EAAA,QAEIlrH,EAAM+oN,kBACN/oN,EAAM4oN,qBACN5oN,EAAMgpN,+BACiB,aAAjB99F,QAANA,EAAAlrH,EAAMihE,cAANiqD,IAAMA,OAANA,EAAAA,EAAcpvH,MAAS,IAQpB,SAAAw8N,EACPhQ,GAMA,IADA,IAJAtjN,EAAAjG,UAAAvI,eAAAqC,IAAAkG,UAAA,GAAAA,UAA8B,GAAI,IAAA+F,IAClCyzN,EAAAx5N,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAkC,GAClCqtG,EAAQrtG,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EACRib,EACAjb,UAAAvI,OAAAuI,EAAAA,kBAAAlG,EACSpC,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAk0N,EAC5CtrE,EAAMipE,EAAQ7xN,GAChB,CAAC,OAAQ,SAAS+gB,SAAS6nI,EAAI+tE,SACjC4K,EAAc7+N,OAAQ,GAEN,UAAdkmJ,EAAI+tE,QACN6K,EAAmB9+N,OAAQ,GAEX,SAAdkmJ,EAAI+tE,QACN8K,EAAkB/+N,OAAQ,GAEtB,IAAAX,EAAM6mJ,EAAIi0E,QAAU78N,EACpB+hO,EAA8B,CAAEn5E,IAAAA,EAAKrlI,OAAAA,EAAQ/e,MAAOxE,GACtDuO,EAAAZ,IAAI5L,EAAKggO,WACT7N,EAAAtrE,EAAIngH,gBAAJyrL,OAAAA,EAAcn0N,QAChB8hO,EAAaj5E,EAAIngH,SAAUl6B,EAAKuzN,EAAYnsH,EAAQ,EAAGosH,GAErDD,EAAWnsH,GACFmsH,EAAAnsH,GAAOhpG,KAAKo1N,GAGZD,EAAAnsH,GAAS,CAACosH,EAEzB,CACO,MAAA,CACLC,cAAezzN,EACfuzN,WAAAA,EAEJ,CAEA,IA+HIG,EA/HEC,EAAkB,SACtBrQ,EACAsQ,GAGA,IADG,IADH5+M,EAAAjb,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAA0B,CAAA,EAEjBtI,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAA00N,EAC5C9rE,EAAMipE,EAAQ7xN,GACpB,GAAkB,UAAd4oJ,EAAI+tE,MAAmB,OAG3B,IAFA,IAAMyL,EAAUD,EAAiBn0N,IAAI46I,EAAIi0E,QAAU78N,GAC/CqiO,EAAeriO,EAAI,EAChBqiO,GAAgB,GAAqC,SAAhCxQ,EAAQwQ,GAAc1L,OAChC0L,GAAA,EAElB,IAAMC,EAAUzQ,EAAQwQ,GAElB7Y,EAAqB,IAANxpN,IAAUujB,eAAAA,EAAQujB,OAAY,EAC7Cy7L,EAAcJ,EAAiBn0N,KAAIs0N,aAAS,EAATA,EAASzF,SAAU78N,EAAI,GAC5DoiO,IACFA,EAAQt7L,OAAQy7L,aAAAA,EAAAA,EAAaz7L,OAAQ0iL,KAAiB+Y,aAAAA,EAAAA,EAAahiM,QAAS,YAG1Em0L,EAAA9rE,EAAIngH,gBAAJisL,OAAAA,EAAc30N,QACAmiO,EAAAt5E,EAAIngH,SAAU05L,EAAkBC,EAEpD,GAGII,EAAmB,SACvB3Q,EACAsQ,GAGA,IADG,IADH5+M,EAAAjb,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAA0B,CAAA,EAEjBtI,EAAI6xN,EAAQ9xN,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAAA,IAAAyiO,EACtC75E,EAAMipE,EAAQ7xN,GACpB,GAAkB,SAAd4oJ,EAAI+tE,MAAkB,OAG1B,IAFA,IAAMyL,EAAUD,EAAiBn0N,IAAI46I,EAAIi0E,QAAU78N,GAC/CqiO,EAAeriO,EAAI,EAChBqiO,EAAexQ,EAAQ9xN,QAA0C,UAAhC8xN,EAAQwQ,GAAc1L,OAC5C0L,GAAA,EAElB,IAAMC,EAAUzQ,EAAQwQ,GAElB7Y,EAAexpN,IAAM6xN,EAAQ9xN,OAAS,IAAIwjB,aAAAA,EAAAA,EAAQyjB,QAAa,EAC/Du7L,EAAcJ,EAAiBn0N,KAAIs0N,aAAS,EAATA,EAASzF,SAAU78N,EAAI,GAC5DoiO,IACFA,EAAQp7L,QAASu7L,aAAAA,EAAAA,EAAav7L,QAASwiL,KAAiB+Y,aAAAA,EAAAA,EAAahiM,QAAS,YAG5EkiM,EAAA75E,EAAIngH,gBAAJg6L,OAAAA,EAAc1iO,QACCyiO,EAAA55E,EAAIngH,SAAU05L,EAAkBC,EAErD,GA8DIM,EAA+B,SAACC,EAA8BR,GAElE,GADAzB,EAAuBh+N,MAAM+K,QACxBk1N,EAAL,CACM,IAAAC,EAAQD,EAAgBt+L,cAAc,SAEnCu+L,GA/DiB,SAACC,EAAwBV,GACnD,GAAKU,EAAL,CACA,IAAA,IAAS7iO,EAAI,EAAGF,EAAM+iO,EAAO9iO,OAAQC,EAAIF,EAAKE,IAE5C,IADM,IAAAg7N,EAAS6H,EAAO7iO,GAAGyoC,SAChB3E,EAAI,EAAGg/L,EAAQ9H,EAAOj7N,OAAQ+jC,EAAIg/L,EAAOh/L,IAAK,CAAA,IAAAi/L,EAC/CC,EAAKhI,EAAOl3L,GACZ+4L,EAASmG,EAAGhxL,QAAQutL,OACrB1C,GACHhuJ,GAAS,gBAAA,GAAAl0C,OAAoBqoM,EAAGC,UAAwE,kEAE1G,IAAMxgO,EAAM0/N,EAAiBn0N,IAAI6uN,GAAU/4L,GACvCrhC,iBAAAsgO,EAAAtgO,EAAKmmJ,kBAALm6E,EAAUpM,OACKwL,EAAAx0N,IAAIkvN,EAAQ98L,GAAAA,GAAA,GAAKt9B,GAAA,GAAA,CAAK89B,MAAOyiM,EAAGr8L,wBAAwBpG,QAE7E,CAEc2hM,EAAArQ,EAAQnvN,MAAOy/N,GACdK,EAAA3Q,EAAQnvN,MAAOy/N,EAhBnB,EA8DJe,CAAoBN,EAAMn6L,SAAU05L,GAEvC,IAAAgB,EAAQR,EAAgBt+L,cAAc,SACtC++L,EAAQT,EAAgBt+L,cAAc,SAC5C8+L,GA9C0B,SAC1BN,EACAV,EACAS,EACAQ,GAIA,IAFA,IAA4DhwK,EAAAltC,GAApBg8J,EAAUx/K,OAAS,GAAC,GAArD2gO,EAAcjwK,EAAA,GAAAkwK,EAAelwK,EAAA,GAC5BnlD,EAAwB1E,EAAxB0E,KAAAs1N,EAAwBh6N,EAAlBupN,OAAAA,OAAS,IAATyQ,EAAS,OACdvjO,EAAI,EAAGA,EAAIqjO,EAAcrjO,IAAK,CACrC,IAAMo2H,EAAKysG,EAAO7iO,GACZwjO,EAAQx1N,GAAIC,EAAKjO,GAAI8yN,GACrB2Q,EAActB,EAAiBn0N,IAAIw1N,IAAU,CAAA,EAC7CE,EAAY11N,GAAIC,EAAKjO,EAAI,GAAI8yN,GAC7B6Q,EAAcxB,EAAiBn0N,IAAI01N,IAAc,CAAA,EACnDE,EAAgB,EACV,IAAN5jO,IACc4jO,GAAAhB,aAAAA,EAAAA,EAAOj8L,wBAAwBnG,SAAU,GAE3DijM,EAAY58L,KAAO88L,EAAY98L,KAAO+8L,IAAkBD,EAAYnjM,QAAU,GAC7D2hM,EAAAx0N,IAAI61N,EAAOzjM,GAAAA,GAAA,GAAK0jM,GAAA,GAAA,CAAajjM,QAAQ41F,aAAA,EAAAA,EAAIzvF,wBAAwBnG,SAAU,IAC9F,CACS,IAAA,IAAAxgC,EAAIiO,EAAKlO,OAAS,EAAGC,GAAKiO,EAAKlO,OAASujO,EAAiBtjO,IAAK,CAErE,IAAMo2H,EAAKysG,EAAOA,EAAO9iO,QAAUkO,EAAKlO,OAASC,IAC3CwjO,EAAQx1N,GAAIC,EAAKjO,GAAI8yN,GACrB2Q,EAActB,EAAiBn0N,IAAIw1N,IAAU,CAAA,EAC7CE,EAAY11N,GAAIC,EAAKjO,EAAI,GAAI8yN,GAC7B6Q,EAAcxB,EAAiBn0N,IAAI01N,IAAc,CAAA,EACnDE,EAAgB,EAChB5jO,IAAMiO,EAAKlO,OAAS,IACN6jO,GAAAR,aAAAA,EAAAA,EAAOz8L,wBAAwBnG,SAAU,GAE3DijM,EAAY18L,QAAU48L,EAAY58L,QAAU68L,IAAkBD,EAAYnjM,QAAU,GACnE2hM,EAAAx0N,IAAI61N,EAAOzjM,GAAAA,GAAA,GAAK0jM,GAAA,GAAA,CAAajjM,QAAQ41F,aAAA,EAAAA,EAAIzvF,wBAAwBnG,SAAU,IAC9F,EAYSqjM,CAAoBV,EAAM16L,SAAU05L,EAAkBS,EAAOQ,GAEtE1C,EAAuBh+N,MAAQy/N,CATT,GAalB2B,EAA0B,SAACvnM,EAAqBs9D,GAChD,GAAC0nI,EAAc7+N,OAAU65B,EAAzB,CACE,IAAEuL,EAAevL,EAAfuL,WAER,GAAIm6L,IAAyBn6L,GAAgB+xD,GAAUA,EAAMkqI,gBAA7D,CACuB9B,EAAAn6L,EACvB,IAAMk8L,EAAcznM,EAAOuJ,YAAcgC,EAAavL,EAAOyJ,YACvDi+L,EAAan8L,EAAa,EAC5Bg0L,EAAiBh1L,OAASm9L,GAAcnI,EAAiB90L,QAAUg9L,IACtDlI,EAAAh1L,KAAOm9L,GAAcxC,EAAkB/+N,MACvCo5N,EAAA90L,MAAQg9L,GAAexC,EAAmB9+N,MANoB,CAH1C,GAkCjCwhO,EAAoB,WACxB,IAAAC,EAAsCtC,EAAahQ,EAAQnvN,OAAnDs/N,EAAemC,EAAfnC,eAtBuB,SAACF,GAChC,IAAA,IAASx7M,EAAI,EAAGA,EAAIw7M,EAAW/hO,OAAQumB,IAErC,IADA,IAAM4qG,EAAQ4wG,EAAWx7M,GAChBtmB,EAAI,EAAGF,EAAMoxH,EAAMnxH,OAAQC,EAAIF,EAAKE,IAAK,CAChD,IAAMokO,EAAalzG,EAAMlxH,GACnBqkO,EAAiBnzG,EAAMlxH,EAAI,GACzBujB,EAAW6gN,EAAX7gN,SAC0BA,IAAUA,aAAQ,EAARA,EAAQs9M,oBACK,SAAzBuD,EAAWx7E,IAAI+tE,OAAkD,UAA9B0N,eAAAA,EAAgBz7E,IAAI+tE,SACrFyN,EAAWvD,kBAAmB,GAE1B,IAAAyD,EAAiBpzG,EAAMlxH,EAAI,KACGujB,IAAUA,aAAQ,EAARA,EAAQu9M,sBACK,UAAzBsD,EAAWx7E,IAAI+tE,OAAmD,WAA9B2N,eAAAA,EAAgB17E,IAAI+tE,SACxFyN,EAAWtD,oBAAqB,EAEpC,EAOFyD,CADuBJ,EAAArC,YAEjB,IAAAn1L,EAAQntB,YAAW,WAAM,IAAAglN,GACzBjD,EAAc7+N,eAAA8hO,EAAStiD,EAAUx/K,aAAA,IAAA8hO,GAAVA,EAAiBzkO,SACb2iO,EAAA7G,EAAgBn5N,MAAOs/N,GAEtDliN,aAAa6sB,KACZ,GACH,OAAO,WACL7sB,aAAa6sB,KAIX83L,EAAoB,WAClB,IAAA93L,EAAQntB,YAAW,WACvB,GAAKq8M,EAAgBn5N,MAArB,CACAw+N,EAAcx+N,MAAQm5N,EAAgBn5N,MAAMqgE,aAAe84J,EAAgBn5N,MAAM+8D,aACjFm8J,EAAgBl5N,MAAQm5N,EAAgBn5N,MAAMsjC,YAAc61L,EAAgBn5N,MAAMojC,YAC5E,IAAAwoI,EAAMutD,EAAgBn5N,MAAMikC,wBAClC06L,EAAuB3+N,MAAQ,CAC7BmkC,IAAKynI,EAAIznI,IACTC,KAAMwnI,EAAIxnI,MAEZhnB,aAAa6sB,EARe,IAS3B,IAGCsvL,EAAmB,SAAC17L,GACpB+gM,EAAc5+N,QAAU69B,IAC5B+gM,EAAc5+N,MAAQ69B,IAalBmkM,EAAsB,WAAM,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAEvBP,EAAAr8K,EAAA68K,mBAAmBziO,oBAAsB,UAAzCiiO,EAA0B97K,oBAAe,IAAA+7K,GAAzCA,EAAA5jO,KAAA2jO,WACAE,EAAAv8K,EAAA88K,yBAAyB1iO,oBAAsB,UAA/CmiO,EAAgCh8K,oBAAe,IAAAi8K,GAA/CA,EAAA9jO,KAAA6jO,WACAE,EAAAz8K,EAAA+8K,kBAAkB3iO,oBAAsB,UAAxCqiO,EAAyBl8K,oBAAe,IAAAm8K,GAAxCA,EAAAhkO,KAAA+jO,WACAE,EAAA38K,EAAAg9K,qBAAqB5iO,oBAAsB,UAA3CuiO,EAA4Bp8K,oBAAe,IAAAq8K,GAA3CA,EAAAlkO,KAAAikO,IAGLM,EAAuB,SAAC1C,GAE5B,IADA,IAAM2C,EAAyC,CAAA,EACtCxlO,EAAI,EAAGF,EAAM+iO,EAAO9iO,OAAQC,EAAIF,EAAKE,IAG5C,IAFM,IAAAg7N,EAAS6H,EAAO7iO,GAAGyoC,SAEhB3E,EAAI,EAAGg/L,EAAQ9H,EAAOj7N,OAAQ+jC,EAAIg/L,EAAOh/L,IAAK,CACrD,IAAMk/L,EAAKhI,EAAOl3L,GAET0hM,EADMxC,EAAGhxL,QAAQutL,QACPyD,EAAGr8L,wBAAwBpG,KAChD,CAEK,OAAAilM,GAGHxJ,EAAoB,SAAC6G,GACzB,GAAIA,aAAkB4C,eAAgB,CACpC,GAAI/D,EAAgBh/N,MAAO,OACfk9N,EAAAl9N,MAAQ6iO,EAAqB1C,EAC3C,MACcjD,EAAAl9N,MAAQk9N,EAAYl9N,OAAS,CAAA,EAClC7B,OAAA2M,QAAQq1N,GAAQhpN,SAAQ,SAAAunD,GAAqB,IAAA1zB,EAAAxnB,GAAAk7C,EAAA,GAAnBy7J,EAAAnvL,EAAA,GAAQnN,EAAKmN,EAAA,GAC5CkyL,EAAYl9N,MAAMm6N,GAAUt8L,CAC9B,IAEF,OAAOq/L,EAAYl9N,OAGfgjO,EAA2B,WACzB,IAAA/4L,EAAQntB,YAAW,WAAM,IAAAmmN,EAE7B,GAhDqB,WAAM,IAAAxG,EAAAyG,EACvBl/L,EAAuBy4L,QAAvBA,EAAOtD,EAAgBn5N,aAAhBy8N,IAAgBA,OAAhBA,EAAAA,EAAuBx4L,wBACpC,GAAKD,EAAL,CAEA,IAAMm/L,EAAc3E,EAAcx+N,MAAQ0+N,EAAe1+N,MAAQ,EACjE49N,EAAW59N,MAAQgkC,EAAKnG,MAAQslM,GAAet8N,EAAMk4C,SAAW,EAAI,GAC9D,IAAAqkL,EAAU3E,iBAAayE,EAAbzE,EAAaz+N,aAAA,IAAAkjO,OAAA,EAAbA,EAAoBj/L,yBAC3Bm/L,aAAA,EAAAA,EAAAvlM,QAAS07L,EAAiB6J,EAAQvlM,MALhC,EA6CQwlM,IACbnE,EAAmBl/N,MAAvB,CACA,IAAMkgO,EAA+B+C,QAAvBA,EAAA9J,EAAgBn5N,iBAAOijO,SAAvBA,EAAuBthM,cAAc,SAC9Cu+L,IACL5G,EAAkB4G,EAAMn6L,UACxB3oB,aAAa6sB,GAJiB,IAK7B,IAaCovL,EAAiB,SAAC12N,GACtB,GAAa,cAATA,EAAsB,CAAA,IAAA2gO,EAClBnD,EAAgCmD,QAAvBA,EAAAnK,EAAgBn5N,aAAOsjO,IAAAA,WAAAA,EAAvBA,EAAuB3hM,cAAc,gBAAU,IAAA2hM,OAAA,EAA/CA,EAA+Cv9L,SAC9D,OAAKo6L,EAGE0C,EAAqB1C,GAFnB,EAGX,CACO,OAAAjD,EAAYl9N,OAAS,IAG9BuoC,EAAAA,MACE,CACEh9B,EACA4jN,EACApwK,EACAO,EACAixK,EACAiO,EACAtF,EACA2F,EACAr/C,EACA8vC,EACAS,GAEFyR,EACA,CAAE3vK,WAAW,IAGftpB,EAAAA,MACE,CAACs2L,EAAe1P,IAChB,WACQ,IAAAllL,EAAQntB,YAAW,WACnB+hN,EAAc7+N,OAChBohO,EAAwBjI,EAAgBn5N,OAE1Cod,aAAa6sB,KACZ,EACL,GACA,CAAE4nB,WAAW,IAGftpB,EAAAA,MACE,CAAC+0C,EAAW/xE,EAAM4jN,EAASpwK,EAAUo6K,IACrC,WACMA,EAAgBn5N,OAEA+hO,GAEtB,GACA,CAAElwK,WAAW,IAGftpB,EAAAA,MAAM+1L,GAAc,WA9DlBpB,EAAYl9N,MAAQ,EAgEtB,IAGAuoC,EAAAA,MACE,CAACh9B,EAAMwzC,EAAUO,EAAakgI,EAAWg/C,EAAe5O,EAAkBH,EAAqBc,IAC/F,WACQ,IAAAtmL,EAAQntB,YAAW,WACEkmN,IACLhB,IACpB5kN,aAAa6sB,KACZ,GACL,GACA,CAAE4nB,WAAW,IAGTtpB,EAAAA,MAAA,CAAC+1L,IAAe,SAAA1jG,EAAAS,GAAuC,IAArCijG,EAAqC96M,GAAAo3G,EAAA,GAAzB,GAAI2oG,EAAJ//M,GAAA63G,EAAA,GAAmB,GAC/CmoG,EAAelF,EAAazyN,KAAI,SAAC+X,GAAA,OAAMA,EAAEu2M,UACzCsJ,EAAaF,EAAgB13N,KAAI,SAAC+X,GAAA,OAAMA,EAAEu2M,UAC5C,GAAAqJ,EAAanmO,OAASomO,EAAWpmO,OAAQ,CACrC,IAAAqmO,EAAavgN,GAAQsgN,EAAYD,GACjCtG,EAAc7D,EAAe,aAC/B8J,EAAc,EACPO,EAAAvsN,SAAQ,SAAC9X,GAClB8jO,GAAejG,EAAY79N,EAC7B,IACM,IAAAskO,EAAkB3hN,GAAKk7M,EAAauG,GACpCG,EAAgBzlO,OAAOkP,OAAOs2N,GAAiB/wL,QAAO,WAAc,OAAThtC,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,IAASA,UAAAvI,OAAAuI,EAAAA,kBAAAlG,MAGpEmkO,EAAe1K,EAAgBn5N,MAAMojC,YACrC0gM,EAAiBF,EAAgBT,EACvC5J,EAAiBryN,KAAKC,IAAI08N,EAAcC,GAC1C,CACF,IAEA,IAAMC,EAA2D,WAEtCf,IACPjB,IACEC,KAEhBnD,EAAc7+N,OAASw+N,EAAcx+N,SACrBwhO,IAClBJ,EAAwBjI,EAAgBn5N,MAAO,CAAEqhO,iBAAiB,KAI1C,SAAtB/hL,EAAYt/C,OACIs5N,EAAAD,EAAe,eAI/BxnJ,EAAWh2D,IAAS,WACXkoN,MACZ,IAEC78I,EAAiC,KAgBrC9qD,EAAAA,WAAU,WACR,IAAMkH,E/CviBH,WAED,GAAqB,oBAAdtI,YAA8BA,UAAkB,OAD7B,EAE1B,GAAA,mBAAmBt8B,KAAKs8B,UAAUE,WAAmB,OAF3B,EAGxB,IAAA8oM,EAAY7jM,SAASuD,cAAc,OACzCsgM,EAAUtqM,MAAMsjL,QAAU,iFACjB78K,SAAA0B,KAAK8B,YAAYqgM,GACtB,IAAAtF,EAAiBsF,EAAUl0L,YAAck0L,EAAU5gM,YAShD,OAREjD,SAAA0B,KAAKgC,YAAYmgM,GAEtB,UAAUtlO,KAAKs8B,UAAUE,aACTwjM,GAAA,GAEhB3jM,MAAkB,KACH2jM,EAAA,IAEZA,CACT,C+CshBwBuF,GACpBvF,EAAe1+N,MAAQsjC,EACE0/L,IACnB,IAAAkB,EAAgBrF,EAAc7+N,OAASw+N,EAAcx+N,QAAUk/N,EAAmBl/N,QAAUuL,EAAKvL,MAAM3C,OAGvG8mO,EAD8B,oBAAXxnM,aAC+C,IAA1BA,OAAOqzC,gBAChDk0J,GAAiBnpM,KAAiB,KAAQopM,IAC1CjkM,GAAAvD,OAAQ,SAAUk1C,EAEzB,IAEAx5B,EAAAA,iBAAgB,WAAM,IAAAiyC,EAAA85I,EACE,oBAAXznM,QACL8D,GAAA9D,OAAQ,SAAUk1C,GAER,QAAAyY,EAAApD,SAAA,IAAAoD,GAAAA,EAAAna,UAAUouJ,EAASv+N,OACnCokO,QAAAA,EAAAl9I,aAAAk9I,GAAAA,EAAgBh0J,YAClB,IAWO,MAAA,CACLwtJ,WAAAA,EACAgB,cAAAA,EACA1B,YAAAA,EACAsB,cAAAA,EACAtF,gBAAAA,EACAC,gBAAAA,EACA0F,cAAAA,EACAzF,iBAAAA,EACA4E,uBAAAA,EACAW,uBAAAA,EACAD,eAAAA,EACAh7C,QArBc,SAAC3M,GACfxrK,EAAKvL,MAAQ+2K,GAqBbgtD,aAAAA,EACAxK,iBAAAA,EACAxuC,gBAlLsB,SAAC1pL,GAAkB,IAAAgjO,EAAAC,EAAAx5C,EACnC,QAAAu5C,EAAAx9N,EAAAsqN,iBAAA,IAAAkT,GAAAA,EAAA/lO,KAAAuI,EAAY,CAAExF,EAAAA,IACd,QAAAijO,EAAAz9N,EAAAuqN,iBAAA,IAAAkT,GAAAA,EAAAhmO,KAAAuI,EAAY,CAAExF,EAAAA,IACd,QAAAypL,EAAAjkL,EAAA+oE,gBAAA,IAAAk7G,GAAAA,EAAAxsL,KAAAuI,EAAW,CAAExF,EAAAA,KAgLnB2hO,yBAAAA,EACA5B,wBAAAA,EACAmD,uBA9dF,SAAgCj/L,GAC9Bm5L,EAAYz+N,MAAQslC,CACtB,EA6dE+zL,eAAAA,EACAC,kBAAAA,EACAkL,uBAlEF,SAAgCC,GACR,oBAAX9nM,SAEP5B,KAAiB,SAAuC,IAA1B4B,OAAOqzC,iBACrCvvC,GAAA9D,OAAQ,SAAUk1C,IACLqV,EAAA,IAAIvqD,OAAOqzC,gBAAe,WACnC,IAAA/lC,EAAQntB,YAAW,WACVinN,IACb3mN,aAAa6sB,KACZ,IACL,KACeomC,QAAQo0J,GACvBlG,EAASv+N,MAAQykO,GACnB,EAsDEjL,6BA3BmC,WACjBgI,IACAO,KA2BtB,gOCxmBwB,SAAA2C,GAAc79N,EAAyBsqC,GAC7D,IAAAyhC,EAA8C7nC,SAAOlkC,GAA7CwnB,EAAYukD,EAAZvkD,WAAY9iB,EAAAqnE,EAAArnE,KAAM6jN,EAAgBx8I,EAAhBw8I,gBAClB7jM,EAAgByL,KAAhBzL,YACFo5M,EAAkB5tM,EAAAA,IAAqBlwB,EAAMwnB,YAE7C0oJ,EAAahgJ,MAAoB,IACjC6tM,EAAiB7tM,OAAI,GAErB8tM,EAA8B,WAAgC,IAA/BpkN,EAAU7a,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EAAGm3H,yDAAW,GACnDxxH,EAAS1E,EAAT0E,KAEFqY,EAAI+kB,SAASymL,EAAgBpvN,OAASuL,EAAKlO,OAAS0/H,GAE1D,GADA6nG,EAAe5kO,MAAQ4jB,EACnBA,EAAG,CACC,IAAAvc,GAASoZ,EAAU,GAAKs8G,EACxB3uH,EAAMqS,EAAUs8G,EACtBg6C,EAAW/2K,MAAQuL,EAAKhN,MAAM8I,EAAO+G,EACvC,MACE2oK,EAAW/2K,MAAQuL,GAKvBg9B,EAAAA,OACE,WAAA,IAAAu8L,EAAAC,EAAA,MAAM,CAAmB,QAAnBD,EAACz2M,EAAWruB,aAAO,IAAA8kO,OAAA,EAAlBA,EAAkBrkN,QAAoBskN,QAApBA,EAAS12M,EAAWruB,aAAX+kO,IAAWA,OAAXA,EAAAA,EAAkBhoG,SAAUxxH,EAAKvL,MAAM3C,OAAQ+xN,EAAe,IAChG,WACE,GAAK/gM,EAAWruB,OAAUquB,EAAWruB,MAAMygB,QAA3C,CACA,IAAAukN,EAA8B32M,EAAWruB,MAAjCygB,EAAAukN,EAAAvkN,QAASs8G,EAASioG,EAATjoG,SACD4nG,EAAA3kO,MAAQ,CAAEygB,QAAAA,EAASs8G,SAAAA,GACnC8nG,EAA4Bx2M,EAAWruB,MAAMygB,QAAS4N,EAAWruB,MAAM+8H,SAHnB,CAItD,GACA,CAAElrE,WAAW,IAIftpB,QACE,CAACh9B,IACD,WAAM,IAAA05N,EAAAC,EACC72M,EAAWruB,OAAUquB,EAAWruB,MAAM28H,iBACtBh0F,QAAQta,EAAWruB,MAAMygB,UAG9CokN,EACmCI,QADnCA,EACEN,EAAgB3kO,MAAMygB,mBAAWwkN,EAAAA,EAAA52M,EAAWruB,MAAM28H,eAChBuoG,QADgBA,EAClDP,EAAgB3kO,MAAM+8H,gBAAYmoG,IAAAA,EAAAA,EAAA72M,EAAWruB,MAAMg9H,iBAEvD,GACA,CAAEnrE,WAAW,IAyBR,MAAA,CACL+yK,eAAAA,EACA7tD,WAAAA,EACA4tD,gBAAAA,EACApW,iBA1BuB,WACvB,IAAK1nN,EAAMwnB,WAAmB,OAAA,KAC9B,IAAM0pJ,mWAAkB16I,IAAKx2B,EAAMwnB,YAGnC,cADO0pJ,EAAgB5oH,SACvB1xB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB1M,EAAYvrB,MAAA,uBAAA,CAAAy9B,EAAAA,YAAAukG,GAAA52F,aAAA,CAAAhgC,KAEF,UAAfvE,EAAMuE,KAAmB,KAAOvE,EAAMuE,MACxC2sK,EACJ,CAAA5oH,SAAU,SAACqxE,GAAuB,IAAA2kG,EAAAC,EAAAC,EAC1BF,QAAAA,EAAAt+N,EAAAwnB,kBAAA+2M,IAAAD,WAAAC,EAAAD,EAAYh2K,uBAAZi2K,EAAA9mO,KAAA6mO,EAAuB3kG,GAC7BmkG,EAAgB3kO,MAAQwgI,EACIqkG,EAAArkG,EAAS//G,QAAS+/G,EAASzD,UACjD,QAAAsoG,EAAAx+N,EAAAuwK,oBAAAiuD,IAAAA,GAAAA,EAAA/mO,KAAAuI,EAAe25H,EAAUu2C,EAAW/2K,MAC5C,IACS,CAAEw9H,aAAcrsF,EAAQnK,MAAMw2F,kBAYjD,CCvEA,SAAwB8nG,GAASz+N,GAC/B,IAAMsyN,EAAkBpiM,EAAAA,MAElBwuM,EAAiBxuM,EAAAA,MAEjByuM,EAAiBzuM,EAAAA,MAEjB0uM,EAAyB1uM,EAAAA,MAEzB2uM,EAAgB3uM,EAAAA,MAEhB4uM,EAAkB5uM,OAAI,GAEtB6uM,EAAkB7uM,OAAI,GAEtB8uM,EAAsB9uM,OAAI,GAE5B+uM,GAAc,EACdC,GAA0B,EAExBtmD,EAAkBjhK,EAAAA,UACtB,WAAA,OAAM3X,EAAMihE,QAAgC,YAAtBjhE,EAAMihE,OAAOnlE,OAAuBkE,EAAMihE,OAAOoqD,WAAa,KAAOrrH,EAAM0E,KAAKlO,MAAA,IAGlG2oO,EAAYxnN,EAAAA,UAChB,WAAA,SAAS3X,EAAM+oN,kBAAoB/oN,EAAM4oN,qBAAuB5oN,EAAMgpN,8BAAA,IAGpEoW,EAAiB,EACfC,EAAqB,SAACrjH,GAC1B,GAAKmjH,EAAUhmO,OAAUy/K,EAAgBz/K,MAAzC,CACA,IAAI65B,EAASgpF,EAKb,IAJKhpF,GAAUs/L,EAAgBn5N,QACZimO,EAAA,EACjBpsM,EAASs/L,EAAgBn5N,OAEtB65B,EAAL,CACA,IAAMuK,EAAOvK,EAAOuL,WAEpB,GAAI6gM,IAAmB7hM,EAAvB,CACiB6hM,EAAA7hM,EAQjB,IANA,IAAM+hM,EAAwB,CAC5BhN,EAAgBn5N,MAChBulO,EAAevlO,MACfwlO,EAAexlO,MACfylO,EAAuBzlO,OAEhB1C,EAAI,EAAGF,EAAM+oO,EAAsB9oO,OAAQC,EAAIF,EAAKE,IACvD6oO,EAAsB7oO,IAAMulH,IAAkBsjH,EAAsB7oO,KACtE6oO,EAAsB7oO,GAAG8nC,WAAahB,EAXb,CAHhB,CANmC,GA0B5CgiM,EAA6B,SAACC,EAAsBC,EAAoBC,GAC5E,OAAAD,EAAUniM,IAAMoiM,EAAeF,EAAYliM,KAAOkiM,EAAYliM,IAAMkiM,EAAYvoM,MAAA,EAO5E0oM,EAA4B,WAAM,IAAA/J,EAAAwG,EAAAwD,EACtC,GAAKT,EAAUhmO,OAAUy/K,EAAgBz/K,OAAUm5N,EAAgBn5N,MAAnE,CACM,IAPc6G,EAOd+kK,EAAsB6wD,QAAtBA,EAAMtD,EAAgBn5N,aAAhBy8N,IAAgBA,OAAhBA,EAAAA,EAAuBx4L,wBAC7ByiM,EAA6B,UAAhBvN,EAAgBn5N,aAAA,IAAAijO,WAAAA,EAAhBA,EAAuBthM,cAAc,6BAArCshM,EAA+Ch/L,wBAC5DsiM,GAAeG,eAAAA,EAAY5oM,SAAU,EACrC6oM,EAA4BF,QAA5BA,EAAajB,EAAexlO,aAAfymO,IAAeA,OAAfA,EAAAA,EAAsBxiM,wBACzC,IAAKp9B,EAAM+oN,kBAAoBnwC,EAAgBz/K,QAAUulO,EAAevlO,MAAO,CAC7E,IAAMulD,EAXJ5lC,GADgB9Y,EAYaA,EAAM8oN,kBAAoB9oN,EAAM+oN,kBAXpC,EACtB/oN,EAAM0+C,WAAa,EAWlBqhL,GAAeD,eAAAA,EAAY7oM,SAAU,EACvCpa,EAAIxc,KAAKge,IAAI0mJ,EAAIznI,KAAOynI,EAAI9tI,OAASyoM,EAAehhL,EAAYqhL,EAEhEnnD,EAAgBz/K,QACd0jB,EAAAkoJ,EAAIznI,KAAM,EAAKuiM,EAAW5oM,QAEhC6nM,EAAgB3lO,MAAQ0jB,CAC1B,CAEI,GAAA7c,EAAM4oN,qBAAN5oN,MAA6B2+N,GAAAA,EAAgBxlO,MAC/C4lO,EAAgB5lO,MAAQomO,EAA2BO,EAAY/6D,EAAK26D,QAC3D,GAAA1/N,EAAMgpN,+BAANhpN,MAAuC4+N,GAAAA,EAAwBzlO,MAAO,CACzE,IAAA6mO,EAA0BpB,EAAuBzlO,MAAMikC,wBAC7D2hM,EAAgB5lO,MAAQomO,EAA2BS,EAAyBj7D,EAAK26D,EACnF,CACI,GAAA1/N,EAAMmpN,yBAA2B0V,EAAc1lO,MAAO,CAClD,IAAA8mO,EAAWpB,EAAc1lO,MAAMikC,wBACrC4hM,EAAoB7lO,MAAQomO,EAA2BU,EAAUl7D,EAAK26D,EACxE,CAzB0E,GA4BtEQ,EAAmB,WACGP,KAGtBQ,EAAe,WACnBd,EAAmBV,EAAexlO,QAG9BinO,EAAiB,WACrBf,EAAmBX,EAAevlO,QAG9BknO,EAA4B,WAChChB,EAAmBT,EAAuBzlO,QAGtCmnO,EAAuB,WAC3BjB,EAAmB/M,EAAgBn5N,QAG/BonO,EAAmB,WACpBlnM,GAAAslM,EAAexlO,MAAO,SAAUgnO,IAG/BK,EAAmB,WACnB5mM,GAAA+kM,EAAexlO,MAAO,SAAUgnO,IAGhCM,EAAqB,WACtBpnM,GAAAqlM,EAAevlO,MAAO,SAAUinO,GACRM,KAGvBC,EAAqB,WACpB1B,GAAiBrlM,GAAA8kM,EAAevlO,MAAO,SAAUinO,GAC3BQ,KAGvBC,EAAwB,WACzBxnM,GAAAulM,EAAuBzlO,MAAO,SAAUknO,IAGvCS,EAAwB,WACxBlnM,GAAAglM,EAAuBzlO,MAAO,SAAUknO,IAGxCU,EAA2B,WAC5B1nM,GAAAi5L,EAAgBn5N,MAAO,SAAUmnO,GACTI,KAGvBM,EAA2B,WAC1B/B,GAAiBrlM,GAAA04L,EAAgBn5N,MAAO,SAAUmnO,GAC5BM,KAGvB3oI,EAAc,WACJgnI,GAAA,GAGVh1D,EAAY,WACFg1D,GAAA,EACTC,IACCtlM,GAAA8kM,EAAevlO,MAAO,SAAUinO,GAChCxmM,GAAA04L,EAAgBn5N,MAAO,SAAUmnO,KAInCI,EAA6B,WACPxB,GAAA,GAGtB0B,EAA6B,WACP1B,GAAA,GAItB+B,EAA2D,GAC3DC,EAAkC,SAAC1nM,GAIjC,IAAA2nM,EAA4BnsN,IAAS,SAACu8B,GACtC3X,GAAAJ,EAAS,SAAU+X,KACtB,KAEH,SAAS6vL,IACP/B,EAAmB7lM,GACnB2nM,EAA0BC,EAC5B,CACA,SAASC,EAAoB7mO,GACvBA,EAAE8mO,eAAe9pN,SAASgiB,KAE5BynM,EAAsC3wN,SAAQ,SAAC6vJ,GAAY,OAAAA,OAC3D8gE,EAAsCzqO,OAAS,EAE5C6iC,GAAAG,EAAS,SAAU4nM,GAEtBD,EAA0BC,GAC1BH,EAAsC79N,MAAK,WACrCw2B,GAAAJ,EAAS,SAAU4nM,EACzB,IAEJ,CAQO,OANJ/nM,GAAAG,EAAS,aAAc6nM,GAMnB,CACLE,iCALF,WACM3nM,GAAAJ,EAAS,aAAc6nM,EAC7B,IAQIG,EAAgD,GAMhDC,EAAkC,WAClC7nM,GAAA9D,OAAQ,YAAamiE,GACrBr+D,GAAA9D,OAAQ,UAAWm0I,GANvBu3D,EAA2BlxN,SAAQ,SAAC6vJ,GAAY,OAAAA,OAChDqhE,EAA2BhrO,OAAS,EAQhCkoO,EAAevlO,QACbygC,GAAA8kM,EAAevlO,MAAO,aAAcsnO,GACpC7mM,GAAA8kM,EAAevlO,MAAO,aAAcwnO,IAEtChC,EAAexlO,QACbygC,GAAA+kM,EAAexlO,MAAO,aAAconO,GACpC3mM,GAAA+kM,EAAexlO,MAAO,aAAcqnO,IAEtClO,EAAgBn5N,QACdygC,GAAA04L,EAAgBn5N,MAAO,aAAc4nO,GACrCnnM,GAAA04L,EAAgBn5N,MAAO,aAAc6nO,IAEvCpC,EAAuBzlO,QACrBygC,GAAAglM,EAAuBzlO,MAAO,aAAc0nO,GAC5CjnM,GAAAglM,EAAuBzlO,MAAO,aAAc2nO,KAsC9CY,EAA4B,WAChC,GAAKvC,EAAUhmO,OAAU6G,EAAMmpN,wBACzB,IAAA/lL,EAAQntB,YAAW,WACnBkpN,EAAUhmO,OAAS6G,EAAMmpN,wBACxB9vL,GAAAC,SAAU,SAAU4mM,GAEnBtmM,GAAAN,SAAU,SAAU4mM,GAE1B3pN,aAAa6sB,EACf,KAGF1B,EAAAA,MAAM,CAACg9L,EAAgBC,EAAgBC,EAAwBtM,IAAkB,YA9C5C,WAKnC,GAJGj5L,GAAAvD,OAAQ,YAAamiE,GACrB5+D,GAAAvD,OAAQ,UAAWm0I,GAEUw3D,IAC5B/C,EAAevlO,MAAO,CACrBkgC,GAAAqlM,EAAevlO,MAAO,aAAcsnO,GACpCpnM,GAAAqlM,EAAevlO,MAAO,aAAcwnO,GACvC,IAAQY,EAAqCL,EAAgCxC,EAAevlO,OAApFooO,iCACRC,EAA2Bp+N,KAAKm+N,EAClC,CAEI,GAAAvhO,EAAM4oN,qBAAuB+V,EAAexlO,MAAO,CAClDkgC,GAAAslM,EAAexlO,MAAO,aAAconO,GACpClnM,GAAAslM,EAAexlO,MAAO,aAAcqnO,GACvC,IAAQe,EAAqCL,EAAgCvC,EAAexlO,OAApFooO,iCACRC,EAA2Bp+N,KAAKm+N,EAClC,CAEI,GAAAvhO,EAAMgpN,+BAAiC4V,EAAuBzlO,MAAO,CACpEkgC,GAAAulM,EAAuBzlO,MAAO,aAAc0nO,GAC5CxnM,GAAAulM,EAAuBzlO,MAAO,aAAc2nO,GAC/C,IAAQS,EAAqCL,EAAgCtC,EAAuBzlO,OAA5FooO,iCACRC,EAA2Bp+N,KAAKm+N,EAClC,CAEA,IAAKpC,EAAUhmO,OAASy/K,EAAgBz/K,QAAUm5N,EAAgBn5N,MAAO,CACpEkgC,GAAAi5L,EAAgBn5N,MAAO,aAAc4nO,GACrC1nM,GAAAi5L,EAAgBn5N,MAAO,aAAc6nO,GACxC,IAAQO,EAAqCL,EAAgC5O,EAAgBn5N,OAArFooO,iCACRC,EAA2Bp+N,KAAKm+N,EAClC,EAgB6BI,GACVtC,IACOM,GAC5B,IAEAj+L,QAAMy9L,EAAWuC,GAEjBhgM,EAAAA,OACE,WAAA,MAAM,CACJ1hC,EAAM0E,KACN1E,EAAMsoN,QACNtoN,EAAM+oN,iBACN/oN,EAAM4oN,oBACN5oN,EAAMgpN,8BACR,IACA,WACqBqW,GACrB,IAGF7tL,EAAAA,iBAAgB,WACV5X,GAAAN,SAAU,SAAU4mM,GACQuB,IAChC/C,EAAevlO,MAAQ,KACvBwlO,EAAexlO,MAAQ,KACvBylO,EAAuBzlO,MAAQ,KAC/Bm5N,EAAgBn5N,MAAQ,IAC1B,IAOO,MAAA,CACL2lO,gBAAAA,EACAC,gBAAAA,EACAC,oBAAAA,EACAN,eAAAA,EACAC,eAAAA,EACAC,uBAAAA,EACAC,cAAAA,EACAQ,mBAAAA,EACAuC,mBAdyB,SAACC,GAC1BvP,EAAgBn5N,MAAQ0oO,EACEH,KAa1B/B,0BAAAA,EAEJ,CC3TgB,SAAAmC,GAAoB7vK,EAA+C5yB,GACjF,GAAK4yB,EAAL,CAGA,IAFA,IAAM8vK,EAAW9vK,aAAsBt7D,MAAQs7D,EAAa,CAACA,GACzDx3D,EAAgC,CAAA,EAC3BhE,EAAI,EAAGA,EAAIsrO,EAASvrO,OAAQC,IAAK,CACxC,IAAMurO,EAAWD,EAAStrO,GAC1B,GAAKurO,EAAL,CACA,IAAMC,EAAeplO,EAAWmlO,GAAYA,EAAS3iM,GAAU2iM,EAE7DvnO,EAAAwnO,aAAwBtrO,MAAQmrO,GAAoBG,EAAc5iM,GAAU/nC,OAAOq5B,OAAOl2B,EAAQwnO,EAHrF,CAIjB,CACO,OAAAxnO,CAViB,CAW1B,CAGgB,SAAAynO,GACdC,EACA9iM,EACAkqL,GAMA,IAJA,IAAM6Y,EAAeD,aAAyBxrO,MAAQwrO,EAAgB,CAACA,GAC/D/oL,EAAkB/Z,EAAlB+Z,IAAKqvE,EAAappF,EAAbopF,SAET45G,EAA2B,GACtB5rO,EAAI,EAAGF,EAAM6rO,EAAa5rO,OAAQC,EAAIF,EAAKE,IAAK,CACvD,IAAM6rO,EAAQF,EAAa3rO,GACvB8rO,EAAS1lO,EAAWylO,GAASA,EAAMjjM,GAAUijM,EACjD,IAAIzmO,EAAS0mO,IAAaA,aAAkB5rO,MASjC4rO,aAAkB5rO,QAClB4rO,EAAAL,GAAoBK,EAAQljM,EAAQkqL,QAVK,CAKjDgZ,EAA+B95G,KAAc85G,EAAUA,EAA+B95G,IAEvF,IAAMwxG,EAAQx1N,GAAI20C,EAAKmwK,GAAU,MAC1BgZ,EAAAtI,KAAWsI,EAASA,EAAOtI,GACpC,CAGgBoI,EAAAA,EAAcjxM,OAAOmxM,EACvC,CACO,OAAAF,CACT,CAEgB,SAAAG,GACdzyL,EACA1Q,GAIA,IAFA,IAAM1I,EAAUoZ,aAAsBp5C,MAAQo5C,EAAa,CAACA,GACtDz5C,EAAa,GACVG,EAAI,EAAGF,EAAMogC,EAAQngC,OAAQC,EAAIF,EAAKE,IAAK,CAClD,IAAMujC,EAAMrD,EAAQlgC,GAChBoG,EAAWm9B,GACT1jC,EAAA8M,KAAK42B,EAAIqF,IAEb/oC,EAAI8M,KAAK42B,EAEb,CACO,OAAA1jC,CACT,CAKgB,SAAAmsO,GAAoEna,EAAc9vN,GAC5F,GAAC8vN,GAAY9vN,EAAb,CACJ,IAAM6mJ,EAAMipE,aAAAA,EAAAA,EAASj4J,MAAK,SAACtzC,GAAM,OAAAA,EAAEu2M,SAAW96N,KAC1C,GAAA6mJ,EAAY,OAAAA,EAChB,IAAA,IAAS5oJ,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAisO,EAChBC,EAA9B,GAAY,QAAZD,EAAApa,EAAQ7xN,UAAIisO,IAAAA,GAAAA,QAAAA,EAAZA,EAAYxjM,oBAAAwjM,GAAZA,EAAsBlsO,OACxB,OAAOisO,GAA+BE,QAAZA,EAAAra,EAAQ7xN,cAAIksO,SAAZA,EAAYzjM,SAAU1mC,EAEpD,CAPsB,CAQxB,CAGgB,SAAAoqO,GAAcC,EAAsCC,GAClE,MAA8B,WAA1BzqO,EAAOwqO,GAAoCA,EAClB,WAAzBxqO,EAAOyqO,GAAmCA,EACvC,EACT,CCnGO,SAASC,GAAW3pL,EAAmBmwK,EAAgB+J,EAAgBjC,GACtE,IAAA2R,EAAWv+N,GAAI20C,EAAKmwK,GAI1B,YAHiB,IAAbyZ,GACE19J,GAAM,QAAS,0DAEd,CAAC09J,EAAU1P,GAAUjC,GAAUhpN,KAAK,IAC7C,CAOA,SAAwB46N,GACtBv+N,EACA4jN,EACAiB,EACAC,GAEA,IAAM0Z,EAAehzM,EAAAA,IAAQ,IAAAprB,KAGvBq+N,EAAuB,SAAC9jM,EAA2C+jM,GACjE,IAAE36G,EAAuBppF,EAAvBopF,SAAU4oG,EAAahyL,EAAbgyL,SAClB,GAAK+R,EAAehY,SAAYgY,EAAexpL,QAG/C,IAFM,IAAAypL,EAAc56G,GAAY26G,EAAehY,SAAW,GACpDkY,EAAcjS,GAAY+R,EAAexpL,SAAW,GACjDnjD,EAAIgyH,EAAUhyH,EAAI4sO,EAAa5sO,IACtC,IAAA,IAAS8jC,EAAI82L,EAAU92L,EAAI+oM,EAAa/oM,IAClC,GAAA9jC,IAAMgyH,GAAYluF,IAAM82L,EAAU,CACpC,IAAK3sN,EAAKvL,MAAM1C,KAAO6xN,EAAQnvN,MAAMohC,GAAI,OACnC,IAAAgpM,EAAUR,GAAWr+N,EAAKvL,MAAM1C,GAAI8yN,EAAOpwN,MAAOmvN,EAAQnvN,MAAMohC,GAAG+4L,OAAQ/4L,GAC3Ey3B,EAAQkxK,EAAa/pO,MAAMsL,IAAI8+N,IAAY,GACjDvxK,EAAMwxK,SAAU,EACHN,EAAA/pO,MAAMiL,IAAIm/N,EAASvxK,EAClC,GA4CN,OARAtwB,EAAAA,OACE,WAAA,MAAM,CAACh9B,EAAKvL,MAAOmvN,EAAQnvN,MAAOqwN,EAAiB,IACnD,YAhCyB,SACzB9kN,EACA4jN,EACAkB,GACG,IAAAia,EAEC,WADJA,EAAAP,EAAa/pO,oBAAbsqO,EAAoBv/N,QACfQ,GAAS8kN,EACd,IAAA,IAAS/yN,EAAI,EAAGF,EAAMmO,EAAKlO,OAAQC,EAAIF,EAAKE,IAE1C,IADA,IAAM2iD,EAAM10C,EAAKjO,GACR8jC,EAAI,EAAGmpM,EAASpb,EAAQ9xN,OAAQ+jC,EAAImpM,EAAQnpM,IAAK,CACxD,IAAM8kH,EAAMipE,EAAQ/tL,GACd8E,EAAS,CACb+Z,IAAAA,EACAimG,IAAAA,EACA52B,SAAUhyH,EACV46N,SAAU92L,GAENgpM,EAAUR,GAAW3pL,EAAKmwK,EAAOpwN,MAAOkmJ,EAAIi0E,OAAQ/4L,GACpDy3B,EAAQkxK,EAAa/pO,MAAMsL,IAAI8+N,IAAY,GAC3CrsO,EAAIsyN,EAAkBnqL,IAAW,CAAA,GACnCnoC,EAAEk0N,SAAWl0N,EAAE0iD,SAAWoY,EAAMo5J,SAAWp5J,EAAMpY,WACjD1iD,EAAAk0N,UAAYp5J,EAAMo5J,QAAUl0N,EAAEk0N,SAC9Bl0N,EAAA0iD,UAAYoY,EAAMpY,QAAU1iD,EAAE0iD,SACnBspL,EAAA/pO,MAAMiL,IAAIm/N,EAASvxK,IAElCmxK,SAAAA,EAAuB9jM,EAAQ2yB,EACjC,EAOA2xK,CAAmBj/N,EAAKvL,MAAOmvN,EAAQnvN,MAAOqwN,eAAAA,EAAmBrwN,MACnE,GACA,CAAE6xD,WAAW,IAGR,CAAEk4K,aAAAA,EACX,okBC7CO,IAAMU,GAAc,CACzB,SACA,eACA,UACA,YACA,WACA,gBACA,oBACA,SACA,mBACA,aACA,SACA,cACA,aACA,gBACA,iBACA,iBACA,kBACA,kBACA,gBAwBWC,GAAgB,CAC3B,QACA,WACA,YACA,YACA,aACA,aACA,WAGc,SAAAC,GACdzkM,EACAc,EACAmwD,GAKA,IAAQ+uD,EAAuBhgH,EAAvBggH,IAAKjmG,EAAkB/Z,EAAlB+Z,IAAKqvE,EAAappF,EAAbopF,SAEd,GAAe,kBAAf42B,EAAIi0E,OAA4B,CAC5B,IAAA/wL,GAAyD+tD,aAAAA,EAAAA,EAAO9oE,aAAc,CAAC,EAA7E5N,IAAAA,QAASs8G,EAAU3zF,EAAV2zF,SAAUJ,EAAAvzF,EAAAuzF,eAAgBK,IAAAA,gBACrC4tG,EAAWnqN,GAAWk8G,EACtBkuG,EAAY9tG,GAAYC,EAC9B,OAAI6tG,GAAaD,EACRC,GAAaD,EAAW,GAAKt7G,EAAW,EAE1CA,EAAW,CACpB,CACI,GAAA5rH,EAAWwiJ,EAAI+/C,MACV,OAAA//C,EAAI+/C,KAAK3hL,EAAAA,EAAG4hB,GAEjB,GAAAc,EAAMk/G,EAAIi0E,QACL,OAAAnzL,EAAMk/G,EAAIi0E,QAAQj0L,GAE3B,GAAIjnB,GAASinI,EAAI+/C,OAASj/J,EAAMk/G,EAAI+/C,MAC3B,OAAAj/J,EAAMk/G,EAAI+/C,MAAM//J,GAErB,GAAAxiC,EAAWwiJ,EAAIt6G,QACV,OAAAs6G,EAAIt6G,OAAOtnB,IAAG+Y,GAAAA,GAAA,CAAA,EAAK6I,GAAQ,GAAA,CAAAvjC,KAAM,UAE1C,IAAM+gB,EAAIpY,GAAI20C,EAAKimG,EAAIi0E,QAEvB,MAAK,MAAC,EAAW,GAAI,MAAM97M,SAASqF,GAEhCyzE,SAAAA,EAAO+3H,iBACFxrN,EAAWyzF,EAAM+3H,kBAAoB/3H,EAAM+3H,iBAAiB5qM,EAAAA,EAAG4hB,GAAUixD,EAAM+3H,iBAEpFloL,EAAMkoL,iBAAyBloL,EAAMkoL,iBAAiBhpL,GACtDc,EAAM,sBAA8BA,EAAM,sBAAsBd,GAC7DxiB,EAPwCA,CAQjD,CAGA,IAAAonN,GAAe7uM,kBAAgB,CAC7Bx9B,KAAM,KAENoI,MAAOw2B,GAAAA,GAAA,CACL4iB,IAAK9hD,OACLmxH,SAAUzvH,OACVkrO,WAAYlrO,OACZi5N,yBAA0Bl5N,OAC1B2rB,YAAa3rB,OACbo+N,uBAAwBryN,IAExBo+N,aAAcp+N,IACdw7K,cAAehpL,OACf86B,OAAQ0P,QACRmwD,QAASnwD,SACN3mB,GAAK6sM,GAAgB4b,KAAW,CAAA,EAAA,CAEnCO,SAAU,CAAC,EAEX/K,gBAAiB,CAAC,IAGpB1oL,MAAO,CAAC,eAERrb,eAAMr1B,EAAgBsqC,GACpB,IAAAyhC,EAA6C7nC,SAAOlkC,GAA5Co5N,EAAiBrtJ,EAAjBqtJ,gBAAiBhnM,EAAA25C,EAAA35C,OAAQ6/D,EAAQlmB,EAARkmB,QAC3BmyI,EAAQl0M,MAAI,MACZqhM,EAOFlG,KANF4C,EAAAsD,EAAAtD,gBACA3C,EAAAiG,EAAAjG,eACAqC,EAAA4D,EAAA5D,qBACAH,EAAA+D,EAAA/D,qBACAP,EAAAsE,EAAAtE,eACAkD,EAAAoB,EAAApB,sBAEIkU,EAAW1sN,EAAAA,UAAS,WAAA,OLhId,SACdsiN,EACAxxG,EACA67G,EACA3rD,EACAw+C,EACA3J,GAGuC,IADvC+W,yDAAoB,EAEhB,IAAC5rD,IAAcA,EAAUniL,OAAQ,MAAO,CAAEq8B,WAAO,EAAW8D,aAAS,GACnE,IAAA8oB,EAAWgpE,EAAWkwD,EAAU,GAChC6rD,EAAc/7G,EAAW67G,EAAY,EAAI3rD,EAAU,GACnD8rD,EAAsBH,EAAY3rD,EAAU,GAC5Cy+C,GAAWD,aAAA,EAAAA,EAAwB1yN,IAAIw1N,KAAU,CAAA,EACjDtoL,EAAa14C,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAChBu0N,EAAqBlwL,IAAMmiB,GAC3B+tK,EAAqBhwL,OAASgnM,GAC9BhX,EAAqBC,YAAchlG,IAAag8G,GAChDjX,EAAqBE,oBAAsBjlG,IAAag8G,EAAsB,GAM1E,MAAA,CACL5xM,MALgB,CAChByK,IAAKmiB,EAAAruB,GAAAA,OAAcgmM,EAAS95L,IAAMinM,EAAwB,WAAA,EAC1D/mM,OAAQgnM,EAAA,GAAApzM,OAAiBgmM,EAAS55L,OAAS+mM,EAAwB,WAAA,GAInE5tM,QAASgb,EAEb,CKoGM+yL,CACEjgO,GAAIzE,EAAMo5C,IAAKp5C,EAAMupN,QAAU,MAC/BvpN,EAAMyoH,SACNzoH,EAAMkkO,WACNlkO,EAAM24K,UACN34K,EAAMm3N,uBACN3J,EACAxtN,EAAMsgL,cAAc1H,gBAAgBz/K,MAAQ6G,EAAMsgL,cAAcj0D,WAAWlzH,MAAQ,EACrF,IAGIwrO,EAAehtN,EAAAA,UACnB,WAAA,OAAMmqN,GAAoB9hO,EAAMqpN,cAAe,CAAEjwK,IAAKp5C,EAAMo5C,IAAKqvE,SAAUzoH,EAAMyoH,SAAU3sH,KAAM,UAAa,CAAA,CAAC,IAG3G66B,EAAUhf,EAAAA,UAAS,WAAM,IAAAitN,EACvBvC,EAAgBH,GACpBliO,EAAMspN,aACN,CAAElwK,IAAKp5C,EAAMo5C,IAAKmwK,OAAQvpN,EAAMupN,OAAQ9gG,SAAUzoH,EAAMyoH,SAAU3sH,KAAM,QACxEkE,EAAMupN,QAAU,MAEX,MAAA,SAAAqb,EACLP,EAASlrO,aAAO,IAAAyrO,OAAA,EAAhBA,EAAgBjuM,QAChB0rM,EAAAppO,EAAAA,QAAAm4B,OAEMpxB,EAAM0kB,mCAAmC0N,EAAOj5B,OAAAi4B,GAAAA,OAChDpxB,EAAM0kB,YAAkCutE,sBAAAA,EAAQ94F,QAEtDinC,QAAO,SAACliB,GAAA,OAAMA,IAClB,IAEMojK,ECxMc,SACtBl1G,EACAm1G,EACAliJ,GAEM,IAAAmiJ,EAAa7pK,EAAAA,UAAS,WAAA,OAAMtX,KAAKC,IAAI++B,EAAOouF,WAAa,GAAI,OAC7Dg0D,EAASvxJ,OAAI,GACbwxJ,EAAoB/pK,EAAAA,UAAS,WAAA,MAAuB,UAAjB0nB,eAAAA,EAAQvjC,QAAoB2lL,EAAOtoL,SAEtE4/B,GAA0BK,IAAYtD,OAAOiD,uBAA2B,SAAC4oJ,GAAA,OAAO1rK,WAAW0rK,EAAI,OAE/F3hK,EAAO,WACNyhK,EAAOtoL,OACV4/B,GAAsB,WACpB0oJ,EAAOtoL,OAAQ,CACjB,KAcG,OAVPo8B,EAAAA,WAAU,WACa,UAAjB8J,eAAAA,EAAQvjC,OACZ05B,EAAAA,UAAS,WACP,IAAMqzF,EAAaxoH,KAAKC,IAAI,GAAI++B,EAAOwpF,YAAc,IAC/C5xF,EAASuqJ,EAAWroL,MAAQ0vH,EAC7B04D,SAAAA,EAAUpoL,OAAUizE,SAAAA,EAAcjzE,OACvCqwE,GAAQ+3G,EAASpoL,MAAOizE,EAAajzE,MAAO6mB,EAAMiX,EACpD,GACF,IAEO,CACLyqJ,kBAAAA,EACAF,WAAAA,EAEJ,CDuK8CI,CACxCw3C,EACAgL,EACAt/L,EAAAA,SAAAtO,GAAAA,GAAcx2B,CAAAA,EAAAA,EAAMihE,YAAQwnD,SAAUzoH,EAAMyoH,aAHtCi5D,EAAmBJ,EAAnBI,kBAAmBF,EAAAF,EAAAE,WAmBrBqjD,EAA0B,WAAM,IAAAC,EACX,QAArBA,EAAA9kO,EAAMsgL,qBAAe,IAAAwkD,GAArBA,EAAqBlsD,gBAAgBz/K,OACvCmxC,EAAQqG,KAAK,cAAe,CAC1BzgB,IAAKk0M,EACL1/N,KAAM1E,EAAMo5C,OAkBT,SAAA2rL,EAAmBC,EAA+C3lM,GACnE,IAGFpW,EAHIkoM,EAAa9xL,EAAb8xL,SACA9xE,EAAkB2lF,EAAlB3lF,IAAKgyE,EAAa2T,EAAb3T,SAGTx0N,EAAWwiJ,EAAInxG,UACPjlB,EAAAo2H,EAAInxG,SAASzwB,EAAAA,EAAGunN,GACO,WAAxB3sO,EAAOgnJ,EAAInxG,WAAyBrxC,EAAWwiJ,EAAInxG,SAASjlB,SACrEA,EAAUo2H,EAAInxG,SAASjlB,QAAQxL,EAAAA,EAAGunN,GACzB16L,EAAQnK,MAAM,YAAA/O,OAAYiuH,EAAIi0E,SAEvCrqM,EAAUqhB,EAAQnK,MAAA/O,YAAAA,OAAkBiuH,EAAIi0E,SAAU0R,GACzC16L,EAAQnK,MAAM+N,WAEbjlB,EAAAqhB,EAAQnK,MAAM+N,SAAS82L,IAGnC,IAAIjiE,EAAe,CAAA,EACS,WAAxB1qK,EAAOgnJ,EAAInxG,YACb60H,EAAe,UAAW1jB,EAAInxG,SAAWmxG,EAAInxG,SAASluC,MAAQq/I,EAAInxG,eAAY,GAEhF,IAtPqC3wB,EAsP/BqgN,EAAe59N,EAAMmkO,SACvBz3K,EAAoD,IAAb2kK,EAAiB,WAAa,MAGvE,OAFF3kK,EAAY2kK,IAAarxN,EAAMsoN,QAAQ9xN,OAAS,EAAI,YAAck2D,EAEhE91B,EAAAA,YAAAg6L,GAAA,CAAAlkK,UACaA,EAAA5nC,OACH84M,EAAe,WAAA,OAAMA,CAAe,OAAA,EAAA/M,eAC5B5nM,GAAY,WAAA,OAAMA,CAClC,EAAA85I,aAAcA,mBACI/iK,EAAMiyN,qCACXjyN,EAAM0kB,aAhQc,mBAAAnH,EAkQhC4zM,IAlQgC5+K,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAkQhC4zM,EAAA,CAAAhuM,QAAA,WAAA,MAAA,CAAAguM,EAAA,GAGP,CAuCA,OAxFA57L,EAAAA,WAAU,WACRC,EAAAA,UAAS,WACiBqvM,GAC1B,GACF,IAGA//J,EAAAA,WAAU,WACRtvC,EAAAA,UAAS,WACiBqvM,GAC1B,GACF,IA6EO,WAAM,IAAAI,EACH3c,EAAmEtoN,EAAnEsoN,QAAS4a,EAA0DljO,EAA1DkjO,aAAc9pL,EAA4Cp5C,EAA5Co5C,IAAK8qL,EAAuClkO,EAAvCkkO,WAAY/M,EAA2Bn3N,EAA3Bm3N,uBAC1C+N,EAAiB5c,aAAAA,EAAAA,EAAStjN,KAAI,SAACq6I,EAAKgyE,GACxC,IAAM8T,EAA4B,CAAA,EAC5B9lM,EAAS,CACb+Z,IAAAA,EACAimG,IAAAA,EACA52B,SAAUzoH,EAAMyoH,SAChB4oG,SAAAA,GAEE+T,EAAY,KACZ,GAAAplO,EAAMkjO,aAAa3+N,KAAM,CAAA,IAAA8gO,EAAAC,EACrB/B,EAAUR,GAAW3pL,EAAKp5C,EAAMupN,OAAQlqE,EAAIi0E,OAAQjC,GAI1D,YAFAgU,EADAD,EAAYlC,EAAaz+N,IAAI8+N,IAAY,CAAA,SACzC,IAAA8B,OAAA,EAAAA,EAAWja,SAAU,IAAM+Z,EAAU/Z,QAAUga,EAAUha,kBACzDka,EAAAF,SAAA,IAAAE,OAAA,EAAAA,EAAW1rL,SAAU,IAAMurL,EAAUvrL,QAAUwrL,EAAUxrL,SACrDwrL,EAAU5B,QAAgB,OAAA,IAChC,CACA,OAvDK,SAASnkM,EAA2CixD,GAC3D,IAAQ+uD,EAA4BhgH,EAA5BggH,IAAKgyE,EAAuBhyL,EAAvBgyL,SAAU5oG,EAAappF,EAAbopF,SACf08G,EAAkD70I,EAAlD60I,UAAWjB,EAAuC5zI,EAAvC4zI,WAAY/M,EAA2B7mI,EAA3B6mI,uBACzBhG,EAAW2S,GAAWzkM,EAAQiL,EAAQnK,MAAO,CACjDkoL,iBAAkB/3H,EAAM+3H,iBACxB7gM,WAAYxnB,EAAMwnB,aAEd+9M,EAAWrO,GAAqB73E,EAAKgyE,EAAU8F,EAAwBxJ,GACvE0U,EAAgBG,GAAiBnjF,EAAIjlH,UAAA5D,GAAAA,GAAA,CAAA,EAAgB6I,GAAA,GAAA,CAAQvjC,KAAM,QACnE66B,EAAU,CACd4uM,EAAS5uM,QACT0rM,EAAAppO,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAEGg1N,EAAkB5uE,EAAInxG,UACtBo9K,EAAeI,UAAYjjG,EAAW08G,EAAU/Z,UAAY8Y,GAC5D5Y,EAAeK,WAA0B,IAAb0F,GAAkBrxN,EAAMwpN,mBACpDyD,EAAe5tE,EAAInuG,OAASmuG,EAAInuG,OAAuB,SAAdmuG,EAAInuG,OAE7Ci/K,EAAsB13L,OAAwB,SAAf4mH,EAAIi0E,SAUlCkS,EAAc3oO,EAAWwiJ,EAAI78G,OAAS68G,EAAI78G,MAAAhM,GAAAA,MAAW6I,GAAQ,CAAA,EAAA,CAAAvjC,KAAM,QAAUujJ,EAAI78G,MACjFA,EAAQhM,GAAAA,GAAKgvM,CAAAA,EAAAA,GAAgBL,GAEjC,OAAAvuM,EAAAO,iBAAAoN,aAAA,CAAA/rC,IAAS6mJ,EAAIi0E,QAAUjC,EAAUx6L,MAAOF,EAAS9D,MAAO0yM,EAAS1yM,OAAW2P,WAV9D,SAAChoC,GAAkB,IAAAkrJ,EAC3BhnI,EAAI8X,GAAAA,MAAK6I,GAAA,GAAA,CAAQ7kC,EAAAA,IACnB6kJ,EAAIlsE,iBACN34E,EAAE24E,0BAEJuyE,EAAA1lJ,EAAM29I,mBAAN+H,OAAAA,EAAAjuJ,KAAAuI,EAAoB0e,MAKwE,CACzF2gI,EAAInxG,SAAW62L,EAAmB1lM,EAAQ,CAAE8xL,SAAAA,IAAcA,GAGjE,CAoBWsU,CAASpmM,EAAQ,CACtB6kM,WAAAA,EACA/M,uBAAAA,EACAuO,aAAcpd,EAAQ9xN,OACtB2uO,UAAAA,EACA9c,iBAAkBroN,EAAMqoN,kBAE5B,IAEA,OAAAzxL,EAAAO,iBAAAoN,aAAA,CAAArU,IAESk0M,GACDO,EAAaxrO,MACjB,CAAA05B,cAAAoyM,EAAOZ,EAASlrO,aAAA,IAAA8rO,OAAA,EAATA,EAAgBpyM,YAChB8D,EAAQx9B,OA9IE,SAACigD,EAAmBqvE,GACzC,IAAMk9G,EAAgE,CAAA,EAQ/D,OANO9B,GAAAvzN,SAAQ,SAAC88J,GACrBu4D,EAAA,KAAAv0M,OAAiB7lB,GAAW6hK,KAAgB,SAAC5yK,GAAkB,IAAAorO,EACvDlnN,EAAI,CAAElkB,EAAAA,EAAG4+C,IAAAA,EAAKn+C,MAAOwtH,GACOm9G,QAAlCA,EAAA5lO,EAAA,QAAAoxB,OAAc7lB,GAAW6hK,gBAASw4D,GAAlCA,EAAAnuO,KAAAuI,EAA+F0e,GAEnG,IACOinN,EAsICE,CAAezsL,EAAKp5C,EAAMyoH,WAE7B,CAAAi5D,EAAkBvoL,MACf,CAAAy9B,EAAAO,YAAA,KAAA,CAAAtE,MAAY,CAAEoE,UAAQ7F,OAAGowJ,EAAWroL,MAAA,MAAW6vC,OAAQ,SAAO,OAC9Dk8L,IAIZ,ukBE/VkC,GAAA9zM,OAAAt5B,EAAI+rO,IAAe,CAAA,eAkBhD,IAAMiC,GAAmB,CAC9B,WACA,SACA,eACA,gBACA,UACA,QACA,YACA,eACA,cACA,oBACA,SACA,mBACA,aACA,SACA,cACA,eACA,aACA,gBACA,iBACA,iBACA,kBACA,kBACA,eACA,WACA,YACA,aAGFC,GAAe3wM,kBAAgB,CAC7Bx9B,KAAM,QAENoI,MAAOw2B,GAAA,CACL9R,YAAa3rB,OACb2L,KAAM/N,MACN2xN,QAAS3xN,MACTs7N,yBAA0Bl5N,OAC1Bo+N,uBAAwBryN,IACxBytN,iBAAkBj7N,OAElB6sO,SAAU,CAAC,EACXpN,WAAY/9N,OACZq5N,gBAAiBvwL,QACjBw+I,cAAehpL,OAEf8hO,gBAAiB,CAAC,EAClB/rG,iBAAkBvzH,SAClBksO,kBAAmBlsO,SACnB2uN,aAAc,CAAC1vN,OAAQe,UACvBovN,YAAa,CAACnwN,OAAQe,UACtBmsO,UAAW,CAACtvO,OACZuvO,SAAU,CAACntO,OAAQC,SAChBmiB,GAAK6sM,GAAgB8d,KAI1BzwM,MAAAA,SAAMr1B,GACJ,IAAMmuD,EAAc5tB,KACpBwrC,EAAqD7nC,SAAOlkC,GAApD0E,EAAMqnE,EAANrnE,KAAM4jN,EAAAv8I,EAAAu8I,QAASiB,IAAAA,OAAQC,EAAkBz9I,EAAlBy9I,kBAC/Bj6I,EAA4Bp/C,GAAU,QAASnwB,EAAMof,QAA7CrC,EAAGwyD,EAAHxyD,EAAG2T,EAAA6+C,EAAA7+C,aACX6gM,EAAgDlG,KAAxC6C,EAAAqD,EAAArD,oBAAqB5C,EAAeiG,EAAfjG,eACrB4X,EAAiBD,GAAqBv+N,EAAM4jN,EAASiB,EAAQC,GAA7D0Z,aAID,MAAA,CACLnmN,EAAAA,EACA2T,aAAAA,EACAy9B,YAAAA,EACA+/J,oBAAAA,EACAiY,aAPmBxuN,EAAAA,UAAS,WAAA,MAAM,CAAC2zM,EAAetwL,SAQlDswL,eAAAA,EACA4X,aAAAA,EAEJ,EAEAn+L,OAAS,WAAA,IAAAqhM,EAAAC,EAAAC,EAAAC,EAAA/hL,EAAA3jD,KAiBD2lO,EAAa,SAACd,EAAsB5pO,GAClC,IAAA2qO,EAAQr7N,GAAUtP,GAClB4qO,EAAcliL,EAAK2J,YAAYs4K,GACrC,GAAI,CAAC,GAAI,UAAM,GAAW,GAAOjvN,SAASkvN,GAAqB,OAAA,KACzD,IAAAC,EAAgBniL,EAAK6tK,iBAAmB7tK,EAAK8jK,QAAQj4J,MAAK,SAACgvF,GAAA,MAAsB,SAAdA,EAAI+tE,SACvEz2L,EAAU,CAAC6tB,EAAK0pK,oBAAoBC,KAAM3pK,EAAK0pK,oBAAoBuY,IACnE1P,EAAavyK,EAAKtM,SAAWsM,EAAKuyK,WAAa,EAAIvyK,EAAKuyK,WAE9D,OAAAngM,EAAAA,YAAA,KAAA,CAAAC,MACaF,6BAA8B76B,iCAC1B4pO,GACX,CAAA9uM,EAAAO,YAAA,MAAA,CAAAN,MAAA59B,KACYurD,EAAK0pK,oBAAoBE,aAAeuY,GAAc9zM,MACzD8zM,EAAgB,CAAE3vM,gBAAU+/L,EAAA,OAAmB,CAAC,GAAA,CAAAngM,EAAAO,YAAA,MAAA,CAAAN,MAE3C2tB,EAAK0pK,oBAAoBG,kBAAA,CAAmBqY,WAO5DhB,EAAe7kO,KAAKynN,QAAQ9xN,OAC5B0tO,EAAwB,QAAxBkC,EAAavlO,KAAK6D,YAAM,IAAA0hO,OAAA,EAAXA,EAAW5vO,OACxBowO,EAAiC,GAEjCC,EAAa,CACjB,cACA,2BACA,yBACA,SACA,WACA,kBACA,aACA,UAGIC,EAAajmO,KAAKy/K,cAAc1H,gBAAgBz/K,MAAQ0H,KAAKy/K,cAAc10D,YAAYzyH,MAAQ0H,KAAK6D,KAE9FoiO,SAAAA,EAAAx2N,SAAQ,SAAC8oC,EAAKqvE,GAAa,IAAAs+G,EAC/Bxd,EAAS/kK,EAAK+kK,QAAU,KACxByZ,EAAWv+N,GAAI20C,EAAKmwK,GACpByd,EAAUxwM,GAAAA,GAAA,GACXrb,GAAKqpC,EAAKqjI,OAAQ+7C,KAAW,GAAA,CAChCra,OAAAA,EACAnwK,IAAAA,EACAkvK,QAAS9jK,EAAK8jK,QACd7/F,SAAUrvE,EAAIghI,sBAAwB3xD,EACtCy7G,WAAAA,EACAhB,aAAc1+K,EAAK0+K,aACnB5iD,cAAe97H,EAAK87H,cACpBluJ,OAAwB,QAAhB20M,EAAAviL,EAAKyhL,iBAAW,IAAAc,OAAA,EAAhBA,EAAgBvvN,SAASwrN,GACjC/wI,QAASztC,EAAK0hL,WAAalD,GACxB7nN,GAAKqpC,EAAKqjI,OAAQg/C,IAGnBriL,EAAKm5F,cACPqpF,EAAQrpF,YAAcn5F,EAAKm5F,aAG7B,IAAMspF,qCAGGxiO,GAAI20C,EAAKoL,EAAK+kK,QAAU,OAAS9gG,GAClCu+G,EACJ,CAAAE,aAAc1iL,EAAK6oE,mBAHV7oE,EAAK5kB,QASlB,GAHAgnM,EAAWxjO,KAAK6jO,GAGZziL,EAAKwhL,kBAAmB,CAC1B,IAAMtnN,EAAI,CACR06B,IAAAA,EACAn+C,MAAOwtH,EACP6/F,QAAS9jK,EAAK8jK,QACdyO,WAAYvyK,EAAKuyK,WACjB1E,gBAAiB7tK,EAAK6tK,iBAElB8U,EAAkB3iL,EAAKwhL,kBAAkBtnN,GAC5ByoN,GAAAP,EAAWxjO,KAAK+jO,EACrC,CACF,IAEM,IApGe7e,EACbyO,EAmGF3pM,EAAQo5M,CAAAA,EAAWd,EAAc,mBAAmBt0M,OAAGw1M,GAAYJ,EAAWd,EAAc,mBAE5FxsN,IAAgBmtN,QAANA,EAACxlO,KAAK6D,YAAL2hO,IAAKA,GAALA,EAAW7vO,QAAWqK,KAAKixB,SAAYjxB,KAAK4nN,cAAiB5nN,KAAKqoN,aAG7ExiC,EAAYt1J,cAAAA,OAAmB,QAAnBk1M,EAAczlO,KAAKy/K,qBAALgmD,IAAKA,OAALA,EAAAA,EAAoBj6G,WAAWlzH,MAAA,OACzDiuO,EAA+Bb,QAApBA,OAAKjmD,yBAAeimD,GAApBA,EAAoB3tD,gBAAgBz/K,MACjD,CACEsH,UAAWimL,EACX,gBAAiBA,EACjB,iBAAkBA,EAClB,oBAAqBA,QAEvB,EAEJ,OAAA9vJ,EAAAA,YAAA,QAAA,CAAAC,MACgBh2B,KAAKslO,aAAAtzM,MAAA2D,MAA0B4wM,IAC1CluN,CAAAA,GArHgBovM,EAqHMznN,KAAKynN,QApHxByO,EAAavyK,EAAKtM,SAAWsM,EAAKuyK,WAAa,EAAIvyK,EAAKuyK,WAC9DngM,EAAAA,YAAA,KAAA,CAAAC,MACa,CAAC2tB,EAAK8mK,eAAeW,SAAUhzN,EAAGurD,GAAAA,EAAK0pK,oBAAoBC,KAAO3pK,EAAK6tK,mBAAiB,CAAAz7L,EAAAO,YAAA,KAAA,CAAAyiB,QACpF0uK,EAAQ9xN,QACnB,CAAAogC,EAAAO,YAAA,MAAA,CAAAN,MACS,CAAC2tB,EAAK8mK,eAAerkM,MAAAhuB,EAAA,GAAUurD,EAAK0pK,oBAAoBE,aAAe5pK,EAAK6tK,kBACnFx/L,MAAO2xB,EAAK6tK,gBAAkB,CAAEr7L,MAAA,GAAA5F,OAAU2lM,EAAA,OAAmB,CAAC,GAE7D,CAAAvyK,EAAK2J,YAAY,UAAY3J,EAAKznC,EAAEynC,EAAK9zB,aAAazJ,cA4GtBmG,GAG7C,ICjOK,SAASg3J,GAAcC,GAC5B,OAAKA,EACElnI,MAAMnkD,OAAOqrL,IAASA,YAAUA,EAAA,MADrBA,CAEpB,CAEA,SAAwBgjD,GAASrnO,GACzB,IAAA+rE,EAAyF7nC,EAAAA,OAAOlkC,GAA9FuE,EAAMwnE,EAANxnE,KAAM2zC,EAAA6zB,EAAA7zB,SAAUykK,EAAQ5wI,EAAR4wI,OAAQtsK,EAAA07B,EAAA17B,MAAOs5K,EAAe59I,EAAf49I,cAAe1yL,EAAA80C,EAAA90C,OAAQw/C,EAAW1K,EAAX0K,UAAWizI,EAAA39I,EAAA29I,kBAEzE6H,EAA8ClG,KAAtCC,EAAAiG,EAAAjG,eAAgBgC,EAAkBiE,EAAlBjE,kBAChBlpJ,EAAmB/yC,KAAnB+yC,eACA1zC,EAAiBP,GAAU,QAASnwB,EAAMof,QAA1CsR,aACF42M,EAAY3vN,EAAAA,UAAS,WAAA,IAAA4vN,EAAA,OAAoBA,QAApBA,EAAMhjO,EAAKpL,aAASouO,IAAAA,EAAAA,EAAA72M,EAAav3B,MAAMoL,QAE5DijO,EAAe7vN,EAAAA,UAAS,WAAA,MAAM,CAClC2zM,EAAexlM,MAAA7sB,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAEZmrE,CAAAA,EAAAA,EAAekjK,EAAUnuO,OAA6B,WAApBmuO,EAAUnuO,OAC5CmyN,EAAepzK,SAAWA,EAAS/+C,OACnCmyN,EAAeU,QAAUrP,EAAOxjN,OAChCmyN,EAAej7K,MAAQA,EAAMl3C,OAC7BmyN,EAAex5L,QAAU9xB,EAAM8xB,SAC/Bw5L,EAAekB,cAAgBxsN,EAAM+oN,kBACrCuC,EAAe9B,kBAAoBxpN,EAAMwpN,mBACzC8D,EAAkB3D,EAAcxwN,OAAiC,WAAxBwwN,EAAcxwN,WAItDsuO,EAAqB9vN,EAAAA,UAAS,WAAA,MAAO,CACzCsf,OAAQmtJ,GAAcntJ,EAAO99B,OAC7Bs9E,UAAW2tG,GAAc3tG,EAAUt9E,OACnC,IAEIuuO,EAAqB/vN,EAAAA,UAAS,WAAA,MAAO,CACzCqf,MAAOotJ,GAAcslC,EAAkBvwN,OACvC,IAEK,MAAA,CACLquO,aAAAA,EACApjK,eAAAA,EACAsjK,mBAAAA,EACAD,mBAAAA,EAEJ,okBCPA,IAAAE,GAAevyM,kBAAgB,CAC7Bx9B,KAAM,QAENoI,MAAO,CACL0kB,YAAa3rB,OACbk5N,yBAA0Bl5N,OAC1B4+N,cAAe71L,QACf8lM,YAAa9lM,QACb20C,UAAW,CAAC19E,OAAQC,QACpBi+B,OAAQ,CAACl+B,OAAQC,QACjBm+N,uBAAwBryN,IACxBuxN,YAAa/+N,OACb4gD,SAAUpW,QACV+vL,iBAAkB/vL,QAClBsnL,UAAWtnL,QACXhd,OAAQ,CAAC/rB,OAAQe,UACjB03N,kBAAmBl6N,OACnBm6N,OAAQ96N,MACRkxO,mBAAoBvwO,OACpBi7N,iBAAkBj7N,QAGpB+9B,eAAMr1B,EAAAuiC,GAA4C,IAAvBpC,EAAAoC,EAAApC,MACnB2nM,EAAW53M,EAAAA,MACX63M,EAAa1c,KACX6B,EAAuC6a,EAAvC7a,mBAAoB5B,EAAmByc,EAAnBzc,eACtB0c,EAAerwN,EAAAA,UAAS,WAAA,MAAM,CAClCu1M,EAAmB1lB,OAAAvuM,EAAAA,EAAAA,KAEhBi0N,EAAmBE,MAAQtrL,QAAQ9hC,EAAMy2E,WAAaz2E,EAAMi3B,SAC5Dq0L,EAAepzK,SAAWl4C,EAAMk4C,UAAYl4C,EAAM6xN,kBAClD3E,EAAmBb,eAAiBrsN,EAAM6xN,sBAKzCoW,EAAiBtwN,EAAAA,UAAS,WAC9B,IAAM3S,EAAkC,CAAA,EAElCkjO,EAAiB,SAAC5f,GACtB,IAAA,IAAS7xN,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAClD,IAAMwoC,EAAOqpL,EAAQ7xN,GACjB,GAAAwoC,EAAK2a,QAAU,EACjB,IAAA,IAASrf,EAAI9jC,EAAI,EAAG8jC,EAAI9jC,EAAIwoC,EAAK2a,QAASrf,IACpC+tL,EAAQ/tL,KACNv1B,EAAAsjN,EAAQ/tL,GAAG+4L,SAAU,GAK3Br0L,EAAKC,UACPgpM,EAAejpM,EAAKC,SAExB,GAGI9R,EAAOptB,EAAMyxN,OAAO,GAGnB,OAFPyW,EAAe96M,GAERpoB,CACT,IAaO,OAAAwxB,GAAAA,GAAA,CAAA,EACFuxM,GAAA,CAAA,EAAA,CACHE,eAAAA,EACAD,aAAAA,EACAF,SAAAA,EACA3nM,MAAAA,EACAgoM,aAjBmB,SAAC9O,GAEpB,IADA,IAAIr/M,EAASq/M,EACNr/M,GAAQ,CAAA,IAAAouN,EAEb,WAAAA,EADApuN,EAASA,EAAOkkB,yBACO,UAAnBkqM,EAAQluM,iBAARkuM,IAAmBA,GAAnBA,EAAmBjuM,SAAA/I,GAAAA,OAAYpxB,EAAM0kB,YAAmB,WAC1D,KAEJ,CACO,OAAA1K,IAWX,EAEA+qB,OAAS,WAAA,IAELoyL,EACAd,EAGMgS,EACAC,EAPD9jL,EAAA3jD,KA0GP,OAAA+1B,EAAAA,YAAA,QAAA,CAAA1G,IAAA,WAAA2G,MAC+Bh2B,KAAKmnO,cAC/BO,EA1GHpR,EA0GoBt2N,KAAKs2N,uBAzGzBd,EAyGiDx1N,KAAKw1N,YAtGhDgS,MAAkBvjO,IAClBwjO,EAAsB9jL,EAAKgtK,kBAAkBvG,qBAC5CzmK,EAAKitK,OAAOzsN,KAAI,SAACo0C,EAAKqvE,GAC3B,IAAM+/G,EAAQpvL,EAAIp0C,KAAI,SAACq6I,EAA0BpkJ,GAAkB,IAAA0vN,EAE7D,GAAAnmK,EAAKyjL,eAAe5oF,EAAIi0E,QAAgB,OAAA,KACtC,IAAA9J,EAAoB8e,EAAoB7jO,IAAI46I,GAClD,GAAc,IAAVpkJ,GAAeuuN,EAAkB4B,QAAU,EAC7C,IAAA,IAAS7wL,EAAIkuF,EAAW,EAAGluF,EAAIkuF,EAAW+gG,EAAkB4B,QAAS7wL,IACnE8tM,EAAYjkO,IAAIogD,EAAKitK,OAAOl3L,GAAG,IAAI,GAGvC,IAvIuBhd,EAuIjBkrN,EAAWvR,GAAqB73E,EAAKpkJ,EAAOk8N,EAAwB3yK,EAAKmpK,sBACzE+a,EAAY,CAChBrpF,IAAAA,EACAgyE,SAAUp2N,EACVm+C,IAAK,CAAC,EACNqvE,UAAU,GAEN45G,EAAgBG,GAAiBnjF,EAAIjlH,UAAA5D,GAAAA,GAAA,CAAA,EAAgBkyM,GAAA,GAAA,CAAW5sO,KAAM,QACtE6sO,EAAkBnG,GAAiBnjF,EAAIupF,YAAApyM,GAAAA,GAAA,CAAA,EAAkBkyM,GAAA,GAAA,CAAW5sO,KAAM,QAC1E+sO,EAAoBrkL,EAAK+tK,iBAAiBh1L,MAAsB,SAAd8hH,EAAI+tE,MACtD0b,EAAqBtkL,EAAK+tK,iBAAiB90L,OAAuB,UAAd4hH,EAAI+tE,MACxD2b,EAAcvkL,EAAKojL,eAAiBiB,GAAqBC,GACzDzR,EAAY,CAChBoR,EAAS9xM,QACT0rM,EACAsG,EAAA1vO,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAGGurD,EAAK0oK,mBAAmBC,WAAakb,EAAY5jO,IAAI46I,IAAG,GAAAjuH,OACrDozB,EAAK9/B,YAAyB0M,eAAAA,OAAAiuH,EAAIi0E,QAAWj0E,EAAIi0E,QACpD9uK,EAAKyoK,eAAe5tE,EAAInuG,OAASmuG,EAAInuG,OAAuB,SAAdmuG,EAAInuG,OAElDsT,EAAK2rK,sBAAsBK,WAAauY,IAIvC/xM,EADiC2zL,QAAfA,EAACtrE,EAAIngH,gBAAJyrL,IAAcA,GAAdA,EAAcn0N,QACzBwyO,MAAmB3S,IAAAA,EAAch3E,EAAIi0E,aAA6C,YAAhC+C,aAAAA,EAAAA,EAAch3E,EAAIi0E,QAAc,MAC1F1gM,QAAe61M,CAAAA,EAAAA,EAAS51M,OAAS,QAAKmE,MAAAA,IACtCiyM,EAAU99K,GAAY3G,EAAKrkB,MAAOk/G,EAAKpkJ,GACvCiuO,EACJ1kL,EAAK4kK,YAAc2f,EACf,CACE9wI,YAAa,SAACz9F,GACQ,IAAA2uO,EAAAC,EAGpB,GAHI5kL,EAAK4kK,YACkB+f,QAAzBA,EAAA3kL,EAAKqjL,0BAAoBuB,IAAAD,GAAAC,QAAAA,EAAzBD,EAAyBxT,yBAAzByT,IAAyBA,GAAzBA,EAAA3xO,KAAA0xO,EAA6C3uO,EAAG6kJ,EAAKpkJ,KAElD8tO,EACG,IAAA3lM,EAAQntB,YAAW,WAAM,IAAAozN,EAEtB,QAAAA,EADQ7kL,EAAKsjL,SAAS93L,iBAAiB,MACvC/0C,UAAA,IAAAouO,GAAAA,EAAQlpL,gBAAgB,aAC/B5pC,aAAa6sB,KACZ,GAEP,EACAkmM,YAAa,SAAC9uO,GAAkB,IAAA+uO,EAAAC,EAC9BhlL,EAAK4kK,YAAsCmgB,QAAzBA,EAAA/kL,EAAKqjL,0BAAoB2B,IAAAD,GAAAC,QAAAA,EAAzBD,EAAyBrU,yBAAzBsU,IAAyBA,GAAzBA,EAAA/xO,KAAA8xO,EAA6C/uO,EAAG6kJ,GACpE,GAEF,GACAp2H,EAAUpsB,EAAWwiJ,EAAI0yE,eAAiB1yE,EAAI0yE,cAAct0M,IAAG,CAAE4hI,IAAAA,EAAKgyE,SAAUp2N,SAAW,EAC3F+2N,OAAmC,IAAtB3yE,EAAI0yE,cAA8BjwL,QAAQu9G,EAAI0yE,eAAiBjwL,QAAQu9G,EAAInxG,UACxF1L,GAAS3lC,EAAWwiJ,EAAI78G,OAAS68G,EAAI78G,MAAMhM,GAAAA,MAAKkyM,GAAA,CAAA,EAAA,CAAW5sO,KAAM,QAAUujJ,EAAI78G,QAAU,GAI/F,OAHI68G,EAAIzlG,QAAU,IAChBpX,EAAMoX,QAAUylG,EAAIzlG,SAEtBhjB,EAAAO,iBAAAoN,aAAA,CAAA/rC,IAES6mJ,EAAIi0E,OACT,cAAaj0E,EAAIi0E,OAAAz8L,MACVwgM,EAAAxkM,MACAD,GACH4P,EACAgnL,EACA0f,IAEJtyM,EAAAA,YAAA,MAAA,CAAAC,MAAY2tB,EAAK8mK,eAAeM,aAC7B,CAAAoG,EAAAp7L,EAAAO,YAAAy5L,GAAA,CAAAlkK,UAAA,SAAA5nC,OAGW0/B,EAAK1/B,SAAW0/B,EAAKsjL,SAAW,WAAA,OAAMtjL,EAAK2jL,aAAa3jL,EAAKsjL,SAAY,OAAA,GACjFjX,eAAgB5nM,GAAY,WAAA,OAAMA,CAClC,EAAA85I,aAA2C,WAA7B1qK,EAAOgnJ,EAAI0yE,eAA6B1yE,EAAI0yE,mBAAgB,EAC1EzpJ,iBAAkB9jB,EAAKytK,yBAAAvtM,YACV8/B,EAAK9/B,cAhNLnH,EAkNZ0rN,EAlNY,mBAAA1rN,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAkNZ0rN,EAAA,CAAA9lN,QAAA,WAAA,MAAA,CAAA8lN,EAAA,KAGHA,KAKV,IACA,OAAAryM,EAAAA,YAAA,KAAA,CAAAp+B,IAAgBiwH,GAAA,CAAW+/G,GAC7B,MAQJ,ukBC3MF,IAAAiB,GAAer0M,kBAAgB,CAC7Bx9B,KAAM,QAENoI,MAAO,CACLupN,OAAQxwN,OACR4+N,cAAe71L,QACfq1L,uBAAwBryN,IACxB4jN,SAAU/xN,MACV2xN,QAAS3xN,MACT0yN,cAAe,CAAC1yN,MAAOW,OAAQwC,UAC/BwvN,aAAc,CAAC3yN,MAAOoC,OAAQzB,OAAQwC,UACtCu8N,YAAa,CAAC/+N,QACduxN,cAAe,CAAC9vN,OAAQe,UACxB2vN,0BAA2B3vN,SAC3B4vO,cAAe5nM,SAIjBzM,eAAMr1B,EAAmBsqC,GACvB,IAAM6jB,EAAc5tB,KACdwnM,EAAa1c,KACnBt/I,EAAiE7nC,SAAOlkC,GAajE,OAAAw2B,GAAAA,GAAA,CACL0sM,aAbuBD,GADPl3J,EAAV28I,SAAU38I,EAAAu8I,UAASiB,OAAkCx9I,EAA1B09I,2BAC3ByZ,cAcH6E,GAAA,GAAA,CACH4B,gBAdsB,SAACjrN,GACjB,IAAE2gI,EAAa3gI,EAAb2gI,IAAKjmG,EAAQ16B,EAAR06B,IACT,OAAAv8C,EAAWwiJ,EAAIuqF,MACVvqF,EAAIuqF,KAAKnsN,EAAAA,EAAGiB,GAEjBtG,GAASinI,EAAIuqF,OAASt/L,EAAQnK,MAAMk/G,EAAIuqF,MACnCt/L,EAAQnK,MAAMk/G,EAAIuqF,MAAMlrN,IAAM2gI,EAAIuqF,KAEpCvqF,EAAIuqF,MAAQnlO,GAAI20C,EAAKimG,EAAIi0E,SAOhCnlK,YAAAA,GAEJ,EAEAppB,OAAS,WAAA,IAAA8kM,EAAArlL,EAAA3jD,KACP,IAAKA,KAAKynN,QAAgB,OAAA,KAE1B,IAAM0f,EAAe,CAACnnO,KAAKwsN,mBAAmB/8C,OAAQr3K,KAAG4H,KAAKwsN,mBAAmBD,MAAQvsN,KAAK82N,gBACxFmS,EAAqBD,UAALhpO,KAAK6nN,gBAALmhB,IAAKA,OAALA,EAAAA,EAAe7kO,KAAI,SAACo0C,EAAKqvE,GACvC,IAAAk8G,EAAe7C,GAAoBt9K,EAAK6kK,cAAe,CAAEjwK,IAAAA,EAAKqvE,SAAAA,EAAU3sH,KAAM,SAE9EumO,EAAgBH,GACpB19K,EAAK8kK,aACL,CAAElwK,IAAAA,EAAKqvE,SAAAA,EAAU3sH,KAAM,QACvB0oD,EAAK+kK,QAAU,MAEjB,OAAA3yL,cAAA,KAAA2N,EAAA2qC,WACUy1J,EAAc,CAAAnsO,IAAKiwH,EAAU5xF,MAAOwrM,IACzC79K,CAAAA,EAAK8jK,QAAQtjN,KAAI,SAACq6I,EAAKgyE,GAAa,IAAA0Y,EAE7B5E,EAA4B,CAAA,EAC9BC,EAAY,KACZ,GAAA5gL,EAAK0+K,aAAa3+N,KAAM,CAAA,IAAA8gO,EAAAC,EACpB/B,EAAUR,GAAW3pL,EAAKoL,EAAK+kK,OAAQlqE,EAAIi0E,OAAQjC,GAIzD,YAFAgU,EADAD,EAAY5gL,EAAK0+K,aAAaz+N,IAAI8+N,IAAY,CAAA,SAC9C,IAAA8B,OAAA,EAAAA,EAAWja,SAAU,IAAM+Z,EAAU/Z,QAAUga,EAAUha,kBACzDka,EAAAF,SAAA,IAAAE,OAAA,EAAAA,EAAW1rL,SAAU,IAAMurL,EAAUvrL,QAAUwrL,EAAUxrL,SACrDwrL,EAAU5B,QAAgB,OAAA,IAChC,CACA,IAAM+B,EAAWrO,GACf73E,EACAgyE,EACA7sK,EAAK2yK,uBACL3yK,EAAKmpK,sBAED96L,EAAgB2D,MAAK+uM,EAAS1yM,OAIpC,OAHuBk3M,QAAnBA,EAAAvlL,EAAK6xK,mBAAL0T,IAAmBA,GAAnBA,EAAmB1qF,EAAIi0E,UACzBzgM,EAAMmE,MAAQ5F,GAAAA,OAAGozB,EAAK6xK,YAAYh3E,EAAIi0E,QAAA,OAExC18L,cAAA,KAAA2N,EAAA2qC,WAAA14C,GAAA,CACYh+B,IAAK6mJ,EAAIi0E,QAAW6R,GAAU,CAAAtuM,MAAU0uM,EAAS5uM,QAAA9D,MAAgBA,IACxE2xB,CAAAA,EAAKmlL,gBAAgB,CACpBvwL,IAAAA,EACAqvE,SAAAA,EACA42B,IAAAA,EACAgyE,SAAAA,KAIP,KAGP,IACMxI,EAAgBhoN,KAAKstD,YAAY,iBAEvC,OAAK06J,GAAmBhoN,KAAK6nN,UAAa7nN,KAAK6nN,SAASlyN,OACxDogC,EAAAA,YAAA,QAAA,CAAA1G,IAAA,aAAA2G,MAEiCmxM,EAAAn1M,MAAqB,CAAEs8C,WAAYtuE,KAAK6oO,cAAgB,SAAW,YAC/F7gB,CAAAA,GAAAjyL,EAAAO,YAAA,KAAA,CAAAN,MACYh2B,KAAKqtN,oBAAoBC,MAClC,CAAAv3L,EAAAO,YAAA,KAAA,CAAAyiB,QAAa/4C,KAAKynN,QAAQ9xN,oCACZqK,KAAKqtN,oBAAoBG,kBAAmBxF,CAAAA,QAI7DihB,IAXmE,IAc1E,ICxHc,SAAAE,GAAgBhqO,EAAuB03N,GAC/C,IAAA3rJ,EAAwF7nC,SAAOlkC,GAA7F0E,IAAAA,KAAMyjN,EAAep8I,EAAfo8I,cAAeF,EAAAl8I,EAAAk8I,cAAeC,IAAAA,qBAAsBM,EAAwBz8I,EAAxBy8I,wBAC5DyhB,EAA2B/5M,EAAAA,KAAM,GACjCg6M,EAAiBh6M,OAAI,GACrBi6M,EAAsBj6M,OAAI,GAC1Bk6M,EAA0Bl6M,EAAAA,KAAM,GAOtCgtD,EAAAvgE,GALoC2nD,GAClC2jJ,EACAC,EAAqB/uN,MACrB6G,EAAM4pN,eACN,iBACF,GALOygB,EAAYntJ,EAAA,GAAAotJ,EAAaptJ,EAAA,GA8E1BqtJ,EAAmB,WAEd,IADT,IAAMn9M,EAAkD,GAC/C32B,EAAI,EAAGF,EAAMmO,EAAKvL,MAAM3C,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAA2iD,EAAM10C,EAAKvL,MAAM1C,GACjBusO,EAAWv+N,GAAI20C,EAAKp5C,EAAMupN,QAC5B8gB,EAAWlxO,MAAMqe,SAASwrN,IAC5B51M,EAAKhqB,KAAK,CAAEg2C,IAAAA,EAAKqvE,SAAUhyH,GAE/B,CACO,OAAA22B,GAGHo9M,EAAiB,SAACpjL,EAAoCkpC,GAC1D,GAAK63H,EAAchvN,MAAnB,CACM,IAAEigD,EAAegO,EAAfhO,IAAKn+C,EAAUmsD,EAAVnsD,MACP+nO,EAAWv+N,GAAI20C,EAAKp5C,EAAMupN,QAE5B2gB,EAAe/wO,OACjB8wO,EAAyB9wO,MAAQ8B,EApCX,SAACmsD,GAChB9tB,SAAA8rB,eAAeC,kBAMxB,IALM,IAAEjM,EAAQgO,EAARhO,IACF86B,EAAe+1J,EAAyB9wO,MACxC83K,EAAa5wK,KAAK0U,IAAIq1N,EAAwBjxO,MAAO+6E,GACrD6Q,EAAW1kF,KAAKC,IAAI8pO,EAAwBjxO,MAAO+6E,GACnDu2J,EAA8D,GAC3Dh0O,EAAIw6K,EAAYx6K,GAAKsuF,EAAUtuF,IACrBg0O,EAAArnO,KAAK,CAAEg2C,IAAK10C,EAAKvL,MAAM1C,GAAIgyH,SAAUhyH,IAElD,IAAAi0O,EAAmBD,EAAiBzlO,KAAI,SAACi6B,GAAA,OAASx6B,GAAIw6B,EAAKma,IAAKp5C,EAAMupN,WAC5E+gB,EAAcI,EAAkB,CAC9BC,cAAeF,EACf3uO,KAAM,SACN8uO,eAAgBxxL,IAuBhByxL,CAAkBzjL,GAClB+iL,EAAoBhxO,OAAQ,GACnBkxO,EAAWlxO,MAAMqe,SAASwrN,IAA+B,YAAlB1yI,aAAA,EAAAA,EAAO9tC,QAClDgmK,EAAwBrvN,SA7FV,SAACiuD,GAChB,IAAEhO,EAAegO,EAAfhO,IAAKn+C,EAAUmsD,EAAVnsD,MACP+nO,EAAWv+N,GAAI20C,EAAKp5C,EAAMupN,QAC5B,GAAwB,WAAxBpB,EAAchvN,MAAoB,CAC9B,IAAAuxO,EAAmBL,EAAWlxO,MAAM3C,OAAS,EAAI,CAACwsO,GAAY,GACpEsH,EAAcI,EAAkB,CAC9B5uO,KAAM,WACN6uO,cAAe,CAAC,CAAEvxL,IAAAA,EAAKqvE,SAAUxtH,IACjC2vO,eAAgBxxL,GAEpB,MAAA,GAAmC,aAAxB+uK,EAAchvN,MAAsB,CAGpC,IAFT,IAAMuxO,EAAmBL,EAAWlxO,MAAMinC,QAAO,SAACrjB,GAAA,OAAMA,IAAMimN,KACxD2H,EAA2D,GACxDl0O,EAAI,EAAGF,EAAMmO,EAAKvL,MAAM3C,OAAQC,EAAIF,EAAKE,IAAK,CAC/C2iD,IAAAA,EAAM10C,EAAKvL,MAAM1C,GACnBi0O,EAAiBlzN,SAAS/S,GAAI20C,EAAKp5C,EAAMupN,UAC3CohB,EAAcvnO,KAAK,CAAEg2C,IAAAA,EAAKqvE,SAAUhyH,GAExC,CACA6zO,EAAcI,EAAkB,CAC9B5uO,KAAM,WACN6uO,cAAAA,EACAC,eAAgBxxL,GAEpB,EAuEI0xL,CAAe1jL,GACf6iL,EAAyB9wO,MAAQ8B,KArElB,SAACmsD,GACd,IAAEhO,EAAQgO,EAARhO,IACF4pL,EAAWv+N,GAAI20C,EAAKp5C,EAAMupN,QAC5B,GAAwB,WAAxBpB,EAAchvN,MACFmxO,EAAA,CAACtH,GAAW,CACxB2H,cAAe,CAAC,CAAEvxL,IAAAA,EAAKqvE,SAAUrhE,EAAInsD,QACrC2vO,eAAgBxxL,EAChBt9C,KAAM,eAEH,CAGI,IAFT,IAAM4uO,EAAmBL,EAAWlxO,MAAMi4B,OAAO4xM,GAC3C2H,EAA2D,GACxDl0O,EAAI,EAAGF,EAAMmO,EAAKvL,MAAM3C,OAAQC,EAAIF,EAAKE,IAAK,CAC/C2iD,IAAAA,EAAM10C,EAAKvL,MAAM1C,GACnBi0O,EAAiBlzN,SAAS/S,GAAI20C,EAAKp5C,EAAMupN,UAC3CohB,EAAcvnO,KAAK,CAAEg2C,IAAAA,EAAKqvE,SAAUhyH,GAExC,CACA6zO,EAAcI,EAAkB,CAC9BC,cAAAA,EACAC,eAAgBxxL,EAChBt9C,KAAM,UAEV,EAkDEivO,CAAa3jL,GACb6iL,EAAyB9wO,MAAQ8B,EAjBT,GA2CtB+vO,EAA0B,WAC9Bb,EAAoBhxO,OAAQ,GAGxB8xO,EAAuB,SAACzwO,GAAqB,IAAAi+G,EAhBxByyH,EACnBC,EACAR,EAZkBS,EA2BlB/8J,EAAO7zE,EAAE6zE,eAAQoqC,EAAAj+G,EAAEhC,wBAAFigH,EAAOpxC,QAE1B,GAAAowC,GAAe5/G,KAAKw2E,GAAO,CAC7B7zE,EAAEwzE,iBACI,IAAA/yE,EAAQoF,KAAK0U,IAAIrQ,EAAKvL,MAAM3C,OAAS,EAAGyzO,EAAyB9wO,MAAQ,GACnD,WAAxBgvN,EAAchvN,MACDqxO,EAAA,CAAEpxL,IAAK10C,EAAKvL,MAAM8B,GAAQA,MAAAA,EAAOT,EAAAA,GAAK,CAAEgoD,OAAQ,WAE/DynL,EAAyB9wO,MAAQ8B,CAE1B,MAAA,GAAAy8G,GAAa7/G,KAAKw2E,GAAO,CAClC7zE,EAAEwzE,iBACF,IAAM/yE,EAAQoF,KAAKC,IAAI,EAAG2pO,EAAyB9wO,MAAQ,GAC/B,WAAxBgvN,EAAchvN,MACDqxO,EAAA,CAAEpxL,IAAK10C,EAAKvL,MAAM8B,GAAQA,MAAAA,EAAOT,EAAAA,GAAK,CAAEgoD,OAAQ,WAE/DynL,EAAyB9wO,MAAQ8B,CAE1B,MAAA,GAAA68G,GAAUjgH,KAAKw2E,GAAO,CAC/B7zE,EAAEwzE,iBAEF,IAE+Bq9J,EAFzBpwO,EAAQgvO,EAAyB9wO,MAEvC,GAAIgxO,EAAoBhxO,MACI,QAA1BkyO,EAAArrO,EAAM6pN,yBAAoB,IAAAwhB,GAA1BA,EAAA5zO,KAAAuI,EAA0B,CACxBwiD,OAAQ,uBACRmoL,cAAeJ,WAEnB,GAAY/hB,EAAwBrvN,MAE7B,CAAA,IAAAmyO,EACqB,QAA1BA,EAAAtrO,EAAM6pN,yBAAoB,IAAAyhB,GAA1BA,EAAA7zO,KAAAuI,EAA0B,CACxBwiD,OAAQ,sBACRmoL,cAAeJ,KAEnB,MANEC,EAAe,CAAEpxL,IAAK10C,EAAKvL,MAAM8B,GAAQA,MAAAA,EAAOT,EAAAA,GAOzC,MAAAw9G,GAAUngH,KAAKw2E,IAExB67J,EAAe/wO,OAAQ,EACvBixO,EAAwBjxO,MAAQ8wO,EAAyB9wO,OAChD0+G,GAAWhgH,KAAKw2E,IAAS4pC,GAAUpgH,KAAKw2E,IAlEnDi8J,EAAc,GAAI,CAChBK,cAAe,GACfC,oBAAgB,EAChB9uO,KAAM,qBAERsvO,EAAAprO,EAAM6pN,gCAANuhB,EAAA3zO,KAAAuI,EAA0B,CAAEwiD,OAAQ,QAASmoL,cAAe,KAC5DV,EAAyB9wO,OAAQ,EA+DP6xO,KACf9yH,GAAQrgH,KAAKw2E,KA5DlB88J,EAAazmO,EAAKvL,MAAM6L,KAAI,SAACi6B,UAASx6B,GAAIw6B,EAAMj/B,EAAMupN,WACtDohB,EAAgBjmO,EAAKvL,MAAM6L,KAAI,SAACo0C,EAAKqvE,GAAc,MAAA,CAAErvE,IAAAA,EAAKqvE,SAAAA,EAAW,IAC3E6hH,EAAca,EAAY,CACxBR,cAAAA,EACAC,oBAAgB,EAChB9uO,KAAM,WAEkB,QAA1BovO,EAAAlrO,EAAM6pN,yBAAoB,IAAAqhB,GAA1BA,EAAAzzO,KAAAuI,EAA0B,CAAEwiD,OAAQ,aAAcmoL,cAAAA,IAClDV,EAAyB9wO,OAAQ,GAyD5B2+G,GAAUjgH,KAAKw2E,IACM28J,KAItBO,EAAqB,SAAC/wO,GAAqB,IAAAgxO,EACzCn9J,EAAO7zE,EAAE6zE,eAAQm9J,EAAAhxO,EAAEhC,wBAAFgzO,EAAOnkK,QAC1B2wC,GAAUngH,KAAKw2E,KACjB67J,EAAe/wO,OAAQ,IAcpB,MAAA,CACLkxO,WAAAA,EACAG,eAAAA,EACAiB,6BAbmC,WAChCpyM,GAAAq+L,EAASv+N,MAAO,UAAW8xO,GAC3B5xM,GAAAq+L,EAASv+N,MAAO,QAASoyO,IAY5BG,gCATsC,WAClC9xM,GAAA89L,EAASv+N,MAAO,UAAW8xO,GAC3BrxM,GAAA89L,EAASv+N,MAAO,QAASoyO,IASjC,okBCpNyB,SAAA1lF,GAAAtoI,GAAA,MAAA,mBAAAA,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,EAAA,CAGYsmN,GAAc7+N,KAAI,SAAC+X,uBAAaA,EAAA,IAAKqU,OADzC,CAAC,cAAe,aAAc,SAAU,UAAW,YAOpF,IAAAu6M,GAAev2M,kBAAgB,CAC7Bx9B,KAAM,aAENoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CAIHgmO,kBAAmBlsO,SACnB8xO,oBAAqB9xO,SACrB8tO,YAAa9lM,UAGf4O,MAAO,CAAC,uBAERrb,eAAMr1B,EAAuBsqC,GAC3B,IAAQ26E,EAAa/gF,EAAAA,OAAOlkC,GAApBilH,SACF92D,EAAc5tB,KACdm3L,EAAWxnM,EAAAA,MACX0nM,EAAc1nM,EAAAA,MACd27M,EAAe37M,EAAAA,MACf47M,EAAmB57M,EAAAA,MACnB67M,EAAkB77M,MAAI,GAC5BqhM,EACElG,KADM3mM,EAAa6sM,EAAb7sM,YAAa+rM,EAAAc,EAAAd,qBAAsBzC,IAAAA,mBAAoB1C,EAAgBiG,EAAhBjG,eAAgBqC,EAAA4D,EAAA5D,qBAG/Eqe,EAAiF3E,GAASrnO,GAAlFwnO,EAAcwE,EAAdxE,aAAcpjK,EAAA4nK,EAAA5nK,eAAgBqjK,IAAAA,mBAAoBC,EAAmBsE,EAAnBtE,mBAClDh3M,EAAiBP,GAAU,QAASnwB,EAAMof,QAA1CsR,aACRu7M,EAAwD3a,GAAetxN,GAA/D6xN,EAAkBoa,EAAlBpa,iBAAkBL,EAAAya,EAAAza,kBAAmBC,EAAOwa,EAAPxa,OACvCgG,EAAe9/M,EAAAA,UAAS,WAAA,IAAAu0N,EAAA,OAA+B,QAAzBA,EAAA1a,EAAkBr4N,aAAO,IAAA+yO,OAAA,EAAzBA,EAAyBhhB,cAAelrN,EAAMsoN,WAC5Egf,EAAY3vN,EAAAA,UAAS,WAAA,IAAAw0N,EAAA,OAAoBA,QAApBA,EAAMnsO,EAAMuE,YAAQ4nO,IAAAA,EAAAA,EAAAz7M,EAAav3B,MAAMoL,QAElE6nO,ECpEY,SAAqBzmH,EAA4BV,GAC/D,IAAMyB,EAAax2F,EAAAA,MACbm8M,EAAcn8M,OAAI,GAElB02F,EAAiB,WACrB,GAAK3B,EAAS9rH,OAAUwsH,EAASxsH,QAASutH,EAAWvtH,MAArD,CACAkzO,EAAYlzO,OAAQ,EACpB,IAAMksH,EAAK77C,GACTm8C,EAASxsH,MACT,MACA,WACEkzO,EAAYlzO,OAAQ,CACtB,GACA,IAEFutH,EAAWvtH,MAAQksH,CAVyC,GAsBvD,OATP9vF,EAAAA,UAAUqxF,GAEV3B,EAAS9rH,OAASuoC,QAAM,CAACujF,EAAUU,GAAWiB,GAE9Cp1E,EAAAA,iBAAgB,WAAM,IAAA86L,EAAAC,EACftnH,EAAS9rH,gBACHmzO,EAAA5lH,EAAAvtH,aAAA,IAAAmzO,GAAmBC,QAAnBA,EAAAD,EAAOhjK,iBAAPijK,IAAmBA,GAAnBA,EAAA90O,KAAA60O,EAAmB3mH,EAASxsH,OACzC,IAEO,CACLkzO,YAAAA,EAEJ,CDsC4BG,CAAqB9U,EAAUzyG,GAA/ConH,EAAAD,EAAAC,YAGFzQ,EAAqB1rM,EAAAA,MACrB2rM,EAA2B3rM,EAAAA,MAC3B4rM,EAAoB5rM,EAAAA,MACpB6rM,EAAuB7rM,EAAAA,MAGvBu8M,EAsBFjV,GAASx3N,EAAOsqC,EAASmtL,EAAc,CACzCmE,mBAAAA,EACAC,yBAAAA,EACAC,kBAAAA,EACAC,qBAAAA,IAzBAlE,EAAA4U,EAAA5U,eACAC,EAAA2U,EAAA3U,uBACAf,EAAA0V,EAAA1V,WACAgB,EAAA0U,EAAA1U,cACAzF,EAAAma,EAAAna,gBACAqF,EAAA8U,EAAA9U,cACAtF,EAAAoa,EAAApa,gBACA2F,EAAAyU,EAAAzU,cACA3B,EAAAoW,EAAApW,YACA9D,EAAAka,EAAAla,iBACA4E,EAAAsV,EAAAtV,uBACAt6C,EAAA4vD,EAAA5vD,QACAqgD,EAAAuP,EAAAvP,aACAxK,EAAA+Z,EAAA/Z,iBACAxuC,EAAAuoD,EAAAvoD,gBACAw5C,EAAA+O,EAAA/O,uBACAnD,EAAAkS,EAAAlS,wBACA/H,EAAAia,EAAAja,eACAC,GAAAga,EAAAha,kBACAkL,GAAA8O,EAAA9O,uBACAhL,GAAA8Z,EAAA9Z,6BASI+Z,GAWFjO,GAASz+N,GAVX0+N,GAAAgO,GAAAhO,eACAC,GAAA+N,GAAA/N,eACAC,GAAA8N,GAAA9N,uBACAC,GAAA6N,GAAA7N,cACAC,GAAA4N,GAAA5N,gBACAC,GAAA2N,GAAA3N,gBACAC,GAAA0N,GAAA1N,oBACAK,GAAAqN,GAAArN,mBACAuC,GAAA8K,GAAA9K,mBACAjC,GAAA+M,GAAA/M,0BAGIgN,GAAoE9O,GAAc79N,EAAOsqC,GAAvF4lI,MAAAA,WAAY4tD,GAAiB6O,GAAjB7O,gBAAiBC,GAAA4O,GAAA5O,eAAgBrW,MAAAA,iBAG/CmgB,GAAqB3V,GAAgB,CACzCG,gBAAAA,EACAC,gBAAAA,EACAC,iBAAAA,EACAC,eAAAA,EACAC,kBAAAA,GACAC,iBAAAA,EACAC,6BAAAA,GACA7I,qBAAsB9pN,EAAM8pN,uBAEtB8I,GAAoDiV,GAApDjV,cAAekB,GAAqC+T,GAArC/T,gBAAiBZ,GAAoB2U,GAApB3U,gBAElC0Z,GAA0Bj1N,EAAAA,UAAS,WAAA,MAAM,CAC7C6vN,EAAaruO,MAAAF,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAEVqyN,EAAeY,YAAcyL,EAAcx+N,OAC3CmyN,EAAea,YAAc6L,EAAc7+N,OAC3CmyN,EAAec,cAAgBiG,EAAgBl5N,OAC/CmyN,EAAee,eAAiBwF,EAAiB14N,OACjDw0N,EAAqBG,WAAayE,EAAiBh1L,MACnDowL,EAAqBI,YAAcwE,EAAiB90L,OACpD6tL,EAAeC,qBAAuBvrN,EAAMopN,WAAA,GAAAh4L,OACzC1M,0BAAkC1kB,OAAAA,EAAMmoN,eAAkBnoN,EAAMmoN,mBAIlE0kB,GAAkBl1N,EAAAA,UAAS,WAAA,MAAM,CAAC,CAACq2M,EAAmBhuN,EAAMy4C,kBAE5Dq0L,GAAmBn1N,EAAAA,UACvB,WAAA,OACE3X,EAAMk4C,UACNy/K,EAAcx+N,QACZ04N,EAAiB14N,OAASk5N,EAAgBl5N,QAAW04N,EAAiB14N,MAAA,IAGtE4zO,GAAgBp1N,EAAAA,UAAS,WAAM,IAAAq1N,EAAAC,EACnC,IAAKjtO,EAAMk4C,SAAiB,OAAA,EACtB,IAAAg1L,EAA8BF,QAA9BA,EAAalB,EAAiB3yO,aAAjB6zO,IAAiBA,OAAjBA,EAAAA,EAAwB5vM,wBACrC+vM,EAA+BF,QAA/BA,EAAiBpO,GAAc1lO,aAAd8zO,IAAcA,OAAdA,EAAAA,EAAqB7vM,wBAC5C,QAAQ8vM,aAAAA,EAAAA,EAAYj2M,SAAU,KAAMk2M,aAAA,EAAAA,EAAgBl2M,SAAU,EAChE,IAGMm2M,GACJpD,GAAgBhqO,EAAO03N,GADjB2S,MAAAA,WAAYG,GAAgB4C,GAAhB5C,eAAgBiB,GAAA2B,GAAA3B,6BAA8BC,MAAAA,gCAG5D2B,GExJM,SAAsBrtO,EAAuB03N,GACrD,IAAA3rJ,EAA4E7nC,SAAOlkC,GAAjFqwC,IAAAA,MAAO3rC,EAAMqnE,EAANrnE,KAAMyjN,EAAAp8I,EAAAo8I,cAAec,IAAAA,iBAAkBT,EAAwBz8I,EAAxBy8I,wBAChD0d,EAAWh2M,EAAAA,MACXo9M,EAAuBp9M,EAAAA,KAAM,GAC7Bq9M,EAAmBr9M,MAAI,GAGvBs9M,EAAuB71N,EAAAA,UAAS,WACpC,MAA4B,WAAxBwwM,EAAchvN,QACU,aAAxBgvN,EAAchvN,OACXk3C,EAAMl3C,OAAS8vN,EAAiB9vN,MACzC,IAEMs0O,EAAa,SAACrmL,EAAoCkpC,GACtD,IAAM0yI,EAAWv+N,GAAI2iD,EAAIhO,IAAKp5C,EAAMupN,QAChC2c,EAAS/sO,QAAU6pO,GAA8B,WAAlB1yI,eAAAA,EAAO9tC,QACnCgmK,EAAwBrvN,QAC3B+sO,EAAS/sO,WAAQ,GAGnB+sO,EAAS/sO,MAAQ6pO,EAEnBsK,EAAqBn0O,MAAQiuD,EAAInsD,OAQ7BgwO,EAAuB,SAACzwO,GAAqB,IAAAi+G,EACjD,GAAK+0H,EAAqBr0O,MAA1B,CACA,IAAMk1E,EAAO7zE,EAAE6zE,eAAQoqC,EAAAj+G,EAAEhC,wBAAFigH,EAAOpxC,QAC1B,GAAAowC,GAAe5/G,KAAKw2E,GAAO,CAC7B7zE,EAAEwzE,iBACI,IAAA/yE,EAAQoF,KAAK0U,IAAIrQ,EAAKvL,MAAM3C,OAAS,EAAG82O,EAAqBn0O,MAAQ,GAChEs0O,EAAA,CAAEr0L,IAAK10C,EAAKvL,MAAM8B,GAAQA,MAAAA,EAAOT,EAAAA,GAAK,CAAEgoD,OAAQ,SAClD,MAAA,GAAAk1D,GAAa7/G,KAAKw2E,GAAO,CAClC7zE,EAAEwzE,iBACF,IAAM/yE,EAAQoF,KAAKC,IAAI,EAAGgtO,EAAqBn0O,MAAQ,GAC5Cs0O,EAAA,CAAEr0L,IAAK10C,EAAKvL,MAAM8B,GAAQA,MAAAA,EAAOT,EAAAA,GAAK,CAAEgoD,OAAQ,SAC7D,SAAWs1D,GAAUjgH,KAAKw2E,IAAiC,aAAxBruE,EAAMmoN,cAA8B,CACrE,IAG0BijB,EAHpBnwO,EAAQqyO,EAAqBn0O,MACnCs0O,EAAW,CAAEr0L,IAAK10C,EAAKvL,MAAM8B,GAAQA,MAAAA,EAAOT,EAAAA,IAEvCwF,EAAMmoN,eACiB,QAA1BijB,EAAAprO,EAAM6pN,yBAAoB,IAAAuhB,GAA1BA,EAAA3zO,KAAAuI,EAA0B,CACxBwiD,OAAQ,sBACRmoL,cAAe,CAAC,CAAEvxL,IAAK10C,EAAKvL,MAAM8B,GAAQwtH,SAAUxtH,KAG1D,SAAW48G,GAAWhgH,KAAKw2E,KAAUruE,EAAMmoN,cAAe,CAAA,IAAA+iB,EACxDhF,EAAS/sO,WAAQ,UACjB+xO,EAAAlrO,EAAM6pN,gCAANqhB,EAAAzzO,KAAAuI,EAA0B,CAAEwiD,OAAQ,QAASmoL,cAAe,IAC9D,SAAWzyH,GAAQrgH,KAAKw2E,KAAUruE,EAAMmoN,cAAe,CAAA,IAAAkjB,UACrDA,EAAArrO,EAAM6pN,gCAANwhB,EAAA5zO,KAAAuI,EAA0B,CAAEwiD,OAAQ,aAAcmoL,cAAe,IAExD,MAAA,GAAA1yH,GAAUpgH,KAAKw2E,KAAUruE,EAAMmoN,gBAAkB3tN,EAAEkzO,UAAYlzO,EAAEmzO,QAAS,CAAA,IAAArC,UACnFA,EAAAtrO,EAAM6pN,gCAANyhB,EAAA7zO,KAAAuI,EAA0B,CAAEwiD,OAAQ,QAASmoL,cAAe,IAC9D,CAGIhzH,GAAe9/G,KAAKw2E,IAASupC,GAAgB//G,KAAKw2E,GACpDk/J,EAAiBp0O,WAAQ,EAEzBo0O,EAAiBp0O,MAAQ,CAlCM,GA8C5B,MAAA,CACL+sO,SAAAA,EACAsH,qBAAAA,EACAI,cAvDoB,WACpB1H,EAAS/sO,WAAQ,EACjBm0O,EAAqBn0O,OAAQ,GAsD7B00O,4BAZkC,WAC/Bx0M,GAAAq+L,EAASv+N,MAAO,UAAW8xO,IAY9B6C,+BATqC,WACjCl0M,GAAA89L,EAASv+N,MAAO,UAAW8xO,IAS/BsC,iBAAAA,EAEJ,CF0EQQ,CAAsB/tO,EAAO03N,GAN/BwO,GAAAmH,GAAAnH,SACAsH,GAAAH,GAAAG,qBACAI,GAAAP,GAAAO,cACAC,GAAAR,GAAAQ,4BACAC,GAAAT,GAAAS,+BACAP,GAAAF,GAAAE,iBAGF7rM,EAAAA,MAAMk2L,GAAa,WACjB8F,EAAuB9F,EAAYz+N,MACrC,IAEAuoC,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAM0E,KAAMwrK,GAAU,IAC7B,WACE2M,EAAQkhD,GAAe5kO,MAAQ+2K,GAAW/2K,MAAQ6G,EAAM0E,KAC1D,IAGFg9B,EAAAA,MACE8vL,GACA,WAAM,IAAAwc,EACE,QAANhuO,EAAAA,EAAM4rO,2BAAN5rO,IAAMguO,GAANhuO,EAAAA,KAAAA,EAA4BwxN,EAAkBr4N,MAAM+xN,aACpCgI,GAAA1B,EAAkBr4N,MAAM+xN,YAAa,KACvD,GACA,CAAElgK,WAAW,IAGf,IAOMijL,GAAkBhyN,IAAS,WACbw2M,GAAAD,EAAe,aACnC,IAGM1uC,GAAsBnsK,EAAAA,UAAS,WAAA,MAAO,CAC1CjT,KAAM1E,EAAM0E,KAEZu8D,aAAajhE,CAAAA,EAAAA,EAAMihE,QAAQ,GAAA,CAAA03G,UAAW34K,EAAM24K,YAC5C,IACI2H,GAAgB4tD,GAAoB5b,EAAiBxuC,IAEvD71D,IAAc,EAmBZkgH,GAAiB,WAAM,IAAAC,EACtBxW,EAAYz+N,QACjB4yO,EAAgB5yO,MAA+C,UAAvCy+N,EAAYz+N,MAAM2hC,cAAc,gBAAhCszM,IAAuCA,OAAvCA,EAAAA,EAA0ChxM,wBAAwBnG,SAkB5FyK,EAAAA,MAAM4wL,GAAiB,WACrBsP,GAAmBtP,EAAgBn5N,OAET,SAAtB6G,EAAMy4C,aACQw1L,IAEpB,IAKAvsM,EAAAA,OACE,WAAA,MAAM,CAACk2L,EAAYz+N,MAAO6G,EAAM0oN,SAAU1oN,EAAM6oN,cAAe7oN,EAAMsoN,QAAO,IAC5E,WACQ,IAAAllL,EAAQntB,YAAW,WACRk4N,KACf53N,aAAa6sB,KACZ,EACL,IAGI1B,QAAAg2L,GAAU,SAACA,GACfiG,GAAuBjG,EACzB,IAEAniM,EAAAA,WAAU,WACO44M,KACfvM,GAAmBtP,EAAgBn5N,OACnCwkO,GAAuBjG,EAASv+N,MAClC,IAkBAuoC,EAAAA,MACE,CAAC2qM,IACD,SAAA9iL,GAAmB,IAAjB8iL,EAAiB1vN,GAAA4sC,EAAA,GAAN,GACHjf,EAAAqG,KAAK,sBAAuB07L,EACtC,GACA,CAAErhL,WAAW,IAGT,IAAAs6F,GAAY3tI,EAAAA,UAAS,WAAA,OAAOomN,GAAe5kO,MAAQ+2K,GAAW/2K,MAAQ6G,EAAM0E,QA+B3E,MAAA,CACL+sN,OAAAA,EACA/sM,YAAAA,EACAo5M,gBAAAA,GACAptM,aAAAA,EACAq7M,gBAAAA,EACAjU,uBAAAA,EACAwP,UAAAA,EACAvQ,WAAAA,EACAgB,cAAAA,EACAL,SAAAA,EACAE,YAAAA,EACAxzJ,eAAAA,EACAknJ,eAAAA,EACAkG,kBAAAA,EACAob,wBAAAA,GACAnF,mBAAAA,EACAC,mBAAAA,EACAqF,cAAAA,GACAtc,qBAAAA,EACAzC,mBAAAA,EACA6e,gBAAAA,GACAva,gBAAAA,EACAqF,cAAAA,EACAtF,gBAAAA,EACA2F,cAAAA,EACAb,uBAAAA,EACA5E,iBAAAA,EACA8D,YAAAA,EACA0H,eAAAA,GACA7tD,WAAAA,GACAwuD,eAAAA,GACAC,eAAAA,GACAmN,iBAAAA,EACAjN,cAAAA,GACAC,gBAAAA,GACAC,gBAAAA,GACAlH,eAAAA,EACAhG,iBAAAA,EACAib,iBAAAA,GACAla,cAAAA,GACAkB,gBAAAA,GACA+T,mBAAAA,GACAjJ,uBAAAA,GACAiN,aAAAA,EACAvrD,cAAAA,GACA0+C,oBAAAA,GACAqL,WAAAA,GACAnE,SAAAA,GACAmG,YAAAA,EACAhyD,gBA/EsB,SAACh7I,GACnB,IAAEpkC,EAAUokC,EAAVpkC,MACF,IAACA,GAAmB,IAAVA,EAAa,CAAA,IAAAozO,EACrB,IAAChvM,EAAO7mC,IAEV,YADI8sE,GAAM,QAAS,yDAGbrqE,EAAiB,QAAjBozO,EAAA/oF,GAAUnsJ,aAAO,IAAAk1O,OAAA,EAAjBA,EAAiBjuG,WAAU,SAACnhG,GAAA,OAASx6B,GAAIw6B,EAAMj/B,EAAMupN,UAAYlqL,EAAO7mC,QACpE,GACV8sE,GAAU,QAAA,GAAAl0C,OAAYiO,EAAO7mC,IAAkE,6DAEnG,CACI,GAAA8nL,GAAc1H,gBAAgBz/K,MAChCmnL,GAAcjG,yBAAqBh7I,OAAQpkC,MAAOA,EAAQ,SACrD,CAAA,IAAAqzO,EAAAC,EAGC57M,EAAyB,QAAzB27M,EAAKzC,EAAa1yO,aAAO,IAAAm1O,OAAA,EAApBA,EAAoBxqJ,IACzB1qC,EAAMzmB,SAAe47M,UAAf57M,EAAIuM,oBAAWqvM,SAAfA,EAAetzO,GAC3B,GAAIm+C,EAAK,CAAA,IAAAo1L,EAAAC,EAGDj1K,EAFgBpgB,EAAdsF,UACU4zK,EAAgBn5N,MAAM4iC,WACoByyM,QAAdA,EAAAnvM,EAAO/B,eAAOkxM,EAAAA,EAAA,GAE5Clc,EAAAn5N,MAAMu1O,SAAS,CAAEpxM,IAAKk8B,EAAc+iD,SAA6BkyH,QAAnBA,EAAApvM,EAAOk9E,gBAAYkyH,IAAAA,EAAAA,EAAA,QACnF,CACF,GAsDA/mB,iBAAAA,GACAv5J,YAAAA,EACAxP,cArMoB,WACpBnpB,EAAAA,UAAS,WACY6pM,KACOM,IAC5B,KAkMAN,mBAAAA,GACAM,0BAAAA,GACAzxG,qBApL2B,SAAC1zH,GACtB,IAAAw4B,EAAUx4B,EAAEw4B,QAAUx4B,EAAEwpL,WACxB1mJ,EAAMtK,EAAO+I,UAEfkyF,KAAgB3wF,EACJgjJ,GAAA1H,gBAAgBz/K,OAASmnL,GAAchhI,gBAEvC2uE,IAAA,EACdssG,EAAwBvnM,IAEZi7F,GAAA3wF,EACd4mJ,EAAgB1pL,GACU,SAAtBwF,EAAMy4C,aACQw1L,MAwKlB/Q,aAAAA,EACAyR,qBA9J+E,SAACrb,GAChF,GAAKhB,EAAgBn5N,MAArB,CAIA,IAHA,IAAMy1O,EAAQtc,EAAgBn5N,MAAM2hC,cAAA,mBAAA1J,OAAiCkiM,EAAU,OACzEub,EAAavc,EAAgBn5N,MAAM62C,iBAAiB,gCACtD8+L,EAAa,EACRr4O,EAAI,EAAGF,EAAMs4O,EAAWr4O,OAAQC,EAAIF,EAAKE,IAClCq4O,GAAAD,EAAWp4O,GAAG2mC,wBAAwBpG,MAEhD,IAAA+3M,EAAUH,EAAMxxM,wBAChB+sC,EAAcmoJ,EAAgBn5N,MAAMikC,wBACpCihC,EAAW0wK,EAAQxxM,KAAO4sC,EAAY5sC,KAAOuxM,EACnDxc,EAAgBn5N,MAAMsiC,SAAS,CAAE8B,KAAM8gC,EAAUk+C,SAAU,UAV/B,GA8J5ByyH,aAlHmB,WACnBhvO,EAAMmoN,eAAiBsjB,KACvB+B,GAAqBr0O,OAAS00O,MAiH9BoB,YA9GkB,WAClBjvO,EAAMmoN,eAAiBujB,KACvB8B,GAAqBr0O,OAAS20O,MA6G9BoB,gBA1GoD,SAAC9nL,GAAQ,IAAA+nL,UAC7DnvO,EAAAA,EAAM+pN,kBAAN/pN,OAAAA,EAAAA,KAAAA,EAAmBonD,GACnBpnD,EAAMmoN,eAAiBqiB,GAAepjL,GACtComL,GAAqBr0O,OAASy0O,MAwG9BhS,mBAAAA,EACAC,yBAAAA,EACAC,kBAAAA,EACAC,qBAAAA,EACAwR,iBAAAA,GAEJ,EAEAxoM,OAAS,WAAA,IAAAqqM,EAAAC,EAAAC,EAAAzF,EAAA0F,EAAAC,EAAAC,EAAAC,EAAAlrL,EAAA3jD,KACH,IAACA,KAAKwrO,YACD,OAAAz1M,EAAAA,YAAA,MAAA,CAAA1G,IAAA,YAAA,MAGH,IAAEinM,EAAwCt2N,KAAxCs2N,uBAAwB1+K,EAAgB53C,KAAhB43C,YAC1B/zC,EAAO7D,KAAKk9N,eAAiBl9N,KAAKqvK,WAAarvK,KAAK6D,KACpD4jN,GAAkC,QAAxB8mB,EAAAvuO,KAAK2wN,yBAAmB,IAAA4d,OAAA,EAAxBA,EAAwBlkB,cAAerqN,KAAKynN,QAEtD6P,EAAuBkX,QAAvBA,EAAkBxuO,KAAKunN,8BAAAinB,IAAAA,EAAAA,EAA0BxuO,KAAKuoN,UACxD+O,GAAmC,SAAhB1/K,GACjB6sB,GACF,QACA,2GAIJ,IAAMqqK,EAAkC,UAAhBl3L,GAA2B53C,KAAKwxN,gBAAkB,aAAU,EAE9Eud,EAAiB,WAAjB,IAAkBC,IAAgB9wO,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,KAAAA,UAAA,GAAA,OAAA63B,EAAAA,6BAEnC0xL,EAAQtjN,KAAI,SAACq6I,GACZ,IAAMxsH,EAAgB,CACpBmE,MACEotJ,IACGyrD,GAAiB1X,EAAkB3zK,EAAK6xK,YAAYh3E,EAAIi0E,aAAU,IAAcj0E,EAAIroH,QAClF24M,GAST,OAPItwF,EAAI/oE,WACAzjD,EAAAyjD,SAAW8tG,GAAc/kC,EAAI/oE,WAGhCzjD,EAAMmE,OAAUqoH,EAAI/oE,UAAiC,UAArB9xB,EAAK/L,cACxC5lB,EAAMyjD,SAAW,QAEnB1/C,EAAAA,YAAA,MAAA,CAAAp+B,IAAiB6mJ,EAAIi0E,OAAAzgM,MAAeA,GAAO,KAC5C,OA6CCi9M,EAAY,CAChBnY,cAAe92N,KAAK82N,cACpBR,uBAAwBt2N,KAAKs2N,uBAC7BtF,iBAAkBhxN,KAAKgxN,iBACvB35K,SAAUr3C,KAAKq3C,SACfu+B,UAAW51E,KAAK41E,UAChBx/C,OAAQp2B,KAAKo2B,OACbu6L,kBAAmB3wN,KAAK2wN,kBACxBC,OAAQ5wN,KAAK4wN,OACb4E,YAAax1N,KAAKw1N,YAClBjN,UAAWvoN,KAAKuoN,UAChBye,mBAAoBhnO,KAAKgnO,mBACzBnjN,YAAa7jB,KAAK6jB,YAClButM,yBAA6C,WAAnBpxN,KAAKymO,UAAyBzmO,KAAKujE,eAAevjE,KAAKymO,WAAa,GAC9FxiN,OAAQjkB,KAAKikB,OACbytM,iBAAkB1xN,KAAK0xN,iBACvBqV,YAAa/mO,KAAK+mO,aAOdmI,EAAe77M,MAAkB,GAAK,EAAI,EAC1C87M,EAAWnvO,KAAKwxN,gBAAkBxxN,KAAKg3N,eAAiB,EACxDoY,EAAoB//M,EAAAA,MAAUo/M,QAALA,EAAAzuO,KAAK69N,0BAAA4Q,SAALA,EAAqBlyM,wBAAwBnG,SAAU,GAAK84M,GAErF3sM,EAAQntB,YAAW,WAAM,IAAAi6N,EAC7BD,EAAkB92O,QAAc,QAAL+2O,EAAA1rL,EAAKk6K,sBAALwR,IAAKA,OAALA,EAAAA,EAAqB9yM,wBAAwBnG,SAAU,GAAK84M,EACvFx5N,aAAa6sB,KACZ,GACG+sM,EAAwBx4N,EAAAA,UAAS,WAAA,OAAMs4N,EAAkB92O,MAAQ62O,KAEjEI,EAAgBpwO,GAAM+oN,iBAAmB/vN,OAAO6H,KAAKi+N,iBAAmB,EACxEuR,EAA6B14N,EAAAA,UAAS,WACnC,MAAA,CACLqf,SAAA5F,OAAUozB,EAAKuyK,WAAA,MACf9/L,UAAA7F,OAAW++M,EAAsBh3O,MAAA,MACjCywC,QAASwmM,EAEb,IAEME,EAAoBzvO,KAAKq3C,SAAW,EAAI,EACxCs0K,EAAgB1qL,SACnBjhC,KAAKkoN,kBAAoBloN,KAAKy/K,cAAc1H,gBAAgBz/K,QAAU0H,KAAKk2N,aAE5EngM,EAAAA,YAAA,MAAA,CAAA1G,IAAA,iBAAA2C,MAES,CACLmE,MAAA,GAAA5F,OAAUvwB,KAAKk2N,WAAauZ,EAAA,MAC5B1mM,QAAS5wC,OAAO6H,KAAKi+N,wBAEhB,CACL,YAAA7lO,KAEG4H,KAAKyqN,eAAemB,iBAAmB5rN,KAAKkoN,kBAAoBloN,KAAKy/K,cAAc1H,gBAAgBz/K,SAIxG,CAAAy9B,EAAAO,YAAA,QAAA,CAAAN,MAAch2B,KAAKgsO,gBAAiBh6M,MAAA2D,GAAAA,GAAY,CAAA,EAAA31B,KAAK6mO,oBAAA,GAAA,CAAoB1wM,MAAO5F,GAAAA,OAAGvwB,KAAKk3N,cAAkB,SAAA,CACvG6X,GAAe,GAAIh5M,cAAA+wM,GACamI,EAAjBjvO,KAAK++B,YAOrB2wM,EAAA35M,EAAAO,YAAA,MAAA,CAAAN,MACQh2B,KAAKyqN,eAAe0B,kBAAAn6L,MAA0Bw9M,EAA2Bl3O,OAClF,CAAAqzN,IAODgkB,EAAuB3vO,KAAKwxN,gBAAkBxxN,KAAKg3N,eAAiB,EACpEh3N,KAAKq3C,WACiBs4L,GAAA,GAG1B,IAAMrnC,EAAarnK,QAAQjhC,KAAKy/K,cAAc1H,gBAAgBz/K,OAAS0H,KAAK+nN,qBACtEp0C,GAAiBq1D,QAALA,OAAKnhB,gBAALmhB,IAAKA,OAALA,EAAAA,EAAerzO,SAAUqK,KAAKgoN,eAAiBhoN,KAAK++B,OAAO,cACvE6wM,EAAgB3uM,QAAQqnK,GAAc30B,GAAa3zK,KAAKk2N,aAC5DngM,EAAAA,YAAA+pB,GAAApc,aAAA,CAAA1N,MACSh2B,KAAKyqN,eAAeqB,gCACZ9rN,KAAK89C,cACpBF,aAAc+xL,GAAwB,GAClC5N,GAAc/hO,KAAK+nN,qBACvB,CAAA/1L,MAAO,CAAE0W,UAAA,GAAAnY,QAAqB,IAAwB,QAAxBm+M,EAAA1uO,KAAKkrO,uBAAmBwD,IAAAA,EAAAA,EAAA,GAAKiB,GAA0B,OAAAtgN,IAAA,yBAAA,CAAA/M,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAjH,IAAA,iBAAA2C,MAK5E,CAAEmE,MAAO,GAAA5F,OAAGozB,EAAKuyK,WAAauZ,EAAuB,MAAA1mM,QAAS5wC,OAAOwrD,EAAKu6K,kBAAiBloM,MAC3F,CACL,YAAA59B,KAEGurD,EAAK8mK,eAAeoB,iBACnBloK,EAAKokK,qBAAuBpkK,EAAK87H,cAAc1H,gBAAgBz/K,SAIrE,CAAAy9B,EAAAO,YAAA,QAAA,CAAAN,MAAc2tB,EAAKqoL,gBAAiBh6M,MAAA2D,GAAAA,GAAYguB,CAAAA,EAAAA,EAAKkjL,oBAAA,GAAA,CAAoB1wM,MAAO5F,GAAAA,OAAGozB,EAAKuzK,cAAkB,SAAA,CAEvG6X,GAAe,GAAIh5M,EAAAA,YAAA6yM,GAAA,CAAAlgB,OAEV/kK,EAAK+kK,qBAEE/kK,EAAKmzK,cAAAR,uBACIA,EAAAzO,SACdlkK,EAAKkkK,SAAAJ,QACNA,EAAAe,cACM7kK,EAAK6kK,cACpBC,aAAc9kK,EAAK8kK,aACnB+M,YAAa7xK,EAAK6xK,YAAAxN,cACHrkK,EAAKqkK,cACpBY,0BAA2BjlK,EAAKilK,2BATvBjlK,EAAK5kB,YACd,IAgBJ8mJ,EAAAt1J,gBAAAA,OACJvwB,KAAKy/K,cAAc9mH,aAAargE,OAAc,UAAL0H,KAAKkrO,uBAAA,IAAAyD,EAAAA,EAAmB,YAAMC,EAAAQ,EAAkB92O,aAAS,IAAAs2O,EAAAA,EAAA,GAAA,OAE9FiB,EAAe,CACnBjwO,UAAWimL,EACX,gBAAiBA,EACjB,iBAAkBA,EAClB,oBAAqBA,GAEjBiqD,EAAiBn6M,GAAAA,GAAA,CACrB9R,YAAa7jB,KAAK6jB,YAClButM,yBAA6C,WAAnBpxN,KAAKymO,UAAyBzmO,KAAKujE,eAAevjE,KAAKymO,WAAa,GAC9FnQ,uBAAAA,EACA5E,iBAAkB1xN,KAAK0xN,iBACvB7tN,KAAAA,EACA47K,cAAez/K,KAAKy/K,cACpBgoC,QAASznN,KAAK2wN,kBAAkBtG,YAChCiZ,SAAUtjO,KAAK62N,SACfX,WAAYl2N,KAAKk2N,WACjB1E,gBAAiBxxN,KAAKwxN,gBACtBpxJ,OAAQpgE,KAAKogE,OACbonJ,iBAAkBxnN,KAAKwnN,iBACvB+Q,gBAAiBv4N,KAAKyxN,gBACtBjlG,iBAAkBxsH,KAAKy/K,cAAcjzD,iBACrC24G,kBAAmBnlO,KAAKmlO,mBACrB7qN,GAAKta,KAAKgnL,OAAQi+C,KAAgB,CAAA,EAAA,CAErCt+M,WAAY3mB,KAAKi9N,gBACjBh5M,OAAQjkB,KAAKikB,OACbohN,SAAUrlO,KAAKqlO,SACfD,UAAWplO,KAAKwpO,WAChBtgB,WAAYlpN,KAAKquO,kBAEbrN,EACJjrM,EAAAO,YAAA,MAAA,CAAAjH,IAAA,kBAAA2G,MAESh2B,KAAKyqN,eAAeriM,QAC3B4J,MAAOhyB,KAAK4mO,mBAAA1+J,SACFloE,KAAKqtH,sBAEd,CAAArtH,KAAKy/K,cAAc1H,gBAAgBz/K,OAClCy9B,EAAAO,YAAA,MAAA,CAAAN,MAAYh2B,KAAK4vN,qBAAqBroK,OAAQv1B,MAAO69M,GAAc,MAAA95M,EAAAO,YAAA,QAAA,CAAAjH,IAAA,cAAA2G,MAK5Dh2B,KAAKgsO,4BAEP,CAAA,EAAAhsO,KAAK6mO,oBAAA,GAAA,CACR1wM,MACEn2B,KAAKuoN,WAAavoN,KAAKwxN,iBAAmBxxN,KAAKk3N,cAAA3mM,GAAAA,OACxCvwB,KAAKk3N,cACR,MAAAl3N,KAAK6mO,mBAAmB1wM,SAAA,CAG/B44M,GAAe,GACf/uO,KAAKgoM,YACJjyK,EAAAA,YAAA+wM,GAAAnxM,GAAAA,MAAsCs5M,GAAA,CAAA,EAAA,CAAWzZ,YAAa8B,EAAkBt3N,KAAKw1N,YAAc,CAAC,IAApFx1N,KAAK++B,QAAoFhJ,EAAAA,YAAAmvM,GAAAxhM,EAAAA,WAAA,CAAArU,IAAA,gBAEvDygN,GAApC9vO,KAAK++B,QAAQhJ,EAAAA,YAAA6yM,GAAA,CAAAlgB,OAGnB1oN,KAAK0oN,OACboO,cAAe92N,KAAK82N,cACpBR,uBAAwBA,EACxBzO,SAAU7nN,KAAK6nN,SACfJ,QAASA,EACTe,cAAexoN,KAAKwoN,cAAAC,aACNzoN,KAAKyoN,2BACJzoN,KAAKgoN,cACpBY,0BAA2B5oN,KAAK4oN,0BAChCigB,cAAe7oO,KAAKy/K,cAAc1H,gBAAgBz/K,OAVzC0H,KAAK++B,YAgBhBgxM,EAAuB/zO,EAAWgE,KAAKixB,SAAWjxB,KAAKixB,QAAUjxB,KAAK++B,OAAO9N,QAC7Eo5I,OAAkC,IAAjBrqK,KAAKixB,SAC1B8E,EAAAO,YAAA6P,GAAAzC,aAAA,CAAAzS,UACajxB,KAAKixB,QAChBqQ,KAAMyuM,SACE/vO,KAAK62N,SAAW,WAAA,OAAMlzK,EAAKkzK,QAAA,OAAW,+BAGzC72N,KAAKumC,cACX,MAGGq6F,EAAa5gI,KAAKstD,YAAY,cAC9BuzE,EAAgB7gI,KAAKstD,YAAY,iBACjC3mC,EAAAoP,EAAAO,YAAA,MAAA,CAAAjH,IAAA,gBAAA2G,MAGKh2B,KAAKyqN,eAAeG,eAC3B54L,MAAO,CAAE+W,QAAS5wC,OAAO6H,KAAKm+N,wBAE7Bn+N,KAAK6mN,qBAIJlqL,IAAWkkG,GAAA9qG,EAAAA,YAAA,MAAA,CAAA1G,IAAA,mBAAA2G,MACoBh2B,KAAKyqN,eAAe5pF,eAAA,CACpDA,IAIL,OAAA9qG,EAAAA,YAAA,MAAA,CAAA1G,IAAA,WAAAwb,SAGc7qC,KAAK0sO,iBAAA12M,MACRh2B,KAAK+rO,wBACZ59I,QAASnuF,KAAKmuO,aAAApgJ,OACN/tF,KAAKouO,aAAA,GAEVxtG,GAAA7qG,EAAAA,YAAA,MAAA,CAAAC,MAA0Bh2B,KAAKyqN,eAAe7pF,YAAa,CAAAA,KAzRxC,IAApBj9E,EAAKqkJ,WAA6B,QAEjCrkJ,EAAK87H,cAAc1H,gBAAgBz/K,QAASqrD,EAAKukK,oBACnDvkK,EAAKukK,iBACJnyL,EAAAA,YAAA+pB,GAAApc,EAAAA,WAAA,CAAAma,UACa,GACPkkL,GAAcp+K,EAAKukK,kBACvB,CAAApqK,cAAe6F,EAAK7F,cAAAzuB,IAAA,sBAAA21H,GAGnB0qF,GAAAA,EACH,CAAAptN,QAAA,WAAA,MAAA,CADGotN,EACH,IAEA/rL,EAAKmzK,eAAiB4Y,GAgRvB1O,EAEA4O,EAEAvlE,EAEA1tI,EAGA38B,KAAKisO,6CAEKjsO,KAAKyqN,eAAesB,uBACpB,CACLnvL,SAAArM,OAAUvwB,KAAKg3N,eAAA,MACfr6L,OAAQ38B,KAAKksO,cAAgB37M,GAAAA,OAAGvwB,KAAKksO,cAAoB,WAAA,EACzD91M,UAAQ7F,OAAQs+M,QAARA,EAAG7uO,KAAKyxN,2BAAAod,SAALA,EAAsBtyM,wBAAwBnG,OAAA,QAE5D,MAIFp2B,KAAKmoN,+BAhS+BpyL,EAAAO,YAAAwpB,GAAApc,aAAA,CAAAka,aAEvB,GACVmkL,GAAcp+K,EAAKwkK,+BACvB,CAAAn2L,MAAO,CAAE0W,cAAAnY,OAAqC,EAAtBozB,EAAKqzK,eAAuB,OAAA7O,+BAAA,EAAA94L,IAAA,6BAAA,CAAA/M,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAjH,IAAA,yBAAA2G,MAM3C,CAAC,YAAa2tB,EAAK8mK,eAAeyB,wBAClC,CACL/1L,SAAA5F,OAAUozB,EAAKuyK,WAAA,MACfztL,SAAU,OACVM,QAAS5wC,OAAOwrD,EAAKu6K,mBAGvB,CAAAnoM,EAAAO,YAAA,MAAA,CAAAtE,MAAY,CAAEmE,SAAO5F,OAAGozB,EAAKuzK,cAAA,MAAmB9gM,OAAQ,QAAM,QAAA,IAkR/Dp2B,KAAKsoN,wBAAAvyL,EAAAA,YAAA+pB,GAAApc,aAAA,CAAAka,aACiB,GAAOmkL,GAAc/hO,KAAKsoN,yBAA0B,CAAAj5L,IAAA,uBAAA21H,GACtEr+H,GAAAA,EAAA,CAAArE,QAAA,WAAA,MAAA,CAAAqE,EAAA,IAGHA,EAAAoP,EAAAO,YAAA,MAAA,CAAAjH,IAAA,gBAAA2G,MAI8Bh2B,KAAKyqN,eAAewB,WAAAj6L,MAAmBhyB,KAAKizN,iBAAiB,OAGnG,IGhwBa+c,GAAA,CAEbn0B,aAAc,CACZ5gN,KAAM,CAAC/C,OAAQe,WAGjBg3O,iBAAkB,CAChBh1O,KAAMxE,QAGRy5O,wBAAyB,CACvBj1O,KAAMgmC,QACN3e,aAAS,GAGX6tN,+BAAgC,CAC9Bl1O,KAAMgmC,QACN3e,aAAS,GAGXmlM,QAAS,CACPxsN,KAAMnF,MACNwsB,QAAS,WAAT,MAA+C,EAAC,GAGlD8tN,eAAgB,CACdn1O,KAAMnF,MACNwsB,aAAS,GAGX+tN,sBAAuB,CACrBp1O,KAAMnF,OAGR6nF,SAAU,CACR1iF,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,MAAO,cAAe,MAAO,kBAAmB,YAAYjnB,SAASinB,EAC/E,GAGF0yM,gBAAiB,CACfr1O,KAAMxE,QAGR85O,kBAAmB,CACjBt1O,KAAMhC,UAGRu3O,gBAAiB,CACfv1O,KAAMnF,OAGRovB,WAAY,CACVjqB,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXmuN,iBAAkBxvM,QAElByvM,YAAa,CACXz1O,KAAM,CAAC/C,OAAQe,WAGjB03O,gBAAiB,CACf11O,KAAMnF,MACNwsB,aAAS,GAGXsuN,uBAAwB,CACtB31O,KAAMnF,MACNwsB,QAAS,WAAT,MAA8D,EAAC,GAGjE8C,WAAY,CACVnqB,KAAMhC,UAGR43O,UAAW,CACT51O,KAAM,CAAC/C,OAAQe,WAGjB42K,YAAa,CACX50K,KAAMxE,OACN6rB,aAAS,GAGXwuN,mBAAoB,CAClB71O,KAAMxE,QAGR6uB,aAAc2b,QAEd8vM,6BAA8B,CAC5B91O,KAAMnF,OAGRk7O,aAAc/vM,QAEdgwM,6BAA8B,CAC5Bh2O,KAAMgmC,QACN3e,SAAS,GAGX4uN,yBAA0BjwM,QAE1BkwM,iBAAkB,CAChBl2O,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,YAAYjnB,SAASinB,EACzC,GAGFwzM,iBAAkBnwM,QAElBowM,gBAAiB,CACfp2O,KAAMnF,MACNwsB,aAAS,GAGXgvN,uBAAwB,CACtBr2O,KAAMnF,MACNwsB,QAAS,WAAT,MAA8D,EAAC,GAGjEivN,sBAAuBtwM,QAEvB/N,KAAM,CACJj4B,KAAM,CAACxE,OAAQX,OACfwsB,aAAS,GAGXkvN,YAAa,CACXv2O,KAAM,CAACxE,OAAQX,QAGjBqvB,SAAU,CACRlqB,KAAMhC,UAGRw4O,mBAAoBxwM,QAEpBywM,oBAAqBz4O,SAErB6jJ,YAAa7jJ,SAEbwuD,SAAUxuD,SAEV04O,eAAgB14O,SAEhB24O,gCAAiC34O,SAEjC02K,aAAc12K,SAEd44O,uBAAwB54O,SAExB6kF,WAAY7kF,SAEZ64O,eAAgB74O,SAEhB84O,eAAgB94O,SAEhB+4O,UAAW/4O,SAEXg5O,cAAeh5O,SAEfi5O,eAAgBj5O,SAEhBk5O,aAAcl5O,SAEdu1F,WAAYv1F,6kBC1Kd,IAAAm5O,GAAe79M,kBAAgB,CAC7Bx9B,KAAM,sBAENoI,MAAO,CACLiwK,cAAe34K,OACf4d,QAAS,CACPpZ,KAAMnF,MACNwsB,QAAS,WAAT,MAAe,EAAC,GAElBs2B,MAAO1gD,OACPm6O,UAAWn6O,OACXI,MAAOxC,MACP2xD,SAAUxuD,UAGZu7B,MAAAA,SAAMr1B,GACJ,IAAA+rE,EAA0C7nC,SAAOlkC,GAAzCiwK,EAAelkG,EAAfkkG,cAAe92K,EAAA4yE,EAAA5yE,MAAO+b,EAAQ62D,EAAR72D,QACxBwP,EAAcyM,KAEdgiN,EAAuBx7N,EAAAA,UAAS,WACpC,IAAMy7N,EAA8C,GAa7C,OAZCl+N,EAAA/b,MAAMmX,SAAQ,SAAC6jE,GACjB,GAAkB,WAAlB97E,EAAO87E,GAAqB,CAC9B,GAAIA,EAAOniD,SAAU,OACjBmiD,EAAOh7E,MACMi6O,EAAAhwO,KAAK+wE,EAAOh7E,OACM,iBAAjBg7E,EAAO16B,OACR25L,EAAAhwO,KAAK+wE,EAAO16B,MAE/B,MACE25L,EAAehwO,KAAK+wE,EAExB,IACOi/J,CACT,IAEMC,EAAmB17N,EAAAA,UAAS,WAAA,OAAMW,GAAa66N,EAAqBh6O,MAAOA,EAAMA,UAEjFm6O,EAAe37N,EAAAA,UAAS,WACtB,IAAAphB,EAAM88O,EAAiBl6O,MAAM3C,OACnC,OAAOsrC,QAAQvrC,GAAO48O,EAAqBh6O,MAAM3C,SAAWD,EAC9D,IAEM6yH,EAAkBzxG,EAAAA,UAAS,WACzB,IAAAphB,EAAM88O,EAAiBl6O,MAAM3C,OACnC,OAAOsrC,QAAQvrC,EAAM48O,EAAqBh6O,MAAM3C,QAAUD,EAC5D,IAEMg9O,EAAqD,SAACxuH,EAAU39D,GACpE,IAAMosL,EAA2C,CAC/Ch5O,EAAG4sD,EAAI5sD,EACPsB,KAAM,QACN8d,aAAS,EACTu6D,YAAQ,GAEV,GAAI4wC,EAAU,CAAA,IAAA49B,EACN8wF,EAAA37O,EAAc,IAAIqV,IAAIhU,EAAMA,MAAMi4B,OAAO+hN,EAAqBh6O,iBAC9DwpJ,EAAA3iJ,EAAAsoD,gBAAA,IAAAq6F,GAAAA,EAAAlrJ,KAAAuI,EAAWyzO,EAASD,EAC5B,KAAO,CAAA,IAAAnvF,EACCovF,EAAUt6O,EAAMA,MAAMinC,QAAO,SAAC3B,GAAQ,OAAC00M,EAAqBh6O,MAAMqe,SAASinB,cACjF4lH,EAAArkJ,EAAMsoD,uBAAN+7F,EAAA5sJ,KAAAuI,EAAiByzO,EAASj9M,GAAAA,MAAKg9M,GAAc,GAAA,CAAA13O,KAAM,YACrD,GAGI43O,EAAoD,SAACj1M,EAAK2oB,GAAQ,IAAAk9F,UAChEA,EAAAtkJ,EAAAsoD,gBAAA,IAAAg8F,GAAAA,EAAA7sJ,KAAAuI,EAAWy+B,EAAK2oB,IAGlBzwB,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAC1B1M,EAAYvrB,MAAAF,kCAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET1M,EAAYvrB,MAAgB,YAAAi4B,OAAApxB,EAAMkzO,WAAclzO,EAAMkzO,eAI9D,OAAO,WAEH,OAAAt8M,EAAAA,YAAA,MAAA,CAAAC,MAAYF,EAAQx9B,OAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACH1M,EAAYvrB,2EAERiwH,EAAgBjwH,MAC/Bk5B,QAASihN,EAAan6O,MACtBmvD,SAAUirL,EACVvhN,UAAWmhN,EAAqBh6O,MAAM3C,QAAA,CAAA2sB,QAAA,WAAA,MAErCnjB,CAAAA,EAAMy5C,MAAA,MAAA7iB,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAGI1M,EAAYvrB,MAAA,oCAAA,CAAAy9B,EAAAA,YAAAkxF,GAAAvjF,aAAA,CAAArvB,QAEdA,EAAQ/b,OACb82K,EAAc92K,kBACNA,EAAMA,eACRu6O,IAAA,UAMtB,ukBC1FK,SAASC,GAAcrrB,GAC5B,IADkF,IAA1BprN,EAAO6B,UAAAvI,eAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,IAAIoO,IAC1D1W,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAk0N,EAC5CtrE,EAAMipE,EAAQ7xN,WAChBk0N,EAAAtrE,EAAIngH,gBAAJyrL,OAAAA,EAAcn0N,OACFm9O,GAAAt0F,EAAIngH,SAAUhiC,GAE5BmiJ,EAAIi0E,QAAUp2N,EAAKsT,IAAI6uI,EAAIi0E,OAE/B,CACO,OAAAp2N,CACT,CAQwB,SAAA02O,GAAoB5zO,EAA4BsqC,GACtE,IAAAilC,EAAsCp/C,GAAU,QAASnwB,EAAMof,QAAvDsF,EAAa6qD,EAAb7qD,YAAagM,EAAA6+C,EAAA7+C,aACbmjN,EAAgBznL,GAAc,CAAEynL,YAAaC,KAA7CD,YACR9nK,EAA+E7nC,SAAOlkC,GAA9EsoN,EAASv8I,EAATu8I,QAASwoB,EAAA/kK,EAAA+kK,iBAAkBG,IAAAA,eAAgBF,EAAwBhlK,EAAxBglK,wBAC7CgD,EAAiB7jN,MAAoB,MACrC2P,EAAiBU,KAEjByzM,EAAiBr8N,EAAAA,UAAS,WAAM,IAAAs8N,EAC9B39O,IAA+B,QAAxB29O,EAAAnD,EAAiB33O,aAAO,IAAA86O,OAAA,EAAxBA,EAAwBz2E,SAAA1lK,EAAc67O,GAAcrrB,EAAQnvN,SAAeinC,QAAO,SAACliB,UAAMA,KAC/F,OAAA,IAAI/Q,IAAI7W,EACjB,IAEM4G,IAAWy2O,GAAcrrB,EAAQnvN,QAQvC+jF,EAAAvgE,GAL8C2nD,GAC5C2sK,EACAjxO,EAAMkxO,uBAAyBh0O,EAC/B8C,EAAM0yO,uBACN,kBACF,GALOwB,EAAiBh3J,EAAA,GAAAi3J,EAAkBj3J,EAAA,GAOpCk3J,EAAqBlkN,EAAAA,IAAwB+gN,EAAe93O,OAAS6G,EAAMkxO,uBAAyBh0O,GAEpGm3O,EAAoB18N,EAAAA,UAAqC,WAAM,IAAA28N,EAC/D,OAAwB,QAAxBA,EAAAxD,EAAiB33O,aAAOm7O,IAAAA,GAAAA,QAAAA,EAAxBA,EAAwBC,wBAAAD,GAAxBA,EAAsC99O,OAyB5C,SAAiC8xN,GAA4B,IAAAksB,EACrDD,EAAuC,QAAvCC,EAAe1D,EAAiB33O,aAAO,IAAAq7O,OAAA,EAAxBA,EAAwBD,aAC7C,GAAKA,UAAAA,EAAc/9O,OAAQ,MAAO,GAClC,IAAMi+O,EAAwC,GACxCxvB,EAAO,SAACqD,GACZ,IAAA,IAAS7xN,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAGlD,IAHkD,IAAAi+O,EAC5Ct8L,EAASkwK,EAAQ7xN,GACjBk+O,EAAUC,EAAiBx8L,EAAQ3hD,GAChC8jC,EAAI,EAAGs6M,EAAON,EAAa/9O,OAAQ+jC,EAAIs6M,EAAMt6M,IAAK,CAAA,IAAAu6M,EACvCP,EAAah6M,GAChB+tL,QAAQ9wM,SAAS4gC,EAAOk7K,UACrB,QAAdwhB,EAAAL,EAAUl6M,UAAIu6M,IAAAA,GAAAA,QAAAA,EAAdA,EAAc5/N,mBAAA4/N,GAAdA,EAAuBt+O,OACfi+O,EAAAl6M,GAAGrlB,QAAQ9R,KAAKuxO,GAEhBF,EAAAl6M,GAAA/D,GAAAA,GAAU+9M,CAAAA,EAAAA,EAAah6M,QAAIrlB,QAAS,CAACy/N,KAEnD,SACID,EAAAt8L,EAAOlZ,gBAAPw1M,OAAAA,EAAiBl+O,QACnByuN,EAAK7sK,EAAOlZ,SAEhB,GAGK,OADP+lL,EAAKqD,GACEmsB,CACT,CAhDWM,CAAwBzsB,EAAQnvN,OAMlC,CAJmC,CACxCsgD,MAAO/oB,EAAav3B,MAAM2wB,cAC1B5U,QAAS8/N,EAAmB1sB,EAAQnvN,QAGxC,IAQS,SAAAy7O,EAAiBx8L,EAAyB3hD,GAC1C,MAAA,CACLgjD,MAAO,kBAAM0R,GAAY7gB,EAAQnK,MAAOiY,EAAQ3hD,EAAC,EACjD0C,MAAOi/C,EAAOk7K,OACdthM,UAAWgiN,EAAe76O,MAAMqL,IAAI4zC,EAAOk7K,QAE/C,CA6BA,SAAS0hB,EAAmB1sB,GAA2D,IAAA2sB,EAA/B3+O,EAA2ByI,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,GAC7E,WAAAk2O,EAAAnE,EAAiB33O,8BAAjB87O,EAAwBV,oBAAc,IAAAU,GAAtCA,EAAsCz+O,OAAQ,MAAO,GACzD,IAAA,IAASC,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAA8hF,EAC5Ct5C,EAAOqpL,EAAQ7xN,WACjB8hF,EAAAt5C,EAAKC,gBAALq5C,OAAAA,EAAe/hF,OACEw+O,EAAA/1M,EAAKC,SAAU5oC,GAG9B2oC,EAAKq0L,QACPh9N,EAAI8M,KAAKwxO,EAAiB31M,EAAMxoC,GAGtC,CACO,OAAAH,CACT,CArDAorC,EAAAA,MAAM,CAACuvM,IAAiB,SAAA1uM,GAAW,IAAT9D,EAAS9hB,GAAA4lB,EAAA,GAAN,GACR6xM,EAAAj7O,MAAQslC,GAAOz+B,EAAMkxO,uBAAyBh0O,CACnE,IAqDM,IAAAw2O,EAAoB,SAACj1M,EAAyB2oB,GAAoC,IAAA8tL,EACtFd,EAAmBj7O,MAAQslC,EAC3B,IAAMY,EAAS,CACbipL,QAAS7pL,EACT3iC,KAAMsrD,EAAItrD,KACVq5O,cAAe1S,GAAmBna,EAAQnvN,MAAOJ,OAAOquD,EAAIxtC,UAC5Dpf,EAAG4sD,EAAI5sD,WAET06O,EAAAl1O,EAAMwyO,sBAAN0C,OAAAA,EAAAz9O,KAAAuI,EAAuBq/B,IAgBnB+1M,EAA+B,WAAM,IAAAC,EACrCtB,EAAe56O,MACjB46O,EAAe56O,MAAM4zE,OAGRgnK,EAAA56O,MAAQq9M,GAAa1tL,QAAQ0N,GAAA,CAC1CgxK,OAAQ92K,EAAav3B,MAAMswB,sBAC3BuR,KAAM,WAAM,IAAAs6M,EACJC,EAAoD,iBAAhB,QAAxBD,EAAAxE,EAAiB33O,aAAjBm8O,IAAwBA,OAAxBA,EAAAA,EAAwBE,aAAgC,QAAU,OAIpF3rL,EAAsEinL,EAAiB33O,OAAS,CAAC,EAAzFs8O,EAA4B5rL,EAA5B4rL,2BAA4BC,EAAA7rL,EAAA6rL,8BAC9B92M,EAAAhI,EAAAO,YAAA,MAAA,CAAAN,MAEK,CAAAzF,GAAAA,OACF1M,EAAYvrB,MAAA,6BAAA,GAAAi4B,OACZ1M,EAAYvrB,MAAmCi4B,+BAAAA,OAAAmkN,KAGpD,CAAA3+M,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe1M,EAAYvrB,MAAA,mCACxB0D,CAAAA,EAAW44O,GACRA,EAA2Bh4N,EAACA,GAC5BoiB,EAAe,8BAElBnP,EAAav3B,MAAMuwB,6BAClBkN,EAAAA,YAAA,IAAA,CAAAC,MAAA,GAAAzF,OAAa1M,EAAYvrB,MACtB,mCAAA,CAAAu3B,EAAav3B,MAAMuwB,8BAGvB2qN,EAAkBl7O,MAAM6L,KAAI,SAACgqH,EAAO/zH,GAAU,IAAA06O,EAAAC,EACvC1C,EAAoC,QAAxByC,EAAA7E,EAAiB33O,aAAO,IAAAw8O,GAAAA,QAAAA,EAAxBA,EAAwBpB,oBAAxBoB,IAAwBA,GAAxBA,EAAsCn/O,OACpDuC,OAAOi2H,EAAM71H,OAAS8B,QACtB,EAEF,OAAA27B,EAAAA,YAAAq8M,GAAA,CAAAz6O,IACOw2H,EAAM71H,OAAS8B,EACpBi4O,UAAWA,EACX/5O,MAAOi7O,EAAmBj7O,MAAAsgD,MACnBu1E,EAAMv1E,MAAAvkC,QACJ85G,EAAM95G,QAAAozC,SACLorL,EACVzjE,cAAgC2lE,QAAhCA,EAAe9E,EAAiB33O,aAAjBy8O,IAAiBA,OAAjBA,EAAAA,EAAwB3lE,eACzC,KAEH,IAEApzK,EAAW64O,GACRA,EAA8Bj4N,EAAAA,GAC9BoiB,EAAe,qCAIlB,OAAAjB,CACT,EACA6wK,WAAY/+K,EAAav3B,MAAMwwB,YAC/B6lL,UAAW9+K,EAAav3B,MAAMywB,WAC9BoN,MAAO,IACPskH,UAAW,WAKF,IAAAu6F,GAJP1B,EAAAr8O,EAAuBs8O,EAAmBj7O,aAEJ,IAAlC43O,EAAwB53O,OAC1B46O,EAAe56O,MAAMmsC,QAEmBuwM,QAAxCA,EAAA71O,EAAMyyO,uCAANoD,IAAwCA,GAAxCA,EAAAp+O,KAAAuI,GAAwC,EAAO,CAAEukD,QAAS,YAClDja,EAAAqG,KAAK,kCAAkC,GAEnD,EACAsb,QAAS,WAIA,IAAA6pL,OAF+B,IAAlC/E,EAAwB53O,MAC1B46O,EAAe56O,MAAMmsC,QAEmBwwM,QAAxCA,EAAA91O,EAAMyyO,uCAANqD,IAAwCA,GAAxCA,EAAAr+O,KAAAuI,GAAwC,EAAO,CAAEukD,QAAS,WAClDja,EAAAqG,KAAK,kCAAkC,GAEnD,IAC4B0kM,QAAxBA,EAAAvE,EAAiB33O,aAAjBk8O,IAAwBA,OAAxBA,EAAAA,EAAwBpjC,cAAe,CAAA,KAK/CvwK,EAAAA,MACE,CAACqvM,IACD,SAAAl5K,GAAe,IAAbtlC,EAAa5V,GAAAk7C,EAAA,GAAN,QACS,IAAZtlC,IACAwhN,EAAe56O,MACjBo5B,EAAUwhN,EAAe56O,MAAM4zE,OAASgnK,EAAe56O,MAAMmsC,OAE7D/S,GAAW6iN,IAEf,GACA,CAAEpqL,WAAW,IA2BR,MAAA,CACLkpL,gBAAAA,EACAE,mBAAAA,EACA2B,uBA3B6B,WAAM,IAAAC,EAC7BC,KAAwBnF,EAAiB33O,QAAS7B,OAAO4F,KAAK4zO,EAAiB33O,OAAO3C,QACtFk2D,EAAYupL,EAAqBnF,EAAiB33O,MAAMuzD,WAAa,YAAc,GACrF,GAAAupL,GAAsBnF,EAAiB33O,MAAM+8O,kBAA0B,OAAA,KAC3E,IAAMv/M,EAAU,CAAA,GAAAvF,OACX1M,EAAYvrB,MAAAF,qCAAAA,EAAAm4B,GAAAA,GAAAA,OACT1M,EAAYvrB,wBAAeuzD,KAAgBA,IAEnD,OAAA91B,EAAAA,YAAA,MAAA,CAAAC,MACcF,GACV,CAAAC,EAAAA,YAAAmU,GAAAxG,aAAA,CAAApW,MAAA,UAAAmZ,QAAA,UAAAC,QAGW6tM,EACTnsN,QAASyH,EAAav3B,MAAMqwB,wBAIAwsN,UAAxBh2O,EAAM8wO,wBAANkF,IAAwBA,OAAxBA,EAAAA,EAAwBG,aAHnB,CACPhxN,KAAM,WAAN,OAAAyR,cAAAi9M,EAAA,KAAA,KAAA,OAaZ,CCtPgB,SAAAuC,GACdC,EACAj9L,EACAqvE,GAEA,IAAK4tH,EAAqB,OAAA,EAC1B,IAAIrkN,EAAWn1B,EAAWw5O,EAAarkN,UAAYqkN,EAAarkN,SAAS,CAAEonB,IAAAA,EAAKqvE,SAAAA,IAAc4tH,EAAarkN,SAQ3G,OAPIqkN,EAAaxyG,aACXhnI,EAAWw5O,EAAaxyG,YAC1B7xG,EAAWA,GAAYqkN,EAAaxyG,WAAW,CAAEzqF,IAAAA,EAAKqvE,SAAAA,IAAYz2F,SAC7B,WAA5BqkN,EAAaxyG,aACX7xG,EAAAA,GAAYqkN,EAAaxyG,WAAW7xG,aAG1CA,CACX,CAmBgB,SAAAskN,GAAmBhuB,EAAgBgL,GACjD,IAAA,IAAS78N,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAA8/O,EAC9C,GAAAjuB,EAAQ7xN,GAAG68N,SAAWA,EAAQ,OAAOhL,EAAQ7xN,GAC7C,GAAW,QAAX8/O,EAAAjuB,EAAQ7xN,GAAGyoC,gBAAA,IAAAq3M,GAAXA,EAAqB//O,OAAQ,CAC/B,IAAMumB,EAAIu5N,GAAmBhuB,EAAQ7xN,GAAGyoC,SAAUo0L,GAC9C,GAAAv2M,EAAU,OAAAA,CAChB,CACF,CACO,OAAA,IACT,CAEgB,SAAAy5N,GAAoBluB,EAAgBgL,GAClD,IAAA,IAAS78N,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAggP,EAC9C,GAAAnuB,EAAQ7xN,GAAG68N,SAAWA,EACjB,OAAA78N,EAEL,GAAW,QAAXggP,EAAAnuB,EAAQ7xN,GAAGyoC,gBAAA,IAAAu3M,GAAXA,EAAqBjgP,OAEnB,GADM8/O,GAAmBhuB,EAAQ7xN,GAAGyoC,SAAUo0L,GACpC,OAAA78N,CAElB,CACO,OAAA,CACT,CAEO,SAASigP,GAAqBpuB,GACnC,IAD4F,IAAzCquB,EAAqC53O,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC/EtI,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAk0N,EAC5CtrE,EAAMipE,EAAQ7xN,GAChB4oJ,EAAIj/G,QAAU,eAAgBi/G,EAAIj/G,SAEzBu2M,EAAAt3F,EAAIi0E,QAAUj0E,EAAIj/G,OAAOu2M,oBAElChsB,EAAAtrE,EAAIngH,gBAAJyrL,OAAAA,EAAcn0N,QACKkgP,GAAAr3F,EAAIngH,SAAUy3M,EAEvC,CACO,OAAAA,CACT,okBChFwB,SAAAC,GACtB52O,EACAqvN,GAEM,IAAAtjJ,EAAuF7nC,EAAAA,OAAOlkC,GAA5FkyO,IAAAA,gBAAiB5pB,EAASv8I,EAATu8I,QAASiB,EAAAx9I,EAAAw9I,OAAQ7kN,IAAAA,KAAMotO,EAA8B/lK,EAA9B+lK,6BAA8BtqN,EAAAukD,EAAAvkD,WACxEqvN,EAAsB3mN,EAAAA,IAC1B1I,EAAWruB,MACPuL,EAAKvL,MAAMzB,OACR8vB,EAAWruB,MAAMygB,QAAU,GAAK4N,EAAWruB,MAAM+8H,SAClD1uG,EAAWruB,MAAMygB,QAAU4N,EAAWruB,MAAM+8H,UAE9CxxH,EAAKvL,OAEL29O,EAAwB5mN,EAAAA,MAM9BgtD,EAAAvgE,GALgD2nD,GAC9C4tK,EACAlyO,EAAMmyO,wBAA0B,GAChCnyO,EAAM+yO,eACN,mBACF,GALOgE,EAAkB75J,EAAA,GAAA85J,EAAmB95J,EAAA,GAMtC+5J,EAAqB/mN,EAAAA,IAAQ,IAAAprB,KAC7BuxO,EAAe1+N,EAAAA,UAAS,WAAA,OAAM3X,EAAMsoN,QAAQj4J,MAAK,SAAA9tB,GAAA,IAAGzmC,EAAKymC,EAALzmC,KAAK,MAAM,CAAC,WAAY,UAAU0b,SAAS1b,SAC/Fo7O,EAAgBv/N,EAAAA,UAAS,WAAA,IAAAw/N,EAAA,OAAMn3O,EAAMgyO,mBAAiC,UAAbqE,EAAal9O,aAAbg+O,IAAaA,OAAbA,EAAAA,EAAoBr7O,OAAQ,YACrFs7O,EAAkBz/N,EAAAA,UAAS,WAExB,OADam6N,EAA6B34O,MAAQuL,EAAKvL,MAAQ09O,EAAoB19O,OACvEinC,QAAO,SAACgZ,EAAKqvE,UAwCzB,SAAWrvE,EAA0BqvE,GAC5C,OAAO2tH,GAAsBC,EAAal9O,MAAOigD,EAAKqvE,EACxD,CA1CyDt9E,CAAWiO,EAAKqvE,KACzE,IAEM4qH,EAAmB17N,EAAAA,UAAS,WAAA,OAChCW,GACEy+N,EAAiB59O,MACjBi+O,EAAgBj+O,MAAM6L,KAAI,SAAC+X,GAAA,OAAMtY,GAAIsY,EAAG/c,EAAMupN,QAAU,KAAK,IAC/D,IAGI7qD,EAAe/mJ,EAAAA,UAAS,WAAM,IAAA0/N,EAAAC,EAClC,QAAIt3O,EAAM+xO,4BACsC,WAAxBmF,EAAc/9O,eACdk+O,EAAChB,EAAal9O,aAAbk+O,QAAAA,EAAoBxzG,cAAgB,iBAAsC,QAApByzG,EAAAjB,EAAal9O,aAAO,IAAAm+O,OAAA,EAApBA,EAAoBzzG,eAE5FwyG,EAAal9O,MAAM0qI,WAAW66B,YACvC,IA+CA,SAAS64E,EAAyB74N,GAChC,IAAQ2gI,EAAuB3gI,EAAvB2gI,IAAKjmG,EAAkB16B,EAAlB06B,IAAKqvE,EAAa/pG,EAAb+pG,SACZz2F,EAAoBn1B,EAAWwiJ,EAAIrtH,UAAYqtH,EAAIrtH,SAAS,CAAEonB,IAAAA,EAAKqvE,SAAAA,IAAc42B,EAAIrtH,SACrF6xG,EAAahnI,EAAWwiJ,EAAIxb,YAAcwb,EAAIxb,WAAW,CAAEzqF,IAAAA,EAAKqvE,SAAAA,IAAc42B,EAAIxb,WACjF,MAAA,CACL7xG,SAAUA,IAAY6xG,aAAY,EAAZA,EAAY7xG,UAClC6xG,WAAAA,EAEJ,CA+BS,SAAA2zG,IAA2C,IAAxBp+L,EAAoBr6C,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC1CmzO,EAAkBp6O,EAAIi/O,EAAiB59O,OAErC++B,EAAKzzB,GAAI20C,EADEp5C,EAAMupN,QAAU,MAE3BkuB,EAAmBvF,EAAgBh/M,QAAQgF,GAC3Cw/M,GAAiC,IAArBD,EACd,GAAwB,aAAxBP,EAAc/9O,MAChBu+O,EAAYxF,EAAgBvtO,OAAO8yO,EAAkB,GAAKvF,EAAgB9uO,KAAK80B,OACjF,IAAmC,WAAxBg/M,EAAc/9O,MAIvB,YADImsE,GAAK,QAAS,wDAFlB4sK,EAAkBwF,GAAah5E,EAAavlK,MAAQ,GAAK,CAAC++B,EAI5D,CACA8+M,EAAoB9E,EAAiB,CACnCyF,gBAAiBzF,EAAgBltO,KAAI,SAAC+X,UAAMk6N,EAAmB99O,MAAMsL,IAAIsY,MACzE66N,cAAe1/M,EACf0yM,eAAgBxxL,EAChBt9C,KAAM47O,EAAY,UAAY,SAElC,CAEA,SAASG,EAAgBxlN,GAAkB,IAAAylN,EACnCC,EAAW/3O,EAAMupN,QAAU,KAC3ByuB,EAAqBZ,EAAgBj+O,MAAM6L,KAAI,SAAC61G,GAAW,OAAAp2G,GAAIo2G,EAAQk9H,MACvEE,GAAiDH,QAAvBA,EAAA5F,EAAgB/4O,iBAAO2+O,SAAvBA,EAAuB13M,QAAO,SAAClI,GAAA,OAAQ8/M,EAAmBxgO,SAAS0gB,EAAG,MAAK,GACrGggN,EAAS7lN,EAAUjB,GAAAA,OAAAt5B,EAAImgP,GAAAngP,EAA4BkgP,IAAkBlgP,EAAQmgP,GACnFjB,EAAoBkB,EAAQ,CAC1BP,gBAAiBtlN,EAAU6lN,EAAOlzO,KAAI,SAAC+X,GAAA,OAAMk6N,EAAmB99O,MAAMsL,IAAIsY,EAAE,IAAI,GAChFjhB,KAAMu2B,EAAU,QAAU,UAC1BulN,cAAe,iBAEnB,CApHAl2M,EAAAA,MACE,CAACh9B,EAAM4jN,EAASyuB,EAAkBV,EAAc9sB,IAChD,WAAM,IAAA4uB,EAGEC,EAAuC,QAApBD,EAAA9B,EAAal9O,aAAO,IAAAg/O,GAApBA,EAAoBnmN,SAFrB,SAACtT,GACvB,OAAA23N,EAAal9O,MAAM64B,SAAStT,GAAK2wM,EAAqBr9L,SAAW,EAAA,OACO,EACpEG,EAAW,IAAIhlB,IAAI4pO,EAAiB59O,OAKpCk/O,EAAmBlmN,EAAS5tB,KAJL,SAAAglD,GAA+C,IACpE0wK,EAAQx1N,GADgB8kD,EAAAnQ,IACPp5C,EAAMupN,QAAU,MACvC,OAAOp3L,EAAS3tB,IAAIy1N,GAAS5K,EAAqBl9L,SAAW,SAEC,EAC1C2kN,EAAA39O,MAAQ,CAACi/O,EAAkBC,EACnD,GACA,CAAErtL,WAAW,IAIftpB,EAAAA,MAAMh9B,GAAM,WACVmyO,EAAoB19O,MAAQuL,EAAKvL,KACnC,IA6HAuoC,EAAAA,MACE,CAACh9B,EAAM6kN,IACP,WACW,IAAA,IAAA9yN,EAAI,EAAGF,EAAMmO,EAAKvL,MAAM3C,OAAQC,EAAIF,EAAKE,IAChDwgP,EAAmB99O,MAAMiL,IAAIK,GAAIC,EAAKvL,MAAM1C,GAAI8yN,EAAOpwN,OAAS,MAAOuL,EAAKvL,MAAM1C,GAEtF,GACA,CAAEu0D,WAAW,IAIT,IAAAstL,EAAgB3gO,EAAAA,UAAS,WAAA,OAAMmqB,QAAQu0M,EAAal9O,OAAS6G,EAAMiyO,kBAAoBjyO,EAAMkyO,oBAyD5F,MAAA,CACLmE,aAAAA,EACAiC,cAAAA,EACAxB,sBAAAA,EACAD,oBAAAA,EACAG,oBAAAA,EACAuB,wBArGF,SAAiCl5F,GAE/B,MADoB,CAAC,WAAY,UAAU7nI,SAAS6nI,EAAIvjJ,MAEjD06B,GAAAA,GAAA,CAAA,EACF6oH,GAAA,CAAA,EAAA,CACHroH,MAAOqoH,EAAIroH,OAAS,GACpBoD,UAAW,CAACi1L,EAAqBC,UAAWjwE,EAAIjlH,WAChDglK,KAAM,SAACngL,EAAaP,GAAA,OAtExB,SAA0BA,GACxB,IAAa05B,EAAqB15B,EAA1B2gI,IAAKm5F,EAAqB95N,EAAb06B,IAAAA,OAAM,IAAAo/L,EAAA,CAAA,IACrBnmN,EAAU0kN,EAAiB59O,MAAMqe,SAAS/S,GAAI20C,EAAKp5C,EAAMupN,QAAU,OACzEkvB,EAAiClB,EAAyB74N,GACpDg6N,EAAyBliN,GAAAA,GAAA,CAC7BnE,QAAAA,EACAL,SAHMymN,EAAAzmN,UAAqBymN,EAAX50G,YAIb,GAAA,CAEHt8F,QAAS,SAAC/sC,GAE+B,IAAAm+O,EAAtB,WAAbtgP,EAAOmC,IAAkB,MAAOA,UAClCm+O,EAAAn+O,EAAEA,gBAAFm+O,EAAKxlK,kBAEL34E,SAAAA,EAAG24E,iBAEP,EACA7qB,SAAU,WAAV,OAAgBkvL,EAAmBp+L,EAAG,IAExC,GAAoB,WAAhBhB,EAAOt8C,KAA0B,OAAA86B,EAAAO,YAAA0oI,GAAW64E,EAAgB,MAC5D,GAAgB,aAAhBtgM,EAAOt8C,KAAqB,CAAA,IAAA88O,EACxBxvH,IAAsDwvH,QAApCA,EAAA54O,EAAM4xO,oCAANgH,IAAoCA,IAApCA,EAAoCpiP,SACxDwJ,EAAM4xO,6BAA6Bp6N,SAAS/S,GAAI20C,EAAKp5C,EAAMupN,SAE/D,OAAA3yL,EAAAO,YAAAuwF,GAAAnjF,aAAA,CAAA9R,cAAgC22F,GAAqBsvH,GAAgB,KACvE,CACO,OAAA,IACT,CA2CoEG,CAAiBn6N,EAAC,EAClFiK,MAAoB,aAAb02H,EAAIvjJ,KAnGN,WACC,IAAAstH,EACJiqH,EAAiBl6O,MAAM3C,OAAS,GAAK68O,EAAiBl6O,MAAM3C,OAAS4gP,EAAgBj+O,MAAM3C,OACvFysI,EAC8B,IAAlCowG,EAAiBl6O,MAAM3C,QACU,IAAjC4gP,EAAgBj+O,MAAM3C,QACtB68O,EAAiBl6O,MAAM3C,SAAW4gP,EAAgBj+O,MAAM3C,OAC1D,OAAAogC,EAAAA,YAAA8wF,GAAA,CAAAr1F,QAEa4wG,EAAAxwG,cACM22F,EAAAp3F,UACJolN,EAAgBj+O,MAAM3C,OACjC8xD,SAAUuvL,GACZ,OAsFqDx4F,EAAI12H,QANpC02H,CAQ3B,EA4FEy5F,sBA1F+D,SAAAjvL,GAAoB,IAGtDkvL,EAHqC3/L,EAAAyQ,EAAAzQ,IAAKn+C,IAAAA,MACjE+9O,EAAmBh5O,EAAMsoN,QAAQloF,WAAU,SAACnhG,GAAS,MAAgB,eAAhBA,EAAKq0L,UAC5DthM,GAAW,GACc,IAAzBgnN,IACFhnN,EAKI+mN,QALJA,EAAWxB,EAAyB,CAClCn+L,IAAAA,EACAqvE,SAAUxtH,EACVokJ,IAAKr/I,EAAMsoN,QAAQ0wB,GACnB3nB,SAAU2nB,WAJDD,IAKPA,OALOA,EAAAA,EAKP/mN,UAEFA,GACJwlN,EAAmBp+L,IA+EnB6/L,iCAtDuC,SAAAphL,GAAqE,IAAlE8yK,EAAA9yK,EAAA8yK,cAAenoL,IAAAA,OACzD,GAAK81L,EAAcn/O,MAEnB,GAAe,UAAXqpD,EAKJ,GAAe,eAAXA,EAKA,GAAwB,WAAxB00L,EAAc/9O,MAAd,CAOJ,IAAM+/O,EAAqBvO,EAAcvqM,QACvC,SAAA+D,GAAiB,OACdozM,EAAyB,CACxBn+L,IAFDjV,EAAAiV,IAGCqvE,SAHatkF,EAATskF,SAIJ42B,IAAKg3F,EAAal9O,MAClBk4N,cAAU,IACTr/L,QAAA,IAEP,GAAKknN,EAAmB1iP,OAAxB,CAEM,IAAA2iP,EAAoBD,EAAmBl0O,KAAI,SAAA+uH,GAAO,OAAMtvH,GAANsvH,EAAJ36E,IAAmBp5C,EAAMupN,WAEvE6vB,EADmB9gO,GAAay+N,EAAiB59O,MAAOggP,GAC7B3iP,SAAW2iP,EAAkB3iP,OACxD6iP,EAActC,EAAiB59O,MAAMinC,QAAO,SAAC5nC,UAAS2gP,EAAkB3hO,SAAShf,MACjF8gP,EAAqBF,EAAAthP,EAAc,IAAIqV,IAAI4pO,EAAiB59O,MAAMi4B,OAAO+nN,KAAuBE,EAEhGzO,EAA4B,wBAAXpoL,EAAmCmoL,EAAc,GAAGvxL,SAAM,EACjF49L,EAAoBsC,EAAoB,CACtC3B,gBAAiBhN,EACjBiN,cAAenzO,GAAImmO,EAAgB5qO,EAAMupN,QACzCqhB,eAAAA,EACA9uO,KAAMs9O,EAAU,QAAU,WAbI,CAXhC,KAJiB,wBAAX52L,GACiBg1L,EAAA7M,EAAc,GAAGvxL,UANtCy+L,GAAgB,QAjBlBb,EAAoB,GAAI,CACtBW,gBAAiB,GACjBC,mBAAe,EACfhN,oBAAgB,EAChB9uO,KAAM,aA4DZ,CClRA,IAAAy9O,GAAenkN,kBAAgB,CAC7Bx9B,KAAM,gBAENoI,MAAO,CACLw5O,SAAU,CACR19O,KAAM/C,OACNoqB,QAAS,OAEXs2N,UAAW,CACT39O,KAAM/C,OACNoqB,QAAS,iBAAc,EAAA,GAEzB/D,OAAQ9nB,OACR0uB,SAAUlsB,SACVipK,aAAczrK,OACd6uB,aAAc2b,SAGhB4O,MAAO,CAAC,mBAERrb,eAAMr1B,EAAOsqC,GACX,IAAAinL,EAAgDlG,KAAxCuD,EAAA2C,EAAA3C,iBAAkB+B,EAAkBY,EAAlBZ,kBACpBxiK,EAAcntB,KACpBuuC,EAA4Bp/C,GAAU,QAASnwB,EAAMof,QAA7CrC,EAAGwyD,EAAHxyD,EAAG2T,EAAA6+C,EAAA7+C,aACH2xE,EAAoBj2C,GAAc,CAAEi2C,gBAAiBC,KAArDD,gBAEFq3I,EAAiB/hO,EAAAA,UAAwB,WAAA,MAC1B,QAAnB3X,EAAMw5O,SAAqB,CAAC,MAAO,QAAU,CAACx5O,EAAMw5O,SAAQ,IAuBvD,MAAA,CACLz8N,EAAAA,EACA2T,aAAAA,EACAk+L,iBAAAA,EACA+B,kBAAAA,EACA+oB,eAAAA,EACAC,YAtBkB,SAACvvN,EAAyBwvN,GAC5C,IAAMz9G,EAAcp/G,EAAE2T,EAAav3B,MAAM6sB,WAAQ4Q,EAAAA,YAAAyrE,EAAsB,KAAA,MACjEl9E,EAAOgpC,EAAY,WAAYguE,GAC/B09G,EAAgB,CACpBD,EACAhrB,EAAiB5oM,SACjB4oM,EAAiBI,cAAc5kM,GAAAnxB,EAAA,CAAA,EAC5B03N,EAAkC,QAAdvmM,IAEzB,OAAAwM,EAAAA,YAAA,OAAA,CAAAC,MACegjN,EAAAtyM,QAAwB,SAAC/sC,GAAM,OAdxB,SAACA,EAAe4vB,GACtCkgB,EAAQqG,KAAK,kBAAmBn2C,EAAG,CAAEs/O,WAA0B,SAAd1vN,IAaH2vN,CAAgBv/O,EAAG4vB,EAC5D,GAAA,CAAAjF,KAaT,EAEA4f,OAAS,WAAA,IAAAyf,EAAA3jD,KACC+tN,EAAqB/tN,KAArB+tN,iBACFj4L,EAAU,CAACi4L,EAAiBrqK,QAAAtrD,EAAY21N,CAAAA,EAAAA,EAAiBG,WAAaluN,KAAK64O,eAAeljP,OAAS,IACnGwjP,EAAW,CACf/qB,IAAKpuN,KAAK6vB,aAAatH,2BACvB8lM,KAAMruN,KAAK6vB,aAAapH,6BAEpB2wN,EAAap5O,KAAK64O,eAAe10O,KAAI,SAAColB,GAA4B,IAAAioB,EAAA6nM,EA1E5C38N,EA2EpBq8N,EAAcxvN,IAAco6B,EAAKi1L,UAAY7qB,EAAiBO,WAAaP,EAAiBQ,YAC5F+qB,EAAa31L,EAAK9zB,aAAarH,wBAC/BslE,EAAOvkE,IAAco6B,EAAKi1L,UAAYU,EAAaH,EAAS5vN,GAC9D,eAAA8vN,EAAA11L,EAAKr+B,oBAAgB,IAAA+zN,EAAAA,EAAA11L,EAAK9zB,aAAavK,cAAqBq+B,EAAKm1L,YAAYvvN,EAAWwvN,GAE1FhjN,EAAAO,YAAAy6C,GAAArtC,aAAA,CAAAtb,QACW0lE,EAAAjiC,UAAA,QAAAic,WAEE,QACJnkB,EAAKoqK,iBAAiBI,cAAc5kM,IACtCo6B,EAAKu+G,cArFY,mBAAAxlJ,EAuFrB80B,EAAAmS,EAAKm1L,YAAYvvN,EAAWwvN,KAvFPrnM,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,qCA0F5B,IACA,OAAAqZ,EAAAA,YAAA,MAAA,CAAAC,MAAmBF,GAAA,CAAUsjN,GAC/B,mOC1FF,SAAwBG,GAAUp6O,EAAAuiC,GAAqD,IAAvBpC,EAAAoC,EAAApC,MAC9D4rC,EAAuB7nC,SAAOlkC,GAAtB+zB,EAAAg4C,EAAAh4C,KAAMrvB,EAAKqnE,EAALrnE,KACR21O,EAAenqN,EAAAA,MACgFgtD,EAAAvgE,GAAnE2nD,GAAgBvwC,EAAM/zB,EAAMqyO,YAAaryO,EAAMgzO,aAAc,QAAM,GAA9FsH,EAAWp9J,EAAA,GAAAq9J,EAAYr9J,EAAA,GACgDq0C,EAAA50G,GAApD2nD,GAAgB5/D,EAAM,GAAI1E,EAAMwwK,aAAc,QAAM,GAAvEgqE,EAAOjpH,EAAA,GAAAkpH,EAAQlpH,EAAA,GAEhBmpH,EAAgB/iO,EAAAA,UAAS,WAAA,OAAMgjO,EAAiB36O,EAAMsoN,YACtDsyB,EAAY1qN,EAAAA,MAEZ2qN,EAAYljO,EAAAA,UAA0B,WAC1C,IAAMoc,EAAOumN,EAAUnhP,MACvB,OAAK46B,EACEh8B,EAAQg8B,GAAQA,EAAO,CAACA,GADb,EAEpB,IAEM+mN,EAAUnjO,EAAAA,UAAkB,WAChC,IAAMmjO,EAA+B,CAAA,EAK9BA,OAJPD,EAAU1hP,MAAMmX,SAAQ,SAACmV,EAAMxqB,GACvB,IAAE8/O,EAAWt1N,EAAXs1N,OACRD,EAAQC,oWAAAvkN,CAAA,CAAYv7B,MAAAA,GAAUwqB,EAChC,IACOq1N,CACT,IAEA,SAASH,EAAiBryB,GACxB,IAD2F,IAAvCtjN,EAAmCjG,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC9EtI,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAAk0N,EAC5CtrE,EAAMipE,EAAQ7xN,GAChBoG,EAAWwiJ,EAAI27F,UAEbh2O,EAAAq6I,EAAIi0E,QAAUj0E,EAAI27F,gBAGpBrwB,EAAAtrE,EAAIngH,gBAAJyrL,OAAAA,EAAcn0N,QACCmkP,EAAAt7F,EAAIngH,SAAUl6B,EAEnC,CACO,OAAAA,CACT,CAEA,SAASi2O,EAAeC,GACtB,IAAMnnN,EAAOmnN,EACb,GAAK5jP,OAAO4F,KAAKw9O,EAAcvhP,OAAO3C,OAAtC,CACK6jP,EAAalhP,QAChBkhP,EAAalhP,MAAQqhP,EAAMrhP,OAE7B,IAAMgiP,GAAoBpnN,GAASA,aAAgBp9B,QAAUo9B,EAAKv9B,OAC5D4kP,IAAsBrnN,aAAgBp9B,OAAWo9B,SAAAA,EAAMgnN,QAC7D,GAAII,GAAoBC,EAEtB,OADAX,EAASJ,EAAalhP,MAAO,CAAEorD,QAAS,SACjC81L,EAAalhP,MAEtB,IAAMkiP,EAAetnN,aAAgBp9B,MAAQo9B,EAAO,CAACA,GAE/C4xG,EAA0B60G,EAAMrhP,MAAMzB,QAAQq8B,MAAK,SAAC9W,EAAiBkC,GAEzE,IADA,IAAIm8N,EAAa,EACR7kP,EAAI,EAAGF,EAAM8kP,EAAa7kP,OAAQC,EAAIF,EAAKE,IAAK,CACvD,IAAMwoC,EAAOo8M,EAAa5kP,GACpB8kP,EAAWb,EAAcvhP,MAAM8lC,EAAK87M,QAEtC,GAAe,IAAfO,IAAoBC,EAGtB,MAFaD,EAAAr8M,EAAK66M,WAAayB,EAASp8N,EAAGlC,GAAKs+N,EAASt+N,EAAGkC,EAIhE,CACO,OAAAm8N,CACT,IAEA,GAAI/rG,KAAKC,UAAU7J,KAAa4J,KAAKC,UAAUgrG,EAAMrhP,OAE9C,OADPshP,EAAS90G,EAAS,CAAEphF,QAAS,SACtBohF,CA7BuC,CA8BhD,CAES,SAAA61G,EAAsBn8F,EAAoC3gI,GAA4B,IAAAikI,EACzFu4F,EACAl7O,EAAM6xO,aACGqJ,EA6BN,SAAoB77F,EAAoC3gI,GAE1D/nB,MAAMoB,QAAQuiP,EAAUnhP,SAC3BmhP,EAAUnhP,MAAQmhP,EAAUnhP,MAAQ,CAACmhP,EAAUnhP,OAAS,IAK1D,IAHA,IAAM46B,EAAOumN,EAAUnhP,MACfm6N,EAAWj0E,EAAXi0E,OACF74N,EAAA3C,EAAai8B,GACVt9B,EAAI,EAAGF,EAAMw9B,EAAKv9B,OAAQC,EAAIF,EAAKE,IACtCs9B,GAAAA,EAAKt9B,GAAGskP,SAAWznB,EAAQ,CAC7B,IAAMn2M,EAAOs+N,EAAkBp8F,EAAKtrH,EAAKt9B,GAAIioB,GAEtC,OADPvB,EAAQ1iB,EAAOhE,GAAK0mB,EAAQ1iB,EAAOkK,OAAOlO,EAAG,GACtCgE,CACT,CAGK,OADPA,EAAO2I,KAAK,CAAE23O,OAAQznB,EAAQwmB,WAAYp7N,EAAEo7N,aACrCr/O,CACT,CA9CeihP,CAAoBr8F,EAAK3gI,GAIzBw8N,EAAAO,EAAkBp8F,EADhBi7F,EAAUnhP,iBAAiBxC,MAAQ2jP,EAAUnhP,MAAM,GAAKmhP,EAAUnhP,MACvCulB,GAGpC,IACAi9N,EADUV,EAAeC,IACAV,EAAMrhP,MAErCohP,EAAaW,EAAU,CAAEU,kBADCD,EACkBt8F,IAAAA,IACtC,QAAAsD,EAAA3iJ,EAAAsoD,gBAAA,IAAAq6F,GAAAA,EAAAlrJ,KAAAuI,EAAW,CAAEg7O,OAAQE,GAAY,CAAES,YAAAA,EAAap3L,QAAS,WAC/Dq2L,EAAUzhP,MAAQ+hP,CACpB,CAEA,SAASW,EAAa/B,GACpB,QAAmB,IAAfA,EACJ,OAAOA,EAAa,OAAS,KAC/B,CAGS,SAAA2B,EAAkBp8F,EAAsB67F,EAAoBx8N,GAE/D,IAAAw8N,GAAYA,EAASH,SAAW17F,EAAIi0E,QAAU4nB,EAASpB,aAAep7N,EAAEo7N,WAG5E,MAAO,CAAEiB,OAAQ17F,EAAIi0E,OAAQwmB,WAAYp7N,EAAEo7N,WAC7C,CAoEO,OAZPp4M,EAAAA,OACE,WAAA,MAAM,CAAC44M,EAAWt6O,EAAM0E,KAAI,IAC5B,WACO41O,EAAUnhP,OAAU7B,OAAO4F,KAAKo9O,EAAUnhP,OAAO3C,QAAWgkP,EAAMrhP,MAAM3C,SApB1D,SAACymB,EAA0BkC,GAChD,IAAM28N,EAAc/jP,EAAQklB,GAAKA,EAAI,CAACA,GAChC8+N,EAAmBhkP,EAAQonB,GAAKA,EAAI,CAACA,GACvC,GAAA28N,EAAYtlP,SAAW2oB,EAAU,OAAA,EAErC,IAFqC,IAOrC68N,EAPqCzjN,EAAAA,WAGnC,IAAM0G,EAAO68M,EAAYrlP,GACnBgE,EAASshP,EAAiB1rL,MAAK,SAACtzC,UAAMA,EAAEg+N,SAAW97M,EAAK87M,UAC9D,OAAKtgP,EAAe,CAAAyjB,EACb+gB,EAAK66M,aAAer/O,EAAOq/O,YAD7B,CAAA57N,GAAe,EAEtB,EALSznB,EAAI,EAAGF,EAAMulP,EAAYtlP,OAAQC,EAAIF,EAAKE,IAAK,GAAAulP,EAAAzjN,IAAA,OAAAyjN,EAAA99N,EAiBjD+9N,CAAe3B,EAAUnhP,MAAOyhP,EAAUzhP,QAC7C8hP,EAAeX,EAAUnhP,OAE7B,GACA,CAAE6xD,WAAW,IAGR,CACLkxL,eAhDO,SAAA3yL,GAAkF,IAAA4yL,EAAjE98F,EAAA91F,EAAA81F,IACxB,IAAKA,EAAI27F,OAAe,OAAA,KACxB,IAAMoB,EAAqB,CACzB5C,SAAUn6F,EAAIm6F,SACdC,UAAWoC,UAAaM,EAAArB,EAAQ3hP,MAAMkmJ,EAAIi0E,4BAAlB6oB,EAA2BrC,YACnD9zN,SAAUhmB,EAAMgmB,SAChBG,aAAcnmB,EAAMmmB,aACpB/G,OAAQpf,EAAMof,QAEhB,OAAAwX,cAAA2iN,GAAAh1M,EAAA2qC,WAGQktK,EACJ,CAAArC,gBAAiB,SAAC96N,EAAeP,GAAA,OAA+B88N,EAAsBn8F,EAAK3gI,EAC7F,IAHW,CAAEsH,SAAUma,EAAMna,UAKjC,EAkCF,okBC7IA,IAAAq2N,GAAejnN,kBAAgB,CAC7Bx9B,KAAM,wBAENoI,MAAO,CACLof,OAAQ9nB,OACR8gD,OAAQ9gD,OACR+5N,SAAUr4N,OACVsjP,aAAchlP,OACdilP,iBAAkBjlP,OAClBi4N,mBAAoBj4N,OACpBu4N,aAAc92N,OAEdyjP,oBAAqB,CAAC,EACtBr0K,WAAY7wE,OACZwtB,OAAQ,CAAC/rB,OAAQe,UACjBmvE,gBAAiBnvE,SACjBmsB,WAAY,CAACnsB,WAGf42C,MAAO,CAAC,sBAAuB,QAAS,WAExCrb,eAAMr1B,EAAmCsqC,GACjC,IAAAmyM,EAAoBvsN,MAAoB,MACxCi+B,EAAcntB,KACpBuuC,EAA4Bp/C,GAAU,QAASnwB,EAAMof,QAA7CrC,EAAGwyD,EAAHxyD,EAAG2T,EAAA6+C,EAAA7+C,aACHgsN,EAAetwL,GAAc,CAAEswL,WAAYC,KAA3CD,WACFE,EAAqB1sN,OAAI,GAOzB2sN,EAAkB,SAACzkM,EAAyB0kM,EAA2Bl4M,GAC3E,IAAKA,EAAkB,OAAA,KACjB,IAAAm4M,IAAmBn4M,EAAUvP,MACnC,GAAIx4B,EAAWu7C,EAAOhY,OAAOwE,aAAem4M,EAC1C,OAAO3kM,EAAOhY,OAAOwE,WAAU,SAAC1mB,EAAQiB,GAChC,IAAA69N,EAAsB,WAAb3kP,EAAO8mB,IAAkB,UAAWA,EAAIA,EAAEqjB,MAAQ,GACjE,OAAO/kB,EAAAA,EAAES,EAAG,CACVle,MAAOw2B,GAAAA,GAAKsmN,CAAAA,EAAAA,GAAyBE,IAEzC,IAEI,IAAA58M,EAASgY,EAAOhY,QAAU,GAE9B,OAAAxJ,EAAAO,YAAAyN,EAAAL,aAAA,CAAA1N,MACSuJ,EAAO2P,WAAAld,MACPuN,EAAOvN,OACVuN,EAAOoC,MACPs6M,GACL,OAICG,EAAmB,SAAC7kM,GAA4B,IAAA8kM,EAAAC,EAAAC,EAC9C76O,EAAQ,CAAC,SAAU,WAAY,SACjC,WAAA26O,EAAA9kM,EAAOhY,cAAP88M,QAAAA,EAAephP,MAASyG,EAAMiV,SAAS4gC,EAAOhY,OAAOtkC,MAArD,CAIJ,IAAAuhP,EAAkCr9O,EAA1Bu8O,iBAAAA,OAAA,IAAAc,EAAmB,CAAA,EAACA,EACtBz4M,EACJ,CACE04M,OAAQ76E,GACRv/D,SAAU4kB,GACVrvH,MAAO8/F,IACPngD,EAAOhY,OAAOtkC,OAASs8C,EAAOhY,OAAOwE,UACzC,GAAKA,GAAcwT,EAAOhY,OAAOwE,UAAjC,CACA,IAAMk4M,EAA+CtmN,GAAAA,GAAA,CACnDthB,QAAS,CAAC,SAAU,YAAYsC,SAAS4gC,EAAOhY,OAAOtkC,MAAe,QAAXqhP,EAAI/kM,EAAOhY,cAAA,IAAA+8M,OAAA,EAAPA,EAAe/vN,UAAO,IAClE,QAAfgwN,EAAAhlM,EAAOhY,cAAQ,IAAAg9M,OAAA,EAAfA,EAAep9O,QAAS,CAAC,GAAA,CAAA,EAAA,CAC7BsoD,SAAU,SAAC7pB,EAAU2oB,GAAa,IAAAm2L,EAAAC,EAEGC,EAAAC,GAD3BpzM,EAAAqG,KAAK,sBAAuBlS,EAAK2Z,GACvB,QAAdmlM,EAAAnlM,EAAOhY,OAAOpgC,aAAA,IAAAu9O,GAAdA,EAAqBj1L,oBACvBm1L,GAAAC,EAAAtlM,EAAOhY,OAAOpgC,OAAMsoD,gBAAW,IAAAm1L,GAA/BA,EAAAhmP,KAAAimP,EAA+Bj/M,EAAK2oB,IAE3Bo2L,QAAXA,EAAIplM,EAAOhY,cAAAo9M,IAAAA,GAAuB,QAAvBA,EAAPA,EAAeG,qBAAfH,IAA8BA,GAA9BA,EAA8BhmO,SAAS,cACzColO,EAAmBzjP,OAAQ,EAE/B,IAgBA,OAdEi/C,EAAOk7K,QAAUipB,GAAoBnkM,EAAOk7K,UAAUipB,IACnCO,EAAA3jP,MAAQojP,aAAAA,EAAAA,EAAmBnkM,EAAOk7K,SAGrDl7K,EAAOhY,OAAOu9M,eAChBvlM,EAAOhY,OAAOu9M,cAAcrtO,SAAQ,SAACmpB,GACrB,aAAVA,IACJqjN,EAAqBrjN,GAAS,WACpB6Q,EAAAqG,KAAK,UAAWyH,GACxBwkM,EAAmBzjP,OAAQ,GAE/B,IAGAy9B,EAAAA,YAAA,MAAA,CAAAC,MAAY72B,EAAMuvN,mBAAmBG,cAClC,CAAAmtB,EAAgBzkM,EAAQ0kM,EAAsBl4M,IA7BP,CAR5C,MAFES,QAAQnT,MAAMd,kEAAAA,OAAkEm+G,KAAKC,UAAUjtI,MA4C7Fq7O,EAAmB,SAACxlM,GACpB,GAACA,EAAOhY,OAAOy9M,oBACnB,OAAAjnN,EAAAA,YAAA,MAAA,CAAAC,MACc72B,EAAMuvN,mBAAmBE,eAAA74L,CAAAA,EAAAO,YAAA4T,GAAA,CAAA5c,MAAA,UAAA5pB,KAAA,QAAAgjC,QAIxB,WACC+C,EAAAqG,KAAK,QAASyH,GACtBwkM,EAAmBzjP,OAAQ,CAC7B,GAEC,CAAAgqB,QAAA,WAAA,MAAA,CAAAuN,EAAav3B,MAAM0wB,UAAA,IAAA+M,EAAAO,YAAA4T,GAAA,CAAA5c,MAAA,UAAA5pB,KAAA,QAAAgjC,QAKX,WACC+C,EAAAqG,KAAK,UAAWyH,GACxBwkM,EAAmBzjP,OAAQ,CAC7B,GAEC,CAAAgqB,QAAA,WAAA,MAAA,CAAAuN,EAAav3B,MAAMwwB,YAAA,OAarB,MAAA,CACL5M,EAAAA,EACA2T,aAAAA,EACAgsN,WAAAA,EACAE,mBAAAA,EACAH,kBAAAA,EACAtuL,YAAAA,EACAipB,WAdiB,6CACLp3E,EAAMuvN,mBAAmBC,cAAA,CAClCytB,EAAiBj9O,EAAMo4C,QACvBwlM,EAAiB59O,EAAMo4C,WAY1B0lM,2BArHiC,SAACvrN,GAAqB,IAAAwrN,EACvDnB,EAAmBzjP,MAAQo5B,UAC3BwrN,EAAA/9O,EAAMipE,uBAAN80K,OAAAA,EAAAtmP,KAAAuI,EAAwBuyB,IAqH5B,EAEAwS,OAAS,WAAA,IAAAi5M,EAAAx5L,EAAA3jD,KACCu3C,EAAmCv3C,KAAnCu3C,OAAQ+vB,EAA2BtnE,KAA3BsnE,WAAYu0K,EAAe77O,KAAf67O,WAExB,IAACtkM,EAAOhY,QAAWgY,EAAOhY,SAAW9oC,OAAO4F,KAAKk7C,EAAOhY,QAAQ5pC,OAAgB,OAAA,KAC9E,IAAAynP,EAAoBp9O,KAAKkc,EAAElc,KAAK6vB,aAAazK,aAAU2Q,cAAA8lN,EAAiB,KAAA,MACxEhsE,EAAoBstE,QAApBA,EAAen9O,KAAKy7O,wBAAA0B,SAALA,EAAmE5lM,EAAOk7K,QACzF4qB,EAAsC,WAAvB7lP,EAAOq4K,KAA6Bx3J,GAAQw3J,GAE3DytE,GAAgB,CAAC,UAAM,EAAW,IAAI3mO,SAASk5J,IAAuC,WAAvBr4K,EAAOq4K,GAC5E,OAAA95I,EAAAO,YAAAk4C,GAAA9qC,aAAA,CAAAzf,OAEYjkB,KAAKikB,SAAWjkB,KAAK27O,oBAAsB,WAAA,OAAMh4L,EAAKg4L,mBAAqC,OAAA,GACnGjqN,QAAS1xB,KAAK+7O,mBACdx0K,gBAAA,EAAA7jB,QAAA,QAAAmI,UAAA,eAAAic,WAAA,EAAAL,iBAIkBznE,KAAK0uN,mBAAmBvyF,MAAA/zD,gBACzB,SAACxqC,GAAiB,OAAA+lB,EAAKs5L,2BAA2Br/M,UAC5D,CACL59B,KAAK0uN,mBAAmBpqM,KAAAlsB,EAErB,CAAA,EAAA4H,KAAKgvN,aAAequB,GAAgBC,IAEzCl1N,QACSpoB,KAAKu2E,YACVjP,GAAA,CAAAhlD,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAjH,IAAA,qBAAA,CAGDs0B,EAAK2J,YAAY,aAAc,CAC9BvvB,YAAaq/M,EACb5+M,OAAQ,CAAEggH,IAAKjnG,EAAQi5K,SAAU7sK,EAAK6sK,cACvC,GAIT,ukBCvNF,SAAS+sB,GAAmBjlP,GACpB,IAAAklP,EAAcllP,aAAiBxC,OAASwC,EAAM3C,OAC9CqF,EAA4B,WAAjBxD,EAAOc,MAAwBA,aAAiBxC,OAC3DunP,EAAyB,OAAV/kP,GAAkB0C,GAAYvE,OAAO4F,KAAK/D,GAAO3C,OAC/D,OAAA6nP,GAAeH,IAAiB,CAAC,OAAQ,GAAI,aAAa1mO,SAASze,OAAOI,GACnF,CAcwB,SAAAmlP,GAAUt+O,EAA4BsqC,GACtD,IAAAi0M,EAAkBruN,MAAI,MAC5Bq/C,EAA4Bp/C,GAAU,QAASnwB,EAAMof,QAA7CrC,EAAGwyD,EAAHxyD,EAAG2T,EAAA6+C,EAAA7+C,aACLy9B,EAAcntB,KACpB+qC,EAAiC7nC,SAAOlkC,GAAhC0wK,EAAA3kG,EAAA2kG,YAAa43C,EAAQv8I,EAARu8I,QACrBiJ,EAA6ClG,KAArCkE,EAAAgC,EAAAhC,mBAAoBM,EAAa0B,EAAb1B,aACtB2uB,EAAwBtuN,EAAAA,MAQ9BgtD,EAAAvgE,GALwC2nD,GACtCosG,EACA1wK,EAAM2xO,mBACN3xO,EAAM4yO,eACN,eACF,GALO0J,EAAcp/J,EAAA,GAAAuhK,EAAevhK,EAAA,GAQ9Bq/J,EAAmBrsN,EAAAA,IAAiBosN,EAAanjP,OAEjDulP,EAAoB/mO,EAAAA,UAAS,WACjC,IA/BqBjT,EACjBi6O,EA8BEj1K,GA/BehlE,EA+Be43O,EAAanjP,OAAS,CAAE,EA9BxDwlP,EAA8B,CAAA,EACpCrnP,OAAO4F,KAAKwH,GAAM4L,SAAQ,SAAC9X,GACzB,IAAMymC,EAAOv6B,EAAKlM,GACd4lP,GAAmBn/M,KACrB0/M,EAAenmP,GAAOymC,EAE1B,IACO0/M,GAwBL,OAAQrC,EAAanjP,QAAU7B,OAAO4F,KAAKwsE,GAAalzE,MAC1D,IA6BA,SAASooP,IACP,IAAMtoP,EAAgB,GAChBgyN,EAAkC,GAsBjC,OArBOu2B,EAAA7+O,EAAMsoN,QAASA,GAC7BA,EACGloL,QAAO,SAACi/G,GAAQ,OAAAA,EAAIj/G,MAAM,IAC1B9vB,SAAQ,SAAC+uI,EAAKpkJ,GACT,IAAA9B,EAAQmjP,EAAanjP,MAAMkmJ,EAAIi0E,QAC/B,GAAAj0E,EAAIj/G,OAAOhT,OAAS,CAAC,QAAQ5V,SAASze,OAAOI,IAAS,CACxD,IAAM4rJ,EAAiB5rJ,aAAiBxC,MAAQwC,EAAQ,CAACA,GACnDsgD,EAAkB,GACxB4lG,EAAIj/G,OAAOhT,KAAK9c,SAAQ,SAAC6jE,GACnB4wE,EAAevtI,SAAS28D,EAAOh7E,QAC3BsgD,EAAAr2C,KAAK+wE,EAAO16B,MAEtB,IACAtgD,EAAQsgD,EAAMpxC,MAChB,CACI,GAAA+1O,GAAmBjlP,GAAQ,CAAA,IAAA2lP,EAAAC,EACvBtlM,EAAQ58C,EAAe,QAAfiiP,EAAWz/F,EAAIj/G,cAAJ0+M,IAAIA,OAAJA,EAAAA,EAAYrlM,OAAS4lG,EAAIj/G,OAAOqZ,MAAMh8B,EAACA,GAAgBshO,QAAZA,EAAA1/F,EAAIj/G,cAAJ2+M,IAAYA,OAAZA,EAAAA,EAAYtlM,MAC1E9wB,EAAQwiC,GAAY7gB,EAAQnK,MAAOk/G,EAAKpkJ,GAC9C3E,EAAI8M,KAAKguB,GAAAA,OAAGqoB,GAAS9wB,EAAAyI,UAAAA,OAASj4B,GAChC,CACF,IACK7C,EAAI+R,KAAK,SAClB,CAES,SAAAw2O,EAAcx/F,EAA6BipE,GAC9CjpE,EAAA/uI,SAAQ,SAAC8nC,GACPA,EAAOlZ,UACK2/M,EAAAzmM,EAAOlZ,SAAUopL,GAEjCA,EAAQllN,KAAKg1C,EACf,GACF,CAES,SAAA4mM,EAAoBvgN,EAAU2Z,GACrC,IAAMs4H,EAAcl6I,GAAAA,MACf+lN,EAAiBpjP,OAAA,CAAA,EAAAF,EACnBm/C,CAAAA,EAAAA,EAAOk7K,OAAS70L,IAEnB89M,EAAiBpjP,MAAQu3K,EACpBt4H,EAAOhY,OAAOy9M,qBACAntE,EAAAA,EAAa,gBAAiBt4H,EAEnD,CAES,SAAA6mM,EACPvuE,EACAnsH,EACAnM,GACA,IAAAuqG,EACA87F,EAAgB/tE,EAAa,CAAErxB,IAAKjnG,EAAQmM,QAAAA,IACtC,QAAAo+F,EAAA3iJ,EAAAsoD,gBAAA,IAAAq6F,GAAAA,EAAAlrJ,KAAAuI,EAAW,CAAEogC,OAAQswI,GAAe,CAAEnsH,QAAS,UACvD,CAEA,SAASo4G,EAAQvkH,GAAyB,IAAAyR,EAAAq1L,EAYvBxuE,EAXgBl6I,GAAAA,GAAA,GAC5B8lN,EAAanjP,OAAA,CAAA,EAAAF,EAAA,CAAA,EACfm/C,EAAOk7K,OAON,QANAzpK,EACA,QADAq1L,EAAA9mM,EAAOhY,OAAOu2M,kBACd,IAAAuI,EAAAA,EAAA,CACE5B,OAAQ,GACRp6I,SAAU,GACVzqG,MAAO,IACP2/C,EAAOhY,OAAOtkC,aAChB,IAAA+tD,EAAAA,EAAA,KAE0B,QAASzR,EACzC,CAEA,SAAS+mM,IAEUF,EADEvI,GAAqBpuB,EAAQnvN,OACnB,aAAS,EACxC,CAEA,SAASmiJ,EAAUljG,GACA6mM,EAAA1C,EAAiBpjP,MAAO,UAAWi/C,EACtD,CA8BA,SAASqrD,EAAqBlxE,GACxBA,IAAYisN,EAAsBrlP,QACpCqlP,EAAsBrlP,OAASo5B,EAEnC,CAEO,OA7IPmP,EAAAA,MAAM,CAAC46M,IAAe,SAAA/5M,GAAW,IAAT9D,EAAS9hB,GAAA4lB,EAAA,GAAN,GACzBg6M,EAAiBpjP,MAAQslC,CAC3B,IA2IO,CACLigN,kBAAAA,EACAF,sBAAAA,EACAY,iBApCF,SAA0BvnL,GAA6E,IAAAwnL,EAA3EhgG,EAAKxnF,EAALwnF,IAAKgyE,EAAAx5J,EAAAw5J,SAE7B,OAAAz6L,EAAAA,YAAAylN,GAAA,CAAAjkM,OAEUinG,WACEgyE,EAAAprM,WACEjmB,EAAMimB,WAAAq2N,aACJA,EAAanjP,MAAAojP,iBACTA,EAAiBpjP,MACnCo2N,mBAAoBA,eACNM,EAAA1nJ,WACFk3E,EAAIj/G,OAAO+nC,kBACfnoE,EAAM8kB,OACd1F,OAAQpf,EAAMof,OAAAu9I,QACLA,EACTrhB,UAAWA,sBACU0jG,EAAAxC,4BAAA6C,EACAd,EAAgBplP,aAAA,IAAAkmP,OAAA,EAAhBA,EAAuBv7J,IAC5C7a,gBAAiBw6B,GAfR,CAAEx9E,WAAYqkB,EAAQnK,MAAMla,YAkB3C,EAgBEq5N,qBA7IF,WAAgC,IAAAhhB,EAAAihB,EAC9B,GAAIb,EAAkBvlP,MAAc,OAAA,KACpC,IAAMylC,EACJhI,EAAAO,YAAA,MAAA,CAAAN,MAAY04L,EAAmB90N,QAAAm8B,CAAAA,EAAAA,yBAI1B7Z,EAAE2T,EAAav3B,MAAM4wB,iBAAkB,CACtCtvB,OAAQmkP,IACRngP,OAAyB,QAAlB6/N,EAAAt+N,EAAMwnB,kBAAY,IAAA82M,OAAA,EAAlBA,EAAkB12M,iBAAA23N,EAASv/O,EAAM0E,YAAM,IAAA66O,OAAA,EAAZA,EAAY/oP,qEAGD2oP,GAC9C,CAAAh8N,QAAA,WAAA,MAAA,CAAAuN,EAAav3B,MAAMowB,4BAAA,MAIpBi2N,EAAgBrxL,EAAY,aAClC,OAAKnuD,EAAM0xO,YAAc8N,GAAsC,OAApBx/O,EAAM0xO,UAA2B,KAC5E96M,EAAAA,YAAA,MAAA,CAAAC,MAAmB04L,EAAmBnvC,OAAQo/D,CAAAA,GAAiB5gN,GACjE,EA0HE6gN,yBAfF,SAAkCjD,GAChC+B,EAAgBplP,MAAQqjP,CAC1B,EAeF;;;;;;KCrMA,SAASkD,GAAQ7hP,EAAQ8hP,GACvB,IAAIziP,EAAO5F,OAAO4F,KAAKW,GACvB,GAAIvG,OAAOkV,sBAAuB,CAChC,IAAIozO,EAAUtoP,OAAOkV,sBAAsB3O,GACvC8hP,IACFC,EAAUA,EAAQx/M,QAAO,SAAUy/M,GACjC,OAAOvoP,OAAOwoP,yBAAyBjiP,EAAQgiP,GAAKvmP,UACtD,KAEF4D,EAAKkG,KAAKpE,MAAM9B,EAAM0iP,EACxB,CACA,OAAO1iP,CACT,CACA,SAAS6iP,GAAe/sN,GACtB,IAAK,IAAIv8B,EAAI,EAAGA,EAAIsI,UAAUvI,OAAQC,IAAK,CACzC,IAAI4H,EAAyB,MAAhBU,UAAUtI,GAAasI,UAAUtI,GAAK,GAC/CA,EAAI,EACNipP,GAAQpoP,OAAO+G,IAAS,GAAMiS,SAAQ,SAAU9X,GAC9CS,GAAgB+5B,EAAQx6B,EAAK6F,EAAO7F,GACtC,IACSlB,OAAO0oP,0BAChB1oP,OAAO2oP,iBAAiBjtN,EAAQ17B,OAAO0oP,0BAA0B3hP,IAEjEqhP,GAAQpoP,OAAO+G,IAASiS,SAAQ,SAAU9X,GACxClB,OAAO+B,eAAe25B,EAAQx6B,EAAKlB,OAAOwoP,yBAAyBzhP,EAAQ7F,GAC7E,GAEJ,CACA,OAAOw6B,CACT,CACA,SAAS36B,GAAQa,GAYf,OAREb,GADoB,mBAAXvB,QAAoD,iBAApBA,OAAOC,SACtC,SAAUmC,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXpC,QAAyBoC,EAAIvB,cAAgBb,QAAUoC,IAAQpC,OAAOS,UAAY,gBAAkB2B,GAGtHb,GAAQa,EACjB,CACA,SAASD,GAAgBC,EAAKV,EAAKW,GAWjC,OAVIX,KAAOU,EACT5B,OAAO+B,eAAeH,EAAKV,EAAK,CAC9BW,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZN,EAAIV,GAAOW,EAEND,CACT,CACA,SAASy7I,KAYP,OAXAA,GAAWr9I,OAAOq5B,QAAU,SAAUqC,GACpC,IAAK,IAAIv8B,EAAI,EAAGA,EAAIsI,UAAUvI,OAAQC,IAAK,CACzC,IAAI4H,EAASU,UAAUtI,GACvB,IAAK,IAAI+B,KAAO6F,EACV/G,OAAOC,UAAUyC,eAAevC,KAAK4G,EAAQ7F,KAC/Cw6B,EAAOx6B,GAAO6F,EAAO7F,GAG3B,CACA,OAAOw6B,GAEF2hH,GAAS31I,MAAM6B,KAAM9B,UAC9B,CAaA,SAAS+zB,GAAyBz0B,EAAQ00B,GACxC,GAAc,MAAV10B,EAAgB,MAAO,GAC3B,IACI7F,EAAK/B,EADLu8B,EAdN,SAAuC30B,EAAQ00B,GAC7C,GAAc,MAAV10B,EAAgB,MAAO,GAC3B,IAEI7F,EAAK/B,EAFLu8B,EAAS,CAAA,EACTC,EAAa37B,OAAO4F,KAAKmB,GAE7B,IAAK5H,EAAI,EAAGA,EAAIw8B,EAAWz8B,OAAQC,IACjC+B,EAAMy6B,EAAWx8B,GACbs8B,EAASG,QAAQ16B,IAAQ,IAC7Bw6B,EAAOx6B,GAAO6F,EAAO7F,IAEvB,OAAOw6B,CACT,CAGektN,CAA8B7hP,EAAQ00B,GAEnD,GAAIz7B,OAAOkV,sBAAuB,CAChC,IAAI4mB,EAAmB97B,OAAOkV,sBAAsBnO,GACpD,IAAK5H,EAAI,EAAGA,EAAI28B,EAAiB58B,OAAQC,IACvC+B,EAAM46B,EAAiB38B,GACnBs8B,EAASG,QAAQ16B,IAAQ,GACxBlB,OAAOC,UAAUkK,qBAAqBhK,KAAK4G,EAAQ7F,KACxDw6B,EAAOx6B,GAAO6F,EAAO7F,GAEzB,CACA,OAAOw6B,CACT,CA6BA,SAASqB,GAAU5pB,GACjB,GAAsB,oBAAXqrB,QAA0BA,OAAO3B,UAC1C,QAAuBA,UAAUE,UAAUxuB,MAAM4E,EAErD,CACA,IAAI01O,GAAa9rN,GAAU,yDACvB+rN,GAAO/rN,GAAU,SACjBgsN,GAAUhsN,GAAU,YACpBisN,GAASjsN,GAAU,aAAeA,GAAU,aAAeA,GAAU,YACrEksN,GAAMlsN,GAAU,mBAChBmsN,GAAmBnsN,GAAU,YAAcA,GAAU,YAErDosN,GAAc,CAChBC,SAAS,EACTzoL,SAAS,GAEX,SAAS5+B,GAAG1G,EAAI8G,EAAOd,GACrBhG,EAAG4G,iBAAiBE,EAAOd,GAAKwnN,IAAcM,GAChD,CACA,SAAS7mN,GAAIjH,EAAI8G,EAAOd,GACtBhG,EAAGkH,oBAAoBJ,EAAOd,GAAKwnN,IAAcM,GACnD,CACA,SAAS76L,GAAyBjzB,EAAe2yB,GAC/C,GAAKA,EAAL,CAEA,GADgB,MAAhBA,EAAS,KAAeA,EAAWA,EAASxlC,UAAU,IAClD6S,EACF,IACE,GAAIA,EAAGizB,QACL,OAAOjzB,EAAGizB,QAAQN,GACb,GAAI3yB,EAAGozB,kBACZ,OAAOpzB,EAAGozB,kBAAkBT,GACvB,GAAI3yB,EAAGszB,sBACZ,OAAOtzB,EAAGszB,sBAAsBX,EAEnC,CAAC,MAAOrmC,GACP,OAAO,CACT,CAEF,OAAO,CAfQ,CAgBjB,CACA,SAAS0hO,GAAgBhuN,GACvB,OAAOA,EAAGghC,MAAQhhC,IAAO2G,UAAY3G,EAAGghC,KAAK9xD,SAAW8wB,EAAGghC,KAAOhhC,EAAGuL,UACvE,CACA,SAASioB,GAAyBxzB,EAAe2yB,EAA0B8B,EAAKw5L,GAC9E,GAAIjuN,EAAI,CACNy0B,EAAMA,GAAO9tB,SACb,EAAG,CACD,GAAgB,MAAZgsB,IAAqC,MAAhBA,EAAS,GAAa3yB,EAAGuL,aAAekpB,GAAOxB,GAAQjzB,EAAI2yB,GAAYM,GAAQjzB,EAAI2yB,KAAcs7L,GAAcjuN,IAAOy0B,EAC7I,OAAOz0B,EAET,GAAIA,IAAOy0B,EAAK,KAElB,OAASz0B,EAAKguN,GAAgBhuN,GAChC,CACA,OAAO,IACT,CACA,IA2SIkuN,GA3SAC,GAAU,OACd,SAASC,GAAYpuN,EAAI/6B,EAAMo6D,GAC7B,GAAIr/B,GAAM/6B,EACR,GAAI+6B,EAAGuH,UACLvH,EAAGuH,UAAU83B,EAAQ,MAAQ,UAAUp6D,OAClC,CACL,IAAIwiC,GAAa,IAAMzH,EAAGyH,UAAY,KAAKx+B,QAAQklP,GAAS,KAAKllP,QAAQ,IAAMhE,EAAO,IAAK,KAC3F+6B,EAAGyH,WAAaA,GAAa43B,EAAQ,IAAMp6D,EAAO,KAAKgE,QAAQklP,GAAS,IAC1E,CAEJ,CACA,SAASzsL,GAAI1hC,EAAIomB,EAAMta,GACrB,IAAI5L,EAAQF,GAAMA,EAAGE,MACrB,GAAIA,EAAO,CACT,QAAY,IAAR4L,EAMF,OALInF,SAASyE,aAAezE,SAASyE,YAAY/H,iBAC/CyI,EAAMnF,SAASyE,YAAY/H,iBAAiBrD,EAAI,IACvCA,EAAGquN,eACZviN,EAAM9L,EAAGquN,mBAEK,IAATjoM,EAAkBta,EAAMA,EAAIsa,GAE7BA,KAAQlmB,IAAsC,IAA5BkmB,EAAK7lB,QAAQ,YACnC6lB,EAAO,WAAaA,GAEtBlmB,EAAMkmB,GAAQta,GAAsB,iBAARA,EAAmB,GAAK,KAExD,CACF,CACA,SAASwiN,GAAOtuN,EAAIuuN,GAClB,IAAIC,EAAoB,GACxB,GAAkB,iBAAPxuN,EACTwuN,EAAoBxuN,OAEpB,EAAG,CACD,IAAIlyB,EAAY4zD,GAAI1hC,EAAI,aACpBlyB,GAA2B,SAAdA,IACf0gP,EAAoB1gP,EAAY,IAAM0gP,EAGzC,QAASD,IAAavuN,EAAKA,EAAGuL,aAEjC,IAAIkjN,EAAWtrN,OAAOurN,WAAavrN,OAAOwrN,iBAAmBxrN,OAAOyrN,WAAazrN,OAAO0rN,YAExF,OAAOJ,GAAY,IAAIA,EAASD,EAClC,CACA,SAAS9wL,GAAKjJ,EAAKmsC,EAASx8F,GAC1B,GAAIqwD,EAAK,CACP,IAAIh6B,EAAOg6B,EAAIq6L,qBAAqBluJ,GAClC98F,EAAI,EACJY,EAAI+1B,EAAK52B,OACX,GAAIO,EACF,KAAON,EAAIY,EAAGZ,IACZM,EAASq2B,EAAK32B,GAAIA,GAGtB,OAAO22B,CACT,CACA,MAAO,EACT,CACA,SAASs0N,KACP,IAAIC,EAAmBroN,SAASqoN,iBAChC,OAAIA,GAGKroN,SAASkC,eAEpB,CAWA,SAASomN,GAAQjvN,EAAIkvN,EAA2BC,EAA2BC,EAAW7mN,GACpF,GAAKvI,EAAGyK,uBAAyBzK,IAAOmD,OAAxC,CACA,IAAIksN,EAAQ1kN,EAAKC,EAAMC,EAAQC,EAAOxG,EAAQD,EAiB9C,GAhBIrE,IAAOmD,QAAUnD,EAAGuL,YAAcvL,IAAO+uN,MAE3CpkN,GADA0kN,EAASrvN,EAAGyK,yBACCE,IACbC,EAAOykN,EAAOzkN,KACdC,EAASwkN,EAAOxkN,OAChBC,EAAQukN,EAAOvkN,MACfxG,EAAS+qN,EAAO/qN,OAChBD,EAAQgrN,EAAOhrN,QAEfsG,EAAM,EACNC,EAAO,EACPC,EAAS1H,OAAO4H,YAChBD,EAAQ3H,OAAO6H,WACf1G,EAASnB,OAAO4H,YAChB1G,EAAQlB,OAAO6H,aAEZkkN,GAA6BC,IAA8BnvN,IAAOmD,SAErEoF,EAAYA,GAAavI,EAAGuL,YAIvBiiN,IACH,GACE,GAAIjlN,GAAaA,EAAUkC,wBAA0D,SAAhCi3B,GAAIn5B,EAAW,cAA2B4mN,GAA4D,WAA/BztL,GAAIn5B,EAAW,aAA2B,CACpK,IAAI+mN,EAAgB/mN,EAAUkC,wBAG9BE,GAAO2kN,EAAc3kN,IAAMnhC,SAASk4D,GAAIn5B,EAAW,qBACnDqC,GAAQ0kN,EAAc1kN,KAAOphC,SAASk4D,GAAIn5B,EAAW,sBACrDsC,EAASF,EAAM0kN,EAAO/qN,OACtBwG,EAAQF,EAAOykN,EAAOhrN,MACtB,KACF,QAEOkE,EAAYA,EAAUgD,YAGnC,GAAI6jN,GAAapvN,IAAOmD,OAAQ,CAE9B,IAAIosN,EAAWjB,GAAO/lN,GAAavI,GACjCugC,EAASgvL,GAAYA,EAASjlO,EAC9Bk2C,EAAS+uL,GAAYA,EAASxkO,EAC5BwkO,IAKF1kN,GAJAF,GAAO61B,IAGPl8B,GAAUk8B,GAEV11B,GAJAF,GAAQ21B,IACRl8B,GAASk8B,GAKb,CACA,MAAO,CACL51B,IAAKA,EACLC,KAAMA,EACNC,OAAQA,EACRC,MAAOA,EACPzG,MAAOA,EACPC,OAAQA,EA5DsC,CA8DlD,CASA,SAASkrN,GAAexvN,EAAIyvN,EAAQC,GAKlC,IAJA,IAAIroO,EAASsoO,GAA2B3vN,GAAI,GAC1C4vN,EAAYX,GAAQjvN,GAAIyvN,GAGnBpoO,GAAQ,CACb,IAAIwoO,EAAgBZ,GAAQ5nO,GAAQqoO,GAOpC,KALmB,QAAfA,GAAuC,SAAfA,EAChBE,GAAaC,EAEbD,GAAaC,GAEX,OAAOxoO,EACrB,GAAIA,IAAW0nO,KAA6B,MAC5C1nO,EAASsoO,GAA2BtoO,GAAQ,EAC9C,CACA,OAAO,CACT,CAUA,SAASsxE,GAAS34D,EAAI8vN,EAAUvtO,EAASwtO,GAIvC,IAHA,IAAIC,EAAe,EACjBlsP,EAAI,EACJyoC,EAAWvM,EAAGuM,SACTzoC,EAAIyoC,EAAS1oC,QAAQ,CAC1B,GAAkC,SAA9B0oC,EAASzoC,GAAGo8B,MAAM84B,SAAsBzsB,EAASzoC,KAAOmsP,GAAS17M,QAAUw7M,GAAiBxjN,EAASzoC,KAAOmsP,GAAS5+J,UAAY79B,GAAQjnB,EAASzoC,GAAIye,EAAQyoE,UAAWhrD,GAAI,GAAQ,CACvL,GAAIgwN,IAAiBF,EACnB,OAAOvjN,EAASzoC,GAElBksP,GACF,CACAlsP,GACF,CACA,OAAO,IACT,CAQA,SAASosP,GAAUlwN,EAAI2yB,GAErB,IADA,IAAIxtC,EAAO6a,EAAGmwN,iBACPhrO,IAASA,IAAS8qO,GAAS17M,OAAkC,SAAzBmtB,GAAIv8C,EAAM,YAAyBwtC,IAAaM,GAAQ9tC,EAAMwtC,KACvGxtC,EAAOA,EAAK09M,uBAEd,OAAO19M,GAAQ,IACjB,CASA,SAAS7c,GAAM03B,EAAI2yB,GACjB,IAAIrqD,EAAQ,EACZ,IAAK03B,IAAOA,EAAGuL,WACb,OAAQ,EAIV,KAAOvL,EAAKA,EAAG6iM,wBACqB,aAA9B7iM,EAAGwL,SAASkuE,eAAgC15E,IAAOiwN,GAASnkO,OAAW6mC,IAAYM,GAAQjzB,EAAI2yB,IACjGrqD,IAGJ,OAAOA,CACT,CAQA,SAAS8nP,GAAwBpwN,GAC/B,IAAI2gC,EAAa,EACf5U,EAAY,EACZskM,EAActB,KAChB,GAAI/uN,EACF,EAAG,CACD,IAAIuvN,EAAWjB,GAAOtuN,GACpBugC,EAASgvL,EAASjlO,EAClBk2C,EAAS+uL,EAASxkO,EACpB41C,GAAc3gC,EAAG4L,WAAa20B,EAC9BxU,GAAa/rB,EAAGoJ,UAAYo3B,CAC7B,OAAQxgC,IAAOqwN,IAAgBrwN,EAAKA,EAAGuL,aAE1C,MAAO,CAACo1B,EAAY5U,EACtB,CAiBA,SAAS4jM,GAA2B3vN,EAAIswN,GAEtC,IAAKtwN,IAAOA,EAAGyK,sBAAuB,OAAOskN,KAC7C,IAAIwB,EAAOvwN,EACPwwN,GAAU,EACd,GAEE,GAAID,EAAK3mN,YAAc2mN,EAAKzmN,aAAeymN,EAAKhtL,aAAegtL,EAAK1pL,aAAc,CAChF,IAAI4pL,EAAU/uL,GAAI6uL,GAClB,GAAIA,EAAK3mN,YAAc2mN,EAAKzmN,cAAqC,QAArB2mN,EAAQ7qL,WAA4C,UAArB6qL,EAAQ7qL,YAA0B2qL,EAAKhtL,aAAegtL,EAAK1pL,eAAsC,QAArB4pL,EAAQ5qL,WAA4C,UAArB4qL,EAAQ5qL,WAAwB,CACpN,IAAK0qL,EAAK9lN,uBAAyB8lN,IAAS5pN,SAAS0B,KAAM,OAAO0mN,KAClE,GAAIyB,GAAWF,EAAa,OAAOC,EACnCC,GAAU,CACZ,CACF,QAEOD,EAAOA,EAAKhlN,YACrB,OAAOwjN,IACT,CAWA,SAAS2B,GAAY74K,EAAOC,GAC1B,OAAOpqE,KAAK2hB,MAAMwoD,EAAMltC,OAASj9B,KAAK2hB,MAAMyoD,EAAMntC,MAAQj9B,KAAK2hB,MAAMwoD,EAAMjtC,QAAUl9B,KAAK2hB,MAAMyoD,EAAMltC,OAASl9B,KAAK2hB,MAAMwoD,EAAMvzC,UAAY52B,KAAK2hB,MAAMyoD,EAAMxzC,SAAW52B,KAAK2hB,MAAMwoD,EAAMxzC,SAAW32B,KAAK2hB,MAAMyoD,EAAMzzC,MACvN,CAEA,SAAS/a,GAASlR,EAAU8T,GAC1B,OAAO,WACL,IAAKgiO,GAAkB,CACrB,IAAIngP,EAAO3B,UAES,IAAhB2B,EAAKlK,OACPuU,EAAStT,KAFDoJ,KAEaH,EAAK,IAE1BqK,EAAS/L,MAJD6B,KAIcH,GAExBmgP,GAAmB5qO,YAAW,WAC5B4qO,QAAmB,CACpB,GAAEhiO,EACL,EAEJ,CAKA,SAAS6vN,GAAS/7M,EAAInT,EAAG5B,GACvB+U,EAAG4L,YAAc/e,EACjBmT,EAAGoJ,WAAane,CAClB,CACA,SAASa,GAAMkU,GACb,IAAI2wN,EAAUxtN,OAAOwtN,QACjB3lO,EAAImY,OAAOytN,QAAUztN,OAAO0tN,MAChC,OAAIF,GAAWA,EAAQh7M,IACdg7M,EAAQh7M,IAAI3V,GAAI+uI,WAAU,GACxB/jJ,EACFA,EAAEgV,GAAIlU,OAAM,GAAM,GAElBkU,EAAG+uI,WAAU,EAExB,CAeA,SAAS+hF,GAAkCvoN,EAAWhmB,EAASwuO,GAC7D,IAAIvmN,EAAO,CAAA,EAcX,OAbAxmC,MAAMK,KAAKkkC,EAAUgE,UAAU5uB,SAAQ,SAAUw5B,GAC/C,IAAI65M,EAAYC,EAAWC,EAAaC,EACxC,GAAK39L,GAAQrc,EAAO50B,EAAQyoE,UAAWziD,GAAW,KAAU4O,EAAMi6M,UAAYj6M,IAAU45M,EAAxF,CACA,IAAIM,EAAYpC,GAAQ93M,GACxB3M,EAAKI,KAAOl9B,KAAK0U,IAAiC,QAA5B4uO,EAAaxmN,EAAKI,YAAiC,IAAfomN,EAAwBA,EAAahrO,IAAUqrO,EAAUzmN,MACnHJ,EAAKG,IAAMj9B,KAAK0U,IAA+B,QAA1B6uO,EAAYzmN,EAAKG,WAA+B,IAAdsmN,EAAuBA,EAAYjrO,IAAUqrO,EAAU1mN,KAC9GH,EAAKM,MAAQp9B,KAAKC,IAAmC,QAA9BujP,EAAc1mN,EAAKM,aAAmC,IAAhBomN,EAAyBA,GAAelrO,IAAUqrO,EAAUvmN,OACzHN,EAAKK,OAASn9B,KAAKC,IAAqC,QAAhCwjP,EAAe3mN,EAAKK,cAAqC,IAAjBsmN,EAA0BA,GAAgBnrO,IAAUqrO,EAAUxmN,OAL7B,CAMnG,IACAL,EAAKnG,MAAQmG,EAAKM,MAAQN,EAAKI,KAC/BJ,EAAKlG,OAASkG,EAAKK,OAASL,EAAKG,IACjCH,EAAK3d,EAAI2d,EAAKI,KACdJ,EAAKvf,EAAIuf,EAAKG,IACPH,CACT,CACA,IAAI8mN,GAAU,YAAa,IAAI1lP,MAAOmjB,UAEtC,SAASwiO,KACP,IACEC,EADEC,EAAkB,GAEtB,MAAO,CACLC,sBAAuB,YACrBD,EAAkB,GACbvjP,KAAKqU,QAAQyP,YACH,GAAGjtB,MAAMD,KAAKoJ,KAAK8xB,GAAGuM,UAC5B5uB,SAAQ,SAAUw5B,GACzB,GAA8B,SAA1BuqB,GAAIvqB,EAAO,YAAyBA,IAAU84M,GAAS17M,MAA3D,CACAk9M,EAAgBhhP,KAAK,CACnB4vB,OAAQ8W,EACR3M,KAAMykN,GAAQ93M,KAEhB,IAAIw6M,EAAWvE,GAAe,CAAA,EAAIqE,EAAgBA,EAAgB5tP,OAAS,GAAG2mC,MAG9E,GAAI2M,EAAMy6M,sBAAuB,CAC/B,IAAIC,EAAcvD,GAAOn3M,GAAO,GAC5B06M,IACFF,EAAShnN,KAAOknN,EAAYtnO,EAC5BonO,EAAS/mN,MAAQinN,EAAYhqP,EAEjC,CACAsvC,EAAMw6M,SAAWA,CAfiD,CAgBpE,GACD,EACDG,kBAAmB,SAA2BzyL,GAC5CoyL,EAAgBhhP,KAAK4uD,EACtB,EACD0yL,qBAAsB,SAA8B1xN,GAClDoxN,EAAgBz/O,OA7ItB,SAAuBrO,EAAK4C,GAC1B,IAAK,IAAIzC,KAAKH,EACZ,GAAKA,EAAI0D,eAAevD,GACxB,IAAK,IAAI+B,KAAOU,EACd,GAAIA,EAAIc,eAAexB,IAAQU,EAAIV,KAASlC,EAAIG,GAAG+B,GAAM,OAAOQ,OAAOvC,GAG3E,OAAQ,CACV,CAqI6BkuP,CAAcP,EAAiB,CACpDpxN,OAAQA,IACN,EACL,EACD4xN,WAAY,SAAoB75O,GAC9B,IAAIy5C,EAAQ3jD,KACZ,IAAKA,KAAKqU,QAAQyP,UAGhB,OAFApO,aAAa4tO,QACW,mBAAbp5O,GAAyBA,KAGtC,IAAI85O,GAAY,EACdC,EAAgB,EAClBV,EAAgB9zO,SAAQ,SAAU0hD,GAChC,IAAIp8C,EAAO,EACTod,EAASg/B,EAAMh/B,OACfsxN,EAAWtxN,EAAOsxN,SAClBS,EAASnD,GAAQ5uN,GACjBgyN,EAAehyN,EAAOgyN,aACtBC,EAAajyN,EAAOiyN,WACpBC,EAAgBlzL,EAAM70B,KACtBgoN,EAAelE,GAAOjuN,GAAQ,GAC5BmyN,IAEFJ,EAAOznN,KAAO6nN,EAAajoO,EAC3B6nO,EAAOxnN,MAAQ4nN,EAAa3qP,GAE9Bw4B,EAAO+xN,OAASA,EACZ/xN,EAAOuxN,uBAELlB,GAAY2B,EAAcD,KAAY1B,GAAYiB,EAAUS,KAE/DG,EAAc5nN,IAAMynN,EAAOznN,MAAQ4nN,EAAc3nN,KAAOwnN,EAAOxnN,SAAW+mN,EAAShnN,IAAMynN,EAAOznN,MAAQgnN,EAAS/mN,KAAOwnN,EAAOxnN,QAE9H3nB,EAoEZ,SAA2BsvO,EAAeZ,EAAUS,EAAQ7vO,GAC1D,OAAO7U,KAAK+kP,KAAK/kP,KAAKu+F,IAAI0lJ,EAAShnN,IAAM4nN,EAAc5nN,IAAK,GAAKj9B,KAAKu+F,IAAI0lJ,EAAS/mN,KAAO2nN,EAAc3nN,KAAM,IAAMl9B,KAAK+kP,KAAK/kP,KAAKu+F,IAAI0lJ,EAAShnN,IAAMynN,EAAOznN,IAAK,GAAKj9B,KAAKu+F,IAAI0lJ,EAAS/mN,KAAOwnN,EAAOxnN,KAAM,IAAMroB,EAAQyP,SAC7N,CAtEmB0gO,CAAkBH,EAAeF,EAAcC,EAAYzgM,EAAMtvC,UAKvEmuO,GAAY0B,EAAQT,KACvBtxN,EAAOgyN,aAAeV,EACtBtxN,EAAOiyN,WAAaF,EACfnvO,IACHA,EAAO4uC,EAAMtvC,QAAQyP,WAEvB6/B,EAAMsI,QAAQ95B,EAAQkyN,EAAeH,EAAQnvO,IAE3CA,IACFivO,GAAY,EACZC,EAAgBzkP,KAAKC,IAAIwkP,EAAelvO,GACxCW,aAAayc,EAAOsyN,qBACpBtyN,EAAOsyN,oBAAsBrvO,YAAW,WACtC+c,EAAO8xN,cAAgB,EACvB9xN,EAAOgyN,aAAe,KACtBhyN,EAAOsxN,SAAW,KAClBtxN,EAAOiyN,WAAa,KACpBjyN,EAAOuxN,sBAAwB,IAChC,GAAE3uO,GACHod,EAAOuxN,sBAAwB3uO,EAEnC,IACAW,aAAa4tO,GACRU,EAGHV,EAAsBluO,YAAW,WACP,mBAAblL,GAAyBA,GACrC,GAAE+5O,GAJqB,mBAAb/5O,GAAyBA,IAMtCq5O,EAAkB,EACnB,EACDt3L,QAAS,SAAiB95B,EAAQuyN,EAAaR,EAAQ7rN,GACrD,GAAIA,EAAU,CACZm7B,GAAIrhC,EAAQ,aAAc,IAC1BqhC,GAAIrhC,EAAQ,YAAa,IACzB,IAAIkvN,EAAWjB,GAAOpgP,KAAK8xB,IACzBugC,EAASgvL,GAAYA,EAASjlO,EAC9Bk2C,EAAS+uL,GAAYA,EAASxkO,EAC9ByvL,GAAco4C,EAAYhoN,KAAOwnN,EAAOxnN,OAAS21B,GAAU,GAC3Dm5D,GAAck5H,EAAYjoN,IAAMynN,EAAOznN,MAAQ61B,GAAU,GAC3DngC,EAAOwyN,aAAer4C,EACtBn6K,EAAOyyN,aAAep5H,EACtBh4D,GAAIrhC,EAAQ,YAAa,eAAiBm6K,EAAa,MAAQ9gF,EAAa,SAC5ExrH,KAAK6kP,gBAgBb,SAAiB1yN,GACf,OAAOA,EAAOiW,WAChB,CAlB+B08M,CAAQ3yN,GAE/BqhC,GAAIrhC,EAAQ,aAAc,aAAekG,EAAW,MAAQr4B,KAAKqU,QAAQ4mB,OAAS,IAAMj7B,KAAKqU,QAAQ4mB,OAAS,KAC9Gu4B,GAAIrhC,EAAQ,YAAa,sBACE,iBAApBA,EAAO+wN,UAAyBxtO,aAAayc,EAAO+wN,UAC3D/wN,EAAO+wN,SAAW9tO,YAAW,WAC3Bo+C,GAAIrhC,EAAQ,aAAc,IAC1BqhC,GAAIrhC,EAAQ,YAAa,IACzBA,EAAO+wN,UAAW,EAClB/wN,EAAOwyN,YAAa,EACpBxyN,EAAOyyN,YAAa,CACrB,GAAEvsN,EACL,CACF,EAEJ,CAQA,IAAI0sN,GAAU,GACVl1F,GAAW,CACbm1F,qBAAqB,GAEnBC,GAAgB,CAClB3gN,MAAO,SAAe4gN,GAEpB,IAAK,IAAI5xK,KAAUu8E,GACbA,GAAS12J,eAAem6E,MAAaA,KAAU4xK,KACjDA,EAAO5xK,GAAUu8E,GAASv8E,IAG9ByxK,GAAQt1O,SAAQ,SAAUoO,GACxB,GAAIA,EAAEsnO,aAAeD,EAAOC,WAC1B,KAAM,iCAAiC50N,OAAO20N,EAAOC,WAAY,kBAErE,IACAJ,GAAQxiP,KAAK2iP,EACd,EACDE,YAAa,SAAqB74E,EAAWyhD,EAAU1gJ,GACrD,IAAI3pB,EAAQ3jD,KACZA,KAAKqlP,eAAgB,EACrB/3K,EAAI33D,OAAS,WACXguC,EAAM0hM,eAAgB,GAExB,IAAIC,EAAkB/4E,EAAY,SAClCw4E,GAAQt1O,SAAQ,SAAUy1O,GACnBl3B,EAASk3B,EAAOC,cAEjBn3B,EAASk3B,EAAOC,YAAYG,IAC9Bt3B,EAASk3B,EAAOC,YAAYG,GAAiBpG,GAAe,CAC1DlxB,SAAUA,GACT1gJ,IAKD0gJ,EAAS35M,QAAQ6wO,EAAOC,aAAen3B,EAASk3B,EAAOC,YAAY54E,IACrEyhD,EAASk3B,EAAOC,YAAY54E,GAAW2yE,GAAe,CACpDlxB,SAAUA,GACT1gJ,IAEP,GACD,EACDi4K,kBAAmB,SAA2Bv3B,EAAUl8L,EAAI+9H,EAAUx7I,GAYpE,IAAK,IAAIi/D,KAXTyxK,GAAQt1O,SAAQ,SAAUy1O,GACxB,IAAIC,EAAaD,EAAOC,WACxB,GAAKn3B,EAAS35M,QAAQ8wO,IAAgBD,EAAOF,oBAA7C,CACA,IAAIQ,EAAc,IAAIN,EAAOl3B,EAAUl8L,EAAIk8L,EAAS35M,SACpDmxO,EAAYx3B,SAAWA,EACvBw3B,EAAYnxO,QAAU25M,EAAS35M,QAC/B25M,EAASm3B,GAAcK,EAGvB1xG,GAAS+b,EAAU21F,EAAY31F,SAPmC,CAQpE,IACmBm+D,EAAS35M,QAC1B,GAAK25M,EAAS35M,QAAQlb,eAAem6E,GAArC,CACA,IAAImyK,EAAWzlP,KAAK0lP,aAAa13B,EAAU16I,EAAQ06I,EAAS35M,QAAQi/D,SAC5C,IAAbmyK,IACTz3B,EAAS35M,QAAQi/D,GAAUmyK,EAHiB,CAMjD,EACDE,mBAAoB,SAA4B5uP,EAAMi3N,GACpD,IAAI43B,EAAkB,CAAA,EAKtB,OAJAb,GAAQt1O,SAAQ,SAAUy1O,GACc,mBAA3BA,EAAOU,iBAClB9xG,GAAS8xG,EAAiBV,EAAOU,gBAAgBhvP,KAAKo3N,EAASk3B,EAAOC,YAAapuP,GACrF,IACO6uP,CACR,EACDF,aAAc,SAAsB13B,EAAUj3N,EAAMuB,GAClD,IAAIutP,EAUJ,OATAd,GAAQt1O,SAAQ,SAAUy1O,GAEnBl3B,EAASk3B,EAAOC,aAGjBD,EAAOY,iBAA2D,mBAAjCZ,EAAOY,gBAAgB/uP,KAC1D8uP,EAAgBX,EAAOY,gBAAgB/uP,GAAMH,KAAKo3N,EAASk3B,EAAOC,YAAa7sP,GAEnF,IACOutP,CACT,GAuDF,IAAI7yN,GAAY,CAAC,OACboyN,GAAc,SAAqB74E,EAAWyhD,GAChD,IAAItsL,EAAOxjC,UAAUvI,OAAS,QAAsBqC,IAAjBkG,UAAU,GAAmBA,UAAU,GAAK,CAAE,EAC/E6nP,EAAgBrkN,EAAK4rC,IACrBzpE,EAAOouB,GAAyByP,EAAM1O,IACxCiyN,GAAcG,YAAYz/L,KAAKo8L,GAA/BkD,CAAyC14E,EAAWyhD,EAAUkxB,GAAe,CAC3E8G,OAAQA,GACRC,SAAUA,GACVpD,QAASA,GACTqD,OAAQA,GACRC,OAAQA,GACRC,WAAYA,GACZC,QAASA,GACTC,YAAaA,GACbC,YAAaC,GACbC,YAAaA,GACbC,eAAgB3E,GAASxwN,OACzBw0N,cAAeA,EACfY,SAAUA,GACVC,kBAAmBA,GACnBv0H,SAAUA,GACVw0H,kBAAmBA,GACnBC,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdZ,IAAc,CACf,EACDa,cAAe,WACbb,IAAc,CACf,EACDc,sBAAuB,SAA+BrwP,GACpDswP,GAAe,CACbr5B,SAAUA,EACVj3N,KAAMA,EACNgvP,cAAeA,GAEnB,GACCliP,GACL,EACA,SAASwjP,GAAeziO,IA3FxB,SAAuB8c,GACrB,IAAIssL,EAAWtsL,EAAKssL,SAClBk4B,EAASxkN,EAAKwkN,OACdnvP,EAAO2qC,EAAK3qC,KACZuwP,EAAW5lN,EAAK4lN,SAChBjB,EAAU3kN,EAAK2kN,QACfkB,EAAO7lN,EAAK6lN,KACZC,EAAS9lN,EAAK8lN,OACdb,EAAWjlN,EAAKilN,SAChBt0H,EAAW3wF,EAAK2wF,SAChBu0H,EAAoBllN,EAAKklN,kBACzBC,EAAoBnlN,EAAKmlN,kBACzBd,EAAgBrkN,EAAKqkN,cACrBU,EAAc/kN,EAAK+kN,YACnBgB,EAAuB/lN,EAAK+lN,qBAE9B,GADAz5B,EAAWA,GAAYk4B,GAAUA,EAAO9C,IACxC,CACA,IAAI91K,EACFj5D,EAAU25M,EAAS35M,QACnBqzO,EAAS,KAAO3wP,EAAK8D,OAAO,GAAG2wG,cAAgBz0G,EAAKq8B,OAAO,IAEzD6B,OAAO0yN,aAAgBrI,IAAeC,IAMxCjyK,EAAM70C,SAASmvN,YAAY,UACvBC,UAAU9wP,GAAM,GAAM,GAN1Bu2E,EAAM,IAAIq6K,YAAY5wP,EAAM,CAC1B+wP,SAAS,EACTC,YAAY,IAMhBz6K,EAAIz6C,GAAK00N,GAAQrB,EACjB54K,EAAIn3E,KAAOqxP,GAAUtB,EACrB54K,EAAIlvC,KAAOkpN,GAAYpB,EACvB54K,EAAI1vD,MAAQyoO,EACZ/4K,EAAIq5K,SAAWA,EACfr5K,EAAI+kD,SAAWA,EACf/kD,EAAIs5K,kBAAoBA,EACxBt5K,EAAIu5K,kBAAoBA,EACxBv5K,EAAIy4K,cAAgBA,EACpBz4K,EAAI06K,SAAWvB,EAAcA,EAAYwB,iBAAcjwP,EACvD,IAAIkwP,EAAqBhJ,GAAeA,GAAe,GAAIuI,GAAuBxC,GAAcU,mBAAmB5uP,EAAMi3N,IACzH,IAAK,IAAI16I,KAAU40K,EACjB56K,EAAIgG,GAAU40K,EAAmB50K,GAE/B4yK,GACFA,EAAOiC,cAAc76K,GAEnBj5D,EAAQqzO,IACVrzO,EAAQqzO,GAAQ9wP,KAAKo3N,EAAU1gJ,EAhClB,CAkCjB,CA0CE66K,CAAcjJ,GAAe,CAC3BuH,YAAaA,GACbJ,QAASA,GACTiB,SAAUtB,GACVE,OAAQA,GACRS,SAAUA,GACVC,kBAAmBA,GACnBv0H,SAAUA,GACVw0H,kBAAmBA,IAClBjiO,GACL,CACA,IAAIohO,GACFC,GACApD,GACAqD,GACAC,GACAC,GACAC,GACAC,GACAK,GACAt0H,GACAu0H,GACAC,GACAuB,GACA3B,GAIA4B,GACAC,GACAC,GACAC,GACAC,GACAC,GACAlC,GACAmC,GACAC,GAGAC,GAEAC,GAhBAC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAGnCC,IAAU,EACVC,GAAoB,GAGlBC,GAAqC,oBAAb9wN,SAC1B+wN,GAA0B9J,GAC1B+J,GAAmBlK,IAAQD,GAAa,WAAa,QAErDoK,GAAmBH,KAAmB5J,KAAqBD,IAAO,cAAejnN,SAASuD,cAAc,OACxG2tN,GAA0B,WACxB,GAAKJ,GAAL,CAEA,GAAIjK,GACF,OAAO,EAET,IAAIxtN,EAAK2G,SAASuD,cAAc,KAEhC,OADAlK,EAAGE,MAAMsjL,QAAU,sBACe,SAA3BxjL,EAAGE,MAAMwW,aAPK,CAQvB,CAT0B,GAU1BohN,GAAmB,SAA0B93N,EAAIzd,GAC/C,IAAIw1O,EAAQr2L,GAAI1hC,GACdg4N,EAAUxuP,SAASuuP,EAAM1zN,OAAS76B,SAASuuP,EAAM32M,aAAe53C,SAASuuP,EAAM12M,cAAgB73C,SAASuuP,EAAME,iBAAmBzuP,SAASuuP,EAAMG,kBAChJC,EAASx/J,GAAS34D,EAAI,EAAGzd,GACzB61O,EAASz/J,GAAS34D,EAAI,EAAGzd,GACzB81O,EAAgBF,GAAUz2L,GAAIy2L,GAC9BG,EAAiBF,GAAU12L,GAAI02L,GAC/BG,EAAkBF,GAAiB7uP,SAAS6uP,EAAcxhN,YAAcrtC,SAAS6uP,EAAch5M,aAAe4vM,GAAQkJ,GAAQ9zN,MAC9Hm0N,EAAmBF,GAAkB9uP,SAAS8uP,EAAezhN,YAAcrtC,SAAS8uP,EAAej5M,aAAe4vM,GAAQmJ,GAAQ/zN,MACpI,GAAsB,SAAlB0zN,EAAM/+L,QACR,MAA+B,WAAxB++L,EAAM9+L,eAAsD,mBAAxB8+L,EAAM9+L,cAAqC,WAAa,aAErG,GAAsB,SAAlB8+L,EAAM/+L,QACR,OAAO++L,EAAMU,oBAAoB1iP,MAAM,KAAKlS,QAAU,EAAI,WAAa,aAEzE,GAAIs0P,GAAUE,EAAqB,OAAgC,SAA3BA,EAAqB,MAAc,CACzE,IAAIK,EAAgD,SAA3BL,EAAqB,MAAe,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAe/mP,OAAoB+mP,EAAe/mP,QAAUmnP,EAAmC,aAAb,UACtG,CACA,OAAOP,IAAqC,UAA1BE,EAAcr/L,SAAiD,SAA1Bq/L,EAAcr/L,SAAgD,UAA1Bq/L,EAAcr/L,SAAiD,SAA1Bq/L,EAAcr/L,SAAsBu/L,GAAmBP,GAAuC,SAA5BD,EAAMJ,KAAgCS,GAAsC,SAA5BL,EAAMJ,KAAgCY,EAAkBC,EAAmBR,GAAW,WAAa,YACtV,EA8BDW,GAAgB,SAAuBp2O,GACrC,SAASq2O,EAAKpyP,EAAO05C,GACnB,OAAO,SAAUnf,EAAI18B,EAAM6vP,EAAQ14K,GACjC,IAAIq9K,EAAY93N,EAAGxe,QAAQ85G,MAAMp3H,MAAQZ,EAAKke,QAAQ85G,MAAMp3H,MAAQ87B,EAAGxe,QAAQ85G,MAAMp3H,OAASZ,EAAKke,QAAQ85G,MAAMp3H,KACjH,GAAa,MAATuB,IAAkB05C,GAAQ24M,GAG5B,OAAO,EACF,GAAa,MAATryP,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAI05C,GAAkB,UAAV15C,EACjB,OAAOA,EACF,GAAqB,mBAAVA,EAChB,OAAOoyP,EAAKpyP,EAAMu6B,EAAI18B,EAAM6vP,EAAQ14K,GAAMt7B,EAAnC04M,CAAyC73N,EAAI18B,EAAM6vP,EAAQ14K,GAElE,IAAIs9K,GAAc54M,EAAOnf,EAAK18B,GAAMke,QAAQ85G,MAAMp3H,KAClD,OAAiB,IAAVuB,GAAmC,iBAAVA,GAAsBA,IAAUsyP,GAActyP,EAAMkP,MAAQlP,EAAM+5B,QAAQu4N,IAAe,EAG/H,CACA,IAAIz8H,EAAQ,CAAA,EACR08H,EAAgBx2O,EAAQ85G,MACvB08H,GAA2C,UAA1BrzP,GAAQqzP,KAC5BA,EAAgB,CACd9zP,KAAM8zP,IAGV18H,EAAMp3H,KAAO8zP,EAAc9zP,KAC3Bo3H,EAAM28H,UAAYJ,EAAKG,EAAc74M,MAAM,GAC3Cm8E,EAAM48H,SAAWL,EAAKG,EAAcG,KACpC78H,EAAM88H,YAAcJ,EAAcI,YAClC52O,EAAQ85G,MAAQA,CACjB,EACD44H,GAAsB,YACf4C,IAA2B9G,IAC9BrvL,GAAIqvL,GAAS,UAAW,OAE3B,EACDoE,GAAwB,YACjB0C,IAA2B9G,IAC9BrvL,GAAIqvL,GAAS,UAAW,KAK1B0G,KAAmB5J,IACrBlnN,SAASC,iBAAiB,SAAS,SAAU40C,GAC3C,GAAI07K,GAKF,OAJA17K,EAAIH,iBACJG,EAAIgF,iBAAmBhF,EAAIgF,kBAC3BhF,EAAIymI,0BAA4BzmI,EAAIymI,2BACpCi1C,IAAkB,GACX,CAEV,IAAE,GAEL,IAAIkC,GAAgC,SAAuC59K,GACzE,GAAI04K,GAAQ,CACV14K,EAAMA,EAAIs3F,QAAUt3F,EAAIs3F,QAAQ,GAAKt3F,EACrC,IAAI69K,GAzE6DxsO,EAyEvB2uD,EAAI+C,QAzEsBtzD,EAyEbuwD,EAAIgD,QAvE3D24K,GAAUvzM,MAAK,SAAUs4K,GACvB,IAAIxjG,EAAYwjG,EAASo1B,IAAS/uO,QAAQ+2O,qBAC1C,GAAK5gI,IAAaw3H,GAAUh0B,GAA5B,CACA,IAAI1xL,EAAOykN,GAAQ/yB,GACjBq9B,EAAqB1sO,GAAK2d,EAAKI,KAAO8tF,GAAa7rG,GAAK2d,EAAKM,MAAQ4tF,EACrE8gI,EAAmBvuO,GAAKuf,EAAKG,IAAM+tF,GAAaztG,GAAKuf,EAAKK,OAAS6tF,EACrE,OAAI6gI,GAAsBC,EACjBjkJ,EAAM2mH,OADf,CAJuC,CAOzC,IACO3mH,GA8DP,GAAI8jJ,EAAS,CAEX,IAAIvyN,EAAQ,CAAA,EACZ,IAAK,IAAIhjC,KAAK03E,EACRA,EAAIn0E,eAAevD,KACrBgjC,EAAMhjC,GAAK03E,EAAI13E,IAGnBgjC,EAAMzG,OAASyG,EAAMstN,OAASiF,EAC9BvyN,EAAMu0C,oBAAiB,EACvBv0C,EAAM05C,qBAAkB,EACxB64K,EAAQ/H,IAASmI,YAAY3yN,EAC/B,CACF,CAvF8B,IAAqCja,EAAG5B,EAChEsqF,CAuFR,EACImkJ,GAAwB,SAA+Bl+K,GACrD04K,IACFA,GAAO3oN,WAAW+lN,IAASqI,iBAAiBn+K,EAAIn7C,OAEpD,EAOA,SAAS4vN,GAASjwN,EAAIzd,GACpB,IAAMyd,IAAMA,EAAG9wB,UAA4B,IAAhB8wB,EAAG9wB,SAC5B,KAAM,8CAA8CuvB,OAAO,CAAE,EAAC55B,SAASC,KAAKk7B,IAE9E9xB,KAAK8xB,GAAKA,EACV9xB,KAAKqU,QAAUA,EAAUy/H,GAAS,CAAE,EAAEz/H,GAGtCyd,EAAGsxN,IAAWpjP,KACd,IAAI6vJ,EAAW,CACb1hC,MAAO,KACPj7F,MAAM,EACN/B,UAAU,EACVs9G,MAAO,KACP72G,OAAQ,KACRklD,UAAW,WAAW9lF,KAAK86B,EAAGwL,UAAY,MAAQ,KAClDouN,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBtiO,UAAW,WACT,OAAOqgO,GAAiB93N,EAAI9xB,KAAKqU,QAClC,EACDy3O,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXntE,OAAQ,SACRt/I,OAAQ,KACR0sN,iBAAiB,EACjBnoO,UAAW,EACXmX,OAAQ,KACR+gJ,QAAS,SAAiBD,EAAciqE,GACtCjqE,EAAaC,QAAQ,OAAQgqE,EAAOzzK,YACrC,EACD25K,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZrrN,MAAO,EACPsrN,kBAAkB,EAClBC,qBAAsBn0P,OAAOmD,SAAWnD,OAAS88B,QAAQ35B,SAAS25B,OAAOiiC,iBAAkB,KAAO,EAClGq1L,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACdhuO,EAAG,EACH5B,EAAG,GAGL6vO,gBAA4C,IAA5B7K,GAAS6K,gBAA4B,iBAAkB33N,UAAYwqN,IAAUC,IAC7F0L,qBAAsB,GAKxB,IAAK,IAAIr0P,KAHTkuP,GAAcM,kBAAkBvlP,KAAM8xB,EAAI+9H,GAGzBA,IACb94J,KAAQsd,KAAaA,EAAQtd,GAAQ84J,EAAS94J,IAKlD,IAAK,IAAI+gC,KAHT2yN,GAAcp2O,GAGCrU,KACQ,MAAjB83B,EAAGj9B,OAAO,IAAkC,mBAAbmF,KAAK83B,KACtC93B,KAAK83B,GAAM93B,KAAK83B,GAAI6tB,KAAK3lD,OAK7BA,KAAK6sP,iBAAkBx4O,EAAQk4O,eAAwB7C,GACnD1pP,KAAK6sP,kBAEP7sP,KAAKqU,QAAQi4O,oBAAsB,GAIjCj4O,EAAQu4O,eACVp0N,GAAG1G,EAAI,cAAe9xB,KAAK8sP,cAE3Bt0N,GAAG1G,EAAI,YAAa9xB,KAAK8sP,aACzBt0N,GAAG1G,EAAI,aAAc9xB,KAAK8sP,cAExB9sP,KAAK6sP,kBACPr0N,GAAG1G,EAAI,WAAY9xB,MACnBw4B,GAAG1G,EAAI,YAAa9xB,OAEtBipP,GAAU1mP,KAAKvC,KAAK8xB,IAGpBzd,EAAQo6H,OAASp6H,EAAQo6H,MAAM7qI,KAAO5D,KAAKkzB,KAAK7e,EAAQo6H,MAAM7qI,IAAI5D,OAAS,IAG3E8zI,GAAS9zI,KAAMqjP,KACjB,CAiiCA,SAAS0J,GAAQvF,EAAQD,EAAMvB,EAAQgH,EAAU1F,EAAU2F,EAAYlH,EAAemH,GACpF,IAAI5/K,EAGF6/K,EAFAn/B,EAAWw5B,EAAOpE,IAClBgK,EAAWp/B,EAAS35M,QAAQg5O,OAwB9B,OArBIp4N,OAAO0yN,aAAgBrI,IAAeC,IAMxCjyK,EAAM70C,SAASmvN,YAAY,UACvBC,UAAU,QAAQ,GAAM,GAN5Bv6K,EAAM,IAAIq6K,YAAY,OAAQ,CAC5BG,SAAS,EACTC,YAAY,IAMhBz6K,EAAIz6C,GAAK00N,EACTj6K,EAAIn3E,KAAOqxP,EACXl6K,EAAI6V,QAAU6iK,EACd14K,EAAIggL,YAAcN,EAClB1/K,EAAIga,QAAUggK,GAAYC,EAC1Bj6K,EAAIigL,YAAcN,GAAclM,GAAQwG,GACxCj6K,EAAI4/K,gBAAkBA,EACtB5/K,EAAIy4K,cAAgBA,EACpByB,EAAOW,cAAc76K,GACjB8/K,IACFD,EAASC,EAASx2P,KAAKo3N,EAAU1gJ,EAAKy4K,IAEjCoH,CACT,CACA,SAASK,GAAkB17N,GACzBA,EAAGgrD,WAAY,CACjB,CACA,SAAS2wK,KACPpE,IAAU,CACZ,CA0EA,SAASqE,GAAY57N,GAInB,IAHA,IAAIgC,EAAMhC,EAAG4gE,QAAU5gE,EAAGyH,UAAYzH,EAAGooK,IAAMpoK,EAAGwU,KAAOxU,EAAGygD,YAC1D38E,EAAIk+B,EAAIn+B,OACRulB,EAAM,EACDtlB,KACLslB,GAAO4Y,EAAI/uB,WAAWnP,GAExB,OAAOslB,EAAIvkB,SAAS,GACtB,CAUA,SAASg3P,GAAU71N,GACjB,OAAO1iB,WAAW0iB,EAAI,EACxB,CACA,SAAS81N,GAAgBv2N,GACvB,OAAO3hB,aAAa2hB,EACtB,CAnqCA0qN,GAASrrP,UAA4C,CACnDI,YAAairP,GACb0J,iBAAkB,SAA0Bt5N,GACrCnyB,KAAK8xB,GAAGwH,SAASnH,IAAWA,IAAWnyB,KAAK8xB,KAC/C62N,GAAa,KAEhB,EACDkF,cAAe,SAAuBvgL,EAAKn7C,GACzC,MAAyC,mBAA3BnyB,KAAKqU,QAAQkV,UAA2BvpB,KAAKqU,QAAQkV,UAAU3yB,KAAKoJ,KAAMstE,EAAKn7C,EAAQ6zN,IAAUhmP,KAAKqU,QAAQkV,SAC7H,EACDujO,YAAa,SAA6Cx/K,GACxD,GAAKA,EAAIy6K,WAAT,CACA,IAAIpkM,EAAQ3jD,KACV8xB,EAAK9xB,KAAK8xB,GACVzd,EAAUrU,KAAKqU,QACf43O,EAAkB53O,EAAQ43O,gBAC1BhxP,EAAOqyE,EAAIryE,KACX0pK,EAAQr3F,EAAIs3F,SAAWt3F,EAAIs3F,QAAQ,IAAMt3F,EAAIwgL,aAAmC,UAApBxgL,EAAIwgL,aAA2BxgL,EAC3Fn7C,GAAUwyI,GAASr3F,GAAKn7C,OACxB47N,EAAiBzgL,EAAIn7C,OAAOs7K,aAAengI,EAAI9nE,MAAQ8nE,EAAI9nE,KAAK,IAAM8nE,EAAImzJ,cAAgBnzJ,EAAImzJ,eAAe,KAAOtuM,EACpHoN,EAASlrB,EAAQkrB,OAInB,GA6nCJ,SAAgCvmC,GAC9BswP,GAAkB3zP,OAAS,EAC3B,IAAIq4P,EAASh1P,EAAK4nP,qBAAqB,SACnCjqK,EAAMq3K,EAAOr4P,OACjB,KAAOghF,KAAO,CACZ,IAAI7kD,EAAKk8N,EAAOr3K,GAChB7kD,EAAGN,SAAW83N,GAAkB/mP,KAAKuvB,EACvC,CACF,CAxoCIm8N,CAAuBn8N,IAGnBk0N,MAGA,wBAAwBhvP,KAAKiE,IAAwB,IAAfqyE,EAAIvlC,QAAgB1zB,EAAQ8c,YAKlE48N,EAAeG,oBAKdluP,KAAK6sP,kBAAmBpN,KAAUttN,GAA2C,WAAjCA,EAAOugE,QAAQ8Y,mBAGhEr5E,EAASmzB,GAAQnzB,EAAQ9d,EAAQyoE,UAAWhrD,GAAI,KAClCK,EAAO+wN,UAGjBkD,KAAej0N,GAAnB,CAUA,GAJAw0N,GAAWvsP,GAAM+3B,GACjBy0N,GAAoBxsP,GAAM+3B,EAAQ9d,EAAQyoE,WAGpB,mBAAXv9C,GACT,GAAIA,EAAO3oC,KAAKoJ,KAAMstE,EAAKn7C,EAAQnyB,MAajC,OAZAqnP,GAAe,CACbr5B,SAAUrqK,EACVuiM,OAAQ6H,EACRh3P,KAAM,SACNuwP,SAAUn1N,EACVo1N,KAAMz1N,EACN01N,OAAQ11N,IAEVszN,GAAY,SAAUzhM,EAAO,CAC3B2pB,IAAKA,SAEP2+K,GAAmB3+K,EAAIH,uBAGpB,GAAI5tC,IACTA,EAASA,EAAO13B,MAAM,KAAK6tC,MAAK,SAAUy4M,GAExC,GADAA,EAAW7oM,GAAQyoM,EAAgBI,EAAS3nL,OAAQ10C,GAAI,GAatD,OAXAu1N,GAAe,CACbr5B,SAAUrqK,EACVuiM,OAAQiI,EACRp3P,KAAM,SACNuwP,SAAUn1N,EACVq1N,OAAQ11N,EACRy1N,KAAMz1N,IAERszN,GAAY,SAAUzhM,EAAO,CAC3B2pB,IAAKA,KAEA,CAEX,KAGE,YADA2+K,GAAmB3+K,EAAIH,kBAIvB94D,EAAQujB,SAAW0tB,GAAQyoM,EAAgB15O,EAAQujB,OAAQ9F,GAAI,IAKnE9xB,KAAKouP,kBAAkB9gL,EAAKq3F,EAAOxyI,EAnDnC,CApCqB,CAwFtB,EACDi8N,kBAAmB,SAAwC9gL,EAAiBq3F,EAAyBxyI,GACnG,IAIEk8N,EAJE1qM,EAAQ3jD,KACV8xB,EAAK6xB,EAAM7xB,GACXzd,EAAUsvC,EAAMtvC,QAChBs8C,EAAgB7+B,EAAG6+B,cAErB,GAAIx+B,IAAW6zN,IAAU7zN,EAAOkL,aAAevL,EAAI,CACjD,IAAIk7N,EAAWjM,GAAQ5uN,GA0EvB,GAzEA+zN,GAASp0N,EAETm0N,IADAD,GAAS7zN,GACSkL,WAClB8oN,GAASH,GAAOpzB,YAChBwzB,GAAaj0N,EACbi2N,GAAc/zO,EAAQ85G,MACtB4zH,GAAS5+J,QAAU6iK,GACnBqC,GAAS,CACPl2N,OAAQ6zN,GACR31K,SAAUs0F,GAASr3F,GAAK+C,QACxBC,SAAUq0F,GAASr3F,GAAKgD,SAE1Bm4K,GAAkBJ,GAAOh4K,QAAU28K,EAAStwN,KAC5CgsN,GAAiBL,GAAO/3K,QAAU08K,EAASvwN,IAC3Cz8B,KAAKsuP,QAAU3pF,GAASr3F,GAAK+C,QAC7BrwE,KAAKuuP,QAAU5pF,GAASr3F,GAAKgD,QAC7B01K,GAAOh0N,MAAM,eAAiB,MAC9Bq8N,EAAc,WACZjJ,GAAY,aAAczhM,EAAO,CAC/B2pB,IAAKA,IAEHy0K,GAASsD,cACX1hM,EAAM6qM,WAKR7qM,EAAM8qM,6BACDjP,IAAW77L,EAAMkpM,kBACpB7G,GAAOlpK,WAAY,GAIrBn5B,EAAM+qM,kBAAkBphL,EAAKq3F,GAG7B0iF,GAAe,CACbr5B,SAAUrqK,EACV5sD,KAAM,SACNgvP,cAAez4K,IAIjB4yK,GAAY8F,GAAQ3xO,EAAQ03O,aAAa,KAI3C13O,EAAQwqK,OAAOh3K,MAAM,KAAK4H,SAAQ,SAAU0+O,GAC1C3+L,GAAKw2L,GAAQmI,EAAS3nL,OAAQgnL,GAChC,IACAh1N,GAAGm4B,EAAe,WAAYu6L,IAC9B1yN,GAAGm4B,EAAe,YAAau6L,IAC/B1yN,GAAGm4B,EAAe,YAAau6L,IAC3B72O,EAAQu4O,gBACVp0N,GAAGm4B,EAAe,YAAahN,EAAM6qM,UAEpCxuP,KAAK6sP,iBAAmBr0N,GAAGm4B,EAAe,gBAAiBhN,EAAM6qM,WAElEh2N,GAAGm4B,EAAe,UAAWhN,EAAM6qM,SACnCh2N,GAAGm4B,EAAe,WAAYhN,EAAM6qM,SACpCh2N,GAAGm4B,EAAe,cAAehN,EAAM6qM,UAIrChP,IAAWx/O,KAAK6sP,kBAClB7sP,KAAKqU,QAAQi4O,oBAAsB,EACnCtG,GAAOlpK,WAAY,GAErBsoK,GAAY,aAAcplP,KAAM,CAC9BstE,IAAKA,KAIHj5D,EAAQ0sB,OAAW1sB,EAAQg4O,mBAAoB1nF,GAAY3kK,KAAK6sP,kBAAqBtN,IAAQD,IAqB/F+O,QArB6G,CAC7G,GAAItM,GAASsD,cAEX,YADArlP,KAAKwuP,UAMHn6O,EAAQu4O,gBACVp0N,GAAGm4B,EAAe,YAAahN,EAAMgrM,qBACrCn2N,GAAGm4B,EAAe,gBAAiBhN,EAAMgrM,uBAEzCn2N,GAAGm4B,EAAe,UAAWhN,EAAMgrM,qBACnCn2N,GAAGm4B,EAAe,WAAYhN,EAAMgrM,qBACpCn2N,GAAGm4B,EAAe,cAAehN,EAAMgrM,sBAEzCn2N,GAAGm4B,EAAe,YAAahN,EAAMirM,8BACrCp2N,GAAGm4B,EAAe,YAAahN,EAAMirM,8BACrCv6O,EAAQu4O,gBAAkBp0N,GAAGm4B,EAAe,cAAehN,EAAMirM,8BACjEjrM,EAAMkrM,gBAAkBz5O,WAAWi5O,EAAah6O,EAAQ0sB,MAC1D,CAGF,CACD,EACD6tN,6BAA8B,SAAsEj1P,GAClG,IAAIgrK,EAAQhrK,EAAEirK,QAAUjrK,EAAEirK,QAAQ,GAAKjrK,EACnC6F,KAAKC,IAAID,KAAKge,IAAImnJ,EAAMt0F,QAAUrwE,KAAKsuP,QAAS9uP,KAAKge,IAAImnJ,EAAMr0F,QAAUtwE,KAAKuuP,UAAY/uP,KAAKoa,MAAM5Z,KAAKqU,QAAQi4O,qBAAuBtsP,KAAK6sP,iBAAmB53N,OAAOiiC,kBAAoB,KAC9Ll3D,KAAK2uP,qBAER,EACDA,oBAAqB,WACnB3I,IAAUwH,GAAkBxH,IAC5BtwO,aAAa1V,KAAK6uP,iBAClB7uP,KAAKyuP,2BACN,EACDA,0BAA2B,WACzB,IAAI99L,EAAgB3wD,KAAK8xB,GAAG6+B,cAC5B53B,GAAI43B,EAAe,UAAW3wD,KAAK2uP,qBACnC51N,GAAI43B,EAAe,WAAY3wD,KAAK2uP,qBACpC51N,GAAI43B,EAAe,cAAe3wD,KAAK2uP,qBACvC51N,GAAI43B,EAAe,YAAa3wD,KAAK2uP,qBACrC51N,GAAI43B,EAAe,gBAAiB3wD,KAAK2uP,qBACzC51N,GAAI43B,EAAe,YAAa3wD,KAAK4uP,8BACrC71N,GAAI43B,EAAe,YAAa3wD,KAAK4uP,8BACrC71N,GAAI43B,EAAe,cAAe3wD,KAAK4uP,6BACxC,EACDF,kBAAmB,SAAwCphL,EAAiBq3F,GAC1EA,EAAQA,GAA4B,SAAnBr3F,EAAIwgL,aAA0BxgL,GAC1CttE,KAAK6sP,iBAAmBloF,EACvB3kK,KAAKqU,QAAQu4O,eACfp0N,GAAGC,SAAU,cAAez4B,KAAK8uP,cAEjCt2N,GAAGC,SADMksI,EACI,YAEA,YAFa3kK,KAAK8uP,eAKjCt2N,GAAGwtN,GAAQ,UAAWhmP,MACtBw4B,GAAG0tN,GAAQ,YAAalmP,KAAK+uP,eAE/B,IACMt2N,SAAS0tB,UACXwnM,IAAU,WACRl1N,SAAS0tB,UAAU//B,OACrB,IAEA6O,OAAOsvB,eAAeC,iBAE1B,CAAE,MAAOpK,GAAM,CAChB,EACD40M,aAAc,SAAsBp1D,EAAUtsH,GAE5C,GADAy7K,IAAsB,EAClB7C,IAAUF,GAAQ,CACpBZ,GAAY,cAAeplP,KAAM,CAC/BstE,IAAKA,IAEHttE,KAAK6sP,iBACPr0N,GAAGC,SAAU,WAAY+yN,IAE3B,IAAIn3O,EAAUrU,KAAKqU,SAGlBulL,GAAYsmD,GAAY8F,GAAQ3xO,EAAQ23O,WAAW,GACpD9L,GAAY8F,GAAQ3xO,EAAQy3O,YAAY,GACxC/J,GAASxwN,OAASvxB,KAClB45L,GAAY55L,KAAKivP,eAGjB5H,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,QACNgvP,cAAez4K,GAEnB,MACEttE,KAAKkvP,UAER,EACDC,iBAAkB,WAChB,GAAI7G,GAAU,CACZtoP,KAAKsuP,OAAShG,GAASj4K,QACvBrwE,KAAKuuP,OAASjG,GAASh4K,QACvBy2K,KAGA,IAFA,IAAI50N,EAASsG,SAAS22N,iBAAiB9G,GAASj4K,QAASi4K,GAASh4K,SAC9Dn3D,EAASgZ,EACNA,GAAUA,EAAOs7K,aACtBt7K,EAASA,EAAOs7K,WAAW2hD,iBAAiB9G,GAASj4K,QAASi4K,GAASh4K,YACxDn3D,GACfA,EAASgZ,EAGX,GADA6zN,GAAO3oN,WAAW+lN,IAASqI,iBAAiBt5N,GACxChZ,EACF,EAAG,CACD,GAAIA,EAAOiqO,IAAU,CAQnB,GANWjqO,EAAOiqO,IAASmI,YAAY,CACrCl7K,QAASi4K,GAASj4K,QAClBC,QAASg4K,GAASh4K,QAClBn+C,OAAQA,EACR+zN,OAAQ/sO,MAEOnZ,KAAKqU,QAAQ83O,eAC5B,KAEJ,CACAh6N,EAAShZ,CACX,OAC8BA,EAAS2mO,GAAgB3mO,IAEzD8tO,IACF,CACD,EACD6H,aAAc,SAAsCxhL,GAClD,GAAI+6K,GAAQ,CACV,IAAIh0O,EAAUrU,KAAKqU,QACjBq4O,EAAoBr4O,EAAQq4O,kBAC5BC,EAAiBt4O,EAAQs4O,eACzBhoF,EAAQr3F,EAAIs3F,QAAUt3F,EAAIs3F,QAAQ,GAAKt3F,EACvC+hL,EAAcxM,IAAWzC,GAAOyC,IAAS,GACzCxwL,EAASwwL,IAAWwM,GAAeA,EAAYjzO,EAC/Ck2C,EAASuwL,IAAWwM,GAAeA,EAAYxyO,EAC/CyyO,EAAuB9F,IAA2BV,IAAuB5G,GAAwB4G,IACjGyG,GAAM5qF,EAAMt0F,QAAUg4K,GAAOh4K,QAAUs8K,EAAehuO,IAAM0zC,GAAU,IAAMi9L,EAAuBA,EAAqB,GAAKlG,GAAiC,GAAK,IAAM/2L,GAAU,GACnLm9L,GAAM7qF,EAAMr0F,QAAU+3K,GAAO/3K,QAAUq8K,EAAe5vO,IAAMu1C,GAAU,IAAMg9L,EAAuBA,EAAqB,GAAKlG,GAAiC,GAAK,IAAM92L,GAAU,GAGrL,IAAKyvL,GAASxwN,SAAWw3N,GAAqB,CAC5C,GAAI2D,GAAqBltP,KAAKC,IAAID,KAAKge,IAAImnJ,EAAMt0F,QAAUrwE,KAAKsuP,QAAS9uP,KAAKge,IAAImnJ,EAAMr0F,QAAUtwE,KAAKuuP,SAAW7B,EAChH,OAEF1sP,KAAK+uP,aAAazhL,GAAK,EACzB,CACA,GAAIu1K,GAAS,CACPwM,GACFA,EAAY11P,GAAK41P,GAAMhH,IAAU,GACjC8G,EAAYhzO,GAAKmzO,GAAMhH,IAAU,IAEjC6G,EAAc,CACZjzO,EAAG,EACHkC,EAAG,EACH3B,EAAG,EACHE,EAAG,EACHljB,EAAG41P,EACHlzO,EAAGmzO,GAGP,IAAIC,EAAY,UAAUl/N,OAAO8+N,EAAYjzO,EAAG,KAAKmU,OAAO8+N,EAAY/wO,EAAG,KAAKiS,OAAO8+N,EAAY1yO,EAAG,KAAK4T,OAAO8+N,EAAYxyO,EAAG,KAAK0T,OAAO8+N,EAAY11P,EAAG,KAAK42B,OAAO8+N,EAAYhzO,EAAG,KACvLm3C,GAAIqvL,GAAS,kBAAmB4M,GAChCj8L,GAAIqvL,GAAS,eAAgB4M,GAC7Bj8L,GAAIqvL,GAAS,cAAe4M,GAC5Bj8L,GAAIqvL,GAAS,YAAa4M,GAC1BlH,GAASgH,EACT/G,GAASgH,EACTlH,GAAW3jF,CACb,CACAr3F,EAAIy6K,YAAcz6K,EAAIH,gBACxB,CACD,EACD8hL,aAAc,WAGZ,IAAKpM,GAAS,CACZ,IAAIxoN,EAAYr6B,KAAKqU,QAAQo4O,eAAiBh0N,SAAS0B,KAAO+rN,GAC5D5pN,EAAOykN,GAAQiF,IAAQ,EAAMwD,IAAyB,EAAMnvN,GAC5DhmB,EAAUrU,KAAKqU,QAGjB,GAAIm1O,GAAyB,CAG3B,IADAV,GAAsBzuN,EAC0B,WAAzCm5B,GAAIs1L,GAAqB,aAAsE,SAA1Ct1L,GAAIs1L,GAAqB,cAA2BA,KAAwBrwN,UACtIqwN,GAAsBA,GAAoBzrN,WAExCyrN,KAAwBrwN,SAAS0B,MAAQ2uN,KAAwBrwN,SAASkC,iBACxEmuN,KAAwBrwN,WAAUqwN,GAAsBjI,MAC5DvkN,EAAKG,KAAOqsN,GAAoB5tN,UAChCoB,EAAKI,MAAQosN,GAAoBprN,YAEjCorN,GAAsBjI,KAExBuI,GAAmClH,GAAwB4G,GAC7D,CAEA5I,GADA2C,GAAUmD,GAAOnlF,WAAU,GACNxsJ,EAAQy3O,YAAY,GACzC5L,GAAY2C,GAASxuO,EAAQm4O,eAAe,GAC5CtM,GAAY2C,GAASxuO,EAAQ23O,WAAW,GACxCx4L,GAAIqvL,GAAS,aAAc,IAC3BrvL,GAAIqvL,GAAS,YAAa,IAC1BrvL,GAAIqvL,GAAS,aAAc,cAC3BrvL,GAAIqvL,GAAS,SAAU,GACvBrvL,GAAIqvL,GAAS,MAAOvmN,EAAKG,KACzB+2B,GAAIqvL,GAAS,OAAQvmN,EAAKI,MAC1B82B,GAAIqvL,GAAS,QAASvmN,EAAKnG,OAC3Bq9B,GAAIqvL,GAAS,SAAUvmN,EAAKlG,QAC5Bo9B,GAAIqvL,GAAS,UAAW,OACxBrvL,GAAIqvL,GAAS,WAAY2G,GAA0B,WAAa,SAChEh2L,GAAIqvL,GAAS,SAAU,UACvBrvL,GAAIqvL,GAAS,gBAAiB,QAC9Bd,GAAS17M,MAAQw8M,GACjBxoN,EAAU4B,YAAY4mN,IAGtBrvL,GAAIqvL,GAAS,mBAAoB4F,GAAkBntP,SAASunP,GAAQ7wN,MAAMmE,OAAS,IAAM,KAAOuyN,GAAiBptP,SAASunP,GAAQ7wN,MAAMoE,QAAU,IAAM,IAC1J,CACD,EACD24N,aAAc,SAAiCzhL,EAAiBssH,GAC9D,IAAIj2I,EAAQ3jD,KACR+7K,EAAezuG,EAAIyuG,aACnB1nK,EAAUsvC,EAAMtvC,QACpB+wO,GAAY,YAAaplP,KAAM,CAC7BstE,IAAKA,IAEHy0K,GAASsD,cACXrlP,KAAKwuP,WAGPpJ,GAAY,aAAcplP,MACrB+hP,GAASsD,iBACZgB,GAAUzoO,GAAMooO,KACR1mM,gBAAgB,MACxB+mM,GAAQvpK,WAAY,EACpBupK,GAAQr0N,MAAM,eAAiB,GAC/BhyB,KAAK0vP,aACLxP,GAAYmG,GAASrmP,KAAKqU,QAAQ03O,aAAa,GAC/ChK,GAASnkO,MAAQyoO,IAInB1iM,EAAMgsM,QAAUhC,IAAU,WACxBvI,GAAY,QAASzhM,GACjBo+L,GAASsD,gBACR1hM,EAAMtvC,QAAQw3O,mBACjB3F,GAAO/8M,aAAak9M,GAASL,IAE/BriM,EAAM+rM,aACNrI,GAAe,CACbr5B,SAAUrqK,EACV5sD,KAAM,UAEV,KACC6iM,GAAYsmD,GAAY8F,GAAQ3xO,EAAQ23O,WAAW,GAGhDpyD,GACFovD,IAAkB,EAClBrlM,EAAMisM,QAAU5tC,YAAYr+J,EAAMwrM,iBAAkB,MAGpDp2N,GAAIN,SAAU,UAAWkrB,EAAM6qM,SAC/Bz1N,GAAIN,SAAU,WAAYkrB,EAAM6qM,SAChCz1N,GAAIN,SAAU,cAAekrB,EAAM6qM,SAC/BzyE,IACFA,EAAa8zE,cAAgB,OAC7Bx7O,EAAQ2nK,SAAW3nK,EAAQ2nK,QAAQplL,KAAK+sD,EAAOo4H,EAAciqE,KAE/DxtN,GAAGC,SAAU,OAAQkrB,GAGrB6P,GAAIwyL,GAAQ,YAAa,kBAE3B+C,IAAsB,EACtBplM,EAAMmsM,aAAenC,GAAUhqM,EAAMqrM,aAAarpM,KAAKhC,EAAOi2I,EAAUtsH,IACxE90C,GAAGC,SAAU,cAAekrB,GAC5B6iM,IAAQ,EACRvxN,OAAOsvB,eAAeC,kBAClBi7L,IACFjsL,GAAI/6B,SAAS0B,KAAM,cAAe,QAErC,EAEDoxN,YAAa,SAAgCj+K,GAC3C,IAEE0/K,EACAC,EACA8C,EAOAjtF,EAXEhxI,EAAK9xB,KAAK8xB,GACZK,EAASm7C,EAAIn7C,OAIb9d,EAAUrU,KAAKqU,QACf85G,EAAQ95G,EAAQ85G,MAChBu4H,EAAiB3E,GAASxwN,OAC1By+N,EAAU5H,KAAgBj6H,EAC1B8hI,EAAU57O,EAAQ6e,KAClBg9N,EAAezJ,IAAeC,EAE9B/iM,EAAQ3jD,KACRmwP,GAAiB,EACnB,IAAI9G,GAAJ,CAoGA,QAL2B,IAAvB/7K,EAAIH,gBACNG,EAAIy6K,YAAcz6K,EAAIH,iBAExBh7C,EAASmzB,GAAQnzB,EAAQ9d,EAAQyoE,UAAWhrD,GAAI,GAChDs+N,EAAc,YACVrO,GAASsD,cAAe,OAAO8K,EACnC,GAAInK,GAAO1sN,SAASg0C,EAAIn7C,SAAWA,EAAO+wN,UAAY/wN,EAAOwyN,YAAcxyN,EAAOyyN,YAAcjhM,EAAM0sM,wBAA0Bl+N,EAC9H,OAAOm+N,GAAU,GAGnB,GADAtH,IAAkB,EACdtC,IAAmBryO,EAAQ8c,WAAa6+N,EAAUC,IAAYF,EAAS9J,KAAaC,IACtFO,KAAgBzmP,OAASA,KAAKioP,YAAcG,GAAY0C,UAAU9qP,KAAM0mP,EAAgBV,GAAQ14K,KAAS6gD,EAAM48H,SAAS/qP,KAAM0mP,EAAgBV,GAAQ14K,IAAO,CAI7J,GAHAw1F,EAA+C,aAApC9iK,KAAK6tP,cAAcvgL,EAAKn7C,GACnC66N,EAAWjM,GAAQiF,IACnBoK,EAAc,iBACVrO,GAASsD,cAAe,OAAO8K,EACnC,GAAIJ,EAYF,OAXA9J,GAAWC,GACXrG,IACA7/O,KAAK0vP,aACLU,EAAc,UACTrO,GAASsD,gBACRc,GACFD,GAAO/8M,aAAa68M,GAAQG,IAE5BD,GAAOjqN,YAAY+pN,KAGhBsK,GAAU,GAEnB,IAAIC,EAAcvO,GAAUlwN,EAAIzd,EAAQyoE,WACxC,IAAKyzK,GAqeX,SAAsBjjL,EAAKw1F,EAAUkrD,GACnC,IAAIwiC,EAAazP,GAAQiB,GAAUh0B,EAASl8L,GAAIk8L,EAAS35M,QAAQyoE,YAC7D2zK,EAAsB7N,GAAkC50B,EAASl8L,GAAIk8L,EAAS35M,QAASwuO,IACvF6N,EAAS,GACb,OAAO5tF,EAAWx1F,EAAI+C,QAAUogL,EAAoB7zN,MAAQ8zN,GAAUpjL,EAAIgD,QAAUkgL,EAAW7zN,QAAU2wC,EAAI+C,QAAUmgL,EAAW9zN,KAAO4wC,EAAIgD,QAAUmgL,EAAoB9zN,OAAS+zN,GAAUpjL,EAAI+C,QAAUmgL,EAAW5zN,OAAS0wC,EAAIgD,QAAUkgL,EAAW/zN,GAC3P,CA1e0Bk0N,CAAarjL,EAAKw1F,EAAU9iK,QAAUuwP,EAAYrN,SAAU,CAI9E,GAAIqN,IAAgBvK,GAClB,OAAOsK,GAAU,GAUnB,GANIC,GAAez+N,IAAOw7C,EAAIn7C,SAC5BA,EAASo+N,GAEPp+N,IACF86N,EAAalM,GAAQ5uN,KAE0D,IAA7E46N,GAAQ7G,GAAQp0N,EAAIk0N,GAAQgH,EAAU76N,EAAQ86N,EAAY3/K,IAAOn7C,GAWnE,OAVA0tN,IACI0Q,GAAeA,EAAY39B,YAE7B9gM,EAAGqX,aAAa68M,GAAQuK,EAAY39B,aAEpC9gM,EAAGmK,YAAY+pN,IAEjBC,GAAWn0N,EAEX8+N,IACON,GAAU,EAErB,MAAO,GAAIC,GAmcjB,SAAuBjjL,EAAKw1F,EAAUkrD,GACpC,IAAI6iC,EAAc9P,GAAQt2J,GAASujI,EAASl8L,GAAI,EAAGk8L,EAAS35M,SAAS,IACjEo8O,EAAsB7N,GAAkC50B,EAASl8L,GAAIk8L,EAAS35M,QAASwuO,IACvF6N,EAAS,GACb,OAAO5tF,EAAWx1F,EAAI+C,QAAUogL,EAAoB/zN,KAAOg0N,GAAUpjL,EAAIgD,QAAUugL,EAAYp0N,KAAO6wC,EAAI+C,QAAUwgL,EAAYj0N,MAAQ0wC,EAAIgD,QAAUmgL,EAAoBh0N,IAAMi0N,GAAUpjL,EAAIgD,QAAUugL,EAAYl0N,QAAU2wC,EAAI+C,QAAUwgL,EAAYn0N,IAC1P,CAxcgCo0N,CAAcxjL,EAAKw1F,EAAU9iK,MAAO,CAE5D,IAAIopC,EAAaqhD,GAAS34D,EAAI,EAAGzd,GAAS,GAC1C,GAAI+0B,IAAe48M,GACjB,OAAOsK,GAAU,GAInB,GADArD,EAAalM,GADb5uN,EAASiX,IAEqE,IAA1E2jN,GAAQ7G,GAAQp0N,EAAIk0N,GAAQgH,EAAU76N,EAAQ86N,EAAY3/K,GAAK,GAMjE,OALAuyK,IACA/tN,EAAGqX,aAAa68M,GAAQ58M,GACxB68M,GAAWn0N,EAEX8+N,IACON,GAAU,EAErB,MAAO,GAAIn+N,EAAOkL,aAAevL,EAAI,CACnCm7N,EAAalM,GAAQ5uN,GACrB,IAAI5I,EACFwnO,EAYE5oH,EAXF6oH,EAAiBhL,GAAO3oN,aAAevL,EACvCm/N,GAx2Ba,SAA4BjE,EAAUC,EAAYnqF,GACrE,IAAIouF,EAAcpuF,EAAWkqF,EAAStwN,KAAOswN,EAASvwN,IACpD00N,EAAcruF,EAAWkqF,EAASpwN,MAAQowN,EAASrwN,OACnDy0N,EAAkBtuF,EAAWkqF,EAAS72N,MAAQ62N,EAAS52N,OACvDi7N,EAAcvuF,EAAWmqF,EAAWvwN,KAAOuwN,EAAWxwN,IACtD60N,EAAcxuF,EAAWmqF,EAAWrwN,MAAQqwN,EAAWtwN,OACvD40N,EAAkBzuF,EAAWmqF,EAAW92N,MAAQ82N,EAAW72N,OAC7D,OAAO86N,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,CAC5I,CAg2B0BC,CAAmBxL,GAAO9C,UAAY8C,GAAO9B,QAAU8I,EAAU76N,EAAO+wN,UAAY/wN,EAAO+xN,QAAU+I,EAAYnqF,GACpI2uF,EAAQ3uF,EAAW,MAAQ,OAC3B4uF,EAAkBpQ,GAAenvN,EAAQ,MAAO,QAAUmvN,GAAe0E,GAAQ,MAAO,OACxF2L,EAAeD,EAAkBA,EAAgBx2N,eAAY,EAQ/D,GAPIytN,KAAex2N,IACjB4+N,EAAwB9D,EAAWwE,GACnCvI,IAAwB,EACxBC,IAA0B8H,GAAmB58O,EAAQs3O,YAAcqF,GAErEznO,EAibR,SAA2B+jD,EAAKn7C,EAAQ86N,EAAYnqF,EAAU4oF,EAAeE,EAAuBD,EAAYiG,GAC9G,IAAIC,EAAc/uF,EAAWx1F,EAAIgD,QAAUhD,EAAI+C,QAC7CyhL,EAAehvF,EAAWmqF,EAAW72N,OAAS62N,EAAW92N,MACzD47N,EAAWjvF,EAAWmqF,EAAWxwN,IAAMwwN,EAAWvwN,KAClDs1N,EAAWlvF,EAAWmqF,EAAWtwN,OAASswN,EAAWrwN,MACrDq1N,GAAS,EACX,IAAKtG,EAEH,GAAIiG,GAAgB/I,GAAqBiJ,EAAepG,GAOtD,IAJKxC,KAA4C,IAAlBN,GAAsBiJ,EAAcE,EAAWD,EAAelG,EAAwB,EAAIiG,EAAcG,EAAWF,EAAelG,EAAwB,KAEvL1C,IAAwB,GAErBA,GAOH+I,GAAS,OALT,GAAsB,IAAlBrJ,GAAsBiJ,EAAcE,EAAWlJ,GACjDgJ,EAAcG,EAAWnJ,GACzB,OAAQD,QAOZ,GAAIiJ,EAAcE,EAAWD,GAAgB,EAAIpG,GAAiB,GAAKmG,EAAcG,EAAWF,GAAgB,EAAIpG,GAAiB,EACnI,OAoBR,SAA6Bv5N,GAC3B,OAAI/3B,GAAM4rP,IAAU5rP,GAAM+3B,GACjB,GAEC,CAEZ,CA1Be+/N,CAAoB//N,GAKjC,IADA8/N,EAASA,GAAUtG,KAGbkG,EAAcE,EAAWD,EAAelG,EAAwB,GAAKiG,EAAcG,EAAWF,EAAelG,EAAwB,GACvI,OAAOiG,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAG5D,OAAO,CACT,CAxdoBK,CAAkB7kL,EAAKn7C,EAAQ86N,EAAYnqF,EAAUmuF,EAAkB,EAAI58O,EAAQq3O,cAAgD,MAAjCr3O,EAAQu3O,sBAAgCv3O,EAAQq3O,cAAgBr3O,EAAQu3O,sBAAuBzC,GAAwBR,KAAex2N,GAElO,IAAd5I,EAAiB,CAEnB,IAAIy6D,EAAY5pF,GAAM4rP,IACtB,GACEhiK,GAAaz6D,EACb4+G,EAAU89G,GAAS5nN,SAAS2lD,SACrBmkD,IAAwC,SAA5B30E,GAAI20E,EAAS,YAAyBA,IAAY06G,IACzE,CAEA,GAAkB,IAAdt5N,GAAmB4+G,IAAYh2G,EACjC,OAAOm+N,GAAU,GAEnB3H,GAAax2N,EACby2N,GAAgBr/N,EAChB,IAAIqpM,EAAczgM,EAAOk3C,mBACvB08E,GAAQ,EAENqsG,EAAarF,GAAQ7G,GAAQp0N,EAAIk0N,GAAQgH,EAAU76N,EAAQ86N,EAAY3/K,EAD3Ey4E,EAAsB,IAAdx8H,GAER,IAAmB,IAAf6oO,EAwBF,OAvBmB,IAAfA,IAAoC,IAAhBA,IACtBrsG,EAAuB,IAAfqsG,GAEV/I,IAAU,EACVj0O,WAAWq4O,GAAW,IACtB5N,IACI95F,IAAU6sE,EACZ9gM,EAAGmK,YAAY+pN,IAEf7zN,EAAOkL,WAAW8L,aAAa68M,GAAQjgG,EAAQ6sE,EAAczgM,GAI3Du/N,GACF7jB,GAAS6jB,EAAiB,EAAGC,EAAeD,EAAgBx2N,WAE9D+qN,GAAWD,GAAO3oN,gBAGYrlC,IAA1B+4P,GAAwC5H,KAC1CN,GAAqBrpP,KAAKge,IAAIuzO,EAAwBhQ,GAAQ5uN,GAAQs/N,KAExEb,IACON,GAAU,EAErB,CACA,GAAIx+N,EAAGwH,SAAS0sN,IACd,OAAOsK,GAAU,EAErB,CACA,OAAO,CA3OM,CACb,SAASF,EAAcr5P,EAAM04F,GAC3B21J,GAAYruP,EAAM4sD,EAAOu7L,GAAe,CACtC5xK,IAAKA,EACL0iL,QAASA,EACTr7L,KAAMmuG,EAAW,WAAa,aAC9BitF,OAAQA,EACR/C,SAAUA,EACVC,WAAYA,EACZgD,QAASA,EACTC,aAAcA,EACd/9N,OAAQA,EACRm+N,UAAWA,EACXjD,OAAQ,SAAgBl7N,EAAQ4zH,GAC9B,OAAOgnG,GAAQ7G,GAAQp0N,EAAIk0N,GAAQgH,EAAU76N,EAAQ4uN,GAAQ5uN,GAASm7C,EAAKy4E,EAC5E,EACD6qG,QAASA,GACRnhK,GACL,CAGA,SAASowJ,IACPuQ,EAAc,4BACdzsM,EAAM6/L,wBACF7/L,IAAUusM,GACZA,EAAa1M,uBAEjB,CAGA,SAAS8M,EAAU+B,GAiDjB,OAhDAjC,EAAc,oBAAqB,CACjCiC,UAAWA,IAETA,IAEErC,EACFtJ,EAAegJ,aAEfhJ,EAAe4L,WAAW3uM,GAExBA,IAAUusM,IAEZhQ,GAAY8F,GAAQS,GAAcA,GAAYpyO,QAAQy3O,WAAapF,EAAeryO,QAAQy3O,YAAY,GACtG5L,GAAY8F,GAAQ3xO,EAAQy3O,YAAY,IAEtCrF,KAAgB9iM,GAASA,IAAUo+L,GAASxwN,OAC9Ck1N,GAAc9iM,EACLA,IAAUo+L,GAASxwN,QAAUk1N,KACtCA,GAAc,MAIZyJ,IAAiBvsM,IACnBA,EAAM0sM,sBAAwBl+N,GAEhCwxB,EAAMogM,YAAW,WACfqM,EAAc,6BACdzsM,EAAM0sM,sBAAwB,IAChC,IACI1sM,IAAUusM,IACZA,EAAanM,aACbmM,EAAaG,sBAAwB,QAKrCl+N,IAAW6zN,KAAWA,GAAO9C,UAAY/wN,IAAWL,IAAOK,EAAO+wN,YACpEyF,GAAa,MAIVt0O,EAAQ83O,gBAAmB7+K,EAAI44K,QAAU/zN,IAAWsG,WACvDutN,GAAO3oN,WAAW+lN,IAASqI,iBAAiBn+K,EAAIn7C,SAG/CkgO,GAAanH,GAA8B59K,KAE7Cj5D,EAAQ83O,gBAAkB7+K,EAAIgF,iBAAmBhF,EAAIgF,kBAC/C69K,GAAiB,CAC1B,CAGA,SAASS,IACPv+H,GAAWj4H,GAAM4rP,IACjBa,GAAoBzsP,GAAM4rP,GAAQ3xO,EAAQyoE,WAC1CuqK,GAAe,CACbr5B,SAAUrqK,EACV5sD,KAAM,SACNwwP,KAAMz1N,EACNugG,SAAUA,GACVw0H,kBAAmBA,GACnBd,cAAez4K,GAEnB,CA8ID,EACD+iL,sBAAuB,KACvBkC,eAAgB,WACdx5N,GAAIN,SAAU,YAAaz4B,KAAK8uP,cAChC/1N,GAAIN,SAAU,YAAaz4B,KAAK8uP,cAChC/1N,GAAIN,SAAU,cAAez4B,KAAK8uP,cAClC/1N,GAAIN,SAAU,WAAYyyN,IAC1BnyN,GAAIN,SAAU,YAAayyN,IAC3BnyN,GAAIN,SAAU,YAAayyN,GAC5B,EACDsH,aAAc,WACZ,IAAI7hM,EAAgB3wD,KAAK8xB,GAAG6+B,cAC5B53B,GAAI43B,EAAe,UAAW3wD,KAAKwuP,SACnCz1N,GAAI43B,EAAe,WAAY3wD,KAAKwuP,SACpCz1N,GAAI43B,EAAe,YAAa3wD,KAAKwuP,SACrCz1N,GAAI43B,EAAe,gBAAiB3wD,KAAKwuP,SACzCz1N,GAAI43B,EAAe,cAAe3wD,KAAKwuP,SACvCz1N,GAAIN,SAAU,cAAez4B,KAC9B,EACDwuP,QAAS,SAA4BlhL,GACnC,IAAIx7C,EAAK9xB,KAAK8xB,GACZzd,EAAUrU,KAAKqU,QAGjBg+G,GAAWj4H,GAAM4rP,IACjBa,GAAoBzsP,GAAM4rP,GAAQ3xO,EAAQyoE,WAC1CsoK,GAAY,OAAQplP,KAAM,CACxBstE,IAAKA,IAEP24K,GAAWD,IAAUA,GAAO3oN,WAG5Bg1F,GAAWj4H,GAAM4rP,IACjBa,GAAoBzsP,GAAM4rP,GAAQ3xO,EAAQyoE,WACtCilK,GAASsD,gBAIb0D,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBjnC,cAAcjiN,KAAK4vP,SACnBl6O,aAAa1V,KAAK6uP,iBAClBjB,GAAgB5tP,KAAK2vP,SACrB/B,GAAgB5tP,KAAK8vP,cAGjB9vP,KAAK6sP,kBACP9zN,GAAIN,SAAU,OAAQz4B,MACtB+4B,GAAIjH,EAAI,YAAa9xB,KAAK+uP,eAE5B/uP,KAAKuyP,iBACLvyP,KAAKwyP,eACD/S,IACFjsL,GAAI/6B,SAAS0B,KAAM,cAAe,IAEpCq5B,GAAIwyL,GAAQ,YAAa,IACrB14K,IACEk5K,KACFl5K,EAAIy6K,YAAcz6K,EAAIH,kBACrB94D,EAAQ63O,YAAc5+K,EAAIgF,mBAE7BuwK,IAAWA,GAAQxlN,YAAcwlN,GAAQxlN,WAAWlB,YAAY0mN,KAC5DqD,KAAWD,IAAYQ,IAA2C,UAA5BA,GAAYwB,cAEpD5B,IAAWA,GAAQhpN,YAAcgpN,GAAQhpN,WAAWlB,YAAYkqN,IAE9DL,KACEhmP,KAAK6sP,iBACP9zN,GAAIitN,GAAQ,UAAWhmP,MAEzBwtP,GAAkBxH,IAClBA,GAAOh0N,MAAM,eAAiB,GAI1Bw0N,KAAUuC,IACZ7I,GAAY8F,GAAQS,GAAcA,GAAYpyO,QAAQy3O,WAAa9rP,KAAKqU,QAAQy3O,YAAY,GAE9F5L,GAAY8F,GAAQhmP,KAAKqU,QAAQ03O,aAAa,GAG9C1E,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,WACNwwP,KAAMtB,GACN5zH,SAAU,KACVw0H,kBAAmB,KACnBd,cAAez4K,IAEb44K,KAAWD,IACT5zH,IAAY,IAEdg1H,GAAe,CACbnB,OAAQD,GACRlvP,KAAM,MACNwwP,KAAMtB,GACNuB,OAAQtB,GACRH,cAAez4K,IAIjB+5K,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,SACNwwP,KAAMtB,GACNF,cAAez4K,IAIjB+5K,GAAe,CACbnB,OAAQD,GACRlvP,KAAM,OACNwwP,KAAMtB,GACNuB,OAAQtB,GACRH,cAAez4K,IAEjB+5K,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,OACNwwP,KAAMtB,GACNF,cAAez4K,KAGnBm5K,IAAeA,GAAYgM,QAEvBpgI,KAAas0H,IACXt0H,IAAY,IAEdg1H,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,SACNwwP,KAAMtB,GACNF,cAAez4K,IAEjB+5K,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,OACNwwP,KAAMtB,GACNF,cAAez4K,KAKnBy0K,GAASxwN,SAEK,MAAZ8gG,KAAkC,IAAdA,KACtBA,GAAWs0H,GACXE,GAAoBD,IAEtBS,GAAe,CACbr5B,SAAUhuN,KACVjJ,KAAM,MACNwwP,KAAMtB,GACNF,cAAez4K,IAIjBttE,KAAKyyP,WA3HTzyP,KAAKkvP,UAgIR,EACDA,SAAU,WACR9J,GAAY,UAAWplP,MACvBkmP,GAASF,GAASC,GAAWpD,GAAUsD,GAASE,GAAUD,GAAaE,GAAc+B,GAASC,GAAW9B,GAAQn0H,GAAWw0H,GAAoBF,GAAWC,GAAoB+B,GAAaC,GAAgBnC,GAAc2B,GAAcrG,GAAS5+J,QAAU4+J,GAAS17M,MAAQ07M,GAASnkO,MAAQmkO,GAASxwN,OAAS,KAC/S+3N,GAAkB75O,SAAQ,SAAUqiB,GAClCA,EAAGN,SAAU,CACf,IACA83N,GAAkB3zP,OAAS4yP,GAASC,GAAS,CAC9C,EACDn7K,YAAa,SAAgCC,GAC3C,OAAQA,EAAIryE,MACV,IAAK,OACL,IAAK,UACH+E,KAAKwuP,QAAQlhL,GACb,MACF,IAAK,YACL,IAAK,WACC04K,KACFhmP,KAAKurP,YAAYj+K,GAmJ3B,SAAoCA,GAC9BA,EAAIyuG,eACNzuG,EAAIyuG,aAAa22E,WAAa,QAEhCplL,EAAIy6K,YAAcz6K,EAAIH,gBACxB,CAvJUwlL,CAAgBrlL,IAElB,MACF,IAAK,cACHA,EAAIH,iBAGT,EAKDylL,QAAS,WAOP,IANA,IACE9gO,EADEigB,EAAQ,GAEV1T,EAAWr+B,KAAK8xB,GAAGuM,SACnBzoC,EAAI,EACJY,EAAI6nC,EAAS1oC,OACb0e,EAAUrU,KAAKqU,QACVze,EAAIY,EAAGZ,IAER0vD,GADJxzB,EAAKuM,EAASzoC,GACEye,EAAQyoE,UAAW98E,KAAK8xB,IAAI,IAC1CigB,EAAMxvC,KAAKuvB,EAAGovB,aAAa7sC,EAAQ+3O,aAAesB,GAAY57N,IAGlE,OAAOigB,CACR,EAKD7e,KAAM,SAAc6e,EAAO8gN,GACzB,IAAIn7M,EAAQ,CAAE,EACZwuM,EAASlmP,KAAK8xB,GAChB9xB,KAAK4yP,UAAUnjP,SAAQ,SAAU4nB,EAAIzhC,GACnC,IAAIk8B,EAAKo0N,EAAO7nN,SAASzoC,GACrB0vD,GAAQxzB,EAAI9xB,KAAKqU,QAAQyoE,UAAWopK,GAAQ,KAC9CxuM,EAAMrgB,GAAMvF,EAEf,GAAE9xB,MACH6yP,GAAgB7yP,KAAKwjP,wBACrBzxM,EAAMtiC,SAAQ,SAAU4nB,GAClBqgB,EAAMrgB,KACR6uN,EAAO/pN,YAAYub,EAAMrgB,IACzB6uN,EAAOjqN,YAAYyb,EAAMrgB,IAE7B,IACAw7N,GAAgB7yP,KAAK+jP,YACtB,EAID0O,KAAM,WACJ,IAAIhkH,EAAQzuI,KAAKqU,QAAQo6H,MACzBA,GAASA,EAAMlrI,KAAOkrI,EAAMlrI,IAAIvD,KACjC,EAODslD,QAAS,SAAmBxzB,EAAI2yB,GAC9B,OAAOa,GAAQxzB,EAAI2yB,GAAYzkD,KAAKqU,QAAQyoE,UAAW98E,KAAK8xB,IAAI,EACjE,EAODwhD,OAAQ,SAAgBv8E,EAAMuB,GAC5B,IAAI+b,EAAUrU,KAAKqU,QACnB,QAAc,IAAV/b,EACF,OAAO+b,EAAQtd,GAEf,IAAI8uP,EAAgBZ,GAAcS,aAAa1lP,KAAMjJ,EAAMuB,GAEzD+b,EAAQtd,QADmB,IAAlB8uP,EACOA,EAEAvtP,EAEL,UAATvB,GACF0zP,GAAcp2O,EAGnB,EAIDqwC,QAAS,WACP0gM,GAAY,UAAWplP,MACvB,IAAI8xB,EAAK9xB,KAAK8xB,GACdA,EAAGsxN,IAAW,KACdrqN,GAAIjH,EAAI,YAAa9xB,KAAK8sP,aAC1B/zN,GAAIjH,EAAI,aAAc9xB,KAAK8sP,aAC3B/zN,GAAIjH,EAAI,cAAe9xB,KAAK8sP,aACxB9sP,KAAK6sP,kBACP9zN,GAAIjH,EAAI,WAAY9xB,MACpB+4B,GAAIjH,EAAI,YAAa9xB,OAGvBlK,MAAMY,UAAU+Y,QAAQ7Y,KAAKk7B,EAAGqd,iBAAiB,gBAAgB,SAAUrd,GACzEA,EAAGwtB,gBAAgB,YACrB,IACAt/C,KAAKwuP,UACLxuP,KAAKyuP,4BACLxF,GAAUnlP,OAAOmlP,GAAU52N,QAAQryB,KAAK8xB,IAAK,GAC7C9xB,KAAK8xB,GAAKA,EAAK,IAChB,EACD49N,WAAY,WACV,IAAKpJ,GAAa,CAEhB,GADAlB,GAAY,YAAaplP,MACrB+hP,GAASsD,cAAe,OAC5B7xL,GAAI6yL,GAAS,UAAW,QACpBrmP,KAAKqU,QAAQw3O,mBAAqBxF,GAAQhpN,YAC5CgpN,GAAQhpN,WAAWlB,YAAYkqN,IAEjCC,IAAc,CAChB,CACD,EACDgM,WAAY,SAAoB7L,GAC9B,GAAgC,UAA5BA,EAAYwB,aAIhB,GAAI3B,GAAa,CAEf,GADAlB,GAAY,YAAaplP,MACrB+hP,GAASsD,cAAe,OAGxBW,GAAO3oN,YAAc6oN,IAAWlmP,KAAKqU,QAAQ85G,MAAM88H,YAE5C9E,GACTD,GAAO/8M,aAAak9M,GAASF,IAE7BD,GAAOjqN,YAAYoqN,IAJnBH,GAAO/8M,aAAak9M,GAASL,IAM3BhmP,KAAKqU,QAAQ85G,MAAM88H,aACrBjrP,KAAKisD,QAAQ+5L,GAAQK,IAEvB7yL,GAAI6yL,GAAS,UAAW,IACxBC,IAAc,CAChB,OApBEtmP,KAAK0vP,YAqBT,GA8IEnG,IACF/wN,GAAGC,SAAU,aAAa,SAAU60C,IAC7By0K,GAASxwN,QAAUw3N,KAAwBz7K,EAAIy6K,YAClDz6K,EAAIH,gBAER,IAIF40K,GAASl8C,MAAQ,CACfrtK,GAAIA,GACJO,IAAKA,GACLy6B,IAAKA,GACLhE,KAAMA,GACN3J,GAAI,SAAY/zB,EAAI2yB,GAClB,QAASa,GAAQxzB,EAAI2yB,EAAU3yB,GAAI,EACpC,EACD7P,OA72DF,SAAgB6wO,EAAK54D,GACnB,GAAI44D,GAAO54D,EACT,IAAK,IAAIviM,KAAOuiM,EACVA,EAAI/gM,eAAexB,KACrBm7P,EAAIn7P,GAAOuiM,EAAIviM,IAIrB,OAAOm7P,CACT,EAq2DE13O,SAAUA,GACVkqC,QAASA,GACT46L,YAAaA,GACbtiO,MAAOA,GACPxjB,MAAOA,GACPu6B,SAAUg5N,GACVoF,eAAgBnF,GAChBoF,gBAAiBpJ,GACjBn/J,SAAUA,GACV24J,QAASA,IAQXrB,GAASn+O,IAAM,SAAU+0B,GACvB,OAAOA,EAAQyqN,GACjB,EAMArB,GAASz9M,MAAQ,WACf,IAAK,IAAIvU,EAAO7xB,UAAUvI,OAAQovP,EAAU,IAAIjvP,MAAMi6B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF+0N,EAAQ/0N,GAAQ9xB,UAAU8xB,GAExB+0N,EAAQ,GAAGjuP,cAAgBhB,QAAOivP,EAAUA,EAAQ,IACxDA,EAAQt1O,SAAQ,SAAUy1O,GACxB,IAAKA,EAAOxuP,YAAcwuP,EAAOxuP,UAAUI,YACzC,KAAM,gEAAgEy5B,OAAO,CAAE,EAAC55B,SAASC,KAAKsuP,IAE5FA,EAAOr/C,QAAOk8C,GAASl8C,MAAQq5C,GAAeA,GAAe,CAAE,EAAE6C,GAASl8C,OAAQq/C,EAAOr/C,QAC7Fo/C,GAAc3gN,MAAM4gN,EACtB,GACF,EAOAnD,GAAS3kP,OAAS,SAAU00B,EAAIzd,GAC9B,OAAO,IAAI0tO,GAASjwN,EAAIzd,EAC1B,EAGA0tO,GAAS7rN,QAvvEK,SAyvEd,IACE+8N,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPEC,GAAc,GAGhBC,IAAY,EA4Gd,SAASC,KACPF,GAAY9jP,SAAQ,SAAUikP,GAC5BzxC,cAAcyxC,EAAWC,IAC3B,IACAJ,GAAc,EAChB,CACA,SAASK,KACP3xC,cAAcqxC,GAChB,CACA,IAAII,GAAat4O,IAAS,SAAUkyD,EAAKj5D,EAAS6xO,EAAQ2N,GAExD,GAAKx/O,EAAQ+rD,OAAb,CACA,IAME0zL,EANEn1O,GAAK2uD,EAAIs3F,QAAUt3F,EAAIs3F,QAAQ,GAAKt3F,GAAK+C,QAC3CtzD,GAAKuwD,EAAIs3F,QAAUt3F,EAAIs3F,QAAQ,GAAKt3F,GAAKgD,QACzCyjL,EAAO1/O,EAAQ2/O,kBACfC,EAAQ5/O,EAAQ6/O,YAChB/R,EAActB,KACZsT,GAAqB,EAIrBjB,KAAiBhN,IACnBgN,GAAehN,EACfuN,KACAR,GAAW5+O,EAAQ+rD,OACnB0zL,EAAiBz/O,EAAQ+/O,UACR,IAAbnB,KACFA,GAAWxR,GAA2ByE,GAAQ,KAGlD,IAAImO,EAAY,EACZC,EAAgBrB,GACpB,EAAG,CACD,IAAInhO,EAAKwiO,EACPh4N,EAAOykN,GAAQjvN,GACf2K,EAAMH,EAAKG,IACXE,EAASL,EAAKK,OACdD,EAAOJ,EAAKI,KACZE,EAAQN,EAAKM,MACbzG,EAAQmG,EAAKnG,MACbC,EAASkG,EAAKlG,OACdm+N,OAAa,EACbC,OAAa,EACb54N,EAAc9J,EAAG8J,YACjB+8B,EAAe7mC,EAAG6mC,aAClBkxL,EAAQr2L,GAAI1hC,GACZ2iO,EAAa3iO,EAAG4L,WAChBg3N,EAAa5iO,EAAGoJ,UACdpJ,IAAOqwN,GACToS,EAAap+N,EAAQyF,IAAoC,SAApBiuN,EAAMnyL,WAA4C,WAApBmyL,EAAMnyL,WAA8C,YAApBmyL,EAAMnyL,WACzG88L,EAAap+N,EAASuiC,IAAqC,SAApBkxL,EAAMlyL,WAA4C,WAApBkyL,EAAMlyL,WAA8C,YAApBkyL,EAAMlyL,aAE3G48L,EAAap+N,EAAQyF,IAAoC,SAApBiuN,EAAMnyL,WAA4C,WAApBmyL,EAAMnyL,WACzE88L,EAAap+N,EAASuiC,IAAqC,SAApBkxL,EAAMlyL,WAA4C,WAApBkyL,EAAMlyL,YAE7E,IAAIg9L,EAAKJ,IAAe/0P,KAAKge,IAAIof,EAAQje,IAAMo1O,GAAQU,EAAat+N,EAAQyF,IAAgBp8B,KAAKge,IAAIkf,EAAO/d,IAAMo1O,KAAUU,GACxHG,EAAKJ,IAAeh1P,KAAKge,IAAImf,EAAS5f,IAAMg3O,GAAQW,EAAat+N,EAASuiC,IAAiBn5D,KAAKge,IAAIif,EAAM1f,IAAMg3O,KAAUW,GAC9H,IAAKnB,GAAYc,GACf,IAAK,IAAIz+P,EAAI,EAAGA,GAAKy+P,EAAWz+P,IACzB29P,GAAY39P,KACf29P,GAAY39P,GAAK,IAInB29P,GAAYc,GAAWM,IAAMA,GAAMpB,GAAYc,GAAWO,IAAMA,GAAMrB,GAAYc,GAAWviO,KAAOA,IACtGyhO,GAAYc,GAAWviO,GAAKA,EAC5ByhO,GAAYc,GAAWM,GAAKA,EAC5BpB,GAAYc,GAAWO,GAAKA,EAC5B3yC,cAAcsxC,GAAYc,GAAWV,KAC3B,GAANgB,GAAiB,GAANC,IACbT,GAAqB,EAErBZ,GAAYc,GAAWV,IAAM3xC,YAAY,WAEnC6xC,GAA6B,IAAf7zP,KAAK60P,OACrB9S,GAASxwN,OAAOu9N,aAAauE,IAE/B,IAAIyB,EAAgBvB,GAAYvzP,KAAK60P,OAAOD,GAAKrB,GAAYvzP,KAAK60P,OAAOD,GAAKX,EAAQ,EAClFc,EAAgBxB,GAAYvzP,KAAK60P,OAAOF,GAAKpB,GAAYvzP,KAAK60P,OAAOF,GAAKV,EAAQ,EACxD,mBAAnBH,GACoI,aAAzIA,EAAel9P,KAAKmrP,GAAS5+J,QAAQ9lD,WAAW+lN,IAAU2R,EAAeD,EAAexnL,EAAK+lL,GAAYE,GAAYvzP,KAAK60P,OAAO/iO,KAIvI+7M,GAAS0lB,GAAYvzP,KAAK60P,OAAO/iO,GAAIijO,EAAeD,EACrD,EAACnvM,KAAK,CACLkvM,MAAOR,IACL,MAGRA,GACF,OAAShgP,EAAQ2gP,cAAgBV,IAAkBnS,IAAgBmS,EAAgB7S,GAA2B6S,GAAe,KAC7Hd,GAAYW,CAjFS,CAkFvB,GAAG,IAECtwK,GAAO,SAAcniD,GACvB,IAAIqkN,EAAgBrkN,EAAKqkN,cACvBU,EAAc/kN,EAAK+kN,YACnBT,EAAStkN,EAAKskN,OACdU,EAAiBhlN,EAAKglN,eACtBU,EAAwB1lN,EAAK0lN,sBAC7BN,EAAqBplN,EAAKolN,mBAC1BE,EAAuBtlN,EAAKslN,qBAC9B,GAAKjB,EAAL,CACA,IAAIkP,EAAaxO,GAAeC,EAChCI,IACA,IAAIniF,EAAQohF,EAAcmP,gBAAkBnP,EAAcmP,eAAev/P,OAASowP,EAAcmP,eAAe,GAAKnP,EAChH5zN,EAASsG,SAAS22N,iBAAiBzqF,EAAMt0F,QAASs0F,EAAMr0F,SAC5D02K,IACIiO,IAAeA,EAAWnjO,GAAGwH,SAASnH,KACxCi1N,EAAsB,SACtBpnP,KAAKm1P,QAAQ,CACXnP,OAAQA,EACRS,YAAaA,IAVG,CAatB,EACA,SAAS2O,KAAU,CA8BnB,SAASC,KAAU,CC5nFK,SAAAC,GACtBzxP,EAAawvE,EAAsB4Q,GAE7B,IAAA6gD,EAAA7tI,EAAc4M,GAQb,OAPHogF,EAAc5Q,EAAe,GAC/ByxD,EAAQhhI,OAAOmgF,EAAc,EAAG,EAAG6gD,EAAQzxD,IACnCyxD,EAAAhhI,OAAOuvE,EAAc,KAE7ByxD,EAAQhhI,OAAOmgF,EAAa,EAAG6gD,EAAQzxD,IAC/ByxD,EAAAhhI,OAAOuvE,EAAe,EAAG,IAE5ByxD,CACT,okBCAA,SAASywH,GAAWz7N,GACS,OAAvBA,EAAKyyC,eACFzyC,EAAAyyC,cAAcpwC,YAAYrC,EAEnC,CAEA,SAAS07N,GAAaC,EAAyB37N,EAAmBwO,GAC1D,IAAAotN,EAAuB,IAAbptN,EAAiBmtN,EAAWp3N,SAAS,GAAKo3N,EAAWp3N,SAASiK,EAAW,GAAGsqL,YACjF6iC,EAAAtsN,aAAarP,EAAM47N,EAChC,CAEwB,SAAAtxK,GACtBjlF,EACAsqC,EACAjL,GAIA,IAAA0sC,EAA+C7nC,SAAOlkC,GAA9CsyO,EAAoBvmK,EAApBumK,mBAAoB9zJ,EAAAzS,EAAAyS,SAAU95E,EAAKqnE,EAALrnE,KAChCo5N,EAAkB5tM,EAAAA,IAAIlwB,EAAMwnB,YAClC+pM,EAA2FlG,KAAnF8E,EAAuBoB,EAAvBpB,sBAAuB7E,EAAAiG,EAAAjG,eAAgB4C,EAAqBqD,EAArBrD,oBAAqBI,EAAAiD,EAAAjD,mBAC9DhG,EAAUp4L,EAAAA,IAAuBlwB,EAAMsoN,SAAW,IAClDi2B,EAAkBruN,MAAI,MAEtBsmO,EAAU7+O,EAAAA,UAAS,WAAA,OAAM2wM,EAAQnvN,MAAMk3D,MAAK,SAACpxB,GAAS,MAAgB,SAAhBA,EAAKq0L,aAE3DmjC,EAAiB9+O,EAAAA,UACrB,WAAA,OAAM26N,EAAmBn5O,OAAS,CAAC,MAAO,mBAAmBqe,SAASgnE,EAASrlF,MAAK,IAGhFu9P,EAAwB/+O,EAAAA,UAC5B,WAAA,MAAM,CAAC,cAAe,mBAAmBH,SAASgnE,EAASrlF,UAAYq9P,EAAQr9P,KAAA,IAG3Ew9P,EAAiBh/O,EAAAA,UAAS,WAAA,MAAM,CAAC,MAAO,mBAAmBH,SAASgnE,EAASrlF,UAO1E,SAAAy9P,EAAiB37P,EAAeusB,GAA4B,IAAAqvO,EAAAC,EAC7Dl9O,EAAqBi9O,QAArBA,EAAUrvO,EAAW5N,eAAAi9O,IAAAA,EAAAA,EAAWrvO,EAAWsuG,eAC3CI,EAAsB4gI,QAAtBA,EAAWtvO,EAAW0uG,gBAAA4gI,IAAAA,EAAAA,EAAYtvO,EAAW2uG,gBAEnD,OAAKn2H,EAAMuoN,iBAAmB/gM,GAAc9iB,EAAKvL,MAAM3C,OAAS0/H,EACvDA,GAAYt8G,EAAU,GAAK3e,EAE7BA,CACT,CAbI+E,EAAMsyO,oBACJhtK,GAAM,QAAS,+EAef,IAiEAyxL,EAA+B,SAAC77N,EAAwB87N,GAC5D,IAAM9hP,EAA2BshB,GAAA,CAC/B7R,UAAW,IACXsoO,WAAY,cACZ7iO,UAAW,WACXuiO,WAAYx8B,EAAsBjpL,MAClC0lN,YAAaz8B,EAAsBI,OACnCs8B,UAAW18B,EAAsBx0G,SACjCljF,WAAArH,OAAYk6L,EAAeM,aAG3BqrC,MAAO,SAAC9oL,GAAuB,IAAA+oL,EACzB,GAAA/oL,EAAI+kD,WAAa/kD,EAAIq5K,SAArB,CACAwP,IAEFZ,GAAWjoL,EAAIlvC,MACfo3N,GAAaloL,EAAIn3E,KAAMm3E,EAAIlvC,KAAMkvC,EAAIq5K,WAEvC,IAAQA,EAA8Cr5K,EAA9Cq5K,SAAUt0H,EAAoC/kD,EAApC+kD,SAAkBq4C,EAAkBp9F,EAA1Bn7C,OACxBkhD,EAAe8iL,EAAUxP,EAAWt0H,EACpCpuC,EAAckyK,EAAU9jI,EAAWs0H,EACjC2P,EAAa5rF,EAAcrsI,SAASg1C,GACpCkjL,EAAa7rF,EAAcrsI,SAAS4lD,GACpClrE,EAAU08N,GAAmBhuB,EAAQnvN,MAAOg+P,EAAW1uN,QAAQutL,QAC/DhjM,EAASsjN,GAAmBhuB,EAAQnvN,MAAOi+P,EAAW3uN,QAAQutL,QAC/Dp8M,GAAYA,EAAQ05M,QACvBhuJ,GAAU,gCAASl0C,OAAwBm+G,KAAKC,UAAU51H,KAEvDoZ,GAAWA,EAAOsgM,QACrBhuJ,GAAU,gCAASl0C,OAAwBm+G,KAAKC,UAAUx8G,KAG5DkhD,EAAesiK,GAAoBx2O,EAAMsoN,QAAS1uM,EAAQ05M,QAC1DxuI,EAAc0xJ,GAAoBx2O,EAAMsoN,QAASt1L,EAAOsgM,QACxD,IAAMj0L,EAAwC,CAC5C36B,KAAM4jN,EAAQnvN,MACd+6E,aAAAA,EACAt6D,QAAAA,EACAkrE,YAAAA,EACA9xD,OAAAA,EACA2yG,QAASwwH,KAAyBn2P,EAAMsoN,SAAUp0I,EAAc4Q,GAChEtqF,EAAG2zE,EACHp6C,KAAM,OAGRsL,EAAOs8M,YAAct8M,EAAOsmG,gBAC5BuxH,EAAAl3P,EAAM2+E,kBAANu4K,OAAAA,EAAAz/P,KAAAuI,EAAmBq/B,EAlCgB,CAmCrC,GACGr/B,EAAMmxO,iBAENj2M,GACD,IAAA0nN,GAAS1nN,EAAWhmB,IAIpBmiP,EAAuB,SAACz5B,GACxB,GAAC+4B,EAAex9P,OAAUykO,EAA1B,CACE,IAAAtE,EAASsE,EAAa5tL,iBAAiB,cACzC,GAAAspL,EAAO9iO,QAAU,EAAG,CAChB,IAAC0kC,EAADve,GAAc28M,EAAA,GAAJ,GAChBy9B,EAA6B77N,GAA0B,EACzD,MAEUo+L,SAAAA,EAAAhpN,SAAQ,SAAC4qB,GACf67N,EAA6B77N,GAA0B,EACzD,GAT0C,GA8CvC,OAvBPwG,EAAAA,MAAM,CAAC68M,EAAiBj2B,EAAS9pI,EAAUn/C,IAAS,SAAAkD,GAAsC,IAAAgnB,EAAA5sC,GAAA4lB,EAAA,GAApC9D,EAAK6pL,EAAAA,GAAAA,EAAAA,GAAmBjpL,EAAAA,GAIrE,SAASZ,EAAUY,GAC1B,IAAMi4N,EAAkB74N,EACxB,IAAKA,IAAQ64N,EAAgBxzK,MAAQzkD,EAAOgtM,YAAa,OAEnD,IAAAkrB,EAASthP,YAAW,YAxJC,SAACujB,GAAkC,IAAAg+N,EAK1D,GAA8B,KAA9Bh+N,iBAAAg+N,EAAAh+N,EAAS0F,gBAATs4N,WAAAA,EAAAA,EAAmBhhQ,UAAkBkgQ,EAAsBv9P,OAAUs9P,EAAet9P,OAApF,CACE,IAAAs+P,EAAgBj+N,aAAAA,EAAAA,EAASsB,cAAc,SAC7C,IAAK28N,EAEI,OADPpyN,QAAQnT,MAAM,yBACP,KAET,IAAMwlO,EAA+BlhO,GAAA,CACnC7R,UAAW,IACXgoO,WAAYx8B,EAAsBjpL,MAClC0lN,YAAaz8B,EAAsBI,OACnCs8B,UAAW18B,EAAsBx0G,SAEjCv7E,OAAQhP,IAAAA,OAAI88L,EAAoBC,KAAA/8L,MAAAA,OAASk9L,EAAmBl1K,KAC5D80M,OAAQ,SAAC//K,GAAmB,OAACp0C,GAASo0C,EAAIga,QAAS+lI,EAAoBC,KAAI,EAC3E8oC,MAAAA,SAAM9oL,GAAoB,IAAAyW,EACpB,GAAAzW,EAAI+kD,WAAa/kD,EAAIq5K,SAArB,CAEJ4O,GAAWjoL,EAAIlvC,MACfo3N,GAAaloL,EAAIn3E,KAAMm3E,EAAIlvC,KAAMkvC,EAAIq5K,UACrC,IAAgBtzK,EAAwC/F,EAAlDq5K,SAAkC1iK,EAAgB3W,EAA1B+kD,UAE3Br2H,EAAWmD,EAAMyoN,eAAiBzoN,EAAMyoN,aAAahrM,EAAAA,IACtD6sB,EAAQnK,MAAMsoL,cACdn+K,EAAQnK,MAAM,qBAEE+zC,GAAA,EACD4Q,GAAA,GAEbg5I,EAAgB3kO,QACH+6E,EAAA0iL,EAAiB1iL,EAAc4pJ,EAAgB3kO,OAChD2rF,EAAA8xK,EAAiB9xK,EAAag5I,EAAgB3kO,QAE9D,IAAMkmC,EAAwC,CAC5C36B,KAAMA,EAAKvL,MACX+6E,aAAAA,EACAt6D,QAASlV,EAAKvL,MAAM+6E,GACpB4Q,YAAAA,EACA9xD,OAAQtuB,EAAKvL,MAAM2rF,GACnB6gD,QAASwwH,KAAyBn2P,EAAM0E,MAAOwvE,EAAc4Q,GAC7DtqF,EAAG2zE,EACHp6C,KAAM,OAGRsL,EAAOs8M,YAAct8M,EAAOsmG,gBAC5B/gD,EAAA5kF,EAAM2+E,kBAANiG,OAAAA,EAAAntF,KAAAuI,EAAmBq/B,EA7BgB,CA8BrC,GACGr/B,EAAMmxO,iBAGNsmB,IACDhB,EAAet9P,MACjB,IAAIypP,GAAS6U,EAAAjhO,GAAoBkhO,CAAAA,EAAAA,IAEjC,IAAI9U,GAAS6U,EAAejhO,GAAAA,MACvBkhO,GAAA,GAAA,CACHj/N,OAAArH,IAAAA,OAAY++L,EAAsB13L,WAvD0D,EAoJ9Fk/N,CAAqBL,EAAgBxzK,KACrCuzK,EAAqBC,EAAgBxzK,KAE/B,IAAA1gD,EAAQntB,YAAW,WACnBqhP,EAAgBM,MAAMl5B,gBACH24B,EAAAC,EAAgBM,MAAMl5B,gBAE7CnoN,aAAa6sB,EACf,IAEA7sB,aAAaghP,KACZ,GACL,CApBEzsM,CAASrsB,EADyE8qB,EAAA,GAEpF,IAqBO,CACLu0K,gBAAAA,EACA24B,eAAAA,EACAC,sBAAAA,EACAC,eAAAA,EACAkB,2BAtCF,SAAoCrb,GAClC+B,EAAgBplP,MAAQqjP,CAC1B,EAqCEsb,mBAnCF,SAA4Br5N,GAE1B6pL,EAAQnvN,MAAQslC,CAClB,EAkCF,CC5Oe,SAASs5N,GAASzhQ,GAC/B,OAAOsmB,GAAetmB,IAAQ2B,EAAgB3B,IAAQ4B,EAA2B5B,IAAQgnB,IAC3F,okBH0lFA24O,GAAO1+P,UAAY,CACjB05K,WAAY,KACZ+mF,UAAW,SAAmBzuM,GAC5B,IAAIk+L,EAAoBl+L,EAAMk+L,kBAC9B5mP,KAAKowK,WAAaw2E,CACnB,EACDuO,QAAS,SAAiBnsM,GACxB,IAAIg9L,EAASh9L,EAAMg9L,OACjBS,EAAcz9L,EAAMy9L,YACtBzmP,KAAKguN,SAASw1B,wBACViD,GACFA,EAAYjD,wBAEd,IAAI5wB,EAAcnoI,GAASzqF,KAAKguN,SAASl8L,GAAI9xB,KAAKowK,WAAYpwK,KAAKqU,SAC/Du+M,EACF5yN,KAAKguN,SAASl8L,GAAGqX,aAAa68M,EAAQpzB,GAEtC5yN,KAAKguN,SAASl8L,GAAGmK,YAAY+pN,GAE/BhmP,KAAKguN,SAAS+1B,aACV0C,GACFA,EAAY1C,YAEf,EACDlgK,KAAMA,IAERiwD,GAASshH,GAAQ,CACfjQ,WAAY,kBAGdkQ,GAAO3+P,UAAY,CACjBy+P,QAAS,SAAiBn+L,GACxB,IAAIgvL,EAAShvL,EAAMgvL,OAEfoR,EADYpgM,EAAMyvL,aACczmP,KAAKguN,SACzCopC,EAAe5T,wBACfwC,EAAO3oN,YAAc2oN,EAAO3oN,WAAWlB,YAAY6pN,GACnDoR,EAAerT,YAChB,EACDlgK,KAAMA,IAERiwD,GAASuhH,GAAQ,CACflQ,WAAY,kBAmqBdpD,GAASz9M,MAAM,IA16Bf,WACE,SAAS+yN,IAUP,IAAK,IAAIv/N,KATT93B,KAAK6vJ,SAAW,CACdzvF,QAAQ,EACRk3L,yBAAyB,EACzBtD,kBAAmB,GACnBE,YAAa,GACbc,cAAc,GAIDh1P,KACQ,MAAjB83B,EAAGj9B,OAAO,IAAkC,mBAAbmF,KAAK83B,KACtC93B,KAAK83B,GAAM93B,KAAK83B,GAAI6tB,KAAK3lD,MAG/B,CAkFA,OAjFAq3P,EAAW3gQ,UAAY,CACrB6vP,YAAa,SAAqB7kN,GAChC,IAAIqkN,EAAgBrkN,EAAKqkN,cACrB/lP,KAAKguN,SAAS6+B,gBAChBr0N,GAAGC,SAAU,WAAYz4B,KAAKu3P,mBAE1Bv3P,KAAKqU,QAAQu4O,eACfp0N,GAAGC,SAAU,cAAez4B,KAAKw3P,2BACxBzR,EAAcnhF,QACvBpsI,GAAGC,SAAU,YAAaz4B,KAAKw3P,2BAE/Bh/N,GAAGC,SAAU,YAAaz4B,KAAKw3P,0BAGpC,EACDC,kBAAmB,SAA2B/uM,GAC5C,IAAIq9L,EAAgBr9L,EAAMq9L,cAErB/lP,KAAKqU,QAAQqjP,gBAAmB3R,EAAcG,QACjDlmP,KAAKu3P,kBAAkBxR,EAE1B,EACDliK,KAAM,WACA7jF,KAAKguN,SAAS6+B,gBAChB9zN,GAAIN,SAAU,WAAYz4B,KAAKu3P,oBAE/Bx+N,GAAIN,SAAU,cAAez4B,KAAKw3P,2BAClCz+N,GAAIN,SAAU,YAAaz4B,KAAKw3P,2BAChCz+N,GAAIN,SAAU,YAAaz4B,KAAKw3P,4BAElC5D,KACAH,KA17DJ/9O,aAAasqO,IACbA,QAAmB,CA27DhB,EACD2X,QAAS,WACPtE,GAAaH,GAAeD,GAAWO,GAAYF,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAY59P,OAAS,CACtB,EACD6hQ,0BAA2B,SAAmClqL,GAC5DttE,KAAKu3P,kBAAkBjqL,GAAK,EAC7B,EACDiqL,kBAAmB,SAA2BjqL,EAAKssH,GACjD,IAAIj2I,EAAQ3jD,KACR2e,GAAK2uD,EAAIs3F,QAAUt3F,EAAIs3F,QAAQ,GAAKt3F,GAAK+C,QAC3CtzD,GAAKuwD,EAAIs3F,QAAUt3F,EAAIs3F,QAAQ,GAAKt3F,GAAKgD,QACzC+xK,EAAO5pN,SAAS22N,iBAAiBzwO,EAAG5B,GAOtC,GANAs2O,GAAa/lL,EAMTssH,GAAY55L,KAAKqU,QAAQijP,yBAA2B/X,IAAQD,IAAcG,GAAQ,CACpFiU,GAAWpmL,EAAKttE,KAAKqU,QAASguO,EAAMzoD,GAGpC,IAAIg+D,EAAiBnW,GAA2BY,GAAM,IAClDmR,IAAeF,IAA8B30O,IAAMw0O,IAAmBp2O,IAAMq2O,KAC9EE,IAA8BM,KAE9BN,GAA6BtxC,aAAY,WACvC,IAAI61C,EAAUpW,GAA2BhpN,SAAS22N,iBAAiBzwO,EAAG5B,IAAI,GACtE86O,IAAYD,IACdA,EAAiBC,EACjBpE,MAEFC,GAAWpmL,EAAK3pB,EAAMtvC,QAASwjP,EAASj+D,EACzC,GAAE,IACHu5D,GAAkBx0O,EAClBy0O,GAAkBr2O,EAEtB,KAAO,CAEL,IAAK/c,KAAKqU,QAAQ2gP,cAAgBvT,GAA2BY,GAAM,KAAUxB,KAE3E,YADA4S,KAGFC,GAAWpmL,EAAKttE,KAAKqU,QAASotO,GAA2BY,GAAM,IAAQ,EACzE,CACF,GAEKvuG,GAASujH,EAAY,CAC1BlS,WAAY,SACZH,qBAAqB,GAEzB,GAq0BAjD,GAASz9M,MAAM+wN,GAAQD,II1vGvB,IAAA0C,GAAevjO,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAO,CACLo5C,IAAK9hD,OACLiyN,OAAQxwN,OACR0vH,SAAUzvH,OACVqmJ,IAAK/nJ,OACL+5N,SAAUr4N,OACV4/P,QAAS,CAAC9+P,SAAUf,QACpBuyN,eAAgBh0N,OAChB+wN,iBAAkB,CAACvuN,SAAUf,QAC7B+9L,SAAU,CACRh7L,KAAMgmC,QACN3e,aAAS,GAEXorE,SAAU,CACRzyF,KAAMgmC,SAER+2N,OAAQ,CACN/8P,KAAMnF,MACNwsB,aAAS,GAEXmlC,SAAUxuD,SACVu1F,WAAYv1F,SACZg/P,aAAch/P,SACdi/P,iBAAkBj/P,UAGpB42C,MAAO,CAAC,sBAERrb,eAAMr1B,EAA0BsqC,GAAuB,IAAA0uN,EACrDjtL,EAAqB7nC,SAAOlkC,GAApBo5C,EAAA2yB,EAAA3yB,IAAKimG,EAAItzE,EAAJszE,IAEgBnvH,EAAAA,IAAI,MACjC,IAAM+oO,EAAiBthP,EAAAA,UAAS,WAAA,IAAAuhP,EAAA,eAAAA,EAAM75G,EAAIlmJ,MAAMggQ,yBAAVD,EAAgBE,gBAChDC,EAASnpO,EAAAA,IAAI+oO,EAAe9/P,QAAmB,QAAnB6/P,EAASh5P,EAAMq/I,IAAI85G,YAAA,IAAAH,OAAA,EAAVA,EAAgBM,mBAAmB,GACxEC,EAAYrpO,EAAAA,MACZmpI,EAAYnpI,EAAAA,MACZxL,EAAcyM,KAEZqoO,EAAcptM,GAAc,CAAEotM,UAAWC,KAAzCD,UAEFE,EAA6F,SAACxgQ,GAClG,GAAmB,WAAfb,EAAOa,KAAqB,aAAcA,GAAOA,EAAIygQ,oBAAqB,CACtE,IAAA32B,EAAW9pO,EAAIygQ,mBAAqBl1P,GAAI20C,EAAIjgD,MAAO6G,EAAMupN,QAAUrwN,EAAI8pO,gBACtE9pO,EAAI8pO,gBACJ9pO,EAAIygQ,mBACXrvN,EAAQqG,KAAK,qBAAsBqyL,EAAU5pL,EAAIjgD,MAAOD,EAC1D,MACEqgQ,EAAUpgQ,MAAQD,GAItBwoC,EAAAA,MAAM,CAACu3N,IAAiB,SAACx6N,GACnBA,IACF46N,EAAOlgQ,OAAQ,EAEnB,IAEM,IAAAygQ,EAAkBjiP,EAAAA,UAAS,WAAM,IAAAkiP,EAAAC,EACrC,OAAuBD,QAAhBA,EAAAx6G,EAAIlmJ,MAAMggQ,YAAMW,IAAAD,GAAA,QAAAC,EAAhBD,EAAgBxgO,UAAA,IAAAygO,OAAA,EAAhBA,EAAAriQ,KAAAoiQ,EAAArjO,GAAAA,GAA0BwuM,CAAAA,EAAAA,EAAW7rO,OAAO,CAAA,EAAA,CAAA4gQ,UAAWC,EAAW7gQ,MAAOugQ,sBAAAA,OAA4B,CAAA,CAC9G,IAEM10B,EAAartN,EAAAA,UAAS,WAAA,MAAO,CACjC8wG,SAAUzoH,EAAMyoH,SAChB4oG,SAAUrxN,EAAMqxN,SAChBhyE,IAAKr/I,EAAMq/I,IACXjmG,IAAKp5C,EAAMo5C,IACX,IAEI4gN,EAAariP,EAAAA,UAAS,WACpB,IAAE27M,EAAWj0E,EAAIlmJ,MAAfm6N,OAE8C/pK,EAAAwuM,GAAtBzkC,EAAO5qN,MAAM,MAAQ,IAA9Cw0J,OAAa+8F,EAAQ1wM,EAAA7xD,MAAA,GACtBwiQ,EAAS1jO,MAAK4iB,EAAIjgD,OAOjB,OANH8gQ,EAASzjQ,QACX0jQ,EAAOh9F,GAAYxsJ,GAAU0oC,EAAIjgD,MAAM+jK,IACvC94J,GAAI81P,EAAOh9F,GAAW+8F,EAAS5xP,KAAK,KAAMkxP,EAAUpgQ,QAEhDiL,GAAA81P,EAAQ5mC,EAAQimC,EAAUpgQ,OAEzB+gQ,CACT,IAEM/oC,EAAWx5M,EAAAA,UAAS,WAWjB,OAVMmsN,GACX,CACE1qL,IAAK4gN,EAAW7gQ,MAChBkmJ,UAAUA,CAAAA,EAAAA,EAAIlmJ,OAAO,GAAA,CAAAimM,KAAMp/L,EAAM44P,UACjCnwI,SAAUzoH,EAAMyoH,SAChB4oG,SAAUrxN,EAAMqxN,UAElB/mL,EAAQnK,MACR,CAAEkoL,iBAAkBroN,EAAMqoN,kBAG9B,IAEM8xC,EAAYxiP,EAAAA,UAAS,WACnB,IAAEwhP,EAAS95G,EAAIlmJ,MAAbggQ,KACR,OAAOt8P,EAAWs8P,EAAKn5P,OACnBm5P,EAAKn5P,MAAMw2B,GAAAA,GACNwuM,CAAAA,EAAAA,EAAW7rO,OAAA,CAAA,EAAA,CACd4gQ,UAAWC,EAAW7gQ,MACtBugQ,sBAAAA,KACDljO,MACI2iO,EAAKn5P,MAChB,IAEMo6P,EAAiBziP,EAAAA,UAAS,WAAM,IAAA0iP,EAC5BlB,EAAS95G,EAAIlmJ,MAAbggQ,KACR,IAAKA,EAAM,MAAO,GAClB,IAAMmB,EAAW9jO,MAAK2jO,EAAUhhQ,OAOzB,cALAmhQ,EAAShyM,gBACTgyM,EAASnhQ,MACXkhQ,QAAAA,EAAAlB,EAAAoB,wBAAAF,IAAAA,GAAAA,EAAkB/pP,SAAQ,SAAC2uB,UACvBq7N,EAASr7N,EAClB,IACOq7N,CACT,IAEME,EAAsB7iP,EAAAA,UAAS,WAAM,IAAA8iP,EACjCtB,EAAS95G,EAAIlmJ,MAAbggQ,KACR,QAAKA,GACEr3N,QAA+B,QAAvB24N,EAAAtB,EAAKoB,wBAAkB,IAAAE,OAAA,EAAvBA,EAAuBjjP,SAAS,YACjD,IAEMkjP,EAAe,SAACn2M,GACb,OAAA,IAAIr3C,SAAQ,SAACc,GAClB,IAWgDgzF,EAX1C3hE,EAAuD,CAC3D5kC,OAAQ,CAAA+7B,GAAAA,GAEDwuM,CAAAA,EAAAA,EAAW7rO,OAAA,GAAA,CACdkgK,UAAW,GACXlgK,MAAOogQ,EAAUpgQ,SAGrBorD,QAAAA,GAEIyzG,EAAQn7J,EAAWwiJ,EAAIlmJ,MAAMggQ,KAAKnhG,OAAS3Y,EAAIlmJ,MAAMggQ,KAAKnhG,MAAMgtE,EAAW7rO,OAASkmJ,EAAIlmJ,MAAMggQ,KAAKnhG,MACrG,IAAC3Y,EAAIlmJ,MAAMggQ,OAASnhG,IAAUA,EAAMxhK,OAGtC,eAFAwqG,EAAAhhG,EAAMqvF,kBAAN2R,OAAAA,EAAAvpG,KAAAuI,EAAmBq/B,QACnBrxB,GAAQ,GAGVqpJ,GAASkiG,EAAUpgQ,MAAO6+J,GAAOj9G,MAAK,SAACtgD,GAAW,IAAAkgQ,EAC1CvtO,EAAO3yB,aAAAA,EAAAA,EAAQ2lC,QAAO,SAACrjB,GAAM,OAACA,EAAEtiB,UAC/B4kC,EAAA5kC,OAAO,GAAG4+J,UAAYjsI,UAC7ButO,EAAA36P,EAAMqvF,kBAANsrK,OAAAA,EAAAljQ,KAAAuI,EAAmBq/B,GACdjS,GAASA,EAAK52B,QAIjB6iK,EAAUlgK,MAAQi0B,EAClBpf,EAAQof,KAJRisI,EAAUlgK,MAAQ,GAClB6U,GAAQ,GAKZ,GACF,KAUI4sP,EAAqB,SAACC,EAA6BztF,GAAoC,IAAAx8I,IAAAA,EAAA7xB,UAAAvI,OAAdkK,MAAc/J,MAAAi6B,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAdnwB,EAAcmwB,EAAA9xB,GAAAA,UAAA8xB,GAC3F6pO,EAAa,QAAQ3/M,MAAK,SAACtgD,GAAW,IAAAqgQ,EAAAC,EACpC,IAAe,IAAXtgQ,EAAJ,CACA,IAVYwiB,EAAQkC,EAUdqnB,EAAW/hC,GAAI20C,EAAIjgD,MAAOkmJ,EAAIlmJ,MAAMm6N,QAV9Br2M,EAYAs8O,EAAUpgQ,MAZFgmB,EAYSqnB,GAX3B3qC,EAASohB,IAAMphB,EAASsjB,GACnBowH,KAAKC,UAAUvyH,KAAOsyH,KAAKC,UAAUrwH,GAEvClC,IAAMkC,KASTo6O,EAAUpgQ,MAAQqtC,EAClBq0N,SAAAA,EAAA77P,WAAA,EAAuB0B,IAEU,QAAnBo6P,GAAAC,EAAAnB,EAAAzgQ,OAAMi0K,UAAN0tF,IAAmBA,GAAnBA,EAAArjQ,KAAAsjQ,EAAmBr6P,EAAK,IAElC,IAAA0iC,EAAQntB,YAAW,WAAM,IAAA+kP,EACxB/B,EAAe9/P,QAClBkgQ,EAAOlgQ,OAAQ,GAEjBkgK,EAAUlgK,MAAQ,GACO6hQ,QAAzBA,EAAAh7P,EAAM+4P,4BAAmBiC,GAAzBA,EAAAvjQ,KAAAuI,EAAAw2B,GAAAA,GACKwuM,CAAAA,EAAAA,EAAW7rO,OAAA,GAAA,CACdA,MAAOogQ,EAAUpgQ,MACjB4gQ,UAAAvjO,GAAAA,MAAgBx2B,EAAMo5C,KAAAngD,CAAAA,EAAAA,KAAM+G,EAAMq/I,IAAIi0E,OAASimC,EAAUpgQ,QACzDuhQ,aAAAA,EACArB,QAAQ,KAEV9iP,aAAa6sB,KACZ,EAtBkB,CAuBvB,KAGI8vC,EAAYv7D,EAAAA,UAAsC,WAAM,IAAAsjP,EACpD9B,EAAS95G,EAAIlmJ,MAAbggQ,KACF+B,OAAoC,IAAnBl7P,EAAM82L,SACzB,GAACuiE,EAAOlgQ,OAAU+hQ,EAAlB,CACA,GAAC/B,SAAwB8B,UAAxB9B,EAAMoB,4BAAkBU,IAAxBA,EAAwBzkQ,OAAQ,MAAO,GAE5C,IAAM2kQ,EAAuC,CAAA,EACvCN,EAAoB1B,aAAAA,EAAAA,EAAMiC,SAiBzB,OAhBFjC,EAAAoB,iBAAiBjqP,SAAQ,SAAC+qP,GACX,aAAdA,IACOF,EAAAE,GAAa,WAAkB,IAAA,IAAA32L,EAAA3lE,UAAAvI,OAAdkK,EAAc/J,IAAAA,MAAA+tE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAdjkE,EAAcikE,GAAA5lE,UAAA4lE,GACxCi2L,EAAA57P,WACE67P,EAAAA,CAAAA,EACAQ,EAAA7kO,GAAAA,GAEKwuM,CAAAA,EAAAA,EAAW7rO,OAAA,CAAA,EAAA,CACdorD,QAAS82M,EACTC,WAAYtB,EAAW7gQ,SAAAi4B,OAEtB1wB,KAGT,IAEOy6P,CArB+B,CAsBxC,IAGMI,EAAe,SAAC98N,GAA2B,IAAA+8N,EAAAC,EAAA94G,EAAA+4G,EAAAC,EAAAC,EAAAC,EAC/CtC,EAAUpgQ,MAAQslC,EAKlB,IAJA,IAAMY,EAAS7I,GAAAA,GACVwuM,CAAAA,EAAAA,EAAW7rO,OAAA,GAAA,CACdA,MAAOslC,EACPs7N,UAAAvjO,GAAAA,GAAA,CAAA,EAAgBx2B,EAAMo5C,aAAMp5C,EAAMq/I,IAAIi0E,OAAS70L,MACjD0mC,EAAApmE,UAAAvI,OANiCkK,MAAc/J,MAAAwuE,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAd1kE,EAAc0kE,EAAArmE,GAAAA,UAAAqmE,GAY3C,GALa,QAAjBo2L,EAAArB,EAAUhhQ,aAAO,IAAAqiQ,GAAAC,QAAAA,EAAjBD,EAAiBlzM,gBAAjBmzM,IAAiBA,GAAjBA,EAAAhkQ,KAAAuH,MAAAy8P,EAAA,CAAAD,EAA4B/8N,GAAKrN,OAAG1wB,YACpCiiJ,EAAA3iJ,EAAMsoD,gBAANq6F,OAAAA,EAAAlrJ,KAAAuI,EAAiBq/B,WACjBq8N,EAAA17P,EAAM84P,oBAAN4C,OAAAA,EAAAjkQ,KAAAuI,EAAqBq/B,GACLs8N,QAAAA,EAAA/B,EAAAzgQ,aAAAyiQ,IAAAD,WAAAC,EAAAD,EAAOrzM,uBAAPszM,EAAAnkQ,KAAAkkQ,EAAkBt8N,QACQ,IAAnBr/B,EAAM82L,UACP0jE,EAAoBrhQ,MAAO,CAAA,IAAA2iQ,EACzCjB,EAAoCiB,QAApCA,EAAoBz8G,EAAIlmJ,MAAMggQ,YAAV2C,IAAgBA,OAAhBA,EAAAA,EAAgBV,SAC1CR,EAAA57P,WACE67P,EAAAA,CAAAA,EACA,SAAArkO,GAAAA,GAEKwuM,CAAAA,EAAAA,EAAW7rO,OAAA,CAAA,EAAA,CACdorD,QAAS,WACT+2M,WAAYtB,EAAW7gQ,SAAAi4B,OAEtB1wB,GAEP,CACwC,YAApBm7P,QAAhBA,EAAAx8G,EAAIlmJ,MAAMggQ,gBAAM0C,SAAhBA,EAAgBE,kBAClBrB,EAAa,SAIXsB,EAAuB,SAACxhQ,GAAkB,IAAAyhQ,EAC9C,GAAK58G,EAAIlmJ,MAAMggQ,MAAS95G,EAAIlmJ,MAAMggQ,KAAKv0N,YAClCy0N,EAAOlgQ,UAEG,QAAF8iQ,EAAAzhQ,EAAE8mO,oBAAA,IAAA26B,OAAA,EAAFA,EAAAxkQ,KAAA+C,KAAsBA,EAAE6L,MAAQ,IAC3BgqD,MAAK,SAAC11B,GAAAA,IAAAA,EAAAA,OAA2B,QAA3BA,EAAsBA,EAAKT,iBAALS,IAAKuhO,OAALvhO,EAAAA,EAAgBR,YAAS/I,OAAG1M,EAAYvrB,8BAClF,CACE,IAAA0hQ,EAAoBx7G,EAAIlmJ,MAAMggQ,KAAKiC,SACzCR,EAAmBC,EAAmB,GAAIrkO,GAAAA,GAAA,CAAA,EACrCwuM,EAAW7rO,OAAA,GAAA,CACdorD,QAAS,WACT+2M,WAAYtB,EAAW7gQ,QALf,GASNgjQ,EAAY,WAAM,IAAAC,EACGA,QAAzBA,EAAAp8P,EAAM+4P,4BAAmBqD,GAAzBA,EAAA3kQ,KAAAuI,EAAAw2B,GAAAA,GACKwuM,CAAAA,EAAAA,EAAW7rO,OAAA,GAAA,CACdA,MAAOogQ,EAAUpgQ,MACjB4gQ,UAAW/5P,EAAMo5C,IACjBigN,QAAQ,EACRqB,aAAAA,MAIE/8G,EAAc,SAACnjJ,GACnB6+P,EAAOlgQ,OAAQ,EACLgjQ,IACV3hQ,EAAE24E,mBAGJ59C,EAAAA,WAAU,WAAM,IAAA8mO,EACA,QAAVA,EAAAr8P,EAAMq/I,IAAI85G,YAAA,IAAAkD,GAAVA,EAAgB/C,iBACR6C,GAEd,IAEM,IAAAG,EAAY3kP,EAAAA,UAAS,WAAA,OAAMlT,GAAI20C,EAAIjgD,MAAOkmJ,EAAIlmJ,MAAMm6N,WAgD1D,OA9CA5xL,QACE46N,GACA,SAACA,GACC/C,EAAUpgQ,MAAQmjQ,CACpB,GACA,CAAEtxM,WAAW,IAGftpB,QACE23N,GACA,SAACA,GACO,IAAA6B,OAAoC,IAAnBl7P,EAAM82L,SACxBz3C,EAAIlmJ,MAAMggQ,MAAS95G,EAAIlmJ,MAAMggQ,KAAKv0N,WAAcs2N,IACjD7B,EACChgO,GAAAC,SAAU,QAAS0iO,GAElBpiO,GAAAN,SAAU,QAAS0iO,GAE3B,GACA,CAAEhxM,WAAW,IAGftpB,EAAAA,OACE,WAAA,MAAM,CAAC1hC,EAAM82L,SAAU92L,EAAMo5C,IAAKp5C,EAAMq/I,IAAKr/I,EAAMyoH,SAAUzoH,EAAMqxN,SACnE,IAAA,SAAAxnK,GAA2B,IAAzBitI,EAAyBn6K,GAAAktC,EAAA,GAAjB,GAER,IAAiB,IAAbitI,EACFyiE,EAAUpgQ,MAAQmjQ,EAAUnjQ,WAC9B,IAAwB,IAAb29L,EAAmB,CAAA,IAAAylE,EACPA,QAArBA,EAAAv8P,EAAM84P,wBAAeyD,GAArBA,EAAA9kQ,KAAAuI,EAAAw2B,GAAAA,GACKwuM,CAAAA,EAAAA,EAAW7rO,OAAA,GAAA,CACdA,MAAOmjQ,EAAUnjQ,MACjB4gQ,UAAW3gN,EAAIjgD,QAEnB,CACF,GACA,CAAE6xD,WAAW,IAGftpB,EAAAA,OACE,WAAA,OAAM1hC,EAAM64P,MACZ,IAAA,SAACA,GACCx/F,EAAUlgK,MAAQ0/P,CACpB,IAGK,WAAM,IAAA2D,EAAAC,EAAAC,EAAAC,EAKsEC,EAJjF,GAAI58P,EAAMuuF,SACR,OAAO4iI,EAASh4N,MAGb,QAAmB,IAAnB6G,EAAM82L,WAA2BuiE,EAAOlgQ,QAA6B,IAAnB6G,EAAM82L,SAC3D,OAAAlgK,EAAAA,YAAA,MAAA,CAAAC,MACc72B,EAAMsrN,eAAeQ,qBAAuBnuE,GACrDwzE,CAAAA,EAASh4N,OACwB,aAAjCyjQ,EAAAv9G,EAAIlmJ,MAAMggQ,YAAA,IAAAyD,OAAA,EAAVA,EAAgBC,eAAiBjmO,cAAA4iO,EAAoB,KAAA,QAItD,IAAAsD,EAA4BN,QAA5BA,EAAYn9G,EAAIlmJ,MAAMggQ,YAAVqD,IAAgBA,OAAhBA,EAAAA,EAAgB53N,UAClC,IAAKk4N,EAEI,OADHx3L,GAAM,QAAS,+BACZ,KAEH,IAAA54C,UAAA+vO,EAAepjG,EAAUlgK,aAAA,IAAAsjQ,WAAAA,EAAVA,EAAkB,UAAI,IAAAA,OAAA,EAAtBA,EAAsBnqP,QACrCyqP,EAAqBvmO,MAAKojO,EAAgBzgQ,OAW9C,cAVK4jQ,EAAmBz0M,iBAE1Bo0M,EAAIr9G,EAAIlmJ,MAAMggQ,YAAM,IAAAuD,GAAA,QAAAA,EAAhBA,EAAgBnC,wBAAhBmC,IAAgBA,GAAhBA,EAAkClmQ,QACpC6oJ,EAAIlmJ,MAAMggQ,KAAKoB,iBAAiBjqP,SAAQ,SAAC0sP,GACnCD,EAAmBC,WACdD,EAAmBC,EAE9B,IAGApmO,EAAAA,YAAA,MAAA,CAAAC,MACS72B,EAAMsrN,eAAeS,aAC5BxkL,QAAS,SAAC/sC,GACRA,EAAE24E,iBACJ,EAAAjjD,IAAA,wBAAA,CAAA0G,EAAAA,YAAAkmO,EAAAv4N,aAAA,CAAA8pB,OAIU3hC,GAAyB,QAAViwO,EAAAtjG,EAAUlgK,aAAA,IAAAwjQ,GAAYA,QAAZA,EAAVA,EAAkB,UAAlBA,IAAsBA,OAAtBA,EAAAA,EAAsB7gQ,OAAQ,aAAU,EAAA6yF,KACzDjiE,GACF0tO,EAAejhQ,MACf+5E,EAAU/5E,MACV4jQ,EAAA,CAAA5jQ,MACGogQ,EAAUpgQ,MACjBmvD,SAAUizM,IACZ,QAIR,ukBChaF,SAAwB0B,GAAWj9P,GACjC,IAAQqxO,EAAoBntM,EAAAA,OAAOlkC,GAA3BqxO,gBACF6rB,MAAkBp4P,IAElBq4P,EAAejtO,MAAuB,CAAA,GAEtCktO,EAAkBzlP,EAAAA,UAAS,WAAA,OXyBnB,SAAmBza,EAA8BkwB,EAAam8L,GAE5E,IADA,IAAMvkN,EAA2C,CAAA,EACxCvO,EAAI,EAAGF,EAAM62B,EAAK52B,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAMusO,EAAWv+N,GAAI2oB,EAAK32B,GAAI8yN,GAC1BrsN,EAAKsa,SAASwrN,KAChBh+N,EAAIg+N,IAAY,EAEpB,CACO,OAAAh+N,CACT,CWlCyCq4P,CAAmBr9P,EAAMqxO,gBAAiBrxO,EAAM0E,KAAM1E,EAAMupN,QAAU,SAEvG+zC,EAAeptO,MAAkE,CAAA,GAEjFqtO,EAAiBrtO,MAAuD,CAAA,GAExEstO,EAA0B,SAAC3E,GAC/B,IAAM4E,EAA8B,CAAA,EAU7B,OATP5E,EAAOvoP,SAAQ,SAAAiyB,GAA6B,IAA1B6W,EAAK7W,EAAL6W,IAAKimG,EAAA98G,EAAA88G,IAAKga,IAAAA,UAEpB7gK,EAAM,CADKiM,GAAI20C,EAAKp5C,EAAMupN,QAAU,MACnBlqE,EAAIi0E,QAAQjrN,KAAK,MACpCgxJ,SAAAA,EAAW7iK,OACbinQ,EAASjlQ,GAAO6gK,SAETokG,EAASjlQ,EAEpB,IACOilQ,GAIHC,EAAqB,SAAC16B,GACpB,IAAA26B,EAAWT,EAAYz4P,IAAIu+N,GACjC,GAAK26B,EAAL,CACA,IAAMvwO,EAAOuwO,EAAS34P,KACpB,SAACi6B,GAAA,OACC,IAAI/xB,SAA2C,SAACc,GACxC,IAAE+rP,EAAmB96N,EAAnB86N,UAAW16G,EAAQpgH,EAARogH,IACb2Y,EAAQn7J,EAAWwiJ,EAAI85G,KAAKnhG,OAAS3Y,EAAI85G,KAAKnhG,MAAM/4H,GAAQogH,EAAI85G,KAAKnhG,MACtE3Y,EAAI85G,MAASnhG,GAAUA,EAAMxhK,OAIzB6gK,GAAA5yJ,GAAIs1P,EAAW16G,EAAIi0E,QAASt7D,GAAOj9G,MAAK,SAACl+B,GAChD7O,EAAAwoB,GAAAA,MAAayI,GAAM,CAAA,EAAA,CAAAo6H,UAAWx8I,EAAEujB,QAAO,SAACrjB,GAAA,OAAOA,EAAEtiB,MAAM,MACzD,IALEuT,EAAAwoB,GAAAA,MAAayI,GAAA,CAAA,EAAA,CAAMo6H,UAAW,KAMlC,GAAC,IAEL,OAAO,IAAInsJ,SAA+B,SAACc,EAAS4sC,GAClD1tC,QAAQs/H,IAAIp/G,GAAM2tB,MAAK,SAAC89M,GACd7qP,EAAA,CACN6qP,OAAQA,EAAOz4N,QAAO,SAACrjB,GAAM,IAAA6gP,EAAA,eAAAA,EAAA7gP,EAAEs8I,8BAAFukG,EAAapnQ,UAC1CinQ,SAAUD,EAAwB3E,OAEnCj+M,EACL,GAtBe,GAyCXijN,EAAwB,WAC5B,IAAMC,EAAWxmQ,OAAO4F,KAAKogQ,EAAankQ,OAGpC4kQ,EAAY/9P,EAAM0E,KAAKM,KAAI,SAACkZ,gBAAuB,UAAjBA,EAAEle,EAAMupN,eAARy0C,IAAiBA,OAAjBA,EAAAA,EAAiBxmQ,cACnDymQ,EAAcH,EACjB19N,QAAO,SAACliB,UAAM6/O,EAAUvmP,SzB/ED,QAArB0mP,EyB+EiDhgP,EzB/EzCxV,MAAM,YAAO,IAAAw1P,OAAA,EAArBA,EAAqB,IADvB,IAA4CA,CyBgFU,IACtDl5P,KAAI,SAACu+N,GAAY,OAAA+5B,EAAankQ,MAAMoqO,GAASm3B,aAAa,aAC7D,OAAO,IAAIxtP,SAAQ,SAACc,EAAS4sC,GAC3B1tC,QAAQs/H,IAAIyxH,GAAaljN,MAAK,SAACzkD,GAAQ,IAAA0qG,EAC/Bm9J,EAAqC,CAAA,EACvC7nQ,EAAAga,SAAQ,SAAC7V,EAAQQ,IACJ,IAAXR,IACJ0jQ,EAAgBL,EAAS7iQ,IAAUR,EACrC,IACmB,QAAnBumG,EAAAhhG,EAAMqvF,kBAAa,IAAA2R,GAAnBA,EAAAvpG,KAAAuI,EAAmB,CAAEvF,OAAQ0jQ,IACrBnwP,EAAA,CAAEvT,OAAQ0jQ,MACjBvjN,EACL,KAmGK,OAdPlZ,EAAAA,OACE,WAAA,IAAA08N,EAAA,OAA6B,QAA7BA,EAAM/sB,EAAgBl4O,aAAO,IAAAilQ,OAAA,EAAvBA,EAAuB/1P,KAAK,IAClC,IAAA,SAACg2P,GACOhtB,IAAAA,EAAkBgtB,EAAO31P,MAAM,KAChBpR,OAAO4F,KAAKqgQ,EAAepkQ,OACnCmX,SAAQ,SAAC9X,GACf64O,EAAgB75N,SAAShf,WAErB+kQ,EAAepkQ,MAAMX,EAEhC,GACF,IAGK,CACL+kQ,eAAAA,EACAJ,aAAAA,EACAC,gBAAAA,EACAkB,kBAjG4E,WAC5E,GAAIhnQ,OAAO4F,KAAKogQ,EAAankQ,OAAO3C,OAClC,OAAOqnQ,IAKT,IAHA,IAAMI,EAAgD,GAEhDv5P,EAAO1E,EAAM0E,MAAQ,GAClBjO,EAAI,EAAGF,EAAMmO,EAAKlO,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAMusO,EAAWv+N,GAAIC,EAAKjO,GAAIuJ,EAAMupN,QAAU,MAClC00C,EAAA76P,KAAKs6P,EAAmB16B,GACtC,CACA,OAAO,IAAI91N,SAAQ,SAACc,EAAS4sC,GAC3B1tC,QAAQs/H,IAAIyxH,GAAaljN,MAAK,SAACwjN,GAAU,IAAA5D,EACjCwD,EAAqC,CAAA,EAC3CI,EAAMjuP,SAAQ,WAAiD,IAA9CmtP,GAA8C1+P,UAAAvI,OAAAuI,QAAAlG,IAAAkG,UAAAlG,GAAAkG,UAAjC,GAAA,CAAE85P,OAAQ,GAAI4E,SAAU,CAAC,IAAtCA,SACHA,GAAAnmQ,OAAOq5B,OAAOwtO,EAAiBV,EAC7C,IACAN,EAAahkQ,MAAQglQ,EACF,QAAnBxD,EAAA36P,EAAMqvF,kBAAa,IAAAsrK,GAAnBA,EAAAljQ,KAAAuI,EAAmB,CAAEvF,OAAQ0jQ,IACrBnwP,EAAA,CAAEvT,OAAQ0jQ,MACjBvjN,EACL,KA6EAijN,sBAAAA,EACAW,gBAvIwE,SAACx7B,GAAA,OACzE,IAAI91N,SAAQ,SAACc,EAAS4sC,GACpB8iN,EAAmB16B,GAAUjoL,MAAK,SAAAwO,GAA0B,IAAAk1M,EAAvB5F,EAAAtvM,EAAAsvM,OAAQ4E,IAAAA,SAC3CN,EAAahkQ,MAAQskQ,EAErB,IAAMiB,EAAW,iBACjBD,EAAAz+P,EAAM8yO,4BAAN2rB,EAAAhnQ,KAAAuI,EAAsB,CAAEukD,QAASm6M,EAAUjkQ,OAAQo+P,IACnD7qP,EAAQ,CAAEu2C,QAASm6M,EAAUjkQ,OAAQo+P,MACpCj+M,EACL,GAAC,EA+HDk+M,aAlEmB,SAACxuN,GAEpB,GAAItqC,EAAMqxO,gBAAiB,CACzB,IAAMrO,EAAWv+N,GAAI6lC,EAAQ8O,IAAKp5C,EAAMupN,QAAU,MAC5CvxD,EAAQklG,EAAYz4P,IAAIu+N,GAC9B,GAAIhrE,EAAO,CACH,IAAA/8J,EAAQ+8J,EAAM53B,WAAU,SAACrjH,GAAA,OAAMA,EAAEsiI,IAAIi0E,SAAWhpL,EAAQ+0G,IAAIi0E,WAChD,IAAdr4N,EACF+8J,EAAM50J,KAAKknC,GAEX0tH,EAAM/8J,GAASqvC,EAEL4yN,EAAA94P,IAAI4+N,EAAUhrE,EAC5B,MACEklG,EAAY94P,IAAI4+N,EAAU,CAAC14L,GAE/B,GAmDAq0N,kBAhDwB,WACxBxB,EAAahkQ,MAAQ,IAgDrBylQ,mBA7EyB,SAAC57B,EAAe67B,EAA2Bn6P,GAC/D64P,EAAepkQ,MAAM6pO,KACTu6B,EAAApkQ,MAAM6pO,GAAYtyN,GAAUmuP,IAEtCvnQ,OAAA2M,QAAQS,GAAM4L,SAAQ,SAAAunD,GAAgB,IAAA1zB,EAAAxnB,GAAAk7C,EAAA,GAAdr/D,EAAA2rC,EAAA,GAAK1F,EAAG0F,EAAA,GACrC//B,GAAIm5P,EAAepkQ,MAAM6pO,GAAWxqO,EAAKimC,EAC3C,KAwEAqgO,eAnCqB,SAAA/qI,GAAwD,IAAAgrI,EAArD3lN,EAAA26E,EAAA36E,IAAKimG,IAAAA,IACvB2jF,EAAWv+N,GAAI20C,EAAKp5C,EAAMupN,QAAU,MACpCy1C,EAAgBzB,EAAepkQ,MAAM6pO,GAC3C,GAAIg8B,GAAwC,QAAvBD,EAAA/+P,EAAMqxO,uBAAiB,IAAA0tB,GAAvBA,EAAuBvnP,SAASwrN,GAAW,CACxD,IAAAi8B,EAAAzoO,GAAA,CAAA,EAAcwoO,GAEb,OADP56P,GAAI66P,EAAQ5/G,EAAIi0E,OAAQ7uN,GAAIu6P,EAAe3/G,EAAIi0E,SACxC2rC,CACT,CACO,OAAA7lN,GA4BP8lN,6BA/CmC,SAAC7/N,GAC9B,IAAAkkM,EAAUR,GAAW1jM,EAAO+Z,IAAKp5C,EAAMupN,OAAQlqL,EAAOggH,IAAIi0E,OAAQj0L,EAAOgyL,UAE3EhyL,EAAOg6N,OAETiE,EAAankQ,MAAMoqO,GAAWlkM,SAEvBi+N,EAAankQ,MAAMoqO,IA0ChC,okBCrMA,IAAM47B,GAAa,CACjB,eACA,WACA,yBACA,yBACA,mBACA,YACA,qBACA,mBACA,sBACA,eACA,oBACA,sBACA,eACA,eACA,aACA,cACA,+BACA,kBACA,cACA,mCACA,+BACA,oBACA,kBACA,mBACA,oBACA,mBACA,WACA,YACA,eACA,wBACA,aACA,YACA,gBACA,eACA,gBACA,WACA,sBACA,iBACA,kCACA,eACA,yBACA,aACA,iBACA,iBACA,iBACA,gBAGFC,GAAehqO,kBAAgB,CAC7Bx9B,KAAM,gBAENoI,MAAOw2B,GAAAA,MACFwxL,IACA6oB,IAGLx7M,eAAMr1B,EAAOsqC,GACX,IAAM6jB,EAAc5tB,KACpBwrC,EAAsC7nC,SAAOlkC,GAArCsoN,EAAAv8I,EAAAu8I,QAASwoB,EAAiB/kK,EAAjB+kK,iBACXyN,EAAkBruN,MAAI,MACtBm8M,EAAcn8M,OAAI,GAExBqhM,EACElG,KADM3mM,EAAa6sM,EAAb7sM,YAAayrM,EAAAoB,EAAApB,sBAAuB7E,IAAAA,eAAgB+D,EAAsBkC,EAAtBlC,qBAAsBT,EAAA2C,EAAA3C,iBAE1El+L,EAAiBP,GAAU,QAASnwB,EAAMof,QAA1CsR,aACA0zC,EAAmBijK,GAASrnO,GAA5BokE,eACFkjK,EAAY3vN,EAAAA,UAAS,WAAA,IAAA0nP,EAAA,OAAoBA,QAApBA,EAAMr/P,EAAMuE,YAAQ86P,IAAAA,EAAAA,EAAA3uO,EAAav3B,MAAMoL,QAElE+6P,EAAoD1rB,GAAoB5zO,EAAOsqC,GAAvE4pM,EAAiBorB,EAAjBprB,gBAAiB6B,EAAAupB,EAAAvpB,uBAGnBwpB,EChFc,SAAav/P,EAA4BsqC,GAC/D,IAAQknM,EAAoBttM,EAAAA,OAAOlkC,GAA3BwxO,gBACFrjL,EAAc5tB,KACpBgvC,EAA4Bp/C,GAAU,QAASnwB,EAAMof,QAA7CrC,EAAGwyD,EAAHxyD,EAAG2T,EAAA6+C,EAAA7+C,aACH8uO,EAA2BpzM,GAAc,CAAEozM,uBAAwBC,KAAnED,uBACRjuC,EAAsElG,KAA9DiD,EAAAiD,EAAAjD,mBAAoBoC,EAAkBa,EAAlBb,iBAAkBxC,EAAAqD,EAAArD,oBAO9ChxI,EAAAvgE,GALgD2nD,GAC9CktK,EACAxxO,EAAMyxO,wBAA0B,GAChCzxO,EAAM2yO,eACN,mBACF,GALO+sB,EAAkBxiL,EAAA,GAAAyiL,EAAmBziL,EAAA,GAOtC0iL,EAAkBjoP,EAAAA,UAAS,WAAA,OAC/BmqB,QAAQ9hC,EAAMuxO,aAAejnM,EAAQnK,MAAMoxM,aAAejnM,EAAQnK,MAAM,gBAAe,IAGnF0/N,EAAuBloP,EAAAA,UAAS,WAAA,OAA2B,IAArB3X,EAAM+lB,YAAwB65O,EAAgBzmQ,SAEpF2mQ,EAAqBnoP,EAAAA,UAAS,WAAA,IAAAooP,EAAA,MAAoC,UAAd,QAAhBA,EAAA//P,EAAMsoN,eAAU,IAAAy3C,GAAAA,QAAAA,EAAhBA,EAAgB,cAAAA,SAAhBA,EAAoB3yC,UAUxD4yC,EAAiB,SAACxlQ,EAAe4+C,GAC/Bp5C,EAAAsxO,kBAAoB92O,EAAE24E,kBAC5B,IAAM8sL,EAAYx7P,GAAI20C,EAAKp5C,EAAMupN,QAAU,MACrCtuN,EAAQykQ,EAAiBvmQ,MAAM+5B,QAAQ+sO,GACvCxsB,EAAU37O,EAAI4nQ,EAAiBvmQ,QAC3B,IAAA8B,EAAKw4O,EAAQ9uO,OAAO1J,EAAO,GAAKw4O,EAAQrwO,KAAK68P,GACvDN,EAAoBlsB,EAAS,CAC3BysB,gBAAiBlgQ,EAAM0E,KAAK07B,QAAO,SAACrjB,GAAM,OAAA02N,EAAQj8N,SAAS/S,GAAIsY,EAAG/c,EAAMupN,QAAU,UAClFqhB,eAAgBxxL,KAId+mN,EAAmB,SAAClhP,EAAaP,GAC/B,IAAE06B,EAAkB16B,EAAlB06B,IAAKqvE,EAAa/pG,EAAb+pG,SACPw3I,EAAYx7P,GAAI20C,EAAKp5C,EAAMupN,QAAU,MACrC/2L,EAAWktO,EAAiBvmQ,MAAMqe,SAASyoP,GAC3C96O,EAAOgpC,EAAY,aAAc,CACrCvvB,YAAa7hB,EAAE2T,EAAav3B,MAAM4sB,aAAU6Q,cAAA4oO,EAA6B,KAAA,MACzEngO,OAAQ,CAAE+Z,IAAAA,EAAKn+C,MAAOwtH,KAExB,IAAKtjG,EAAa,OAAA,KAClB,IAAMwR,EAAU,CACd23L,EAAmBC,QACnBD,EAAmB97L,EAAW,WAAa,aAAAv5B,EACxCy3N,CAAAA,EAAAA,EAAmBl+L,IAExB,OAAAoE,EAAAA,YAAA,OAAA,CAAAC,MACeF,EAAA4Q,QAAkB,SAAC/sC,GAAkB,OAAAwlQ,EAAexlQ,EAAG4+C,EACjE,GAAA,CAAAj0B,KAyCA,MAAA,CACLy6O,gBAAAA,EACAC,qBAAAA,EACAO,gBAvCsB,WASf,MAR0C,CAC/C9sC,OAAQ,6BACRt8L,MAAO,GACPoD,UAAWk0L,EAAmBE,SAC9BpB,MAAO0yC,EAAmB3mQ,MAAQ,YAAS,EAC3CimM,KAAM+gE,EACNhtL,iBAAiB,IAiCnB6yJ,kBA5BwB,SACxBtnN,GAEA,IAAMu7M,EAAQx1N,GAAIia,EAAE06B,IAAKp5C,EAAMupN,QAAU,MACzC,IAAKm2C,EAAiBvmQ,QAAUumQ,EAAiBvmQ,MAAMqe,SAASyiN,GAAe,OAAA,KACzE,IAAAomC,EAAc3hP,EAAE2zM,iBAAmBryN,EAAMsoN,QAAQj4J,MAAK,SAACpxB,GAAA,MAAwB,SAAfA,EAAKmuL,SAC3E,OAAAx2L,EAAAA,YAAA,KAAA,CAAAp+B,IAAA44B,UAAAA,OACqB6oM,GAASpjM,MAAO,CAACy3L,EAAmBl1K,IAAKngD,EAAA,CAAA,EAAGi1N,EAAoBC,KAAOkyC,KAAa,CAAAzpO,EAAAO,YAAA,KAAA,CAAAyiB,QACxFl7B,EAAE4pM,QAAQ9xN,QAAA,CAAAogC,EAAAO,YAAA,MAAA,CAAAN,MAEZ,CAACy3L,EAAmBK,SAAA11N,EAAai1N,CAAAA,EAAAA,EAAoBE,aAAeiyC,IAAaxtO,MACjFwtO,EAAc,CAAErpO,MAAA5F,GAAAA,OAAU1S,EAAEq4M,WAAe,OAAI,CAAC,GAAA,CAAAngM,EAAAO,YAAA,MAAA,CAAAN,MAE3Cq3L,EAAoBG,kBAAmBlgK,CAAAA,EAAY,cAAe,CAAE9uB,OAAQ3gB,aAgBhG4hP,sBAT4B,SAAC5hP,GACdshP,EAAAthP,EAAElkB,EAAiBkkB,EAAE06B,MASpCmnN,oBAnF0B,SAAClhO,GAA6C,IAAAmhO,EAExE,IAAKZ,EAAgBzmQ,MAAc,OAAA,KAC7B,IACAy+O,EAAgBnzO,GADE46B,EAAhB+Z,IAAgB/Z,EAAXkqL,QAC4B,MACzC,OAAO+E,EAAoCkyC,QAAjBA,EAAAd,EAAiBvmQ,iBAAAqnQ,GAAjBA,EAAwBhpP,SAASogO,GAAiB,cAAgB,cAgFhG,CDpBQ6oB,CAAazgQ,EAAOsqC,GANtBs1N,EAAAL,EAAAK,gBACAC,EAAAN,EAAAM,qBACAO,EAAAb,EAAAa,gBACAp6B,EAAAu5B,EAAAv5B,kBACAs6B,EAAAf,EAAAe,sBACAC,EAAAhB,EAAAgB,oBAIMrkB,EAAmB9B,GAAUp6O,EAAOsqC,GAApC4xM,eAGFwkB,EASF9pB,GAAa52O,EAAOqvN,GARtBgnB,EAAAqqB,EAAArqB,aACAiC,EAAAooB,EAAApoB,cACAxB,EAAA4pB,EAAA5pB,sBACAD,EAAA6pB,EAAA7pB,oBACA0B,EAAAmoB,EAAAnoB,wBACAvB,EAAA0pB,EAAA1pB,oBACA8B,EAAA4nB,EAAA5nB,sBACAG,EAAAynB,EAAAznB,iCAII0nB,EAMFriB,GAAUt+O,EAAOsqC,GALnBo0M,EAAAiiB,EAAAjiB,kBACAF,EAAAmiB,EAAAniB,sBACAY,EAAAuhB,EAAAvhB,iBACAE,EAAAqhB,EAAArhB,qBACAG,EAAAkhB,EAAAlhB,yBAIImhB,EAAiBjpP,EAAAA,UAAS,WAAA,MAAO,CACrC00N,YAAaA,EAAYlzO,MACzB,IACI4qF,EAOFkB,GAAYjlF,EAAOsqC,EAASs2N,GAN9BlK,EAAA3yK,EAAA2yK,sBACAD,EAAA1yK,EAAA0yK,eACAE,EAAA5yK,EAAA4yK,eACA74B,EAAA/5I,EAAA+5I,gBACA+5B,EAAA9zK,EAAA8zK,2BACAC,EAAA/zK,EAAA+zK,mBAGMhmC,GAAyBR,GAAetxN,GAAxC8xN,qBACR+uC,GE1IJ,SAAwC7gQ,GACtC,IAAMmuD,EAAc5tB,KACZ7P,EAAiBP,GAAU,QAASnwB,EAAMof,QAA1CsR,aACR6gM,EAA+DlG,KAAvDyE,EAAAyB,EAAAzB,eAAgBC,EAAiBwB,EAAjBxB,gBAAiBH,EAAA2B,EAAA3B,kBAEnCj5L,EAAUhf,EAAAA,UAAS,WAAA,MAAM,CAC7Bi4M,EAAA32N,EAAAA,EAAA,CAAA,EAEG62N,EAAwC,YAAvB9vN,EAAM08M,cACvBqT,EAAyC,cAAvB/vN,EAAM08M,kBAI7B,SAASokD,IAAc,IAAAC,EAChB3oP,GAASpY,EAAM08M,gBACQ,QAA5BqkD,EAAA/gQ,EAAMuyO,2BAAsB,IAAAwuB,GAA5BA,EAAAtpQ,KAAAuI,EAA4B,CAAEquD,OAAQruD,EAAM08M,eAC9C,CAyBO,MAAA,CACLskD,mBAxBF,WACQ,IAAAC,EAAmB9yM,EAAY,gBACjC,GAAA/1C,GAAS6oP,GAAmB,CACxB,IAAEvkD,EAAiB18M,EAAjB08M,aACF50L,EAAc,CAClB,YAAa4I,EAAav3B,MAAM+vB,gBAChC4I,QAASpB,EAAav3B,MAAM2uB,aAC5B/uB,OAAO2jN,IAEP,OAAA9lL,EAAAA,YAAA,MAAA,CAAAC,MAAYF,EAAQx9B,cAAgB2nQ,GAAAlqO,CAAAA,EAAAO,YAAA6P,GAAA,CAAAjF,UACI,YAAjB26K,EAA4B5qL,UAAW4qL,EAAAn4M,KAAA,QAAA49B,KAAiCra,GAAa,OAGhH,CACI,MAAC,CAAC,MAAM,OAAO,GAAWtQ,SAASypP,GAOhC,KALHrqO,EAAAA,YAAA,MAAA,CAAAC,MAAYF,EAAQx9B,cAAgB2nQ,GAAA,CACjCG,GAKT,EAIF,CF8FmCC,CAAgBlhQ,GAAvCghQ,GAAAH,GAAAG,mBAGFG,GAWFC,GAAephQ,GAVjBm9P,GAAAgE,GAAAhE,aACAC,GAAA+D,GAAA/D,gBACAoB,GAAA2C,GAAA3C,gBACAF,GAAA6C,GAAA7C,kBACAT,GAAAsD,GAAAtD,sBACA/E,GAAAqI,GAAArI,aACA6F,GAAAwC,GAAAxC,kBACAC,GAAAuC,GAAAvC,mBACAE,GAAAqC,GAAArC,eACAI,GAAAiC,GAAAjC,6BAGImC,GAAwB1pP,EAAAA,UAAS,WAAA,OAAMmqB,QAAQ89N,EAAgBzmQ,OAASm/O,EAAcn/O,UAEtFmoQ,GAA+B3pP,EAAAA,UAAS,WAAA,OAAMmqB,QAAQ89N,EAAgBzmQ,OAASm/O,EAAcn/O,UAE7FooQ,GAAsB5pP,EAAAA,UAAS,WAAM,IAAAw/N,EAClC,OAAAl+O,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EACJk3N,EAAsBG,aAAeqmC,EAAex9P,OACpDg3N,EAAsBE,oBAAsBqmC,EAAsBv9P,OAClEg3N,EAAsBC,aAAeqmC,EAAet9P,OACpDmyN,EAAeE,iBAAkD,IAAhCgzB,EAAsBrlP,OACvDmyN,EAAeO,aAAe7rN,EAAMqxO,iBAAAjgN,GAAAA,OACjC1M,EAAA,mBAAA0M,OAA0C+lN,QAA1CA,EAA6Bd,EAAal9O,iBAAAg+O,SAAbA,EAAoBr7O,MAASu6O,EAAal9O,OAAA,GAAAi4B,OACvE1M,wBAAkC4zN,EAAcn/O,OAAAi4B,GAAAA,OAChD1M,EAAA,0BAAsCk7O,EAAgBzmQ,MAE9D,IAGMqoQ,GAAiB7pP,EAAAA,UAAS,WAE9B,MADoB,CAAC3X,EAAMspN,aAAcwtB,EAAsB39O,MAAOonQ,GACnDngO,QAAO,SAACliB,GAAA,OAAMA,IACnC,IAGMujP,GAAiB9pP,EAAAA,UAAS,WACxB,IAAA+pP,EAAc,CAAC1hQ,EAAMqpN,eAI3B,OAHIqtC,EAAsBv9P,OAASs9P,EAAet9P,QAChDuoQ,EAAYt+P,MAAK,SAAAmmD,GAAG,MAAW,CAAE,UAAW9kD,GAAxB8kD,EAAAnQ,IAAiCp5C,EAAMupN,QAAU,MAAQ,IAExEm4C,EAAYthO,QAAO,SAACliB,GAAA,OAAMA,IACnC,IAGAqX,EAAAA,WAAU,WACRkqN,EAAyBlB,EAAgBplP,OACzC0+P,EAA2BtZ,EAAgBplP,MAC7C,IAGAmxC,EAAQoW,OAAO,CACb89M,gBAAAA,GACAF,kBAAAA,GACAT,sBAAAA,GACAc,kBAAAA,GACAzhC,aAAc,WACZqhB,EAAgBplP,MAAM+jO,cACxB,EACA7iD,gBAAiB,SAAC31K,GACA65O,EAAAplP,MAAMkhL,gBAAgB31K,EACxC,EACAiqO,qBAAsB,SAACrb,GACLirB,EAAAplP,MAAMw1O,qBAAqBrb,EAC7C,EAEAquC,aAAcpjB,IAIV,IA4IFn7M,GA5IEw+N,GAAsD,SAACviO,GAAW,IAAAwiO,UACtEA,EAAA7hQ,EAAM6yO,iBAANgvB,OAAAA,EAAApqQ,KAAAuI,EAAkBq/B,GAClB,IAAM2jM,EAAWv+N,GAAI46B,EAAO06N,UAAW/5P,EAAMupN,QAAU,MACpCq1C,GAAA57B,EAAU3jM,EAAO+Z,IAAKngD,EAAA,CAAA,EACtComC,EAAOggH,IAAIi0E,OAASj0L,EAAOlmC,SAK1B2oQ,GAAa,SAACx5C,GAElB,IAFsF,IAA1By5C,EAAAhjQ,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GACtDzI,EAAuC,GAACiiC,EAAAA,WACM,IAAAggD,EAAAypL,EAAAC,EAAAxpL,EAAAE,EAC9C15C,EAAOzI,GAAA,CAAA,EAAK8xL,EAAQ7xN,IAItB,MAFqC8hF,QAAfA,EAAAt5C,EAAKC,gBAALq5C,IAAeA,OAAfA,EAAAA,EAAe/hF,UAAiC,QAAjCwrQ,EAAU9tB,EAAgB/6O,aAAO,IAAA6oQ,OAAA,EAAvBA,EAAuBxqP,SAASynB,EAAKq0L,YAGnFtzN,EAAM8wO,kBAAoB9wO,EAAMixO,gBAAkBjxO,EAAMkxO,yBACxD6wB,EAAA,OAAA,EAGH9iO,EAAOs5M,EAAwBt5M,GACzB,IAiEqBijO,EAjEnBnuO,EAAS/zB,EAAT+zB,KACJkL,EAAK+7M,QAAUh7O,EAAMoyO,yBACTr+M,aAAgBp9B,MAAQo9B,EAAO,CAACA,IACnBs8B,MACzB,SAACt8B,UAASA,GAAQA,EAAKgnN,SAAW97M,EAAKq0L,aAA8B,IAApBv/L,EAAK+lN,UAAe,MAGrE76M,EAAK7E,UACH6E,EAAK7E,qBAAqBzjC,MACtBsoC,EAAK7E,UAAUhJ,OAAOw9L,EAAiBE,YACvC,CAAC7vL,EAAK7E,UAAWw0L,EAAiBE,cAIxC,GAAA7vL,EAAK+7M,QAAU/7M,EAAKmB,OAAQ,CAC9B,IAAM+hO,EAAeh3M,GAAY7gB,EAAQnK,MAAOlB,EAAMxoC,GAC9Cs7N,EAAkB9yL,EAAlB8yL,cACH9yL,EAAAtW,MAAQ,SAAClL,EAAGiB,GAAM,IAAA2gO,EACfr5N,EAAWiZ,EAAK+7M,OAASkB,EAAex9N,GAAK,KAC7CuH,EAAagZ,EAAKmB,OAASg/M,EAAiB1gO,GAAK,KAEjDoG,EAAgC,QAAhCu6N,EAASd,EAAgBplP,aAAO,IAAAkmP,OAAA,EAAvBA,EAAuB/sB,gBAC/B,OAAAR,GACL,CAACqwC,EAAcn8O,EAAUC,GACzBvH,EAAE2gI,IACF3gI,EAAE2yM,SACFU,EACAjtM,EACA,CACEJ,YAAAA,EACAutM,yBAA8C,WAApBqV,EAAUnuO,MAAqBirE,EAAekjK,EAAUnuO,OAAS,MAIjG8lC,EAAK8yL,eAAgB,CACvB,CAEI,WAAAkwC,EAAAhjO,EAAKk6N,YAAL8I,OAAAA,EAAWr9N,UAAW,CACxB,IAAMg0N,EAAU35N,EAAKmgK,KAChBngK,EAAAmgK,KAAO,SAAC3hL,EAAGiB,GACd,IAAM0jP,EAA+B5rO,GAAAA,MAChC9X,GAAA,GAAA,CACH06B,IAAK0lN,GAAepgP,GACpBk6O,QAAAA,EACArvC,OAAQvpN,EAAMupN,QAAU,KACxB+B,eAAAA,EACAjD,iBAAkBroN,EAAMqoN,iBACxB//J,SAAUs5M,GACVvyK,WAAYrvF,EAAM8yO,cAClBgmB,aAAAA,GACAC,iBAAkBmG,KAEpB,GAAIl/P,EAAMqxO,gBAAiB,CAAA,IAAAgxB,EACnBr/B,EAAWv+N,GAAIia,EAAE06B,IAAKp5C,EAAMupN,QAAU,MAClC64C,EAAAtrE,SAAWsmE,GAAgBjkQ,MAAM6pO,KAAa,EAClD,IAAAxqO,EAAM,CAACwqO,EAAUtkN,EAAE2gI,IAAIi0E,QAAQjrN,KAAK,MACpCgxJ,EAAiC,QAAjCgpG,EAAYlF,GAAahkQ,aAAQ,IAAAkpQ,OAAA,EAArBA,EAAqB7pQ,GACvC6gK,IAAc+oG,EAAUvJ,OAASx/F,EACnC,CAIA,OAHIr5J,EAAMoxO,oBACRgxB,EAAU7zK,UAAYvuF,EAAMoxO,kBAAkB1yN,IAEhDkY,cAAA+hO,GAAAp0N,EAAA2qC,WAAyBkzL,EAAA,CAAAxD,mBAAuDA,KAAnCt0N,EAAQnK,OAEzD,SACIs4C,EAAAx5C,EAAKC,gBAALu5C,OAAAA,EAAejiF,SACZyoC,EAAAC,SAAW4iO,GAAW7iO,EAAKC,SAAU6iO,IAAwC,QAAxCG,EAAiBhuB,EAAgB/6O,aAAO,IAAA+oQ,OAAA,EAAvBA,EAAuB1qP,SAASynB,EAAKq0L,aAG7Fr0L,EAAKC,kBAAYy5C,EAAA15C,EAAKC,uBAALy5C,EAAeniF,SACnCF,EAAI8M,KAAK67B,IAjFJxoC,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK8hC,IAoF7C,OAAAjiC,GAGHgsQ,GAAW3qP,EAAAA,UAAS,WAClB,IAAAipI,EAAOkhH,GAAWx5C,EAAQnvN,OAIzB,OAHH0mQ,EAAqB1mQ,OAClBynJ,EAAAntH,QAAQ2sO,KAERx/G,CACT,IAEM2hH,GAAoB,SAAC5oI,EAAoBgM,GAAiC,IAAA64F,EAAA77E,EAC9Em7E,EAAgB3kO,YAAa2kO,CAAAA,EAAAA,EAAgB3kO,OAAUwgI,GACvDk9G,EAAoB19O,MAAQwsI,UACtB64F,EAAAx+N,EAAAuwK,oBAAA,IAAAiuD,GAAAA,EAAA/mO,KAAAuI,EAAe25H,EAAUgM,GAC/B,IAAM6tG,EAA4D,CAChE,CAAEhsN,WAAYmyG,GACd,CAAEp1E,QAAS,aAAco3L,YAAah2G,IAElCgd,QAAAA,EAAA3iJ,EAAAsoD,oBAAAq6F,GAAAA,EAAAlrJ,KAAAuH,MAAA2jJ,EAAA,CAAA3iJ,GAAAoxB,OAAcoiN,IAEfxzO,EAAM8xO,8BACTkF,EAAoB,GAAI,CACtBW,gBAAiB,GACjB77O,KAAM,UACN87O,cAAe,uBAKf4qB,GAA8D,SAACnjO,GAAW,IAAA+rM,UAC9EA,EAAAprO,EAAM6pN,yBAANuhB,OAAAA,EAAA3zO,KAAAuI,EAA0Bq/B,GAC1B45M,EAAiC55M,IAG7BojO,GAAsD,SAACpjO,GACvDr/B,EAAMsxO,kBACRgvB,EAAsBjhO,GAEpBr/B,EAAMiyO,kBACR6G,EAAsBz5M,IAOpB6vM,GAAqD,SAAC7vM,GAErDr/B,EAAMgqN,cAIP5mL,IAEF7sB,aAAa6sB,IACLA,QAAA,GAERA,GAAQntB,YAAW,WACjBwsP,GAAiBpjO,GACT+D,QAAA,IAdG,KAIbq/N,GAAiBpjO,IAefqjO,GAAsB,SAACjkO,GAC3B4tM,EAAYlzO,MAAQslC,GAGhBkkO,GAAa,SACjBC,EACAC,EACAC,EACAxyK,GAEA,IAAKwyK,EAAW,OAAO9iQ,EAAM4iQ,GACvB,IAAAG,EAAYF,EAAgBplP,EAAAA,GAC5BqiB,EAAYquB,EAAYy0M,GAC9B,OAAIG,IAAcjjO,EAAkB,WAAA,OAAMijO,CAAA,EACtCjjO,IAAcijO,EAAkB,WAAA,OAAMjjO,CAAA,EACtCijO,GAAajjO,EACR,WAAA,OACLwwD,SAAAA,EAAO3yC,QAAA/mB,EAAAO,wBAEF4rO,EACAjjO,IAAAlJ,0BAIAkJ,EACAijO,GAFF,EAMA,MAGT,OAAO,WAAM,IAAAC,EAAAC,EACLhtB,KAAwBnF,EAAiB33O,QAAS7B,OAAO4F,KAAK4zO,EAAiB33O,OAAO3C,QAEtFk2D,EAAYupL,EAAqBnF,EAAiB33O,MAAMuzD,WAAa,YAAc,GACnFw2M,EAAqBjtB,IAAuD,KAAjCvpL,aAAAA,EAAAA,EAAWx5B,QAAQ,WAC9DuuG,EAAakhI,GAAW,aAAc5sB,EAAwBE,IAAuBitB,GACrFxhI,EAAgBihI,GAAW,gBAAiB5sB,EAAwBmtB,EAAoB,CAC5FvlN,SAAS,IAEL8qK,EAAek6C,GAAW,eAAgBrjB,GAAuBZ,EAAkBvlP,OACnF+vN,EAAcy5C,GAAW,cAAe3B,KAAsBhhQ,EAAM08M,cAGlE57K,EAAUvQ,EAAAA,qBAAVuQ,MAEFknL,EAAiCxxL,GAAAA,GAAA,GAClCtc,GAAK4mB,EAAM9gC,MAAOm/P,KAAU,GAAA,CAC/B51C,OAAQvpN,EAAMupN,OACdD,aAAck4C,GAAeroQ,MAC7BkwN,cAAeo4C,GAAetoQ,MAC9BmvN,QAASg6C,GAASnpQ,MAClB8vN,iBAAwB+5C,QAAxBA,EAAkBhjQ,EAAMipN,wBAAA+5C,IAAAA,EAAAA,EAAoB3B,GAAsBloQ,MAClEqvN,wBAA+By6C,QAA/BA,EAAyBjjQ,EAAMwoN,+BAAAy6C,IAAAA,EAAAA,EAA2B3B,GAA6BnoQ,MACvFsoI,WAAAA,EACAC,cAAAA,EACA+mF,aAAAA,EACAS,YAAAA,EACA0e,YAAa,CAAC,MAAO,mBAAmBpwN,SAASxX,EAAMw+E,UACvDkkL,oBAAAA,GACAnyF,aAAcgyF,GACdv8B,kBAAmB45B,EAAgBzmQ,MAAQ6sO,OAAoB,EAC/Dnc,kBAAmB24C,KAOrB,OAJIxiQ,EAAMsxO,kBAAoBtxO,EAAMiyO,oBAClCjqB,EAAe+B,WAAamlB,IAG9Bt4M,cAAAusO,GAAA5+N,EAAA2qC,WAGQ84I,EAAAA,CAAAA,IACCu2B,EAAA1nN,MACE0qO,GAAoBpoQ,MAC3ByyO,oBAAqBksB,IAJZxtN,EAAQnK,OAQzB,IGncaijO,GAAA,CAEbC,eAAgB,CACdvnQ,KAAMhC,UAGRwpQ,kBAAmB,CACjBxnQ,KAAMnF,MACNwsB,aAAS,GAGXogP,yBAA0B,CACxBznQ,KAAMnF,MACNwsB,QAAS,WAAT,MAAiE,EAAC,GAGpEqD,KAAM,CACJ1qB,KAAMxE,QAGR4uB,sBAAuB,CACrBpqB,KAAMhC,UAGR0pQ,mBAAoB1pQ,SAEpB2pQ,0BAA2B3pQ,SAE3B4pQ,mBAAoB5pQ,6kBCXf,IAAM6pQ,GACL,KADKA,GAEH,6CAUH,SAASC,GAAkBxqN,EAAmBk6K,GAAyD,IAAzC7qG,EAAmB1pH,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EAAGqtG,yDAAgB,EACnG42H,EAAWv+N,GAAI20C,EAAKk6K,GAC1B,OAAO7qG,GAAYrc,EAAQ,GAAAh7E,OAAG4xM,cAAYv6G,GAAY,OAAAr3F,OAAKg7E,GAAS,OAAO42H,CAC7E,CAAA,IAYM6gC,GAAsD,WAQ1D,OAAAjoL,IAFA,SAAAioL,IAAcp/M,QAAAo/M,GAAA5qQ,EAJkB4H,KAAA,kBAAIiE,KAAI7L,EAAA4H,KAAA,yBAAA,GAKjCA,KAAAijQ,gBAAkBh/P,GACzB,GAAA,CAAA,CAAAtM,IAAA,mBAAAW,MAQA,SAAiB+2K,EAAiBo4C,EAA4BprN,GAAgB,IAAA6mQ,UAC5EA,EAAAljQ,KAAKijQ,0BAALC,EAAkB7/P,QAClBrD,KAAKmjQ,mBAAmBnjQ,KAAKijQ,YAAa5zF,EAAYo4C,EAAQj4J,MAAK,SAACgvF,GAAA,MAAuB,eAAfA,EAAIi0E,UAA0Bp2N,EAC5G,GAAA,CAAA1E,IAAA,mBAAAW,MAKA,SAAiBuL,EAAWxH,GAC1B,IADyD,IAAf5G,EAAAyI,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAW,GAC5CtI,EAAI,EAAGF,EAAMmO,EAAKlO,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAMwoC,EAAOv6B,EAAKjO,GAClBH,EAAI8M,KAAKwgQ,GAAkB3kO,EAAM/hC,EAAKqsN,SACtC,IAAMrqL,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC5B/kO,SAAAA,EAAU1oC,QACPqK,KAAAqjQ,iBAAiBhlO,EAAUhiC,EAAM5G,EAE1C,CACO,OAAAA,CACT,GAAA,CAAAkC,IAAA,0BAAAW,MAEA,SAAwBuL,EAAWxH,GACjC,IADgF,IAA/B5G,EAAAyI,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAA2B,GACnEtI,EAAI,EAAGF,EAAMmO,EAAKlO,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAMwoC,EAAOv6B,EAAKjO,GACZusO,EAAW4gC,GAAkB3kO,EAAM/hC,EAAKqsN,QAC7B1oN,KAAKijQ,YAAYr/P,IAAIu+N,GACzBxwM,UACXl8B,EAAI8M,KAAK4/N,GAEX,IAAM9jM,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC5B/kO,SAAAA,EAAU1oC,QACPqK,KAAAsjQ,wBAAwBjlO,EAAUhiC,EAAM5G,EAEjD,CACO,OAAAA,CACT,GAAA,CAAAkC,IAAA,iBAAAW,MAEA,SAAeirQ,EAA8Bl0F,EAAiBhzK,GAAgB,IAAAsnD,EAAA3jD,KAC5E,OAAKujQ,EAAQ5tQ,QACL4tQ,EAAA9zP,SAAQ,SAAC0yN,GACf,IAAMqhC,EAAW7/M,EAAKs/M,YAAYr/P,IAAIu+N,GACjCqhC,GACA7/M,EAAA8/M,iBAAiB,CAAElrN,IAAKirN,EAASjrN,IAAUqvE,SAAU47I,EAAS57I,UAAYynD,EAAYhzK,EAAM,SACnG,IACOgzK,GANqBA,CAO9B,GAAA,CAAA13K,IAAA,eAAAW,MAEA,SAAairQ,EAA8Bl0F,EAAiBhzK,GAAgB,IAAA6nD,EAAAlkD,KAC1E,OAAKujQ,EAAQ5tQ,QACL4tQ,EAAA9zP,SAAQ,SAAC0yN,GACf,IAAMqhC,EAAWt/M,EAAK++M,YAAYr/P,IAAIu+N,GACjCqhC,GACAt/M,EAAAu/M,iBAAiB,CAAElrN,IAAKirN,EAASjrN,IAAUqvE,SAAU47I,EAAS57I,UAAYynD,EAAYhzK,EAAM,OACnG,IACOgzK,GANqBA,CAO9B,GAAA,CAAA13K,IAAA,mBAAAW,MAEA,SAAiBulB,EAAiCwxJ,EAAiBhzK,EAAgBpB,GAA0B,IAAAyoQ,EAC3G,IAAK7lP,EAEI,OADH4mD,GAAM,gBAAiB,qDACpB4qG,EAET,IAAM8yD,EAAWv+N,GAAIia,EAAE06B,IAAKl8C,EAAKqsN,QAC7B,GAAAhwM,GAAYypN,GAEd,OADI19J,GAAM,gBAAiB,0EACpB,GAIT,IAAsB,IAFA7gE,GAAIia,EAAE06B,IAAKl8C,EAAK+mQ,aAEH,OAAA/zF,EACnC,IAAMrzJ,EAAIhc,KAAKijQ,YAAYr/P,IAAIu+N,GAC3B,MAAS,WAATlnO,GAAqB+gB,EAAE2V,SAAiB09I,EAC/B,SAATp0K,GAAoB+gB,EAAE2V,UACxB3V,EAAA4rG,SAAa,QAAb87I,EAAW1nP,EAAE4rG,gBAAA87I,IAAAA,EAAAA,EAAY7lP,EAAE+pG,SAC3B5rG,EAAA2V,UAAY3V,EAAE2V,SACX3xB,KAAAijQ,YAAY1/P,IAAI4+N,EAAUnmN,GACxBhc,KAAK2jQ,gBAAgB3nP,EAAGqzJ,EAAYhzK,IAJAgzK,CAK7C,GAAA,CAAA13K,IAAA,kBAAAW,MAEA,SAAgBsrQ,EAA0Bv0F,EAAiBhzK,GACzD,IAAQk8C,EAA4BqrN,EAA5BrrN,IAAKqvE,EAAuBg8I,EAAvBh8I,SAAUj2F,EAAaiyO,EAAbjyO,SACfsxO,EAAgBjjQ,KAAhBijQ,YACFY,EAAgBjgQ,GAAI20C,EAAKl8C,EAAK+mQ,aAChC,IAAC7qN,IAAQsrN,EAAsB,OAAAx0F,EACnC,GAAI19I,EACqBmyO,GAAAb,EAAaW,EAAWjyO,EAAUt1B,GACzD0nQ,GAAsBd,EAAa1qN,EAAKsrN,EAAcluQ,OAAQ,SAAU0G,GAE7DgzK,EAAAvrK,OAAO3F,MAAMkxK,EAAY,CAACznD,EAAW,EAAG,GAAGr3F,OAAOszO,QACxD,CACqBC,GAAAb,EAAaW,EAAWjyO,EAAUt1B,GACtD,IAAA3G,EAAMkuQ,EAAUI,sBAAwBH,EAAcluQ,OAC5DouQ,GAAsBd,EAAa1qN,GAAU,EAAA7iD,EAAK,OAAQ2G,GAC/CgzK,EAAAvrK,OAAO8jH,EAAW,EAAGlyH,EAClC,CAMO,OAJPuuQ,GAAehB,EAAa5zF,EAAY,CACtCq5C,OAAQrsN,EAAKqsN,OACbw7C,YAAat8I,EAAW,IAEnBynD,CACT,GAAA,CAAA13K,IAAA,UAAAW,MAOA,SAAQX,GACC,OAAAqI,KAAKijQ,YAAYr/P,IAAIjM,EAC9B,GAAA,CAAAA,IAAA,aAAAW,MAQA,SAAW6pO,EAAyBs4B,EAAeprF,EAAiBhzK,GAClE,IAAM8nQ,EAAcpB,GAAkBtI,EAAYp+P,EAAKqsN,QACjD86C,EAAWxjQ,KAAKijQ,YAAYr/P,IAAIu+N,GAEtC,IAAKqhC,IAAsC,IAA1BA,EAAS57I,SAKjB,OAJOw8I,GAAA/0F,EAAY8yD,EAAUs4B,EAAY,CAC9C/xC,OAAQrsN,EAAKqsN,OACb06C,YAAa/mQ,EAAK+mQ,eAEb,EAIT,IAA0C,IAAtCx/P,GAAI62P,EAAYp+P,EAAK+mQ,aAAuB,CAC9C,IAAMiB,EAAczgQ,GAAI4/P,EAASjrN,IAAKl8C,EAAK+mQ,aAC3C,GAAIiB,SAAAA,EAAa1uQ,OACf,IAAA,IAASC,EAAI,EAAGF,EAAM2uQ,EAAY1uQ,OAAQC,EAAIF,EAAKE,IAAK,CACtD,IAAMusO,EAAW4gC,GAAkBsB,EAAYzuQ,GAAIyG,EAAKqsN,QAC1C1oN,KAAKijQ,YAAYr/P,IAAIu+N,IAE5BniO,KAAAijQ,mBAAmB9gC,EAE5B,CAEJ,CAEA,IAAMmiC,EAAkBd,EAAS57I,SAKjC,GAJA47I,EAASjrN,IAAMkiN,EACf+I,EAASnsO,GAAK8sO,EAGVX,EAASrqP,OAAQ,CAEnB,IAAM6uH,EAAWpkI,GAAI4/P,EAASrqP,OAAOo/B,IAAKl8C,EAAK+mQ,aACzChpQ,EAAQ4tI,EAASzI,WAAU,SAACnhG,GAAA,OAAY2kO,GAAkB3kO,EAAM/hC,EAAKqsN,UAAYyZ,KACvFn6F,EAAS5tI,GAASqgQ,CACpB,CAOO,OALFz6P,KAAAijQ,YAAY1/P,IAAI4gQ,EAAaX,GAE9BrhC,IAAagiC,GACVnkQ,KAAAijQ,mBAAmB9gC,GAEnBmiC,CACT,GAAA,CAAA3sQ,IAAA,SAAAW,MAMA,SAAOX,EAAoB03K,EAAiBhzK,GAC1C,IAAM2f,EAAIhc,KAAKijQ,YAAYr/P,IAAIjM,GAC3B,GAAAqkB,GAAKA,EAAE4rG,UAAY,EAAG,CAElB,IAAA28I,GAAgBvoP,EAAEgoP,sBAAwB,GAAK,EAGrD,GAFW30F,EAAAvrK,OAAOkY,EAAE4rG,SAAU28I,GAE1BvoP,EAAE7C,OAAQ,CACZ,IAAM6uH,EAAWpkI,GAAIoY,EAAE7C,OAAOo/B,IAAKl8C,EAAK+mQ,aAClChpQ,EAAQ4tI,EAASzI,WAAU,SAACnhG,GAAA,OAAuBx6B,GAAIw6B,EAAM/hC,EAAKqsN,UAAY/wN,KAC3EqwI,EAAAlkI,OAAO1J,EAAO,GACD2pQ,GAAA/jQ,KAAKijQ,YAAajnP,EAAE7C,OAAOo/B,KAAU,EAAAgsN,EAAc,SAAUloQ,EACrF,CAEK2D,KAAAijQ,mBAAmBtrQ,GAGTssQ,GAAAjkQ,KAAKijQ,YAAa5zF,EAAY,CAC3C60F,YAAaloP,EAAE4rG,SACf8gG,OAAQrsN,EAAKqsN,OACbztN,KAAM,UAEV,MACMwpE,GAAK,gBAAiB,oDAErB,OAAA4qG,CACT,GAAA,CAAA13K,IAAA,iBAAAW,MAQA,SAAeX,EAAoB03K,EAAiBhzK,GAClD,IAAM2f,EAAIhc,KAAKijQ,YAAYr/P,IAAIjM,GAC3B,GAAAqkB,GAAKA,EAAE4rG,UAAY,EAAG,CAClB,IAAA28I,EAAevoP,EAAEgoP,sBAAwB,EAC3CO,GACFl1F,EAAWvrK,OAAOkY,EAAE4rG,SAAW,EAAG28I,GAEhCvoP,EAAE7C,QACkB4qP,GAAA/jQ,KAAKijQ,YAAajnP,EAAE7C,OAAOo/B,KAAU,EAAAgsN,EAAc,SAAUloQ,GAErF2f,EAAEgoP,qBAAuB,EACzBhoP,EAAE2V,UAAW,EACbpuB,GAAIyY,EAAEu8B,IAAKl8C,EAAK+mQ,iBAAa,GACxBpjQ,KAAAijQ,YAAY1/P,IAAI5L,EAAKqkB,GAEtBuoP,GACaN,GAAAjkQ,KAAKijQ,YAAa5zF,EAAY,CAC3C60F,YAAaloP,EAAE4rG,SAAW,EAC1B8gG,OAAQrsN,EAAKqsN,OACbztN,KAAM,UAGZ,MACMwpE,GAAK,gBAAiB,+DAErB,OAAA4qG,CACT,GAAA,CAAA13K,IAAA,WAAAW,MAOA,SAAS6pO,EAA2Br9F,EAAkBuqC,EAAiBhzK,GACrE,IAAM80D,EAAQnxD,KAAKijQ,YAAYr/P,IAAIu+N,GACnC,IAAKniO,KAAKwkQ,kBAAkBrzM,EAAOgxK,GAAkB,OAAA9yD,EASrD,IARA,IAAMhxI,EAAgBz6B,GAAIutD,EAAM5Y,IAAKl8C,EAAK+mQ,aAEpCqB,EAAgBtzM,EAAMx/B,YAAa0M,SAAAA,EAAU1oC,QAE7C+uQ,EAAU5/H,aAAmBhvI,MAAQgvI,EAAU,CAACA,GAChD6/H,EAAuB,GAEzBC,GAAwB,EACnBhvQ,EAAI,EAAGF,EAAMgvQ,EAAQ/uQ,OAAQC,EAAIF,EAAKE,IAAK,CAClD,IAAMivQ,EAAUH,EAAQ9uQ,GAClBuuQ,EAAcpB,GAAkB8B,EAASxoQ,EAAKqsN,QAC9Co8C,EAAW9kQ,KAAKijQ,YAAYr/P,IAAIugQ,GACtC,GAAKnkQ,KAAK+kQ,wBAAwBD,EAAUX,GAErC,CACC,IAAAv8I,EAAW68I,EAAgBtzM,EAAMy2D,UAAYz2D,EAAM6yM,sBAAwB,IAAMpuQ,EAAI,IAAK,EACtF,IAANA,IACsBgvQ,EAAAh9I,GAE1B,IAAMo9I,EAAW,CACf3tO,GAAI8sO,EACJ5rN,IAAKssN,EACLj9I,SAAAA,EACArc,MAAOp6C,EAAMo6C,MAAQ,EACrB55E,UAAU,EACVqyO,qBAAsB,EACtB7yO,UAAU,EACV3rB,KAAMvO,EAAIk6D,EAAM3rD,MAChB2T,OAAQg4C,GAEV6zM,EAASx/P,KAAOw/P,EAASx/P,KAAK+qB,OAAOy0O,GACrCL,EAAgBpiQ,KAAKsiQ,GAEhB7kQ,KAAAijQ,YAAY1/P,IAAI4gQ,EAAaa,EACpC,MArBMvgM,GAAK,4BAASl0C,OAAqB4zO,EAAiC,uBAsB5E,CACA,IAAKQ,EAAgBhvQ,OAAe,OAAA05K,EAUpC,GARIhxI,SAAAA,EAAU1oC,OACNw7D,EAAA5Y,IAAIl8C,EAAK+mQ,aAAejyM,EAAM5Y,IAAIl8C,EAAK+mQ,aAAa7yO,OAAOo0O,IAE3DxzM,EAAA5Y,IAAIl8C,EAAK+mQ,aAAeuB,EAC9BxzM,EAAMx/B,UAAW,GAIf8yO,EAAe,CACjBp1F,EAAWvrK,OAAO3F,MAAlBkxK,EAAA,CAAkBu1F,EAAuB,GAAGr0O,OAAGo0O,IAEzC,IAAAM,EAAmBN,EAAgBhvQ,QAAU,EACnDouQ,GAAsB/jQ,KAAKijQ,YAAa9xM,EAAM5Y,IAAK0sN,EAAkB,SAAU,CAC7Ev8C,OAAQrsN,EAAKqsN,OACb06C,YAAa/mQ,EAAK+mQ,cAGLa,GAAAjkQ,KAAKijQ,YAAa5zF,EAAY,CAC3C60F,YAAaU,EAAwBD,EAAgBhvQ,OAAS,EAC9D+yN,OAAQrsN,EAAKqsN,OACbztN,KAAM,MACN2C,MAAO,GAEX,CAEO,OAAAyxK,CACT,GAAA,CAAA13K,IAAA,eAAAW,MAEA,SAAawsI,EAAkBuqC,EAAiBhzK,GAI9C,IAHM,IAAA6oQ,EAAgB71F,EAAW9+I,OAAOu0G,GAClCqgI,EAAargI,aAAmBhvI,MAAQgvI,EAAU,CAACA,GACnDsgI,EAAgB/1F,EAAW15K,OACxBC,EAAI,EAAGF,EAAMyvQ,EAAWxvQ,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAMusO,EAAWv+N,GAAIuhQ,EAAWvvQ,GAAIyG,EAAKqsN,QACzC,GAAKyZ,EAAL,CAIA,IAAMhxK,EAAuB,CAC3B95B,GAAI8qM,EACJ5pL,IAAK4sN,EAAWvvQ,GAChBgyH,SAAUw9I,EAAgBxvQ,EAC1B21G,MAAO,EACP55E,UAAU,EACVqyO,qBAAsB,EACtB7yO,UAAU,GAENggC,EAAA3rD,KAAO,CAAC2rD,GACTnxD,KAAAijQ,YAAY1/P,IAAI4+N,EAAUhxK,EAX/B,MAFMsT,GAAM,QAAS,yEAcvB,CACO,OAAAygM,CACT,GAAA,CAAAvtQ,IAAA,cAAAW,MAOA,SAAY6pO,EAA2Br9F,EAAYuqC,EAAiBhzK,GAClE,OAAO2D,KAAKooI,OAAO+5F,EAAUr9F,EAASuqC,EAAYhzK,EAAM,QAC1D,GAAA,CAAA1E,IAAA,eAAAW,MAOA,SAAa6pO,EAA2Br9F,EAAYuqC,EAAiBhzK,GACnE,OAAO2D,KAAKooI,OAAO+5F,EAAUr9F,EAASuqC,EAAYhzK,EAAM,SAC1D,GAAA,CAAA1E,IAAA,SAAAW,MAEA,SAAO6pO,EAA2Br9F,EAAYuqC,EAAiBhzK,EAAgBpB,GAC7E,IAAMk2D,EAAQnxD,KAAKijQ,YAAYr/P,IAAIu+N,GACnC,IAAKniO,KAAKwkQ,kBAAkBrzM,EAAOgxK,GAAkB,OAAA9yD,EACrD,IAAM80F,EAAcvgQ,GAAIkhI,EAASzoI,EAAKqsN,QAChCo8C,EAAW9kQ,KAAKijQ,YAAYr/P,IAAIugQ,GACtC,IAAKnkQ,KAAK+kQ,wBAAwBD,EAAUX,GAAqB,OAAA90F,EACjE,IACM21F,EAAW,CACf3tO,GAAI8sO,EACJ5rN,IAAKusF,EACLld,SAJwB,UAAT3sH,EAAmBk2D,EAAMy2D,SAAW,EAAIz2D,EAAMy2D,SAK7Drc,MAAOp6C,EAAMo6C,MACb55E,UAAU,EACVqyO,qBAAsB,EACtB7yO,UAAU,EACV3rB,KAAM2rD,EAAM3rD,KAAK3O,MAAM,GAAK,GAC5BsiB,OAAQg4C,EAAMh4C,QAEhB6rP,EAASx/P,KAAOw/P,EAASx/P,KAAK+qB,OAAOy0O,GAC/B,IAAAK,EAAqB,UAATpqQ,EAAmBk2D,EAAMy2D,UAAYz2D,EAAM6yM,qBAAuB,GAAK7yM,EAAMy2D,SACpFynD,EAAAvrK,OAAOuhQ,EAAW,EAAGvgI,GAC1B,IAAAtnE,EAAoB,UAATviE,EAAmB,EAAI,EACxC,GAAIk2D,EAAMh4C,OAAQ,CAChB,IAAMmsP,EAAgBn0M,EAAMh4C,OAAOo/B,IAAIl8C,EAAK+mQ,aAAa7jI,WACvD,SAACrjH,GAAoB,OAAAimN,IAAav+N,GAAIsY,EAAG7f,EAAKqsN,OAAM,IAEhDv3J,EAAAh4C,OAAOo/B,IAAIl8C,EAAK+mQ,aAAat/P,OAAOwhQ,EAAgB9nM,EAAU,EAAGsnE,GACvEi/H,GAAsB/jQ,KAAKijQ,YAAa9xM,EAAMh4C,OAAOo/B,IAAK,EAAG,SAAUl8C,EACzE,CAUO,OATF2D,KAAAijQ,YAAY1/P,IAAI4gQ,EAAaa,GAGnBf,GAAAjkQ,KAAKijQ,YAAa5zF,EAAY,CAC3Cq5C,OAAQrsN,EAAKqsN,OACbw7C,YAAa/yM,EAAMy2D,SAAW,EAC9B3sH,KAAM,QAGDo0K,CACT,GAAA,CAAA13K,IAAA,WAAAW,MAMA,SACE+2K,EACA7wI,EACAniC,GAEA,IAAM+zK,EAAa5xI,EAAO60C,aACpB6Q,EAAW1lD,EAAOylD,YACxB,GAAImsF,IAAelsF,EAAiB,MAAA,CAAEmrF,WAAAA,EAAYz1K,QAAQ,GAC1D,IAAM2rQ,EAAgB3hQ,GAAI46B,EAAOzlB,QAAS1c,EAAKqsN,QACzC88C,EAAc5hQ,GAAI46B,EAAOrM,OAAQ91B,EAAKqsN,QACtC+8C,EAAazlQ,KAAKijQ,YAAYr/P,IAAI2hQ,GAClCG,EAAW1lQ,KAAKijQ,YAAYr/P,IAAI4hQ,GAClC,GAAAC,EAAWl6J,QAAUm6J,EAASn6J,MACzB,MAAA,CACL8jE,WAAAA,EACAz1K,QAAQ,EACR4zE,KAAMs1L,GACN6C,OAAQ7C,IAGN,IAAA8C,EAAiBx1F,EAAaq1F,EAAWzB,qBAAuB,EAChE6B,EAAe3hL,EAAWwhL,EAAS1B,qBAAuB,EAC1D8B,EAAez2F,EAAWx4K,MAAMu5K,EAAYw1F,GAC5CG,EAAa12F,EAAWx4K,MAAMqtF,EAAU2hL,GAC9C,GAAIz1F,EAAalsF,EAAU,CACzB,IAAM8hL,EAAgB32F,EAAWx4K,MAAMgvQ,EAAcz1F,GAC/C61F,EAAcH,EAAav1O,OAAOw1O,EAAYC,GACzC32F,EAAAvrK,OAAOogF,EAAU+hL,EAAYtwQ,QACxC05K,EAAWvrK,OAAO3F,MAAlBkxK,EAAkBnrF,CAAAA,EAAU,GAAG3zD,OAAAt5B,EAAGgvQ,KACnBhC,GAAAjkQ,KAAKijQ,YAAa5zF,EAAY,CAC3Cq5C,OAAQrsN,EAAKqsN,OACbw7C,YAAahgL,EACbs+I,YAAaojC,GAEjB,KAAO,CACL,IACMK,EADgB52F,EAAWx4K,MAAM+uQ,EAAgB1hL,GACrB3zD,OAAOw1O,EAAYD,GAC1Cz2F,EAAAvrK,OAAOssK,EAAY61F,EAAYtwQ,QAC1C05K,EAAWvrK,OAAO3F,MAAlBkxK,EAAkBe,CAAAA,EAAY,GAAG7/I,OAAAt5B,EAAGgvQ,KACrBhC,GAAAjkQ,KAAKijQ,YAAa5zF,EAAY,CAC3Cq5C,OAAQrsN,EAAKqsN,OACbw7C,YAAa9zF,EACboyD,YAAaqjC,GAEjB,CAGA,GAAIJ,EAAWtsP,OAAQ,CAKrB,IAJA,IAAMklB,EAAWonO,EAAWtsP,OAAOo/B,IAAIl8C,EAAK+mQ,aACxCxlQ,EAAQ,EACRqmF,GAAc,EACd5Q,GAAe,EACVz9E,EAAI,EAAGF,EAAM2oC,EAAS1oC,OAAQC,EAAIF,IACrCkO,GAAIy6B,EAASzoC,GAAIyG,EAAKqsN,UAAY68C,IACrBlyL,EAAAz9E,EACNgI,GAAA,GAEPgG,GAAIy6B,EAASzoC,GAAIyG,EAAKqsN,UAAY88C,IACtBvhL,EAAAruF,EACLgI,GAAA,KAEPA,GAAS,IATiChI,KAY5Cy9E,EAAe4Q,GACjB5lD,EAASv6B,OAAOmgF,EAAc,EAAG,EAAGzlD,EAAOzlB,SAClCslB,EAAAv6B,OAAOuvE,EAAc,KAGrBh1C,EAAAv6B,OAAOuvE,EAAc,GAC9Bh1C,EAASv6B,OAAOmgF,EAAa,EAAGzlD,EAAOzlB,SAE3C,CAEO,MAAA,CAAEs2J,WAAAA,EAAYz1K,QAAQ,EAC/B,GAAA,CAAAjC,IAAA,YAAAW,MAKA,SAAU+2K,EAAiBhzK,GAAgB,IAAAyrI,EAAA9nI,KACzCA,KAAKkmQ,kBAAoB,EACzB,IAAMphI,EAAe,GACfqhI,EAAa,SACjB92F,EACAhzK,GAGA,IADG,IADH8c,yDAAwB,KAEfvjB,EAAI,EAAGF,EAAM25K,EAAW15K,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAMwoC,EAAOixI,EAAWz5K,GAClBusO,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QAC1Bv3J,EAAQ22E,EAAKm7H,YAAYr/P,IAAIu+N,GAC7B9jM,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAUhC,GATAjyM,EAAMy2D,SAAWkgB,EAAKo+H,mBAEL,IAAb7nO,SAAqBA,GAAAA,EAAU1oC,SACjCw7D,EAAMx/B,UAAW,GAEbw/B,EAAA6yM,sBAAuB3lO,eAAAA,EAAU1oC,SAAU,EACjDmyI,EAAKo+H,mBAAqB,EAC1BphI,EAAQviI,KAAK67B,GACR0pG,EAAAm7H,YAAY1/P,IAAI4+N,EAAUhxK,GAC3B9yB,SAAAA,EAAU1oC,OAAQ,CAGpB,IADA,IAAIywQ,EAAYjtP,UAChBktP,EAAOD,SAAAC,OAAAA,EAAW9tN,KAAK,CAAA,IAAA8tN,EACrBD,EAAUpC,sBAAwB3lO,EAAS1oC,OAC3CmyI,EAAKm7H,YAAY1/P,IAAI6iQ,EAAU/uO,GAAI+uO,GACnCA,EAAYA,EAAUjtP,MACxB,CAEWgtP,EAAA9nO,EAAUhiC,EAAM80D,EAC7B,CACF,GAGK,OADPg1M,EAAW92F,EAAYhzK,GAChByoI,CACT,GAAA,CAAAntI,IAAA,UAAAW,MAKA,SAAQ+2K,EAAiBhzK,GAGvB,IAFA,IAAMyoI,EAAe,GACjB1qI,EAAQ,EACHxE,EAAI,EAAGF,EAAM25K,EAAW15K,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAMwoC,EAAOixI,EAAWz5K,GAClBusO,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QAC1Bv3J,EAAQnxD,KAAKijQ,YAAYr/P,IAAIu+N,GACnChxK,EAAMy2D,SAA2B,IAAhBz2D,EAAMo6C,MAAcnxG,GAAQ,EAC7C+2D,EAAMx/B,UAAW,EACjBw/B,EAAM6yM,qBAAuB,EACT,IAAhB7yM,EAAMo6C,QACRu5B,EAAQviI,KAAK67B,GACJhkC,GAAA,GAEX,IAAMikC,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC5B/kO,SAAAA,EAAU1oC,QACPqK,KAAAsmQ,QAAQjoO,EAAUhiC,EAE3B,CACO,OAAAyoI,CACT,GAAA,CAAAntI,IAAA,cAAAW,MAGA,SAAY+2K,EAAiBhzK,GAG3B,IADA,IAAMkqQ,EAAgB,GACb3wQ,EAAI,EAAGF,EAAM25K,EAAW15K,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAMwoC,EAAOixI,EAAWz5K,GAClBusO,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QAGZ,IAFN1oN,KAAKijQ,YAAYr/P,IAAIu+N,GAEzB52H,OACRg7J,EAAShkQ,KAAK67B,EAElB,CACO,OAAAmoO,CACT,GAAA,CAAA5uQ,IAAA,qBAAAW,MASA,SAAmB+2K,EAAiBhzK,GAA0D,IAAAmsI,EAAAxoI,KAA1C/E,EAAAiD,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAkC,OAC9EzI,EAAmB,GAalB,OAZI45K,EAAA5/J,SAAQ,SAAC2uB,GAClB,IAAM+jM,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QAC1B86C,EAAWh7H,EAAKy6H,YAAYr/P,IAAIu+N,GACjCqhC,EAAS7xO,WACD,WAAT12B,EACFxF,EAAI8M,KAAK4/N,GACS,SAATlnO,EACTxF,EAAI8M,KAAK67B,GAET3oC,EAAI8M,KAAKihQ,GAEb,IACO/tQ,CACT,GAAA,CAAAkC,IAAA,qBAAAW,MAYA,SACE2qQ,EACA5zF,EACA93H,EACAl7C,GAIA,IADA,IAFAkvG,EAAQrtG,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,EACRib,yDAAwB,KAEfvjB,EAAI,EAAGF,EAAM25K,EAAW15K,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAMwoC,EAAOixI,EAAWz5K,GAClBusO,EAAW4gC,GAAkB3kO,EAAM/hC,EAAKqsN,QAC1C,GAAAhwM,GAAYypN,GAEd,YADI19J,GAAM,gBAAiB,0EAG7B,IAAMpmC,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC1BjyM,EAAuB,CAC3B95B,GAAI8qM,EACJ5pL,IAAKna,EACLwpF,SAAoB,IAAVrc,EAAc31G,GAAI,EAC5B21G,MAAAA,EACA55E,UAAU,EACVqyO,qBAAsB,EACtB7yO,SAAUokN,GAAsBh+L,EAAQnZ,EAAMxoC,GAC9CujB,OAAAA,GAEIg4C,EAAA3rD,KAAO2T,EAASA,EAAO3T,KAAK+qB,OAAO4gC,GAAS,CAACA,GACvC8xM,EAAA1/P,IAAI4+N,EAAUhxK,GACtB9yB,SAAAA,EAAU1oC,QACZqK,KAAKmjQ,mBAAmBF,EAAa5kO,EAAUkZ,EAAQl7C,EAAMkvG,EAAQ,EAAGp6C,EAE5E,CACF,GAAA,CAAAx5D,IAAA,sBAAAW,MAGA,SAAoB+2K,EAAiB93H,EAAyBl7C,GAC5D,IAAA,IAASzG,EAAI,EAAGF,EAAM25K,EAAW15K,OAAQC,EAAIF,EAAKE,IAAK,CACrD,IAAMwoC,EAAOixI,EAAWz5K,GAClBusO,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QAC5B,GAAAhwM,GAAYypN,GAEd,YADI19J,GAAM,gBAAiB,0EAG7B,IAAMtT,EAAQnxD,KAAKijQ,YAAYr/P,IAAIu+N,GACnChxK,EAAMhgC,SAAWokN,GAAsBh+L,EAAQnZ,EAAMxoC,GAChDoK,KAAAijQ,YAAY1/P,IAAI4+N,EAAUhxK,GAC/B,IAAM9yB,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC5B/kO,SAAAA,EAAU1oC,QACPqK,KAAAwmQ,oBAAoBnoO,EAAUkZ,EAAQl7C,EAE/C,CACF,GAAA,CAAA1E,IAAA,oBAAAW,MAKA,SAAkB64D,EAAsBgxK,GACtC,QAAKhxK,IACCsT,GAAK,mBAAiBl0C,OAAG4xM,EAA0B,sBAChD,EAGX,GAAA,CAAAxqO,IAAA,0BAAAW,MAKA,SAAwB64D,EAAsBgxK,GAC5C,OAAIhxK,IACEsT,GAAK,mCAAiBl0C,OAAmB4xM,EAA0B,sBAChE,EAGX,IAAA,CAlqB0D,GA6qBrD,SAAS4hC,GACdd,EACA1qN,EACAilB,EACAviE,EACAoB,GAGA,IADA,IAAIqgF,EAAMnkC,EACHmkC,GAAK,CAAA,IAAA+pL,EACJt1M,EAAQ8xM,EAAYr/P,IAAIA,GAAI84E,EAAKrgF,EAAKqsN,SACtCg+C,GAAav1M,EAAM6yM,sBAAwB,GAAKxmM,EACtDrM,EAAM6yM,qBAAuBxkQ,KAAKC,IAAI,EAAGinQ,GACzChqL,EAAMvrB,SAAes1M,UAAft1M,EAAOh4C,cAAPstP,IAAeA,OAAfA,EAAAA,EAAeluN,GACvB,CAEa,SAATt9C,GACmB0rQ,GAAA1D,EAAa1qN,EAAKl8C,EAE3C,CAEgB,SAAAsqQ,GAAwB1D,EAA+B1qN,EAAQl8C,GAC7E,IAAMgiC,EAAWz6B,GAAI20C,EAAKl8C,EAAK+mQ,aAC3B/kO,SAAAA,EAAU1oC,QACH0oC,EAAA5uB,SAAQ,SAAC2uB,GAChB,IAAM+yB,EAAQ8xM,EAAYr/P,IAAIA,GAAIw6B,EAAM/hC,EAAKqsN,SACxCv3J,IACLA,EAAM6yM,qBAAuB,EACR2C,GAAA1D,EAAa9xM,EAAM5Y,IAAKl8C,GAC/C,GAEJ,CAQO,SAASynQ,GACdb,EACAO,EACA7xO,EACAt1B,GAEM,IAAEk8C,EAAkBirN,EAAlBjrN,IAAKqvE,EAAa47I,EAAb57I,SACShkH,GAAI20C,EAAKl8C,EAAK+mQ,aACtB3zP,SAAQ,SAAC2uB,EAASwoO,GAC9B,IAAMzkC,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QAC1BtuN,EAAQu3B,EAAWi2F,EAAW,EAAIg/I,GAAc,EAEhD5B,EAA0BrvO,GAAAA,MADfstO,EAAYr/P,IAAIu+N,IAE5B,GAAA,CACH5pL,IAAKna,EACLwpF,SAAUxtH,EACVu3B,UAAU,EACVxY,OAAQqqP,IAIV,GAFYP,EAAA1/P,IAAI4+N,EAAU6iC,IAErBrzO,EAAU,CACb,IAAM0M,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC5B/kO,SAAAA,EAAU1oC,QACZmuQ,GACEb,EAAAttO,GAAAA,MAEKqvO,GAAA,GAAA,CACHp9I,UAAU,EACVj2F,UAAU,IAEZA,EACAt1B,EAGN,CACF,GACF,CAEO,SAAS+nQ,GACdvgQ,EACAlM,EACAmtI,EACAzoI,GAEA,IAAA,IAASzG,EAAI,EAAGF,EAAMmO,EAAKlO,OAAQC,EAAIF,EAAKE,IAAK,CAC/C,IAAMwoC,EAAOv6B,EAAKjO,GAClB,GAAIgO,GAAIw6B,EAAM/hC,EAAKqsN,UAAY/wN,EAG7B,YADAkM,EAAKjO,GAAKkvI,GAGZ,IAAMzmG,EAAgBz6B,GAAIw6B,EAAM/hC,EAAK+mQ,cAAgB,GACjD/kO,SAAAA,EAAU1oC,QACEyuQ,GAAA/lO,EAAU1mC,EAAKmtI,EAASzoI,EAE1C,CACF,CAEgB,SAAA4nQ,GACdhB,EACA5zF,EACA5/E,GAUA,IAFM,IAAA9vF,EAAQ8vF,EAAMy0K,aAAe,EAC7Bx9P,EAAM+oF,EAAM+yI,aAAenzD,EAAW15K,OACnCiyH,EAAWjoH,EAAOioH,EAAWlhH,EAAKkhH,IAAY,CACrD,IAAMxpF,EAAOixI,EAAWznD,GAClBz2D,EAAQ8xM,EAAYr/P,IAAIA,GAAIw6B,EAAMqxD,EAAMi5H,SACzCv3J,GACCsT,GAAK,QAAS,uBAEpBtT,EAAMy2D,SAAWA,IAAYn4B,aAAO,EAAPA,EAAO7xF,QAAS,GAAK,CACpD,CACF,okBCl1BgB,SAAAipQ,GACd1nQ,EACAq/B,GAMA,IAAQiwG,EAAmCjwG,EAAnCiwG,MAAO4gC,EAA4B7wI,EAA5B6wI,WAAYy3F,EAAgBtoO,EAAhBsoO,YAC3B57L,EAA0C7nC,SAAOlkC,GAAzC0E,EAAMqnE,EAANrnE,KAAM4+P,EAAAv3L,EAAAu3L,kBAAmB98O,EAAKulD,EAALvlD,KAE3BohP,EAA4B13O,OAAI,GAChC23O,EAAoC33O,OAAI,GAM9CgtD,EAAAvgE,GALkD2nD,GAChDg/L,EACAtjQ,EAAMujQ,yBACNvjQ,EAAMyjQ,0BACN,qBACF,GALOqE,EAAmB5qL,EAAA,GAAA6qL,EAAoB7qL,EAAA,GAOxC8qL,EAAwB93O,EAAAA,IAI3B,CAAEp0B,KAAM,iBAKF,SAAA4rI,IAA2F,IAAjF5rI,EAA4CiD,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,aACvD4mI,GAD4F5mI,UAAAvI,OAAAuI,EAAAA,kBAAAlG,IAC1E6L,EAAKvL,MAC7B+2K,EAAW/2K,MAAQm2I,EAAMn2I,MAAMuuI,UAAU/B,EAASgiI,EAAYxuQ,OACxD,IAAA8uQ,EAAe/3F,EAAW/2K,MAAM6L,KAAI,SAAC+X,GAAM,OAAA6mP,GAAkB7mP,EAAG4qP,EAAYxuQ,MAAMowN,WACxFw+C,EAAqBE,EAAc,CACjC7uN,SAAK,EACLirN,cAAU,EACV57I,cAAU,EACV3sH,KAAM,SACNyoD,QAASzoD,IAEXksQ,EAAsB7uQ,MAAM2C,KAAO,YACrC,CAqDA,SAASosQ,EACPxjQ,EACAojQ,GAEA,IACAK,EDivBG,WAQL,IALA,IAFAC,EAAuCrpQ,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,GACvCspQ,EAAAtpQ,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAuC,GAEjCupQ,EAAmC,GACnCC,EAAiC,GACjCC,MAA4C1jQ,IAC5C2jQ,MAA4C3jQ,IACzCrO,EAAI,EAAGF,EAAM6xQ,EAAgB5xQ,OAAQC,EAAIF,EAAKE,IAClC+xQ,EAAApkQ,IAAIgkQ,EAAgB3xQ,IAAI,GAE7C,IAAA,IAASA,EAAI,EAAGF,EAAM8xQ,EAAgB7xQ,OAAQC,EAAIF,EAAKE,IAClCgyQ,EAAArkQ,IAAIikQ,EAAgB5xQ,IAAI,GAE7C,IAAA,IAASA,EAAI,EAAGF,EAAM6xQ,EAAgB5xQ,OAAQC,EAAIF,EAAKE,IAChDgyQ,EAAmBhkQ,IAAI2jQ,EAAgB3xQ,KAChC8xQ,EAAAnlQ,KAAKglQ,EAAgB3xQ,IAGnC,IAAA,IAASA,EAAI,EAAGF,EAAM8xQ,EAAgB7xQ,OAAQC,EAAIF,EAAKE,IAChD+xQ,EAAmB/jQ,IAAI4jQ,EAAgB5xQ,KAC9B6xQ,EAAAllQ,KAAKilQ,EAAgB5xQ,IAG9B,MAAA,CACL6xQ,YAAAA,EACAC,UAAAA,EAEJ,CC7wBuCG,CAAqBZ,EAFxD/oQ,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAA2C,IAEnCwpQ,EAAWJ,EAAXI,UAAWD,EAAAH,EAAAG,YAGZ,OAFPh5H,EAAMn2I,MAAMwvQ,eAAeJ,EAAW7jQ,EAAMijQ,EAAYxuQ,OACxDm2I,EAAMn2I,MAAMyvQ,aAAaN,EAAa5jQ,EAAMijQ,EAAYxuQ,OACjDrB,EAAI4M,EACb,CAEMg9B,EAAAA,MAAA,CAAComO,EAAmBpjQ,IAAO,SAAA69B,EAAAgnB,GAAgD,IAA9Cu+M,EAA8CnrP,GAAA4lB,EAAA,GAA7B,GAAIsmO,EAAJlsP,GAAA4sC,EAAA,GAAuB,GACzE,GAAK+lF,EAAMn2I,MAAM2qQ,YAAYv/P,MAASG,EAAKvL,MAAM3C,OAAjD,CACI,GAAqC,yBAArCwxQ,EAAsB7uQ,MAAM2C,KAAiC,CAC/D,IAAAqoC,EAA0B6jO,EAAsB7uQ,OAAS,CAAC,EAAlDigD,EAAKjV,EAALiV,IAAKqvE,EAAAtkF,EAAAskF,SACbynD,EAAW/2K,QAAYm2I,EAAMn2I,MAAMmrQ,iBAAiB,CAAElrN,IAAAA,EAAKqvE,SAAAA,GAAS3wH,EAAOo4K,EAAW/2K,OAAQwuQ,EAAYxuQ,OACjG,KAAqC,iBAArC6uQ,EAAsB7uQ,MAAM2C,MACnBosQ,EAAAh4F,EAAW/2K,MAAO2uQ,EAAmBe,GAEzDb,EAAsB7uQ,MAAM2C,KAAO,cAPsB,CAQ3D,IAaO,MAAA,CACLgsQ,kBAAAA,EACAF,0BAAAA,EACAC,kCAAAA,EACAngI,UAAAA,EACAy/H,QAtFF,WACaj3F,EAAA/2K,MAAArB,EAAYw3I,EAAMn2I,MAAMguQ,QAAQj3F,EAAW/2K,MAAOwuQ,EAAYxuQ,QACzE4uQ,EAAqB,GAAI,CACvB3uN,SAAK,EACLirN,cAAU,EACV57I,cAAU,EACV3sH,KAAM,OACNyoD,QAAS,YAEb,EA8EEukN,sBA5EO,SACPpqP,EACA6lC,GACA,IAAAwkN,EACQ3vN,EAAkB16B,EAAlB06B,IAAKqvE,EAAa/pG,EAAb+pG,SACbu/I,EAAsB7uQ,MAAQq9B,GAAA,CAC5B16B,KAAM,wBACH4iB,GAEL,IAAMskN,EAAW4gC,GAAkBxqN,EAAKuuN,EAAYxuQ,MAAMowN,QACpD86C,EAAW/0H,EAAMn2I,MAAM2qQ,YAAYr/P,IAAIu+N,GACzCgmC,EAAgBlxQ,EAAIgwQ,EAAkB3uQ,OAC1C,GAAIkrQ,EAAS7xO,SAAU,CAErB,IADM,IAAAy2O,EAAuB35H,EAAMn2I,MAAMgrQ,wBAAwB,CAAC/qN,GAAMuuN,EAAYxuQ,OAC3E1C,EAAI,EAAGF,EAAMyyQ,EAAcxyQ,OAAQC,EAAIF,EAAKE,IAAK,CACxD,IAAMu1F,EAAYg9K,EAAcvyQ,GAC5BwyQ,EAAqBzxP,SAASw0E,KAChCg9K,EAAcvyQ,QAAK,EAEvB,CACgBuyQ,EAAAA,EAAc5oO,OAAO0B,QACvC,MACEknO,EAAc5lQ,KAAK4/N,GAErB,IAAM3jM,EAAS,CACb+Z,IAAAA,EACAqvE,SAAAA,EACA47I,SAAAA,EACA9/M,QAAAA,GAEFwjN,EAAqBiB,EAAexyO,GAAAA,MAC/B6I,GAAAA,GAAAA,CACHvjC,KAAMuoQ,EAAS7xO,SAAW,OAAS,oBAErCu2O,EAAA/oQ,EAAM0jQ,0BAANqF,OAAAA,EAAAtxQ,KAAAuI,EAA2Bq/B,EAC7B,EA0CE6pO,yBAlB+B,SAACxkQ,GAAyB,IAAAykQ,EAAAC,EAChDD,QAALA,EAAA3iP,EAAKrtB,aAALgwQ,IAAKA,GAALA,EAAYE,mBAAqBzB,EAA0BzuQ,OAC7DuuI,EAAU,qBAAsB5vI,EAAI4M,IACpCkjQ,EAA0BzuQ,OAAQ,GACP,QAA7BiwQ,EAAWtB,EAAkB3uQ,aAAA,IAAAiwQ,GAAlBA,EAAyB5yQ,QAClCg/B,EAAAA,UAAS,WACI06I,EAAA/2K,MAAQ+uQ,IAAsBxjQ,GAAOojQ,EAAkB3uQ,MAAO,GAC3E,KAaN,okBCxHwB,SAAAmwQ,GAAYtpQ,EAA6BsqC,GAC/D,IAAAyhC,EAA0B7nC,SAAOlkC,GAAzB0E,EAAAqnE,EAAArnE,KAAM4jN,EAAQv8I,EAARu8I,QACd/4I,EAA4Bp/C,GAAU,QAASnwB,EAAMof,QAA7CrC,EAAGwyD,EAAHxyD,EAAG2T,EAAA6+C,EAAA7+C,aACX88B,EAAiDpB,GAAc,CAC7Dm9M,iBAAkBC,GAClBC,mBAAoBC,KAFdH,EAAA/7M,EAAA+7M,iBAAkBE,EAAmBj8M,EAAnBi8M,mBAKpBn6H,EAAQp/G,EAAAA,IAAI,IAAI2zO,IAChB8F,EAAcC,EAAAA,aACd15F,EAAahgJ,MAAkC,IAC7C8/L,EAAqB3E,KAArB2E,iBACF7hK,EAAcntB,KAEd2mO,EAAchwP,EAAAA,UAAS,WAAA,IAAAkyP,EAAA,MAAO,CAClCtgD,OAAQvpN,EAAMupN,QAAU,KACxB06C,aAAmB,QAAN4F,EAAA7pQ,EAAMwmB,YAAA,IAAAqjP,OAAA,EAANA,EAAY5F,cAAe,WACxC,IAEI6F,EAQFpC,GAAkB1nQ,EAAO,CAAEsvI,MAAAA,EAAO4gC,WAAAA,EAAYy3F,YAAAA,IAPhDG,EAAAgC,EAAAhC,kBACAF,EAAAkC,EAAAlC,0BACAC,EAAAiC,EAAAjC,kCACAngI,EAAAoiI,EAAApiI,UACAy/H,EAAA2C,EAAA3C,QACA+B,EAAAY,EAAAZ,yBACAJ,EAAAgB,EAAAhB,sBAGIiB,EAAgBpyP,EAAAA,UAAS,WAAA,OAAM2wM,EAAQnvN,MAAMk3D,MAAK,SAACgvF,GAAQ,MAAe,eAAfA,EAAIi0E,aAE/D5xL,QAAAqoO,GAAe,SAAC3xN,GACfk3F,EAAMn2I,OACXm2I,EAAMn2I,MAAMkuQ,oBAAoBn3F,EAAW/2K,MAAOi/C,EAAQuvN,EAAYxuQ,MACxE,IAmDA,SAAS6wQ,EAAUtlQ,GAAsB,IAAA0kQ,EAC/B9gD,EAA+DtoN,EAA/DsoN,QAASg7C,EAAsDtjQ,EAAtDsjQ,kBAAmBC,EAAmCvjQ,EAAnCujQ,yBAA0B/8O,EAASxmB,EAATwmB,KAC9D8oH,EAAMn2I,MAAM8wQ,iBAAiBvlQ,EAAM4jN,EAASq/C,EAAYxuQ,OACxD,IAAM+wQ,EAAoBpoO,SAAS+lO,EAAkC1uQ,QAASoqQ,eAAAA,EAA0B/sQ,SAClG2zQ,EAAgBroO,SAAQtb,aAAAA,EAAAA,EAAM6iP,oBAAqBzB,EAA0BzuQ,OACrD,QAAzBiwQ,EAAAtB,EAAkB3uQ,aAAlBiwQ,IAAyBA,GAAzBA,EAAyB5yQ,SAAa8sQ,GAAqB4G,IAAuBC,GACrFjB,EAAyBxkQ,GACzBmjQ,EAAkC1uQ,OAAQ,GAE/B+2K,EAAA/2K,MAAArB,EAAY4M,EAE3B,CAyLO,OAnOPg9B,QACE,CAACh9B,IACD,WACM1E,EAAMwmB,KACRwjP,EAAUtlQ,EAAKvL,OAEf+2K,EAAW/2K,MAAQuL,EAAKvL,KAE5B,GACA,CAAE6xD,WAAW,IAQf7gB,EAAAA,aAAY,WAAM,IAAAigO,EACXpqQ,EAAMwmB,eACL4jP,EAAA96H,EAAAn2I,MAAM2qQ,mBAANsG,OAAAA,EAAmBlmQ,QACzBorI,EAAMn2I,MAAQ,KAChB,IAEAuoC,EAAAA,OACE,WAAA,IAAA2oO,EAAA,MAAM,CAAC/hD,UAAS+hD,EAAArqQ,EAAMwmB,yBAAN6jP,EAAYC,oBAAmB,IAC/C,WACEX,EAAYxwQ,MA6ChB,WAAgC,IAAAoxQ,EACtBjiD,EAAYtoN,EAAZsoN,QACJgiD,GAA4B,QAANC,EAAAvqQ,EAAMwmB,YAAN+jP,IAAMA,OAANA,EAAAA,EAAYD,sBAAuB,EAE7D,KACgC,QAA9BhiD,EAAAA,EAAQgiD,UAAsB,IAAAE,GAA9BliD,EAA8BxsN,MACW,gCAAjC,QAARwsN,EAAAA,EAAQgiD,UAAA,IAAAG,OAAA,EAARniD,EAA8BgL,SAC9B,CAAA,IAAAk3C,EAAAC,EACuBH,GAAA,CACzB,CACA,OAAOhiD,EAAQgiD,EACjB,CAxDwBI,EACtB,GACA,CAAE1/M,WAAW,IAuMR,CACLskF,MAAAA,EACAq4H,YAAAA,EACAz3F,WAAAA,EACAy6F,SAhCF,SAAkBtrO,GACV,IAAAxiB,EAAIyyH,EAAMn2I,MAAMwxQ,SAASz6F,EAAW/2K,MAAOkmC,EAAQsoO,EAAYxuQ,OACrE,GAAI0jB,EAAEpiB,OACJy1K,EAAW/2K,MAAQrB,EAAI+kB,EAAEqzJ,gBACpB,CAAA,IAAA06F,EACCvrO,EAAS,CACbgvC,KAAMxxD,EAAEwxD,KACRm4L,OAAQ3pP,EAAE2pP,gBAEZoE,EAAA5qQ,EAAMwjQ,0BAANoH,OAAAA,EAAAnzQ,KAAAuI,EAA2Bq/B,EAC7B,CACF,EAsBEw9I,QAjGO,SAAWrkL,EAAoB8iQ,GAChC,IAAA7yI,EAAW6mB,EAAMn2I,MAAM0xQ,WAAWryQ,EAAK8iQ,EAAYprF,EAAW/2K,MAAOwuQ,EAAYxuQ,OACjFwsI,EAAU7tI,EAAIo4K,EAAW/2K,OAC/BwsI,EAAQld,GAAY6yI,EACpBprF,EAAW/2K,MAAQwsI,CACrB,EA6FElvC,QAtFF,SAAiBj+F,GACR,OAAA82I,EAAMn2I,MAAMs9F,QAAQj+F,EAC7B,EAqFEmjB,OA/EF,SAAgBnjB,GAEH03K,EAAA/2K,MAAArB,EAAYw3I,EAAMn2I,MAAMwiB,OAAOnjB,EAAK03K,EAAW/2K,MAAOwuQ,EAAYxuQ,OAC/E,EA6EE2xQ,eAvEF,SAAwBtyQ,GACX03K,EAAA/2K,MAAArB,EAAYw3I,EAAMn2I,MAAM2xQ,eAAetyQ,EAAK03K,EAAW/2K,MAAOwuQ,EAAYxuQ,OACvF,EAsEEsvI,SA/DO,WAAuD,IAA3CjwI,EAAqBuG,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAA,GAAI4mI,EAAkB5mI,UAAAvI,OAAAuI,EAAAA,kBAAAlG,EAM9Dq3K,EAAW/2K,MALNX,EAKcV,EAAIw3I,EAAMn2I,MAAMsvI,SAASjwI,EAAKmtI,EAASuqC,EAAW/2K,MAAOwuQ,EAAYxuQ,QAJnEm2I,EAAMn2I,MAAM4xQ,aAAaplI,EAASuqC,EAAW/2K,MAAOwuQ,EAAYxuQ,MAKvF,EAyDEysI,YApDO,SAAeo9F,EAAyBr9F,GAC/CuqC,EAAW/2K,MAAQrB,EAAIw3I,EAAMn2I,MAAMysI,YAAYo9F,EAAUr9F,EAASuqC,EAAW/2K,MAAOwuQ,EAAYxuQ,OAClG,EAmDE6wC,aA9CO,SAAgBg5L,EAAyBr9F,GAChDuqC,EAAW/2K,MAAQrB,EAAIw3I,EAAMn2I,MAAM6wC,aAAag5L,EAAUr9F,EAASuqC,EAAW/2K,MAAOwuQ,EAAYxuQ,OACnG,EA6CE6xQ,iBA3JF,SAA0B3rH,GACxB,IAAKr/I,EAAMwmB,MAAQ64H,EAAIi0E,SAAWq2C,EAAYxwQ,MAAMm6N,OAAe,OAAAj0E,EACnE,IAAM4rH,EAASz0O,MAAKmzO,EAAYxwQ,OAyCzB,OAxCA8xQ,EAAA7rE,KAAO,SAAC3hL,EAAGiB,GAChB,IAzGI2gB,EACA6rO,EAwGEC,EAAWrnC,GAAAttM,GAAAA,MAAgB9X,GAAG,GAAA,CAAA2gI,IAAA7oH,GAAUmzO,GAAAA,EAAYxwQ,SAAWmxC,EAAQnK,MAAO,CAClFkoL,iBAAkBroN,EAAMqoN,mBAEpB+iD,EAAe97H,EAAMn2I,MAAM2qQ,YAAYr/P,IAAIA,GAAIia,EAAE06B,IAAKuuN,EAAYxuQ,MAAMowN,SACxE71K,EAhDV,SAA0B04D,GAAe,IAAAi/J,EAAAC,EACvC,QAAc,IAAVl/J,EAAJ,CACA,IAAMm/J,OAAgC,KAAjBF,QAANA,EAAArrQ,EAAMwmB,YAAN6kP,IAAMA,OAANA,EAAAA,EAAYE,QAAuB,GAAiBD,QAAjBA,EAAKtrQ,EAAMwmB,YAAN8kP,IAAYA,OAAZA,EAAAA,EAAYC,OAE5D,OAAAA,EAAS,CAAEx3N,eAAa3iB,OAAGg7E,EAAQm/J,GAAU,EAAA,OAAU,EAHrC,CAI3B,CA2CqBC,CAAiBJ,aAAAA,EAAAA,EAAch/J,OAC1Cz1E,EAAA19B,EAAA,GAAa+2N,EAAiBC,YAAc5wE,EAAInxG,UAChDw2N,EAAgBjgQ,GAAIia,EAAE06B,IAAKuuN,EAAYxuQ,MAAM8qQ,aACnD,GAAKS,GAAiBA,aAAyB/tQ,QAA4B,IAAlB+tQ,EAAwB,CAAA,IAAA+G,EACzEjsF,EAA8EisF,QAAnEA,EAAAn8H,EAAMn2I,MAAM2qQ,YAAYr/P,IAAIA,GAAIia,EAAE06B,IAAKuuN,EAAYxuQ,MAAMowN,oBAAUkiD,GAAnEA,EAAmEj5O,UAjHlF6M,EAAS7I,GAAAA,MAkHE9X,GAlHG4rB,GAAAA,CAASxuC,KAAM,SAC7BovQ,EAAkBnuP,EAAE2T,EAAav3B,MAAM+sB,sBAAuBzI,EAAAA,EAAG4hB,IAAWzI,EAAAA,YAAA6yO,EAAoB,KAAA,MAC/Ft7M,EAAY,wBAAyB,CAC1CvvB,YAAassO,EACb7rO,OAAAA,KAIe,SAACiL,GAClB,IAAMjL,EAAS7I,GAAAA,MAAK8T,GAAAA,GAAAA,CAASxuC,KAAM,WAC7B4vQ,EAAoB3uP,EAAE2T,EAAav3B,MAAM+sB,sBAAuBzI,EAAAA,EAAG4hB,IAAWzI,EAAAA,YAAA2yO,EAAkB,KAAA,MACtG,OAAOp7M,EAAY,wBAAyB,CAC1CvvB,YAAa8sO,EACbrsO,OAAAA,IAsGMtZ,CAAWrH,GAEb,OAAAkY,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAACm5L,EAAiB3wE,IAAK1oH,SAAiB+c,GACjD,IAAGgxN,EAAcluQ,SAA4B,IAAlBkuQ,IAAkB9tO,EAAAO,YAAA,OAAA,CAAAN,MAEnCm5L,EAAiB7qM,KACxBoiB,QAAS,SAAC/sC,GACRsuQ,EAAsBpqP,EAAG,oBACzBlkB,EAAE24E,iBACJ,GAECqsG,CAAAA,IAGJ2rF,GAGP,CAEE,OAAAv0O,EAAAA,YAAA,MAAA,CAAA/D,MAAY6gB,EAAA7c,MAAiB,CAACF,EAASq5L,EAAiBE,WAAQ,CAAAt5L,EAAAO,YAAA,OAAA,CAAAN,MACjDm5L,EAAiB7qM,MAAM,MACnCgmP,MAKiB,IAApBF,EAAO/8N,WACT+8N,EAAO/8N,SAAW,SAACzwB,EAAGiB,GAAM,OAAAolN,GAAAttM,GAAAA,MAAgB9X,GAAA,GAAA,CAAG2gI,IAAK7oH,GAAKmzO,GAAAA,EAAYxwQ,SAAWmxC,EAAQnK,MAAK,GAExF8qO,CACT,EAgHE3G,iBAzLO,SAAiB5lP,EAA4C6lC,GAA4C,IAAAonN,EAAA5C,EAC1GptB,EAAAnlN,GAAA,CAAA,EAAmB9X,QACU,IAA/BA,EAAE06B,IAAIghI,uBACIuhE,EAAAlzH,SAAW/pG,EAAE06B,IAAIghI,sBAEpBlK,EAAA/2K,MAAArB,EAAYw3I,EAAMn2I,MAAMmrQ,iBAAiB3oB,EAAazrE,EAAW/2K,MAAOwuQ,EAAYxuQ,QAC/F,IAAM6pO,EAAWv+N,GAAIia,EAAE06B,IAAKuuN,EAAYxuQ,MAAMowN,QACxC86C,EAAwBsH,QAAbA,EAAAr8H,EAAMn2I,aAAOwyQ,IAAAA,GAAA,QAAAA,EAAbA,EAAa7H,mBAAA,IAAA6H,OAAA,EAAbA,EAA0BlnQ,IAAIu+N,GACpB,QAA3B+lC,EAAA/oQ,EAAM0jQ,0BAAqB,IAAAqF,GAA3BA,EAAAtxQ,KAAAuI,EAA2B,CACzBo5C,IAAK16B,EAAE06B,IACPqvE,SAAU/pG,EAAE+pG,SACZ47I,SAAAA,EACA9/M,QAAAA,GAEJ,EA4KEmjF,UAAAA,EACAy/H,QAAAA,EACAl8E,YA3BF,WACE,OAAO37C,EAAMn2I,MAAM8xL,YAAY/a,EAAW/2K,MAAOwuQ,EAAYxuQ,MAC/D,EA0BE6wQ,UAAAA,EACA4B,mBAtBO,WAA6D,IAA1C9vQ,yDAAkC,OAC5D,OAAOwzI,EAAMn2I,MAAMyyQ,mBAAmB17F,EAAW/2K,MAAOwuQ,EAAYxuQ,MAAO2C,EAC7E,EAqBEgtQ,sBAAAA,EAEJ,okBCtTa,IAAA+C,OAAkB/mQ,IAExB,SAASgnQ,GACdhI,EACAp/P,EACAxH,EACA2f,GAEI,GAAAgvP,GAAYpnQ,IAAIC,GAAc,OAAAmnQ,GAAYpnQ,IAAIC,GAC5C,IAAAjK,EAASoiB,GAAK,CAAEkvP,YAAa,GAAIC,gBAAiB,GAAIC,aAAc,IACpE/sO,EAAWz6B,GAAIC,EAAMxH,EAAK+mQ,aAC5B,IAAC/kO,IAAaA,EAAS1oC,OAAe,OAAAiE,EAC1C,IAAMyxQ,EAAqBhtO,EAASkB,QAClC,SAACnB,GAAuB,IAAAktO,EAAA,gBAAAA,EAACrI,EAAYr/P,IAAIA,GAAIw6B,EAAM/hC,EAAKqsN,gBAAU,IAAA4iD,GAAzCA,EAAyCn6O,SAAA,IAE7Dv3B,EAAAsxQ,YAAAj0Q,EAAkB,IAAIqV,IAAI1S,EAAOsxQ,YAAY36O,OAAO86O,KAC3D,IAAA,IAASz1Q,EAAI,EAAGF,EAAM2oC,EAAS1oC,OAAQC,EAAIF,EAAKE,IAAK,CACnD,IAAM21Q,EAAQltO,EAASzoC,GACjB+mB,EAAI/Y,GAAI2nQ,EAAOlvQ,EAAK+mQ,aAC1B,GAAIzmP,SAAAA,EAAGhnB,OAAQ,CACb,IAAM61Q,EAAgBP,GAAgBhI,EAAasI,EAAOlvQ,EAAMzC,GACzDA,EAAAsxQ,YAAAj0Q,EAAkB,IAAIqV,IAAI1S,EAAOsxQ,YAAY36O,OAAOi7O,EAAcN,cAC3E,CACF,CAES,IAAA,IAAAt1Q,EAAI,EAAGF,EAAMkE,EAAOsxQ,YAAYv1Q,OAAQC,EAAIF,EAAKE,IAAK,CACvD,IAAAwoC,EAAOxkC,EAAOsxQ,YAAYt1Q,GAC1ByoC,EAAWz6B,GAAIw6B,EAAM/hC,EAAK+mQ,aAC1BjhC,EAAWv+N,GAAIw6B,EAAM/hC,EAAKqsN,QACzB9uN,EAAAuxQ,gBAAgB5oQ,KAAK4/N,GACvB9jM,GAAaA,EAAS1oC,QAClBiE,EAAAwxQ,aAAa7oQ,KAAK4/N,EAE7B,CAGO,OAFPvoO,EAAOuxQ,kBAAsB,IAAI7+P,IAAI1S,EAAOuxQ,kBAC5CvxQ,EAAOwxQ,eAAmB,IAAI9+P,IAAI1S,EAAOwxQ,eAClCxxQ,CACT,CAkDwB,SAAA6xQ,GAActsQ,EAA6B8jQ,GACjE,IAAA/3L,EAAsE7nC,SAAOlkC,GAArEkyO,EAAiBnmK,EAAjBmmK,gBAAiB1rN,EAAAulD,EAAAvlD,KAAM9hB,IAAAA,KAAMktO,EAA6B7lK,EAA7B6lK,6BAE/B26B,EAAgCr8O,MAAyB,IAO/DgtD,EAAAvgE,GALgD2nD,GAC9C4tK,EACAlyO,EAAMmyO,wBAA0B,GAChCnyO,EAAM+yO,eACN,mBACF,GALOgE,EAAkB75J,EAAA,GAAA85J,EAAmB95J,EAAA,GAMtCyqL,EAAchwP,EAAAA,UAAS,WAAA,IAAAkyP,EAAA,MAAO,CAClCtgD,OAAQvpN,EAAMupN,QAAU,KACxB06C,aAAmB,QAAN4F,EAAA7pQ,EAAMwmB,YAAA,IAAAqjP,OAAA,EAANA,EAAY5F,cAAe,WACxC,IA6HK,OA3HDviO,EAAAA,MAAA,CAAClb,EAAMs9O,EAAap/P,EAAMqyO,IAAmB,SAAAx0M,GAAyB,IAAAgnB,EAAA5sC,GAAA4lB,EAAA,GAAvB/b,EAAMs9O,EAAAA,GAAAA,EAAWv6M,EAAA,GAC/D/iC,GAASs9O,EAAYv/P,OAAQiiB,EAAKw7G,eAIzC,WACE,IAAKx7G,EAAKrtB,OAASqtB,EAAKrtB,MAAM6oI,cAAe,OACzC,IAAC+0G,EAAiB59O,MAAM3C,OAE1B,YADA+1Q,EAA8BpzQ,MAAQ,IAK/B,IAFT,IAAM+D,EAA+B,GAC/BsvQ,EAA+C,CAAA,EAC5C/1Q,EAAI,EAAGF,EAAMwgP,EAAiB59O,MAAM3C,OAAQC,EAAIF,EAAKE,IAAK,CAC3D,IAAAusO,EAAW+T,EAAiB59O,MAAM1C,GAClCu7D,EAAQ8xM,EAAY3qQ,MAAMsL,IAAIu+N,GACpC,GAAKhxK,EAAL,CACA,IAAM9yB,EAAWz6B,GAAIutD,EAAM5Y,IAAKuuN,EAAYxuQ,MAAM8qQ,aAElD,IAAK/kO,IAAaA,EAAS1oC,OAEzB,IADA,IAAIi2Q,EAAYz6M,EAAMh4C,OACfyyP,GAAW,CACXD,EAAUC,EAAUv0O,MACbs0O,EAAAC,EAAUv0O,IAAM,IAE5Bs0O,EAAUC,EAAUv0O,IAAI90B,KAAK4uD,EAAM5Y,KAC7B,IAAAszN,EAAgBF,EAAUC,EAAUv0O,IAAI1hC,OACtCw1Q,EAAoBF,GAAgBhI,EAAY3qQ,MAAOszQ,EAAUrzN,IAAKuuN,EAAYxuQ,OAAlF6yQ,gBACFW,EAAiBzvQ,EAAKg2B,QAAQu5O,EAAUv0O,IACxCs/J,EAAgBu/C,EAAiB59O,MAAM+5B,QAAQu5O,EAAUv0O,IAC3Dw0O,EAAgB,GAAKA,EAAgBV,EAAgBx1Q,SAAgC,IAAtBghM,GACxC,IAAzBm1E,GAAyBzvQ,EAAKkG,KAAKqpQ,EAAUv0O,KAEpB,IAAzBy0O,GAAyBzvQ,EAAKyH,OAAOgoQ,EAAgB,GAEvDF,EAAYA,EAAUzyP,MACxB,CApBU,CAsBd,CACAuyP,EAA8BpzQ,MAAQ+D,CACxC,CAtC2B0vQ,EAC3B,IAwHO,CAELL,8BAA+B36B,EAA6Bz4O,MACxDy4O,EACA26B,EACJM,oBA/DO,SAAoBC,EAAgCC,GACtDvmP,EAAKrtB,QAASqtB,EAAKrtB,MAAM6oI,cAIE,kBAA5B+qI,EAAUn1B,cAOhB,SAAyBm1B,GACvB,IAAMC,EAAqC,GACrC1R,EAA6B,GAC/B,GAAmB,UAAnByR,EAAUjxQ,KAEZ,IADA,IAAMxF,IAAUwtQ,EAAY3qQ,MAAMqN,UACzB/P,EAAI,EAAGF,EAAMD,EAAIE,OAAQC,EAAIF,EAAKE,IAAK,CAC9C,IAAMwoC,EAAO3oC,EAAIG,GACZwoC,EAAKjN,WACGspO,EAAAl4P,KAAK67B,EAAKma,KACrB4zN,EAAW5pQ,KAAKqB,GAAIw6B,EAAKma,IAAKuuN,EAAYxuQ,MAAMowN,SAEpD,CAEF,IAAM0jD,EAAez2O,GAAAA,MAChBu2O,GAAA,GAAA,CACHp1B,gBAAiB2jB,GAAc,KAEjCtkB,EAAoBg2B,EAAYC,EAClC,CAxBIp1B,CAAgBk1B,GA0BX,SAAaD,EAAgCC,GAAkC,IAAA1C,EAClF2C,EAAAl1Q,EAAiBg1Q,GACjB,IAA8B,KAAlB,QAAZzC,EAAArqQ,EAAMwmB,YAAM,IAAA6jP,OAAA,EAAZA,EAAYroI,eACV,GAAoB,WAApB+qI,aAAA,EAAAA,EAAWjxQ,MAAkB,CAC/B,IAAMrB,EAASqxQ,GAAgBhI,EAAY3qQ,MAAO4zQ,EAAUniC,eAAgB+8B,EAAYxuQ,OAChF6yQ,EAAoBvxQ,EAApBuxQ,gBACIH,GAAAznQ,IAAI2oQ,EAAUniC,eAAgBnwO,GAC7BuyQ,EAAAl1Q,EAAI,IAAIqV,IAAI6/P,EAAW57O,OAAO46O,IAC7C,MAAA,GAA+B,aAApBe,aAAAA,EAAAA,EAAWjxQ,MAAoB,CACxC,IACMrB,EA/JE,SAAmBikB,EAAiB7B,GAGlD,IAFM,IAAEq1N,EAAgCxzN,EAAhCwzN,gBAAiBg7B,EAAexuP,EAAfwuP,WACnBzyQ,EAASoiB,GAAK,CAAEnY,KAAM,GAAIxH,KAAM,IAC7BzG,EAAI,EAAGF,EAAM27O,EAAgB17O,OAAQC,EAAIF,EAAKE,IAAK,CAC1D,IAAM+B,EAAM05O,EAAgBz7O,GACvBy2Q,EAAW11P,SAAShf,IAChBiC,EAAAyC,KAAKkG,KAAK5K,EAErB,CACO,OAAAiC,CACT,CAqJuB0yQ,CAAmB,CAChCj7B,gBAAiB46B,EACjBI,WAHepB,GAAgBhI,EAAY3qQ,MAAO4zQ,EAAUniC,eAAgB+8B,EAAYxuQ,OAGnE6yQ,kBAEvBgB,EAAavyQ,EAAOyC,IACtB,CAEF8vQ,EAxEO,SACPI,EACAx1B,EACA97O,GAEA,GAAK0qB,EAAKrtB,QAASqtB,EAAKrtB,MAAM6oI,cAA9B,CAIA,IAHM,IAAA9kI,EAAApF,EAAWs1Q,GAEbX,EADU3I,EAAY3qQ,MAAMsL,IAAImzO,GACd59N,OACfyyP,GAAW,CACV,IAAER,EAAiBH,GAAgBhI,EAAY3qQ,MAAOszQ,EAAUrzN,IAAKuuN,EAAYxuQ,OAA/E8yQ,aACFoB,EAAsB/0P,GAAa2zP,EAAcmB,GACjD51E,EAAgBt6L,EAAKg2B,QAAQu5O,EAAUv0O,IAChC,YAATp8B,GACsB,IAAxB07L,GAAwBt6L,EAAKyH,OAAO6yL,EAAe,GAC1C61E,EAAoB72Q,SAAWy1Q,EAAaz1Q,SAC7B,IAAxBghM,GAAwBt6L,EAAKkG,KAAKqpQ,EAAUv0O,IAE9Cu0O,EAAYA,EAAUzyP,MACxB,CACO,OAAA9c,CAfsC,CAgB/C,CAmDeowQ,CAAyBN,EAAYD,EAAUn1B,cAAem1B,EAAUjxQ,MAC/E,IAAAw/P,EA/IH,SAA0B58O,GAG/B,IAFM,IAAEolP,EAAiCplP,EAAjColP,YAAa5xB,EAAoBxzN,EAApBwzN,gBACfz3O,EAAS,GACNhE,EAAI,EAAGF,EAAM27O,EAAgB17O,OAAQC,EAAIF,EAAKE,IAAK,CAC1D,IAAM+B,EAAM05O,EAAgBz7O,GAC5BgE,EAAO2I,KAAK0gQ,EAAYr/P,IAAIjM,GAC9B,CACO,OAAAiC,CACT,CAuIuB8yQ,CAAiB,CAAEzJ,YAAaA,EAAY3qQ,MAAO+4O,gBAAiB86B,IACjFC,EAAez2O,GAAAA,MAChBu2O,GAAA,GAAA,CACHp1B,gBAAiB2jB,IAEnBtkB,EAAoBg2B,EAAYC,EAClC,CAhDIO,CAAaV,EAASC,GANtB/1B,EAAoB81B,EAASC,EAQjC,EAuDF,wpBCnOA,IAAAU,GAAer4O,kBAAgB,CAC7Bx9B,KAAM,iBAENoI,MAAOw2B,GAAAA,GAAAA,GACFwxL,CAAAA,EAAAA,IACA6oB,IACAuyB,IAGL/tO,eAAMr1B,EAA6BsqC,GAC3B,IAAAi0M,EAAkBruN,MAAI,MACtBw9O,EACJpE,GAAYtpQ,EAAOsqC,GADbglG,EAAOo+H,EAAPp+H,MAAO4gC,EAAAw9F,EAAAx9F,WAAY86F,EAAkB0C,EAAlB1C,iBAAkBL,EAAA+C,EAAA/C,SAAU7B,IAAAA,sBAA0B6E,EAAsB76O,GAAA46O,EAAA75O,IAEjGnP,EAAcyM,KAEd2yO,EAAc5zO,EAAAA,IAAIo/G,EAAMn2I,MAAM2qQ,aAEpC8J,EAA+DtB,GAActsQ,EAAO8jQ,GAA5EyI,EAA+BqB,EAA/BrB,8BAA+BM,EAAAe,EAAAf,oBAGjC/K,EAAa,SAACx5C,GAElB,IADA,IAAMhyN,EAAuC,GACpCG,EAAI,EAAGF,EAAM+xN,EAAQ9xN,OAAQC,EAAIF,EAAKE,IAAK,CAAA,IAAA8hF,EAAAE,EAC9Cx5C,EAAOzI,GAAA,CAAA,EAAK8xL,EAAQ7xN,YAEpB8hF,GADJt5C,EAAO+rO,EAAiB/rO,IACfC,gBAALq5C,OAAAA,EAAe/hF,SACZyoC,EAAAC,SAAW4iO,EAAW7iO,EAAKC,aAG7BD,EAAKC,kBAAYu5C,EAAAx5C,EAAKC,uBAALu5C,EAAejiF,SACnCF,EAAI8M,KAAK67B,EAEb,CACO,OAAA3oC,GAGHgsQ,EAAW3qP,EAAAA,UAAS,WAGxB,OADoB3X,EAAMwmB,OAASlvB,OAAO4F,KAAK8C,EAAMwmB,MAAMhwB,OACvCwJ,EAAMsoN,QAAUw5C,EAAW9hQ,EAAMsoN,QACvD,IAEMulD,EAAmB,SAACxuO,GAA0C,IAAAulD,EAC9D5kF,EAAMqjQ,iBAAmBrjQ,EAAMqjQ,eAAehkO,KACzCsrO,EAAA,CACP/wP,QAASylB,EAAOzlB,QAChBoZ,OAAQqM,EAAOrM,OACfkhD,aAAc70C,EAAO60C,aACrB4Q,YAAazlD,EAAOylD,sBAEtBF,EAAA5kF,EAAM2+E,kBAANiG,OAAAA,EAAAntF,KAAAuI,EAAmBq/B,KAGfyuO,EAA6D,SAACpvP,GAAM,IAAAmrP,EAAAkE,UACpElE,EAAA7pQ,EAAMwmB,YAANqjP,OAAAA,EAAYmE,uBACdlF,EACE,CACE1vN,IAAK16B,EAAE06B,IACPqvE,SAAU/pG,EAAEzjB,OAEd,qBAGJ8yQ,EAAA/tQ,EAAM+pN,kBAANgkD,OAAAA,EAAAt2Q,KAAAuI,EAAmB0e,IAGfuvP,EAAoB,SAACC,EAA6B11Q,GACtD,OAAK01Q,EACDA,EAAazlJ,UAAY,EAAUylJ,EAAazlJ,SAChDylJ,EAAazlJ,SAAW,EACnBwlJ,EAAkBC,EAAal0P,aADpC,GAFsB,GA2C5B,OApBAswB,EAAQoW,OAAOlqB,GAAAA,GAAA,CACb84G,MAAOA,EAAMn2I,MACb+2K,WAAYA,EAAW/2K,OACpBw0Q,GAAA,GAAA,CACHpvB,gBAAAA,EACAigB,gBAAiB,SAACx7B,GACT,OAAAub,EAAgBplP,MAAMqlQ,gBAAgBx7B,EAC/C,EACAs7B,kBAAmB,WACV,OAAA/f,EAAgBplP,MAAMmlQ,mBAC/B,EACAK,kBAAmB,WACjBpgB,EAAgBplP,MAAMwlQ,mBACxB,EACAzhC,aAAc,WACZqhB,EAAgBplP,MAAM+jO,cACxB,EACA7iD,gBAjCsB,SAACh7I,GACnB,IAAEpkC,EAAUokC,EAAVpkC,MACF,IAACA,GAAmB,IAAVA,EAAa,CACrB,IAACokC,EAAO7mC,IAEV,YADI8sE,GAAM,QAAS,wDAGrB,IAAM4oM,EAAepK,EAAY3qQ,MAAMsL,IAAI46B,EAAO7mC,OAC1CyC,EAAAgzQ,EAAkBC,EAAc7uO,EAAO7mC,MACnC,QAAe,IAAVyC,IACfqqE,GAAU,QAAA,GAAAl0C,OAAYiO,EAAO7mC,IAAkE,6DAEnG,CACA+lP,EAAgBplP,MAAMkhL,gBAAgB7jJ,GAAAA,GAAA,GAAK6I,GAAA,GAAA,CAAQpkC,MAAAA,SAuB9C,WAAM,IAAAovQ,EAEL8D,EAAqC33O,GAAAA,GACtCsK,CAAAA,EAFavQ,EAAAA,qBAAVuQ,MAEG9gC,OAAA,GAAA,CACTupN,OAAQvpN,EAAMupN,QAAU,KACxB7kN,KAAMwrK,EAAW/2K,MACjBmvN,QAASg6C,EAASnpQ,MAElBy4O,6BAA8B26B,EAA8BpzQ,MAE5DovN,gBAAiBzmL,QAAQ9hC,EAAMwmB,MAAQlvB,OAAO4F,KAAK8C,EAAMwmB,MAAMhwB,SAAWwJ,EAAMuoN,gBAChFwqB,eAAgB85B,EAChBluL,WAAYkvL,EACZvkD,aAAc,SAAA/mL,GAAa,IACnBygM,EAAWv+N,GADF89B,EAAA6W,IACWp5C,EAAMupN,QAAU,MACpC86C,EAAWP,EAAY3qQ,MAAMsL,IAAIu+N,GACvC,OAAKqhC,EACE,IAAAjzO,OAAI1M,EAAYvrB,kCAAyBkrQ,EAASj4J,OAASpsG,EAAMspN,cADlD,CAACtpN,EAAMspN,aAE/B,IAMF,eAJI+gD,EAAArqQ,EAAMwmB,YAAN6jP,OAAAA,EAAY2D,wBACdG,EAAcpkD,WAAa+jD,GAG7Bl3O,cAAAw3O,GAAA7pO,EAAA2qC,WAAiDi/L,EAAA,CAAAj+O,IAAoBquN,IAAvCj0M,EAAQnK,OAE1C,IC1IWgjO,GAAYx8N,GAAYglM,IACxByiC,GAAeznO,GAAYy4N,IAC3BiP,GAAgB1nO,GAAY8mO,IAG5Ba,GAAQ3nO,GADPj2B,GAAU0uP,IACgB,UCdzBmP,GAAA,CAEbp2G,WAAY,CACVr8J,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,YAAa,MAAO,UAAUjnB,SAASinB,EAClE,GAGF2W,OAAQ,CACNt5C,KAAM/C,OACNoqB,QAAS,WACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYjnB,SAASinB,EAC7C,GAGFm+C,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,YACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,YAAa,QAAQjnB,SAASinB,EACxC,GAGFkf,QAAS7b,QAET3T,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,OAAOjnB,SAASinB,EACrC,IC3CS+vO,GAAe,CAC1B7qG,SAAU,CAAC,OAAQ,SACnB8qG,WAAY,CAAC,MAAO,WAaTC,GAAiE53Q,OAAO,mBAExE63Q,GAAmBh3P,YAA2B,WAAA,MAAO,CAChEwW,MAAO,UACPwvB,SAAS,EACTixN,YAAa,GACbx5N,OAAQ,aACRy5N,YAAa,OACbjyL,KAAM,YACN,IClBakyL,GAAA,CAEb7lP,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBykM,IAAK,CACHziM,KAAMhC,UAGRi1Q,SAAU,CACRjzQ,KAAM/C,OACNoqB,QAAS,WAGXs2B,MAAO,CACL39C,KAAM,CAAC/C,OAAQe,WAGjBq+J,WAAY,CACVr8J,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,MAAO,UAAUjnB,SAASinB,EACrD,GAGF3M,QAASgQ,QAETyF,QAASztC,6kBC9BX,IAAMk1Q,GAAgB,CAAC,UAAW,UAAW,UAAW,UAAW,SAEnEC,GAAe75O,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACH/E,MAAO,CACLa,KAAM9C,UAGVq8B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,iBAGhC+9O,EAAmB1+O,EAAAA,OAAOk+O,GAAmBC,IAC7CzrO,EAAgBjC,KAChBpB,EAAiBU,KAGjB4uO,EAAuB,SAACl0Q,GAAkB,IAAAm0Q,EAC9CC,EAAgCH,EAAiB/1Q,MAAzCi8C,EAAAi6N,EAAAj6N,OAAQy5N,EAAYQ,EAAZR,YAEVS,EAAwC,QAAxCF,EAAoBpvQ,EAAMm4J,kBAAc,IAAAi3G,EAAAA,EAAAP,EAExCtxO,EAAkB,eAAX6X,EAA0B,MAAQ,OACzC3X,EAAmB,eAAX2X,EAA0B,SAAW,QAEnD,MAA0B,cAAtBk6N,EACKr0Q,EAAQ,GAAM,KAAIm2B,OAAG4Z,EAAe7xC,MAAS,KAAAi4B,OAAAmM,GAAAnM,GAAAA,OAAY4Z,EAAe7xC,MAASi4B,KAAAA,OAAAqM,GAEhE,SAAtB6xO,GAAsD,QAAtBA,EAC3Bl+O,GAAAA,OAAG4Z,EAAe7xC,MAASi4B,KAAAA,OAAAmM,GAEV,UAAtB+xO,GAAuD,WAAtBA,EAC5Bl+O,GAAAA,OAAG4Z,EAAe7xC,MAASi4B,KAAAA,OAAAqM,GAE7B,IAEHoT,EAAc,SAACr2C,GAAkB,IAAA21C,EACrB,QAAhBnwC,EAAAA,EAAMunC,eAAU,IAAA4I,GAAhBnwC,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,EAAGykC,KAAM/kB,GAAKla,EAAO,CAAC,aAG1C,OAAO,WACL,IAAAuvQ,EAA8CL,EAAiB/1Q,MAAvDyjF,EAAM2yL,EAAN3yL,KAAMzuD,EAAAohP,EAAAphP,MAAOygP,EAAaW,EAAbX,YAAajxN,EAAA4xN,EAAA5xN,QAC1B7rB,EAA6B9xB,EAA7B8xB,QAASi9O,EAAoB/uQ,EAApB+uQ,SAAU9zQ,EAAU+E,EAAV/E,MAErBulI,EAAY3gG,EAAe,SAC3B2vO,EAAa3vO,EAAe,OAE5B4vO,EAAAr+O,GAAAA,OAAqB4Z,EAAe7xC,MAAA,iBAC1C,GAAIq2Q,SAAAA,EAAYxvQ,MAAO,CAAA,IAAA0vQ,EACf/4O,EAAU64O,SAAmB,UAAnBA,EAAYxvQ,aAAO,IAAA0vQ,OAAA,EAAnBA,EAAmB,MACxBF,EAAAxvQ,MAAA,MAAc22B,EAAU,CAAC84O,EAAiB94O,GAAStuB,KAAK,KAAOonQ,CAC5E,CAEA,OAAA74O,EAAAA,YAAA,KAAA,CAAAC,MACa,CAAAzF,GAAAA,OAAI4Z,EAAe7xC,OAAS,GAAAi4B,OAAG+9O,EAAqBnvQ,EAAM/E,iBAAoB41C,GAAA,CAC7E,cAAT+rC,GAAwB4jD,GAAA5pG,EAAAA,YAAA,MAAA,CAAAC,MACX,CAAAzF,GAAAA,OAAI4Z,EAAe7xC,MAAA,WAAA,GAAAi4B,OAAmB4Z,EAAe7xC,MAAAi4B,aAAAA,OAAiBwrD,KAAU4jD,CAAAA,IAA3F5pG,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEY4Z,EAAe7xC,MAAA,cAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA59B,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAGpB4Z,EAAe7xC,MAAe,UAAA,MAAAi4B,OAC9B4Z,EAAe7xC,yBAAyBq2Q,IAAgBA,GAAc19O,MAAAV,OACtE4Z,EAAe7xC,wBAAe41Q,GAAaC,GAAcx3P,SAASu3P,IAAQl8O,MAEzE,CAAEqkF,aAAc83J,GAAcx3P,SAASu3P,IAAaA,IAAS,EAElES,GAAc19O,GAAW8E,EAAAA,YAAAoQ,GAAA,CAAAziC,KAAA,OAAAsyB,MAA4B44O,GAAiB,MACvED,IAAA54O,EAAAA,YAAA,MAAA,CAAAC,MAAA59B,EAAAA,EAAAA,QAAAm4B,OAIK4Z,EAAe7xC,MAAgB,WAAA,MAAAi4B,OAC/B4Z,EAAe7xC,MAAAi4B,kBAAAA,OAAsBjD,IAAU,GAAAiD,GAAAA,OAC/C4Z,EAAe7xC,MAAA,mBAAAi4B,OAAuBw9O,EAAY3zQ,IAAW0iD,IAAA,QAAA/mB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAIxD4Z,EAAe7xC,MAAA,cAAA,CAC3B+pC,EAAc,UAAW,WAChB,SAAT05C,GAAmB4jD,GAAA5pG,EAAAO,YAAA,MAAA,CAAAN,MACN,CAAAzF,GAAAA,OAAI4Z,EAAe7xC,MAAA,WAAA,GAAAi4B,OAAmB4Z,EAAe7xC,MAAAi4B,aAAAA,OAAiBwrD,KAAM,CACrF4jD,QAOf,IC3FFmvI,GAAev6O,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAOuuQ,GACPl5O,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,YAChC09O,EAAcl3P,EAAAA,UAAS,WACrB,IAAEwgJ,EAAuBn4J,EAAvBm4J,WAAY/iH,EAAWp1C,EAAXo1C,OAChBt8C,EAAiB,aAAXs8C,EAAwB,OAAS,MACvC,GAAW,aAAXA,GAAyB+iH,EAAY,CACvC,IAAMl9J,EAAQuzQ,GAAaC,WAAWv7O,QAAQilI,GACxC/3D,GAAoB,IAAVnlG,EACLmlG,GAAA96B,GAAS,WAAY,yEAC1BxsE,EAAAsnG,EAAUouK,GAAa7qG,SAAS1oK,GAASk9J,CACjD,CACI,GAAW,eAAX/iH,GAA2B+iH,EAAY,CACzC,IAAMl9J,EAAQuzQ,GAAa7qG,SAASzwI,QAAQilI,GACtC/3D,GAAoB,IAAVnlG,EACLmlG,GAAA96B,GAAS,WAAY,2EAC1BxsE,EAAAsnG,EAAUouK,GAAaC,WAAWxzQ,GAASk9J,CACnD,CACO,OAAAr/J,CACT,IAEM82Q,EAAkBj4P,EAAAA,UAAS,WAExB,MAAA,CACLwW,MAFmDnuB,EAA7CmuB,MAGNwvB,QAHmD39C,EAAtC29C,QAIbixN,YAAa,CAAC,IACdx5N,OALmDp1C,EAA7Bo1C,OAMtBy6N,YANmD7vQ,EAArBm4J,WAO9Bv7E,KAPmD58E,EAAT48E,KAQ1CiyL,YAAaA,EAAY11Q,MAE7B,IAKA,OAFA+3B,UAAQw9O,GAAmBkB,GAEpB,WACL,IACIE,EAD2Bn6N,IACXm+B,CAAuB,iBAGzC,OAFE9zE,EAAM29C,UAASmyN,EAAgBA,EAAcnyN,WAE/C/mB,EAAAA,YAAA,KAAA,CAAAC,MACS,CAAAzF,GAAAA,OACF4Z,EAAe7xC,OAAAF,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEZ4Z,EAAe7xC,MAAAi4B,KAAAA,OAASy9O,EAAY11Q,QAAU,GAAAi4B,GAAAA,OAC9C4Z,EAAe7xC,MAAA,YAAkB6G,EAAM29C,SAAAvsB,GAAAA,OACvC4Z,EAAe7xC,MAAA,KAAAi4B,OAASpxB,EAAMo1C,SAAW,MAAAhkB,OACzC4Z,EAAe7xC,MAAgB42Q,UAfxB,GAewB3+O,GAAAA,OAC/B4Z,EAAe7xC,MAAA,YAAAi4B,OAAgBpxB,EAAM48E,OAAS,KAIrD,CAAAkzL,EAAc9qQ,KAAI,SAACi6B,EAAMhkC,GAAA,OAAA27B,EAAAO,YAAA64O,GAAAzrO,aAElBtF,EAAKj/B,MAAA,CAAA/E,MACFA,EAAA47B,MAAA59B,EAAA,CAAA,EAAA,GAAAm4B,OACM4Z,EAAe7xC,MAAqB8B,eAAAA,IAAU60Q,EAAct5Q,OAAS,KACzEyoC,EAAKC,SAEjB,MAIT,IChEW+wO,GAAWtpO,GAAYgpO,IACvBK,GAAerpO,GAAYsoO,ICHzBiB,GAAA,CAEbhiL,WAAYpsD,QAEZunO,iBAAkBvnO,QAElB9P,SAAU8P,QAEV/b,WAAY,CACVjqB,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXgtP,oBAAqB,CACnBr0Q,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASjnB,SAASinB,EACpC,GAGF88C,YAAaz5C,QAEbwvM,iBAAkB,CAChBx1O,KAAMgmC,QACN3e,SAAS,GAGXhqB,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,OAGR2xD,SAAUxuD,UC5CZs2Q,GAAeh7O,kBAAgB,CAC7Bx9B,KAAM,YACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAowB,EAAgBe,GAAe,YAC/Bk/O,EAAkBl/O,GAAe,gBACjC0O,EAAiBU,KACvBwrC,EAAuD7nC,SAAOlkC,GAAtD7G,EAAO4yE,EAAP5yE,MAAOoiF,EAAAxP,EAAAwP,YAAa2S,IAAAA,WAC6EliB,EAAArvD,GAA/DooD,GAAU5rE,EADD4yE,EAAX/G,WAC+BhlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAAlGgoN,EAAetkM,EAAA,GAAAukM,EAAgBvkM,EAAA,GAahCr1C,EAAUhf,EAAAA,UAAS,WAChB,MAAA,CACLyY,EAAcj3B,MAAAF,EAEXo3Q,CAAAA,EAAAA,EAAgBl3Q,QAAU+0F,EAAW/0F,OAG5C,IACMq3Q,EAAa,WACjB,IAAIv1Q,EAAQ,EACZ,OAAO,WAAA,OAAMA,GAAA,CACf,CAHmB,GAUnB,OANAi2B,UAAQ,gBAAiBo/O,GACzBp/O,UAAQ,uBAzBoB,SAAC/3B,GAC3B,IAAIgH,EAA0B,GAAGixB,OAAOk/O,EAAcn3Q,OAAS,IACzD8B,EAAQkF,EAAS+yB,QAAQ/5B,GAC3B8B,GAAS,EACFkF,EAAAwE,OAAO1J,EAAO,GACdsgF,EAAYpiF,MACrBgH,EAAW,CAAChH,GAEZgH,EAASiD,KAAKjK,GAEhBo3Q,EAAiBpwQ,MAgBX+wB,EAAAA,QAAA,gBAAiBgT,SAAOlkC,IAChCkxB,UAAQ,YAAas/O,GAErBt/O,UAAQ,oBAAqB2O,GACtB,WACC,IAAA8nF,EAAQ9nF,EAAe,WAC7B,OAAAjJ,EAAAA,YAAA,MAAA,CAAAC,MAAmBF,EAAQx9B,OAAA,CAAQwuH,IAEvC,ICzCa8oJ,GAAA,CAEbxnP,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB42Q,kBAAmB5uO,QAEnB9P,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX4C,WAAY,CACVjqB,KAAM,CAACgmC,QAAShoC,UAChBqpB,aAAS,GAGXqkL,OAAQ,CACN1rM,KAAM,CAAC/C,OAAQe,WAGjB62Q,mBAAoB,CAClB70Q,KAAM,CAAC/C,OAAQe,WAGjBX,MAAO,CACL2C,KAAM,CAAC/C,OAAQC,UChCnB,IAAA43Q,GAAex7O,kBAAgB,CAC7Bx9B,KAAM,iBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAwC,IAATmgC,EAAAoC,EAAApC,MAC7BN,EAAiBU,KACjB2C,EAAgBjC,KAChB7Q,EAAgBe,GAAe,kBAC/BkhD,EAAelhD,GAAe,eAC9B0/O,EAAiB1/O,GAAe,gBAChC42D,EAAkB52D,GAAe,cACvC46C,EAA+C7nC,SAAOlkC,GAA9C7G,EAAO4yE,EAAP5yE,MAAO64B,EAAA+5C,EAAA/5C,SAAU0+O,EAAkB3kM,EAAlB2kM,kBACnBJ,EAAoC9/O,SAAO,iBAC3CsgP,EAAgCtgP,SAAO,uBACvCggP,EAAsBhgP,SAAO,aAAa,eAA4B,GACtEugP,EAKFvgP,SAAY,iBAJd64O,EAAA0H,EAAA1H,iBACU2H,EAAAD,EAAV/+O,SACAm+O,EAAAY,EAAAZ,oBACA7+B,EAAAy/B,EAAAz/B,iBAEI2/B,EAA8BzgP,SAAO,qBACrCuhE,EAAa54F,EAAMA,OAASq3Q,IAC9BnH,EAAiBlwQ,OACnB23Q,EAAoB/+K,GAEhB,IAAApI,EtZSD,CACLC,YA1CkB,SAACj3D,GAChBA,EAAA8V,QAAQohD,cAAgBl3D,EAAGE,MAAMi3D,WACjCn3D,EAAA8V,QAAQshD,iBAAmBp3D,EAAGE,MAAMm3D,cAEvCr3D,EAAGE,MAAMoE,OAAS,IAClBtE,EAAGE,MAAMi3D,WAAa,IACtBn3D,EAAGE,MAAMm3D,cAAgB,KAqCzBC,MAnCY,SAACt3D,GACVA,EAAA8V,QAAQyhD,YAAcv3D,EAAGE,MAAMyW,SAC/B3W,EAAAE,MAAMoE,OAAS,GAAA7F,OAAGuB,EAAG6mC,aAAA,MACrB7mC,EAAAE,MAAMi3D,WAAan3D,EAAG8V,QAAQohD,cAC9Bl3D,EAAAE,MAAMm3D,cAAgBr3D,EAAG8V,QAAQshD,iBACpCp3D,EAAGE,MAAMyW,SAAW,UA+BpB6gD,WA7BiB,SAACx3D,GAClBA,EAAGE,MAAMoE,OAAS,GACftE,EAAAE,MAAMyW,SAAW3W,EAAG8V,QAAQyhD,aA4B/BE,YA1BkB,SAACz3D,GAChBA,EAAA8V,QAAQohD,cAAgBl3D,EAAGE,MAAMi3D,WACjCn3D,EAAA8V,QAAQshD,iBAAmBp3D,EAAGE,MAAMm3D,cACpCr3D,EAAA8V,QAAQyhD,YAAcv3D,EAAGE,MAAMyW,SAE/B3W,EAAAE,MAAMoE,OAAS,GAAA7F,OAAGuB,EAAG6mC,aAAA,MACxB7mC,EAAGE,MAAMyW,SAAW,UAqBpB+gD,MAnBY,SAAC13D,GACW,IAApBA,EAAG6mC,eACL7mC,EAAGE,MAAMoE,OAAS,IAClBtE,EAAGE,MAAMi3D,WAAa,IACtBn3D,EAAGE,MAAMm3D,cAAgB,MAgB3BM,WAbiB,SAAC33D,GAClBA,EAAGE,MAAMoE,OAAS,GACftE,EAAAE,MAAMyW,SAAW3W,EAAG8V,QAAQyhD,YAC5Bv3D,EAAAE,MAAMi3D,WAAan3D,EAAG8V,QAAQohD,cAC9Bl3D,EAAAE,MAAMm3D,cAAgBr3D,EAAG8V,QAAQshD,mBsZN5BH,IAAAA,YAAaK,EAAON,EAAPM,MAAOE,EAAAR,EAAAQ,WAAYC,IAAAA,YAAaC,EAAOV,EAAPU,MAAOC,EAAAX,EAAAW,WACtD4mL,EAAUhhP,EAAAA,MACVib,EAAaxzB,EAAAA,UAAS,WAAA,OAAMqa,EAAS74B,OAAS63Q,EAAW73Q,SACzDglF,EAAWxmE,EAAAA,UAAS,WAAA,OACxB24P,EAAcn3Q,iBAAiBxC,MAC3B25Q,EAAcn3Q,MAAMqe,SAASu6E,GAC7Bu+K,EAAcn3Q,QAAU44F,CAAA,IAExBp7D,EAAUhf,EAAAA,UAAS,WAChB,MAAA,CAACyY,EAAcj3B,MAAOF,EAAA,CAAA,EAAGo5E,EAAal5E,MAAQgyC,EAAWhyC,OAClE,IACMg4Q,EAAkBx5P,EAAAA,UAAS,WAAA,OAAMwoB,EAAMpa,YAAc/lB,EAAM+lB,cAC3D8qB,EAAc,SAACr2C,IACD82O,EAAiBn4O,OAASqB,EAAEyqD,gBAAkBisN,EAAQ/3Q,SACtDgyC,EAAWhyC,OAC3B23Q,EAAoB/+K,GAEtBv3F,EAAE24E,mBAEEi+L,EAAgC,SAAC52Q,GACrCA,EAAE24E,mBAKEvkB,EAAa,WACjB,IAAMyiN,OAAwC,IAA1BF,EAAgBh4Q,MAAsB83Q,EAAoBpxO,EAE5E,OAAAjJ,EAAAA,YAAA,MAAA,CAAA1G,IACOghP,EACLr6O,MAAA,GAAAzF,OAAUhB,EAAcj3B,MAAA,WAAAi4B,OAAehB,EAAcj3B,MAAA,YAAAi4B,OAAgB++O,EAAoBh3Q,MAAAi4B,KAAAA,OACvF+sD,EAAShlF,MAAQi4B,GAAAA,OAAGhB,EAAcj3B,wBAAwB,IAE5DouC,QAASsJ,GAER,CAAAwgO,EAAY,aAZjBz6O,EAAAA,YAAAowD,GAAA,CAAA1e,iBAAA,GAAAl3C,OAAuChB,EAAcj3B,MAAwB,oBAAA,UAwDzEm4Q,EAAa,WACjB,OAAOZ,EAAkBv3Q,MAPlBglF,EAAShlF,2CACCi3B,EAAcj3B,uDACZi3B,EAAcj3B,qBAAmB+pC,EAAc,UAAW,eAEzE,KAVF8rC,EAAAC,eAAAr4C,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAuChB,EAAcj3B,MACnD,WAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAehB,EAAcj3B,MAAmB,cAAA+pC,CAAAA,EAAc,UAAW,eAAS,CAAA,CAAAksC,EAAAA,MADvE+O,EAAShlF,UAe1B,OAAO,WAAM,IAAAk5C,EA7GgB90B,EAsErBozP,EAKA32O,EAoCJ,OAAApD,EAAAA,YAAA,MAAA,CAAAC,MAAYF,EAAQx9B,6CACHi3B,EAAcj3B,MAAA,cAAA,EArC3B6gC,EAAM,CAAA5I,GAAAA,OACPhB,EAAcj3B,MAAA,YAAAF,EAAA,CAAA,EAEd43Q,EAAe13Q,MAAQm4O,EAAiBn4O,QAAUgyC,EAAWhyC,QAIlEy9B,EAAAA,YAAA,MAAA,CAAAC,MACcmD,EAAAuN,QAAcsJ,GAAA,CACO,SAA9Bs/N,EAAoBh3Q,OAAoBy1D,IACxC/uB,EAAe,UAlBpBjJ,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAsBhB,EAAcj3B,MAAwB,oBAAA,OAGtDw3Q,EAAqB9wO,EAAe,sBAEnC8wO,+BAAmCS,GAAgCT,CAAAA,IAA4B,MAgBnE,UAA9BR,EAAoBh3Q,OAAqBy1D,OAyB1Bh4B,EAAAO,YAAAmuD,aAAA,CAAA1tF,KAENmwF,EAAgB5uF,MACtBy8M,cAAehsH,UACNK,EAAAO,aACKL,EACdM,cAAeL,UACNC,EAAAwrH,aACKvrH,IAzHK/sE,EA2HlB80B,EAAAi/N,IA3HkB,mBAAA/zP,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,2CAiI/B,IC3HWg0P,GAAW5qO,GAAYypO,IAEvBoB,GAAgB7qO,GAAYiqO,ICL1Ba,GAAA,CAEbt7E,MAAO,CACLr6L,KAAM9C,OACNmqB,QAAS,GAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBm9B,OAAQ,CACNn7B,KAAM9C,QAGR04Q,SAAU,CACR51Q,KAAMgmC,QACN3e,SAAS,GAGXwuP,UAAW,CACT71Q,KAAM9C,OACNmqB,QAAS,IAGXyuP,QAAS9vO,QAET+vO,aAAc,CACZ/1Q,KAAM9C,OACNmqB,QAAS,KAGX1c,OAAQ,CACN3K,KAAMnF,OAGRmnF,UAAW,CACThiF,KAAMgmC,QACN3e,SAAS,GAGXqqL,OAAQ,CACN1xM,KAAM9C,OACNmqB,SAAS,IAGX2uP,iBAAkB,CAChBh2Q,KAAM,CAACxE,OAAQX,QAGjBqgC,MAAO,CACLl7B,KAAM9C,QAGRwmB,EAAG,CACD1jB,KAAM9C,QAGR4kB,EAAG,CACD9hB,KAAM9C,QAGRopC,OAAQ,CACNtmC,KAAM9C,qkDClEV,IAAA+4Q,GAAe38O,kBAAgB,CAC7Bx9B,KAAM,aACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgyQ,EAAkB9hP,MAAI,IACtB+hP,EAAerI,EAAAA,aACfsI,EAAsBtI,EAAAA,aAEtBnjQ,EAASq+B,EAAAA,SAAS9kC,EAAMyG,QAAU,IAElC0rQ,EAAOx6P,EAAAA,UAAS,WACb3X,OAAAA,EAAM4xQ,QAAU,EAAI5xQ,EAAMwf,CACnC,IAEM4yP,EAAOz6P,EAAAA,UAAS,WACb3X,OAAAA,EAAM4xQ,QAAU,EAAI5xQ,EAAM4d,CACnC,IAEM4vL,EAAS71L,EAAAA,UAAS,WACf3X,OAAAA,EAAM4xQ,QAAU,EAAI5xQ,EAAMwtM,MACnC,IAEM6kE,EAAmB16P,EAAAA,UAAS,WAChC,OAAI3X,EAAM4xQ,QACD,YAEF5xQ,EAAM0xQ,SAAW,SAAW,WACrC,IAEMp+M,EAAa37C,EAAAA,UAAS,WACnB,OAAAlR,EAAO,IAAM0rQ,EAAKh5Q,MAAQ,CACnC,IAEMulD,EAAY/mC,EAAAA,UAAS,WAClB,OAAAlR,EAAO,IAAM2rQ,EAAKj5Q,MAAQ,CACnC,IAEMm5Q,EAAiB36P,EAAAA,UAAS,WAAA,MAAO,CACrCqf,MAAOh3B,EAAMg3B,MACbC,OAAQj3B,EAAMi3B,OACdu2K,OAAQA,EAAOr0M,MACfw4Q,UAAW3xQ,EAAM2xQ,UACjBx7E,MAAOn2L,EAAMm2L,MACbg8E,KAAMA,EAAKh5Q,MACXi5Q,KAAMA,EAAKj5Q,MACX24Q,iBAAkB9xQ,EAAM8xQ,iBACxBx+M,WAAYA,EAAWn6D,MACvBulD,UAAWA,EAAUvlD,MACrB,IAQIo5Q,EAAkB,WAwBtB,GCxFN,SAA0ChwO,EAsBvCyqB,GAAyC,IArB1Ch2B,EAAAuL,EAAAvL,MACAC,EAAAsL,EAAAtL,OACAk7O,EAAA5vO,EAAA4vO,KACAC,EAAA7vO,EAAA6vO,KACA9+M,EAAA/wB,EAAA+wB,WACA5U,EAAAnc,EAAAmc,UACA8uJ,EAAAjrK,EAAAirK,OACArX,EAAA5zJ,EAAA4zJ,MACA27E,EAAAvvO,EAAAuvO,iBACAH,EAAApvO,EAAAovO,UAaM92D,EAASvhL,SAASuD,cAAc,UAChCuqB,EAAMyzJ,EAAOC,WAAW,MAC9B,IAAK1zJ,EAIH,OAFA/hB,QAAQkgC,KAAK,+FACbvY,EAAS,IAGL,IAAAwlN,EAAQ18O,OAAOiiC,kBAAoB,EACnC06M,GAAeN,EAAOn7O,GAASw7O,EAC/BE,GAAgBN,EAAOn7O,GAAUu7O,EAEvC33D,EAAO7jL,MAAQy7O,EACf53D,EAAO5jL,OAASy7O,EACT73D,EAAAhoL,MAAMmE,MAAQ,GAAA5F,OAAG+gP,EAAOn7O,EAAA,MACxB6jL,EAAAhoL,MAAMoE,OAAS,GAAA7F,OAAGghP,EAAOn7O,EAAA,MAEhCmwB,EAAIs/H,UAAUpzH,EAAak/M,EAAO9zN,EAAY8zN,GAC9CprN,EAAIomJ,OAAQntM,KAAK+/M,GAAK,IAAOpnN,OAAOw0M,IACpCpmJ,EAAIurN,YAAcx8E,EAElB,IAAMy8E,EAAY57O,EAAQw7O,EACpBK,EAAa57O,EAASu7O,EAE5BprN,EAAI0rN,UAAY,cAChB1rN,EAAI2rN,SAAS,EAAG,EAAGH,EAAWC,GAExB,IAAAG,EAAWr8Q,MAAMoB,QAAQ+5Q,GAAoBA,EAAmB,CAAAt7O,GAAA,CAAA,EAAMs7O,IACxEx0O,EAAM,EACD01O,EAAA1iQ,SAAQ,SAAC2uB,GAChB,GAAIA,EAAKtS,IAAK,CACZ,IAAQA,EAA6BsS,EAA7BtS,IAAAsmP,EAA6Bh0O,EAAxBi0O,YAAAA,OAAc,IAAAD,GAAAA,EAE3Bh0O,EAAK3B,IAAMA,EACJA,GAAArG,EACD,IAAAk8O,EAAM,IAAI32E,MAChB22E,EAAIC,YAAc,YAClBD,EAAIE,eAAiB,cACrBF,EAAIp4E,IAAMpuK,EACVwmP,EAAIlrM,OAAS,WAGX,GADI7gB,EAAA2zJ,UAAUo4D,EAAK,EAAGl0O,EAAK3B,IAAMk1O,EAAOx7O,EAAQw7O,EAAOv7O,EAASu7O,GAC5DU,EAAa,CAGf,IAFM,IAAAI,EAAUlsN,EAAImsN,aAAa,EAAG,EAAGnsN,EAAIyzJ,OAAO7jL,MAAOowB,EAAIyzJ,OAAO5jL,QAC9Du8O,EAASF,EAAQ5uQ,KACdjO,EAAI,EAAGA,EAAI+8Q,EAAOh9Q,OAAQC,GAAK,EAAG,CACnC,IAAAg9Q,GAAaD,EAAO/8Q,GAAK+8Q,EAAO/8Q,EAAI,GAAK+8Q,EAAO/8Q,EAAI,IAAM,EAChE+8Q,EAAO/8Q,GAAKg9Q,EACZD,EAAO/8Q,EAAI,GAAKg9Q,EAChBD,EAAO/8Q,EAAI,GAAKg9Q,CAClB,CACIrsN,EAAAssN,aAAaJ,EAAS,EAAG,EAC/B,CACStmN,EAAA6tJ,EAAO84D,aAEpB,MAAA,GAAW10O,EAAKkD,KAAM,CACd,IACJA,EAKElD,EALFkD,KAAAyxO,EAKE30O,EAJF40O,UAAAA,OAAY,IAAAD,EAAA,qBAAAA,EAAAE,EAIV70O,EAHFhJ,SAAAA,OAAW,IAAA69O,EAAA,GAAAA,EAAAC,EAGT90O,EAFF+0O,WAAAA,OAAa,IAAAD,OAAA,EAAAA,EAAAE,EAEXh1O,EADFi1O,WAAAA,OAAa,IAAAD,EAAA,SAAAA,EAGfh1O,EAAK3B,IAAMA,EACJA,GAAAq0O,EACD,IAAAwC,EAAWn7Q,OAAOi9B,GAAYu8O,EAEpCprN,EAAIgtN,KAAO,iBAAAhjP,OAAiB8iP,OAAc9iP,OAAA+iP,EAAA,OAAA/iP,OAAcyhP,SAAgBzhP,OAAA4iP,GACxE5sN,EAAIitN,UAAY,QAChBjtN,EAAIktN,aAAe,MACnBltN,EAAI0rN,UAAYe,EAChBzsN,EAAImtN,SAASpyO,EAAM,EAAGlD,EAAK3B,IAAMk1O,EACnC,CACF,IACSxlN,EAAA6tJ,EAAO84D,YAClB,CDlCwBa,CAAAlC,EAAen5Q,OAAO,SAACs7Q,GAAc,IAAAC,EANlDxC,EAAoB/4Q,QACzB+4Q,EAAoB/4Q,MAAMwiB,SAC1Bu2P,EAAoB/4Q,MAAQ,MAO1B64Q,EAAgB74Q,MAAQs7Q,EACJvC,EAAA/4Q,MAAQmgC,SAASuD,cAAc,OACnDnK,GAASw/O,EAAoB/4Q,MAAO,CAClCipC,OAAQpiC,EAAMoiC,OACd+G,SAAU,WACV5L,KAAM,EACNE,MAAO,EACPH,IAAK,EACLE,OAAQ,EACRxG,MAAO,OACPC,OAAQ,OACR09O,eAAgB,GAAAvjP,OAAG+gP,EAAKh5Q,MAAQ6G,EAAMg3B,MAAA,MACtCqS,cAAe,OACfgpO,iBAAkBA,EAAiBl5Q,MACnC64Q,wBAAA5gP,OAAyB4gP,EAAgB74Q,MAAA,MACzCwrB,UAAW3kB,EAAM4xQ,8BAAAxgP,OAAsD,EAArBpxB,EAAM6xQ,aAAoB,GAAQ,KAAA,SAEzE6C,QAAAA,EAAAzC,EAAA94Q,aAAAu7Q,IAAAA,GAAAA,EAAOt/I,OAAO88I,EAAoB/4Q,MACjD,IAEI6G,EAAM4xQ,QAAS,CACjB,IAAMgD,GEzFN1jO,EAAQ7wC,KAAKoa,MAAsB,EAAhBpa,KAAKmrG,UACxBqpK,EAAKx0Q,KAAKoa,MAAsB,GAAhBpa,KAAKmrG,UAAiB,GAIrBp6E,+CAAAA,OAEG,IAAV8f,EAHG,GAGkC,IAAVA,EALtB,EAKmD2jO,EACxEzjP,YAAAA,OAAU,IAAV8f,EANqB,EAMkB,IAAVA,EALT,GAKqC2jO,EAAAzjP,wBAAAA,OAEhC,IAAV8f,EANI,GAMiC,IAAVA,EARrB,EAQkD,IAAM2jO,EAAAzjP,YAAAA,OACnE,IAAV8f,EARoB,GAQkB,IAAVA,EATP,EASoC2jO,0BAAAzjP,OAEhC,IAAV8f,EAXM,EAWiC,IAAVA,EATzB,GASoD,IAAM2jO,EAC7E,YAAAzjP,OAAU,IAAV8f,EAXoB,GAWkB,IAAVA,EAZP,EAYoC,IAAM2jO,EAAAzjP,sDAAAA,OAEtC,IAAV8f,EAdM,EAciC,IAAVA,EAZzB,GAYoD2jO,EACvEzjP,YAAAA,OAAU,IAAV8f,EAfqB,EAekB,IAAVA,EAdT,GAcqC,IAAM2jO,EAAA,yBAAAzjP,OAErC,IAAV8f,EAfG,GAekC,IAAVA,EAjBtB,EAiBmD2jO,EACxE,YAAAzjP,OAAU,IAAV8f,EAlBqB,EAkBkB,IAAVA,EAjBT,GAiBqC2jO,EAAA,iBCtBtChiP,EH4FD+hP,EG3FZE,EAAex7O,SAASuD,cAAc,SACxCk4O,EAAa,KACRz7O,SAAAgmK,KAAKxiK,YAAYg4O,IAC1BC,EAAaD,EAAaE,OACfC,WAAWpiP,EAAOkiP,EAAWG,SAAS1+Q,OHwF7C,CG7Fc,IAACq8B,EACbiiP,EACFC,EDAE7jO,EACA2jO,GFuHJ,OA1BAt/O,EAAAA,WAAU,WACQg9O,IAChBxyG,GACEkyG,EAAa94Q,OACb,SAAC2oK,GACK9hK,IAAAA,EAAM89E,WAAco0L,EAAoB/4Q,MAAxC6G,CAA+C,IACjB8/E,EADiBC,EAAAC,GAC5B8hF,GAAW,IAAlC,IAAA/hF,EAAAxiE,MAAAuiE,EAAAC,EAAA1oF,KAAA+lB,MAAkC,CAAA,IAAvB2kJ,UACHozG,EAAYx+Q,MAAMK,KAAK+qK,EAASqzG,cAAc59P,SAAS06P,EAAoB/4Q,OAC3Ek8Q,EAA+B,eAAlBtzG,EAASjmK,MAAyBo2Q,EAAoB/4Q,QAAU4oK,EAAS/uI,OAC5F,GAAImiP,GAAaE,EAAY,CACX9C,IAChB,KACF,CACF,CAAA,CAAA,MAAAt3N,GAAA8kC,EAAAvlF,EAAAygD,EAAA,CAAA,QAAA8kC,EAAA7iE,GAAA,CARmD,CASrD,GACA,CACE+0C,YAAY,EACZlzB,WAAW,EACXijI,eAAe,EACfC,SAAS,GAGf,IAEMvgI,EAAAA,OAAA,WAAA,OAAM1hC,IAAOuyQ,EAAiB,CAAEp7L,MAAM,EAAM1gE,MAAO,SAElD,WACC,IAAAu0B,EAAiB7Z,GAAe,aAChC+R,EAAgBjC,KAGpB,OAAArK,EAAAA,YAAA,MAAA,CAAA/D,MACS,CAAEsW,SAAU,WAAYG,SAAU,SAAUtS,MAAO,cACnDgU,EAAe7xC,UACjB84Q,GAAA,CAEJ/uO,EAAc,UAAW,aAIlC,IInIWoyO,GAAY3uO,GAAYorO,ICItBwD,GAAA,CAEbC,UAAW1zO,QAEXqsD,UAAWrsD,QAEXtO,MAAO,CACL13B,KAAM,CAAC/C,OAAQpC,OACfwsB,QAAS,WAGX1kB,MAAO,CACL3C,KAAM9C,OACNmqB,QAAS,GAGX6O,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGXu0B,IAAK,CACH57C,KAAM9C,OACNmqB,QAAS,GAGXgC,KAAM,CACJrpB,KAAMhC,UAGR2pC,SAAU3B,QAEVv9B,KAAM,CACJzI,KAAM/C,OACNoqB,QAAS,QAGXsgH,MAAO,CACL3nI,KAAMnF,MACNwsB,QAAS,WAAT,MAAqC,EAAC,GAGxChqB,MAAO,CACL2C,KAAM9C,OACNmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM9C,OACNmqB,aAAS,GAGX7c,aAAc,CACZxK,KAAM9C,OACNmqB,QAAS,GAGXmlC,SAAUxuD,UCxDZ27Q,GAAergP,kBAAgB,CAC7Bx9B,KAAM,QACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACPN,EAAiBU,KACf7P,EAAiBP,GAAU,QAA3BO,aAEFglP,EAAc39Q,EAAQiI,EAAMwzB,OAASxzB,EAAMwzB,MAAM,GAAKxzB,EAAMwzB,MAC5DmiP,EAAe59Q,EAAQiI,EAAMwzB,OAASxzB,EAAMwzB,MAAM,GAAK,+BAE7Du4C,EAA0C7nC,SAAOlkC,GACqDgsE,EAAArvD,GAApEooD,GADnBgH,EAAP5yE,MAA8B4yE,EAAX/G,WACyChlE,EAAMsG,aAActG,EAAMsoD,UAAQ,GAA/FstN,EAAW5pM,EAAA,GAAA6pM,EAAY7pM,EAAA,GAExBuiF,EAAar+H,EAAAA,SAAI,GACjBr2B,EAAOq2B,EAAAA,MAEP+hG,EAAet6G,EAAAA,UAAS,WAAA,OAAM3e,OAAOu1J,EAAWp1J,OAASy8Q,EAAUz8Q,UACnE28Q,EAAen+P,EAAAA,UAAS,WAAA,OAA8B,IAAvB3X,EAAMyjI,MAAMjtI,OAAek6B,EAAav3B,MAAM41B,SAAW/uB,EAAMyjI,SAC9F/R,EAAc/5G,EAAAA,UAAS,WAAA,OAAMm+P,EAAa38Q,MAAMkH,KAAKqL,KAAKumH,EAAa94H,MAAQ,OAG/E48Q,EAAW,SAACC,GACZ,YAAe,IAAf71O,EAAMhb,KACD0a,EAAe,OAAQ,CAC5BR,OAAQ22O,IAILp/O,cAAAq/O,GAAoBD,EAAW,OAGlCE,EAAe,SAACz8O,EAAmBx+B,GACvC,GAAI+E,EAAMw1Q,UAAW,CACnB,IAAQj4O,EAAS1jC,EAAKV,MAAMikC,wBAApBG,KAEAvG,EADUn9B,EAAKV,MAAM8wC,WAAWwpL,YACZr2L,wBAApBpG,MACAk6C,EAAYz3C,EAAZy3C,QACFilM,EAAan/O,GAAS/7B,EAAQ,IAAO+E,EAAM03C,KAAOz8C,EAAQ,GAEhE,GAAIi2E,EAAU3zC,GAAQ44O,EAAmB,OAAAl7Q,EACzC,GAAIi2E,EAAU3zC,EAAO44O,EAAY,OAAOl7Q,EAAQ,EAClD,CAEO,OAAAA,GAQHm7Q,EAAoB,WACpBp2Q,EAAMgyB,WACVu8H,EAAWp1J,WAAQ,IAcfk9Q,EAAa,SAACp7Q,GAClB,OAAI+E,EAAMw1Q,WAAav6Q,EAAQ,KAAQg3H,EAAa94H,MAAO,GAAAi4B,OAAU1M,EAAYvrB,MAAA,qBAC7E8B,GAASg3H,EAAa94H,MAAc,GACpC8B,EAAQg3H,EAAa94H,MAAO,GAAAi4B,OAAU1M,EAAYvrB,MAAA,0BAAtD,GAGMurB,EAAgByL,GAAU,eAA1BzL,YAER,OAAO,WACL,OAAAkS,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB1M,EAAYvrB,4BAA4Bi9Q,GAAA,CAAAx/O,EAAAO,YAAA,KAAA,CAAAN,MAAA,GAAAzF,OACvC1M,EAAYvrB,MAAoB,eAAA05B,MAAO,CAAE6kB,IAAAtmB,GAAAA,OAAQpxB,EAAM03C,WAAWxnB,IAAKr2B,GAClF,CAAA/B,EAAInB,MAAMqC,OAAOgH,EAAMvB,SAASuG,KAAI,SAACia,EAAGhkB,GAAA,OAAA27B,EAAAA,YAAA,KAAA,CAAAp+B,IAEhCyC,EAAA47B,MACE,CAAA,GAAAzF,OAAI1M,EAAYvrB,MAAA,eAAoBk9Q,EAAWp7Q,IACtDssC,QAAS,SAAC9N,GAAA,OA3BD,SAACA,EAAmBx+B,GACvC,IAAI+E,EAAMgyB,SAAV,CACM,IAAA74B,EAAQ+8Q,EAAaz8O,EAAOx+B,GAC9B+E,EAAMmuF,WAAah1F,IAAUy8Q,EAAUz8Q,OACzCo1J,EAAWp1J,WAAQ,EACnB08Q,EAAa,IAEbA,EAAa18Q,EANK,EA0BUm9Q,CAAa78O,EAAOx+B,EAAQ,EAAC,EAAAquO,YACpC,SAAC7vM,GACL,OAvCK,SAACA,EAAmBx+B,GACxC+E,EAAMgyB,WACCu8H,EAAAp1J,MAAQ+8Q,EAAaz8O,EAAOx+B,IAqCpBs7Q,CAAkB98O,EAAOx+B,EAAQ,EAC1C,GAAA,CAEC+E,EAAMyjC,SACL7M,EAAAA,YAAAg7C,GAAA,CAAAp5E,IAAcyC,EAAAguB,QAAgByoG,EAAYv4H,OAAA,CAAAgqB,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACzB1M,EAAYvrB,MACzB,oBAAAy9B,CAAAA,EAAAO,YAAA4+O,EAAA,CAAAxxQ,KAAgBvE,EAAMuE,KAAAivB,MAAakiP,GAAA,QAAA9+O,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEtB1M,EAAYvrB,MACzB,uBAAAy9B,CAAAA,EAAAO,YAAA4+O,EAAA,CAAAxxQ,KAAgBvE,EAAMuE,KAAAivB,MAAamiP,GAAA,QAAA,IAAA/+O,EAAAO,YAAA4gB,EAAA5Y,SAAA,KAAA,CAAAvI,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAKtB1M,EAAYvrB,MACzB,oBAAAy9B,CAAAA,EAAAO,YAAA4+O,EAAA,CAAAxxQ,KAAgBvE,EAAMuE,KAAAivB,MAAakiP,GAAA,QAAA9+O,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEtB1M,EAAYvrB,MACzB,uBAAAy9B,CAAAA,EAAAO,YAAA4+O,EAAA,CAAAxxQ,KAAgBvE,EAAMuE,KAAAivB,MAAamiP,GAI3C,WACD,MAEF31Q,EAAMyjC,UAAY7M,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe1M,EAAYvrB,MAAA,gBAAqBu4H,CAAAA,EAAYv4H,UAIvF,ICpHWq9Q,GAAO7vO,GAAY8uO,ICEjBgB,GAAA,CAEbpoM,KAAMvsC,QAEN7Y,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjB48Q,SAAU,CACR56Q,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGXA,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjB2xB,OAAQqW,QAER9P,SAAU8P,QAEVoM,SAAU,CACRpyC,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGXwzP,OAAQ70O,QAER80O,SAAU90O,QAEVwb,KAAM,CACJxhD,KAAM,CAAC/C,OAAQ+oC,SACf3e,SAAS,GAGX0zP,OAAQ/0O,QAER3T,MAAO,CACLryB,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,YAAa,UAAW,UAAW,SAASjnB,SAASinB,EAC1E,GAGF+R,UAAW1O,SCFP11B,GAAO,SAAC+1B,EAAcjtB,GAC1B,IAAI5C,EACFwkQ,EACAx7P,EACA0rC,EACA1J,EACA13B,GAAU,EACP1Q,IACHA,EAAU,CAAA,GAER,IAsCF,GArCA4hQ,EAjDoB,WAChB,IAAA9vN,EAAY1tB,SAAS8rB,eACvB,IAAC4B,EAAU+vN,WACb,OAAO,WAAY,EAKrB,IAHA,IAAI3kP,EAASkH,SAASunE,cAEhBm2K,EAAkB,GACfvgR,EAAI,EAAGA,EAAIuwD,EAAU+vN,WAAYtgR,IACxCugR,EAAO5zQ,KAAK4jD,EAAUiwN,WAAWxgR,IAI3B,OADQ27B,EAAOmhE,QAAQ8Y,eAExB,IAAA,QACA,IAAA,WACHj6E,EAAO4gE,OACP,MAAA,QAGS5gE,EAAA,KAKb,OADA40B,EAAU3B,kBACH,WACc,UAAT2B,EAAAlrD,MAAoBkrD,EAAU3B,kBAEnC2B,EAAU+vN,YACNC,EAAA1mQ,SAAQ,SAAUgL,GACvB0rC,EAAUE,SAAS5rC,EACrB,IAGF8W,GAAUA,EAAO+yB,QAErB,CAauB+xN,GAEnB57P,EAAQge,SAAS7d,cACjBurC,EAAY1tB,SAAS8rB,gBAEd9H,EAAAhkB,SAASuD,cAAc,SACzBu2C,YAAcjxC,EAEnBmb,EAAKzqB,MAAM25G,IAAM,QAEjBlvF,EAAKzqB,MAAMsW,SAAW,QACtBmU,EAAKzqB,MAAMyK,IAAM,IACjBggB,EAAKzqB,MAAM+8C,KAAO,mBAElBtyB,EAAKzqB,MAAMskP,WAAa,MAExB75N,EAAKzqB,MAAMukP,iBAAmB,OAC9B95N,EAAKzqB,MAAMwkP,WAAa,OACnB/5N,EAAA/jB,iBAAiB,QAAQ,SAAU/+B,GACtCA,EAAE24E,kBACEj+D,EAAQgN,SACV1nB,EAAEwzE,iBACFxzE,EAAE+7F,cAAc+gL,YAChB98Q,EAAE+7F,cAAcsmF,QAAQ3nK,EAAQgN,OAAQigB,IAEtCjtB,EAAQqiQ,SACV/8Q,EAAEwzE,iBACM94D,EAAAqiQ,OAAO/8Q,EAAE+7F,eAErB,IAESj9D,SAAA0B,KAAK8B,YAAYwgB,GAE1BhiC,EAAM2rC,mBAAmB3J,GACzB0J,EAAUE,SAAS5rC,IAEAge,SAASmoB,YAAY,QAEhC,MAAA,IAAIxnB,MAAM,iCAERrU,GAAA,QACHq1B,GACH,IACDnlB,OAAeygE,cAAcsmF,QAAQ3nK,EAAQgN,QAAU,OAAQigB,GAChEjtB,EAAQqiQ,QAAUriQ,EAAQqiQ,OAAQzhP,OAAeygE,eACvC3wE,GAAA,QACHq1B,GACP3oC,EAtGS,SAACA,GACd,IAAMklQ,GAAW,YAAY3/Q,KAAKs8B,UAAUE,WAAa,SAAM,QAAU,KAClE,OAAA/hB,EAAQ1W,QAAQ,gBAAiB47Q,EAC1C,CAmGgBt1P,CAAO,YAAahN,EAAUA,EAAQ5C,QAxG/B,oCAyGVwjB,OAAA2hP,OAAOnlQ,EAAS6vB,EACzB,CACF,CAAE,QACI6kB,IACkC,mBAAzBA,EAAU0wN,YACnB1wN,EAAU0wN,YAAYp8P,GAEtB0rC,EAAU3B,mBAIV/H,GACOhkB,SAAA0B,KAAKgC,YAAYsgB,GAEXw5N,GACnB,CAEO,OAAAlxP,CACT,ECxHe+xP,GAAA,CAEb1uP,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBo0C,SAAU,CACRpyC,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,ukBCbb,IAAAy0P,GAAexiP,kBAAgB,CAC7Bx9B,KAAM,YACNozM,WAAY,CAAEjlC,SAAAA,IACd/lK,MAAOw2B,GACFx2B,CAAAA,EAAAA,IAELq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP6K,EAAiB7Z,GAAe,cAC9BT,EAAiBP,GAAU,cAA3BO,aAEFzH,EAAUtR,EAAAA,UAAS,WAChB3X,OAAAA,EAAMipB,UAAWkX,aAAAA,EAAAA,EAAe,UACzC,IAEM03O,EAAgBlgQ,EAAAA,UAAS,WAC7B,IAAMu2B,EAAWluC,EAAMkuC,SAChB,OAAA1X,GAAA,CACL4iB,IAAK,EACL0+N,YAAY,GACY,WAApBz/Q,EAAO61C,GAAwBA,EAAW,KAElD,IAEM6pO,EAAiBpgQ,EAAAA,UAAS,WAC9B,IAAMu2B,EAAW2pO,EAAc1+Q,MACzB6+Q,EAAM,CACV1uO,SAAUtpC,EAAMkuC,SAAW,SAAW,UACtColC,aAActzE,EAAMkuC,SAAW,WAAa,UAC5CipO,WAAYn3Q,EAAMkuC,SAAW,SAAW,SACxCyd,QAAS,cACTssN,gBAAiB/pO,EAASkL,IAC1B8+N,gBAAiB,YAQZ,OALHt/D,EAASz/M,QACX6+Q,EAAI1uO,SAAW,UACf0uO,EAAIb,WAAa,SACjBa,EAAIrsN,QAAU,WAETqsN,CACT,IACMp/D,EAAW1oL,OAAI,GAEfyrD,EAAW,WAAM,IAAAw8L,EAAAC,EACrBx/D,EAASz/M,OAAQ,EACa,WAA1Bd,EAAO2H,EAAMkuC,YAAsCiqO,QAAfn4Q,GAAAA,EAAAA,EAAMkuC,UAASytC,gBAAf37E,IAAem4Q,GAAfn4Q,EAAAA,KAAAA,GAA0B,KAG9Dq4Q,EAAa,WAAM,IAAAC,EAAAC,EACvB3/D,EAASz/M,OAAQ,EACa,WAA1Bd,EAAO2H,EAAMkuC,YAAsCoqO,QAAft4Q,GAAAA,EAAAA,EAAMkuC,UAASytC,gBAAf37E,IAAes4Q,GAAft4Q,EAAAA,KAAAA,GAA0B,KAG9Dw4Q,EAAuB,WACrB,IA1Dcj7P,EA0DZwa,EAAW8/O,EAAc1+Q,MAAzB4+B,OAEF0gP,EACJ7hP,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACY4Z,EAAe7xC,MAAA,oBAAAouC,QAChBo0C,EAAA9oD,MAAA,oDAAA,CAGRkF,GAAUrH,EAAav3B,MAAMm0B,aAIlCorP,EAAkDb,EAAc1+Q,MAAxD4pK,EAAA21G,EAAA31G,aAAc+0G,EAAYY,EAAZZ,WAAYa,EAAAD,EAAAC,YAC9B,OAAC//D,EAASz/M,OAAS2+Q,EACd/0G,GAAgBA,EAAa95I,QAAA2N,EAAAO,YAAA4uI,GAAAxhI,EAAA2qC,WACpB6zF,EAAc,CAAA95I,QAAS85I,EAAa95I,UAzElC,mBAAA1L,EA0Ebk7P,IA1EalmO,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA0Ebk7P,EACH,CAAAt1P,QAAA,WAAA,MAAA,CADGs1P,EACH,IAEAA,EAGAX,GAAcl/D,EAASz/M,OAASw/Q,EAClC/hP,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OAEc4Z,EAAe7xC,MAAA,oBAAAouC,QAChB8wO,EAAAxlP,MAAA,oDAAA,CAGRnC,EAAav3B,MAAMo0B,oBAPtB,GAaN,OAAO,WACC,IAAEw1I,EAAiB80G,EAAc1+Q,MAA/B4pK,aAEN,OAAAnsI,EAAAA,YAAA,MAAA,CAAA/D,MACS,CACL84B,QAAS,OACTE,WAAY,aACd,CAECk3G,6BAAmCA,EAAa95I,QAAAyjC,UAAA,aAAA,MAA+B91B,EAAAO,YAAA,IAAA,CAAAtE,MACtE7yB,EAAMkuC,SAAW6pO,EAAe5+Q,MAAQ,CAAC,GAAA,CAAI8vB,EAAQ9vB,QAC9Dq/Q,MAIT,IClGF,IAAAI,GAAexjP,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP6K,EAAiB7Z,GAAe,cAC9BT,EAAiBP,GAAU,cAA3BO,aACFmoP,EAAW3oP,OAAI,GACfgT,EAAgBjC,KAEhB63O,EAAqB,SAAAvvN,EAEzBtgC,GACG,IAFDolD,EAAA9kB,EAAA8kB,KAAM79B,EAAW+Y,EAAX/Y,UAAmBuoO,EAAKxvN,EAAA,OAAAstN,EAAAttN,EAAAstN,OAAQD,EAAUrtN,EAAVqtN,SAAUt5N,EAAAiM,EAAAjM,KAAMq5N,EAAOptN,EAAPotN,OAGpDqC,EAAiB/vP,EAErB,SAASqyB,EAAK29N,EAAiBrgK,GAAkC,IAArBhmF,EAAA7zB,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,GAAiB,CAAA,EAC3D,GAAKk6Q,EAAL,CAAa,IArBM17P,EAqBN27P,EACyBF,EAAtCA,EAAApiP,EAAAO,YAAAyhF,EAAA,CAAA/lF,MAA6BD,GAtBV,mBAAArV,EAsBmBy7P,IAtBnBzmO,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAsBmBy7P,kCADzB,CAEf,CASO,OAPP19N,EAAKu7N,EAAQ,UACbv7N,EAAK9K,EAAW,KAChB8K,EAAKy9N,EAAK,OACVz9N,EAAK+yB,EAAM,QACN/yB,GAAS,IAATgC,EAAgB,OAAQA,EAAO,CAAE9pB,MAAO8pB,GAAS,CAAE,GACxDhC,EAAKs7N,EAAU,OACft7N,EAAKq7N,EAAQ,KACNqC,GAGH9+O,EAAYviB,EAAAA,UAAS,WACnB,IAAEwW,EAAoBnuB,EAApBmuB,MAAO6D,EAAahyB,EAAbgyB,SACT+e,EAAS/F,EAAe7xC,MACxBi0B,EAAiB,CAAC2jB,GAMjB,OALH/e,EACG5E,EAAAhqB,KAAA,GAAAguB,OAAQ2f,iBACJ5iB,GAAS,CAAC,UAAW,YAAa,UAAW,UAAW,SAAS3W,SAAS2W,IAC9Ef,EAAAhqB,KAAA,GAAAguB,OAAQ2f,EAAA,MAAA3f,OAAWjD,IAEnBf,CACT,IAEM+rP,EAAcxhQ,EAAAA,UAAS,WAAM,IAAAyhQ,EACzB1C,EAAa12Q,EAAb02Q,SACR,OAAImC,EAAS1/Q,MAAcu3B,EAAav3B,MAAM01B,WACjB,WAApBx2B,EAAOq+Q,GAAqD0C,QAA9BA,EAAO1C,EAAS3zG,oBAATq2G,IAAuBA,OAAvBA,EAAAA,EAAuBnwP,QAC9D,IACT,IAEMA,EAAUtR,EAAAA,UAAS,WAChB3X,OAAAA,EAAMipB,UAAWkX,aAAAA,EAAAA,EAAe,UACzC,IAEMk5O,EAAa,WACX,IAAE3C,EAAa12Q,EAAb02Q,SACR,GAAKA,EAAL,CAEI,IAAAvxP,EAAY0zP,EAAS1/Q,MAAQ,WAAA,OAAAy9B,cAAA+kG,GAAA,KAAA,KAAA,EAAsB,WAAA,OAAA/kG,cAAA0iP,GAAA,KAAA,OACnDC,EAA8B,CAChCprP,MAAO,WAGLopP,EAAS,aAaX,MAZsB,WAApBl/Q,EAAOq+Q,KACLA,EAAS3+O,SAAW8gP,EAAS1/Q,QAC/BgsB,EAAOuxP,EAAS3+O,QAEd2+O,EAAS3zG,eACXw2G,EAAc7C,EAAS3zG,cAEM,mBAApB2zG,EAASa,SAClBA,EAASb,EAASa,SAIpB3gP,cAAAmvI,GAAAxhI,EAAA2qC,WAAcqqM,EAAA,CAAAtwP,QAAsBkwP,EAAYhgR,0DAC/BgsB,EAAAkiB,MAAA,SAAAlZ,MAAA,UAAAmZ,QAAA,OAAAC,QAA6D,SAAC/sC,GAAA,OAAMg/Q,EAAYh/Q,EAAG+8Q,EAAS,GAAA,MAAA,GArBhG,GAkCXiC,EAAc,SAACh/Q,EAAemnL,GAClCnnL,EAAEwzE,iBACFxzE,EAAE24E,kBAEF0lM,EAAS1/Q,OAAQ,EACjB8c,YAAW,WACT4iQ,EAAS1/Q,OAAQ,IAChB,MAEHiT,GAhB6B,iBAAlB6c,EAAQ9vB,MACV8vB,EAAQ9vB,MACNxC,MAAMoB,QAAQkxB,EAAQ9vB,OACxB8vB,EAAQ9vB,MAAM6L,KAAI,SAACkZ,UAAMA,EAAEghB,QAAQ,IAAE72B,KAAK,SADxC,GAeNs5K,SAAAA,KAGP,OAAO,WACC14J,IAAAA,EAAUia,EAAc,UAAW,WACzC,OAAOljC,EAAMkuC,SACXtX,EAAAA,YAAAghP,GAAArzO,EAAAA,WAAcvkC,EAAAA,CAAAA,MAAck6B,EAAU/gC,QAAA,CAAAgqB,QAAA,WAAA,MAAA,CACnC21P,EAAmB94Q,EAAOipB,GAC1BjpB,EAAM02Q,SAAW2C,IAAe,KAAA,IAAAziP,EAAAO,YAAA,OAAA,CAAAN,MAGtBqD,EAAU/gC,OAAA,CACpB2/Q,EAAmB94Q,EAAOipB,GAC1BjpB,EAAM02Q,SAAW2C,IAAe,OAIzC,IC7HF,IAAAI,GAAerkP,kBAAgB,CAC7Bx9B,KAAM,cAENy9B,MAAQ,WACN,IAAMwK,EAAiBU,KACvB,OAAO,WAAM,IAAA8R,EAPA90B,EAQX,OAAAqZ,EAAAO,YAAAyyC,GAAA,KARW,mBAAArsD,EAQX80B,EAAcxS,EAAe,aARlB0S,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,sCAUf,ICJam8P,GAAA,CAEbzwP,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBo0C,SAAU,CACRpyC,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGXipF,MAAO,CACLtwG,KAAM/C,OACNoqB,QAAS,KACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMjnB,SAASinB,EACvD,ICxBJ,IAAAk7O,GAAevkP,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACE,IAAAgrC,EAAiB7Z,GAAe,cAChC+R,EAAgBjC,KAEtB,OAAO,WAAM,IAAAoR,EATU90B,EAUNq7F,EAAQ54G,EAAfosG,MACFnjF,EAAUia,EAAc,UAAW,WAClCljC,OAAAA,EAAMkuC,SACXtX,EAAAA,YAAAghP,GAAArzO,EAAAA,WAAcvkC,EAAAA,CAAAA,MAAcgrC,EAAe7xC,QAbxB,mBAAAokB,EAawB80B,EACxC50B,EAAEA,EAAAze,WAAA,EAAA,CAAA45G,GAAAxnF,OAAAt5B,EAAQmxB,OAdMspB,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,qEAiBhBE,EAAAA,EAAAze,WAAE45G,EAAAA,CAAAA,EAAK,CAAE/hF,MAAOmU,EAAe7xC,QAAMi4B,OAAAt5B,EAAMmxB,OAGpD,mOClBF,IAAA2wP,GAAexkP,kBAAgB,CAC7Bx9B,KAAM,uBACNozM,WAAY,CAAEjlC,SAAAA,IACd/lK,uWAAOw2B,CAAA,CACL3D,MAAO,CACL/2B,KAAMxE,OACN6rB,QAAS,WAAT,MAAgB,EAAC,IAEhBnjB,IAELq1B,eAAMr1B,EAAAA,GAAkB,IAATmgC,EAAAoC,EAAApC,MACP6K,EAAiB7Z,GAAe,cAChClI,EAAUtR,EAAAA,UAAS,WAChB3X,OAAAA,EAAMipB,UAAWkX,aAAAA,EAAAA,EAAe,UACzC,IAEA,OAAO,WACL,OAAOngC,EAAMkuC,SACXtX,EAAAA,YAAAghP,GAAArzO,EAAAA,WAAcvkC,EAAO,CAAA62B,MAAOmU,EAAe7xC,QACxC,CAAAgqB,QAAA,WAAA,MAAA8F,CAAAA,EAAQ9vB,mCAGD6xC,EAAe7xC,OAAQ8vB,CAAAA,EAAQ9vB,QAG/C,ICtBW0gR,GAAalzO,GAAY8yO,IACzB7vM,GAAOjjC,GAAYiyO,IACnBkB,GAAQnzO,GAAYgzO,IACpBI,GAAYpzO,GAAYizO,ICFtBI,GAAA,CAEblsO,MAAO,CACLhyC,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXA,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBqrB,KAAM,CACJrpB,KAAMhC,UAGRmgR,QAAS,CACPn+Q,KAAM9C,OACNmqB,QAAS,GAGX7Q,QAAS,CACPxW,KAAM,CAAC/C,OAAQe,WAGjBq5K,UAAW,CACTr3K,KAAMhC,UAGRq0B,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,MAAO,CAAC,UAAW,OAAQ,UAAW,SAASjnB,SAASinB,EAC1D,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAGjBmyD,QAASnyD,SAETo2M,SAAUp2M,UChCZogR,GAAe9kP,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,ICbIu/B,EDaJgwC,EAAsCp/C,GAAU,SAAxCO,EAAA6+C,EAAA7+C,aAAchM,EAAY6qD,EAAZ7qD,YACtB8oC,EACEpB,GAAc,CACZuB,sBAAuBC,GACvBK,UAAWC,GACXL,sBAAuBC,GACvBC,qBAAsBC,GACtBP,qBAAsBC,KANlBC,EAAuBH,EAAvBG,sBAAuBM,EAAAT,EAAAS,UAAWJ,IAAAA,sBAAuBE,EAAsBP,EAAtBO,qBAAsBN,EAAAD,EAAAC,qBAQjFziB,EAAiB7Z,GAAe,SAChC0O,EAAiBU,KAEjB45O,GCzBF56O,EAAWhP,EAAAA,qBACV,SAAyB6pP,EAAkBC,GAC5C,IAAAC,EAEJ,GAAIz9Q,EAAW0iC,EAASv/B,MAAMo6Q,IACdE,EAAA/6O,EAASv/B,MAAMo6Q,GAAU38P,EAACA,QAC1C,GAAW8hB,EAASY,MAAMi6O,GAExBE,EAAc/6O,EAASY,MAAMi6O,IAAa76O,EAASY,MAAMi6O,GAAU,MAAM,WAChEC,EAAc,CACjB,IAAAvd,EAAYud,EAAa96O,EAASv/B,MAAMmuB,OAC9CmsP,EAAA1jP,EAAAA,YAAAkmO,EAAyB,KAAA,KAC3B,CACO,OAAAwd,IDcDC,EAAWrqP,MAAwB,MAEnCsqP,EAAiBtqP,MAAwB,MAEzCuqP,EAAavqP,MAAI,GAEjBqC,EAAUrC,OAAI,GAEdmrD,EAAYnrD,OAAI,GAchBwqP,EAAc,WACZ,IAAE5sO,EAAU9tC,EAAV8tC,MACJ6sO,EAAe,KAQZ,OANLA,GADY,IAAV7sO,GAA4B,KAAVA,EACpBlX,EAAAA,YAAAq3B,EAA0B,KAAA,MACjB71C,GAAS01B,GACHA,EAEAqsO,EAAgB,UAE1BvjP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACU4Z,EAAe7xC,MAAA,WAAAouC,QAAyBqzO,GACpDD,CAAAA,IAED,MAkBAE,EAAoB,WAAM,IAAAC,EAC1BC,GAEJA,EAAiBl7O,EAAe,cAE9Bk7O,EAAiBl7O,EAAe,YAElC,IAAMm7O,EAAgBjjR,EAAQgjR,GAAmBA,EAA0CvkR,OAAS,EAC9FykR,EAAcj7Q,EAAMi6Q,QAAU,GAAKj6Q,EAAMi6Q,QAAUe,EACnD/jP,EAAgC6jP,QAAtBA,EAAAN,EAAerhR,aAAO2hR,IAAAA,WAAAA,EAAtBA,EAAsB57O,SAAS,UAAoB,IAAA47O,OAAA,EAAnDA,EAAmD5xO,aAYnE,OAXI+xO,GAAe5/L,EAAUliF,OAE3B4hR,EAAkBA,EAA0CrjR,MAAM,EAAGsI,EAAMi6Q,SAC3EhjP,IAAWujP,EAAerhR,MAAM05B,MAAMoE,OAAA,GAAA7F,OAAYqpP,EAAWthR,cACpD8hR,GAGNhkP,IAAAujP,EAAerhR,MAAM05B,MAAMoE,OAAA7F,GAAAA,OAAY6F,GAAU+jP,EAAgBh7Q,EAAMi6Q,SAAWQ,EAAWthR,MAAA,OAIlGy9B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,2BAA2BqhR,GAAA,CACtDS,EACIF,EAAyC/1Q,KAAI,SAACikB,GAAA,OAAA2N,EAAAO,wBAAkBlO,GAAc,IAC/E8xP,EACHE,EAAArkP,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEa4Z,EAAe7xC,MAAA,cAAAouC,QAChB,WACG8zC,EAAAliF,OAASkiF,EAAUliF,KAC/B,GAAA,CAECkiF,EAAUliF,MAAQu3B,EAAav3B,MAAMm0B,WAAaoD,EAAav3B,MAAMo0B,eAEtE,QAYJqtP,EAAc,SAACpgR,GAAkB,IAAA8zD,EAC/B,QAANtuD,EAAAA,EAAMisD,eAAA,IAAAqC,GAANtuD,EAAAA,KAAAA,EAAgB,CAAExF,EAAAA,IAClB6/B,GAASkgP,EAASphR,MAAA,GAAAi4B,OAAU4Z,EAAe7xC,MAAgB,eAGvD+hR,EAAiB,SAAC1gR,GAChB,IAEkD46M,EAFlD+lE,EAAqB3gR,EAAEw4B,SAAWunP,EAASphR,MAE1B,YAAnBqB,EAAE4gR,cAA8BD,IAClC5oP,EAAQp5B,OAAQ,EACV,QAAN6G,EAAAA,EAAMkwM,gBAAA,IAAAkF,GAANp1M,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,MAYvB,OARA+6B,EAAAA,WAAU,WACL8D,GAAAkhP,EAASphR,MAAO,gBAAiB+hR,GACzBT,EAAAthR,MAAQqhR,EAAerhR,MAAM+vC,YAC1C,IACAsI,EAAAA,iBAAgB,WACV5X,GAAA2gP,EAASphR,MAAO,gBAAiB+hR,EACvC,IAEO,WAAA,OAAAtkP,EAAAA,YAAA,MAAA,CAAA1G,IAEEqqP,QACE,CAAAnpP,GAAAA,OACF4Z,EAAe7xC,OAAAi4B,GAAAA,OACf4Z,EAAe7xC,YAAAi4B,OAAUpxB,EAAMmuB,OAAAl1B,EAAA,CAAA,EAAA,GAAAm4B,OAE5B1M,EAAYvrB,MAAA,eAAqBo5B,EAAQp5B,SAIhDy1D,EApHG0rN,EAAcH,EAAgB,OAPlB,CAChB10P,KAAMgoC,EACN7nC,QAAS+nC,EACTjoC,QAASmoC,EACT37B,MAAO27B,EACPgB,SAAUd,IAGLusN,EAAA1jP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAA6B4Z,EAAe7xC,MAAA,WAAgBmhR,CAAAA,IAAqB,MA2ExF1jP,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,cAAA,EAvD1BgpQ,EAAetiO,EAAe,SAC7BsiO,EAAevrO,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,YAAA,CAAgB,IAAEgpQ,IAAsB,OAItFkZ,EAAmBx7O,EAAe,aACxCjJ,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,cAAA,CAC3B0hR,IACAQ,EAAAzkP,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAkC4Z,EAAe7xC,MAAA,gBAAqBkiR,CAAAA,IAA0B,UAuFlGX,MA3CiB,IAhDdW,EALAlZ,EAtBAmY,EAyHV,IExKWgB,GAAQ30O,GAAYuzO,ICAlBqB,GAAA,CAEbz2P,OAAQ,CACNhpB,KAAM,CAAC/C,OAAQe,WAGjBkhC,KAAM,CACJl/B,KAAM,CAAC/C,OAAQe,WAGjB01M,UAAW,CACT1zM,KAAM,CAAC/C,OAAQzB,OAAQwC,WAGzBkyD,SAAU,CACRlwD,KAAM,CAAC/C,OAAQ+oC,QAAShoC,WAG1BwrB,kBAAmB,CACjBxpB,KAAMgmC,QACN3e,aAAS,GAGXoC,oBAAqB,CACnBzpB,KAAMgmC,QACN3e,aAAS,GAGXssL,WAAY,CACV3zM,KAAM,CAAC/C,OAAQzB,OAAQwC,WAGzBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBsuE,eAAgBtmC,QAEhB05O,gBAAiB,CACf1/Q,KAAM/C,OACNoqB,QAAS,IAGXmtJ,OAAQ,CACNx0K,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXqkL,OAAQ,CACN1rM,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,SAAS,GAGXy6D,KAAM97C,QAEN86C,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,QAAQjnB,SAASinB,EACtC,GAGFiuB,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,MAAO,UAAUjnB,SAASinB,EACrD,GAGFwD,qBAAsB,CACpBnmC,KAAMgmC,QACN3e,SAAS,GAGX2sL,sBAAuBhuK,QAEvBI,YAAa,CACXpmC,KAAMgmC,QACN3e,SAAS,GAGX5e,KAAM,CACJzI,KAAM/C,OACNoqB,aAAS,GAGXs4P,cAAe,CACb3/Q,KAAM,CAACgmC,QAASxqC,QAChB6rB,SAAS,GAGXoP,QAASuP,QAETM,OAAQ,CACNtmC,KAAM9C,QAGR+2M,cAAej2M,SAEfk2M,aAAcl2M,SAEdm2M,SAAUn2M,SAEVmyD,QAASnyD,SAEToyD,gBAAiBpyD,SAEjBwhJ,UAAWxhJ,SAEXq2M,aAAcr2M,SAEdgvE,eAAgBhvE,SAEhB4hR,cAAe5hR,UC1FjB,SAAS6hR,GAAcp3Q,EAAcwQ,EAAazU,GAChD,OAAOD,KAAK0U,IAAI1U,KAAKC,IAAIiE,EAAMwQ,GAAMzU,EACvC,CCjCa,IAAAwsM,GAAU,SAAC9sM,GAEhB,IAAA47Q,EAAiB1rP,OAAI,GACrB2rP,EAAmB3rP,MAAY,MAU/B4rP,EAAgB,WACXxiP,SAAAO,oBAAoB,UAAWiiP,GAAe,GAC9CxiP,SAAAO,oBAAoB,YAAakiP,GAAiB,GAC3DH,EAAeziR,OAAQ,GAGnB4iR,EAAkB,SAACvhR,GAAkB,IAAAwhR,EDhB3CP,EACAQ,ECiBUz8P,EAAShlB,EAATglB,EAAG5B,EAAMpjB,EAANojB,EACL64D,EAAYn9C,SAASkC,gBAAgB06B,aACrCsa,EAAWl3C,SAASkC,gBAAgBe,YAIpCj8B,EAA0B,SAApBN,EAAM0sD,WAA4C,UAApB1sD,EAAM0sD,UAAwB8jB,EAAWiG,EAE7E1hE,GAA0B,SAApB/U,EAAM0sD,WAAwB1sD,EAAM0sD,UAJ5B,GAKpBwvN,GD3BFT,EC2BgFz7Q,EAAMy7Q,cD1BtFQ,EC0BqG,CAAE37Q,IAAAA,EAAKyU,IAAAA,GDxB/E,kBAAlB0mQ,EACF,CACLU,mBAAoBV,EACpBn7Q,IAAK27Q,EAAM37Q,IACXyU,IAAKknQ,EAAMlnQ,KAIR,CACLonQ,oBAAoB,EACpB77Q,IAAKm7Q,EAAcn7Q,IACnByU,IAAK0mQ,EAAc1mQ,MCacqnQ,EAAAF,EAAL57Q,IAAoB+7Q,EAAAH,EAALnnQ,IAGvC,GAHImnQ,EAAAC,oBAGoBP,EAAeziR,MAAvC,CAEE,IAAAmjR,EDAM,SAAa5vN,EAAsBs3C,GACjD,IACIs4K,EADI98P,EAAwCwkF,EAAxCxkF,EAAG5B,EAAqComF,EAArCpmF,EAAGtd,EAAkC0jG,EAAlC1jG,IAAKyU,EAA6BivF,EAA7BjvF,IAAKy7D,EAAwBwzB,EAAxBxzB,SAAUiG,EAAcutB,EAAdvtB,UAE1B,OAAA/pB,GACD,IAAA,QAIH4vN,EAAWX,GAAcnrM,EAAWhxD,EAAGzK,EAAKzU,GAC5C,MACG,IAAA,OAGQg8Q,EAAAX,GAAcn8P,EAAGzK,EAAKzU,GACjC,MACG,IAAA,MAOQg8Q,EAAAX,GAAc/9P,EAAG7I,EAAKzU,GACjC,MACG,IAAA,SAOHg8Q,EAAWX,GAAcllM,EAAY74D,EAAG7I,EAAKzU,GAC7C,MAAA,QAGO,OAAAg8Q,EAEJ,OAAAA,CACT,CCtCqBC,CAAav8Q,EAAM0sD,UAAW,CAC7CltC,EAAAA,EACA5B,EAAAA,EACA4yD,SAAAA,EACAiG,UAAAA,EACAn2E,IAAK87Q,EACLrnQ,IAAKsnQ,SAGiB,IAAbC,IAEXT,EAAiB1iR,gBAAWmjR,EAAA,MACN,QAAtBN,EAAAh8Q,EAAM07Q,qBAAgB,IAAAM,GAAtBA,EAAAvkR,KAAAuI,EAAsB,CACpBxF,EAAAA,EACA+J,KAAM+3Q,IAhB0C,GAoB9CE,EAAsB7kQ,EAAAA,UAAS,WAEnC,IAAM8kQ,EAAe,CAAC,QAAS,QAAQjlQ,SAASxX,EAAM0sD,WAO/C,OAAAzzD,EAAAA,EAAAA,EAAAA,EAAA,CACLmpC,OAAQ,EACR+G,SAAU,WACV1S,WAAY,eATM,CAClB8G,KAAM,QACNE,MAAO,OACPH,IAAK,SACLE,OAAQ,OAMKx9B,EAAM0sD,WAAa,GACzB+vN,QAAAA,EAAe,OAAS,QAAA,SACvBA,EAAe,OAAS,QAAA,SACxBA,EAAe,aAAe,aAE1C,IAEMC,EAAiB/kQ,EAAAA,UAAiB,WAAA,OAAOikQ,EAAeziR,MAAQ,CAAEk+Q,WAAY,QAAW,MAExF,MAAA,CACLwE,iBAAAA,EACAc,WAxEiB,SAACniR,GAClBA,EAAE24E,kBAEO75C,SAAAC,iBAAiB,UAAWuiP,GAAe,GAC3CxiP,SAAAC,iBAAiB,YAAawiP,GAAiB,GACxDH,EAAeziR,OAAQ,GAoEvBqjR,oBAAAA,EACAE,eAAAA,EAEJ,qkBCvEA,IAAIlkR,GAAM,EAEVokR,GAAexnP,kBAAgB,CAC7Bx9B,KAAM,UACN0qC,cAAc,EACdtiC,MAAAA,GACA0wC,MAAO,CAAC,kBACRrb,eAAMr1B,EAAOsqC,GACL,IAAAuyO,EAAwB3sP,OAAI,GAC5Bm6G,EAAYn6G,OAAI,GAChBsjL,EAAUtjL,EAAAA,MACV4sP,EAAa5sP,EAAAA,MACXQ,EAAiBP,GAAU,UAA3BO,aACAu9B,EAAc7B,GAAc,CAAE6B,UAAWC,KAAzCD,UACFpuB,EAAiBU,KACjB2C,EAAgBjC,KAChB+J,EAAiB7Z,GAAe,UACtC08K,EAA8Ef,GAAQ9sM,GAA9E67Q,EAAkBhuE,EAAlBguE,iBAAkBc,EAAA9uE,EAAA8uE,WAAYH,IAAAA,oBAAqBE,EAAe7uE,EAAf6uE,eACrDhpE,EAAkB/7L,EAAAA,UAAS,WAAA,OAAM3X,EAAMuyB,WACvCuhL,EAAY5jL,OAAI,GAGhBmT,EAAkB9B,IAAY,WAAA,OAAMvhC,EAAM8kB,UAS1CqtL,EAAkC9B,GAAU,CAAEO,iBAP3B,SAACp2M,GAAkB,IAAA8vJ,EACpC,QAANtqJ,EAAAA,EAAMs7I,iBAAA,IAAAgP,GAANtqJ,EAAAA,KAAAA,EAAkB,CAAExF,EAAAA,KAMgDw2M,gBAJ9C,SAACx2M,GAAkB,IAAA84M,EACnC,QAANtzM,EAAAA,EAAMiwM,gBAAA,IAAAqD,GAANtzM,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,IACnBuiR,EAAY,CAAEx4N,QAAS,SAAU/pD,EAAAA,OAE3Bi2M,IAAAA,cAAeK,EAAaqB,EAAbrB,aACjBksE,EAAY9sP,MAAwB,MACpC+sP,EAAgBtlQ,EAAAA,UAAS,WAAA,MAAM,CACnCqzB,EAAe7xC,MAAA,GAAAi4B,OACZ4Z,EAAe7xC,MAAA,MAAAi4B,OAAUpxB,EAAM0sD,WAAAzzD,EAAAA,EAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAE5B4Z,EAAe7xC,gBAAgBkxI,EAAUlxI,OAAA,GAAAi4B,OACzC4Z,EAAe7xC,MAAA,YAAkB6G,EAAM8vM,uBAAA,GAAA1+K,OACvC4Z,EAAe7xC,MAAA,mBAAyB6G,EAAMkiC,aAEpDliC,EAAMw7Q,oBAGFz+E,EAAYplL,EAAAA,UAAS,WAAM,IAAAw0N,EAC/B,GAAI0vC,EAAiB1iR,MAAO,OAAO0iR,EAAiB1iR,MACpD,IAAMoL,EAAqB,QAAdvE,EAAAA,EAAMuE,YAAQ,IAAA4nO,EAAAA,EAAAz7M,EAAav3B,MAAMoL,KACxC24Q,EAAc//N,MAAMnkD,OAAOuL,IAASA,YAAUA,EAAA,MAElD,MAAA,CACEgtB,MAAO,QACPC,OAAQ,QACRC,MAAO,SACPltB,IAAS24Q,CAEf,IACMC,EAAgBxlQ,EAAAA,UAAS,WAAA,MAAO,CACpClX,UAAW4pI,EAAUlxI,MAAQ,qBAAkB,EAC/C69B,MAAO,CAAC,OAAQ,SAASxf,SAASxX,EAAM0sD,WAAaqwI,EAAU5jM,MAAQ,GACvE89B,OAAQ,CAAC,MAAO,UAAUzf,SAASxX,EAAM0sD,WAAaqwI,EAAU5jM,MAAQ,GACxE,IAEIikR,EAAiBzlQ,EAAAA,UAAS,WAAA,MAAM,IAAAyZ,OACjC4Z,EAAe7xC,8BAAAi4B,OACf4Z,EAAe7xC,MAAAi4B,uBAAAA,OAA2BpxB,EAAM0sD,eAG/CxuB,EAAavmB,EAAAA,UAAsB,WAAA,IAAA0lQ,EAAA,eAAAA,EAAML,EAAU7jR,0BAAVkkR,EAAiBn/O,cAE1Do/O,EAAmB3lQ,EAAAA,UAAiB,WAAA,MAAM,CAAC3X,EAAM48E,KAAM58E,EAAM0sD,WAAWrkD,UACxEk1Q,EAAc5lQ,EAAAA,UAAS,WAAA,MAAO,CAClCg0C,QAAS,OACT6xN,eAAoC,UAApBx9Q,EAAM0sD,UAAwB,aAAe,WAC7D,IAEI+wN,EAAmB,SAACjjR,GAAqB,IAAAm6M,EAM3CD,GAJ4BC,QAA3B30M,EAAAA,EAAMslB,yBAAqBqvL,IAAAA,EAAAA,EAAAjkL,EAAav3B,MAAMmsB,oBACrC,WAAV9qB,EAAEhC,KACF6xI,EAAUlxI,OACV0zM,MAEM,QAAN7sM,EAAAA,EAAMmwM,oBAAA,IAAAuE,GAAN10M,EAAAA,KAAAA,EAAqB,CAAExF,EAAAA,IACvBuiR,EAAY,CAAEx4N,QAAS,MAAO/pD,EAAAA,IAE9BA,EAAEo6M,6BAIA8oE,EAAe,WACnBnnQ,aAAaumQ,EAAW3jR,OACb2jR,EAAA3jR,MAAQ8c,YAAW,WAAM,IAAA0nQ,EAAAC,EACnBD,QAAfA,EAAAnqE,EAAQr6M,aAAOwkR,IAAAA,WAAAA,EAAfA,EAAez/O,kBAAA,IAAAy/O,GAA0B,QAA1BC,EAAfD,EAA2B3gP,mBAA3B4gP,IAAyCA,GAAzCA,EAAAnmR,KAAAkmR,EAAyCnqE,EAAQr6M,OACjDq6M,EAAQr6M,MAAQ,OACf,KACHq8B,EAAAA,UAAS,WAAM,IAAAqoP,EAAAC,UACbD,EAAAb,EAAU7jR,8BAAV0kR,EAAiB14N,aAAQ,IAAA24N,GAAzBA,EAAArmR,KAAAomR,EACF,KA+DMhxE,EAA0BF,GAAgB,SAAU,CAC1Dp6K,QAASmhL,IADH7G,sBAIRnrK,EAAAA,MAAM47O,GAjDiB,WACF,SAAft9Q,EAAM48E,MACVpnD,EAAAA,UAAS,WACF0I,EAAW/kC,QACL+kC,EAAA/kC,MAAM05B,MAAMsjL,QAAU,8DACnC,MA4CsC,CAAEnrJ,WAAW,IAE/C,IAyBA+yN,EAAmB,WAEpB/9Q,EAAM8vM,wBACP9vM,EAAMiiC,uBACNooG,EAAUlxI,QACT26M,EAAU36M,OAAU6G,EAAM49E,OAEtB41H,EAAQr6M,OAlGK,WACpB,GAAKq6M,EAAQr6M,MAAb,CACA,IACMsjC,EADe3G,OAAO6H,WAAarE,SAASkC,gBAAgBe,YAC/B20K,KAAsB,EACjDsC,EAAAr6M,MAAQmgC,SAASuD,cAAc,SAC/B22K,EAAAr6M,MAAMsvC,QAAQvQ,GAAK,aAAA9G,QAAc,IAAI7yB,iBAAW/F,IAAO,GAC/Dg7M,EAAQr6M,MAAM41M,UAAY39K,0IAAAA,OAIL,SAAfpxB,EAAM48E,KAAkB,GAAA,sBAAAxrD,OAA2BqL,UAAA,sBATrC,EAkGFuhP,GAEZxqE,EAAQr6M,QAAUmgC,SAASgmK,KAAKnlK,SAASq5K,EAAQr6M,QAC1CmgC,SAAAgmK,KAAKxiK,YAAY02K,EAAQr6M,SAKxCuoC,EAAAA,OACE,WAAA,OAAM1hC,EAAMuyB,OACZ,IAAA,SAACp5B,GACK,IAAAigC,GAAA,CACO,IAAA27K,EAGJE,EAHP,GAAI97M,EACe4kR,IACI,QAArB/9Q,EAAAA,EAAMgwM,oBAAe,IAAA+E,GAArB/0M,EAAAA,KAAAA,QAEa09Q,IACS,QAAtB19Q,EAAAA,EAAM+vM,qBAAgB,IAAAkF,GAAtBj1M,EAAAA,KAAAA,IAlDqB,SAAC7G,GAK1B,GAJIA,IACF26M,EAAU36M,OAAQ,IAGhB6G,EAAMooE,eAWN,OAAAy0M,EAAsB1jR,OAASA,GACjC0jR,EAAsB1jR,OAAQ,OACnB8c,YAAA,WAAA,OAAOo0H,EAAUlxI,OAAQ,WAI3B8c,YAAA,WAAA,OAAOo0H,EAAUlxI,MAAQA,KAhB9BA,GACF0jR,EAAsB1jR,OAAQ,EACnB8c,YAAA,WAAA,OAAOo0H,EAAUlxI,OAAQ,OAEpCkxI,EAAUlxI,OAAQ,EAClB8c,YAAW,WAAA,OAAO4mQ,EAAsB1jR,OAAQ,CAAA,GAAO,MA0CzD8kR,CAAmB9kR,EATL,CAUhB,GACA,CAAE6xD,WAAW,IAGT,IAAAkzN,EAAsB,SAAC1jR,GAAkB,IAAA+zD,EACvC,QAANvuD,EAAAA,EAAMksD,uBAAA,IAAAqC,GAANvuD,EAAAA,KAAAA,EAAwB,CAAExF,EAAAA,IAC1BuiR,EAAY,CAAEx4N,QAAS,YAAa/pD,EAAAA,KAEhC2jR,EAAqB,SAAC3jR,GAAkB,IAAAuzE,EAAA+mI,EACtC,QAAN90M,EAAAA,EAAM8oE,sBAAA,IAAAiF,GAAN/tE,EAAAA,KAAAA,EAAuB,CAAExF,EAAAA,KACfs6M,QAAVA,EAAI90M,EAAMulB,2BAAAuvL,IAAAA,EAAAA,EAAuBpkL,EAAav3B,MAAMosB,sBAClDw3P,EAAY,CAAEx4N,QAAS,UAAW/pD,EAAAA,KAIhCuiR,EAAc,SAAC19O,GAA+B,IAAAivB,UAClDtuD,EAAAA,EAAMisD,eAANjsD,OAAAA,EAAAA,KAAAA,EAAgBq/B,GACRiL,EAAAqG,KAAK,kBAAkB,IAGjCm0B,EAAAA,WApHuB,WACrB,GAAK5mC,EAAW/kC,OAAwB,SAAf6G,EAAM48E,KAA/B,CACA,IAAMwhM,EAAkB,CACtB7gP,KAAM,CAAE3lC,KAAM,cAAeuB,MAAO4jM,EAAU5jM,OAC9CskC,MAAO,CAAE7lC,KAAM,eAAgBuB,MAAOi4B,IAAAA,OAAI2rK,EAAU5jM,QACpDmkC,IAAK,CAAE1lC,KAAM,aAAcuB,MAAO4jM,EAAU5jM,OAC5CqkC,OAAQ,CAAE5lC,KAAM,gBAAiBuB,MAAOi4B,IAAAA,OAAI2rK,EAAU5jM,SACtD6G,EAAM0sD,WACJ29E,EAAUlxI,MACZ+kC,EAAW/kC,MAAM05B,MAAMwrP,YAAYD,EAAgBxmR,KAAMwmR,EAAgBjlR,OAEzE+kC,EAAW/kC,MAAM05B,MAAMyrP,eAAeF,EAAgBxmR,KAVR,KAqHlD29B,EAAAA,WAAU,WACSwoP,IACVjoP,OAAAyD,iBAAiB,UAAWkkP,EACrC,IAEAjsO,EAAAA,iBAAgB,WACDksO,IACN5nP,OAAA+D,oBAAoB,UAAW4jP,EACxC,IAEM,IAAApoE,EAAe19L,EAAAA,UAAS,WACxB,OAACm8L,EAAU36M,MAGNkxI,EAAUlxI,QAAU0jR,EAAsB1jR,OAFzC6G,EAAM49E,IAIlB,IAEA,OAAO,WACL,GAAKy3H,EAAal8M,MAAlB,CAEM,IA1HAs2M,EAKAD,EAqHAx0K,EAAOkI,EAAc,OAAQ,WAC7Bq7O,EAAgB1+O,EAAe,UAC/BizK,GA5HArD,EAAagB,EAAc,CAC/BhB,WAAYzvM,EAAMyvM,WAClBiB,cAAehgL,EAAav3B,MAAM2vB,QAClCsR,UAAAhJ,GAAAA,OAAc4Z,EAAe7xC,MAAA,eAEzBq2M,EAAYsB,EAAa,CAC7BtB,UAAWxvM,EAAMwvM,UACjBuB,aAAcrgL,EAAav3B,MAAMqd,OACjC4jB,UAAAhJ,GAAAA,OAAc4Z,EAAe7xC,MAAA,cAG7By9B,EAAAA,YAAA,MAAA,CAAA/D,MAAY0qP,EAAYpkR,OACrB6G,CAAoB,UAApBA,EAAM0sD,UAAwB+iJ,EAAa,KAC3CD,EACoB,UAApBxvM,EAAM0sD,UAAwB+iJ,EAAa,QAgHhD,OAAA74K,EAAAA,YAAA0N,EAAAA,SAAA,CAAAtS,UACuBhyB,EAAM8kB,SAAWue,EAAgBlqC,MAAOu6B,GAAI2P,EAAgBlqC,OAAA,CAAAgqB,QAAA,WAAA,MAAAyT,CAAAA,EAAAA,kBAAA2N,aAAA,CAAArU,IAExE8sP,EAAAnmP,MACEomP,EAAc9jR,MACrB05B,MAAO,CAAEuP,OAAQpiC,EAAMoiC,QACvB6sD,UAAWwuL,EACX/xO,SAAU,GACNpB,EAAQ9H,OAAA,CAEXxiC,EAAMkiC,kDAA8B8I,EAAe7xC,MAAe,UAAAouC,QAAS42O,GAAoB,MAAAvnP,EAAAO,YAAA,MAAA,CAAAN,MACpFumP,EAAejkR,MAAO05B,MAAA2D,GAAAA,GAAY2mP,CAAAA,EAAAA,EAAchkR,OAAUujR,EAAevjR,QAClFolR,CAAAA,GAAA3nP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAgC4Z,EAAe7xC,MAAA,aAAA,CAAkBolR,IACjEv+Q,EAAMgsD,UACLp1B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,eAAAouC,QAA6B22O,GACxDr+O,CAAAA,EAAe,WAAYjJ,EAAAA,YAAAq3B,EAAa,KAAA,SAD1Cr3B,EAAAA,YAAA,MAAA,CAAAC,MAIS,IAAAzF,OAAI4Z,EAAe7xC,gBAAe,qBAAsB,CAAA6hC,IACnEh7B,EAAMswK,QAAA15I,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACU4Z,EAAe7xC,MAAA,aAAA,CAAkB0mC,EAAe,SAAUizK,KAE1E9yM,EAAMy7Q,0CAA6Be,EAAoBrjR,MAAA8+F,YAAoB0kL,GAAY,UAAA,GA5BvE,EAkC7B,ukBChTF,IAAM6B,GAA6B,SAACx+Q,GAC5B,IAAAkV,EAAAshB,GAAA,CAAA,EAAex2B,GACfmwD,EAAU72B,SAASuD,cAAc,OACjCtK,EAAUrC,OAAI,GACZ2C,EAAU3d,EAAV2d,MAEF4rP,EAAc,SAAC5rP,GACfA,IACDs9B,EAAQ+lJ,kBAAkCrjL,MAAMsjL,SAAWtjL,IAI1D+R,EAAYxP,EAAAA,gBAAgB,CAChCC,eAAMr1B,EAAAA,GAAmB,IAAV0gD,EAAAne,EAAAme,OACPg+N,EAAgBxuP,MAAyBhb,GAC/CqgB,EAAAA,WAAU,WACRhD,EAAQp5B,OAAQ,EACfmgC,SAASunE,cAA8B7N,OACxCx9D,EAAAA,UAAS,WACPipP,EAAY5rP,EACd,GACF,IAYA,OAJO6tB,EAAA,CACLoiB,OARa,SAAC0tI,GACdkuE,EAAcvlR,MAAQq9B,GAAAA,GACjBthB,CAAAA,EAAAA,GACAs7L,MAQA,WAAM,IAAAmuE,EACL1yN,EACJ/2C,EAAQ+2C,SACR,WACE15B,EAAQp5B,OAAQ,GAGpB,cADO+b,EAAQ2d,MACRpV,IAAEmhQ,GAAiBpoP,GAAA,CACxBy1B,QAAAA,EACA15B,QAASA,EAAQp5B,MACjBqiR,gBAAsCmD,QAAtCA,EAAiBD,EAAcvlR,aAAdwlR,IAAqBA,OAArBA,EAAAA,EAAqBvkP,WACnCskP,EAAcvlR,QAGvB,IAEI0lR,EAAkB35O,YAAUN,GAC5Bre,EAASs4P,EAAgB15O,MAAMgrB,GAU/Bj1B,EAAYR,GAAUxlB,EAAQ4P,QAuB7B,OAtBHoW,EACFA,EAAU4B,YAAYqzB,GAEtB9qB,QAAQnT,MAAM,uBAGmB,CACjC66C,KAAM,WACJx6C,EAAQp5B,OAAQ,CAClB,EACAmsC,KAAM,WACJ/S,EAAQp5B,OAAQ,CAClB,EACA2pE,OAAQ,SAAC0tI,GAEPjqL,EAAOu8C,OAAO5oD,GAAKs2L,EAAY,CAAC,WAChCiuE,EAAYjuE,EAAW39K,MACzB,EACA0yB,QAAS,WA1BThzB,EAAQp5B,OAAQ,EAChB8c,YAAW,WACT4oQ,EAAgBt5O,UAChB4qB,EAAQx0C,WACP,IAwBH,EAGJ,EAIamjQ,GAAeN,GAE5BM,GAAan5O,QAAU,SAACV,GAClBA,EAAAW,OAAOC,iBAAiBk5O,QAAUP,EACxC,MCzFaQ,GAASr4O,GAAYi2O,ICAnBqC,GAAA,CAEbC,QAAS,CACPpjR,KAAMhC,UAGR8f,QAAS,CACP9d,KAAM9C,OACNmqB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAM9C,OACNmqB,aAAS,GAGX2yG,eAAgB,CACdh6H,KAAM9C,QAGRk1B,kBAAmB,CACjBpyB,KAAMxE,QAGR6nR,YAAar9O,QAEbs9O,SAAUt9O,QAEVu9O,SAAUv9O,QAEVw9O,iBAAkB,CAChBxjR,KAAM9C,OACNmqB,QAAS,GAGXy5D,KAAM,CACJ9gF,KAAM/C,OACNoqB,QAAS,QACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,QAAS,UAAUjnB,SAASinB,EACtC,GAGFrQ,gBAAiB,CACftyB,KAAMxE,QAGRg3B,gBAAiB,CACfxyB,KAAMxE,QAGR4qC,YAAa,CACXpmC,KAAMgmC,QACN3e,SAAS,GAGXkL,gBAAiB,CACfvyB,KAAMxE,QAGRqvB,MAAO,CACL7qB,KAAMnF,OAGRyrC,OAAQ,CACNtmC,KAAM9C,OACNmqB,QAAS,QAGXmlC,SAAUxuD,SAEVkzD,SAAUlzD,SAEVylR,gBAAiBzlR,SAEjB0lR,gBAAiB1lR,SAEjB2lR,OAAQ3lR,UCjEH,SAAS4lR,GAA0BlmP,GAClC,IAAAxf,EApBD,SAAyBwf,GAC1B,IAAA3G,EAAQiD,OAAOE,iBAAiBwD,GAC9BmmP,EAAyC,aAAnB9sP,EAAMsW,SAC5By2O,EAAgB,gBAEtB,GAAuB,UAAnB/sP,EAAMsW,SAAsB,OAAO7P,SAAS0B,KAEvC,IAAA,IAAAhhB,EAASwf,EAASxf,EAAOozD,eAG5B,GAFJpzD,EAASA,EAAOozD,cACRv6C,EAAAiD,OAAOE,iBAAiBhc,KAC5B2lQ,GAA0C,WAAnB9sP,EAAMsW,WAG7By2O,EAAc/nR,KAAKg7B,EAAMyW,SAAWzW,EAAM2lC,UAAY3lC,EAAM0lC,WAAmB,OAAAv+C,EAGrF,OAAOsf,SAAS0B,IAClB,CAGiBy9B,CAAgBj/B,GAC3Bxf,IAAWsf,SAAS0B,OAEpBiC,GAAkBzD,EAASxf,KACxBA,EAAA+hB,UAAYvC,EAAQklB,UAAY1kC,EAAO0kC,WAChD,CCzBO,SAASmhO,GAAY3iP,GACpB,IAAAC,EAAOD,EAAIE,wBAEb,IAACH,GAAkBC,GAAM,CACrB,IAAA4iP,E7qB2WH,WACD,QAAsB,IAAtBhqP,OAAO6H,WACT,MAAO,CAAE3G,MAAOlB,OAAO6H,WAAY1G,OAAQnB,OAAO4H,aAEpD,IAAMqiP,EAAMzmP,SAASkC,gBACrB,MAAO,CAAExE,MAAO+oP,EAAIxjP,YAAatF,OAAQ8oP,EAAI7pN,aAC/C,C6qBjXsB8pN,GAAgB/oP,OAEzBwE,GAAA0B,EAAKG,KAAOwiP,EAAY,EAAI3iP,EAAKlG,OAAS,GAAI,CAAA,EAQzD,CACF,CCHA,IAAAgpP,GAAe7qP,kBAAgB,CAC7Bx9B,KAAM,SACNoI,MAAAA,GACAq1B,eAAMr1B,EAAqBsqC,GACzB,IAAMzK,EAAiBU,KACjByK,EAAiB7Z,GAAe,SAChC+uP,EAAa/uP,GAAe,eAC1BT,EAAiBP,GAAU,SAA3BO,aAEFq7C,EAA0E7nC,EAAAA,OAAOlkC,GAA/E4Z,EAASmyD,EAATnyD,QAASorD,EAAA+G,EAAA/G,WAAYm6M,EAAapzM,EAAbozM,YAAaC,EAAArzM,EAAAqzM,SAAUC,IAAAA,SAAU14P,EAAOolD,EAAPplD,MAAOyb,EAAA2pC,EAAA3pC,OAOrE4pC,EAAArvD,GANwCooD,GACtCnrD,EACAorD,EACAhlE,EAAM81H,eACN91H,EAAMsoD,SACN,WACF,GANOyuE,EAAc/qD,EAAA,GAAAgrD,EAAehrD,EAAA,GAS9Bm0M,EAAkBjwP,EAAAA,MAElBkwP,EAAoBlwP,EAAAA,MAEpBmwP,EAAoBnwP,EAAAA,MAEpBowP,EAA2BpwP,EAAAA,MAE3BqwP,EAAmBrwP,EAAAA,MAEnBswP,EAAmBtwP,EAAAA,MAEnBuwP,EAAkBvwP,EAAAA,MAElBq1G,EAAUr1G,OAAa,GAEvBwwP,EAAa/oQ,EAAAA,UAAS,WAAA,OAAMgP,EAAMxtB,MAAM3C,UAExCmqR,EAAkBhpQ,EAAAA,UAAoB,WAAA,OAAMgP,EAAMxtB,MAAM49H,EAAa59H,UAErEynR,EAAUjpQ,EAAAA,UAAS,WAAA,MAAuC,UAAjCkpQ,EAAqB,WAE9CC,EAAoBnpQ,EAAAA,UAAS,WAAA,OAAMsmB,GAAQqiP,EAAyBnnR,OAASmgC,SAAS0B,SAEtF6lP,EAAuB,SAAoCt8M,GAAA,IAAAw8M,EAAA,eAAAA,EAC/DJ,EAAgBxnR,MAAMorE,kBAAcvkE,EAAMukE,EAAA,EAEtCy8M,EAAgCrpQ,EAAAA,UAAS,WACvC,IAAEspQ,EAAqBN,EAAgBxnR,MAArC8nR,iBAEJtmP,EAAYsmP,EAoBT,OAnBHpkR,EAAWokR,GAENtmP,EAAAsmP,EAAiBC,KACf52O,EAAQnK,MAAM8gP,iBAEvBtmP,EAAO2P,EAAQnK,MAAM8gP,iBAAiBC,KAC7B52O,EAAQnK,MAAM,qBAEvBxF,EAAO2P,EAAQnK,MAAM,qBAAqB+gP,KAC/BD,IAEXtmP,EAAA/D,EAAAA,YAAA+D,EAAa,KAAA,OAIXA,IACGA,EAAK36B,QAAO26B,EAAK36B,MAAQ,CAAA,GAC9B26B,EAAK36B,MAAM,MAAQ26B,EAAK36B,MAAe,OAAA,IAElC26B,CACT,IAGMwmP,EAA6BxpQ,EAAAA,UAAS,WAAA,OAAMmqB,QAAQk/O,EAA8B7nR,OAASynR,EAAQznR,UAEnGouF,EAAer3D,OAAI,GACnBgxP,EAAc,WAA8E,IAA7E7hP,EAAAtgC,UAAAvI,OAAAuI,QAAAlG,IAAAkG,UAAAlG,GAAAkG,UAA8B,GAAA,CAAE4hR,gBAAiBA,EAAgBxnR,OAC9EioR,EAAO,IAAItnR,SAAS,UAAY2jB,EAAAA,EAAEjmB,WAA3B,GACb,OAAOF,OAAOq5B,OAAO,CAAC,EAAGywP,EAAM/hP,IAI3BgiP,EAA4B,SAACC,GAAqD,IAAxBC,EAAAxiR,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,IAAAA,UAAA,GAE9DyiR,EC5FC,SAA6BtkP,GAA4D,IAA1CukP,EAA2B1iR,UAAAvI,OAAAuI,QAAAlG,IAAAkG,UAAAlG,GAAAkG,UAAAu6B,GAAAA,SAAS0B,KACxF0mP,EAAkCtjP,KAA1BrC,EAAA2lP,EAAA3lP,UAAWwC,EAAWmjP,EAAXnjP,WACnBojP,EAAuCzkP,EAAIE,wBAA9BwkP,EAAAD,EAALrkP,IAAmBukP,EAAQF,EAAdpkP,KACrBukP,EAA6CL,EAAYrkP,wBAA5C2kP,EAAAD,EAALxkP,IAAsB0kP,EAAWF,EAAjBvkP,KAClB0kP,EAAsBrkP,GAAmB6jP,EAAa,YAGzD,MAAsC,SAAtCA,EAAYluL,QAAQjoF,eAAoD,aAAxB22Q,GACzB,WAAxBA,EAEO,CACL3kP,IAAKskP,EAASG,EACdxkP,KAAMskP,EAAUG,GAIhB/jP,GAAQf,GACH,CACLI,IAAKskP,EACLrkP,KAAMskP,GAIH,CACLvkP,IAAKskP,EAAS7lP,EACdwB,KAAMskP,EAAUtjP,EAEpB,CDiE0B2jP,CAAoB5B,EAAyBnnR,OAA3DmkC,EAAKkkP,EAALlkP,IAAKC,EAAAikP,EAAAjkP,KACX4kP,EAAwB7B,EAAyBnnR,MAAMikC,wBAAjDpG,EAAOmrP,EAAPnrP,MAAOC,EAAAkrP,EAAAlrP,OACPqoP,EAAmBuB,EAAqB,oBAE9C,GAAID,EAAQznR,MACV69B,GAA4B,EAAnBsoP,EACTroP,GAA6B,EAAnBqoP,EACHhiP,GAAAgiP,EACC/hP,GAAA+hP,MACH,CACL,IAAAoC,EAAkCtjP,KAC3Bd,GADCokP,EAAA3lP,UAEAwB,GAFsBmkP,EAAXnjP,UAGrB,CAEA,IAAM1L,EAAQ,CACZyK,cAAQA,EAAA,MACRC,eAASA,EAAA,OAIX,GAAI4jP,EAA2BhoR,MAE7B,GAAIooR,EAAa,CACT,IAAAa,EAAoBhC,EAAkBjnR,MAAMikC,wBAA1CpG,EAAOorP,EAAPprP,MAAOC,IAAAA,OACf3/B,OAAOq5B,OAAOkC,EAAO,CACnBmE,gBAAUA,EAAAA,MACVC,iBAAWA,EAAAA,OAEf,MACE3/B,OAAOq5B,OAAOkC,EAAO,CACnBmE,MAAO,OACPC,OAAQ,cAIZ3/B,OAAOq5B,OAAOkC,EAAO,CACnBmE,gBAAUA,EAAA,MACVC,iBAAWA,EAAA,QAGfvE,GAAS4uP,EAAgBzuP,IAGrBwvP,EAAiB,WACrB7sP,EAAAA,UAAS,WAAM,IAAA8sP,EACbhC,EAAyBnnR,ME5I1B,SAAsB+jC,GAC3B,IAAIA,EAgBF,OAAO5D,SAAS0B,KAhBT,IAAAunP,EACHh3G,EAA6B,KAC7B,GAAAnzJ,GAAS8kB,GACKquI,EAAAjyI,SAASwB,cAAcoC,OACzC,KAAWrgC,EAAWqgC,GAGd,MAAA,IAAIjD,MAAM,oCAFhBsxI,EAAgBruI,GAGlB,CACA,GAAIquI,EACK,OAAAA,EAEL,GAA2B,kBAA3Bg3G,EAAAlgR,eAAA,IAAAkgR,GAAc,QAAdA,EAAAA,EAASj2M,WAATi2M,IAAcA,OAAdA,EAAAA,EAAcC,UACV,MAAA,IAAIvoP,MAAM,kCAKtB,CFyHyCwoP,CAAa9B,EAAgBxnR,MAAMqgC,SAC/D8mP,EAAyBnnR,QAC9BumR,GAA0BY,EAAyBnnR,OACnDkoR,EAA0BjB,EAAkBjnR,OAClBkoR,EAAAhB,EAAkBlnR,OAAO,GACnD0mR,GAAYS,EAAyBnnR,eAGrCmpR,EAAA7B,EAAgBtnR,oBAAhBmpR,EAAuBx/M,SACzB,KAGI4/M,EAAoB,WAAM,IAAAC,UAC9BA,EAAAtC,EAAkBlnR,aAAO,IAAAwpR,GAAzBA,EAAyBzkP,WAAWlB,YAAYqjP,EAAkBlnR,QAY9DypR,EAA0B,WAAM,IAAAC,EAAAC,UACpCD,EAAArC,EAAiBrnR,aAAO,IAAA0pR,GAAxBA,EAAwB3kP,WAAWlB,YAAYwjP,EAAiBrnR,eAChE2pR,EAAAvC,EAAiBpnR,aAAO,IAAA2pR,GAAxBA,EAAwB5kP,WAAWlB,YAAYujP,EAAiBpnR,QAG5D4pR,EAAY,WACZnC,EAAQznR,OACcypR,IACTP,MAEGK,IAlBpBltP,EAAAA,UAAS,WACP8qP,EAAyBnnR,MAAQqnR,EAAiBrnR,MAClDumR,GAA0BY,EAAyBnnR,OACnDkoR,EAA0BjB,EAAkBjnR,OAC5C0mR,GAAYS,EAAyBnnR,MACvC,KAgBAouF,EAAapuF,OAAQ,GAWjB6pR,EAAa,SAACxoR,GAAkB,IAAAyoR,EAC9Br7P,EAAQ84P,EAAWvnR,MACzBosI,EAAQpsI,OAAQ,EAChB69H,GAAoB,EAAA,CAAEx8H,EAAAA,EAAGotB,MAAAA,YACzB5nB,EAAAA,EAAMy/Q,qBAANz/Q,EAAAA,KAAAA,EAAe,CAAExF,EAAAA,EAAGof,QAASm9G,EAAa59H,MAAOyuB,MAAAA,KAG7Cs7P,EAAa,SAAC1oR,GAAkB,IAAA2oR,EAC9Bv7P,EAAQ84P,EAAWvnR,MACzB69H,EAAgBD,EAAa59H,MAAQ,EAAG,CAAEqB,EAAAA,EAAGotB,MAAAA,IACrB,QAAxB5nB,EAAAA,EAAMw/Q,uBAAkB,IAAA2D,GAAxBnjR,EAAAA,KAAAA,EAAwB,CACtBxF,EAAAA,EACAojD,KAAMm5E,EAAa59H,MAAQ,EAC3BygB,QAASm9G,EAAa59H,MACtByuB,MAAAA,KAIEw7P,EAAa,SAAC5oR,GAAkB,IAAA6oR,EAC9Bz7P,EAAQ84P,EAAWvnR,MACzB69H,EAAgBD,EAAa59H,MAAQ,EAAG,CAAEqB,EAAAA,EAAGotB,MAAAA,IACrB,QAAxB5nB,EAAAA,EAAMu/Q,uBAAkB,IAAA8D,GAAxBrjR,EAAAA,KAAAA,EAAwB,CACtBxF,EAAAA,EACA2iB,KAAM45G,EAAa59H,MAAQ,EAC3BygB,QAASm9G,EAAa59H,MACtByuB,MAAAA,KAIE07P,EAAe,SAAC9oR,GAAkB,IAAA+oR,EAChC37P,EAAQ84P,EAAWvnR,MACzBosI,EAAQpsI,OAAQ,EAChB69H,GAAoB,EAAA,CAAEx8H,EAAAA,EAAGotB,MAAAA,YACzB5nB,EAAAA,EAAMgtD,uBAANhtD,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,EAAGof,QAASm9G,EAAa59H,MAAOyuB,MAAAA,KAG/C47P,EAAY,WACZzsJ,EAAa59H,OAAS,GAAK49H,EAAa59H,MAAQwtB,EAAMxtB,MAAM3C,SACzD+uI,EAAQpsI,QACXosI,EAAQpsI,OAAQ,EACPkhC,GAAAf,SAAS0B,KAAMklP,EAAW/mR,QAE3B4pR,MAkBd,OAdMrhP,QAAAq1F,GAAc,SAACt4F,GAtDA,IAAMglP,EAAAC,EAuDrBjlP,GAAO,GAAKA,EAAM9X,EAAMxtB,MAAM3C,QAChC+wF,EAAapuF,OAAQ,EACXqqR,MAEVj+I,EAAQpsI,OAAQ,EA1DAupR,IACME,YACxBa,EAAArD,EAAkBjnR,aAAO,IAAAsqR,GAAzBA,EAAyBvlP,WAAWlB,YAAYojP,EAAkBjnR,eAClEuqR,EAAAvD,EAAgBhnR,aAAO,IAAAuqR,GAAvBA,EAAuBxlP,WAAWlB,YAAYmjP,EAAgBhnR,OAClDshC,GAAAnB,SAAS0B,KAAMklP,EAAW/mR,OAyDxC,IAEAo8B,EAAAA,WAAU,WACEiuP,GACZ,IAEO,WACL,IAqBMG,EAAgB,WACd,IAAAC,EAAmB/jP,EAAe,UAAW,CACjDR,OAAQ,CAAEzX,MAAO84P,EAAWvnR,MAAOygB,QAASm9G,EAAa59H,SAGrD0qR,EACJjtP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe4Z,EAAe7xC,MAAA,cAAA,CAC3ByqR,GAAoBxyP,GAAAA,OAAG2lG,EAAa59H,MAAQ,EAAK,KAAAi4B,OAAAsvP,EAAWvnR,SAGjE,OAAAy9B,EAAAO,YAAA4gB,EAAA5Y,SAAA,KAAA,EAAWggP,EAAYhmR,OAAS0qR,KAG5BC,EAAe,SAAClnM,GAA+B,IAAAmnM,EAAAC,EAAAC,EAAAC,EAC7CzuM,EAASshD,EAAa59H,QAAUunR,EAAWvnR,MAAQ,EACnDusI,EAAiC,IAAvB3O,EAAa59H,MACvBgrR,EAAsB,UAATvnM,EAAmB,QAAU,SAEhD,OAAAhmD,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,aAAA,EAC1BkmR,EAASlmR,QAAUs8E,GAAA7+C,EAAAO,YAAAwU,GAAApH,aAAA,CAAA/rC,IAAA,OAAAq+B,MAAA,GAAAzF,OAGP4Z,EAAe7xC,MAAA,UAAAg1B,MAAA,UAAA5pB,KAEnB4/Q,EACN78O,QAAA,OAAAC,QACSy7O,GACkCe,QAAtCA,EAAAlD,EAAqB,0BAAiBkD,IAAAA,EAAAA,EAAKrzP,EAAav3B,MAAMk1B,iBACrE,OAEA+wP,EAASjmR,QAAUusI,GAAA9uG,EAAAA,YAAA+U,GAAApH,aAAA,CAAA/rC,IAAA,OAAAq+B,MAAA,GAAAzF,OAGP4Z,EAAe7xC,MAAA,UAAAg1B,MAAA,UAAA5pB,KAEnB4/Q,EACN78O,QAAA,OAAAC,QACS27O,GACkCc,QAAtCA,EAAAnD,EAAqB,0BAAiBmD,IAAAA,EAAAA,EAAKtzP,EAAav3B,MAAMm1B,iBACrE,OAEAmnD,6DAGYzqC,EAAe7xC,MACzB,UAAAg1B,MAAA,UAAA5pB,KACM4/Q,EAAA78O,QAAA,OAAAC,QAEG67O,GACkCa,QADlCA,EACJpD,EAAqB,0BAAiBoD,IAAAA,EAAAA,EAAKvzP,EAAav3B,MAAMi1B,iBACrE,MAEDqnD,GAAA7+C,EAAAO,YAAAwU,GAAApH,aAAA,CAAA/rC,IAAA,SAAAq+B,MAAA,GAAAzF,OAGa4Z,EAAe7xC,MACzB,YAAAg1B,MAAA,UAAA5pB,KACM4/Q,EAAA78O,QAAA,OAAAC,QAEG+7O,GACEY,UAANlkR,EAAMkuB,yBAAAg2P,IAAAA,EAAAA,EAAqBxzP,EAAav3B,MAAM+0B,mBACrD,SAYFk2P,EAAoB,WAClB,IANAC,EACAC,EAQFC,EAHE57P,EAAAiO,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAuB4Z,EAAe7xC,MAAA,YAAiBgyD,EANvDk5N,EAAgBxnR,EAAW8jR,EAAgBxnR,MAAMwvB,OAASg4P,EAAgBxnR,MAAMwvB,aAAU,EAC1F27P,EAAYh6O,EAAQnK,MAAMxX,MAAQ2hB,EAAQnK,MAAMxX,MAAMu4P,UAAiB,EACtEmD,GAAiBC,GAAa3D,EAAgBxnR,MAAMwvB,SAKrD67P,EAAa7D,EAAgBxnR,MAAM6hC,KAI5BupP,EADT1nR,EAAW2nR,GACFA,EAAWtD,KACb52O,EAAQnK,MAAMnF,KACZsP,EAAQnK,MAAMnF,KAAK,CAAE2lP,gBAAiBA,EAAgBxnR,QAClC,iBAAfqrR,EACLA,EAEX5tP,EAAAA,YAAA4tP,EAAuB,KAAA,MAEnB,IAAAt1D,EAAAt4L,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAsB4Z,EAAe7xC,MAAA,WAAA,CAAgBorR,IAGzD,OAAA3tP,EAAAA,YAAAmhB,EAAAA,SACGpvB,KAAAA,CAAAA,EACAumM,KAKDp1B,EAAqB,WACzB,IAAM2qF,EAAgB,CAAArzP,GAAAA,OAAI4Z,EAAe7xC,MAAiB,YAAA,GAAAi4B,OAAG4Z,EAAe7xC,MAAsB,oBAC5FqpD,EAAA5rB,EAAAO,YAAA,MAAA,CAAAN,MACQ4tP,GACTd,CAAAA,IACAG,EAAa,WAIlB,OAAAltP,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,cAAA,CAC3BirR,IACA5hO,KAKDkiO,EAAmB,WAAM,IAAAC,EAUzBrT,EATIroP,EAAY03P,EAAgBxnR,MAA5B8vB,QACF27P,EAAe,CACnB1B,WAAAA,EACAE,WAAAA,EACAJ,WAAAA,EACAM,aAAAA,EACA1pQ,QAASm9G,EAAa59H,MACtByuB,MAAO84P,EAAWvnR,OAIlBm4Q,EADEz0Q,EAAWosB,GACA,WAAb,OAAmBA,EAAQi4P,EAAY0D,GAAa,EAC3Ct6O,EAAQnK,MAAMlX,QACV,WAAb,OAAmBqhB,EAAQnK,MAAMlX,QAAQi4P,EAAY0D,GAAa,EACzD37P,EACI,WAAA,OAAA2N,cAAA3N,EAAmB27P,EAAc,OAEjC9qF,EAEf,IAAMnjK,EAAU,CAAA,GAAAvF,OACX4Z,EAAe7xC,MAAAi4B,eAAAA,GAAAA,OACf4Z,EAAe7xC,MAAU,MAAAi4B,OAAA0vP,EAAkB3nR,MAAQ,QAAU,aAG5D0rR,EAAsD,CAAA5rR,QAAAm4B,OAEpD4Z,EAAe7xC,MAAA,sBAA4B8vB,IAKjD,OAAA2N,EAAAO,YAAAk4C,GAAA9qC,aAAA,CAAArU,IACOuwP,EAAAluP,QACIg1D,EAAapuF,MAAA,cACT8vB,EAAAmZ,OACLA,EAAOjpC,MAAAuzD,UACJi0N,EAAgBxnR,MAAMuzD,WAC7Bi0N,EAAgBxnR,MAAMgvE,WAC1B,CAAAl/C,QAASqoP,EACThpM,iBAAkB,CAAAl3C,GAAAA,OAAI4Z,EAAe7xC,MAAgBwnR,WAAAA,EAAgBxnR,MAAM2rR,kBAC3Ev8M,sBAAuBs8M,EAAezzP,OAAyCuzP,QAAlCA,EAAAhE,EAAgBxnR,MAAMgvE,kBAAtBw8M,IAAkCA,OAAlCA,EAAAA,EAAkCp8M,6EAErE83M,EAAmBxpP,MAAOF,GAAS,MAAA,KAK7CouP,EAAoB,WACxB,IAAMlyP,EAAQ,CAAEuP,OAAQA,EAAOjpC,OACzBikR,EAAiB,CAAA,GAAAhsP,OAClB4Z,EAAe7xC,MAAAF,aAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OACZ4Z,EAAe7xC,2BAA+D,WAApCwnR,EAAgBxnR,MAAMuzD,YAElEs4N,EAAgB,CAAA5zP,GAAAA,OACjB4Z,EAAe7xC,MAAA,eAAA,GAAAi4B,OACf4Z,EAAe7xC,MAAAi4B,cAAAA,GAAAA,OACf4Z,EAAe7xC,MAAA,YAAAF,EAAAA,EAAA,CAAA,EAAA,GAAAm4B,OAEZ4Z,EAAe7xC,MAA0B,qBAAC0nR,EAAqB,gBAClEF,EAAgBxnR,MAAM2rR,mBAAqBnE,EAAgBxnR,MAAM2rR,mBAGhEL,EAAgB,CAAArzP,GAAAA,OAAI4Z,EAAe7xC,MAAiB,YAAA,GAAAi4B,OAAG4Z,EAAe7xC,MAAsB,oBAClG,OAAAy9B,EAAAO,YAAA4gB,EAAA5Y,SAAA,KAAA,CAAAvI,EAAAA,YAAA,MAAA,CAAA1G,IAEcqwP,EAAkB1pP,MAAOumP,EAAgBvqP,MAAOA,GACxD,CAAA+D,EAAAO,YAAA,MAAA,CAAAjH,IAAUswP,QAAyBwE,GAAA,CAChCZ,IAAkBxtP,EAAAO,YAAA,MAAA,CAAAN,MACP4tP,GAAA,CACTd,IACAG,EAAa,mBAoB1B,OAAAltP,EAAAO,YAAA4gB,EAAA5Y,SAAUomG,KAAAA,CAAAA,EAAQpsI,OAVdy9B,EAAAO,YAAA4gB,EAAA5Y,SAAAvI,KAAAA,CAAAA,EAAAA,YAAA0N,EAAAA,SAAA,CAAA5Q,GAAA,QAAA,CAAAvQ,QAAA,WAAA,MAAA,0BAxNQg9P,kBAA2Bn1O,EAAe7xC,MAAA,aAAA05B,MAAyB,CAAEuP,OAAQA,EAAOjpC,MAAQ,IAAK,OAIrG05B,EAAQ,CAAEuP,OAAQA,EAAOjpC,MAAQ,GACjC8rR,EAAiB,CAAA7zP,GAAAA,OAClB4Z,EAAe7xC,MAAAi4B,eAAAA,GAAAA,OACf4Z,EAAe7xC,MAAqBi4B,iBAAAA,OAAAwvP,EAAQznR,MAAQ,QAAU,UAAA,GAAAi4B,OAC9D4Z,EAAe7xC,MAAA,MAAAi4B,OAAU0vP,EAAkB3nR,OAASynR,EAAQznR,MAAQ,QAAU,aAE7E+oC,EAAc2+O,EAAqB,eACnCltE,EAAY,CAAA,GAAAviL,OAAI4Z,EAAe7xC,MAAqBi4B,iBAAAA,OAAA8Q,EAAc,OAAS,WAEjFtL,EAAAA,YAAA,MAAA,CAAA1G,IACYkwP,EAAmBvpP,MAAA,GAAAzF,OAAW6zP,EAAmBtxE,GAAS9gL,MAAUA,GAAA,CAC3EsuP,EAA2BhoR,OAAS6nR,EAA8B7nR,SA6MhEynR,EAAQznR,MAAQurR,IAAqBK,KAzNjB,IACrBlyP,EACAoyP,EAKA/iP,EACAyxK,CAiNwD,QAQpE,IGpdWuxE,GAAQv+O,GAAYs5O,ICLpBpwM,GAAUlpC,GAAY4mB,ICDpB43N,GAAA,CAEbn5N,SAAU,CACRlwD,KAAM,CAAC/C,OAAQ+oC,QAAShoC,UACxBqpB,aAAS,GAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBo/B,SAAU,CACRp9B,KAAM9C,OACNmqB,QAAS,KAGXmtJ,OAAQ,CACNx0K,KAAM,CAAC/C,OAAQe,WAGjBqrB,KAAM,CACJrpB,KAAM,CAACgmC,QAAShoC,UAChBqpB,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,UAAW,UAAW,SAASjnB,SAASinB,EAC1D,GAGF9V,MAAO,CACL7sB,KAAM,CAAC/C,OAAQe,WAGjBoyD,gBAAiBpyD,SAEjBqyD,cAAeryD,UCpDJ0xD,GAAW,OAEXC,GAAmB,CAC9B,WAAY,CACVluB,KAAMiuB,GACNluB,IAAKkuB,IAEP,YAAa,CACX/tB,MAAO+tB,GACPluB,IAAKkuB,IAEP,eAAgB,CACd/tB,MAAO+tB,GACPhuB,OAAQguB,IAEV,cAAe,CACbjuB,KAAMiuB,GACNhuB,OAAQguB,KAICM,GAAiBx0D,OAAO4F,KAAKuuD,ICZpCe,GAAmB,CACvBtzB,SAAU,IACV4C,OAAQ,UA2DG2wB,GAAS,SAACnkB,EAAkBokB,GACvC,GAAKpkB,EAAL,CACM,IAAAY,GAAeZ,eAAAA,EAAKY,eAAgB,EAEpCk8O,EA5DmB,SAAC14N,EAAmBzjB,EAAqBC,GAC9D,OAAC4iB,GAAet0C,SAASk1C,GACX,cAAdA,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,cAAA2wB,OAAyB6X,EAAiB,QACxD,CAAEW,QAAS,EAAGnpC,UAAA,oBAGA,iBAAdisD,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA2wB,cAAAA,OAAyB6X,EAAkB,OAAAk8E,aAAA,IAAA/zF,OAAkB8X,EAAiB,OAC5F,CAAEU,QAAS,EAAGnpC,UAAA,oBAGA,aAAdisD,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,eAAA2wB,OAA0B6X,EAAiB,QACzD,CAAEW,QAAS,EAAGnpC,UAAA,oBAGA,gBAAdisD,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA2wB,eAAAA,OAA0B6X,EAAkB,OAAAk8E,aAAA,IAAA/zF,OAAkB8X,EAAiB,OAC7F,CAAEU,QAAS,EAAGnpC,UAAA,yBAHlB,EAnBgD,IAyBlD,CAkC4CmsD,CAAmBF,GADzCpkB,eAAAA,EAAKW,cAAe,EAC6CC,GAChFk8O,GACL98O,EAAIwkB,SAAWxkB,EAAIwkB,QAAQs4N,EAAW54N,GAL5B,CAMZ,EAEaO,GAAU,SAACzkB,EAAkBokB,EAAmBM,GAC3D,GAAK1kB,EAAL,CACM,IAAAY,GAAeZ,eAAAA,EAAKY,eAAgB,EAEpCk8O,EAzCoB,SAAC14N,EAAmBzjB,EAAqBC,GAC/D,OAAC4iB,GAAet0C,SAASk1C,GACX,cAAdA,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,mBACd,CAAEmpC,QAAS,EAAGnpC,UAAA2wB,cAAAA,OAAyB6X,EAAkB,OAAAk8E,aAAA,IAAA/zF,OAAkB8X,EAAiB,QAG9E,iBAAdwjB,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,mBACd,CAAEmpC,QAAS,EAAGnpC,UAAA,cAAA2wB,OAAyB6X,EAAiB,SAG1C,aAAdyjB,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,mBACd,CAAEmpC,QAAS,EAAGnpC,UAAA2wB,eAAAA,OAA0B6X,EAAkB,OAAAk8E,aAAA,IAAA/zF,OAAkB8X,EAAiB,QAG/E,gBAAdwjB,EACK,CACL,CAAE9iB,QAAS,EAAGnpC,UAAA,mBACd,CAAEmpC,QAAS,EAAGnpC,UAAA,eAAA2wB,OAA0B6X,EAAiB,cAH7D,EAnBgD,IAyBlD,CAe4CkkB,CAAoBT,GAD1CpkB,eAAAA,EAAKW,cAAe,EAC8CC,GACtF,IAAKk8O,EAAW,OAAOp4N,IAEvB,IAAMF,EAAUxkB,EAAIwkB,SAAWxkB,EAAIwkB,QAAQs4N,EAAW54N,IAClDM,EACFA,EAAQO,SAAW,WACRL,MAGX1kB,EAAIzV,MAAM84B,QAAU,OACXqB,IAbD,CAeZ,qkBClFA,IAAAq4N,GAAejwP,kBAAgB,CAC7Bx9B,KAAM,gBACNoI,MAAOw2B,GAAAA,MACFx2B,IAAA,CAAA,EAAA,CACH0sD,UAAW3zD,SAEbs8B,eAAMr1B,EAAAA,GAA0B,IAAjBmgC,EAAAoC,EAAApC,MAAOugB,IAAAA,OACd1V,EAAiB7Z,GAAe,gBAC9BzM,EAAgByL,GAAU,eAA1BzL,YACR8oC,EAAmEpB,GAAc,CAC/EqB,qBAAsBC,GACtBC,sBAAuBC,GACvBK,UAAWC,KAHLT,EAAAD,EAAAC,qBAAsBE,EAAuBH,EAAvBG,sBAAuBM,EAAAT,EAAAS,UAK/CE,EAAc5tB,KACd2C,EAAgBjC,KAChBmC,EAAQlT,MAAI,MACZo1P,EAAkBp1P,MAAI,MAEtB4d,EAAQ,SAACtzC,GACb,IAAM8tC,EAAMg9O,EAAgBnsR,MACpB4zD,GAAAzkB,EAAKtoC,EAAM0sD,WAAW,WAAM,IAAA6B,EAC5B,QAANvuD,EAAAA,EAAMksD,uBAAA,IAAAqC,GAANvuD,EAAAA,KAAAA,EAAwB,CAAExF,EAAAA,GAC5B,KAGIo0D,EAAa,WACb,IAAA0rN,EACJ,IAAmB,IAAft6Q,EAAMmlB,KAAuB,OAAA,KAC7B,GAAAtoB,EAAWmD,EAAMmlB,MACLnlB,EAAAA,EAAMmlB,KAAK1H,EAAAA,QAC3B,GAAW0iB,EAAMhb,KACDm1P,EAAAn6O,EAAMhb,KAAK,WAC3B,GAAWnlB,EAAMmuB,MAAO,CAChB,IAAAisP,EACY,YAAhBp6Q,EAAMmuB,MAAUyI,EAAAA,YAAA+2B,EAAA,CAAA92B,MAAAzF,GAAAA,OACmB1M,EAAYvrB,cAAAi4B,OAAYpxB,EAAMmuB,QAASyI,MAAAA,EAAAO,YAAAs2B,EAAA,CAAA52B,MAAAzF,GAAAA,OAExC1M,EAAYvrB,cAAAi4B,OAAYpxB,EAAMmuB,QAAS,MAE3EmsP,EAAA1jP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAA6B1M,EAAYvrB,MAAA,wBAAA,CAA6BihR,GACxE,CACO,OAAAE,GAgBH9rN,EAAa,WACjBxuD,EAAMk5B,UAAY3iB,aAAa6sB,EAAMjqC,QAGjCs1D,EAAW,WACVzuD,EAAMk5B,WAGXkK,EAAMjqC,MAAQH,OACZid,YAAW,WACEu4C,IACX,IAAMlmB,EAAMg9O,EAAgBnsR,MACpB4zD,GAAAzkB,EAAKtoC,EAAM0sD,WAAW,WAAM,IAAAiC,EACZ,QAAtB3uD,EAAAA,EAAMmsD,qBAAgB,IAAAwC,GAAtB3uD,EAAAA,KAAAA,EACF,GACF,GAAGA,EAAMk5B,aAcN,OAVP41B,EAAAA,eAAc,WACZ9uD,EAAMk5B,UAAYu1B,GACpB,IAEAl5B,EAAAA,WAAU,WACR,IAAM+S,EAAMg9O,EAAgBnsR,MACrBszD,GAAAnkB,EAAKtoC,EAAM0sD,UACpB,IAEOhM,EAAA,CAAE5S,MAAAA,IACF,WAAA,OAAAlX,EAAAA,YAAA,MAAA,CAAA1G,IACKo1P,EAAAzuP,MAAA,GAAAzF,OAA2B4Z,EAAe7xC,OAAA41D,aAAuBP,EAAAQ,aAA0BP,GAAA,CAClGG,IAAWh4B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACG4Z,EAAe7xC,MAAA,WAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACb4Z,EAAe7xC,MAAA,kBAAA,CAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACZ4Z,EAAe7xC,MAAiB,YAAA,CAAAg1D,EAAY,YA9C5Dc,EAAAr4B,EAAAO,YAAA82B,EAA0B,KAAA,MAChCr3B,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OACkB1M,EAAYvrB,MAAA,mBAAAouC,QAAiCuG,GAAA,CAC1DqgB,EAAY,WAAYc,QAMtBr4B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAe4Z,EAAe7xC,qBAAmB+pC,EAAc,UAAW,aAyC5EirB,EAAY,cAnDC,IACZc,EAsDV,ukBC5GF,IAAAs2N,GAAenwP,kBAAgB,CAC7Bp1B,MAAO,CACL0sD,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,YACT8J,UAAAA,SAAU/O,GACD,MAAA,CAAC,WAAY,YAAa,cAAe,gBAAgBgV,QAAQhV,IAAK,CAC/E,IAGJmX,eAAMr1B,EAAAuiC,GAAmB,IAAVme,EAAAne,EAAAme,OACP1V,EAAiB7Z,GAAe,qBAE9Bu7B,EAAc1sD,EAAd0sD,UAEFt/B,EAAmC8C,MAAI,IACvCs1P,EAAmBt1P,MAAI,IAEvB0C,EAASjb,EAAAA,UAAS,WAAA,OAAA6e,GAAA,CACtB4L,OHzByB,KG0BtBqpB,GAAiBiB,GAAA,IAQhB/wC,EAAS,SAAC1gB,GACTmyB,EAAAj0B,MAAMwL,OAAO1J,EAAO,IAOrBq0D,EAAY,SAAC7wB,GACjB,GAAKA,EACL,OAAO0e,MAAMnkD,OAAOylC,IAAQA,YAASA,EAAA,OAGjCgnP,EAAqB,SAACxmP,GAC1B,IAAMrM,EAAwB,CAC5BuyF,aAAc35D,IAQT54B,OANHqM,EAAKx4B,SACPmsB,EAAOuW,SAAW,WAClBvW,EAAO2K,KAAO+xB,EAAUrwB,EAAKx4B,OAAO,IACpCmsB,EAAO0K,IAAMgyB,EAAUrwB,EAAKx4B,OAAO,KAEjCw4B,EAAKmD,SAAQxP,EAAO,WAAaqM,EAAKmD,QACnCxP,GAqBH48B,EAAW,SAAC78B,GACZA,GACe6yP,EAAArsR,MAAMiK,KAAKuvB,IAKhC,OAFA+tB,EAAO,CAAElwC,IAtDG,SAAC0E,GAEJ,OADFkY,EAAAj0B,MAAMiK,KAAK8R,GACTkY,EAAKj0B,MAAM3C,OAAS,GAoDfmlB,OAAAA,EAAQg0C,UA7CJ,WAChBviC,EAAKj0B,MAAQ,IA4CkBi0B,KAAAA,EAAMo4P,iBAAAA,IAEhC,WACD,GAACp4P,EAAKj0B,MAAM3C,OAEhB,OAAAogC,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAe,UAAA05B,MAAOD,EAAOz5B,OACxDi0B,CAAAA,EAAKj0B,MAAM6L,KAAI,SAACi6B,EAA6EhkC,GAC5F,OAAA27B,EAAAO,YAAAuuP,GAAAnhP,aAAA,CAAArU,IAAmBs/B,EAAUh3D,IAAKymC,EAAK/G,GAAArF,MAAW4yP,EAAmBxmP,IA/B5D,SAAChkC,EAAegkC,GACxB,OAAAzI,GAAAA,GAAA,CAAA,EACFyI,GAAA,CAAA,EAAA,CACHitB,gBAAiB,SAAC1xD,GAIhB,OAHIykC,EAAKitB,iBACPjtB,EAAKitB,gBAAgB1xD,GAEhBmhB,EAAO1gB,EAChB,EACAkxD,cAAe,WAIb,OAHIltB,EAAKktB,eACPltB,EAAKktB,gBAEAxwC,EAAO1gB,EAChB,IAiBoF40D,CAAS50D,EAAOgkC,IAAO,KACxG,MAIT,ukBC/EF,IAAI0mP,GAAO,EAEL71N,OAAuFhrD,IA2CvF8gR,GAA4C,SAACz3P,EAAOjZ,GAExD,OA3C2B,SAACA,GAE5B,IAAM2wQ,EAAcrvP,GAAA,CAClBk2B,UAAW,YACXtqB,OAAQ,IACRtd,OAAQ,OACRoT,GALMytP,IAAA,GAMHzwQ,GAEL2wQ,EAAY58P,QAAU/T,EAAQ+T,QAAU/T,EAAQ+T,QAAU,GAEpD,IAAA68P,EAAWprP,GAAUmrP,EAAY/gQ,QAElCgrC,GAAYrrD,IAAIqhR,IACPh2N,GAAA1rD,IAAI0hR,EAAU,CAAA,GAE5B,IAAIC,EAAcj2N,GAAYrrD,IAAIqhR,GAAUD,EAAYn5N,WACxD,GAAKq5N,EAYHA,EAAYv1Q,IAAIq1Q,OAZA,CACV,IAAA11N,EAAU72B,SAASuD,cAAc,OAEjC0C,EAAW2F,YAAUqgP,GAAkB,CAC3C74N,UAAWm5N,EAAYn5N,YACtBvnB,MAAMgrB,GAET5wB,EAAS/uB,IAAIq1Q,GACb/1N,GAAYrrD,IAAIqhR,GAAUD,EAAYn5N,WAAantB,EACrCwmP,EAAAxmP,EACLumP,EAAAhpP,YAAYyC,EAASukD,IAChC,CAIO,OAAA,IAAI52E,SAAQ,SAACc,GAClB,IAAMoiD,EAAMN,GAAYrrD,IAAIqhR,GAAUD,EAAYn5N,WAClDl3B,EAAAA,UAAS,WACP,IAAMgwP,EAA2Cp1N,EAAIo1N,iBAC7Cx3Q,EAAAw3Q,aAAA,EAAAA,EAAkBn1N,MAAK,SAAC21N,GAAW,IAAAC,EAAA,eAAAA,EAAAD,EAAOroQ,gBAAUsoQ,UAAjBA,EAAUnlP,aAAVmlP,IAAiBA,OAAjBA,EAAAA,EAAiBztR,OAAQqtR,EAAY3tP,EAAE,IACpF,GACF,GACF,CAISguP,CADa1vP,GAAAA,MAAKthB,GAAA,GAAA,CAASiZ,MAAAA,IAEpC,EAWMqiC,GAAqB,CACzB/qC,KAAM,SAACvQ,GAAY,OAAA0wQ,GAAsB,OAAQ1wQ,EAAO,EACxD0Q,QAAS,SAAC1Q,GAAY,OAAA0wQ,GAAsB,UAAW1wQ,EAAO,EAC9DwQ,QAAS,SAACxQ,GAAY,OAAA0wQ,GAAsB,UAAW1wQ,EAAO,EAC9Dgd,MAAO,SAAChd,GAAY,OAAA0wQ,GAAsB,QAAS1wQ,EAAO,EAC1D44B,MAAO,SAAC2iB,GACNA,EAAQ1V,MAAK,SAACxb,GAAa,OAAAA,EAASuO,UACtC,EACA4iB,SAAU,WACIZ,GAAAx/C,SAAQ,SAACwU,GACnBxtB,OAAO4F,KAAK4nB,GAAQxU,SAAQ,SAACo8C,GAC3B5nC,EAAO4nC,GAAWiD,WACpB,GACF,GACF,GAKIw2N,GAA6CP,GAEnDO,GAAmBxgP,QAAU,SAACV,GACxBA,EAAAW,OAAOC,iBAAiBugP,QAAUR,GACtCtuR,OAAO4F,KAAKszD,IAAUlgD,SAAQ,SAACugD,GAC7B5rB,EAAIW,OAAOC,iBAAiBugP,QAAQv1N,GAAYL,GAASK,EAC3D,GACF,EAEAv5D,OAAO4F,KAAKszD,IAAUlgD,SAAQ,SAACugD,GAG7Bs1N,GAAmBt1N,GAAYL,GAASK,EAC1C,QClGa60N,GAAe/+O,GAAY0+O,ICDzBgB,GAAA,CAEb72E,UAAW,CACT1zM,KAAM,CAAC/C,OAAQzB,OAAQwC,UACvBqpB,QAAS,IAGXssL,WAAY,CACV3zM,KAAM,CAAC/C,OAAQzB,OAAQwC,UACvBqpB,QAAS,IAGX8F,QAAS,CACPntB,KAAM,CAAC/C,OAAQe,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBsuE,eAAgB,CACdtsE,KAAMgmC,QACN3e,SAAS,GAGXgC,KAAM,CACJrpB,KAAMhC,UAGR4yD,UAAW,CACT5wD,KAAM/C,OACNoqB,QAAS,MACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CACL,MACA,OACA,QACA,SACA,WACA,YACA,cACA,eACA,WACA,cACA,YACA,gBACAjnB,SAASinB,EACb,GAGF0pC,WAAY,CACVrsE,KAAMxE,QAGRqxE,UAAW,CACT7sE,KAAMgmC,QACN3e,SAAS,GAGXgL,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,UACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAUjnB,SAASinB,EACnD,GAGFmqC,eAAgB,CACd9sE,KAAM,CAAC/C,OAAQe,WAGjBy4B,QAAS,CACPz2B,KAAMgmC,QACN3e,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMgmC,QACN3e,aAAS,GAGX0lD,eAAgB/mC,QAEhBmuK,SAAUn2M,SAEVwhJ,UAAWxhJ,SAEXmvE,gBAAiBnvE,yOCjFnB,IAAAwsR,GAAelxP,kBAAgB,CAC7Bx9B,KAAM,cACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ,IAAQ0wB,EAAiBP,GAAU,cAA3BO,aACFsa,EAAiB7Z,GAAe,cACtCq8B,EAAwDpB,GAAc,CACpEqB,qBAAsBC,GACtBG,sBAAuBC,KAFjBL,EAAAD,EAAAC,qBAAsBI,EAAsBL,EAAtBK,sBAK9Bke,EAAgC7nC,SAAOlkC,GAOvCgsE,EAAArvD,GANwCooD,GADhCgH,EAAAx5C,QAAoBw5C,EAAX/G,WAIfhlE,EAAM6oE,eACN7oE,EAAMipE,gBACN,WACF,GANO4H,EAAc7E,EAAA,GAAA8E,EAAe9E,EAAA,GAkB9BmmI,EAAkC9B,GAAU,CAAEO,iBAV3B,SAACp2M,GAAkB,IAAA8vJ,EACpC,QAANtqJ,EAAAA,EAAMs7I,iBAAA,IAAAgP,GAANtqJ,EAAAA,KAAAA,EAAkB,CAAExF,EAAAA,IACpBs2E,GAAgB,EAAO,CAAEt2E,EAAAA,EAAG+pD,QAAS,aAQ+BysJ,gBAL9C,SAACx2M,GAAkB,IAAA84M,EACnC,QAANtzM,EAAAA,EAAMiwM,gBAAA,IAAAqD,GAANtzM,EAAAA,KAAAA,EAAiB,CAAExF,EAAAA,IACnBs2E,GAAgB,EAAO,CAAEt2E,EAAAA,EAAG+pD,QAAS,cAG/BksJ,IAAAA,cAAeK,EAAaqB,EAAbrB,aAEjBjxK,EAAiBU,KACjBgmP,EAAkB5uQ,EAAAA,UAAS,WACxB,wWAAA6e,CAAA,CACLmyC,UAAW3oE,EAAM2oE,UACjBL,iBAAkBt9B,EAAe7xC,MACjCorD,QAAS,QACT6jB,eAAgBpoE,EAAMooE,eACtB1b,UAAW1sD,EAAM0sD,WACb1sD,EAAMmoE,WAEd,IAEMq+M,EAAqBxlP,KACrBkC,EAAgB,WACpB,IAAMssK,EAAYsB,EAAa,CAC7BtB,UAAWxvM,EAAMwvM,UACjBuB,aAAcrgL,EAAav3B,MAAMqd,OACjC4jB,aAAAhJ,OAAc4Z,EAAe7xC,MAAA,YAC7BoL,KAAM,UAGFkrM,EAAagB,EAAc,CAC/BtiL,MAAOnuB,EAAMmuB,MACbshL,WAAYzvM,EAAMyvM,WAClBiB,cAAehgL,EAAav3B,MAAM2vB,QAClC6nL,sBAAuBjgL,EAAav3B,MAAMqsB,gBAC1C4U,aAAAhJ,OAAc4Z,EAAe7xC,MAAA,aAC7BoL,KAAM,UAaR,OAAAqyB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiB4Z,EAAe7xC,MAAA,cAAA,CAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACb4Z,EAAe7xC,MAAA,WAAA,CAZf,WACjB,IAAMs2C,EAAO,CACXtsB,QAASsqC,EACT/nC,QAASmoC,EACTloC,OAAQkoC,GACR7tD,EAAMmuB,OACFA,EAAQnuB,EAAMmuB,OAAS,UACtB,OAAAq4P,EAAmB,wCAAwBx7O,EAAe7xC,MAAgBi4B,YAAAA,OAAAjD,IAAA,OAM5EygC,GAAWh4B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACG4Z,EAAe7xC,MAAiB,YAAA,CAAA0mC,EAAe,eAE/DiC,QAAQ0tK,GAAaC,IAAU74K,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACf4Z,EAAe7xC,MAAA,cAC3Bq2M,CAAAA,EACAC,OAOLhsG,EAAuB,SAAChlE,EAAc6L,GAC1CwmC,EAAgBryC,EAAK6L,IAGjB2zC,EAAqBh9C,KAEpB,OAAA,WAAA,OAAArK,EAAAO,YAAAk4C,GAAA9qC,aAAA,CAAAhS,QAEMs+C,EAAa13E,OAClBotR,EAAgBptR,MAAA,CAAA8vE,gBACHw6B,IAAA,CAAAtgF,QAAA,WAAA,MAAA,CAKhB86D,EAAmB,UAAW,oBAH7Bh1D,QAASia,IAMjB,ICjHWujP,GAAa9/O,GAAY2/O,ICAvBI,GAAA,CAEbngN,YAAa,CACXzqE,KAAMnF,OAGRqwE,OAAQ,CACNlrE,KAAM/C,OACNoqB,QAAS,IAGXq/B,OAAQ,CACN1mD,KAAM/C,OACNoqB,QAAS,IAGXwjQ,yBAA0B7kP,QAE1B8kP,WAAY,CACV9qR,KAAMgmC,QACN3e,SAAS,GAGX0jQ,qBAAsB,CACpB/qR,KAAMhC,UAGRgtR,aAAc,CACZhrR,KAAMhC,UAGRitR,mBAAoB,CAClBjrR,KAAM,CAACxE,OAAQwC,WAGjB4K,KAAM,CACJ5I,KAAM,CAACxE,OAAQwC,WAGjBqpB,QAAS,CACPrnB,KAAM,CAAC/C,OAAQe,WAGjBk4B,SAAU,CACRl2B,KAAMgmC,QACN3e,aAAS,GAGX6jQ,YAAa,CACXlrR,KAAM,CAAC/C,OAAQe,WAGjB6jF,UAAW,CACT7hF,KAAMgmC,QACN3e,aAAS,GAGX8jQ,gBAAiB,CACfnrR,KAAMhC,UAGR0tE,MAAO,CACL1rE,KAAMnF,MACNwsB,aAAS,GAGX+jQ,aAAc,CACZprR,KAAMnF,MACNwsB,QAAS,WAAT,MAA8C,EAAC,GAGjDjB,OAAQ,CACNpmB,KAAMhC,UAGRqtR,cAAe,CACbrrR,KAAMhC,UAGRstR,eAAgB,CACdtrR,KAAMhC,UAGRutR,QAAS,CACPvrR,KAAMxE,QAGRgwR,iBAAkB,CAChBxrR,KAAMxE,QAGRiwR,gBAAiB,CACfzrR,KAAMxE,QAGRkwR,cAAe1lP,QAEf1iB,OAAQ,CACNtjB,KAAMxE,QAGRgJ,IAAK,CACHxE,KAAM9C,OACNmqB,QAAS,GAGXmY,OAAQ,CACNx/B,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,OAAQ,MAAO,MAAO,SAAU,QAAS,OAAQ,MAAO,MAAO,SAAU,SAASjnB,SAASinB,EACrG,GAGFgpP,qBAAsB,CACpB3rR,KAAM9C,QAGRkqG,SAAUphE,QAEVlqC,KAAM,CACJkE,KAAM/C,OACNoqB,QAAS,QAGX4E,YAAa,CACXjsB,KAAM/C,OACNoqB,QAAS,IAGXukQ,cAAe,CACb5rR,KAAMhC,UAGR6tR,kBAAmB,CACjB7rR,KAAMgmC,QACN3e,SAAS,GAGXykQ,cAAe9lP,QAEf+lP,mBAAoB,CAClB/rR,KAAMgmC,QACN3e,SAAS,GAGX2kQ,UAAW,CACThsR,KAAM,CAAC9C,OAAQ1B,SAGjB+2D,OAAQ,CACNvyD,KAAM/C,OACNk0B,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASjnB,SAASinB,EAC7D,GAGFtQ,MAAO,CACLryB,KAAM/C,OACNoqB,QAAS,OACT8J,UAAAA,SAAUwR,GACR,OAAKA,GACE,CAAC,SAAU,OAAQ,aAAc,YAAa,QAAS,cAAcjnB,SAASinB,EACvF,GAGFkwD,KAAM,CACJ7yF,KAAM,CAAC/C,OAAQe,WAGjByqD,QAAS,CACPzoD,KAAMhC,UAGRiuR,mBAAoB,CAClBjsR,KAAMxE,QAGR0wR,2BAA4BlmP,QAE5BmmP,aAAc,CACZnsR,KAAM,CAACxE,OAAQwC,WAGjBouR,kBAAmB,CACjBpsR,KAAMgmC,QACN3e,SAAS,GAGXglQ,gBAAiB,CACfrsR,KAAMgmC,QACN3e,SAAS,GAGXhqB,MAAO,CACL2C,KAAMnF,MACNwsB,aAAS,GAEX6hD,WAAY,CACVlpE,KAAMnF,MACNwsB,aAAS,GAGX7c,aAAc,CACZxK,KAAMnF,MACNwsB,QAAS,WAAT,MAA8C,EAAC,GAGjDilQ,gBAAiBtmP,QAEjBumP,eAAgBvuR,SAEhBwuD,SAAUxuD,SAEVwuR,YAAaxuR,SAEbqoL,YAAaroL,SAEbuhH,OAAQvhH,SAERyuR,OAAQzuR,SAER0uR,cAAe1uR,SAEf2uR,iBAAkB3uR,SAElB4uR,UAAW5uR,SAEX6uR,WAAY7uR,SAEZikF,SAAUjkF,SAEVi5O,eAAgBj5O,SAEhB8uR,UAAW9uR,SAEXu1F,WAAYv1F,SAEZ+uR,2BAA4B/uR,UCtPjBgvR,GAAc,CACzB9hN,OAAQjuE,OACRyuE,MAAO7wE,MACPoyR,cAAepyR,MACfqyR,aAAcryR,MACdw3B,MAAOp1B,OACPwtE,YAAa5vE,MACboxB,YAAahvB,OACb2rB,YAAa3rB,OACb41F,KAAM,CAAC51F,OAAQe,UACfu0D,OAAQt1D,OACRqmB,OAAQ9nB,OACR2xR,qBAAsBlwR,OACtB6tR,WAAY9kP,QACZomP,kBAAmBpmP,QACnBonP,kBAAmBpvR,SACnBk4B,SAAU8P,QACVpW,UAAWoW,QACXo2D,YAAa,CAACn/F,OAAQpC,MAAOW,QAC7BkiK,aAAc,CAACzgK,OAAQpC,MAAOW,QAC9B6xR,iBAAkB,CAACpwR,OAAQpC,MAAOW,QAClCuwR,mBAAoB/lP,QACpB3e,QAASrpB,SACTmtR,gBAAiBntR,SACjBikF,SAAUjkF,SACVwtR,iBAAkBhwR,uOCNpB,IAAM8xR,GAAah0P,EAAAA,gBAAgB,CACjCx9B,KAAM,mBACNoI,uWAAOw2B,CAAA,CACL0sE,SAAUphE,SACPgnP,IAELzzP,eAAMr1B,EAAAuiC,GAAkB,IAATpC,EAAAoC,EAAApC,MACb4rC,EAAyC7nC,SAAOlkC,GAAxCmuB,EAAO49C,EAAP59C,MAAO6D,EAAA+5C,EAAA/5C,SAAUtN,EAAYqnD,EAAZrnD,YAEnBtF,EAASzH,EAAAA,UAAS,WAAA,OAAM3X,EAAMof,UAEpCouC,EACEpB,GAAc,CACZ6B,UAAWC,GACXm7N,eAAgBC,GAChB37N,sBAAuBC,GACvBC,sBAAuBC,GACvBsnC,sBAAuBC,KANnBpnC,EAAWT,EAAXS,UAAWo7N,EAAA77N,EAAA67N,eAAgB17N,IAAAA,sBAAuBE,EAAuBL,EAAvBK,sBAAuBunC,EAAA5nC,EAAA4nC,sBAS3Ev1D,EAAiBU,KAEjBgpP,EAAAn4P,GAAAA,OAAkB1M,EAAYvrB,MAAA,WAE9BqwR,EAAiB,SAACphH,GAAA,OAAAxxI,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OACPm4P,EAAA,sBAAA3yP,CAAAA,EAAAA,YAAA2U,GAAA,KAAA,MAEZvrC,EAAM6nR,oBAAAjxP,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAAsCm4P,EAAA,qBAAA,CAAiCnhH,GAAW,EAAE,SAsDzFqhH,EAA2B,WAAM,IAAAC,EACrC,GAAoB,eAAhBv7P,EAAMh1B,MAAV,CACA,IAAM4yB,EAAmB/rB,EAAMgpR,aAAa,IAAM,GAC5CW,EAAiB,CAAAv4P,GAAAA,OAClB1M,EAAYvrB,MAAA,iBAAAF,EAAA,CAAA,EAAA,GAAAm4B,OACTm4P,oBAA+BvpR,EAAMgpR,aAAa,KAEpDY,EAAgB53P,EAAS74B,MAAQ,GAAAi4B,OAAG1M,EAAYvrB,MAAsB,gBAAA,GACtE+tE,EACewiN,QAAnBA,EAAA1pR,EAAMumE,uBAAamjN,GAAnBA,EAAmBlzR,QAAnB,MAA6Bu1B,GAAAA,EAAMn0B,KAAO2uE,GAAYvnE,cAAA+sB,EAAKn0B,MAAMw5B,OAAAt5B,EAAGkI,EAAMumE,eAAex6C,aAAM,EAANA,EAAMn0B,KAE/F,OAAAg/B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAem4P,EAAA,2BAAAn4P,OAAsC1M,EAAYvrB,MAAe,WAAAi4B,OAAAw4P,IAAA,CAAAhzP,EAAAO,YAAA,MAAA,CAAAN,MAClE8yP,GAAA,CAAA/yP,EAAAO,YAAA,OAAA,CAAAN,MAED,CAAA,GAAAzF,OACFm4P,yBAAAtwR,EAAA,CAAA,EACA+G,EAAMmpR,iBAAmBnpR,EAAM+nB,eAAgBgE,SAAAA,EAAMn0B,SAGzDm0B,CAAAA,SAAAA,EAAMn0B,KAAOsvE,EAAWlnE,EAAM+nB,cAEf,cAAjBgE,aAAM,EAANA,EAAMsiC,SAAyBm7N,EAAez9P,EAAKq8I,SAClC,aAAjBr8I,aAAA,EAAAA,EAAMsiC,SACLz3B,EAAAO,YAAAkyP,EAAA,CAAAxyP,MAAA,GAAAzF,OAA0Bm4P,2BAA6BA,EAA8B,mBAAA,MAEtE,YAAhBx9P,EAAKsiC,QAAWz3B,EAAAO,YAAAw2B,EAAA,CAAA92B,MAAAzF,GAAAA,OAA8Cm4P,EAA6B,kBAAA,OAC3Fx9P,aAAA,EAAAA,EAAMn0B,OAAwB,SAAhBm0B,EAAKsiC,QAAWz3B,EAAAO,YAAA02B,EAAA,CAAAh3B,MAAA,GAAAzF,OACIm4P,EAAAn4P,kBAAAA,OAA6Bm4P,EAA2B,gBAAA,MAE1FznP,SAAS9P,EAAS74B,OAAS4yB,EAAKn0B,OAC/Bg/B,EAAAO,YAAAi+D,EAAA,CAAAv+D,MAAAzF,GAAAA,OACYm4P,EAAA,wBAAAhiP,QACD,SAAApD,GAAA,IAAG3pC,EAAE2pC,EAAF3pC,EAAE,OAAyBwF,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGuxB,KAAAA,EAAM9wB,MAAO,GAC1E,GAAA,SAhC0B,GAuCpC,OAAO,WAAM,IAAA66C,EAAA+zO,EAAAC,EACLnzP,EAAU,CAAA,GAAAvF,OAAIm4P,wBAA2BA,eAAAn4P,OAAwBjD,EAAMh1B,QACzE8tR,EAAkBpnP,EAAe,kBAAmB,CACtDR,OAAQ,CACN0+C,SAAU/9E,EAAM+9E,SAChBgrM,cAAe/oR,EAAM+oR,cACrBE,qBAAsBjpR,EAAMipR,qBAC5B7pQ,OAAQpf,EAAMof,OACdooD,MAAOxnE,EAAMgpR,gBAGa,OAA1BhpR,EAAMinR,iBAAgD,OAApBA,IAClBA,EAAA,MAGd,IAxGyBz/M,EAAwBuiN,EAwG/Cf,EAAiBhpR,EAAjBgpR,aAGN,OAAApyP,EAAAA,YAAA,MAAA,CAAAC,MAAYF,GAAA,CACO,eAAhBxI,EAAMh1B,OAA0BswR,YAAyB3zO,EAEzD3V,iBAAgB,IAAA2V,OAAA,EAAhBA,EAAAr+C,KAAA0oC,GAEgB,SAAhBhS,EAAMh1B,OAAoB6G,EAAM+nB,cAAgBihQ,EAAa,IAC5DpyP,EAAAA,YAAA,QAAA,CAAAC,MAAc,CAAC72B,EAAMk4F,YAAal4F,EAAMmpR,mBAAoBnpR,CAAAA,EAAM+nB,cAG/C,OAApBk/P,EAA2B,KAAOA,IApHRz/M,EAoHmDwhN,EAnH9D,SAAhB76P,EAAMh1B,QACL6G,EAAMkjG,UAAiC,kBAArB6mL,EAAAviN,EAAM,uBAANuiN,EAAU17N,SAAqBruD,EAAM4mR,WADzB,KAI5Bp/M,EAAMxiE,KAAI,SAAC+mB,EAAM9wB,GACtB,IA7CoBsiB,EA6Cd2pD,EAAWlnE,EAAMumE,aAAex6C,EAAKn0B,KAAO2uE,GAAAvnE,WAAA,EAAA,CAAY+sB,EAAKn0B,MAAAw5B,OAAAt5B,EAASkI,EAAMumE,eAAex6C,EAAKn0B,KACtG,OAAAg/B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAEcm4P,EAAqCn4P,0BAAAA,OAAAm4P,EAAA,0BAAA/wR,IAC1CuzB,EAAKn0B,KAAOqD,EAAQ8wB,EAAKq8I,QAAUr8I,EAAKsiC,QAAA,CAE5CtiC,EAAKY,IACJiK,EAAAA,YAAAoa,GAAA,CAAA7J,KACQpb,EAAKY,IAAAqG,OAAA,SAAAqd,MAAA,QAAA9rC,KAAA,QAAAsyB,MAAAzF,GAAAA,OAIDm4P,EACV,iBAAAv3P,UAAU,IA1DEzU,EA4DX2pD,EA5DW,mBAAA3pD,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA4DX2pD,EAAA,CAAA/jD,QAAA,WAAA,MAAA,CAAA+jD,EAAA,KAAAtwC,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAGam4P,EAA8B,kBAAAriN,CAAAA,IAE/B,SAAhBn7C,EAAKsiC,QACJz3B,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAem4P,EAAAn4P,kBAAAA,OAA6Bm4P,EAC1C,gBAAA3yP,CAAAA,EAAAO,YAAA02B,EADD,KAAA,QAIc,YAAhB9hC,EAAKsiC,QACJz3B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAem4P,EAAAn4P,kBAAAA,OAA6Bm4P,EAC1C,mBAAA,CAAA3yP,EAAAA,YAAAyyP,EAAA,KAAA,QAGa,aAAhBt9P,EAAKsiC,QAAyBm7N,EAAez9P,EAAKq8I,UACjDp2I,EAAS74B,OAAyB,aAAhB4yB,EAAKsiC,QACvBz3B,EAAAO,YAAA82B,EAAA,CAAAp3B,MAAAzF,GAAAA,OACYm4P,EAAA,iBAAAhiP,QACD,SAAAgiB,GAAA,IAAG/uD,EAAE+uD,EAAF/uD,EAAE,OAAyBwF,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGuxB,KAAAA,EAAM9wB,MAAAA,GACnE,GAAA,OAIR,KA0EM+E,EAAMkjG,UAAwC,UAAX,QAAjB2mL,EAAAb,EAAa,UAAba,IAAiBA,OAAjBA,EAAAA,EAAiBx7N,SAAqC,SAAhBlgC,EAAMh1B,MAI5D,KAJsEy9B,EAAAA,YAAA,QAAA,CAAAC,MAC1D,CAAC72B,EAAMw5J,aAAcx5J,EAAMmpR,mBACtC,EAAgB,QAAhBW,EAAAd,EAAa,GAAG56E,gBAAA,IAAA07E,OAAA,EAAhBA,EAA0B53P,QAAS9S,EAAOjmB,MAAMkzB,SAASG,aAMtE,IC1KsB,SAAAsgL,GAAQ9sM,EAAyBgnE,GACjD,IAAAh0C,EAAS9C,MAAI,MACb85P,EAAa95P,OAAI,GAgChB,MAAA,CACL8C,OAAAA,EACAg3P,WAAAA,EACA3tG,WAjCiB,SAAC5iJ,GAAqB,IAAAwwP,EACvCxwP,EAAMu0C,iBACNg8M,EAAW7wR,OAAQ,EAEb,IAGiB+wR,EAFjBC,EAAoB5iN,GADR9tC,EAAMmjJ,aAAhBp1G,MACqCR,EAAO7tE,QACrC,QAAf8wR,EAAAjqR,EAAMq7G,cAAS,IAAA4uK,GAAfA,EAAAxyR,KAAAuI,EAAe,CAAExF,EAAGi/B,IAChB0wP,SAAAA,EAAW3zR,kBACb0zR,EAAAlqR,EAAMoqR,wBAANF,OAAAA,EAAAzyR,KAAAuI,EAAyBmqR,KA0B3BE,gBAtBsB,SAAC5wP,GAAqB,IAAA6wP,EAC5C7wP,EAAMu0C,iBACNh7C,EAAO75B,MAAQsgC,EAAMzG,OACD,QAApBs3P,EAAAtqR,EAAMsoR,mBAAc,IAAAgC,GAApBA,EAAA7yR,KAAAuI,EAAoB,CAAExF,EAAGi/B,IACzBuwP,EAAW7wR,OAAQ,GAmBnBoxR,gBAhBsB,SAAC9wP,GAAqB,IAAA+wP,EACxC/wP,EAAMzG,SAAWA,EAAO75B,QAC5BsgC,EAAMu0C,iBACc,QAApBw8M,EAAAxqR,EAAMmiL,mBAAc,IAAAqoG,GAApBA,EAAA/yR,KAAAuI,EAAoB,CAAExF,EAAGi/B,IACzBuwP,EAAW7wR,OAAQ,IAanBsxR,eAVqB,SAAChxP,GACtBA,EAAMu0C,kBAWV,okBC1BA,IAAA08M,GAAet1P,kBAAgB,CAC7Bx9B,KAAM,oBACNoI,MAAOw2B,GAAAA,MACFsyP,IAAA,CAAA,EAAA,CACHvkO,QAASzqD,SACT6wR,cAAe7wR,SACf8wR,YAAa9wR,SACb+wR,aAAc/wR,SACdgxR,WAAYxzR,SAEd+9B,eAAMr1B,EAAAuiC,GAAkB,IAATpC,EAAAoC,EAAApC,MACb4rC,EAA2C7nC,SAAOlkC,GAA1CgpR,EAAcj9M,EAAdi9M,aAAch3P,EAAA+5C,EAAA/5C,SAAUg1C,EAAO+E,EAAP/E,OAC1B5nD,EAASzH,EAAAA,UAAS,WAAA,OAAM3X,EAAMof,UAE9BygB,EAAiBU,KAEf6jC,EAAmB/yC,KAAnB+yC,eACFmlN,EAAAn4P,GAAAA,OAAkBpxB,EAAM0kB,YAAA,WAExBo3J,EAAOgxB,GAAQ9sM,EAAM8qR,WAAY9jN,GAC/BgjN,EAAeluG,EAAfkuG,WAEFe,EAAiB76P,EAAAA,MAEjByG,EAAUhf,EAAAA,UAAS,WAAA,IAAAqzQ,EAAA,MAAM,IAAA55P,OAC1Bm4P,EAAAtwR,aAAAA,QAAAm4B,OACGm4P,EAAiC,qBAACP,EAAa7vR,MAAM,IAAGF,EAAA,CAAA,EAAA,GAAAm4B,OACxDm4P,EAAgC,mBAAkC,UAAf,QAAnByB,EAAAhC,EAAa7vR,MAAM,UAAnB6xR,IAAmBA,OAAnBA,EAAAA,EAAuB38N,aAG/Db,EAAyDpB,GAAc,CACrEuB,sBAAuBC,GACvBC,sBAAuBC,KAFjBH,EAAAH,EAAAG,sBAAuBE,EAAsBL,EAAtBK,sBAKzBwuI,EAAc,WAAM,IAAA4uF,EACpB,GAACjrR,EAAMgpR,aAAaxyR,OAApB,CACE,IAAAu1B,EAAOi9P,EAAa7vR,MAAM,GAChC,IAAK4yB,EAAa,OAAA,KAClB,IAAMY,GAAMZ,aAAAA,EAAAA,EAAMY,OAAOZ,SAAgB,QAAhBk/P,EAAAl/P,EAAMqiL,gBAAU,IAAA68E,OAAA,EAAhBA,EAAgBt+P,KACzC,OAAAiK,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OACiBm4P,gEAEH,CAAC58P,GAAG43B,QACH,SAAC9mC,SAAKo1D,EAAAhb,EAAAgb,KAAA,OAAAj8C,EAAAA,YAAA4lK,GAAA,CAAAzB,IAA4BpuK,GAAOZ,EAAKm/P,YAAcr4M,EAAA3gD,MAAA,GAAAJ,QAAA,IAAA,KAAA,GAChE9xB,EAAMsnR,kBAAA,OATe,GAe5B6D,EAAkB,WAClB,GAACnrR,EAAMgpR,aAAaxyR,OAApB,CACE,IAAAu1B,EAAOi9P,EAAa7vR,MAAM,GAChC,OAAK4yB,EACgB,cAAjBA,aAAA,EAAAA,EAAMsiC,QAENz3B,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OAAem4P,EAAA,sBAAA3yP,CAAAA,EAAAA,YAAA2U,GAAA,KAAA,MAEZvrC,EAAM6nR,oBAAAjxP,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAAsCm4P,EAAA,qBAAA,CAAiCx9P,EAAKq8I,QAAQ,aAJ7F,EADc,IAFc,GAuG5BhxF,EAAa,WAAM,IAAAthC,EAXcs1O,EAC/BC,EAMAxqL,EAKA90E,EAAOi9P,EAAa7vR,MAAM,GAChC,OAAI4yB,IAAS,CAAC,WAAY,UAAW,OAAQ,WAAWvU,SAASuU,EAAKsiC,SAAYtiC,EAAKsiC,OAGvFz3B,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OACiBm4P,EAAyB,aAAAhiP,QAASvnC,EAAM2qR,eAAA,UACpD70O,EAAA3V,EAAM,eAAA,IAAA2V,OAAA,EAANA,EAAAr+C,KAAA0oC,MAjBCkrP,kEAEc9B,mBAA4D,UAAhCnqQ,EAAOjmB,MAAMiyB,yBAAmB,IAAAggQ,OAAA,EAAhCA,EAAgC9/P,SAAAsL,EAAAO,YACtE,OAAA,KAAA,CAAA,oBAA0B/X,EAAOjmB,MAAMwyB,QAAQE,iBAGnDg1E,gBAAsBzhF,MAAAA,KAAAA,CAAAA,EAAOjmB,MAAMwyB,QAAQC,eAC1Co+P,EAAW7wR,MAAQ0nG,EAAgBwqL,KAvFlB,WAAM,IAAAC,EzfmCJxlR,EyflCpBimB,EAAOi9P,EAAa7vR,MAAM,GAC1B+tE,EAAWlnE,EAAMumE,YAAcA,GAAYvnE,WAAA,EAAA,CAAA+sB,EAAKn0B,eAASoI,EAAMumE,eAAex6C,EAAKn0B,KAEnF2zR,EAAW,CAAA30P,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OACAm4P,uEACGA,EAAA,kBAAA,CAA8BriN,IAC7B,aAAhBn7C,EAAKsiC,QAAyB88N,IACd,YAAhBp/P,EAAKsiC,QAAwBz3B,EAAAO,YAAAw2B,EAAuB,KAAA,MACpC,SAAhB5hC,EAAKsiC,QAAqBz3B,EAAAO,YAAA02B,EAAA,KAAA,QAAuBj3B,EAAAA,YAAA,QAAA,CAAAC,MAAA,GAAAzF,OAEnCgzC,EAAe7yC,oBAC7BnS,EAAOjmB,MAAM4yB,KAAKE,aAAa,UzfuBVnmB,EyfvB4BimB,EAAKxnB,KzfwB3DuB,EAAS,KACXsrB,GAAAA,OAAUtrB,EAAA,UAERA,GAAU,MAAQA,EAAS,QAC7BsrB,GAAAA,QAAWtrB,EAAS,MAAM03F,QAAQ,GAAC,OAEjC13F,GAAU,QACZsrB,GAAAA,QAAWtrB,EAAS,SAAS03F,QAAQ,GAAC,OAEjC,MyfjC4D5mE,EAAAA,YAAA,QAAA,CAAAC,MAAA,GAAAzF,OAE5CgzC,EAAe7yC,oBAC7BnS,EAAOjmB,MAAM4yB,KAAKK,sBAAsB,SAAEL,EAAKy/P,YAAc,OAIhE,OAAA50P,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OAAem4P,EAAA,uBACZvpR,CAAgB,UAAhBA,EAAMmuB,OAAqBkuK,IAAYzlK,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OACzBm4P,EAAA,4BACZ1pP,CAAAA,EAAe,kBAAmB,CAAER,OAAQ,CAAEmoC,MAAOxnE,EAAMgpR,iBAAqBuC,EAAA30P,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OAElEm4P,EAAA,mBACZ,CAAA,CAAC,WAAY,WAAW/xQ,SAASuU,EAAKsiC,UAAYr8B,EAAS74B,OAC1Dy9B,EAAAA,YAAA+U,GAAA,CAAAxd,MAAA,UAAAmZ,QAAA,OAAAzQ,MAAAzF,GAAAA,OAGYm4P,uCACD,SAAC/uR,GACR,IAAAixR,EAAA,OAAqB,QAArBA,EAAAzrR,EAAM6qR,oBAAe,IAAAY,OAAA,EAArBA,EAAAh0R,KAAAuI,EAAqB,CACnBxF,EAAAA,EACAuxB,KAAM/rB,EAAM+oR,cAAc,IAAM/oR,EAAMwnE,MAAM,IAC7C,GAAA,CAAArkD,QAAA,WAAA,MAAAmoQ,SAAAA,EAGFlsQ,EAAOjmB,aAAA,IAAAmyR,OAAA,EAAPA,EAAcngQ,sBAGjBnrB,EAAM4mR,YAA8B,YAAhB76P,EAAKsiC,QACzBz3B,EAAAO,YAAAwU,GAAA,CAAAxd,MAAA,UAAAmZ,QAAA,OAAAtV,SAGYA,EAAS74B,MAAAouC,QACV,WAAA,IAAAmkP,EAAA,OAAY,QAAZA,EAAM1rR,EAAM4qR,mBAAA,IAAAc,OAAA,EAANA,EAAAj0R,KAAAuI,EACf,EAAA62B,MAAAzF,GAAAA,OAAUm4P,EAAA,yBAAA,CAAApmQ,QAAA,WAAA,MAAA,CAET/D,EAAOjmB,MAAMiyB,kBAAkBE,OAAA,MAIrC,CAAC,OAAQ,WAAW9T,SAASuU,aAAAA,EAAAA,EAAMsiC,UAAYr8B,EAAS74B,OAAAy9B,EAAAO,YAAA,MAAA,CAAAN,MAAAzF,GAAAA,OACxCm4P,EAAA,mBAAA3yP,CAAAA,EAAAO,YAAAwU,GAAA,CAAAxd,MAAA,UAAAmZ,QAAA,OAAAtV,SAIDA,EAAS74B,MAAA09B,MAAAzF,GAAAA,OACTm4P,EAAA,6BAAAhiP,QACDvnC,EAAM2qR,eAAA,CAAAxnQ,QAAA,WAAA,MAAA,CAEd/D,EAAOjmB,MAAMiyB,kBAAkBG,sEAKtByG,EAAS74B,MACnB09B,MAAAzF,GAAAA,OAAUm4P,EAAA,wBAAAhiP,QACD,SAAC/sC,GAAkB,OAAAwF,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGS,MAAO,EAAG8wB,KAAAA,GAAM,GAAA,CAAA5I,QAAA,WAAA,MAAA,CAE/D/D,EAAOjmB,MAAMiyB,kBAAkB,OAAA,UAuBnCugQ,IASX,OAAO,WAAA,IAAAC,EAAA,OAAAh1P,EAAAA,YAAA,MAAA,CAAA1G,IAEE66P,QACEp0P,EAAQx9B,MACfkiH,OAAQygE,EAAKO,WACbisG,YAAaxsG,EAAKuuG,gBAAA5uK,WACNqgE,EAAK2uG,eAAAtoG,YACJrG,EAAKyuG,iBAEjB,EAAgBqB,QAAhBA,EAAA5rR,EAAMukD,eAANqnO,IAAgBA,OAAhBA,EAAAA,EAAAn0R,KAAAuI,EAAgByd,EAAAA,EAAG,CAAE+pD,MAAOwhN,EAAa7vR,MAAO6wR,WAAYA,EAAW7wR,UAAYi+E,MAG1F,ukBChLF,IAAAy0M,GAAez2P,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAOw2B,GAAAA,MACFsyP,IAAA,CAAA,EAAA,CACH5lL,SAAUphE,QACVxhC,IAAKtH,OACLg5B,SAAU8P,QACV+lP,mBAAoB/lP,QACpB6oP,cAAe7wR,SACf8wR,YAAa9wR,SACb+wR,aAAc/wR,SACd4uR,UAAW5uR,SACX6tR,kBAAmB7lP,UAErBzM,MAAAA,SAAMr1B,GACJ,IAAA+rE,EAAqD7nC,SAAOlkC,GAApDgpR,EAAcj9M,EAAdi9M,aAActkQ,EAAAqnD,EAAArnD,YAAaw+E,IAAAA,SAAU5iG,EAAIyrE,EAAJzrE,IACvC8e,EAASzH,EAAAA,UAAS,WAAA,OAAM3X,EAAMof,UACpCouC,EAAmEpB,GAAc,CAC/Eq0B,QAASC,GACTsU,WAAYC,GACZgiG,WAAYC,GACZrpI,sBAAuBC,KAJjBknC,EAAYxnC,EAAZwnC,WAAYiiG,EAAAzpI,EAAAypI,WAAYx2G,EAASjzB,EAATizB,QAAS5yB,EAAAL,EAAAK,sBAOnChuB,EAAiBU,KAEjBurP,EAAcn0Q,EAAAA,UAAS,WAAM,IAAAo0Q,EACjC,OAAI7oL,EAAS/pG,OACHmH,EAAInH,OAAS6vR,EAAa7vR,MAAM3C,OAAS8J,EAAInH,QAE1B4yR,QAAtBA,EAAC/C,EAAa7vR,aAAb4yR,IAAqBA,GAArBA,EAAqB,GAC/B,IAEMC,EAAoB,SAACjgQ,EAAkB9wB,GAC3C,OAAA27B,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OACiB1M,EAAYvrB,uCAA8BurB,EAAYvrB,MAAA,sBAAAy9B,CAAAA,EAAAO,YAAAqlK,GAAA,CAAA3lK,MAAA,GAAAzF,OAClD1M,EAAYvrB,MAA4B,uBAAA4hM,IAAKhvK,EAAKY,KAAOZ,EAAKm/P,IAAAh5P,MAAA,GAAAwoK,IAAA,WAAA,MAAA9jK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAChE1M,EAAYvrB,MAAA,uBAAA,CAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACT1M,EAAYvrB,MAAgC,2BAAAouC,QAAS,SAAC/sC,GAAA,OAAMA,EAAE24E,iBAC5E,GAAA,CAAAv8C,EAAAA,YAAAulL,GAAA53K,aAAA,CAAAwyK,OACUiyE,EAAa7vR,MAAM6L,KAAI,SAAC+X,GAAA,OAAkBA,EAAE4P,KAAO5P,EAAEmuQ,OAAGl0E,aAClD/7M,EAAAspD,QACL,SAAC9mC,EAAG8kB,GAAa,IAAXswC,IAAAA,KACb,OAAAj8C,EAAAA,YAAAo+D,EAAA,CAAAztD,QAEa,SAAAgiB,GAA8B,IAAA0iO,EAA3BzxR,IAAAA,EACQ,QAAlByxR,EAAAjsR,EAAM0oR,iBAAY,IAAAuD,GAAlBA,EAAAx0R,KAAAuI,EAAkB,CAAE+rB,KAAAA,EAAM9wB,MAAAA,EAAOT,EAAAA,IAC5Bq4E,GACP,GACF,KAEJ,GACK7yE,EAAMsnR,kBACZ,SAEDtnR,EAAMgyB,UACN4E,EAAAO,YAAA4gB,EAAA5Y,eAAAvI,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OACkB1M,EAAYvrB,MAAwC,oCAAA,MAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACpD1M,EAAYvrB,MAAA,2BAAAouC,QAAyC,SAAC/sC,GAAM,OAAAA,EAAE24E,iBAAgB,GAAAv8C,CAAAA,EAAAO,YAAA8/J,EAAA,CAAA1vJ,QACvE,SAAAsiB,GAAA,IAAAqiO,EAAG1xR,EAAAqvD,EAAArvD,EAAA,OAA2BwF,SAAkB,QAAlBksR,EAAAlsR,EAAO+9E,gBAAPmuM,IAAkBA,OAAlBA,EAAAA,EAAAz0R,KAAAuI,EAAkB,CAAExF,EAAAA,EAAGuxB,KAAAA,EAAM9wB,MAAAA,GAAU,GAE9F,eAOJkxR,EAAqB,SAACpgQ,EAAkBqgQ,GAAqB,IAAAd,EAE/D,OAAA10P,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAACu1P,EAAA,GAAAh7P,OAAa1M,EAAYvrB,MAAiB,aAAAi4B,OAAApxB,EAAMmuB,MAAS,KAAAiD,OAAArF,EAAKsiC,UAAQz3B,CAAAA,EAAAO,YAAA6P,GAAA,CAAAlV,SAC/D,EAAAvtB,KAAA,UAAA,MAAAqyB,EAAAO,YAAA,IAAA,KAAA,SAAAm0P,EAEflsQ,EAAOjmB,oBAAiB,UAAxBmyR,EAAcj/P,gBAAU,IAAAi/P,OAAA,EAAxBA,EAAwBh/P,cACxBtsB,EAAM6nR,mBAAAz2P,IAAAA,OAAyBrF,EAAKq8I,aAAa,QAMpDikH,EAAiB,SAACtgQ,EAAkB9wB,EAAemxR,GAAqB,IAAAnB,EAAAqB,EAE1E,OAAA11P,EAAAA,YAAA,MAAA,CAAAC,MAAYu1P,GAAA,CAAAx1P,EAAAA,YAAAi3B,EAAAj3B,KAAAA,MAAAA,EAAAO,uBAED,QAAL8zP,EAAAl/P,EAAKqiL,gBAAL68E,IAAKA,OAALA,EAAAA,EAAe/4P,mBAAS9S,EAAOjmB,aAAA,IAAAmzR,WAAAA,EAAPA,EAAcjgQ,gBAAU,IAAAigQ,OAAA,EAAxBA,EAAwB9/P,YAAAoK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OACrC1M,EAAYvrB,oEACTurB,EAAYvrB,MAAgC,2BAAAouC,QAAS,SAAC/sC,GAAA,OAAMA,EAAE24E,iBAAgB,GAAAv8C,CAAAA,EAAAO,YAAA8/J,EAAA,CAAA1vJ,QACvE,SAAAswB,GAAA,IAAA00N,EAAG/xR,EAAEq9D,EAAFr9D,EAAE,OAAyBwF,SAAkB,UAAlBA,EAAO+9E,gBAAPwuM,IAAkBA,OAAlBA,EAAAA,EAAA90R,KAAAuI,EAAkB,CAAExF,EAAAA,EAAGuxB,KAAAA,EAAM9wB,MAAAA,GAAO,GAAA,aAOjG,OAAO,WAAM,IAAAuxR,EAAAC,EAELC,EAAa7sP,EAAe,kBAAmB,CACnDR,OAAQ,CACNsrP,cAAe3qR,EAAM2qR,cACrBC,YAAa5qR,EAAM4qR,YACnBC,aAAc7qR,EAAM6qR,aACpBnC,UAAW1oR,EAAM0oR,UACjB3qM,SAAU/9E,EAAM+9E,SAChBgrM,cAAe/oR,EAAM+oR,cACrBE,qBAAsBjpR,EAAMipR,qBAC5B7pQ,OAAQpf,EAAMof,OACdooD,MAAOwhN,EAAa7vR,SAGpB,GAAAuzR,EAAmB,OAAAA,EAEvB,IAAMC,EAAkB,GAAAv7P,OAAG1M,EAAYvrB,MAAA,uBAAAi4B,OAA2B1M,EAAYvrB,MAAA,kBAC9E,OAAAy9B,EAAAO,wBAAAP,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OAEkB1M,EAAYvrB,MAAA,kBAAA,SAAAqzR,EACvBxD,EAAa7vR,aAAA,IAAAqzR,OAAA,EAAbA,EAAoBxnR,KAAI,SAAC+mB,EAAkB9wB,GACpC,IAjIFsiB,EAiIEqvQ,EAAAx7P,GAAAA,OAAuB1M,EAAYvrB,MAAA,sBAEnCizR,EAAW,GAAAh7P,OAAG1M,EAAYvrB,MAAA,4BAAAi4B,OAAgC1M,EAAYvrB,MAAA,qBACtE+tE,EAAWlnE,EAAMumE,YAAcA,GAAYvnE,WAAA,EAAA,CAAA+sB,EAAKn0B,eAASoI,EAAMumE,eAAex6C,EAAKn0B,KACzF,OAAAg/B,EAAAA,YAAA,KAAA,CAAAC,MACa81P,EAAAn0R,IAAsByC,GAAA,CACd,aAAhB8wB,EAAKsiC,QAAyB89N,EAAmBpgQ,EAAMqgQ,GACvC,SAAhBrgQ,EAAKsiC,QAAqBg+N,EAAetgQ,EAAM9wB,EAAOmxR,IACrD,CAAC,WAAY,QAAQ50Q,SAASuU,EAAKsiC,SAAW29N,EAAkBjgQ,EAAM9wB,GACvE6mC,QAAQolC,GAAYlnE,EAAM2nR,qBACxB57P,EAAKY,IACJiK,EAAAO,YAAA6Z,GAAA,CAAA7J,KACQpb,EAAKY,IAAAkK,MACJ+1P,EACP55P,OAAA,SAAAqd,MAAA,QAAA9rC,KAAA,QAAAytB,UAGU,IAlJhBzU,EAoJO2pD,EApJP,mBAAA3pD,GAAAg1B,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GAoJO2pD,EAAA,CAAA/jD,QAAA,WAAA,MAAA,CAAA+jD,EAAA,KAAAtwC,EAAAO,YAAA,OAAA,CAAAN,MAGU+1P,GAAoB1lN,CAAAA,MAI1C,IAEA4kN,EAAY3yR,OACXy9B,EAAAA,YAAA,KAAA,CAAAC,MAAW81P,EAAiBplP,QAASvnC,EAAM2qR,eAAA,CAAA/zP,EAAAO,YAAA,MAAA,CAAAN,MAEhC,CAAAzF,GAAAA,OACF1M,EAAYvrB,MAAAi4B,sBAAAA,GAAAA,OACZ1M,EAAYvrB,MAAAi4B,2BAAAA,GAAAA,OACZ1M,EAAYvrB,MAAAF,qBAAAA,EAAAm4B,CAAAA,EAAAA,GAAAA,OAET1M,EAAYvrB,MAAsB6G,gBAAAA,EAAMgyB,YAEhD,CAAA4E,EAAAO,YAAAspD,EAAA,KAAA,MAAA7pD,EAAAO,YAAA,IAAA,CAAAN,MAGU,CAAA,GAAAzF,OAAI1M,EAAYvrB,MAAA,WAAA,GAAAi4B,OAAmB1M,EAAYvrB,6BACtD,CAAc,QAAdszR,EAAArtQ,EAAOjmB,aAAOszR,IAAAA,GAAAA,QAAAA,EAAdA,EAAcrhQ,6BAAAqhQ,SAAdA,EAAiCnlQ,gBASpD,ukBClJF,IAAAulQ,GAAez3P,kBAAgB,CAC7Bx9B,KAAM,yBACNoI,MAAOw2B,GAAAA,MACFsyP,IAAA,CAAA,EAAA,CACHlB,cAAe9lP,QACf8oP,YAAa9wR,SACb+wR,aAAc/wR,SACdgxR,WAAYxzR,OACZ06B,SAAU8P,QACV0lP,cAAe1lP,QACf67C,UAAW77C,QACX6lP,kBAAmB7lP,QACnBmmP,aAAc3wR,OACdyvR,mBAAoBzvR,OACpBoxR,UAAW5uR,WAEbu7B,eAAMr1B,EAAAuiC,GAAkB,IAATpC,EAAAoC,EAAApC,MAEP4rC,EAA6D7nC,SAAOlkC,GAAlE0rB,IAAAA,UAAWsG,EAAU+5C,EAAV/5C,SAAUg3P,EAAAj9M,EAAAi9M,aAActkQ,IAAAA,YAAasiD,EAAO+E,EAAP/E,OAClDuiN,EAAe5xQ,EAAAA,UAAS,WAAA,MAAA,GAAAyZ,OAAS1M,EAAYvrB,MAAc,UAAA,IAE3DimB,EAASzH,EAAAA,UAAS,WAAA,OAAM3X,EAAMof,UAE9BygB,EAAiBU,KAEjBitB,EAYFpB,GAAc,CAChB4oC,WAAYC,GACZgiG,WAAYC,GACZvpI,sBAAuBC,GACvBC,sBAAuBC,GACvBu7N,eAAgBC,GAChBwD,cAAeC,GACfC,YAAaC,GACbC,aAAcC,GACdC,mBAAoBC,GACpBC,SAAUC,GACVC,UAAWC,KAtBXz4L,EAAAxnC,EAAAwnC,WACAiiG,EAAAzpI,EAAAypI,WACAtpI,EAAAH,EAAAG,sBACAE,EAAAL,EAAAK,sBACAw7N,EAAA77N,EAAA67N,eACAyD,EAAAt/N,EAAAs/N,cACAE,EAAAx/N,EAAAw/N,YACAE,EAAA1/N,EAAA0/N,aACAE,EAAA5/N,EAAA4/N,mBACAE,EAAA9/N,EAAA8/N,SACAE,EAAAhgO,EAAAggO,UAeI1xG,EAAOgxB,GAAQ9sM,EAAM8qR,WAAY9jN,GAEjC0mN,EAAqBx9P,MAAkB,IACvCy9P,EAAez9P,MAAI,GAEnB09P,EAAaj2Q,EAAAA,UAAS,WAC1B,OAAI+T,EAAUvyB,MAAci4B,GAAAA,OAAGhS,EAAOjmB,MAAMkzB,SAASC,eAC9ClN,EAAOjmB,MAAMiyB,kBAAkBE,MACxC,IAEMuiQ,EAAkBl2Q,EAAAA,UAAS,WAE/B,YADsC,IAApB3X,EAAM29E,WAAiC39E,EAAM29E,UAE3D,CACE09B,OAAQygE,EAAKO,WACbisG,YAAaxsG,EAAKuuG,gBAClB5uK,WAAYqgE,EAAK2uG,eACjBtoG,YAAarG,EAAKyuG,iBAEpB,EACN,IAEMuD,EAAe,WACnB,IAAMC,EAAU,CACdnoQ,QAAAgR,EAAAO,YAAAw2B,EAAgC,KAAA,MAChCvmC,KAAAwP,EAAAO,YAAA02B,EAA6B,KAAA,MAC7BxhC,SAAAuK,EAAAO,YAAAoU,GAAoB,KAAA,MACpByiP,QAAAp3P,EAAAO,YAAAkyP,EAAA,KAAA,OAEMh9P,EAAajN,EAAOjmB,MAApBkzB,SAOD,MAAA,CACL0hQ,QAAAA,EACAE,QARc,CACdroQ,QAASyG,aAAAA,EAAAA,EAAUI,YACnBrF,KAAMiF,aAAAA,EAAAA,EAAUG,SAChBH,SAAUA,aAAAA,EAAAA,EAAUC,cACpB0hQ,QAAS3hQ,aAAU,EAAVA,EAAUE,eAQjBwmJ,EAAc,uDACHw2G,EAAapwR,MACzB,iBAAA2iL,CAAAA,EAAKkuG,WAAW7wR,MAAQimB,EAAOjmB,MAAMwyB,QAAQC,aAAexM,EAAOjmB,MAAMwyB,QAAQG,oBAwEhFoiQ,EAAe,SAACniQ,GAAqB,IAAAoiQ,EAAAC,EACzCC,EAA6BP,IAArBC,EAAAM,EAAAN,QAASE,EAAQI,EAARJ,QACjB,OAAAr3P,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACiBm4P,EAAapwR,MAAA,kBAAA,CACzB40R,EAAQhiQ,EAAKsiC,QAAAz3B,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OACEm4P,EAAapwR,YAAUi4B,OAAApxB,EAAMmuB,kBAASpC,EAAKsiC,SACxD,CAAe,QAAf8/N,EAAApiQ,EAAKqiL,gBAAU,IAAA+/E,GAAfA,EAAej8P,QAAak8P,QAALA,EAAAriQ,EAAKqiL,gBAALggF,IAAKA,OAALA,EAAAA,EAAel8P,QAAgC+7P,EAAQliQ,EAAKsiC,QACnFruD,EAAM6nR,oBAAsC,aAAhB97P,EAAKsiC,kBAA4BtiC,EAAKq8I,SAAW,EAAO,KAAA,QAiCvFkmH,EAAuB,SAACrnN,GACxB,OAAAvB,GAAgB7tE,KAAKovE,GACvBrwC,cAAAo2P,EAAA,KAAA,MAEErnN,GAAkB9tE,KAAKovE,GACzBrwC,cAAAk2P,EAAA,KAAA,MAEElnN,GAAiB/tE,KAAKovE,GACxBrwC,cAAAs2P,EAAA,KAAA,MAEErnN,GAAgBhuE,KAAKovE,GACvBrwC,cAAAw2P,EAAA,KAAA,MAEEtnN,GAAajuE,KAAKovE,GACpBrwC,cAAA42P,EAAA,KAAA,MAEF52P,cAAA02P,EAAA,KAAA,OAGIiB,EAAsB,SAACxiQ,GAC3B,IAAKA,IAAUA,EAAKm/P,KAAOn/P,EAAKY,IAAa,OAAA,KACvC,IAAAs6C,EAAWl7C,EAAKm/P,IAAIpvR,KACpBs+B,EAAAhJ,GAAAA,OAAem4P,EAAapwR,MAAA,oBAC9B,OAAAssE,GAAa5tE,KAAKovE,GACpBrwC,EAAAA,YAAA4lK,GAAA,CAAA3lK,MAEWuD,EACP2gK,IAAKhvK,EAAKY,KAAOZ,EAAKm/P,IACtBxwF,IAAA,aAAAxoK,MAAA,GAAAJ,QAAA,GAAAyV,QAGS,SAAC/sC,GAAkB,IAAAg0R,EAC1Bh0R,EAAEwzE,iBACiB0/M,EAAAv0R,MAAQ,CAAC4yB,GAC5B4hQ,EAAax0R,MAAQ,UACrBq1R,EAAAxuR,EAAM0oR,wBAAN8F,EAAA/2R,KAAAuI,EAAkB,CAAE+rB,KAAAA,EAAM9wB,MAAO,EAAGT,EAAAA,GACtC,GACF,MAGJo8B,EAAAA,YAAA,MAAA,CAAAC,MAAmBuD,GAAYk0P,CAAAA,EAAqBrnN,MAGhDwnN,EAAiB,WAAM,IAAAC,EAAAC,EAAAC,EAAAC,EACrBnC,EAAa7sP,EAAe,kBAAmB,CACnDR,OAAQ,CACNwrP,aAAc7qR,EAAM6qR,aACpBD,YAAa5qR,EAAM4qR,YACnBlC,UAAW1oR,EAAM0oR,UACjB3qM,SAAU/9E,EAAM+9E,SAChBgrM,cAAe/oR,EAAM+oR,cACrBE,qBAAsBjpR,EAAMipR,qBAC5B7pQ,OAAQpf,EAAMof,OACdooD,MAAOxnE,EAAMgpR,aACb8B,WAAY+C,EAAgB10R,SAGhC,OAAIuzR,GAAc1sR,EAAMinR,gBAAwByF,EAChD91P,EAAAO,oBAAAoN,aAAA,CAAA1N,MAAA,GAAAzF,OACmBm4P,EAAapwR,uBAAyB00R,EAAgB10R,OAAAy9B,CAAAA,EAAAO,0BAAAP,EAAAO,YAAA,KAAA,KAAA,CAAAP,EAAAA,YAAA,KAAA,KAAA,CAG/C83P,QAH+CA,EAG5DtvQ,EAAOjmB,MAAM4yB,gBAAA2iQ,SAAbA,EAAmB1iQ,yCACb,CAAEsqD,SAAU,UAAQ,CAAuBq4M,QAAvBA,EAAIvvQ,EAAOjmB,MAAM4yB,YAAb4iQ,IAAmBA,OAAnBA,EAAAA,EAAmB1iQ,eAAA2K,EAAAO,YAAA,KAAA,CAAAtE,MAC3C,CAAEyjD,SAAU,UAAQs4M,CAAuBA,QAAvBA,EAAIxvQ,EAAOjmB,MAAM4yB,YAAb6iQ,IAAmBA,OAAnBA,EAAAA,EAAmB1iQ,iBACrD8F,EAAS74B,MAAQ,KAAOy9B,EAAAA,YAAA,KAAA,KAAA,CAAwB,QAAxBi4P,EAAKzvQ,EAAOjmB,MAAM4yB,YAAb8iQ,IAAmBA,OAAnBA,EAAAA,EAAmB1iQ,wBAAvByK,EAAAA,YAI3B,QAAA,KAAA,EAACoyP,EAAa7vR,MAAM3C,QAAAogC,EAAAO,YAAA,KAAA,KAAA,CAAAP,EAAAA,YAAA,KAAA,CAAAgjB,QAEJ,GAAI,CAAAm5H,QAGpBi2G,EAAa7vR,MAAM6L,KAAI,SAAC+mB,EAAM9wB,GAAU,IAAAyuR,EAvSnCnsQ,E3f8BazX,E2f4QXgpR,EADwB9uR,EAAMwnR,eAETwB,EAAa7vR,MAAMukE,OAAM,SAACz+B,SAAyB,YAAhBA,EAAKovB,SAAyBpvB,EAAKovB,UA5F9E,SAACpzD,GAE5B,IAAAqxR,EAAA,OAAU,IAAVrxR,8BACe+tR,EAAa7vR,MAAM3C,uBAAkB+yR,EAAapwR,MAC7D,4BAAAy9B,CAAAA,EAAAO,YAAA4T,GAAA,CAAA5c,MAAA,UAAAmZ,QAAA,OAAAre,gBAAAqjQ,EAGWltQ,EAAOjmB,aAAO,IAAAmzR,WAAAA,EAAdA,EAAclhQ,yBAAA,IAAAkhQ,OAAA,EAAdA,yBACC/C,EAAapwR,MACvB,YAAAouC,QAAS,SAAC/sC,GAAkB,OAAAwF,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGS,OAAW,EAAA8wB,UAAM,GAAW,GAAA,QAG9E,IAAA,CAiFUgjQ,CAAqB9zR,GA1GP,SAAC8wB,EAAkB9wB,GAAA,IAAAqwR,EAAA,OAAA10P,EAAAO,YAAA,KAAA,KAAA,CAAAP,EAAAA,YAAAmU,GAAA,CAAA5c,MAAA,UAAAmZ,QAAA,OAAAre,gBAAAqiQ,EAKlClsQ,EAAOjmB,aAAO,IAAAmyR,WAAAA,EAAdA,EAAclgQ,yBAAA,IAAAkgQ,OAAA,EAAdA,EACT,OAAAz0P,MAAA,GAAAzF,OAAUm4P,EAAapwR,MACvB,YAAAouC,QAAS,SAAC/sC,GAAkB,OAAAwF,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGS,MAAAA,EAAO8wB,KAAAA,GAAM,GAAA,QAoGnDijQ,CAAsBjjQ,EAAM9wB,GAC5BisE,EAAiB,QAANwiN,EAAA1pR,EAAMumE,mBAANmjN,IAAMA,GAANA,EAAmBlzR,OAAS+vE,GAAAvnE,WAAA,EAAA,CAAY+sB,EAAKn0B,MAAAw5B,OAAAt5B,EAASkI,EAAMumE,eAAex6C,EAAKn0B,KAC3Fq3R,EAAgBjvR,EAAM4nR,cAAAhxP,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACXm4P,EAAapwR,MAAA,gBAAA,CACzBo1R,EAAoBxiQ,GACpBm7C,IAGHA,EAEIgoN,EAAenjQ,EAAKY,IAAAiK,EAAAA,YAAAoa,GAAA,CAAA7J,KAEZpb,EAAKY,IAAAqG,OAAA,SAAAqd,MAAA,QAAAre,UAA6C,GAzT5D,mBAAAzU,EA0TC0xQ,IA1TD18O,oBAAAj7C,OAAAC,UAAAC,SAAAC,KAAA8lB,KAAAg1B,EAAA1T,QAAAthB,GA0TC0xQ,EAAA,CAAA9rQ,QAAA,WAAA,MAAA,CAAA8rQ,EAAA,IAGHA,EAEF,OAAAr4P,EAAAA,YAAA,KAAA,CAAAp+B,IACWuzB,EAAKn0B,KAAOqD,EAAQ8wB,EAAKxnB,MAAA,CAAAqyB,EAAAO,YAAA,KAAA,CAAAN,MAAA,GAAAzF,OAClBm4P,EAAapwR,MAAA,eAAAX,IAAyBuzB,EAAKn0B,KAAOm0B,EAAKY,KAClEuiQ,CAAAA,IAAAt4P,EAAAA,YAEEu4P,KAAAA,KAAAA,E3ftSQrpR,E2fsSOimB,EAAKxnB,K3frSrCuB,EAASkgE,GAASE,GACpB90C,GAAAA,OAAUtrB,EAAA,UAERA,GAAUkgE,GAASE,IAAMpgE,EAASkgE,GAASG,GAC7C,GAAA/0C,QAAWtrB,EAASkgE,GAASE,IAAIs3B,QAAQ,GAAC,OAExC13F,GAAUkgE,GAASG,IAAMrgE,EAASkgE,GAASI,GAC7C,GAAAh1C,QAAWtrB,EAASkgE,GAASG,IAAIq3B,QAAQ,GAAC,OAGxC13F,GAAUkgE,GAASI,GACrB,GAAAh1C,QAAWtrB,EAASkgE,GAASI,IAAIo3B,QAAQ,GAAC,OAErC,+B2fyRc0wL,EAAaniQ,KACjBiG,EAAS74B,MAAQ,KAAO21R,GAG/B,SAMFM,EAAkB,WAChB,IAAA1C,EAAa7sP,EAAe,kBAAmB,CACnDR,OAAQ,CACNwrP,aAAc7qR,EAAM6qR,aACpBD,YAAa5qR,EAAM4qR,YACnB7sM,SAAU/9E,EAAM+9E,SAChB2qM,UAAW1oR,EAAM0oR,UACjBK,cAAe/oR,EAAM+oR,cACrBE,qBAAsBjpR,EAAMipR,qBAC5B7pQ,OAAQpf,EAAMof,OACdooD,MAAOxnE,EAAMgpR,aACb8B,WAAY+C,EAAgB10R,SAGhC,OAAIuzR,GAAc1sR,EAAMinR,gBAAwByF,EAChD91P,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OACgBm4P,EAAapwR,0BACxB6G,CAAAA,EAAMgpR,aAAahkR,KAAI,SAAC+mB,EAAM9wB,GAAU,OA/OzB,SAAC8wB,EAAkB9wB,GAAkB,IAAAgwR,EACzDoE,EAA6BvB,IAArBC,EAAAsB,EAAAtB,QAASE,EAAQoB,EAARpB,QACX/mN,EAAWlnE,EAAMumE,aAAex6C,EAAKn0B,KAAO2uE,GAAAvnE,WAAA,EAAA,CAAY+sB,EAAKn0B,MAAAw5B,OAAAt5B,EAASkI,EAAMumE,eAAex6C,EAAKn0B,KACtG,OAAAg/B,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAAzF,OACgBm4P,EAAapwR,MAAA,eAAAX,IAAyBuzB,EAAKn0B,KAAOqD,EAAQ8wB,EAAKq8I,QAAUr8I,EAAKsiC,QAAU,KAAA,CAAAz3B,EAAAO,YAAA,MAAA,CAAAN,MAE3F,IAAAzF,OACFm4P,EAAapwR,wBAAAF,EAAA,CAAA,EAAA,GAAAm4B,OACV1M,EAAYvrB,MAAsB,gBAAgB,YAAhB4yB,EAAKsiC,UAC/C,CAEiB,aAAhBtiC,EAAKsiC,QAAWz3B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACAm4P,EAAapwR,6BAAAi4B,OAA2Bm4P,EAAapwR,MAAAi4B,MAAAA,OAAUpxB,EAAMmuB,MAAA,cAAA,CACjF4/P,EAAQhiQ,EAAKsiC,QAAAz3B,EAAAO,YAAA,IAAA,KAAA,CAEX82P,EAAQliQ,EAAKsiC,QACbruD,EAAM6nR,oBAAsBz2P,IAAAA,OAAIrF,EAAKq8I,QAAA,SAI3B,SAAhBr8I,EAAKsiC,QAAWz3B,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OACAm4P,EAAapwR,6BAAAi4B,OAA2Bm4P,EAAapwR,MAAAi4B,MAAAA,OAAUpxB,EAAMmuB,MAAA,UACjF4/P,CAAAA,EAAQhiQ,EAAKsiC,QAAAz3B,cACV,IAAA,KAAA,EAAKq0P,QAALA,EAAAl/P,EAAKqiL,gBAAL68E,IAAKA,OAALA,EAAAA,EAAe/4P,QAAS+7P,EAAQliQ,EAAKsiC,aAG3C,CAAC,UAAW,WAAW72C,SAASuU,EAAKsiC,UAAatiC,EAAKsiC,QAAUtiC,EAAKY,MACtEiK,EAAAO,YAAAqlK,GAAA,CAAA3lK,MAAA,GAAAzF,OACYm4P,EAAapwR,MACvB,gBAAA4hM,IAAKhvK,EAAKY,KAAOZ,EAAKm/P,IAAAh5P,MAAA,GAAAJ,QAAA,GAAA4oK,IAAA,WAAA,MAIxB9jK,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEam4P,EAAapwR,MAAA,gBAAA,EACxB4yB,EAAKY,KAAOZ,EAAKm/P,OAAS,CAAC,WAAY,QAAQ1zQ,SAASuU,EAAKsiC,SAAMz3B,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAAzF,OACnDm4P,EAAapwR,MAAA,qBAAAy9B,CAAAA,EAAAO,YAAA69D,EAAA,CAAAztD,QAEhB,SAAAsiB,GAA8B,IAAAoiO,EAA3BzxR,IAAAA,EACVmzR,EAAax0R,MAAQ8B,EACrByyR,EAAmBv0R,MAAQ6vR,EAAa7vR,MACtB,QAAlB8yR,EAAAjsR,EAAM0oR,iBAAY,IAAAuD,GAAlBA,EAAAx0R,KAAAuI,EAAkB,CAAE+rB,KAAAA,EAAM9wB,MAAAA,EAAOT,EAAAA,GACnC,GACF,MAAAo8B,EAAAO,YAAA,OAAA,CAAAN,MAAA,GAAAzF,OACgBm4P,EAAapwR,MAAiC,6BAAA,SAGhE64B,EAAS74B,OAAAy9B,EAAAO,YAAA,OAAA,CAAAN,MAAAzF,GAAAA,OAEGm4P,EAAapwR,2BAAyBi4B,OAAAm4P,EAAapwR,MAC7D,YAAAouC,QAAS,SAAC/sC,GAAkB,OAAAwF,EAAM+9E,SAAS,CAAEvjF,EAAAA,EAAGS,MAAAA,EAAO8wB,KAAAA,GAEvD,GAAA6K,CAAAA,EAAAA,YAAAqgK,EAAA,KAAA,YAKPj3L,EAAM2nR,mBACL/wP,EAAAA,YAAA,IAAA,CAAAC,MAAU,CAAA,GAAAzF,OAAIm4P,EAAapwR,MAAA,eAAA,GAAAi4B,OAAuBm4P,EAAapwR,MAAoB,mBAChF,CAAA,CAAC,UAAW,WAAWqe,SAASuU,EAAKsiC,SAAW0/N,EAAQhiQ,EAAKsiC,QAC7D6Y,MAkLoCooN,CAAcvjQ,EAAM9wB,SAKnE,OAAO,WAAM,IAAA66C,EAAA22O,EAAA8C,EACLC,EAAAp+P,GAAAA,OAAmBm4P,EAAapwR,MAAA,oBAChCs2R,EAAuBz9P,EAAS74B,QAAUuyB,EAAUvyB,MACpDu2R,EAAuBvvP,EAAM8nP,cAAgBprR,EAAWmD,EAAMioR,cAC9D0H,EAAuB7tP,QAAQ9P,EAAS74B,OAASuyB,EAAUvyB,QAAU6vR,EAAa7vR,MAAM3C,QACxFo5R,EAAuBzvP,EAAM4mP,oBAAsBlqR,EAAWmD,EAAM+mR,oBAExE,OAAAnwP,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAAzF,OAAem4P,EAAapwR,iBAAei4B,OAAAm4P,EAAapwR,wBAAe6G,EAAMmuB,QAAA,CAAAyI,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAC5Dm4P,EAAapwR,MAAA,cAAA,CACT28C,QADSA,EACzB3V,qBAAgB2V,SAAhBA,EAAAr+C,KAAA0oC,GACAngC,EAAM+nB,aAAA6O,EAAAO,YAAA,QAAA,CAAAN,MAAAzF,GAAAA,OACYm4P,EAAapwR,6BAAAi4B,OAA2Bm4P,EAAapwR,MAAA,kBAAA,CACnE6G,EAAM+nB,gBAKI,eAAhB/nB,EAAMmuB,OAAUyI,oBAAA2N,EAAAA,WAAA,CAAA1N,MACH24P,GAAmB3B,EAAgB10R,OAC5C6vR,CAAAA,EAAa7vR,MAAM3C,OAAS44R,IAAoBr8G,MAIpC,cAAhB/yK,EAAMmuB,QACJ66P,EAAa7vR,MAAM3C,OAClBi4R,IAAe73P,EAAAA,kBAAA2N,aAAA,CAAA1N,MAEH24P,GAAmB3B,EAAgB10R,OAC5C,CAAA45K,QAIL/yK,EAAM4mR,aAAsC,OAAvB5mR,EAAMioR,cAAsD,OAA7BjoR,EAAM+mR,qBAC1DnwP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAem4P,EAAapwR,MAAA,kBACzB6G,CAA6B,OAA7BA,EAAM+mR,qBACJ2I,EACC7vP,EAAe,qBAAsB,CACnCR,OAAQ,CACNrN,SAAUy9P,EACVtkQ,iBAAgC,QAAhCshQ,EAAkBrtQ,EAAOjmB,aAAO,IAAAszR,OAAA,EAAdA,EAActhQ,iBAChC0/P,aAAc7qR,EAAM6qR,gBAEvBj0P,EAAAA,YAAAmU,GAAAxG,aAAA,CAAApW,MAAA,UAAA6D,SAIWy9P,EACVxmQ,gBAAAsmQ,EAASnwQ,EAAOjmB,aAAA,IAAAo2R,OAAA,EAAPA,EAAcpkQ,iBACvB0L,MAAA,GAAAzF,OAAUm4P,EAAapwR,MAAA,YAAAouC,QACd,SAAC/sC,GAAM,IAAAixR,EAAA,OAAqB,QAArBA,EAAAzrR,EAAM6qR,oBAAe,IAAAY,OAAA,EAArBA,EAAAh0R,KAAAuI,EAAqB,CAAExF,EAAAA,GAAG,GACrCqB,EAASmE,EAAM+mR,oBAAsB/mR,EAAM+mR,mBAAqB,IACtE,OAEmB,OAAvB/mR,EAAMioR,eACJ2H,EACC/vP,EAAe,eAAgB,CAC7BR,OAAQ,CACNrN,SAAU29P,EACVjkQ,UAAWA,EAAUvyB,MACrBy0R,WAAYA,EAAWz0R,MACvByxR,YAAa5qR,EAAM4qR,eAEtBh0P,EAAAA,YAAAmU,GAAAxG,aAAA,CAAAvS,SAGW29P,EAAAxhQ,MAAA,UAAA2D,QAEDpG,EAAUvyB,MACnB09B,MAAA,GAAAzF,OAAUm4P,EAAapwR,MAAA,cAAA8vB,QACd2kQ,EAAWz0R,MACpBouC,QAAS,WAAA,IAAAmkP,EAAA,OAA0B,QAA1BA,EAAM1rR,EAAM4qR,mBAAc,IAAAc,OAAA,EAApBA,EAAAj0R,KAAAuI,EAAoB,GAC9BnE,EAASmE,EAAMioR,cAAgBjoR,EAAMioR,aAAe,CAAA,YAtChErxP,EAAAA,YAAAulL,GAAA53K,EAAAA,WAAA,CAAAwyK,OA6CO22E,EAAmBv0R,MAAM6L,KAAI,SAAC+X,UAAMA,EAAE4P,KAAO5P,EAAEmuQ,OAAG34P,UAC/Cm7P,EAAmBv0R,MAAM3C,OAAAy1D,QAC3B,WACPyhO,EAAmBv0R,MAAQ,EAC7B,EAAA8B,MACO0yR,EAAax0R,MACpBi+M,cAAe,SAAC34K,GAAA,OAASkvP,EAAax0R,MAAQslC,CACzC,GAAAz+B,EAAMsnR,kBACZ,QAIT,ukBCndF,IAAAuI,GAAez6P,kBAAgB,CAC7Bx9B,KAAM,mBACNoI,MAAOw2B,GAAAA,MACFsyP,IAAA,CAAA,EAAA,CACHgC,WAAYxzR,OACZqmF,UAAW77C,QAEXklP,YAAaltR,SACbyqD,QAASzqD,SACT6wR,cAAe7wR,SACfg2R,aAAc,CAAC/2R,OAAQe,YAEzBu7B,eAAMr1B,EAAAuiC,GAAkB,IAATpC,EAAAoC,EAAApC,MACb4rC,EAA8C7nC,SAAOlkC,GAA7C0kB,EAAaqnD,EAAbrnD,YAAaskQ,EAAAj9M,EAAAi9M,aAAchiN,EAAO+E,EAAP/E,OAC7B80G,EAAOgxB,GAAQ9sM,EAAM8qR,WAAY9jN,GAC/BgjN,EAAeluG,EAAfkuG,WAEF9mP,EAAgBjC,KAoBf,OAAA,WAAA,IAAA8uP,EAAAj6O,EAlByBk6O,EACxB3wP,EAiBD,OAAAzI,EAAAO,YAAA4gB,WAAA,KAAA,CAEF/3C,EAAM29E,WAnBHt+C,EAAS,CAAE2qP,WAAYA,EAAW7wR,QAAS,EAAOquE,MAAOwhN,EAAa7vR,OAC5Ey9B,EAAAA,YAAA,MAAA,CAAAC,MAAAzF,GAAAA,OAEc1M,EAAYvrB,2BAAAi4B,OAAyB1M,EAAYvrB,MAC3D,2BAAAkiH,OAAQygE,EAAKO,WACbisG,YAAaxsG,EAAKuuG,gBAClB5uK,WAAYqgE,EAAK2uG,eACjBtoG,YAAarG,EAAKyuG,gBAClBhjP,QAASvnC,EAAM2qR,eAAA,CAAA/zP,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAEA1M,EAAYvrB,MAAA,qBAAA,CACxB+pC,EAAc,cAAe,UAAW,CAAE7D,OAAAA,MAAmB,UAANr/B,EAAM8vR,oBAAA,IAAAE,OAAA,EAANA,EAAAv4R,KAAAuI,EAAqBq/B,SAW/EzI,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAAe1M,EAAYvrB,MAAyB,oBAAAouC,QAASvnC,EAAM2qR,eAAA,EAC1D,QAANoF,EAAA/vR,EAAM8vR,oBAAA,IAAAC,OAAA,EAANA,EAAAt4R,KAAAuI,EAAqB,CAAEwnE,MAAOwhN,EAAa7vR,WAAkB,QAAX28C,EAAK3V,EAAM,eAAA,IAAA2V,OAAA,EAANA,EAAAr+C,KAAA0oC,QAKlE,0oCCrCc,SAAA8vP,GACdlkQ,EAAkBsT,GAEZ,IAAEyoP,EAA4BzoP,EAA5ByoP,UAAWhB,EAAiBznP,EAAjBynP,aAEboJ,EAAc,IAAIhjR,SAAsB,SAACc,GAC7C,IAAIvT,EAAuB,KAC3B,GAAIqtR,EAAW,CACP,IAAAqI,EAA6B/2Q,GAAS0uQ,GACxC,CAAEvjR,KAAMujR,EAAWzjG,KAAM,MACzByjG,EACE7L,E7f0GI,SACdmU,EACAtI,EACAzjG,GAEA,IAAMgsG,EAAQ,CAAC,IAAK,KAAM,KAAM,MAE5Bp1R,EAAQo1R,EAAMn9P,QAAQmxJ,GAM1B,OALkB,IAAdppL,IACFqqE,GAAS,SAAAl0C,uCAAAA,OAAmDi/P,EAAMhoR,SAC1DpN,EAJM,GAOTm1R,EAAWtI,EADN9hN,GAASq+G,EAEvB,C6fxHoBisG,CAAgBvkQ,EAAKxnB,KAAM4rR,EAAa5rR,KAAM4rR,EAAa9rG,MACrE43F,IACOxhR,EAAA01R,EAEb,CACAniR,EAAQvT,EACV,IAGMwjQ,EAAuC,CAACiyB,OAAa,GACvD,GAAArzR,EAAWiqR,GAAe,CACtB,IAAAjqQ,EAAIiqQ,EAAa/6P,GACjBrN,EAAI7B,aAAa3P,QAAU2P,EAAK,IAAI3P,SAAiB,SAACc,GAAA,OAAYA,EAAQ6O,MAChFohP,EAAY,GAAKv/O,CACnB,CAGO,OAAA,IAAIxR,SAAQ,SAACc,GAClBd,QAAQs/H,IAAIyxH,GAAaljN,MAAK,SAACl+B,GAC7B7O,EAAQ6O,EACV,GACF,GACF,CAMO,SAASk/K,GAAY7mL,GAC1B,IAAQukB,EAA2DvkB,EAA3DukB,MAAO+tC,EAAoDtyD,EAApDsyD,MAAO4mI,EAA6Cl5L,EAA7Ck5L,SAAUmiF,EAAmCr7Q,EAAnCq7Q,eAAgBnJ,EAAmBlyQ,EAAnBkyQ,eAC5CtuR,EAAMs1M,EAQV,OAPIvxM,EAAWuqR,KACPtuR,EAAAsuR,EAAeh5E,EAAU,CAAEriL,KAAMy7C,EAAM,GAAIgpN,aAAchpN,KAE3DA,EAAAl3D,SAAQ,SAACyb,GACbA,EAAKsiC,OAAS,OACdtiC,EAAKqiL,SAAWt1M,CAClB,IACO,CAAEs1M,SAAUt1M,EAAK2gC,MAAAA,EAAO+tC,MAAAA,EAAO+oN,eAAAA,EACxC,CAgDO,SAASE,GAAiBpxP,GAC/B,IAAQmjB,EAAyCnjB,EAAzCmjB,OAAQumO,EAAiC1pP,EAAjC0pP,cAAerB,EAAkBroP,EAAlBqoP,cACxB,OAAA,IAAIx6Q,SAA6B,SAACc,GACnC,IAACw0C,IAAWklO,EAGd,OAFIpiN,GAAM,SAAU,uDACpBt3D,EAAQ,CAAE,GAGZ,IAAK+6Q,IAAkBA,EAAcvyR,OAGnC,OAFI8uE,GAAK,SAAU,qCACnBt3D,EAAQ,CAAE,GAOZ,GAJc+6Q,EAAAz4Q,SAAQ,SAACyb,GACrBA,EAAKsiC,OAAS,UAChB,IAEIq5N,EACYA,EAAAroP,EAAO6jE,SAAW6lL,EAAgBA,EAAc,IAAIhuO,MAAK,SAACjiD,GAClE,GAzCL,SAAqCA,GAC1C,OAAKA,EAIAA,EAAIu1D,OAIJ,CAAC,UAAW,QAAQ72C,SAAS1e,EAAIu1D,SAInB,YAAfv1D,EAAIu1D,QAA0Bv1D,EAAIs1M,WAAct1M,EAAIs1M,SAASzhL,KAAQ7zB,EAAIs1M,SAAS5mI,QAChFlC,GAAK,SAAU,wHAEd,IANDA,GAAM,SAAU,wHACb,IALHA,GAAM,SAAU,2FACb,IALHA,GAAM,SAAU,yCACb,EAcX,CAwBaorN,CAA4B53R,GAA7B,CAIA,IAAAs1M,EAAYt1M,EAAIs1M,UAAY,GAC5BvxM,EAAWwiC,EAAO+nP,kBACTh5E,EAAA/uK,EAAO+nP,eAAeh5E,EAAU,CAAEriL,KAAMg9P,EAAc,GAAIyH,aAAczH,KAElE,SAAfjwR,EAAIu1D,SACG+/I,EAAAl8K,MAAQp5B,EAAIo5B,OAASk8K,EAASl8K,OAEzC,IAAIy+P,EAA4B,GACb,YAAf73R,EAAIu1D,QAAwB+/I,EAAS5mI,MAEvCmpN,EAAcviF,EAAS5mI,MAAMxiE,KAAI,SAAC+mB,GAIzB,OAAAyK,GAAAA,GAAAA,GACF+0P,CAAAA,EAJYxC,EAAc14N,MAAK,SAACugO,GAAA,OAClC7kQ,EAAKn0B,MAAQg5R,EAAOh5R,OAASm0B,EAAKn0B,MAAUm0B,EAAKm/P,KAAO0F,EAAO1F,MAAQn/P,EAAKm/P,QAI1En/P,GAAA,GAAA,CACHsiC,OAAQv1D,EAAIu1D,OACZ+/I,SAAAA,GAEJ,KAGc26E,EAAAz4Q,SAAQ,SAACyb,GAAS,IAAA8kQ,EAC9B9kQ,EAAKsiC,OAASv1D,EAAIu1D,OAClBtiC,EAAKqiL,SAAWA,EAChBriL,EAAKY,IAAMyhL,EAASzhL,IACpBZ,EAAKq8I,QAAyB,YAAftvK,EAAIu1D,OAAuB,IAAM,EAE3CtiC,EAAAy/P,YAAuB,QAAVqF,EAAAziF,SAAU,IAAAyiF,OAAA,EAAVA,EAAUrF,aAAcnlN,IAC5C,IACcsqN,EAAA5H,GAEhB,IAK8B+H,EALxBr2R,EAAS,CACb2zM,SAAAA,EACAriL,KAAM4kQ,EAAY,GAClBnpN,MAAOmpN,GAEL,GAAe,YAAf73R,EAAIu1D,eACNyiO,EAAAzxP,EAAO0xP,yBAAPD,OAAAA,EAAAr5R,KAAA4nC,EAA2B5kC,QAC7B,GAA0B,SAAf3B,EAAIu1D,OAAmB,CAAA,IAAA2iO,UAChCA,EAAA3xP,EAAO4xP,uBAAPD,OAAAA,EAAAv5R,KAAA4nC,EAAyB5kC,EAC3B,CACQuT,EAAA,CACNqgD,OAAQv1D,EAAIu1D,OACZ3pD,KAAMjK,GA9CR,MAFEuT,EAAQ,CAAE,EAkDd,QACK,CAAA,IAAAkjR,EACCC,EChMZ,SAA4B5uP,GAeb,IAAAwnP,EAWTqH,EACAC,EAZSC,EAAA/uP,EAdbjH,OAAAA,OAAS,IAAAg2P,EAAA,OAAAA,EACT9uO,EAAAjgB,EAAAigB,OAAA+uO,EAAAhvP,EACA6lP,gBAAAA,OAAkB,IAAAmJ,GAAAA,EAAAC,EAAAjvP,EAClB8kP,QAAAA,aAAU,CAAC,EAAAmK,EAAAC,EAAAlvP,EACX79B,KAAAA,aAAO,CAAC,EAAA+sR,EACR1lQ,EAAAwW,EAAAxW,KAAA2lQ,EAAAnvP,EACAilC,MAAAA,OAAQ,MAAA,GAACkqN,EAAAC,EAAApvP,EACT3qC,KAAAA,OAAO,IAAA+5R,EAAA,OAAAA,EAAAC,EAAArvP,EACP4lP,gBAAAA,OAAkB,IAAAyJ,GAAAA,EAAAC,EAAAtvP,EAClBklP,qBAAAA,OAAuB,IAAAoK,EAAA,IAAAA,EACvB1K,EAAA5kP,EAAA4kP,cACA5sF,EAAAh4J,EAAAg4J,QACAouF,EAAApmP,EAAAomP,WACAC,EAAArmP,EAAAqmP,UAGMkJ,EAA2BtqN,GAAS,GACtC4gG,EAAU,EAGR2pH,EAAM,IAAIxB,eAOhB,GANInI,IACF2J,EAAI3J,iBAAkB,GAKpBD,GAAwC,cAAX,QAAV4B,EAAAviN,EAAM,UAANuiN,IAAUA,OAAVA,EAAAA,EAAU17N,QAEzBgjO,IAAAA,EAASp7Q,YAAW,WAExBm7Q,EAASvuE,aAAY,WACfz6C,EAAU,GAAK,KACjBA,EAAU/nK,KAAKC,IAAI8nK,EAAU,GAAIA,GAC7B5gG,EAAM,IAAM4gG,IAAY5gG,EAAM,GAAG4gG,UACnC5gG,EAAM,GAAG4gG,QAAUA,EACRugH,EAAA,CACTvgH,QAAAA,EACAr8I,KAAMA,GAAQ+lQ,EAAW,GACzBtqN,MAAOsqN,EAAW9sR,KAAI,SAAC+mB,mBAAeA,GAAM,CAAA,EAAA,CAAAq8I,QAAAA,GAAA,IAC5CtsK,KAAM,OACNy0R,eAAgBwB,MAIpBjvE,cAAcsuE,KAEf3J,GACHlxQ,aAAa86Q,KACZ5J,GAGL,IAAIuK,EAAsC,CAAA,EAC1C,GAAIttR,EAAM,CACR,IAAMqoQ,EAAYlwQ,EAAW6H,GAAQA,EAAKotR,GAAcptR,EACjDpN,OAAAq5B,OAAOqhQ,EAAajlB,EAC7B,CACW+kB,EAAAxhR,SAAQ,SAACyb,EAAM9wB,GACxB,IAAMg3R,EAAYH,EAAWt7R,OAAS,EAAI,GAAA46B,OAAGx5B,cAAQqD,OAAWrD,EAChEo6R,EAAYC,GAAalmQ,EAAKm/P,GAChC,IAC0B,IAAtB4G,EAAWt7R,OACDw7R,EAAAp6R,GAAQk6R,EAAW,GAAG5G,IAElC8G,EAAYp6R,GAAQk6R,EAAW9sR,KAAI,SAAC+mB,GAAAA,OAASA,EAAKm/P,OAEpD8G,EAAYx7R,OAASs7R,EAAWt7R,OAE5B2wR,IACF6K,EAAc7K,EAAc6K,IAIxB,IAAAE,EAAW,IAAIC,SAyFdJ,OAxFPz6R,OAAO4F,KAAK80R,GAAa1hR,SAAQ,SAAC9X,GACvB05R,EAAA98J,OAAO58H,EAAKw5R,EAAYx5R,GACnC,IAEAu5R,EAAIl/M,KAAKv3C,EAAQknB,GAAQ,GAEzBlrD,OAAO4F,KAAKmqR,GAAS/2Q,SAAQ,SAAC9X,GAC5Bu5R,EAAIK,iBAAiB55R,EAAK6uR,EAAQ7uR,GACpC,IAEAu5R,EAAIM,QAAU,SAAC54P,GACb8gK,EAAQ,CAAE9gK,MAAAA,EAAO1N,KAAAA,EAAMy7C,MAAOsqN,EAAYvB,eAAgBwB,IAC1DjvE,cAAcsuE,GACd76Q,aAAa86Q,IAGfU,EAAIO,UAAY,SAAC74P,GACf8gK,EAAQ,CAAE9gK,MAAAA,EAAO1N,KAAAA,EAAMy7C,MAAOsqN,EAAYvB,eAAgBwB,KAGxDA,EAAI9mQ,SACN8mQ,EAAI9mQ,OAAOsnQ,WAAa,SAAC94P,GAAyB,IAAA+4P,EAC5CC,EAAc,EAKlB,GAJIh5P,EAAM7R,MAAQ,IAChB6qQ,EAAcpyR,KAAK2hB,MAAOyX,EAAMm0K,OAASn0K,EAAM7R,MAAS,OAEhDwgJ,EAAA/nK,KAAKC,IAAImyR,EAAarqH,MAChBqqH,IAA0B,QAAXD,EAAAV,EAAW,UAAXU,IAAWA,OAAXA,EAAAA,EAAepqH,WAAYA,EAAS,CAC3D,IAAAsqH,EAAgBZ,EAAW9sR,KAAI,SAACi6B,mBAAeA,GAAM,CAAA,EAAA,CAAAmpI,QAAAA,GAAA,IAChDugH,EAAA,CACTlvP,MAAAA,EACA2uI,QAAAA,EACAr8I,KAAMA,GAAQ2mQ,EAAc,GAC5BlrN,MAAOkrN,EACP52R,KAAM,OACNy0R,eAAgBwB,GAEpB,IAKJA,EAAI9pN,OAAS,SAACxuC,GACZ,IAAI20K,EAAmC,CAAA,EAGvC,GAFAA,EAASmiF,eAAiBwB,EACXA,EAAI1jO,OAAS,KAAO0jO,EAAI1jO,QAAU,IAE/C,OAAOksI,EAAQ,CACb9gK,MAAAA,EACA1N,KAAAA,EACAy7C,MAAOsqN,EACP1jF,SAAAA,EACAmiF,eAAgBwB,IAGd,IAAA5vP,EAAO4vP,EAAIY,cAAgBZ,EAAI3jF,SACjC,IACSA,EAAA7+D,KAAK5vH,MAAMwiB,SACf3nC,GACI4zM,EAAAjsK,EACPmjC,GAAM,SAAU,iCACtB,CACAw9I,cAAcsuE,GACd76Q,aAAa86Q,GACFS,EAAAxhR,SAAQ,SAACyb,GAAS,IAAA8kQ,EAC3B9kQ,EAAKq8I,QAAU,IACfr8I,EAAKsiC,OAAS,UAEdtiC,EAAKy/P,YAAuB,QAAVqF,EAAAziF,SAAU,IAAAyiF,OAAA,EAAVA,EAAUrF,aAAcnlN,IAC5C,IACwB,WAApBhuE,EAAO+1M,KACTA,EAASmiF,eAAiBwB,GAElBnJ,EAAA,CACRnvP,MAAAA,EACA1N,KAAMA,GAAQ+lQ,EAAW,GACzBtqN,MAAA1vE,EAAWg6R,GACXvB,eAAgBwB,EAChB3jF,SAAAA,KAIJ2jF,EAAIa,KAAKV,GAETH,EAAI9mQ,OAAO4nQ,cAAgBb,EAE3BD,EAAI9mQ,OAAO6nQ,eAAiBzL,EAErB0K,CACT,CD4BqBA,CAAI,CACjBvvO,OAAQnjB,EAAOmjB,OACfglB,MAAOnoC,EAAO0pP,cACdZ,gBAAiB9oP,EAAO8oP,gBACxBV,qBAAsBpoP,EAAOooP,qBAC7BltF,QAAS,SAAC77K,GAAoB,IAAAq0Q,EACtBl2Q,EAAIk/K,YAAiBr9K,OAAG0oQ,eAAgB/nP,EAAO+nP,0BACrD2L,EAAA1zP,EAAO4xP,uBAAP8B,OAAAA,EAAAt7R,KAAA4nC,EAAyBxiB,GACzB7O,EAAQ,CAAEqgD,OAAQ,OAAQ3pD,KAAMmY,GAClC,EACA8rQ,WAAYtpP,EAAO2zP,mBACnBpK,UAAW,SAAClqQ,GACJ,IAAE0oQ,EAAmB/nP,EAAnB+nP,eACJtuR,EAAM4lB,EAAE0vL,SAOZ,GANIvxM,EAAWuqR,KACPtuR,EAAAsuR,EAAe1oQ,EAAE0vL,SAAU,CAC/BriL,KAAMrN,EAAEqN,KACRykQ,aAAc9xQ,EAAE8oD,SAGhB1uE,EAAIo5B,MAAO,CAAA,IAAA+gQ,EACPp2Q,EAAIk/K,GAAYvlK,GAAAA,MAAK9X,GAAG,GAAA,CAAA0vL,SAAUt1M,aACxCm6R,EAAA5zP,EAAO4xP,uBAAPgC,OAAAA,EAAAx7R,KAAA4nC,EAAyBxiB,GACzB7O,EAAQ,CAAEqgD,OAAQ,OAAQ3pD,KAAMmY,GAClC,KAAO,CAAA,IAAAq2Q,EACLx0Q,EAAEqN,KAAKqiL,SAAWt1M,EAChB4lB,EAAA8oD,MAAM,GAAG4mI,SAAWt1M,EACtB,IAAM+jB,EAjJX,SAAuBwiB,GAC5B,IAAQ5F,EAA2C4F,EAA3C5F,MAAO+tC,EAAoCnoC,EAApCmoC,MAAO4mI,EAA6B/uK,EAA7B+uK,SAAUmiF,EAAmBlxP,EAAnBkxP,gBAC5B/oN,aAAA,EAAAA,EAAOhxE,SAAU,GACf8uE,GAAM,SAAU,kCAEhBkC,EAAAl3D,SAAQ,SAACyb,GAAS,IAAAk/P,EACtBl/P,EAAKq8I,QAAU,IACfr8I,EAAKsiC,OAAS,UACQ48N,QAAtBA,EAAOl/P,EAAKqiL,gBAAZ,IAAsB68E,UAAfA,EAAe/4P,KACxB,IACA,IAAMp5B,EAAMs1M,EAEZ,OADA5mI,EAAM,GAAG76C,IAAM7zB,EAAI6zB,KAAO66C,EAAM,GAAG76C,IAC5B,CAAEyhL,SAAUt1M,EAAK2gC,MAAAA,EAAO+tC,MAAAA,EAAO+oN,eAAAA,EACxC,CAoIsB4C,CAAc38P,GAAAA,MAAK9X,GAAG,GAAA,CAAA0vL,SAAUt1M,aAC1Co6R,EAAA7zP,EAAO0xP,yBAAPmC,OAAAA,EAAAz7R,KAAA4nC,EAA2BxiB,GAC3B7O,EAAQ,CAAEqgD,OAAQ,UAAW3pD,KAAMmY,GACrC,CACF,EACAsqQ,cAAe9nP,EAAO8nP,cACtBziR,KAAM26B,EAAO36B,KACb9M,KAAMynC,EAAOznC,KACbyvR,QAAShoP,EAAOgoP,QAChBe,gBAAiB/oP,EAAO+oP,gBACxB9sP,OAAQ+D,EAAO/D,SAEK,QAAtB41P,EAAA7xP,EAAO+zP,oBAAe,IAAAlC,GAAtBA,EAAAz5R,KAAA4nC,EAAsB,CACpBmoC,MAAOnoC,EAAO0pP,cACdoI,OAAAA,GAEJ,CACF,GACF,CAoBO,SAASlmQ,GAAOoU,GAErB,IAAQ2oP,EAA4E3oP,EAA5E2oP,2BAA4Be,EAAgD1pP,EAAhD0pP,cAAesK,EAAiCh0P,EAAjCg0P,cAAe7L,EAAkBnoP,EAAlBmoP,cAE5D8L,EAAkBvK,EAAc3oP,QAAO,SAACrjB,GAC5C,OAACA,EAAEqxL,UAAarxL,EAAEqxL,WAAarxL,EAAEqxL,SAASl8K,SAErC,OAAA,IAAIhlB,SAAQ,SAACc,GAEd,IAAAg6Q,GAA+B3oP,EAAO6jE,SAAtC,CAaJ,IAAM91E,EAAOkmQ,EAAgBtuR,KAAI,SAAC+mB,UAChC0kQ,GAAiBj6P,GAAAA,MAAK6I,GAAA,GAAA,CAAQ0pP,cAAe,CAACh9P,SAEhD7e,QAAQs/H,IAAIp/G,GAAM2tB,MAAK,SAACzkD,GACtB,IAAMkxE,EAAsB,GACtB+rN,EAA4B,GAC9Bj9R,EAAAga,SAAQ,SAACkjR,GACQ,YAAfA,EAAInlO,OACNmZ,EAAMpkE,KAAKowR,EAAI9uR,KAAK8iE,MAAM,IACF,SAAfgsN,EAAInlO,QACbklO,EAAYnwR,KAAKowR,EAAI9uR,KAAK8iE,MAAM,GAEpC,IACA,IAAMisN,EAASp0P,EAAOunP,WAClByM,EAAcjiQ,OAAOo2C,GACrB6rN,EACEK,EAAWlM,IAAkBnoP,EAAO6jE,SAAW17B,EAAQisN,EACrDzlR,EAAA,CACNqgD,OAAQmZ,EAAMhxE,OAAS,UAAY,OACnCkO,KAAM,CACJ8iE,MAAOksN,GAGTH,YAAAA,EACAnmQ,KAAM92B,GAEV,GA5BA,MAVEm6R,GAAiBpxP,GAAQ0b,MAAK,SAACl+B,GACZ,YAAbA,EAAEwxC,SACJxxC,EAAEnY,KAAK8iE,MAAQggN,IAAkBnoP,EAAO6jE,SACpCrmF,EAAEnY,KAAK8iE,MA/BrB,SAA6BojN,EAA2B+F,GAGtD,IAFA,IACM+C,EADa9I,EAAYxqP,QAAO,SAACrjB,GAAA,OAAMA,EAAE4P,OAC9B4L,EAAAA,WAEf,IAAMxM,EAAO4kQ,EAAYl6R,GACnBwE,EAAQ2vR,EAAYxqJ,WAAU,SAACnhG,GAAA,OAClCA,EAAKisP,KAAOjsP,EAAKisP,MAAQn/P,EAAKm/P,KAASjsP,EAAKrnC,MAAQqnC,EAAKrnC,OAASm0B,EAAKn0B,QAEpE+7R,EAAU14R,GAAS,EAAIu7B,GAAAA,GAAA,GAAKo0P,EAAY3vR,IAAW8wB,GAASA,EAClE2nQ,EAAStwR,KAAKuwR,IANPl9R,EAAI,EAAGF,EAAMo6R,EAAYn6R,OAAQC,EAAIF,EAAKE,IAAK8hC,IAQjD,OAAAm7P,CACT,CAoBcE,CAAoBP,EAAex2Q,EAAEnY,KAAK8iE,QAEhD,IAAM+rN,EAA2B,SAAb12Q,EAAEwxC,OAAoBxxC,EAAEnY,KAAK8iE,MAAQ,GACzDx5D,EAAAwoB,GAAAA,MAAa3Z,GAAG,CAAA,EAAA,CAAA02Q,YAAAA,IAClB,GA+BJ,GACF,CAEO,SAASM,GACdrsN,EACAtlD,GAGA,IAFAmsC,EAA+BtvD,UAAAvI,OAAA,QAAAqC,IAAAkG,UAAA,GAAAA,UAAA,QAAA,EAC/BqpK,yDAAU,EAEH,OAAA5gG,EAAMxiE,KAAI,SAAC6iE,GAChB,IAAI97C,EAAmB87C,EAchB,OAbHhrE,EAAWqlB,KACb6J,EAAO7J,EAAO2lD,IAEerxC,GAAA,CAC7B00P,IAAKrjN,EACLisN,aAAcjsN,EAAQisN,aACtBl8R,KAAMiwE,EAAQjwE,KACd2M,KAAMsjE,EAAQtjE,KACdzI,KAAM+rE,EAAQ/rE,KACdssK,QAAAA,EACA/5G,OAAAA,GACGtiC,EAGP,GACF,okBE7TA,SAAwBgoQ,GAAU/zR,GAChC,IAAMmyF,EAAWjiE,EAAAA,MAEX67C,EAAqF7nC,EAAAA,OAAOlkC,GAA1FgyB,EAAU+5C,EAAV/5C,SAAU40P,EAAA76M,EAAA66M,WAAYY,EAAez7M,EAAfy7M,cAAetkL,EAAAn3B,EAAAm3B,SAAU17B,IAAAA,MAAOxC,EAAY+G,EAAZ/G,WAAYkiN,EAAAn7M,EAAAm7M,aAC1E33M,EAAyCp/C,GAAU,UAA3CO,EAAc6+C,EAAd7+C,aAAc3T,EAAAwyD,EAAAxyD,EAAG2H,EAAY6qD,EAAZ7qD,YACqFsnD,EAAArvD,GAAxEooD,GAAUyC,EAAOxC,EAAYkiN,EAAa/tR,MAAO6G,EAAMsoD,SAAU,SAAO,GAAvG0rO,EAAahoN,EAAA,GAAAioN,EAAcjoN,EAAA,GAC5BmlN,EAASjhQ,MAAuD,IAChE64P,EAAgB74P,MAAkB,IAClC+4P,EAAuB/4P,MAAI,IAE3B9Q,EAASzH,EAAAA,UAAS,WAAA,OAAMkC,GAAM,CAAA,EAAI6W,EAAav3B,MAAO6G,EAAMof,WAE5D84E,EAAc,GAAA9mE,OAAG1M,EAAYvrB,MAAA,kBAAAi4B,OAAsB1M,EAAYvrB,MAAA,WAC/DqgK,EAAe,CAACthE,GAAa9mE,OAAOA,GAAAA,OAAG1M,EAAYvrB,8BACnDgwR,EAAA/3P,GAAAA,OAAsB1M,EAAYvrB,MAAA,wBAGlCiyB,EAAoBzT,EAAAA,UAAS,WAAM,IAAAu8Q,EFqZPx1Q,EEpZ1By1Q,GFoZ0Bz1Q,EEpZE,CAChC8oQ,cAAeA,EAAcruR,MAC7B+pG,SAAUA,EAAS/pG,MACnBk1D,OAAoB,QAApB6lO,EAAQF,EAAY76R,aAAA+6R,IAAAA,GAAY,QAAZA,EAAZA,EAAoB,UAApBA,IAAwBA,OAAxBA,EAAAA,EAAwB7lO,OAChCu4N,WAAYA,EAAWztR,QFsZrBquR,eAAiB9oQ,EAAE2vC,QACR,SAAb3vC,EAAE2vC,OADkC,WAEvB,aAAb3vC,EAAE2vC,OAA8B,YACnB,YAAb3vC,EAAE2vC,SAA0B3vC,EAAEkoQ,YAA2B,YAAbloQ,EAAE2vC,OACzC3vC,EAAEwkF,SAAW,iBAAmB,WAElC,YE1ZE,OAAA9jF,EAAOjmB,MAAMiyB,kBAAkB+oQ,EACxC,IAEMzoQ,EAAYwE,OAAI,GAGhB84P,EAAerxQ,EAAAA,UAAS,WAC5B,OFiaG,SAAyB0nB,GAC9B,IAAQ6jE,EAAqD7jE,EAArD6jE,SAAU8wL,EAA2C30P,EAA3C20P,YAAajL,EAA8B1pP,EAA9B0pP,cAAenC,EAAevnP,EAAfunP,WACxCwN,EAAqBxN,EACvBmC,EACAA,EAAc3oP,QAAO,SAACrU,GAAA,MAAyB,YAAhBA,EAAKsiC,UACpC,OAAA60C,IAAa7jE,EAAOmoP,cACjBZ,GACGwN,EAAmB59R,OAASw9R,EAAY5iQ,OAAOgjQ,GAAsBJ,IAAgB,GADrEA,GAGlBI,EAAmB59R,OAAS49R,EAAqBJ,IAAgB,EAC3E,CE3aWK,CAAgB,CACrBnxL,SAAUljG,EAAMkjG,SAChB6lL,cAAeA,EAAc5vR,MAC7B66R,YAAaA,EAAY76R,MACzBytR,WAAYA,EAAWztR,MACvBquR,cAAeA,EAAcruR,OAEjC,IASMm7R,EAAsB,WACtBt0R,EAAM4mR,aACRmC,EAAc5vR,MAAQrB,EAAIixR,EAAc5vR,SAItC83R,EAAkB,SAACvyQ,GAA8B,IAAA61Q,EACrD,GAAK71Q,GAAMA,EAAE8oD,OAAU9oD,EAAE8oD,MAAM,GAA/B,CACA,IAAQ4mI,EAA2B1vL,EAA3B0vL,SAAU30K,EAAiB/a,EAAjB+a,MAAO+tC,EAAU9oD,EAAV8oD,MACL8sN,IACE,QAAtBC,EAAAv0R,EAAMwoR,qBAAgB,IAAA+L,GAAtBA,EAAA98R,KAAAuI,EAAsB,CACpBxF,EAAGi/B,EACH1N,KAAMy7C,eAAAA,EAAQ,GACdgpN,aAAchpN,EACd+rN,YAAa/rN,EACb4mI,SAAAA,IAGGpuM,EAAMkjG,WAAYljG,EAAMwnR,eAC3ByM,EAAe,GAAI,CACjB1vO,QAAS,gBACT/pD,EAAGkkB,EAAE+a,MACL1N,KAAMrN,EAAE8oD,MAAM,IAfiB,GAqB/BwrN,EAAqB,SAACt0Q,GAA4B,IAAA81Q,EAClCF,IACD,QAAnBE,EAAAx0R,EAAM2oR,kBAAa,IAAA6L,GAAnBA,EAAA/8R,KAAAuI,EAAmB,CACjBxF,EAAGkkB,EAAE+a,MACL1N,KAAMrN,EAAEqN,KACRykQ,aAAc9xQ,EAAE8oD,MAChB4gG,QAAS1pJ,EAAE0pJ,QACXtsK,KAAM4iB,EAAE5iB,KACRy0R,eAAgB7xQ,EAAE6xQ,kBAKhBQ,EAAoB,SAACryQ,GAEgC,IAAA+1Q,EAArDz0R,EAAMkjG,WAAaljG,EAAMgoR,6BACPsM,IACK,QAAzBG,EAAAz0R,EAAMyoR,wBAAmB,IAAAgM,GAAzBA,EAAAh9R,KAAAuI,EAAyB,CACvBxF,EAAGkkB,EAAE+a,MACL1N,KAAMrN,EAAE8oD,MAAM,GACd4mI,SAAU1vL,EAAE0vL,aAKlB,SAASsmF,EAAkBvE,GACzB,IAAMlU,EAAQkU,EACP,OAAAlU,EAAM3pQ,QACTyK,EAAEk/P,EAAM3pQ,QAAS,CAAEw1Q,UAAW7L,EAAM13Q,OAAM6sB,GAAAA,OACvCrU,EAAEqC,EAAOjmB,MAAM+xB,iBAAkB,CAAE48P,UAAW7L,EAAM13Q,OAAM6sB,KAAAA,OAAK6qP,EAAM53F,KAC9E,CAEM,IAYAswG,EAAe,SAACntN,GAAkB,IAAAotN,EACtC,IAAI5iQ,EAAS74B,MAAb,CACM,IAAAkmC,EAAS,CAAEw1P,qBAAsBhB,GAAmB/7R,EAAI0vE,GAAQxnE,EAAMkiB,SACrD,QAAvB0yQ,EAAA50R,EAAM+yO,sBAAN6hD,IAAuBA,GAAvBA,EAAAn9R,KAAAuI,EAAAlI,EAA2B0vE,GAAQnoC,GFqMhC,SACLA,GAEA,IAAQmoC,EAAsDnoC,EAAtDmoC,MAAOwsN,EAA+C30P,EAA/C20P,YAAa1zR,EAAkC++B,EAAlC/+B,IAAKqmR,EAA6BtnP,EAA7BsnP,yBAC1B,OAAA,IAAIz5Q,SAAQ,SAACc,GAElB,IAAI8mR,EAAWttN,EAAMpnC,QAAO,SAACrU,GACrB,IAAAgpQ,EAAef,EAAY3jO,MAAK,SAACtzC,UAAMA,EAAEnlB,OAASm0B,EAAKn0B,QAC7D,OAAO+uR,IAA6BoO,CACtC,IAEIC,GAAkB,EAIlB,GAHAF,EAASt+R,OAASgxE,EAAMhxE,SACRw+R,GAAA,GAEfF,EAASt+R,OAAV,CAMJ,IAAIy+R,GAAkB,EACtB,GAAI30R,GAAOw0R,EAASt+R,SAAW6oC,EAAOmoP,cAAe,CACnD,IAAM0N,EAAuBJ,EAASt+R,OACtCs+R,EAAWA,EAASp9R,MAAM,EAAG4I,EAAM0zR,EAAYx9R,QAC3C0+R,EAAuBlB,EAAYx9R,OAAS8J,IAC5B20R,GAAA,EAEtB,CAGM,IAGFE,EAHEC,EAAiBvB,GAAmBiB,EAAUz1P,EAAOnd,OAAQmd,EAAOunP,WAAa,WAAa,WAIpG,GAAIvnP,EAAOwnP,qBAAsB,CAAA,IAAAwO,EACzBx4Q,EAAW,QAAXw4Q,EAAIh2P,EAAOwnP,4BAAA,IAAAwO,OAAA,EAAPA,EAAA59R,KAAA4nC,EAA8B+1P,GACfD,EAAAt4Q,aAAa3P,QAAU2P,EAAI,IAAI3P,SAAQ,SAACc,GAAAA,OAAYA,EAAQ6O,KACvF,CAGM,IAAAohP,EAAcm3B,EAAepwR,KAAI,SAAC+mB,UAAqB,IAAI7e,SAAQ,SAACc,GACxEiiR,GACElkQ,EACA,CAAE+6P,aAAcznP,EAAOynP,aAAcgB,UAAWzoP,EAAOyoP,YACvD/sO,MAAK,SAAAxY,GAAgC,IAAAgnB,EAAA5sC,GAAA4lB,EAAA,GAA9B+yP,EAAA/rO,EAAA,GAAYgsO,EAAYhsO,EAAA,GAC3B+rO,EACFtnR,EAAQ,CAAE+d,KAAAA,EAAM0rI,eAAgB,CAAE37J,KAAM,uBAAwBw0F,MAAOglM,MAC7C,IAAjBC,GACTvnR,EAAQ,CAAE+d,KAAAA,EAAM0rI,eAAgB,CAAE37J,KAAM,0BAE1CkS,EAAQ,CAAE+d,KAAAA,GACZ,GACF,OACQ7e,QAAAs/H,IAAI,CAAC2oJ,GAAwB/jQ,OAAO6sO,IAAcljN,MAAK,SAACgtD,GACxD,IAAAytL,EAAAz9B,GAA8BhwJ,GAA7B0tL,EAAmBD,EAAA,GAAAE,EAAMF,EAAA99R,MAAA,GAGtBsW,GADa,IAAnBynR,EACM,CACNR,gBAAAA,EACAD,gBAAAA,EACAv9H,eAAgB,CAAE37J,KAAM,2BACxB0rE,MAAO4tN,GAGD,CACNH,gBAAAA,EACAD,gBAAAA,EACAW,iBAAkBD,EAClBluN,MAAO4tN,GAGb,GArDA,KAJI,CACI,IAAA3B,EAASI,GAAmBrsN,EAAOnoC,EAAOnd,OAAQmd,EAAOunP,WAAa,WAAa,WACzF54Q,EAAQ,CAAEgnR,gBAAAA,EAAiBjpQ,KAAM0nQ,eAAAA,EAAS,GAAIjsN,MAAOisN,EAAQh8H,eAAgB,CAAE37J,KAAM,0BAEvF,CAsDF,GACF,CE9QiB85R,CAAA,CACX5B,YAAaA,EAAY76R,MAEzBquE,MAAA1vE,EAAW0vE,GACXm/M,yBAA0B3mR,EAAM2mR,yBAChCrmR,IAAKN,EAAMkjG,SAAWljG,EAAMM,IAAM,EAClCwnR,UAAW9nR,EAAM8nR,UACjBN,cAAeA,EAAcruR,MAC7BytR,WAAYA,EAAWztR,MACvB+oB,OAAQliB,EAAMkiB,OACd4kQ,aAAc9mR,EAAM8mR,aACpBD,qBAAsB7mR,EAAM6mR,uBAC3B9rO,MAAK,SAACr6C,GAAS,IAAAm1R,EAEZ,GAA8B,6BAAT,QAArBA,EAAAn1R,EAAK+2J,sBAAgB,IAAAo+H,OAAA,EAArBA,EAAqB/5R,MAArB,CAMJ,GAAI4E,EAAKu0R,gBAAiB,CAAA,IAAAt6B,EAClBt7N,EAAyB,CAAEvjC,KAAM,0BAA2B0rE,MAAO9mE,EAAK8mE,OAE1E,WADJmzL,EAAA36P,EAAMqvF,kBAANsrK,OAAAA,EAAAljQ,KAAAuI,EAAmBq/B,IACd3+B,EAAK8mE,MAAMhxE,OAAQ,MAC1B,CAEA,GAAIkK,EAAKs0R,gBAAiB,CAAA,IAAAc,EAClBz2P,EAAyB,CAAEvjC,KAAM,wBAAyB0rE,MAAO9mE,EAAK8mE,eAC5EsuN,EAAA91R,EAAMqvF,kBAANymM,OAAAA,EAAAr+R,KAAAuI,EAAmBq/B,EACrB,CAEI,GAAA3+B,EAAKi1R,4BAA4Bh/R,MAAO,CAAA,IAAAo/R,EASlBC,EARxBC,EFgPQ,SAAkBN,EAAsCO,GACtE,IAAMC,EAAsC,GACtCC,EAAuC,GACvCC,EAAwB,GAkBvB,OAjBUV,EAAArlR,SAAQ,SAACgmR,GAAY,IAAAC,EAAAC,EAChC,GAAiC,0BAAT,QAAxBD,EAAAD,EAAQ7+H,sBAAgB,IAAA8+H,OAAA,EAAxBA,EAAwBz6R,MAIxB,MAAiC,0BAAT,QAAxB06R,EAAAF,EAAQ7+H,sBAAgB,IAAA++H,OAAA,EAAxBA,EAAwB16R,OACrBw6R,EAAQvqQ,KAAKqiL,WACRkoF,EAAAvqQ,KAAKqiL,SAAW,IAElBkoF,EAAAvqQ,KAAKqiL,SAASl8K,MAAQokQ,EAAQvqQ,KAAKqiL,SAASl8K,OACjDgkQ,EAASI,EAAQ7+H,eAAennE,YACnC6lM,EAAgB/yR,KAAKkzR,SAGfD,EAAAjzR,KAAKkzR,EAAQvqQ,MAZIqqQ,EAAAhzR,KAAKkzR,EAAQvqQ,KAaxC,IAEO,CAAEoqQ,gBAAAA,EAAiBC,uBAAAA,EAAwBC,QAAAA,EACpD,CEtQqEI,CAC3D/1R,EAAKi1R,iBACLjB,GAFMyB,EAAAF,EAAAE,gBAAiBC,EAAwBH,EAAxBG,uBAAwBC,EAAAJ,EAAAI,QAI3CK,EAAkB9P,EAAWztR,MAAQk9R,EAAUtN,EAAc5vR,MAAMi4B,OAAOilQ,GAIhF,GAHAtN,EAAc5vR,MAAQu9R,UACtBX,EAAA/1R,EAAM6oR,yCAANkN,EAAAt+R,KAAAuI,EAAmC,CAAEwnE,MAAOkvN,EAAiBnyO,QAAS,aAElE4xO,EAAgB,GAClBlN,EAAqB9vR,MAAQg9R,EAAgB,GAAGpqQ,KAAKqiL,SAASl8K,MAC3C,QAAnB8jQ,EAAAh2R,EAAMqvF,kBAAa,IAAA2mM,GAAnBA,EAAAv+R,KAAAuI,EAAmB,CAAElE,KAAM,uBAAwB0rE,MAAO2uN,EAAgBnxR,KAAI,SAAC+X,GAAMA,OAAAA,EAAEgP,IAAI,WAI3F,GAFAk9P,EAAqB9vR,MAAQ,GAEzBi9R,EAAuB5/R,OAAQ,CAAA,IAAAmgS,EAC3Bt3P,EAAyB,CAAEvjC,KAAM,uBAAwB0rE,MAAO4uN,WACtEO,EAAA32R,EAAMqvF,kBAANsnM,OAAAA,EAAAl/R,KAAAuI,EAAmBq/B,EACrB,CAGEunP,EAAWztR,MACbyxR,EAAY8L,GArEQ,SAACL,GACrB,IAAAvB,EAAW90R,EAAMkjG,WAAaskL,EAAcruR,MAAQ66R,EAAY76R,MAAMi4B,OAAOilQ,GAAWA,EACzFvB,EAASt+R,SACdy9R,EAAea,EAAU,CACvBvwO,QAAS,MACTtpD,MAAO+4R,EAAY76R,MAAM3C,OACzBu1B,KAAMsqQ,EAAQ,GACd7uN,MAAO6uN,IAETtN,EAAc5vR,MAAQ,IA8DhBy9R,CAAoBF,EAExB,CAvCA,KAJI,CAAyD,IAAA11L,EACrD3hE,EAAyB,CAAEvjC,KAAM,0BAA2B0rE,MAAO9mE,EAAK8mE,eAC9Ew5B,EAAAhhG,EAAMqvF,kBAAN2R,OAAAA,EAAAvpG,KAAAuI,EAAmBq/B,EAErB,CAwCF,IAGA8yD,EAASh5F,MAAMA,MAAQ,IAhEH,GAoFtB,SAASyxR,EAAYyL,GACb,IAAAQ,EAAmB7C,EAAY76R,MAAMinC,QAAO,SAACrjB,GAAMA,MAAa,YAAbA,EAAEsxC,UACrDmZ,EAAQo/M,EAAWztR,MAAQk9R,GAAWtN,EAAc5vR,MAAQ09R,EAC7DrvN,GAAUA,EAAMhxE,SACrBk1B,EAAUvyB,OAAQ,EAClBg4R,EAAOh4R,MAAQ,GACR8xB,GAAA,CACLu3B,OAAQxiD,EAAMwiD,OACd6kO,QAASrnR,EAAMqnR,QACf/rP,OAAQt7B,EAAMs7B,OACd1jC,KAAMoI,EAAMpI,KACZwwR,gBAAiBpoR,EAAMooR,gBACvBiL,cAAeW,EAAY76R,MAC3B4vR,cAAevhN,EACf07B,SAAUljG,EAAMkjG,SAChBskL,cAAeA,EAAcruR,MAC7BytR,WAAY5mR,EAAM4mR,WAClBoB,2BAA4BhoR,EAAMgoR,2BAClCG,gBAAiBnoR,EAAMmoR,gBACvBzjR,KAAM1E,EAAM0E,KACZ+iR,qBAAsBznR,EAAMynR,qBAC5BC,cAAe1nR,EAAM0nR,cACrBP,cAAennR,EAAMmnR,cACrBC,eAAgBpnR,EAAMonR,eACtB4L,mBAAAA,EACAjC,kBAAAA,EACAE,gBAAAA,EACAmC,aAAc,SAACrB,GAAQ,IAAA+E,EACPA,QAAVA,EAAA/E,EAAIvqN,MAAM,cAAAsvN,GAAVA,EAAc5L,KAAOiG,EAAOh4R,MAAMk3D,MAAK,SAACpxB,GAAS,IAAA83P,EAAA,OAAeA,QAAfA,EAAA93P,EAAKuoC,MAAM,cAAIuvN,SAAfA,EAAe7L,OAAQ6G,EAAIvqN,MAAM,GAAG0jN,GAAG,MAC5FiG,EAAOh4R,MAAQg4R,EAAOh4R,MAAMi4B,OAAO2gQ,GACrC,IACCh3O,MAED,SAAAxY,GAAyC,IAEby0P,EA4BJC,EA9BrB5oO,EAAA9rB,EAAA8rB,OAAQ3pD,EAAM69B,EAAN79B,KAAM0oB,EAAAmV,EAAAnV,KAAMmmQ,IAAAA,YAErB,GADA7nQ,EAAUvyB,OAAQ,EACH,YAAXk1D,EACF4lO,EAAAn8R,EAAmB4M,EAAK8iE,OAAQ,CAC9BjjB,QAAS,MACTx4B,KAAMrnB,EAAK8iE,MAAM,KAEnB2pN,EAAOh4R,MAAQ,GACG,QAAlB69R,EAAAh3R,EAAM4oR,iBAAY,IAAAoO,GAAlBA,EAAAv/R,KAAAuI,EAAkB,CAChBynE,SAAU/iE,EAAK8iE,MACfgpN,aAAchpN,EACdz7C,KAAMy7C,EAAM,GAEZugC,QAAS36E,aAAM,EAANA,EAAMpoB,KAAI,SAAC+X,GAAAA,OAAMA,EAAErY,QAE5B0pM,SAAU1pM,EAAK0pM,UAAYhhL,EAAKpoB,KAAI,SAAC+X,GAAAA,OAAMA,EAAErY,KAAK0pM,YAClDmiF,eAAgB7rR,EAAK6rR,sBAEzB,GAAWgD,SAAAA,EAAc,GAAI,CAAA,IAAA2D,EACZ,QAAfA,EAAAl3R,EAAMuoR,cAAS,IAAA2O,GAAfA,EAAAz/R,KAAAuI,EAAe,CACbxF,EAAGkK,EAAK+0B,MACR1N,KAAMwnQ,EAAY,GAClBA,YAAAA,EACA/C,aAAchpN,EACd4mI,SAAU1pM,EAAK0pM,SACfmiF,eAAgB7rR,EAAK6rR,gBAEzB,CAGI3J,EAAWztR,QACb4vR,EAAc5vR,MAAQo6R,UACtB0D,EAAAj3R,EAAM6oR,yCAANoO,EAAAx/R,KAAAuI,EAAmC,CAAEwnE,MAAO+rN,EAAahvO,QAAS,aAEtE,IAEJ,CAEA,SAAS4yO,EAAcz4Q,GAAwB,IAAA04Q,EAAAC,EAAAnL,EAC7CjD,EAAqB9vR,MAAQ,GACP,QAAtBi+R,GAAAC,EAAA34Q,EAAElkB,GAAE24E,uBAAJikN,IAAsBA,GAAtBA,EAAA3/R,KAAA4/R,GACA,IAO4CC,EAPtCC,EAAmC,CACvC/8R,EAAGkkB,EAAElkB,EACL+pD,QAAS,SACTtpD,MAAOyjB,EAAEzjB,MACT8wB,KAAMrN,EAAEqN,MAGV,GAAI/rB,EAAMwnR,gBAAkBxnR,EAAMkjG,SAChC6lL,EAAc5vR,MAAQ,WACtBm+R,EAAAt3R,EAAM6oR,yCAANyO,EAAA7/R,KAAAuI,EAAmC,CAAEwnE,MAAO,GAAIjjB,QAAS,WAC1C0vO,EAAA,GAAIsD,QACrB,GAAYv3R,EAAM4mR,WAGX,CAME,IAAA4Q,EAHP,GAAI94Q,EAAEzjB,MAAQ+4R,EAAY76R,MAAM3C,OAC9Bw9R,EAAY76R,MAAMwL,OAAO+Z,EAAEzjB,MAAO,GAClCg5R,EAAAn8R,EAAmBk8R,EAAY76R,OAAQo+R,QAEvCxO,EAAc5vR,MAAMwL,OAAO+Z,EAAEzjB,MAAQ+4R,EAAY76R,MAAM3C,OAAQ,GAC/DuyR,EAAc5vR,MAAQrB,EAAIixR,EAAc5vR,OAClC,QAAAq+R,EAAAx3R,EAAA6oR,kCAAA,IAAA2O,GAAAA,EAAA//R,KAAAuI,EAA6B,CAAEwnE,MAAA1vE,EAAWixR,EAAc5vR,OAAQorD,QAAS,UAEnF,MAbEyvO,EAAY76R,MAAMwL,OAAO+Z,EAAEzjB,MAAO,GAClCg5R,EAAAn8R,EAAmBk8R,EAAY76R,OAAQo+R,WAazCrL,EAAAlsR,EAAM+9E,gBAANmuM,OAAAA,EAAAz0R,KAAAuI,EAAiB0e,EACnB,CAoCO,MAAA,CACL3B,EAAAA,EACAqC,OAAAA,EACAsF,YAAAA,EACA0G,kBAAAA,EACA29P,cAAAA,EACAiL,YAAAA,EACAhL,aAAAA,EACAC,qBAAAA,EACAv9P,UAAAA,EACAwsE,YAAAA,EACAshE,aAAAA,EACA2vH,iBAAAA,EACAh3L,SAAAA,EACAngE,SAAAA,EACAm/P,OAAAA,EACAsG,kBA7TwB,SAACp4P,GACnB,IAAEtT,EAAkBsT,EAAlBtT,KAAMq8I,EAAY/oI,EAAZ+oI,QACRsvH,EAAuB9Q,EAAWztR,MAAQ4vR,EAAgBiL,EAC1D/4R,EAAQy8R,EAAqBv+R,MAAMinI,WAAU,SAACnhG,GAAS,OAAAlT,EAAKm/P,MAAQjsP,EAAKisP,OAC/EwM,EAAqBv+R,MAAM8B,GAASu7B,GAAAA,MAAKkhQ,EAAqBv+R,MAAM8B,QAAQmtK,QAAAA,KA0T5EwiH,YAAAA,EACA+J,aAAAA,EACAgD,mBA7KyB,SAACn9R,GAC1B,IAAMitE,EAAWF,GAAa/sE,EAAEw4B,OAA4Bw0C,OAC5DmtN,SAAAA,EAAeltN,IA4Kf2iN,iBAzKF,SAA0B5iN,GACxBmtN,SAAAA,EAAentN,EACjB,EAwKE0hN,kBAtKF,SAA2B1uR,GACzBm6R,SAAAA,EAAA78R,EAAmB0C,EAAE+7F,cAAc/uB,OACrC,EAqKE2vN,cAAAA,EACAxM,cAzDoB,SAACnwR,GAAmB,IAAAiiJ,GACpCzqH,EAAS74B,OAAUg5F,EAASh5F,QAChCqB,SAAqBiiJ,QAArBA,EAAAjiJ,EAAG24E,2BAAkBspE,GAArBA,EAAAhlJ,KAAA+C,GACC23F,EAASh5F,MAA2B4jC,UAuDrC8tP,aApDmB,SAACvgP,GAAoD,IAAAstP,EAAAC,EACjED,QAAAA,EAAAzG,EAAAh4R,aAAAy+R,IAAAA,GAAAA,EAAOtnR,SAAQ,SAAC2uB,GAAS,IAAA64P,UAC9BA,EAAA74P,EAAKkyP,qBAAL2G,EAAaC,OACf,IACArsQ,EAAUvyB,OAAQ,EAGdytR,EAAWztR,MACb4vR,EAAc5vR,MAAQ,GAEtB86R,EACED,EAAY76R,MAAM6L,KAAI,SAACi6B,GACjB,MAAgB,YAAhBA,EAAKovB,OACP73B,GAAAA,GAAA,CAAA,EAAYyI,GAAM,CAAA,EAAA,CAAAovB,OAAQ,YAErBpvB,CACT,IACA,CAAEslB,QAAS,UAIXja,SAAAA,EAASve,OAAS66P,EAAWztR,QACfg+R,SAAAA,EAAA,CAAEprQ,KAAMue,EAAQve,KAAMvxB,EAAG8vC,EAAQ9vC,EAAGS,MAAO,KAGtC,QAAvB48R,EAAA73R,EAAMqoR,sBAAiB,IAAAwP,GAAvBA,EAAApgS,KAAAuI,IA6BJ,okBCnXA,IAAAg4R,GAAe5iQ,kBAAgB,CAC7Bx9B,KAAM,UACNoI,MAAAA,GACAq1B,eAAMr1B,EAAAA,GAAuC,IAAjBmgC,EAAAoC,EAAApC,MAAOugB,IAAAA,OAC3Bxd,EAAgBjC,KAChBpB,EAAiBU,KACjB03P,EAqBFlE,GAAU/zR,GApBZof,EAAA64Q,EAAA74Q,OACAsF,EAAAuzQ,EAAAvzQ,YACA0G,EAAA6sQ,EAAA7sQ,kBACA29P,EAAAkP,EAAAlP,cACAC,EAAAiP,EAAAjP,aACAgL,EAAAiE,EAAAjE,YACA/K,EAAAgP,EAAAhP,qBACAv9P,EAAAusQ,EAAAvsQ,UACAwsE,EAAA+/L,EAAA//L,YACAshE,EAAAy+H,EAAAz+H,aACA2vH,EAAA8O,EAAA9O,iBACAh3L,EAAA8lM,EAAA9lM,SACAglM,EAAAc,EAAAd,cACAvM,EAAAqN,EAAArN,YACA+M,EAAAM,EAAAN,mBACAvN,EAAA6N,EAAA7N,iBACAlB,EAAA+O,EAAA/O,kBACAyB,EAAAsN,EAAAtN,cACAE,EAAAoN,EAAApN,aACA4M,EAAAQ,EAAAR,kBAEIzlQ,EAAWqY,KAET6tP,EAAe9rO,GAAc,CACnC8rO,WAAYC,KADND,WAIFE,EAA0BzgR,EAAAA,UAC9B,WAAA,IAAA0gR,EAAAC,EAAA,OAAY,QAANt4R,EAAAA,EAAM+nR,0BAAA,IAAAsQ,OAAA,EAANr4R,EAAAA,WAA2C,UAANA,EAAM+nR,0BAAA,IAAAuQ,OAAA,EAANt4R,EAA0BipB,UAAWmC,EAAkBjyB,KAAA,IAG7FunD,EAAA,CACLz1B,OAAQknE,EAASh5F,MACjBuyB,UAAAA,EACAi/P,cAAAA,EACAC,YAAAA,EACAC,aAAAA,EACA4M,kBAAAA,IAGF,IAAMc,EAAgB,WAgBlB,OAAAr1P,EAAc,UAAW,UAAW,CAClC7D,OAAQ,CAAE2qP,YAAY,EAAOxiN,MAAOwsN,EAAY76R,WAf9B,eAAhB6G,EAAMmuB,MAENyI,EAAAO,YAAAwU,GAAApH,aAAA,CAAAvS,SAAkBA,EAAS74B,MAAAmuC,QAAA,WAA6BtnC,EAAM+nR,oBAAA,CAAA5kQ,QAAA,WAAA,MAC3Di1Q,CAAAA,EAAwBj/R,MAAA,IAI/By9B,EAAAO,YAAAwU,GAAApH,aAAA,CAAAvS,SACoBA,EAAS74B,MAAAmuC,QAAA,UAAAniB,KAA+B,WAAA,OAAAyR,cAAAshQ,EAAA,KAAA,KAAA,GAA0Bl4R,EAAM+nR,oBACvF,CAAA5kQ,QAAA,WAAA,MAAAi1Q,CAAAA,EAAwBj/R,YAW3Bq/R,EAAyB7gR,EAAAA,UAAiC,WAAA,MAAO,CACrEqvD,OAAQhnE,EAAMgnE,OACdQ,MAAOwsN,EAAY76R,MACnB4vR,cAAeA,EAAc5vR,MAC7B6vR,aAAcA,EAAa7vR,MAC3Bg1B,MAAOnuB,EAAMmuB,MACbpG,YAAa/nB,EAAM+nB,YACnBiK,SAAUA,EAAS74B,MACnBw1F,KAAM3uF,EAAM2uF,KACZtgC,OAAQruD,EAAMquD,OACd46N,qBAAsBA,EAAqB9vR,MAC3CuyB,UAAWA,EAAUvyB,MACrBurB,YAAaA,EAAYvrB,MACzB++F,YAAAA,EACAshE,aAAAA,EACA2vH,iBAAAA,EACA/pQ,OAAQA,EAAOjmB,MACfytR,WAAY5mR,EAAM4mR,WAClBrgN,YAAavmE,EAAMumE,YACnBshN,mBAAoB7nR,EAAM6nR,mBAC1BZ,gBAAiBjnR,EAAMinR,gBACvBlpM,SAAUo5M,EACVjP,kBAAmBloR,EAAMkoR,kBACzBgB,kBAAAA,EACA5B,iBAAkBtnR,EAAMsnR,iBACxB,IAEImR,EAA8B,CAClCrO,iBAAAA,EACA9B,YAAatoR,EAAMsoR,YACnBnmG,YAAaniL,EAAMmiL,YACnB9mE,OAAQr7G,EAAMq7G,QAGVq9K,EAAgB/gR,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAAyZ,OAChC1M,EAAYvrB,MAAA,WAAAF,EAAA,GAAA,GAAAm4B,OAET1M,EAAYvrB,gCAAuB6G,EAAMmuB,OAA0B,eAAhBnuB,EAAMmuB,WAoG1D,OAAA,WAAA,OAAAyI,EAAAA,YAAA,MAAA,CAAAC,MACO6hQ,EAAcv/R,MAAOi2F,QAASpvF,EAAMkoR,kBAAoBgB,OAAoB,GAAAtyP,CAAAA,EAAAA,oBAAA2N,aAAA,CAAArU,IAE/EiiE,EACLr2F,KAAA,OAAAk2B,SACUA,EAAS74B,MAAAmvD,SACTqvO,EAAAz0L,SACAljG,EAAMkjG,gBACRljG,EAAMgnE,OACd10C,QAAA,GACKtyB,EAAMunR,gBAAA/wP,MAAuBx2B,EAAMunR,iBAAoB,CAAA,SAE7D,CAAC,OAAQ,cAAc/vQ,SAASxX,EAAMmuB,SAAWnuB,EAAM29E,WA5GtD/mD,EAAAO,YAAAiyP,GAAA7kP,aAEEi0P,EAAuBr/R,MAC3B,CAAA+pG,SAAUljG,EAAMkjG,WAAA,CAAA//E,QAAA,WAAA,MAAA,CAAAyT,EAAAO,YAAA,MAAA,CAAAN,MAAA,GAAAzF,OAMD1M,EAAYvrB,MAAyB,oBAAAouC,QAASojP,GAC1D4N,CAAAA,MACH,EANEtR,gBAAiB9mP,EAAM8mP,gBACvB,oBAAqB9mP,EAAM,uBAuG5B,CAAC,OAAQ,SAAS3oB,SAASxX,EAAMmuB,QAAUnuB,EAAM29E,WA9FhD/mD,EAAAO,YAAAuzP,GAAAnmP,aAEEi0P,EAAuBr/R,MAC3B,CAAA2xR,WAAY2N,UACHz4R,EAAMukD,qBACDsmO,EAAAF,cACCA,EACfC,YAAaA,iBACG5qR,EAAMqoR,iBACb,CACPpB,gBAAiB9mP,EAAM8mP,gBACvB,oBAAqB9mP,EAAM,uBAoFZ,UAAhBngC,EAAMmuB,QAAsBnuB,EAAM29E,WA/EjC/mD,EAAAO,YAAA00P,GAAAtnP,aAEEi0P,EAAuBr/R,MAC3B,CAAA+pG,SAAUljG,EAAMkjG,SAAA5iG,IACXN,EAAMM,IACXunR,mBAAoB7nR,EAAM6nR,mBAAA8C,cACXA,EAAAC,YACFA,EAAAC,aACCA,EAAAnC,UACH1oR,EAAM0oR,UACjBf,kBAAmB3nR,EAAM2nR,oBAChB,CACPV,gBAAiB9mP,EAAM8mP,gBACvB,oBAAqB9mP,EAAM,uBAmE5B,CAAC,aAAc,aAAa3oB,SAASxX,EAAMmuB,QA9DxByI,EAAAO,YAAA01P,GAAAtoP,aAEhBi0P,EAAuBr/R,MAC3B,CAAAquR,cAAexnR,EAAMwnR,cAAA7pM,UACV39E,EAAM29E,UACjBmtM,WAAY2N,cACC7N,EAAAC,aACCA,EAAAnC,UACH1oR,EAAM0oR,UACjBf,kBAAmB3nR,EAAM2nR,kBACzBC,cAAe5nR,EAAM4nR,cAAAK,aACPjoR,EAAMioR,aAAAlB,mBACA/mR,EAAM+mR,qFAUXriQ,EAAYvrB,MAAyB,oBAAAouC,QAASojP,GAC1D,EAAC3qR,EAAM29E,WAAa46M,MACvB,EAVEtR,gBAAiB9mP,EAAM8mP,gBACvB,oBAAqB9mP,EAAM,qBAC3B8nP,aAAc9nP,EAAM8nP,aACpB,gBAAiB9nP,EAAM,iBACvB4mP,mBAAoB5mP,EAAM4mP,mBAC1B,uBAAwB5mP,EAAM,0BA4Cf,WAAhBngC,EAAMmuB,OAnCLyI,EAAAO,YAAA04P,GAAAtrP,aAEEi0P,EAAuBr/R,MAC3B,CAAAwkF,UAAW39E,EAAM29E,UAAAqpM,YACJhnR,EAAMgnR,uBACPyR,EAAA9N,cACGA,EACfpmO,QAASvkD,EAAMukD,QACfurO,aAAc3vP,EAAM,UAAA,CAAAhd,QAAA,WAAA,MAOnBo1Q,CAAAA,IAAc,EALbvR,YAAa7mP,EAAM6mP,YACnB,eAAgB7mP,EAAM,gBACtBokB,QAASpkB,EAAMokB,UAyBhBziB,QAAQ9hC,EAAM2uF,MAAQxuD,EAAMwuD,oCACb,CAACuJ,EAAaj/F,EAAAm4B,CAAAA,EAAAA,GAAAA,OAAM1M,EAAYvrB,MAAsB6G,kBAAAA,OAAAA,EAAMquD,QAAWruD,EAAMquD,UACxFxuB,CAAAA,EAAe,UAGnBopP,EAAqB9vR,oCAAuBqgK,GAAeyvH,CAAAA,EAAqB9vR,UAGvF,IClPWw/R,GAAShyP,GAAYqxP,ICEnBh4R,GAAA,CAEb0wB,aAAc,CACZ50B,KAAMxE,SCPVshS,GAAexjQ,kBAAgB,CAC7Bx9B,KAAM,kBACNoI,MAAAA,GACAq1B,MAAAA,SAAMr1B,GACJ+wB,GAAc/wB,GAEd,IAAM6/B,EAAiBU,KAEvB,OAAO,WAAA,OAAA3J,EAAAA,YAAAmhB,EAAAA,eAASlY,EAAe,aACjC,ICPWg5P,GAAiBlyP,GAAYiyP,upDCJ1B,SAAAjzP,GAAQV,EAAUW,GAChCtuC,OAAO4F,KAAK8tM,IAAY16L,SAAQ,SAAC9X,GAC3B,aAAaX,KAAKW,KAEtB,UAAUX,KAAKW,GAAOysC,EAAI6zP,IAAI9tF,GAAWxyM,IAAQysC,EAAI6zP,IAAI9tF,GAAWxyM,GAAMotC,GAC5E,GACF,CAIe,IAAAmzP,GAAA,CACbpzP,QAAAA,GACA5O,QAAmDiiQ"} \ No newline at end of file diff --git a/docs/sponsor/main.html b/docs/sponsor/main.html index 8674534..41810c4 100644 --- a/docs/sponsor/main.html +++ b/docs/sponsor/main.html @@ -31,10 +31,17 @@ + + diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 38c17a0..aa9b4a1 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -176,8 +176,31 @@ body { border-top: none; } +.sponsor-title { + font-size: 1.2rem; + font-weight: 550; + font-feature-settings: "kern", "liga"; + color: #444; + font-family: var(--md-text-font-family); +} + +[data-md-color-scheme="slate"] .sponsor-title { + color: #ddd; +} + +.sponsor-title-toc { + font-weight: 550; + font-feature-settings: "kern", "liga"; + color: hsl(225deg 0% 46.48% / 56%); + font-family: var(--md-text-font-family); +} + +[data-md-color-scheme="slate"] .sponsor-title-toc { + color: hsl(225deg 5.64% 68.32% / 56%); +} + .sponsor-toc { - margin-top: 2rem !important; + margin-top: 24px !important; border-top: 1px solid var(--md-default-fg-color--lightest) !important; } @@ -352,6 +375,10 @@ body { background-color: rgba(240, 241, 244, 0.016) !important; } +.t-table--column-fixed .t-table__cell--fixed-left { + z-index: 4; +} + /* termynal 插件 */ .termy { padding: 65px 25px 35px !important; diff --git a/docs/theme/partials/toc.html b/docs/theme/partials/toc.html index e404210..079c901 100644 --- a/docs/theme/partials/toc.html +++ b/docs/theme/partials/toc.html @@ -44,10 +44,17 @@ 芙芙云 芙芙云 + +