diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh index 350d0e6..aa16fdf 100755 --- a/ChangeMirrors.sh +++ b/ChangeMirrors.sh @@ -655,6 +655,8 @@ function run_end() { "速拓云 · 国内高防云服务器新用户享5折优惠 ➜ https://www.sutuoyun.com" "云悠YUNYOO · 全球高性价比云服务器|低至15.99元起 ➜ https://yunyoo.cc" "圣道云 · 稳定高效云服务器|低至9.9元/月起 ➜ https://www.shengdaoyun.com" + "润信云 · 国内挂机宝海外云服务器低至9.9元/月 ➜ https://www.runxinyun.com" + "新鸟云 · 2核2G云主机特价15元/月 ➜ https://www.xinniaoyun.com" ) 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 da8b6b8..963523d 100755 --- a/DockerInstallation.sh +++ b/DockerInstallation.sh @@ -347,6 +347,8 @@ function run_end() { "速拓云 · 国内高防云服务器新用户享5折优惠 ➜ https://www.sutuoyun.com" "云悠YUNYOO · 全球高性价比云服务器|低至15.99元起 ➜ https://yunyoo.cc" "圣道云 · 稳定高效云服务器|低至9.9元/月起 ➜ https://www.shengdaoyun.com" + "润信云 · 国内挂机宝海外云服务器低至9.9元/月 ➜ https://www.runxinyun.com" + "新鸟云 · 2核2G云主机特价15元/月 ➜ https://www.xinniaoyun.com" ) 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 184f8f0..813f7bc 100644 --- a/docs/assets/css/tdesign.min.css +++ b/docs/assets/css/tdesign.min.css @@ -1,2 +1 @@ -: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 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--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);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 +: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)} \ 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 f23d831..66e14b1 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/C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,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,2BACE,OAAA,CACA,S1BZN,C0BeQ,oDACE,2C1BbV,C0BOI,+CAYI,kBAAA,CADA,YAAA,CAGA,MAAA,CADA,U1BdR,C0BoBE,aAIE,kBAAA,CAEA,sDAAA,CACA,gDAAA,CAEA,oCAAA,CADA,cAAA,CALA,YAAA,CAOA,8BAAA,CARA,WAAA,CAGA,sBAAA,CAQA,SAAA,CAFA,6CAAA,CAVA,UAAA,CAWA,S1BjBJ,C0BoBI,mBACE,4D1BlBN,C0BqBK,sBACC,8BAAA,CACA,mC1BnBN,C0BsBK,sBACC,gCAAA,CACA,qC1BpBN,C0BuBI,mBACE,iDAAA,CACA,0C1BrBN,C0BuBM,kGAGE,2B1BrBR,C0B0BM,qGAGE,0B1BxBR,C0B6BE,uBACE,iB1B3BJ,C0B6BK,sCChHH,QAAA,CAFA,Q3BgGF,C0BsBK,+EClHH,2CAAA,CARA,UAAA,CAEA,UAAA,CAKA,MAAA,CAJA,iBAAA,CAEA,UAAA,CAJA,U3B8GF,C0BWK,yCCpHH,WAAA,CAFA,K3B2GF,C0BeK,uCCvHH,SAAA,CAFA,O3BqHF,C0BQK,+EC1HH,2CAAA,CAFA,WAAA,CANA,UAAA,CAEA,WAAA,CACA,iBAAA,CACA,KAAA,CAHA,S3BoIF,C0BHK,wCC3HH,MAAA,CAFA,U3BgIF,C0BCK,oCACC,iB1BCN,C0BKM,+CAEE,4BAAA,CADA,U1BFR,C0BQE,oBAME,sDAAA,CAEA,kDAAA,CAEA,oCAAA,CADA,cAAA,CAJA,aAAA,CAMA,8BAAA,CAPA,WAAA,CAHA,iBAAA,CAMA,iBAAA,CAJA,UAAA,CADA,S1BGJ,C0BQK,6BACC,8BAAA,CACA,mC1BNN,C0BSK,6BACC,gCAAA,CACA,qC1BPN,C0BWE,oBAKE,kBAAA,CAHA,oBAAA,CACA,YAAA,CACA,SAAA,CAEA,eAAA,CALA,iBAAA,CAOA,sBAAA,CADA,kBAAA,CAEA,S1BTJ,C0BYE,kBAEE,YAAA,CACA,WAAA,CAFA,iB1BRJ,C0BYK,8BACC,iD1BVN,C0BaK,gCACC,qB1BXN,C0BeE,aAEE,sCAAA,CAGA,oCAAA,CAJA,iBAAA,CAGA,6CAAA,CADA,S1BXJ,C0BeK,sBACC,QAAA,CAEA,UAAA,CADA,M1BZN,C0BgBK,yBAGC,UAAA,CADA,MAAA,CADA,K1BZN,C0BiBK,uBAEC,OAAA,CADA,KAAA,CAEA,S1BfN,C0BkBK,wBAEC,MAAA,CADA,KAAA,CAEA,S1BhBN,C0BoBE,kBAIE,oCAAA,CAIA,cAAA,CAPA,mBAAA,CAQA,aAAA,CANA,+BAAA,CAGA,eAAA,CADA,iBAAA,CAEA,S1BdJ,C0BmBI,4CAkEA,kDAAA,CA5EA,kBAAA,CAQA,yD1BNJ,C0BQI,0BAOE,sCAAA,CANA,YAAA,CAEA,4BAAA,CAEA,mCAAA,CACA,oCAAA,CAFA,oC1BZN,C0BqBK,2BACC,8B1BnBN,C0BkBK,qDAIG,8BAAA,CACA,oC1BnBR,C0BuBI,+BAGE,kBAAA,CADA,YAAA,CADA,iB1BnBN,C0BwBI,wFAEI,mD1BvBR,C0B2BK,yDAGC,kBAAA,CADA,Y1BxBN,C0B4BK,2BACC,8BAAA,CACA,mC1B1BN,C0B6BK,2BACC,gCAAA,CACA,qC1B3BN,C0B8BK,8BACC,2BAAA,CAEA,iC1B7BN,C0BgCK,gCACC,mCAAA,CACA,kB1B9BN,C0BiCI,8BACE,mCAAA,CACA,iD1B/BN,C0BqCE,mBACE,sD1BnCJ,C0BqCK,oCAGC,kDAAA,CADA,uCAAA,CADA,wC1BjCN,C0BqCM,0CACE,Y1BnCR,C0BuCQ,gFACE,4D1BrCV,C0ByCM,wDACE,gD1BvCR,C0B0CM,iDACE,iD1BxCR,C0B2CO,gDAEC,6CAAA,CACA,gDAAA,CAFA,2B1BvCR,C0B4CO,6CACC,wCAAA,CACA,yC1B1CR,C0BQE,iCAuCI,oCAAA,CACA,8C1B5CN,C0B8CM,uCACE,kC1B5CR,C0BiDE,iBACE,eAAA,CACA,iB1B/CJ,C0BoDG,yBACC,Y1BlDJ,C4BhTC,eAEC,WAAA,CADA,oB5BZF,C4BeE,2CAEE,a5BbJ,C4BkBE,gBACE,qC5BhBJ,C4BqBC,aAKC,6CAAA,CtB/BA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CsB2BA,iBAAA,CACA,U5BdF,C4BiBE,oBACE,YAAA,CACA,+B5BfJ,C4BaE,0BAKI,mC5BfN,C4BmBM,wCACE,qC5BjBR,C4BAC,uCAuBG,WAAA,CACA,uC5BpBJ,C4BJC,qBA8BG,kBAAA,CADA,YAAA,CADA,M5BnBJ,C4ByBI,6CAGE,kBAAA,CADA,YAAA,CAEA,+BAAA,CACA,gBAAA,CAEA,oCAAA,CACA,eAAA,CAPA,iBAAA,CAKA,gB5BrBN,C4B0BI,sCAKE,qBAAA,CAHA,4BAAA,CAEA,iCAAA,CADA,6DAAA,CAFA,2B5BpBN,C4B1BC,sCAwDK,c5B3BN,C4B6BM,6CAIE,YAAA,CAHA,UAAA,CACA,aAAA,CAKA,WAAA,CAFA,MAAA,CAFA,iBAAA,CAGA,O5B1BR,C4BtCC,2BA4EG,2BAAA,CALA,4BAAA,CAGA,sBAAA,CAFA,iCAAA,CACA,oCAAA,CAEA,kD5B7BJ,C4BiCE,sBACE,+CAAA,CACA,c5B/BJ,C4BoCC,gBAMC,uCAAA,CtBtHA,qBAAA,CADA,kCAAA,CsBsHA,oBAAA,CtBvHA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CsBiHA,iBAAA,CAIA,oDAAA,CACA,kBAAA,CAJA,W5B1BF,C4BsBC,8BAWG,oC5B9BJ,C4BiCG,+BACC,U5B/BJ,C4BkCM,+CACE,mC5BhCR,C4B2BG,qDAYK,sBAAA,CADA,c5BlCR,C4BuBG,wEAoBO,QAAA,CAHA,UAAA,CAIA,MAAA,CANA,aAAA,CACA,SAAA,CAEA,iBAAA,CAIA,OAAA,CAHA,K5BhCV,C4BaG,6CA4BG,Y5BtCN,C4BUG,6CAgCG,kB5BvCN,C4ByCO,qEAEC,4CAAA,CADA,2B5BtCR,C4BqCO,6EAKG,2B5BvCV,C4B2CO,uEACC,U5BzCR,C4BHG,kDAgDK,Y5B1CR,C4BNG,qDAoDK,c5B3CR,C4BgDM,+CACE,Y5B9CR,C4BZG,wDA8DK,c5B/CR,C4BiDQ,8DAME,QAAA,CALA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,KAAA,CAEA,U5B/CV,C4BqDM,8EAEI,Y5BpDV,C4BsDU,gFACE,Y5BpDZ,C4B9BG,oDA0FG,WAAA,CADA,S5BvDN,C4B0DM,0DASE,qCAAA,CARA,UAAA,CACA,aAAA,CAKA,UAAA,CAFA,QAAA,CAFA,iBAAA,CACA,OAAA,CAEA,8BAAA,CAEA,U5BvDR,C4B7CG,mDA0GG,iB5B1DN,C4B4DM,wDACE,a5B1DR,C4B+DM,8CACE,a5B7DR,C4BkEE,uBACE,YAAA,CACA,qBAAA,CACA,W5BhEJ,C4B6DE,iDASI,kDAAA,CAHA,qBAAA,CAEA,+BAAA,CADA,U5B9DN,C4BuDE,+BAeI,MAAA,CAFA,6DAAA,CACA,iB5BhEN,C4BmEM,uCAIE,iBAAA,CADA,e5BlER,CFxME,4BAAA,uCACE,qDAAA,CACA,oBE2MF,CACF,CFxME,0DAEE,UAAA,CADA,SE2MJ,CFvME,gEAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEyMJ,CFrME,gKAEE,gDEuMJ,C4B2DQ,iQACE,mC5BpDV,C4B0DM,4CAME,qBAAA,CAFA,sCAAA,CACA,mCAAA,CAHA,oHAAA,CADA,iB5BpDR,C4B3HC,2BA0LG,iB5B5DJ,C4BgEI,gDAOE,+CAAA,CACA,qBAAA,CAHA,MAAA,CAFA,6DAAA,CADA,iBAAA,CAIA,eAAA,CAFA,KAAA,CAHA,U5BvDN,C4BiEI,yCAME,qBAAA,CADA,kCAAA,CADA,cAAA,CAFA,WAAA,CACA,6DAAA,CAFA,U5B1DN,C4BoEK,0CAEC,sBAAA,CADA,kC5BjEN,C4BgEK,kDAKG,kC5BlER,C4BvJC,6BAgOG,eAAA,CADA,S5BpEJ,C4B3JC,2CAmOK,qC5BrEN,C4B9JC,wDAyOK,W5BxEN,C4BjKC,8BAkPG,eAAA,CAEA,sCAAA,CAGA,qBAAA,CAPA,4BAAA,CACA,iCAAA,CAFA,qBAAA,CADA,iBAAA,CAKA,eAAA,CAEA,iG5BzEJ,C4B5KC,sCA4PK,aAAA,CADA,WAAA,CADA,U5BzEN,C4BjLC,4CAgQK,gBAAA,CACA,c5B5EN,C4B+EK,4DAEC,4CAAA,CADA,2B5B5EN,C4B2EK,oEAKG,2B5B7ER,C4BiFI,0EACE,sD5B/EN,C4BmFG,6BACC,kC5BjFJ,C4BgFG,2CAIG,4B5BjFN,C4B6EG,uDAQG,2C5BlFN,C4B0EG,6DAYG,wC5BnFN,C4BuFM,uFACE,wC5BrFR,C4BwFO,yEAEC,sCAAA,CADA,+B5BrFR,C4BoFO,iFAKG,+B5BtFV,C4B0FO,mEACC,4B5BxFR,C4B0DG,kDAmCG,4B5B1FN,C4B6FK,uEAEG,wC5B5FR,C4BgGS,kFACC,sCAAA,CACA,+B5B9FV,C4B4FS,0FAKG,+B5B9FZ,C4BuGC,QACC,kCAAA,CACA,+BAAA,CCpbA,eAAA,CAEA,QAAA,CADA,S7BiVF,C4BqGE,cACE,4B5BnGJ,C4BuGI,0BAEE,kBAAA,CADA,Y5BpGN,C4ByFC,mBAiBG,iB5BvGJ,C4ByGK,kGAKK,6B5BxGV,C4BgFC,mCA+BK,WAAA,CADA,U5B1GN,C4B+GO,+CACC,oB5B7GR,C4BmHI,uBACE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,S5BjHN,C4BsHI,6BAIE,QAAA,CAHA,UAAA,CAEA,KAAA,CADA,U5BlHN,C4BuHI,4BAIE,WAAA,CAFA,MAAA,CACA,OAAA,CAFA,S5BlHN,C4ByHE,cAkFE,kDAAA,CA/EA,kBAAA,CAOA,sCAAA,CAHA,kCAAA,CACA,cAAA,CANA,YAAA,CAEA,WAAA,CACA,gBAAA,CAJA,iBAAA,CAKA,iBAAA,CAGA,sB5BrHJ,C4B4GE,0BAaI,sB5BtHN,C4ByHI,qBACE,c5BvHN,C4ByHM,4BACE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,S5BvHR,C4B4HM,mCAIE,QAAA,CAHA,WAAA,CAEA,KAAA,CADA,U5BxHR,C4B6HM,oCACE,YAAA,CAGA,WAAA,CAFA,MAAA,CACA,O5B1HR,C4BoFE,gBA4CI,WAAA,CACA,oB5B7HN,C4B+HO,kCACC,WAAA,CAEA,eAAA,CADA,sBAAA,CAEA,kB5B7HR,C4B+HQ,yCAIE,QAAA,CAHA,UAAA,CAIA,MAAA,CAHA,iBAAA,CAIA,OAAA,CAHA,K5B1HV,C4BkIK,0BAEC,4C5BhIN,C4BmIK,oDAJC,2B5B5HN,C4BoII,4EACE,mD5BlIN,C4BqIK,4BACC,mCAAA,CACA,kB5BnIN,C4ByIE,iBACE,eAAA,CACA,sBAAA,CACA,kB5BvIJ,C4B0IE,oDAEE,mC5BxIJ,C4B4IK,0BACC,wC5B1IN,C4BwIE,4BA6BI,sCAAA,CAvBA,+B5B1IN,C4B4IO,wCAEC,sCAAA,CADA,+B5BzIR,C4B6IO,wFAIG,+B5B3IV,C4B+IO,0CACC,4B5B7IR,C4BgJM,0FACE,wC5B9IR,C4BoHE,6BAiCI,kCAAA,CACA,yC5BlJN,C4BgHE,2CAsCM,sCAAA,CADA,+B5BjJR,C4BoJS,uDAEC,sCAAA,CADA,+B5BjJV,C4BqJQ,mEACE,wC5BnJV,C4BqGE,oCAoDI,gC5BtJN,C4B0JM,uCACE,kC5BxJR,C4B0JQ,6CACE,sC5BxJV,C4B8JE,eAEE,uCAAA,CAEA,qCAAA,CC1pBF,eAAA,CAEA,QAAA,CDypBE,SAAA,CAJA,eAAA,CCtpBF,SAAA,CDwpBE,Y5BvJJ,C4B4JK,gCACC,iB5B1JN,C4B6JI,uBAEE,WAAA,CACA,eAAA,CACA,QAAA,CAHA,+B5BxJN,CFrhBE,4BAAA,uBACE,qDAAA,CACA,oBEwhBF,CACF,CFrhBE,0CAEE,UAAA,CADA,SEwhBJ,CFphBE,gDAEE,2BAAA,CACA,0CAAA,CAFA,4BAAA,CAGA,kBEshBJ,CFlhBE,gIAEE,gDEohBJ,C4BuHE,6BAqBI,gB5BzIN,C4BoHE,6BAyBI,uCAAA,CACA,wC5B1IN,C4B6IK,6BACC,kC5B3IN,C4B8IK,6CAEG,kB5B7IR,C4B2IK,qCAMG,mC5B9IR,C4BkJK,2BAEC,sGAAA,CADA,SAAA,CAEA,gB5BhJN,C4BkGE,6BAkDI,kCAAA,CACA,4BAAA,CACA,iC5BjJN,C4B6FE,2CAuDM,a5BjJR,C4BoJM,qDACE,mD5BlJR,C4BuFE,8BAgEI,mC5BpJN,C4ByJI,yBAEE,sCAAA,CACA,kCAAA,CAFA,oCAAA,CAGA,0D5BvJN,C4ByJM,+BACE,4C5BvJR,C4B8JC,sBACC,gD5B5JF,C4B+JC,yEAIC,SAAA,CADA,c5B9JF,C4BkKC,eAEC,yCAAA,CADA,K5B/JF,C4BoKI,2FACE,oC5BjKN,C4BsKC,+BAEG,+E5BrKJ,C4B2KC,iCAEG,wD5B1KJ,C8BllBG,8BAEC,oDAAA,CADA,kC9B3BJ,C8B0BG,8CAKG,c9B5BN,C8BkCG,8BAEC,sDAAA,CADA,mC9B/BJ,C8BkCI,oCACE,2C9BhCN,C8B2BG,8CAUG,mCAAA,CADA,kBAAA,CAEA,kB9BjCN,C8BmCM,2DACE,mC9BjCR,C8B0CQ,wOACE,mC9BnCV,C+B3BC,QACC,wC/B6BF,CgCRG,qBACC,sChCUJ,CgCXG,mBACC,2BhCaJ,CgCdG,qBACC,6BhCgBJ,CgCjBG,qBACC,6BhCmBJ,CiC9BC,SHAC,kBAAA,CARA,oDAAA,CAFA,2CAAA,CADA,sCAAA,CADA,kBAAA,CADA,gBAAA,CAUA,qBAAA,CAHA,kCAAA,CAKA,YAAA,CAJA,+BAAA,CGWA,4BAAA,C3BZA,eAAA,CAFA,QAAA,CwBCA,YAAA,CAQA,eAAA,CxBRA,SAAA,CwBFA,oCAAA,CGaA,iBAAA,CHNA,uIAAA,CAFA,U9BwDF,C8B7CE,8BAHE,kC9BwDJ,C8BrDE,eAGE,gDAAA,CAFA,S9BoDJ,CiClDE,4CACE,wBAAA,CACA,uIjCoDJ,CiClDI,kDAEE,mDAAA,CADA,uCAAA,CAEA,cjCoDN,CiCjDK,0DAEC,sDAAA,CADA,WjCoDN,CiC/CE,kBACE,kCAAA,CACA,gDAAA,CACA,SjCiDJ,CiC9EC,wBAiCG,YjCgDJ,CiC5CE,gBD5CA,gBAAA,CCqDE,4BAAA,CAPA,WAAA,CAQA,qBAAA,CAHA,kCAAA,CANA,MAAA,CAOA,YAAA,CAHA,cAAA,CACA,WAAA,CAHA,YAAA,CD9CF,eAAA,CC+CE,SAAA,CD9CF,sBAAA,CAHA,kBhCyGF,CiC/CI,6BACE,sCjCiDN,CiC9CI,kCACE,sBAAA,CACA,UjCgDN,CiC5CI,2CACE,YjC8CN,CiC3CI,+OAIE,ejC6CN,CiC1CK,qCACC,OjC4CN,CiCxCE,gBAEE,sCAAA,CADA,8BjC2CJ,CiCtCE,iBACE,iBAAA,CACA,WAAA,CACA,KjCwCJ,CiCrCG,6CACC,SAAA,CAEA,uIAAA,CADA,iBjCwCJ,CiCpCG,mDACC,SAAA,CACA,kBjCsCJ,C8B5EG,sBACC,oC9B8EJ,C8BtEK,mEACC,kD9B2EN,C8BvEK,sCACC,6B9ByEN,C8BxFG,sBACC,oC9B0FJ,C8BlFK,mEACC,kD9BuFN,C8BnFK,sCACC,6B9BqFN,C8BpGG,oBACC,kC9BsGJ,C8B9FK,+DACC,gD9BmGN,C8B/FK,oCACC,2B9BiGN,C8B3JG,uBAEC,oDAAA,CADA,kC9B8JJ,C8B/JG,uCAKG,c9B6JN,C8BvJG,uBAEC,sDAAA,CADA,mC9B0JJ,C8BvJI,6BACE,2C9ByJN,C8B9JG,uCAUG,mCAAA,CADA,kBAAA,CAEA,kB9BwJN,C8BtJM,oDACE,mC9BwJR,C8B/IQ,4MACE,mC9BsJV,C8BvHK,0CAKC,kBAAA,CADA,YAAA,CAFA,WAAA,CACA,iBAAA,CAFA,S9B6HN,C8BtHK,+CACC,wC9BwHN,C8BjIK,0CAKC,kBAAA,CADA,YAAA,CAFA,WAAA,CACA,iBAAA,CAFA,S9BuIN,C8BhIK,+CACC,wC9BkIN,CiC5NC,gCA+GG,cjCgHJ,CiC5GG,kBAEC,8BAAA,CADA,6BAAA,CAEA,6DjC8GJ,CiC3GG,kBAEC,8BAAA,CADA,6BjC8GJ,CiCxOC,oEAiIK,iBjC2GN,CiC5OC,kCAwIK,sCAAA,CADA,cjCyGN,CiCrGI,sCACE,oCjCuGN,CiCnPC,kCAkJK,sCAAA,CACA,yBjCoGN,CiClGM,wCACE,oCAAA,CACA,yBjCoGR,CiChGI,sCACE,mCjCkGN,CiC7FG,2JAUK,2BjC0FR,CiCpFC,eAGC,mBAAA,CADA,mBAAA,CADA,iBjCwFF,CiCzFC,8BAMG,ejCsFJ,CiCpFI,0CACE,mEjCsFN,CiCnFI,yCACE,mEjCqFN,CiClGC,kDAmBG,ejCmFJ,CiC5EI,+IAEI,gBjCiFR,CiC7EI,mDAEI,mEjC8ER,CiC1EI,kDAEI,mEjC2ER,CiCpEI,0EACE,mEjCuEN,CiCpEI,wEACE,mEjCuEN,CiCnEE,uDAEI,sCjCoEN,CiCtEE,sEAOI,sCjCmEN,CiCjEM,8FACE,mEjCoER,CiCjEM,4FACE,mEjCoER,CiCxDQ,0KACE,sCjCgEV,CiCnJC,iFA4FG,iBAAA,CACA,SjC4DJ,CiC1DI,4SAGE,SjCkEN,CiC7DC,eACC,UjC+DF,CiC5DC,eAGC,8BAAA,CAFA,WAAA,CACA,2CAAA,CAEA,iBjC8DF,CiC3DC,wBACC,sCjC6DF,CiC1DC,wBACC,6BjC4DF,CiCzDC,wBACC,6BjC2DF,CiCxDC,sBACC,2BjC0DF,CiCvDC,gCACC,iBjCyDF,CiCtDC,+BACC,gBjCwDF,CiCrDC,oBAIC,aAAA,CAHA,iBAAA,CACA,iBAAA,CACA,ejCwDF,CiCpDC,qBAEC,cAAA,CADA,iBjCuDF,CiClDC,uBAGC,8CAAA,CADA,sCAAA,CADA,+BjCsDF,CiClDG,qCACC,gDjCoDJ,CkCjYC,gBAKC,qBAAA,C5BhBA,kCAAA,C4BcA,oBAAA,C5BfA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,C4BcA,+BAAA,CAFA,iBAAA,CAGA,gBAAA,CACA,WlCwBF,CkCtBE,sFAEI,oClCuBN,CkCnCC,kGAkBG,elCqBJ,CkCvCC,mCAsBG,oBlCoBJ,CkC1CC,+BA2BG,MAAA,CADA,iBlCoBJ,CkC9CC,uCAgCG,sClCiBJ,CkCjDC,iCAoCG,uClCgBJ,CkCpDC,yBAwCG,kClCeJ,CkCXG,2CACC,UlCaJ,CkCXK,+DACC,cAAA,CACA,UlCaN,CkClBG,2DASG,clCYN,CkCRE,oFAYE,kBAAA,CAHA,4BAAA,CAHA,+CAAA,CAEA,sCAAA,CADA,qBAAA,CAOA,cAAA,CAJA,YAAA,CAPA,4BAAA,CAQA,sBAAA,CAPA,iBAAA,CACA,KAAA,CAUA,4CAAA,CAbA,2BAAA,CAWA,SlCYJ,CkCRI,gGAEE,kCAAA,CADA,2BlCYN,CkCbI,gHAKI,2BlCYR,CkCRI,kGAEE,mDAAA,CADA,2BlCYN,CkCvCE,oGAmCI,oCAAA,CADA,wCAAA,CAFA,iBAAA,CACA,SlCaN,CkCRK,gHAGC,sDAAA,CAFA,mCAAA,CACA,clCYN,CkCdK,gIAMG,mClCYR,CkCTM,4HACE,2ClCYR,CkCbM,4IAII,mClCaV,CkCTM,0IACE,mClCYR,CkCPE,0CACE,MlCSJ,CkCNE,0CACE,UlCQJ,CkCJC,uCAGG,sDAAA,CACA,mCAAA,CAFA,clCOJ,CkCHI,wIAGE,2ClCKN,CkCdC,gHAiBG,sDAAA,CAFA,mCAAA,CACA,clCIJ,CkCpBC,gIAoBK,oClCIN,CkCCC,yBAEC,gCAAA,CADA,WlCEF,CkCHC,kCAKG,wCAAA,CACA,6BAAA,CACA,kClCCJ,CkCRC,sGAYG,yCAAA,CAEA,6BAAA,CADA,4BlCCJ,CkCIC,yBAEC,gCAAA,CADA,WlCDF,CkCAC,kCAKG,6BAAA,CACA,kClCFJ,CkCJC,sGAWG,cAAA,CAEA,6BAAA,CADA,4BlCFJ,CkCMG,sDAEG,6BAAA,CACA,kCAAA,CACA,uElCLN,CkCCG,8IAUG,wCAAA,CADA,4BlCLN,CkCpBC,0CA+BG,8BAAA,CACA,oClCRJ,CkCYC,uCAEC,sCAAA,CADA,SlCTF,CkCYG,qDAEC,mCAAA,CADA,clCTJ,CkCYI,oEAEI,2ClCXR,CkCeI,kEACE,mClCbN,CkCEG,oEAeG,elCdN,CkCkBC,oCAEC,SAAA,CADA,UlCfF,CkCkBE,wIAGI,SAAA,CACA,kBlCjBN,CkCSC,6CAiBG,sCAAA,CAHA,qBAAA,CACA,QAAA,CACA,sEAAA,CAHA,UlCfJ,CkCEC,4HA6BG,gDAAA,CALA,QAAA,CAIA,eAAA,CALA,0CAAA,CAEA,SAAA,CAKA,SAAA,CAHA,SAAA,CADA,QAAA,CAKA,iBAAA,CATA,2BAAA,CAUA,SlCpBJ,CkCZC,4IAmCK,wClCnBN,CkCsBI,wIACE,6ClCnBN,CkCkBI,wJAII,kClClBR,CkCsBK,wJAGC,sDAAA,CAFA,mCAAA,CACA,clClBN,CkCgBK,wKAMG,mClClBR,CkCqBM,oKACE,2ClClBR,CkCiBM,oLAII,mClCjBV,CkCqBM,kLACE,mClClBR,CkC9CC,8DAuEG,4DAAA,CADA,OlCpBJ,CkClDC,8DA4EG,+DAAA,CADA,uClCrBJ,CkCyBG,6CACC,WlCvBJ,CkCsBG,8IAKG,2ClCvBN,CkCkBG,uEAQG,wClCvBN,CkC2BG,6CACC,UlCzBJ,CkCwBG,8IAKG,2ClCzBN,CkCoBG,uEAQG,wClCzBN,CkC8BC,oCAGG,qCAAA,CADA,UlC5BJ,CkC0BC,+CAMG,OlC7BJ,CmC3TC,OAIC,kBAAA,CAOA,4BAAA,CADA,sCAAA,C7BfA,qBAAA,CADA,kCAAA,C6BeA,+BAAA,CANA,mBAAA,CAEA,kBAAA,C7BZA,+BAAA,C6BeA,8BAAA,CADA,6BAAA,C7BTA,eAAA,CAFA,QAAA,CACA,SAAA,C6BSA,oCAAA,CAMA,kBnCLF,CmCPC,eAkBG,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,yDnCnDF,CmCuDI,gGACE,mDnCrDN,CmC0DI,0FACE,4CnCxDN,CmC6DI,mGACE,iCnC3DN,CmCiEG,yDACC,+CAAA,CACA,kBnC/DJ,CmCkEG,4DAEC,sDAAA,CACA,0CAAA,CAFA,mCAAA,CAGA,kBnChEJ,CmCoEC,2CAEG,oCnCnEJ,CmCuEA,SAEI,cAAA,CACA,yBnCtEJ,CmCwEI,eAEE,mDAAA,CADA,2BnCrEN,CmCyEI,gBAEE,oDAAA,CADA,kCnCtEN,CoC7OA,qBACE,GACE,SpCDF,CoCIA,GACE,SpCFF,CACF,CoCKA,sBACE,GACE,SpCHF,CoCMA,GACE,SpCJF,CACF,CoCOA,kBACE,GACE,sBpCLF,CoCQA,GACE,uBpCNF,CACF,CoCSC,gBACC,mCpCPF,CoCkCA,sBACE,GACE,mBpChCF,CoCmCA,GACE,kBpCjCF,CACF,CqCxBC,a/BLC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNoCF,CqCjCC,oBAKG,mCAAA,CACA,yCAAA,CAFA,qBrCkCJ,CqCtCC,mEAUG,oCrC+BJ,CqCzCC,sBAgBG,kBAAA,CADA,gCAAA,CADA,eAAA,CAGA,+DrC8BJ,CqC/CC,4CCCG,6BtCiDJ,CqC9BK,+BAEC,iCAAA,CADA,+DrCiCN,CqClCK,sCAIG,yCrCiCR,CqC7BK,+BACC,iCAAA,CACA,8DrC+BN,CqCjCK,qDC3BD,6BtC+DJ,CqC5BG,wCAGG,oCrC4BN,CqCxBG,wIAGG,crCyBN,CqCvEC,kCAoDG,aAAA,CADA,oCrCwBJ,CqC3EC,0CAuDK,sCrCuBN,CqC9EC,mDA4DG,crCqBJ,CqClBG,2DAGG,+ErCkBN,CqCrBG,kDAOG,kBrCiBN,CqCvFC,0CA6EG,eAAA,CADA,iBrCeJ,CFhGE,4BAAA,0CACE,qDAAA,CACA,oBEmGF,CACF,CFhGE,6DAEE,UAAA,CADA,SEmGJ,CF/FE,mEAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEiGJ,CF7FE,sKAEE,gDE+FJ,CqC9BC,2BACC,crCgCF,CqC5BC,mDAGG,arC4BJ,CqC1BK,oFACC,cAAA,CACA,erC4BN,CqCnCC,yEAYK,QAAA,CADA,iBrC4BN,CqCvCC,+DAiBG,qBrCyBJ,CqCrBC,qBAEC,oBAAA,CACA,oCAAA,CAFA,iBrCyBF,CqCnBC,kIAGG,+ErCqBJ,CqCxBC,sJAQK,8ErCoBN,CqCdC,0CAEG,erCgBJ,CqCXC,gCAUG,iEAAA,CACA,iBrCKJ,CqCdK,yCACC,0DrCgBN,CqCbK,yCACC,kErCeN,CuCjKC,gBjCDC,qBAAA,CADA,kCAAA,CiCMA,oBAAA,CjCPA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CiCIA,qBAAA,CAFA,UvCCF,CuCOK,4GAEG,yCvCLR,CuCGK,qHAKG,4EvCLR,CuCQK,iGAEG,wCvCPR,CuCKK,0GAKG,wCvCPR,CuCcC,qCAIG,sBAAA,CADA,4BAAA,CADA,eAAA,CAGA,yBvCTJ,CuCWI,kEAEE,mDAAA,CADA,uCAAA,CAEA,sCvCTN,CuCDC,8CAiBG,oDAAA,CAFA,kCAAA,CACA,gDvCVJ,CuCiBK,qHAEG,oBvChBR,CuCcK,wHAKG,mDvChBR,CuCwBG,wCAGC,sBAAA,CAFA,QAAA,CACA,eAAA,CAEA,sCvCtBJ,CuCwBI,8CACE,mDAAA,CACA,sCvCtBN,CwC5CC,kBAIC,cAAA,CACA,QxCVF,CwCaC,8BlClBC,qBAAA,CADA,kCAAA,CkCcA,mBAAA,ClCfA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNeF,CwCCC,YAIC,kBAAA,CAEA,cAAA,CADA,iBxCNF,CwCUG,wBACC,mBxCRJ,CwCWE,oBXdA,kBAAA,CAQA,eAAA,CATA,QAAA,CAEA,UAAA,CACA,WAAA,CAKA,SAAA,CAJA,eAAA,CACA,SAAA,CACA,iBAAA,CACA,S7BSF,CwCGE,mBAQE,6CAAA,CAFA,+CAAA,CACA,sCAAA,CAEA,qBAAA,CAPA,oBAAA,CAQA,aAAA,CANA,WAAA,CAHA,iBAAA,CAIA,qBAAA,CAFA,UxCMJ,CwCGI,yBAIE,qBAAA,CAHA,UAAA,CAEA,SAAA,CADA,iBxCCN,CwCKE,mBACE,oBAAA,CAGA,+BAAA,CAFA,eAAA,CACA,qBxCFJ,CwCME,qCAGI,kCAAA,CACA,kCxCNN,CwCUG,4CAIG,sCAAA,CADA,kCAAA,CAEA,wDxCVN,CwCYM,kDAWE,sBAAA,CAHA,0CAAA,CACA,aAAA,CAFA,qBAAA,CACA,YAAA,CAHA,UAAA,CAFA,QAAA,CAFA,SAAA,CACA,OAAA,CAQA,qDAAA,CANA,SxCHR,CwCeG,kDAIG,sCAAA,CADA,kCAAA,CAEA,wDxCfN,CwCiBM,wDASE,uCAAA,CAFA,YAAA,CAJA,UAAA,CACA,SAAA,CAHA,SAAA,CAIA,OAAA,CACA,OAAA,CAEA,mBAAA,CANA,UxCRR,CwCoBG,0BACC,kBxClBJ,CwCiBG,6CAIG,mCxClBN,CwCcG,6CAQG,sDxCnBN,CwC6BK,6GAGG,2CxC1BR,CwC4BQ,gEACE,0CxC1BV,CwC+BK,gEAGG,2CxC/BR,CwCiCQ,sEACE,8CxC/BV,CyC1HE,wCAGE,eAAA,CAFA,uCAAA,CACA,0CzC6HJ,C0CrHC,gBACC,U1CVF,C0CcC,sCASG,6BAAA,CALA,mCAAA,CAEA,gBAAA,CACA,eAAA,CACA,2BAAA,CAHA,S1CXJ,CFLE,4BAAA,sCACE,qDAAA,CACA,oBEQF,CACF,CFLE,yDAEE,UAAA,CADA,SEQJ,CFJE,+DAEE,2BAAA,CACA,0CAAA,CAFA,4BAAA,CAGA,kBEMJ,CFFE,8JAEE,gDEIJ,C0CFE,0BACE,gC1CIJ,C0CLE,0DAKI,S1CGN,C0CRE,4EAUI,+B1CEN,C0CCI,kCACE,iC1CCN,C0CFI,4FAKI,+B1CCR,C0CGI,kCACE,iC1CDN,C0CAI,4FAKI,+B1CDR,C0CQC,gBAGC,eAAA,CAFA,QAAA,CACA,S1CLF,C0CSC,4BACC,S1CPF,C0CUC,0BACC,kC1CRF,C0CWC,iBAEC,mCAAA,CACA,iCAAA,CACA,oCAAA,CAHA,iB1CNF,C0CYC,0BACC,kC1CVF,C0CcC,iCAEC,kCAAA,CADA,iC1CXF,C0CeC,wBAOC,kBAAA,CAEA,6CAAA,CACA,sCAAA,CANA,iCAAA,CASA,mCAAA,CAPA,YAAA,CAEA,sBAAA,CALA,MAAA,CASA,iCAAA,CADA,gCAAA,CAVA,cAAA,CAIA,OAAA,CAHA,8BAAA,CAYA,Y1CbF,C0CgBC,iCAEC,kCAAA,CADA,iC1CbF,C0CkBC,8CAEC,mCAAA,CADA,oC1CfF,C0CmBC,gEACC,iB1CjBF,C0CmBE,uEAUE,2BAAA,CADA,+CAAA,CADA,qBAAA,CAPA,UAAA,CAEA,UAAA,CAIA,MAAA,CAHA,oCAAA,CACA,iBAAA,CACA,KAAA,CAJA,U1CTJ,C0CsBE,gEVpIA,gBAAA,CU2IE,qBAAA,CALA,sCAAA,CACA,aAAA,CACA,4BAAA,CACA,iCAAA,CVxIF,eAAA,CUyIE,oCAAA,CVxIF,sBAAA,CAHA,kBhC4HF,C0CqBC,wCACC,4BAAA,CACA,iCAAA,CACA,oC1CnBF,C0CsBC,wCACC,8BAAA,CACA,mCAAA,CACA,oC1CpBF,C0CwBC,iBAuCC,kDAAA,CArCA,kBAAA,CACA,sCAAA,CAOA,qBAAA,CAFA,kCAAA,CAFA,cAAA,CALA,YAAA,CAIA,+BAAA,CADA,4BAAA,CAGA,oCAAA,CAEA,yD1CpBF,C0CWC,sBV7JC,gBAAA,CACA,eAAA,CUyKE,iBAAA,CVxKF,sBAAA,CAHA,kBhC0JF,C0CqBE,+DACE,mD1CnBJ,C0CkBE,kFAII,a1CnBN,C0CeE,kFAQI,kC1CpBN,C0CLC,oCV7JC,gBAAA,CU2LE,kCAAA,CACA,MAAA,CV3LF,eAAA,CACA,sBAAA,CAHA,kBhC2KF,C0CbC,6BAoCG,U1CpBJ,C0C0BC,+BAEC,mCAAA,CADA,kB1CtBF,C0C0BE,2GAFA,8C1CpBF,C0C4BC,0BAGC,8BAAA,CAFA,4BAAA,CACA,oC1CzBF,C0C4BC,0BACC,+B1C1BF,C0C4BC,0BAGC,8BAAA,CAFA,8BAAA,CACA,oC1CzBF,C0C6BC,mDAEC,4CAAA,CADA,2BAAA,CAEA,yB1C3BF,C0CwBC,sEAMG,2B1C3BJ,C0C8BE,yDACE,4C1C5BJ,C0CmCE,4dACE,mD1C7BJ,C0C4BE,wiBAGI,kC1CzBN,C0CoBC,sHASG,a1CzBJ,C0C6BC,kCACC,uC1C3BF,C0C+BG,2DAGG,QAAA,CADA,iB1C7BN,C0C0BC,wBASG,sC1ChCJ,C0CkCI,gCACE,2B1ChCN,C0CqCC,sCACC,kD1CnCF,C0CkCC,yDAIG,2B1CnCJ,C2CjPC,mBrCHC,qBAAA,CADA,kCAAA,CqCOA,YAAA,CrCRA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNCF,C2CKE,sKAII,4B3CHN,C2COE,4BAIE,iB3CLJ,C2CQE,uDANE,sDAAA,CACA,kCAAA,CACA,mB3CEJ,C2CEE,2BAIE,gB3CNJ,C2CSE,yBAGE,kBAAA,CAIA,+CAAA,CAHA,qBAAA,CAHA,mBAAA,CACA,WAAA,CAIA,oCAAA,CADA,kB3CLJ,C2C3BC,qLA4CK,mE3CTN,C2CnCC,iLAuDK,mE3CZN,C2C3CC,2CA6DG,S3CfJ,C2C9CC,0IAoEK,e3ClBN,C4ClDC,mBtCHC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,C4CIE,qDAGI,4BAAA,CADA,yBAAA,CAEA,iBAAA,CACA,S5CHN,C4CFE,wDASI,eAAA,CAEA,gBAAA,CADA,iB5CHN,C4CMM,8DACE,S5CJR,C4CVE,qDAoBI,2BAAA,CADA,wBAAA,CAGA,gBAAA,CADA,iB5CLN,C4CQM,2DACE,S5CNR,C6ClBC,cAKC,kBAAA,CvCZA,qBAAA,CADA,kCAAA,CuCgBA,oCAAA,CAJA,YAAA,CvCbA,+BAAA,CuCeA,wBAAA,CvCVA,eAAA,CAFA,QAAA,CACA,SAAA,CuCcA,gBAAA,CAFA,kBAAA,CAJA,U7C8BF,C6CtBG,4BACC,mC7CwBJ,C6CpBE,qBAEE,MAAA,CADA,+BAAA,CAEA,eAAA,CACA,sBAAA,CACA,kB7CsBJ,C6C3CC,8BA0BG,U7CoBJ,C6CjBE,sBAIE,yCAAA,CAFA,oC7CsBJ,C6CfE,yCAJE,oCAAA,CAJA,aAAA,CAEA,4B7CkCJ,C6C5BE,mBAGE,kBAAA,CAIA,sCAAA,CAFA,cAAA,CAJA,mBAAA,CAOA,8BAAA,CANA,sBAAA,CClCF,iCAAA,CAFA,2B9C8DF,C8C1DE,yBACE,4DAAA,CACA,2C9C4DJ,C8CzDE,0BACE,6D9C2DJ,C8CvDG,gHAGC,eAAA,CACA,mC9CyDJ,C6C9BK,iCACC,kB7CgCN,C6C7BI,wBACE,oC7C+BN,C6C5BI,wBACE,mC7C8BN,C6C1BK,yCACC,c7C4BN,C6CxBE,qBAEE,mBAAA,CADA,aAAA,ChBjEF,eAAA,CAEA,QAAA,CADA,SAAA,CgBkEE,qB7C6BJ,C6ChCE,yCAQI,oC7C2BN,C6CvBE,sBAME,6CAAA,CAJA,2CAAA,CAEA,sCAAA,CAGA,qBAAA,CAFA,cAAA,CAJA,oBAAA,CCxFF,oCAAA,CAHA,4BAAA,CAEA,6CAAA,CADA,+BAAA,CAGA,wCAAA,CACA,yCAAA,CDwFE,iB7CmCJ,C6CxBI,4BAEE,wCAAA,CADA,iCAAA,CAEA,2C7C0BN,C6CjBK,gEC3GH,sCAAA,CAEA,kCAAA,CADA,+B9CqIF,C6CtBO,gKChHL,4CAAA,CAEA,wCAAA,CADA,+B9C4IF,C6CpBK,oCAEC,sDAAA,CACA,mCAAA,CAFA,W7CwBN,C6CpBM,qFAEE,sDAAA,CAEA,uCAAA,CADA,mC7CuBR,C6CjBI,4BACE,QAAA,CACA,S7CmBN,C6CjBM,kCAEE,4DAAA,CADA,kCAAA,CAEA,2C7CmBR,C6ChBM,mCAEE,6DAAA,CADA,kC7CmBR,C6CfO,2IAGC,e7CiBR,C6CnCI,yCAuBI,mCAAA,CADA,uB7CiBR,C6CVE,oBAEE,kBAAA,CAKA,sDAAA,CAGA,sCAAA,CATA,mBAAA,CAEA,aAAA,CAEA,oCAAA,CACA,2BAAA,CAEA,4BAAA,CAJA,mCAAA,CAKA,oC7CaJ,C6CxLC,yCAmLG,4BAAA,CAHA,WAAA,CAEA,oCAAA,CADA,wC7CaJ,C6C9LC,kEAsLK,W7CWN,C6CjMC,8BA2LG,U7CSJ,C6CpMC,uCA+LK,sCAAA,CADA,wC7CUN,C6CxMC,8CAmMK,iB7CQN,C6CHG,uBACC,8B7CKJ,C6CNG,2CAIG,6B7CKN,C6CTG,kDASG,8BAAA,CADA,yC7CKN,C6CbG,uCAaG,U7CGN,C6ChBG,gDAgBK,yC7CGR,C6CEM,4CACE,8B7CAR,C6CGM,6CAEE,wCAAA,CADA,6B7CAR,C6CIM,6CACE,QAAA,CC/ON,mCAAA,CAHA,6BAAA,CAEA,kCAAA,CADA,gCAAA,CAGA,yCAAA,CACA,0C9CiPF,C6CFQ,kHAEE,4DAAA,CADA,kCAAA,CAEA,2C7CIV,C6CDQ,mHAEE,6DAAA,CADA,kC7CIV,C6CKS,2DACC,eAAA,CACA,mC7CHV,C6COW,wECjQT,4CAAA,CAEA,wCAAA,CADA,+B9C8PF,C6CWM,0CAEE,eAAA,CADA,QAAA,CCpQN,6BAAA,CACA,kCAAA,CAFA,4B9CgQF,C8C5PE,gDACE,4DAAA,CACA,2C9C8PJ,C8C3PE,iDACE,6D9C6PJ,C8CzPG,qLAGC,eAAA,CACA,mC9C2PJ,C6CEC,2CAGG,c7CEJ,C+CpNA,mBAEE,kBAAA,CAKA,qCAAA,CANA,YAAA,CAOA,wCAAA,CAHA,WAAA,CAFA,sBAAA,CAGA,iBAAA,CAFA,U/C3EF,CgDCC,S1CLC,qBAAA,CADA,kCAAA,C0CSA,YAAA,C1CVA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,C0COA,UhDKF,CgDTC,uBDHG,YAAA,CALA,MAAA,CAGA,oCAAA,CAFA,eAAA,CAGA,iBAAA,CAFA,kB/CuBJ,C+ClBI,kCACE,S/CoBN,C+CjBI,8BAGE,YAAA,CADA,iBAAA,CADA,iB/CqBN,C+CjBO,sDACC,c/CmBR,C+CfI,2DA0EI,2B/CxDR,C+C2DM,2DACE,kC/CzDR,C+CrBI,oDAmFE,kCAAA,CACA,e/C3DN,C+CzBI,0DAwFE,oC/C5DN,C+CxBI,4DA0FI,2B/C/DR,C+CkEM,4DAEE,sCAAA,CADA,kCAAA,CAEA,+BAAA,CACA,e/ChER,C+CjCI,qDAsGE,2BAAA,CACA,e/ClEN,C+CrCI,2DA2GE,oC/CnEN,C+CpCI,0DA6GI,2B/CtER,C+CyEM,0DAEE,kCAAA,CADA,2B/CtER,C+C3CI,mDAuHE,2B/CzEN,C+C9CI,yDA2HE,oC/C1EN,C+C7CI,6BAIE,sCAAA,CAFA,yCAAA,CACA,oCAAA,CAFA,kB/CkDN,C+C7CM,qCAEE,iDAAA,CA4CN,qCAAA,CA7CM,sC/CwDR,C+CnDM,0EAmCJ,kBAAA,CADA,YAAA,CAOA,wCAAA,CAHA,WAAA,CAFA,sBAAA,CAGA,iBAAA,CAFA,U/CyBF,C+C9DM,qCACE,sCAAA,CAuCN,qC/CsBF,C+CzDM,oCA8BJ,kBAAA,CA7BM,sCAAA,CAkCN,qCAAA,CAjCM,UAAA,CA2BN,YAAA,CAOA,wCAAA,CAHA,WAAA,CAFA,sBAAA,CAGA,iBAAA,CAFA,U/CqCF,C+C/DM,qCACE,sD/CiER,C+C7DI,8BAGE,sCAAA,CACA,wCAAA,CACA,gBAAA,CAHA,qCAAA,CADA,iB/CmEN,C+C5DI,oCACE,sCAAA,CACA,yCAAA,CAEA,gBAAA,CADA,sC/C+DN,CgDxHE,+IAII,kBhDyHN,CgDrHE,qJAII,mBhDsHN,CgD9GK,kEAIG,sCAAA,CADA,iBhD+GR,CgD1GQ,yEAEE,WAAA,CADA,UhD6GV,CgDzGQ,yEACE,sDhD2GV,CgDzHK,uGDmLG,oDAAA,CADA,uBAAA,CAFA,aAAA,CACA,YAAA,CAJA,UAAA,CACA,aAAA,CAOA,SAAA,CADA,iBAAA,CAEA,OAAA,CACA,0BAAA,CARA,Y/CzCR,C+CsDK,2GAQG,oBAAA,CACA,QAAA,CAEA,sCAAA,CAPA,WAAA,CAEA,mBAAA,CAJA,MAAA,CAQA,wCAAA,CAPA,WAAA,CAIA,sBAAA,CAFA,uB/C/CR,C+C0CK,mHAeG,2B/CtDR,CgDrJK,+GD6NG,yCAAA,CADA,uBAAA,CAEA,2B/CpER,CgDpIO,wHD6JC,oDAAA,CADA,uBAAA,CAFA,aAAA,CACA,YAAA,CAJA,UAAA,CACA,aAAA,CAOA,SAAA,CADA,iBAAA,CAEA,OAAA,CACA,0BAAA,CARA,Y/CRR,C+CqBK,4HAQG,oBAAA,CACA,QAAA,CAEA,sCAAA,CAPA,WAAA,CAEA,mBAAA,CAJA,MAAA,CAQA,wCAAA,CAPA,WAAA,CAIA,sBAAA,CAFA,uB/CdR,C+CSK,oIAeG,2B/CrBR,C+CMK,4HAoBK,wB/CvBV,C+CGK,yQAyBK,2B/CxBV,CgDvKO,iQDuMC,yCAAA,CADA,uBAAA,CAEA,2B/CtBR,CgD5KK,uDAGG,gBhD4KR,CgD/KK,4EAOK,sCAAA,CADA,ehD6KV,CgDzKQ,mFDuFF,kC/CqFN,CgDxKQ,oFDwFF,gCAAA,CACA,kC/CmFN,CgDxKQ,kFD0FF,gCAAA,CACA,kC/CiFN,CgD9LK,8DA0BG,kBAAA,CAFA,YAAA,CACA,qBhD0KR,CgDnMK,6DDyHD,iDAAA,CACA,qCAAA,CAGA,qBAAA,CAPA,aAAA,CAQA,aAAA,CANA,UAAA,CAGA,sCAAA,CACA,iBAAA,CALA,S/CuFJ,CgD9MK,gEDsIC,iBAAA,CACA,W/C2EN,C+C0FK,uGAMG,sBAAA,CACA,QAAA,CAGA,sCAAA,CAPA,WAAA,CACA,mBAAA,CAFA,MAAA,CAMA,wCAAA,CAHA,sBAAA,CAIA,uB/CxFR,C+C+EK,+GAcG,2B/C1FR,C+C0GM,8EAOE,oDAAA,CADA,uBAAA,CAFA,aAAA,CACA,YAAA,CAJA,UAAA,CACA,aAAA,CAOA,SAAA,CADA,iBAAA,CAEA,SAAA,CAPA,uB/CjGR,C+C2GQ,yGACE,6C/CzGV,C+C+GM,sFAEE,yCAAA,CACA,uBAAA,CAFA,2B/C3GR,C+CwDK,wHAMG,sBAAA,CACA,QAAA,CAGA,sCAAA,CAPA,WAAA,CACA,mBAAA,CAFA,MAAA,CAMA,wCAAA,CAHA,sBAAA,CAIA,uB/CtDR,C+C6CK,gIAcG,2B/CxDR,C+C0CK,wHAmBK,wB/C1DV,C+CuCK,iQAwBK,2B/C3DV,C+CiEM,+FAOE,oDAAA,CADA,uBAAA,CAFA,aAAA,CACA,YAAA,CAJA,UAAA,CACA,aAAA,CAOA,SAAA,CADA,iBAAA,CAEA,SAAA,CAPA,uB/CxDR,C+CkEQ,0HACE,6C/ChEV,C+CgFQ,+MAEE,yCAAA,CACA,uBAAA,CAFA,2B/CtEV,CgD3PE,mBAEE,qBAAA,CADA,iBhD8PJ,C+CnFK,oGASG,kBAAA,CANA,QAAA,CASA,sCAAA,CAVA,WAAA,CAMA,YAAA,CAEA,wCAAA,CANA,wBAAA,CAGA,QAAA,CAFA,iBAAA,CACA,QAAA,CAKA,wB/CqFR,C+ChGK,4GAgBG,2B/CmFR,CgD1QK,mDDyMC,iBAAA,CADA,wC/CsEN,C+ClEQ,2EAIE,aAAA,CAGA,mDAAA,CADA,sBAAA,CADA,YAAA,CAJA,UAAA,CACA,aAAA,CACA,WAAA,CAOA,SAAA,CAFA,iBAAA,CACA,Q/CqEV,C+ChEU,mFAEE,wCAAA,CADA,sBAAA,CAEA,2B/CkEZ,CgD1RK,kEAGG,ahD0RR,CgD7RK,gEAOG,sChDyRR,C+CgCK,wHASG,kBAAA,CANA,QAAA,CAQA,sCAAA,CATA,WAAA,CAMA,YAAA,CAEA,yCAAA,CANA,uBAAA,CAGA,MAAA,CAFA,iBAAA,CACA,O/C1BR,C+CoBK,gIAeG,2B/ChCR,C+C6CQ,+FAIE,eAAA,CACA,aAAA,CAEA,mDAAA,CADA,sBAAA,CALA,UAAA,CACA,aAAA,CACA,WAAA,CAMA,UAAA,CADA,iBAAA,CAEA,Q/C3CV,C+C+CU,uGAEE,wCAAA,CACA,sBAAA,CAFA,2B/C3CZ,C+CiFU,qHACE,6C/C/EZ,CgDvTK,qDAQG,ehDkTR,CgD1TK,0EAWK,sChDkTV,CgD/SQ,iFDqBF,kC/C6RN,CgD9SQ,kFDsBF,gCAAA,CACA,kC/C2RN,CgD9SQ,gFDwBF,gCAAA,CACA,kC/CyRN,CgDxUK,2DD2DD,iDAAA,CACA,qCAAA,CAGA,qBAAA,CAPA,aAAA,CAQA,aAAA,CANA,UAAA,CAGA,sCAAA,CACA,iBAAA,CAIE,OAAA,CATF,S/C2RJ,C+C9LK,mGASG,kBAAA,CANA,QAAA,CASA,sCAAA,CAVA,WAAA,CAMA,YAAA,CAEA,wCAAA,CANA,wBAAA,CAGA,QAAA,CAFA,iBAAA,CACA,QAAA,CAKA,wB/CgMR,C+C3MK,2GAgBG,2B/C8LR,C+C9MK,mGAsBK,mCAAA,CADA,mB/C6LV,C+ClNK,uNA2BK,2B/C2LV,CgD7UK,kDDyJC,iBAAA,CADA,wC/CyLN,C+C/JQ,0EAKE,eAAA,CADA,aAAA,CAGA,mDAAA,CADA,sBAAA,CALA,UAAA,CACA,aAAA,CACA,WAAA,CAOA,SAAA,CAFA,iBAAA,CACA,Q/CkKV,C+C5JU,qKAEE,wCAAA,CADA,sBAAA,CAEA,2B/C+JZ,C+C9EK,uHASG,kBAAA,CANA,QAAA,CAQA,sCAAA,CATA,WAAA,CAMA,YAAA,CAEA,yCAAA,CANA,uBAAA,CAGA,MAAA,CAFA,iBAAA,CACA,O/CoFR,C+C1FK,+PAqBK,2B/C4EV,CgDnXO,sEDoUC,e/CkDR,C+ChDQ,8FAIE,eAAA,CACA,aAAA,CAEA,mDAAA,CADA,sBAAA,CALA,UAAA,CACA,aAAA,CACA,WAAA,CAMA,UAAA,CADA,iBAAA,CAEA,Q/CkDV,C+C/CQ,wFACE,Y/CiDV,C+C5CU,6MAEE,wCAAA,CADA,sBAAA,CAEA,2B/C+CZ,C+CxCU,oHACE,6C/C0CZ,CiDviBC,eAIC,6CAAA,CACA,4CAAA,CACA,6BAAA,CAHA,qBAAA,CADA,SAAA,CADA,cjDFF,CiDSE,6BACE,6BjDLJ,CiDJC,2DAWG,oCAAA,CADA,wCjDGJ,CiDbC,8BCJG,+BAAA,CAFA,SAAA,CACA,iBAAA,CAEA,iBAAA,CAGA,sClDaJ,CkDXI,oCAEE,mDAAA,CADA,clDcN,CkDVI,sCAEE,+BAAA,CADA,8BlDaN,CkDdI,8CAQI,kCAAA,CAFA,WAAA,CACA,gFAAA,CAFA,UlDeR,CkDRI,uCAEE,6BAAA,CADA,4BlDWN,CkDZI,+CAQI,kCAAA,CAFA,WAAA,CACA,8BAAA,CAFA,UlDaR,CkDNI,sCACE,sClDQN,CkDLI,qCACE,qClDON,CiD3CC,oDCyCK,8BAAA,CACA,mCAAA,CACA,oCAAA,CACA,iBAAA,CAJA,UlDUN,CiDlCE,uBACE,qCjDoCJ,CiDjCE,sBACE,oCjDmCJ,CmDxDC,YAUC,kBAAA,CAJA,4BAAA,CASA,6BAAA,CAQA,6BAAA,CAGA,kCAAA,CAnBA,cAAA,CACA,mBAAA,CACA,qBAAA,CAEA,sBAAA,CAcA,SAAA,CArBA,YAAA,CADA,eAAA,CAFA,cAAA,CAqBA,yBAAA,CANA,4GAAA,CAJA,qBAAA,CAYA,iBAAA,CAXA,kBAAA,CAXA,WnDYF,CmDcE,kBACE,8BAAA,CAEA,oCAAA,CADA,iBnDXJ,CmDeE,kBACE,uCnDbJ,CmDgBG,uCAEG,cnDfN,CmDoBC,kBAEC,SAAA,CADA,kBnDjBF,CmDwBG,yBClDD,6CAAA,CANA,uCpDoCF,CoDvBE,+BAPA,mDAAA,CANA,+CpDwCF,CmDgBG,2CCxDD,oCpD2CF,CmDaG,2CCxDD,kCpD8CF,CmDUG,2BClDD,sCAAA,CANA,kCpDkDF,CoDrCE,iCAPA,4CAAA,CANA,wCpDsDF,CmDEG,0FCxDD,+BpD4DF,CmDJG,wBClDD,+BAAA,CANA,2BpDgEF,CoDnDE,8BAPA,+BAAA,CANA,2BpDoEF,CmDZG,oFCxDD,+BpD0EF,CmDRG,qBClED,8BAAA,CAAA,6BpD8EF,CmDZG,uCClED,YpDiFF,CmDfG,qBClED,gCAAA,CAAA,+BpDqFF,CmDnBG,uCClED,apDwFF,CmDdG,oBC1ED,qCpD2FF,CmDjBG,oBC1ED,qCpD8FF,CqD/FC,iDAEG,2BrDJJ,CqDQC,iBACC,UrDNF,CqDKC,wCAGG,YrDLJ,CqDQE,8CAEI,oBrDPN,CqDYI,+BAGE,mCAAA,CAFA,4BAAA,CACA,iCAAA,CAEA,iBrDVN,CsDPC,0BAEG,sCtDVJ,CsDYI,kCACE,2BtDVN,CsDcE,qCAKI,4CAAA,CADA,qCAAA,CADA,6BAAA,CAGA,eAAA,CAJA,StDTN,CsDiBE,mBACE,YAAA,CACA,WtDfJ,CsDiBK,sCACC,YtDfN,CsDkBK,wCACC,YtDhBN,CsDmBI,0BAIE,mCAAA,CAFA,4BAAA,CACA,iCAAA,CAEA,8BAAA,CAEA,cAAA,CADA,iBAAA,CALA,UtDXN,CsDmBM,gCACE,eAAA,CACA,ctDjBR,CsDsBE,kBAKE,uCAAA,CAFA,sBAAA,CADA,aAAA,CAEA,+BAAA,CAHA,WtDhBJ,CsDsBK,2BACC,+BtDpBN,CsDuBK,2BACC,+BtDrBN,CsDwBI,2BACE,iDtDtBN,CsDyBI,0BAEE,eAAA,CADA,UtDtBN,CsD2BE,kBA2HE,kDAAA,CAxHA,kBAAA,CAKA,sCAAA,CAFA,kCAAA,CAJA,YAAA,CAGA,+BAAA,CADA,4BAAA,CAOA,eAAA,CAFA,oCAAA,CAFA,oCAAA,CANA,iBAAA,CASA,wDtDvBJ,CsD0BK,2BAEC,8BAAA,CADA,6BAAA,CAEA,oCtDxBN,CsD2BK,2BAEC,8BAAA,CADA,4BAAA,CAEA,oCtDzBN,CsD4BK,gCAEC,4BAAA,CADA,mCAAA,CAEA,kBtD1BN,CsD8BM,8BAKE,sBAAA,CAGA,sCAAA,CADA,cAAA,CALA,WAAA,CAIA,YAAA,CALA,iBAAA,CAEA,OAAA,CACA,KtDxBR,CsD+BO,iCAEC,gCAAA,CADA,YtD5BR,CsDiCK,gCACC,sCtD9BN,CsD6BK,sFAEC,gCtD5BN,CsDkCM,sCACE,ctDhCR,CsDoCI,8BACE,YtDlCN,CsDqCK,8BACC,ctDnCN,CsDkCK,iDAIG,atDnCR,CsDsCO,iDtBpJL,gBAAA,CsBqJM,aAAA,CtBpJN,eAAA,CACA,sBAAA,CAHA,kBhCsHF,CsD+BO,kFAMG,gCtDlCV,CsDuCI,6BACE,8EtDrCN,CsDwCI,oCAEI,UtDvCR,CsD2CI,wBACE,aAAA,CAGA,SAAA,CAFA,iBAAA,CACA,kBtDxCN,CsD2CM,kCtB/KJ,gBAAA,CACA,eAAA,CACA,sBAAA,CAHA,kBhC2IF,CsDyCM,gCACE,gCtDvCR,CsD2CI,gEACE,6CAAA,CACA,ctDzCN,CsD4CK,gCAEC,sCAAA,CADA,2BtDzCN,CsD4CO,mDACC,2BtD1CR,CuD1IG,oCAEC,sDAAA,CADA,mCvDnBJ,CuDsBI,0CACE,2CvDpBN,CuDeG,0DAUG,mCAAA,CADA,kBvDpBN,CuDuBM,uEACE,mCvDrBR,CuDyBK,sIAGG,mCvDxBR,CwDTC,eDFC,oDAAA,CAFA,2CAAA,CADA,sCAAA,CADA,kBAAA,CADA,gBAAA,CAQA,qBAAA,CAFA,kCAAA,CAIA,mBAAA,CACA,qBAAA,CCCA,+BAAA,CDLA,oCAAA,CAKA,OAAA,CCCA,4BAAA,ClDNA,eAAA,CAFA,QAAA,CACA,SAAA,CiDFA,qHAAA,CCOA,iBAAA,CDFA,4CAAA,CCCA,UxD4BF,CuDxBE,qBACE,kCvD0BJ,CwDxBE,8CACE,wBAAA,CACA,4CxD0BJ,CwDxBI,oDACE,uCAAA,CACA,cxD0BN,CwDvBK,4DAEC,sDAAA,CADA,WxD0BN,CwDrBG,4BAEC,kCAAA,CACA,gDAAA,CAFA,SxDyBJ,CuDXG,4BACC,oCvDaJ,CuDLK,qFACC,kDvDUN,CuDNK,kDACC,6BvDQN,CuDJK,iDACC,6BAAA,CACA,wCAAA,CACA,gDvDMN,CuD5BG,4BACC,oCvD8BJ,CuDtBK,qFACC,kDvD2BN,CuDvBK,kDACC,6BvDyBN,CuDrBK,iDACC,6BAAA,CACA,wCAAA,CACA,gDvDuBN,CuD7CG,0BACC,kCvD+CJ,CuDvCK,iFACC,gDvD4CN,CuDxCK,gDACC,2BvD0CN,CuDtCK,+CACC,2BAAA,CACA,wCAAA,CACA,gDvDwCN,CuDzFG,6BAEC,sDAAA,CADA,mCvD4FJ,CuDzFI,mCACE,2CvD2FN,CuDhGG,mDAUG,mCAAA,CADA,kBvD2FN,CuDxFM,gEACE,mCvD0FR,CuDtFK,wHAGG,mCvDuFR,CuDlCG,wHAKG,kBAAA,CADA,YAAA,CAEA,yCAAA,CAJA,WAAA,CACA,iBvD6CN,CwD5FG,wBAEC,8BAAA,CADA,6BAAA,CAGA,0CAAA,CADA,uCxD+FJ,CwDlGG,iCAOG,iCxD8FN,CwD1FG,wBAGC,8BAAA,CADA,6BAAA,CADA,6DxD8FJ,CwDzFE,sBAGE,kBAAA,CADA,YAAA,CAEA,2BAAA,CAHA,WxD8FJ,CwD/FE,qCAQI,oCAAA,CADA,WxD4FN,CwDvFK,6CACC,axDyFN,CwDtGE,+BAmBI,QAAA,CAGA,oCAAA,CAFA,eAAA,CACA,iBAAA,CAHA,WAAA,CADA,qCxD6FN,CwDtFM,qCACE,mDxDwFR,CwDrFM,sCAEE,WAAA,CACA,aAAA,CAFA,UxDyFR,CwDpFO,4CACC,6CxDsFR,CwDhFE,sBAEE,sCAAA,CADA,8BxDmFJ,CwD9EE,uBACE,iBAAA,CACA,4CAAA,CACA,KxDgFJ,CwD7EG,qDACC,SAAA,CAEA,4CAAA,CADA,iBxDgFJ,CwD5EG,2DACC,SAAA,CACA,kBxD8EJ,CwDtMC,4CA4HG,cxD6EJ,CwDzEC,8DAKG,sCAAA,CACA,aAAA,CAFA,cAAA,CADA,2BxD6EJ,CwDtEC,qBACC,UxDwEF,CwDtEE,6CAEI,kCAAA,CACA,gDxDuEN,CwD1EE,wHAQM,2BxDsER,CwDlES,mEACC,6CxDoEV,CyD5NC,oCnDLC,qBAAA,CADA,kCAAA,CmDQA,mBAAA,CnDTA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNEF,CyDOC,+HAGG,gBzDNJ,CyDUC,0GAIG,eAAA,CADA,SzDRJ,CyDaC,kDAEC,YAAA,CACA,qBzDXF,CyDaE,gFACE,kBzDVJ,CyDIC,8FAWG,WzDXJ,CyDaI,wHACE,SzDVN,CyDaI,wGACE,QzDVN,CyDeC,8GAGC,YzDbF,CyDgBC,uBAEC,kBAAA,CADA,YAAA,CAGA,2BAAA,CADA,6BAAA,CAEA,UzDdF,CyDgBE,kCACE,mBAAA,CACA,2BzDdJ,CyDYE,0EAMI,YAAA,CADA,UzDbN,CyDQE,yEAWI,YAAA,CADA,UzDdN,CyDoBC,4BAGG,wBAAA,CADA,UzDlBJ,CyDgBC,+BAOK,oCAAA,CACA,eAAA,CAFA,iBzDjBN,CyDWC,mDAaK,eAAA,CADA,iBzDnBN,CyDOC,kJAoBK,QAAA,CACA,6CAAA,CAFA,SzDnBN,CyDAC,iFAmCK,iBAAA,CAHA,WAAA,CACA,aAAA,CACA,oCzDtBN,CyD4BE,+BACE,cAAA,CACA,ezD1BJ,CyDwBE,2FAKI,mCzD1BN,CyDqBE,qFAUI,eAAA,CADA,ezD1BN,CyD8BI,qCAQE,sCAAA,CAPA,UAAA,CAMA,6BAAA,CAJA,+BAAA,CAOA,mBAAA,CARA,iBAAA,CAEA,OAAA,CACA,wCAAA,CAIA,wHAAA,CAHA,UzDxBN,CyD+BI,iGAEI,2BzD9BR,CyDiCM,2CACE,gDzD/BR,CyDqCM,6CAGE,sCAAA,CAFA,SAAA,CACA,SzDlCR,CyD+BI,mGAOI,2BzDnCR,CyD4BI,uFAUI,sBAAA,CACA,+BzDnCR,CyDyCM,4CAGE,4CAAA,CAFA,SAAA,CACA,SzDtCR,CyDmCI,sFAQI,sBzDxCR,CyD8CC,uBAGC,sBAAA,CAFA,YAAA,CAIA,2BAAA,CAHA,6BAAA,CAEA,gCzD3CF,CyD8CE,+BACE,+CzD5CJ,CyD+CE,4BACE,kDzD7CJ,CyDgDE,6BAEE,iDAAA,CADA,qBzD7CJ,CyD4CE,qDAKI,qBzD9CN,CyDkDE,8BAEE,gDAAA,CADA,qBzD/CJ,CyD8CE,sDAKI,qBzDhDN,CyDqDC,wBACC,YAAA,CACA,2BAAA,CAEA,gCAAA,CADA,kBzDlDF,CyD+CC,kCAOG,czDnDJ,CyD4CC,0BAWG,2BzDpDJ,CyDsDI,gCACE,iCzDpDN,CyDyDC,4DAMC,gDAAA,CAJA,YAAA,CACA,qBAAA,CACA,mCAAA,CACA,0FzDtDF,CyDyDE,0EAIE,kBAAA,CAEA,kCAAA,CALA,YAAA,CACA,4BAAA,CAGA,sBAAA,CAFA,6CzDnDJ,CyDwCC,kHAkBG,QzDtDJ,CyD0DC,2IAUC,qBAAA,CALA,YAAA,CACA,qBAAA,CAEA,2BAAA,CADA,gCAAA,CAEA,WzDvDF,CyDgEI,wbAGE,mEAAA,CADA,SzD3DN,CyDkEI,yMAEE,mEAAA,CADA,SAAA,CAEA,SzD/DN,CyDqEI,qMACE,mEzDlEN,CyDuEC,0MAKG,YAAA,CADA,WzDrEJ,CyDiEC,2LAYO,YAAA,CAEA,qBAAA,CADA,2BAAA,CAFA,UzDpER,CyDyDC,oMAiBS,YAAA,CACA,6BzDrEV,CyDmDC,oSAyBG,yCzDvEJ,CyD8CC,wLA6BG,ezDtEJ,CyDyCC,2LAiCG,gBzDrEJ,CyDoCC,sKAqCG,6BzDpEJ,CyDwEC,qBACC,cAAA,CAEA,SAAA,CADA,iBzDrEF,CyDwEE,uDASE,sCAAA,CAPA,UAAA,CAQA,6BAAA,CAJA,QAAA,CAEA,SAAA,CALA,iBAAA,CAEA,SAAA,CADA,OAAA,CAOA,0BAAA,CACA,8CAAA,CALA,SzDjEJ,CyDyEE,sDAEI,gDzDxEN,CyD4EE,2BAKE,kBAAA,CAIA,sCAAA,CANA,mBAAA,CAIA,6BAAA,CAHA,sBAAA,CAIA,2CAAA,CAPA,iBAAA,CASA,wHAAA,CAJA,4BAAA,CAJA,SzDlEJ,CyD6EE,qDAGI,sCAAA,CADA,2BzD3EN,CyDwFI,mFAEE,4CAAA,CADA,SzDjFN,CyDsFM,2EAEE,gCAAA,CADA,SzDnFR,CyD0FI,kEAII,mDAAA,CADA,+CAAA,CADA,ezDvFR,CyDoFE,4DAUI,mCzD3FN,CyD+FE,wDAGI,sCAAA,CADA,+BzD7FN,CyDkGM,0CAIE,kDAAA,CADA,+CAAA,CADA,2CAAA,CADA,SzD7FR,CyDmGM,gDACE,QzDjGR,CyDsGM,wCAIE,mDAAA,CADA,gDAAA,CAFA,SAAA,CACA,4CzDlGR,CyDuGM,8CACE,SzDrGR,CyD2GI,gEAGI,sDAAA,CADA,ezDzGR,CyDsGE,0DAWI,sDAAA,CADA,mCAAA,CADA,kBzD1GN,CyDiHI,qEAGE,sDAAA,CACA,sCAAA,CAFA,sCAAA,CADA,SzD5GN,CyDqHC,yCAEG,sCzDpHJ,C0D5WC,QpDLC,qBAAA,CADA,kCAAA,CoDSA,+BAAA,CpDLA,eAAA,CADA,SNAF,C0DWM,+DpDZJ,QNIF,C0DcE,cACE,uC1DZJ,C0DeK,qCACC,sC1DbN,C0DiBK,sCACC,uC1DfN,C0DmBE,eAME,qBAAA,CADA,kCAAA,CAJA,UAAA,CAGA,sCAAA,CAFA,yCAAA,CACA,qBAAA,CAIA,kB1DjBJ,C0DmBI,oBACE,UAAA,CACA,qC1DjBN,C0DoBI,qBACE,e1DlBN,C0DqBI,sBACE,gB1DnBN,C0DsBI,sCAII,2BAAA,CAEA,WAAA,CAJA,oBAAA,CAGA,6CAAA,CAFA,qC1DlBR,C0DyBI,kCAEI,WAAA,CAEA,kCAAA,CADA,iB1DvBR,C0D6BE,kBAEE,iBAAA,CADA,qCAAA,CAEA,iB1D3BJ,C0D6BI,0BAEE,kBAAA,CADA,YAAA,CAEA,qC1D3BN,C0DmBE,gCAaI,eAAA,CACA,sC1D7BN,C2D/DG,4KA0EC,6B3DFJ,C2DxEG,ijBAYK,oC3DoER,C2DjEQ,umBACE,kD3DwEV,C2DxFG,u3CA8BO,6B3D2EV,C2DrEQ,2GACE,0C3DuEV,C2DzDS,8TACC,kD3D+DV,C2DnHG,wGAkEG,6B3DoDN,C0DZE,gBACE,YAAA,CACA,gC1DcJ,C0DhBE,wBAKI,kC1DcN,C0DXI,6BAEE,WAAA,CADA,U1DcN,C0DvBE,uBAcI,2B1DYN,C0D1BE,8BAkBI,mC1DWN,C0DNC,eACC,YAAA,CACA,cAAA,CACA,+B1DQF,C0DXC,6BAQG,oBAAA,CAFA,QAAA,CAGA,sCAAA,CAFA,e1DUJ,C0DJC,+BAOC,sCAAA,CADA,8BAAA,CAFA,WAAA,CAFA,QAAA,CAGA,2CAAA,CAFA,U1DUF,C0DHC,gBAEC,mDAAA,CACA,cAAA,CACA,eAAA,CAHA,iBAAA,CAIA,sBAAA,CACA,kB1DKF,C2DnKI,8BA0EA,6B3D4FJ,C2DtKI,iUAYI,oC3DkKR,C2D/JQ,uXACE,kD3DsKV,C2DtLI,+2BA8BM,6B3DyKV,C2DnKQ,mEACE,0C3DqKV,C2DvJS,sMACC,kD3D6JV,C2DjNI,gEAkEE,6B3DkJN,C2DpNI,4BA0EA,2B3D6IJ,C2DvNI,qTAYI,kC3DmNR,C2DhNQ,2WACE,gD3DuNV,C2DvOI,q1BA8BM,2B3D0NV,C2DpNQ,iEACE,wC3DsNV,C2DxMS,gMACC,gD3D8MV,C2DlQI,8DAkEE,2B3DmMN,C4DvPC,eAIC,kBAAA,CAGA,sCAAA,CtDjBA,qBAAA,CADA,kCAAA,CsDcA,mBAAA,CAKA,cAAA,CtDpBA,+BAAA,CAKA,eAAA,CAFA,QAAA,CsDeA,cAAA,CtDdA,SAAA,CsDaA,iB5DPF,CFRE,4BAAA,eACE,qDAAA,CACA,oBEWF,CACF,CFRE,kCAEE,UAAA,CADA,SEWJ,CFPE,wCAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,iBESJ,CFLE,gHAEE,gDEOJ,C4DlBC,wBAYG,sC5DSJ,C4DNG,sCACC,cAAA,CACA,gC5DQJ,C4DNK,+DAEG,6B5DOR,C4DHK,+DAEG,4B5DIR,C4DAK,+DAEG,6B5DCR,C4DIM,kEACE,mE5DFR,C4DKM,iEACE,mE5DHR,C4DMM,iEACE,sC5DJR,C4DOO,mEACC,2B5DLR,C4DSS,iFAGC,oDAAA,CADA,2CAAA,CADA,oC5DLV,C4DaG,qCAIC,6CAAA,CAHA,yCAAA,CAEA,sCAAA,CADA,iEAAA,CAGA,iB5DXJ,C4DMG,8DAaG,oDAAA,CAEA,oCAAA,CAHA,uBAAA,CAHA,QAAA,CADA,iBAAA,CAEA,OAAA,CAIA,4CAAA,CAHA,O5DPN,C4DJG,qDAqBG,4BAAA,CADA,QAAA,CADA,oC5DVN,C4DcM,2DACE,kC5DZR,C4DeM,4DAQE,2CAAA,CAPA,UAAA,CAMA,wBAAA,CAJA,MAAA,CADA,iBAAA,CAEA,OAAA,CACA,0BAAA,CAIA,8CAAA,CAHA,S5DVR,C4DiBQ,wEACE,S5DfV,C4DmBO,kEAIC,QAAA,CAFA,kCAAA,CADA,iBAAA,CAIA,2BAAA,CAFA,S5DfR,C4DwBU,wJACE,S5DnBZ,C4DwBO,mEACC,4B5DtBR,C4DwBS,gFACC,mC5DtBV,C4DyBS,yGACC,sD5DvBV,C4D6BG,sEAEG,sC5D5BN,C4DqCS,kKACC,+B5DhCV,C4DmCS,iHACC,+C5DjCV,C4DuCG,wCAIG,8BAAA,CAFA,oEAAA,CACA,oC5DrCN,C4DwCM,+CACE,wB5DtCR,C4D2CG,wCAIG,+BAAA,CAFA,mEAAA,CACA,8D5DzCN,C4D4CM,+CACE,wB5D1CR,C4D+CG,wCAIG,8BAAA,CAFA,oEAAA,CACA,8D5D7CN,C4DgDM,+CACE,wB5D9CR,C4DpJC,+BA8MG,kBAAA,CAJA,gBAAA,CACA,2CAAA,CACA,cAAA,CAMA,qBAAA,CAFA,kCAAA,CARA,cAAA,CAKA,mBAAA,CAJA,iBAAA,CAMA,4CAAA,CAEA,kB5DhDJ,C4DmDI,2CACE,+D5DjDN,C4DoDI,0CAGE,+DAAA,CADA,sBAAA,CAAA,iD5DjDN,C4DqDI,uCtDxOF,qBAAA,CADA,kCAAA,CADA,+BAAA,CsD4OI,QAAA,CtDvOJ,eAAA,CAFA,QAAA,CsDwOI,SAAA,CtDvOJ,SAAA,CsDyOI,O5D7CN,C4DiDI,qCACE,2B5D/CN,C4DkDK,4CACC,sBAAA,CACA,kCAAA,CACA,mD5DhDN,C4D6CK,4DAMG,a5DhDR,C4DoDK,6CAGC,sDAAA,CADA,mCAAA,CADA,kB5DhDN,C4DoDM,mDACE,2CAAA,CACA,mC5DlDR,C4DoDQ,yDACE,O5DlDV,C4DsDO,0DACC,mC5DpDR,C4DsDQ,gEACE,O5DpDV,C4D2DC,SAIC,cAAA,CACA,oBAAA,CAFA,iB5DnDF,C4DuDE,0BtD7RA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SN8OF,C4D6CE,iBAGE,SAAA,CACA,iB5DjDJ,C4DoDE,gBAQE,6CAAA,CADA,+CAAA,CADA,qCAAA,CAJA,oBAAA,CAEA,WAAA,CAHA,iBAAA,CAQA,6CAAA,CAJA,qBAAA,CAFA,U5D5CJ,C4DoDI,sBAYE,sCAAA,CADA,qCAAA,CAVA,UAAA,CAKA,WAAA,CAFA,QAAA,CAIA,gBAAA,CADA,eAAA,CAGA,SAAA,CARA,iBAAA,CACA,OAAA,CAMA,mBAAA,CAIA,0CAAA,CARA,U5D1CN,C4DsDE,gBAGE,kCAAA,CAFA,oBAAA,CAIA,+BAAA,CAHA,mCAAA,CAEA,qBAAA,CAEA,kB5DpDJ,C4D6DG,qEAEG,kC5DzDN,C4D2DM,4CACE,S5DzDR,C4D8DG,uBACC,kB5D5DJ,C4D2DG,uCAIG,mC5D5DN,C4DwDG,uCAQG,sD5D7DN,C4DsEK,iGAEG,2C5DlER,C4DoEQ,0DACE,8C5DlEV,CyCjTE,qCAGE,eAAA,CAFA,uCAAA,CACA,0CzCoTJ,C6D7SC,2BAEC,kBAAA,CADA,YAAA,CAEA,qC7DTF,C6DWE,uCAEE,aAAA,CADA,sC7DRJ,C6DEC,kDAaG,yBAAA,CADA,UAAA,CAEA,gCAAA,CAHA,sB7DPJ,C6DcC,UvDvBC,qBAAA,CADA,kCAAA,CADA,+BAAA,CuD4BA,6DAAA,CvDvBA,eAAA,CAFA,QAAA,CACA,SAAA,CuD2BA,qCAAA,CADA,iBAAA,CADA,U7DNF,C6DUE,qBAIE,kBAAA,CAFA,YAAA,CACA,sBAAA,CAFA,U7DLJ,C6DUI,iCAEE,qBAAA,CADA,W7DPN,C6DYE,gBAIE,sDAAA,CAEA,oCAAA,CAHA,uBAAA,CAFA,iBAAA,CAIA,qBAAA,CAHA,U7DNJ,C6DYI,sBACE,4D7DVN,C6DcE,iBAGE,sCAAA,CAEA,oCAAA,CADA,U7DXJ,C6DeE,iCANE,uBAAA,CADA,iB7DFJ,C6DSE,gBAIE,cAAA,CAFA,U7DXJ,C6DgBE,kBAIE,qBAAA,CADA,sCAAA,CAEA,qCAAA,CAIA,6BAAA,CADA,qBAAA,CANA,+BAAA,CAIA,cAAA,CACA,gBAAA,CANA,8B7DNJ,C6DgBI,4BACE,gD7DdN,C6DiBI,wBACE,uC7DfN,C6DmBE,0BAYE,kBAAA,CAPA,4BAAA,CAKA,cAAA,CACA,YAAA,CAHA,kBAAA,CACA,YAAA,CARA,iBAAA,CAKA,iBAAA,CAHA,OAAA,CACA,8BAAA,CAGA,gBAAA,CALA,S7DPJ,C6DoBE,gBAIE,sDAAA,CADA,uBAAA,CAFA,iBAAA,CAIA,OAAA,CAHA,S7DfJ,C6DqBE,gBAGE,MAAA,CAFA,iBAAA,CACA,OAAA,CAEA,U7DnBJ,C6DsBE,qBAIE,kCAAA,CAGA,cAAA,CALA,oBAAA,CACA,8BAAA,CAFA,iBAAA,CAIA,8DAAA,CACA,0B7DnBJ,C6DsBI,iCACE,uB7DpBN,C6DuBI,gCACE,2B7DrBN,C6D0BC,oBAGC,YAAA,CAFA,WAAA,CAGA,sBAAA,CAFA,SAAA,CAGA,iB7DxBF,C6DmBC,oCASG,WAAA,CADA,sB7DvBJ,C6DeC,qCAcG,QAAA,CADA,sB7DxBJ,C6DWC,oCAmBG,WAAA,CADA,sB7DzBJ,C6DOC,sCAwBG,gBAAA,CADA,eAAA,CAEA,QAAA,CACA,yB7D3BJ,C6DCC,oCAiCG,WAAA,CAFA,SAAA,CADA,KAAA,CAEA,U7D3BJ,C6DLC,oCAwCG,sDAAA,CAFA,UAAA,CACA,QAAA,CAFA,sB7D1BJ,C6DXC,yCA8CG,qCAAA,CADA,YAAA,CADA,0B7D5BJ,C6DkCC,8CAaC,kBAAA,CAPA,4BAAA,CAKA,cAAA,CACA,YAAA,CARA,QAAA,CAKA,kBAAA,CACA,YAAA,CARA,iBAAA,CAKA,iBAAA,CANA,QAAA,CAIA,6BAAA,CAGA,gBAAA,CALA,S7DtBF,C6DmCC,eACC,kB7DjCF,C6DgCC,gCAIG,+C7DjCJ,C6D6BC,+BAQG,sD7DlCJ,C6D0BC,iCAYG,+C7DnCJ,C6DuBC,iCAgBG,2CAAA,CACA,Y7DpCJ,C6DmBC,oCAqBG,mCAAA,CACA,kB7DrCJ,C6DeC,yCA0BG,kB7DtCJ,C8D/LC,UAMC,kBAAA,CAUA,sDAAA,CARA,QAAA,CAKA,oCAAA,CxDhBA,qBAAA,CADA,kCAAA,CwDqBA,cAAA,CAbA,mBAAA,CxDTA,+BAAA,CwDgBA,8BAAA,CACA,mCAAA,CxDZA,eAAA,CwDUA,QAAA,CAIA,4CAAA,CAPA,YAAA,CAEA,SAAA,CANA,iBAAA,CAYA,4CAAA,CAGA,gBAAA,CAbA,qB9DQF,C8DOE,gBACE,4D9DLJ,C8DQE,kBAGE,kBAAA,CAMA,oCAAA,CAEA,6BAAA,CATA,YAAA,CAMA,0CAAA,CAJA,sBAAA,CAEA,QAAA,CALA,iBAAA,CAIA,OAAA,CAKA,4CAAA,CAHA,yC9DFJ,C8DLE,0BAeI,iBAAA,CADA,6C9DLN,C8DSI,yBAQE,qBAAA,CADA,oCAAA,CADA,QAAA,CALA,UAAA,CAGA,MAAA,CAFA,iBAAA,CAGA,OAAA,CAFA,KAAA,CAMA,4C9DPN,C8DWE,iFAGI,MAAA,CACA,U9DXN,C8DcK,8FAIG,SAAA,CADA,O9DbR,C8DGE,2EAgBI,S9DhBN,C8DoBE,mBAGE,kBAAA,CAFA,qBAAA,CAGA,+BAAA,CAFA,mBAAA,CAMA,wCAAA,CACA,4CAAA,CAJA,+EAAA,CAKA,mE9DpBJ,C8DUE,2BAaI,wC9DpBN,C8DwBG,uBACC,sC9DtBJ,C8DwBI,6BACE,4C9DtBN,C8DkBG,yCAWG,0CAAA,CAHA,uBAAA,CAIA,SAAA,CAHA,0BAAA,CACA,yC9DrBN,C8DWG,0CAmBG,+BAAA,CAHA,+E9DvBN,C8D8BG,uBAEC,sDAAA,CADA,kB9D3BJ,C8D0BG,kCAKG,mB9D5BN,C8DuBG,iDAUK,2C9D9BR,C8DkCK,oCACC,4C9DhCN,C8D+BK,8DAKK,iC9DjCV,C8DuCG,wBAEC,sDAAA,CADA,kB9DpCJ,C8DmCG,0CAKG,e9DrCN,C8DwCK,qCACC,+C9DtCN,C8DqCK,uDAIG,e9DtCR,C8DkCK,+DAOK,oC9DtCV,C8D6CC,mBAIC,oCAAA,CAFA,6BAAA,CACA,kCAAA,CAFA,2C9DxCF,C8D6CE,0FAGI,MAAA,CACA,U9D7CN,C8DgDK,uGAIG,SAAA,CADA,O9D/CR,C8D+BC,qCA0BG,0CAAA,CAFA,QAAA,CADA,OAAA,CAEA,yC9DlDJ,C8DyBC,6CA6BK,4C9DnDN,C8DsBC,sCAmCG,2CAAA,CADA,6E9DnDJ,C8DiBC,oFAoCG,wC9DlDJ,C8DyDG,kDAMG,yCAAA,CAHA,qBAAA,CACA,OAAA,CACA,wC9DxDN,C8DmDG,mDAUG,6E9D1DN,C8D+DC,mBAIC,oCAAA,CAFA,+BAAA,CACA,oCAAA,CAFA,6C9D1DF,C8D+DE,0FAGI,MAAA,CACA,U9D/DN,C8DkEK,uGAIG,SAAA,CADA,O9DjER,C8DiDC,qCA0BG,2CAAA,CAFA,QAAA,CADA,OAAA,CAEA,0C9DpEJ,C8D2CC,6CA6BK,8C9DrEN,C8DwCC,sCAoCG,aAAA,CADA,6CAAA,CADA,iF9DrEJ,C8DmCC,8CAuCK,wC9DvEN,C8D2EG,kDAMG,2CAAA,CAHA,qBAAA,CACA,OAAA,CACA,0C9D1EN,C8DqEG,mDAUG,iF9D5EN,C+DpMC,YzDDC,eAAA,CAFA,QAAA,CACA,SAAA,CyDMA,iB/DJF,C+DOE,+BzDXA,qBAAA,CADA,kCAAA,CADA,+BAAA,CyDWA,U/DUF,C+DRE,mBAOE,oDAAA,CAHA,+CAAA,CACA,sCAAA,CAJA,YAAA,CAEA,+BAAA,CAQA,YAAA,CALA,sGAAA,CAIA,eAAA,CAEA,sD/DJJ,C+DWI,kDAHE,kC/DDN,C+DII,yBAEE,gD/DNN,C+DSI,gCACE,sC/DPN,CgEhCG,gCACC,oChEkCJ,CgE/BI,sCACE,kDhEiCN,CgEtCG,gCACC,oChEwCJ,CgErCI,sCACE,kDhEuCN,CgE5CG,8BACC,kChE8CJ,CgE3CI,oCACE,gDhE6CN,C+DHE,0BAEE,kCAAA,CADA,YAAA,CAEA,6B/DKJ,C+DFE,gCACE,mB/DIJ,C+DDE,mBAEE,sCAAA,CADA,8B/DIJ,C+DvDC,2BAyDG,sDAAA,CADA,mCAAA,CAEA,kB/DEJ,C+DAI,iCACE,2C/DEN,C+DCI,wCACE,mC/DCN,C+DlEC,2BAsEG,W/DDJ,C+DKC,kBAIC,oBAAA,CADA,8BAAA,CAFA,WAAA,CACA,iC/DDF,C+DMC,0BACC,sC/DJF,C+DOC,2BACC,6B/DLF,C+DQC,2BACC,6B/DNF,C+DSC,yBACC,2B/DPF,CiE1FC,YAOC,mBAAA,CACA,sBAAA,C3DTA,qBAAA,C2DUA,kCAAA,CAJA,YAAA,CACA,kBAAA,CAHA,+BAAA,C3DDA,eAAA,CAFA,QAAA,C2DUA,eAAA,C3DTA,SAAA,C2DGA,iBjEGF,CiEKE,kBAME,QAAA,CAJA,oBAAA,CAEA,YAAA,CADA,eAAA,CAEA,mCAAA,CAJA,iBAAA,CAOA,qBAAA,CADA,qBjEFJ,CiEKI,kDAEE,+CAAA,CACA,qCjEHN,CiEMI,yBAUE,qBAAA,CARA,YAAA,CAGA,8BAAA,CAFA,6BAAA,CAGA,mCAAA,CAGA,gCAAA,CADA,oCAAA,CAPA,iBAAA,CAGA,KAAA,CAGA,6CjEDN,CiEMM,8DACE,mDjEJR,CiETI,qCAiBI,cjELR,CiEOQ,4CACE,QjELV,CiEfI,6BAyBI,YjEPR,CiElBI,kCA4BM,mCjEPV,CiErBI,8BAiCI,sCjETR,CiEaI,uBAGE,qBAAA,CADA,WAAA,CADA,iBjETN,CiEcI,+BAEE,YAAA,CADA,iCjEXN,CiEeI,0BACE,WAAA,CAEA,aAAA,CADA,UjEZN,CiEUI,4CAOI,qBAAA,CACA,4BAAA,CACA,gCAAA,CAHA,UjEVR,CiEII,wDA4BM,kDAAA,CAhBA,oCjEZV,CiEcW,oEACC,mCjEZZ,CiEeU,+DAEE,MAAA,CADA,QjEZZ,CiEWU,oEAMI,oBAAA,CADA,mCjEZd,CiEsBI,yCAKE,sCAAA,CAFA,cAAA,CADA,YAAA,CAEA,gCAAA,CAHA,8DAAA,CAKA,yDjEpBN,CiEsBM,qDACE,YjEpBR,CiEwBQ,6DACE,sBjEtBV,CiE2BI,6BACE,6CAAA,CACA,yDjEzBN,CiE4BK,oCACC,sCjE1BN,CiE6BI,0BAEE,WAAA,CAEA,aAAA,CACA,6DAAA,CAJA,iBAAA,CAEA,UjEzBN,CiE8BI,6BACE,6BAAA,CAEA,kCAAA,CADA,qBjE3BN,CiE+BI,yBAIE,mDAAA,CADA,QAAA,CADA,MAAA,CADA,iBAAA,CAIA,UjE7BN,CiEiCE,wBACE,mBAAA,CACA,qBAAA,CAIA,2BAAA,CAHA,mCAAA,CAEA,eAAA,CADA,qBjE7BJ,CiEyBE,gCASI,kCjE/BN,CiEsBE,gDAaI,ajEhCN,CiEoCE,mBAGE,sCAAA,CAEA,QAAA,CAHA,iBAAA,CADA,iBAAA,CAGA,OAAA,CAEA,8BjElCJ,CiEqCE,4BAKE,qBAAA,CADA,iCAAA,CAHA,iBAAA,CACA,KAAA,CACA,UjEjCJ,CiEwCC,sCAGG,YjExCJ,CiE6CC,yCAGG,WjE7CJ,CiE0CC,iDAOK,gCAAA,CADA,oCjE5CN,CiEmDC,0CAGG,YAAA,CACA,0EjEnDJ,CiEwDC,sCAGG,YAAA,CACA,mBjExDJ,CiE6DC,6DAGG,YAAA,CACA,iFjE7DJ,CiEkEC,yDAGG,YAAA,CACA,mBjElEJ,CiEuEC,6DAGG,YAAA,CACA,mBjEvEJ,CiE4EC,gFAGG,YAAA,CACA,mBjE5EJ,CiEgFC,uCAGG,YAAA,CAEA,eAAA,CADA,WjE/EJ,CkEzMA,aAEE,kBAAA,CADA,YAAA,CAEA,sBlECF,CmEQC,oCAGC,sBAAA,C7DVA,qBAAA,CADA,kCAAA,C6DYA,oBAAA,C7DbA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,C6DUA,iBAAA,CAHA,WnEGF,CmEKG,gEACC,kBnEFJ,CmEKE,sGAEE,SnEDJ,CmEIE,kDACE,iBnEDJ,CmEGI,gEACE,sCAAA,CACA,kDnEAN,CmEEO,0KACC,anECR,CmEGI,4DACE,kCnEAN,CmEbE,8DAiBI,cnEAN,CmEKC,qBACC,UnEHF,CmEMC,sBAQC,6BAAA,CACA,gCAAA,CAPA,sBAAA,CACA,sCAAA,CACA,oBAAA,CAEA,+BAAA,CADA,iBAAA,CAJA,WnEGF,CmEOE,2BDlEA,kBAAA,CADA,YAAA,CCqEE,6EAAA,CDnEF,sBAAA,CCoEE,iBAAA,CACA,gBAAA,CAHA,UnECJ,CmEKI,uCAKE,YAAA,CAFA,6BAAA,CAFA,iBAAA,CACA,OAAA,CAEA,UnEFN,CmEFI,2CAaI,4CAAA,CAEA,sCAAA,CAPA,MAAA,CAIA,6BAAA,CAEA,gDAAA,CALA,+EnECR,CmEUI,kCACE,MAAA,CACA,WAAA,CtClFJ,eAAA,CAEA,QAAA,CsCiFI,iBAAA,CtClFJ,SAAA,CsCoFI,iBAAA,CADA,iBnEJN,CmEQM,qDACE,OnENR,CmESM,iFAIE,UAAA,CAFA,aAAA,CACA,UnENR,CmEUM,yCACE,yDnERR,CmEWM,wCACE,4DnETR,CmEYM,6CACE,cnEVR,CmEaM,uCAME,sCAAA,CAFA,oCAAA,CAIA,cAAA,CANA,+BAAA,CADA,6BAAA,CAEA,kCAAA,CAEA,gDAAA,CAEA,iBAAA,CAEA,qBnEXR,CmEaQ,gKACE,kCnEXV,CmEcQ,iKACE,mDnEZV,CmEeS,qDACC,mCAAA,CACA,kBnEbV,CmEgBS,mDAEC,kBAAA,CADA,YnEbV,CmEiBS,oDACC,2BnEfV,CmEuBE,mCACE,0FnErBJ,CmEwBE,qCAKE,kBAAA,CACA,4BAAA,CAEA,mDAAA,CACA,qBAAA,CAPA,YAAA,CAEA,0BAAA,CADA,6BAAA,CAOA,gCAAA,CAHA,iBAAA,CANA,UnEbJ,CoE/IC,Q9DRC,qBAAA,C8DYA,kCAAA,CADA,+BAAA,C9DRA,eAAA,CAFA,QAAA,CACA,SAAA,C8DWA,iBpEVF,CoEaG,oDAIG,mCpEXN,CoEeO,gDACC,mDAAA,CACA,mCpEbR,CoEGG,4CAcK,oCpEdR,CoEmBE,eACE,mCpEjBJ,CoEoBE,gBACE,apElBJ,CoEqBE,cAEE,SAAA,CAMA,UAAA,CAMA,kBAAA,CAIA,0BAAA,CAFA,cAAA,CAJA,YAAA,CACA,gBAAA,CAEA,0DAAA,CAIA,gBAAA,CARA,iBAAA,CAMA,uBAAA,CAPA,8BpEjBJ,CoEOE,+CAuBI,oBAAA,CAGA,qDAAA,CAFA,iBAAA,CACA,SpEzBN,CoEAE,sBA8BI,oCpE3BN,CoEHE,0BAkCI,kBAAA,CACA,WpE5BN,CoE8BM,iCACE,apE5BR,CoE+BM,iCACE,eAAA,CACA,sBpE7BR,CoEdE,6CAiDM,mBpEhCR,CoEoCI,4BAEI,gCpEnCR,CoEiCI,mDAOM,uBpErCV,CoE2CI,yBACE,cpEzCN,CoE6CI,sBACE,mCpE3CN,CoE+CI,uBACE,apE7CN,CoEgDI,yBACE,cpE9CN,CoEgDM,+BAEE,2BAAA,CADA,mDpE7CR,CoEiDM,+BAUE,2BAAA,CAHA,iBAAA,CACA,UAAA,CAHA,aAAA,CACA,UAAA,CAFA,MAAA,CAKA,eAAA,CARA,iBAAA,CAEA,OAAA,CADA,QpEvCR,CoEwDM,6DAHE,sCpE7CR,CoEgDM,gCAEE,WAAA,CADA,SpEjDR,CoEsDM,6BAEE,2BAAA,CADA,4CpEnDR,CoE2DE,qBACE,UAAA,CACA,aAAA,CAEA,aAAA,CACA,wCAAA,CAFA,OpEvDJ,CoE4DE,mCACE,MpE1DJ,CoE6DE,6EACE,mDpE3DJ,CoE8DE,cACE,SAAA,CACA,sCAAA,CACA,iCAAA,CACA,eAAA,CAIA,8BAAA,CADA,2EAAA,CAIA,mBAAA,CAFA,SpE3DJ,CoEgEE,mCAJE,wCAAA,CAJA,iBpE7CJ,CoEqDE,qBASE,oCAAA,CADA,kCAAA,CALA,QAAA,CAFA,UAAA,CAIA,aAAA,CADA,MAAA,CAGA,6BpE5DJ,CoEiEE,4BACE,wCpE/DJ,CoEkEE,2BACE,6BpEhEJ,CoEoEE,cAIE,kBAAA,CAOA,cAAA,CARA,mBAAA,CADA,SAAA,CAOA,WAAA,CARA,iBAAA,CAKA,iBAAA,CAIA,gBAAA,CAHA,iDpEhEJ,CoEyEE,oBAQE,sCAAA,CAPA,UAAA,CACA,aAAA,CAKA,kDAAA,CAHA,SAAA,CADA,iBAAA,CAEA,QAAA,CACA,iDpErEJ,CoE6EE,gCACE,mDpE3EJ,CoE+EE,oBACE,WpE7EJ,CoEgFE,eACE,kDAAA,CpC9PF,gBAAA,CoCqQE,sCAAA,CACA,cAAA,CAJA,MAAA,CAFA,gBAAA,CAIA,oCAAA,CpCnQF,eAAA,CoCkQE,gEAAA,CpCjQF,sBAAA,CAHA,kBhC2LF,CoE+EK,4BAGC,4CAAA,CADA,kCAAA,CADA,epE3EN,CoEgFI,0BACE,4BpE9EN,CoEkFG,4BAGC,4CAAA,CADA,kCAAA,CADA,epE9EJ,CoEmFE,eACE,aAAA,CACA,apEjFJ,CoEoFE,oBAIE,kBAAA,CAHA,YAAA,CACA,aAAA,CACA,wBAAA,CAEA,gBpElFJ,CoEqFE,4BACE,cpEnFJ,CoEsFG,4BACC,mCAAA,CACA,cpEpFJ,CoEkFG,wCAKG,cpEpFN,CoE0FE,sBACE,YpExFJ,CoE6FC,mCAGG,0DpE7FJ,CoE0FC,kCAQG,yDpE/FJ,CoEuFC,4FAgBG,qBpEjGJ,CoEiFC,mDAsBK,wDpEpGN,CoE8EC,2CA4BG,YAAA,CACA,4DAAA,CACA,SAAA,CACA,6DpEvGJ,CoEwEC,0CA4CG,iBAAA,CANA,YAAA,CACA,YAAA,CACA,SAAA,CACA,eAAA,CACA,mBAAA,CAGA,6DAAA,CAFA,gBpEzGJ,CoE8DC,gDAmDG,kCpE9GJ,CoE2DC,gDAwDG,mDpEhHJ,CoE0HC,mCACC,epErHF,CoEyHC,wBAGC,UAAA,CAFA,iBAAA,CAGA,wBAAA,CAFA,SpErHF,CoE0HC,iCAEG,gBpEzHJ,CoEuHC,4XAcG,cAAA,CACA,epE1HJ,CoE2GC,oIAsBG,epE1HJ,CoEoGC,0FA0BG,YpE1HJ,CoE8HA,yBACE,GAEE,YAAA,CADA,SpE3HF,CoE+HA,IAEE,4DAAA,CADA,SpE5HF,CoEgIA,GAEE,4DAAA,CADA,SpE7HF,CACF,CqEzTC,e/DDC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,CqEEE,oCAEI,YrEDN,CqEDE,oDAKI,gBrEDN,CqEPC,6BAcG,sCAAA,CADA,8CrEFJ,CqEKI,wCACE,gCrEHN,CqEMI,sCACE,mCrEJN,CqEQE,4BACE,sCrENJ,CqESG,+BACC,kBrEPJ,CqEUG,4BACC,gBrERJ,CqEaC,uCAKG,gBAAA,CACA,eAAA,CAFA,+BrEZJ,CFhCE,4BAAA,uCACE,qDAAA,CACA,oBEmCF,CACF,CFhCE,0DAEE,UAAA,CADA,SEmCJ,CF/BE,gEAEE,2BAAA,CACA,0CAAA,CAFA,4BAAA,CAGA,kBEiCJ,CF7BE,gKAEE,gDE+BJ,CsE/CC,uBAGC,uCAAA,CAEA,qCAAA,CADA,+IAAA,CAHA,SAAA,CAKA,gBAAA,CAJA,WtELF,CsEYC,yCAEG,sBAAA,CACA,gBtEXJ,CsEeC,gBhErBC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNYF,CsEUE,iCACE,+ItERJ,CsEWE,sBAEE,kBAAA,CAGA,sBAAA,CAGA,sCAAA,CADA,oCAAA,CAEA,cAAA,CARA,YAAA,CAGA,kCAAA,CADA,sBAAA,CAGA,qBtENJ,CsEWI,4BACE,6CAAA,CACA,qBtETN,CsEWK,oCACC,mCAAA,CACA,mBtETN,CsEcC,sBAEC,kBAAA,CADA,YAAA,CAEA,6BAAA,CACA,gCAAA,CACA,iBAAA,CACA,StEZF,CsEMC,6CASG,atEZJ,CsEeG,4CACC,atEbJ,CsEiBC,sBACC,gCAAA,CACA,mDtEfF,CsEkBC,uBASC,oCAAA,CALA,yBAAA,CAGA,qCAAA,CACA,6BAAA,CAIA,qBAAA,CAFA,gCAAA,CAJA,wDAAA,CAHA,YAAA,CAQA,WAAA,CAVA,iBAAA,CAIA,uDAAA,CAHA,StENF,CsEkBE,8BAIE,uBAAA,CACA,qCAAA,CAJA,UAAA,CAKA,aAAA,CAHA,WAAA,CADA,UtEZJ,CsEoBC,4BAKC,sBAAA,CAHA,sCAAA,CADA,YAAA,CAGA,eAAA,CADA,iBtEhBF,CsEoBE,qEAEE,UAAA,CAKA,WAAA,CAFA,MAAA,CAFA,iBAAA,CACA,KAAA,CAEA,UtEjBJ,CsEqBE,mCAEE,kDtEnBJ,CsEsBE,kCAEE,iDtEpBJ,CsEJC,mDA8BG,qCAAA,CADA,wDAAA,CAEA,8BAAA,CAHA,uDtElBJ,CsEgCC,gCACC,iBAAA,CACA,+DAAA,CACA,iBtE9BF,CsEgCE,0CAEE,ctE9BJ,CsEiCE,4CACE,oCAAA,CAhBF,sLAAA,CAEA,+BAAA,CADA,uBtEZF,CsEgCC,gCAMC,iBAAA,CADA,UAAA,CAHA,MAAA,CADA,iBAAA,CAEA,KAAA,CACA,UtE5BF,CsEiCC,wBAGC,iBAAA,CAEA,iBAAA,CADA,cAAA,CAHA,UAAA,CAKA,YAAA,CAJA,iBAAA,CAKA,StE/BF,CsEwBC,+CAWG,OAAA,CADA,mFtE9BJ,CsEoBC,8CAqBG,qBAAA,CAFA,WAAA,CAFA,MAAA,CAGA,eAAA,CALA,iBAAA,CACA,KAAA,CAEA,UtE7BJ,CsEoCC,+CAEC,oCtElCF,CsEqCC,qBAEC,sFtEnCF,CsE+CC,6CAEG,0DtE9CJ,CsEkDC,iCAEC,kBAAA,CADA,YAAA,CAEA,gCtEhDF,CsEmDC,yBACC,UtEjDF,CsEoDC,iCAOC,oCAAA,CAjGA,sLAAA,CAEA,+BAAA,CADA,uBAAA,CA8FA,sCAAA,CAJA,aAAA,CAGA,4BAAA,CAFA,mCAAA,CAIA,eAAA,CAHA,2BtE1CF,CsEiDE,uCACE,aAAA,CAEA,WAAA,CADA,UtE9CJ,CsEmDC,0BAGC,kBAAA,CADA,YAAA,CAEA,qCAAA,CAHA,StE9CF,CsEmDE,iCACE,MtEjDJ,CsEoDE,iCAEE,aAAA,CACA,mCAAA,CAFA,iBAAA,CAGA,6BtElDJ,CsE8CE,0CAOI,8BAAA,CADA,QtEhDN,CsE0CE,iDAWI,SAAA,CADA,UtEhDN,CsE4BC,2CAkCG,qBAAA,CACA,cAAA,CAPA,WAAA,CAEA,MAAA,CAGA,eAAA,CAFA,QAAA,CACA,SAAA,CANA,iBAAA,CAGA,KAAA,CAFA,UtE3CJ,CsEqDI,iDAKE,cAAA,CAHA,MAAA,CADA,OAAA,CAEA,8BAAA,CACA,StElDN,CsEqDM,wDACE,YtEnDR,CsEqDO,6DAEC,4CAAA,CADA,StElDR,CsEsDM,uDAIE,qCAAA,CAHA,aAAA,CAEA,WAAA,CAEA,eAAA,CAHA,UtEjDR,CsEsDQ,8DAKE,6BAAA,CAJA,UAAA,CAGA,aAAA,CADA,WAAA,CADA,UtEjDV,CsE2DC,wBAEC,kBAAA,CADA,YAAA,CAEA,6BtEzDF,CsE4DI,0CACE,atE1DN,CsE6DI,yCACE,MtE3DN,CsEqDE,wFASI,8BtE1DN,CsEiDE,uDAYI,QtE1DN,CsE8CE,2CAiBI,kBAAA,CADA,YAAA,CAEA,4BAAA,CACA,mCtE3DN,CsE6DM,iDACE,MAAA,CAEA,gBAAA,CADA,OtE1DR,CsEwDM,0DAKI,atE1DV,CsE4DU,uMAGE,StE1DZ,CsE8DQ,6FAEI,etE7DZ,CsEiEQ,uFAGI,4BAAA,CADA,yBtE/DZ,CsEoEQ,uFAGI,2BAAA,CADA,wBtElEZ,CsEgBE,2DA0DM,cAAA,CADA,SAAA,CADA,UtEnER,CsE0EE,oCAEE,YAAA,CADA,UtEvEJ,CsEsEE,2FAMI,etExEN,CsEkEE,sEAUI,ctEzEN,CsE+DE,0DAcI,qCtE1EN,CsE+EC,+BAEC,iBtE7EF,CsE2EC,kHACC,kCtEzEF,CsEkFI,gEAKE,kBAAA,CAFA,kCAAA,CACA,YAAA,CAHA,8BAAA,CAKA,6BAAA,CAJA,StE5EN,CsEmFI,kEAGE,kBAAA,CADA,YAAA,CAEA,WAAA,CAHA,gBtE9EN,CsE6EI,wFAOI,+BAAA,CACA,mCAAA,CAFA,8BtE9ER,CsEoFI,gEAYE,sBAAA,CATA,YAAA,CAEA,mKAAA,CADA,yDAAA,CAOA,yCAAA,CATA,eAAA,CAIA,4HAAA,CACA,iBAAA,CACA,eAAA,CACA,4CAAA,CACA,iBAAA,CATA,UtEvEN,CsEqFI,+DAQE,kBAAA,CAJA,sCAAA,CASA,qBAAA,CANA,cAAA,CANA,YAAA,CAEA,+BAAA,CAMA,sBAAA,CAHA,eAAA,CADA,SAAA,CAKA,iBAAA,CACA,uBAAA,CACA,4CAAA,CAVA,8BtExEN,CsEqFM,qEACE,qBAAA,CACA,uBtEnFR,CsEuFM,sEAKE,2CAAA,CACA,sCAAA,CACA,aAAA,CALA,WAAA,CAEA,eAAA,CADA,iBAAA,CAFA,UtE/ER,CsEyFM,sEAGE,aAAA,CADA,WAAA,CADA,UtErFR,CsE0FM,uFACE,StExFR,CsE4FO,8NAEC,uCtE1FR,CsE8FI,gEAKE,sCAAA,CACA,qBAAA,CAJA,WAAA,CAEA,eAAA,CADA,iBAAA,CAFA,UtEvFN,CsE+FI,gEAIE,sCAAA,CACA,4HAAA,CAFA,aAAA,CADA,WAAA,CADA,UtEzFN,CsEmGE,kCAEE,kBAAA,CADA,mBtEhGJ,CsE+FE,2CAII,iBtEhGN,CsE4FE,2CAOI,kEtEhGN,CsEmGI,yCAKE,kBAAA,CAFA,qBAAA,CACA,YAAA,CAFA,WAAA,CADA,UtE7FN,CsE4FI,sDAQI,0CAAA,CAMA,oCAAA,CAFA,iBAAA,CAHA,aAAA,CAEA,yCAAA,CAEA,iBAAA,CAHA,wCtE7FR,CsEmGS,+DAEC,0CAAA,CADA,yCtEhGV,CsEoGS,+DAEC,wCAAA,CADA,uCtEjGV,CsEyGC,iCAEC,iBAAA,CADA,+DtEtGF,CsEqGC,2DAKG,oCAAA,CAzaF,sLAAA,CAEA,+BAAA,CADA,uBtEqUF,CsEwGC,mMAKG,kBAAA,CADA,UtEtGJ,CsEkGC,oLAUK,kBtExGN,CsE8FC,2EAcG,StEzGJ,CsE8GC,kDAEG,+ItE7GJ,CuEtdC,kBAEC,gDAAA,CADA,iBAAA,CAEA,SvETF,CuEYI,gCACE,evEVN,CuEaI,+BACE,qCvEXN,CuEcI,gCACE,iBvEZN,CuEgBE,2BACE,qCvEdJ,CuEaE,oCAII,iBAAA,CACA,SvEdN,CuEkBE,8BACE,cvEhBJ,CuEoBC,SAGC,qBAAA,CADA,WAAA,CAEA,iBAAA,CAHA,UAAA,CAIA,evElBF,CuEqBI,mBACE,evEnBN,CuEsBI,sBACE,kBvEpBN,CuEuBI,oBACE,gBvErBN,CuEwBI,yBACE,qBvEtBN,CuEyBI,mBACE,evEvBN,CuE4BI,0BACE,sBvE1BN,CuE6BI,0BACE,sBvE3BN,CuE8BI,uBACE,mBvE5BN,CuE+BI,wBACE,oBvE7BN,CuEgCI,yBACE,qBvE9BN,CuEkCE,yBAME,6BAAA,CACA,qCAAA,CAFA,WAAA,CAHA,MAAA,CADA,iBAAA,CAEA,WAAA,CACA,QAAA,CAIA,SvEhCJ,CuEkCI,+DAKE,qCAAA,CAHA,UAAA,CAEA,MAAA,CADA,iBvE9BN,CuEmCI,+BAIE,4BAAA,CADA,YAAA,CADA,UAAA,CADA,SAAA,CAIA,SvEjCN,CuEoCI,gCAIE,4BAAA,CADA,WAAA,CADA,SAAA,CADA,QAAA,CAIA,SvElCN,CuEiDE,sBAJE,kBAAA,CADA,YAAA,CAEA,sBAAA,CAMA,SvEzCJ,CuE4CE,gDAZE,WAAA,CAFA,MAAA,CAFA,iBAAA,CACA,KAAA,CAEA,UvEpBJ,CuEiCE,0BAOE,SAAA,CAEA,2CAAA,CADA,kBAAA,CAFA,SvEvCJ,CuE4CI,kCAEE,SAAA,CADA,iBvEzCN,CuE8CE,kCA3BE,kBAAA,CADA,YAAA,CADA,WAAA,CAGA,sBAAA,CALA,MAAA,CAFA,iBAAA,CACA,KAAA,CAEA,UAAA,CAkCA,SvEtCJ,CuEyCE,kBACE,oCvEvCJ,CuE0CE,gBACE,mCvExCJ,CwE/HC,UAWC,kBAAA,CANA,sCAAA,ClERA,qBAAA,CkEeA,sBAAA,ClEhBA,kCAAA,CkEUA,gCAAA,CAFA,mBAAA,ClETA,+BAAA,CmEEA,wCAAA,CADA,4BAAA,CDcA,sBAAA,CCZA,iCAAA,CnEEA,eAAA,CAFA,QAAA,CkESA,eAAA,ClERA,SAAA,CkEIA,iBAAA,CAMA,qBAAA,CADA,kBAAA,CCbA,2BzEkBF,CyEbG,yBACC,iCzEeJ,CwEDE,kBACE,qCxEGJ,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,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,sCAAA,CADA,8BAAA,CAEA,mCAAA,CAHA,aAAA,CADA,oDAAA,CADA,qD1EJJ,C0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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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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/C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,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 diff --git a/docs/assets/images/sponsor/xinniaoyun.png b/docs/assets/images/sponsor/xinniaoyun.png new file mode 100644 index 0000000..5ce0031 Binary files /dev/null and b/docs/assets/images/sponsor/xinniaoyun.png differ diff --git a/docs/assets/js/modules/tdesign.min.js b/docs/assets/js/modules/tdesign.min.js index 6ecd4b2..bac657f 100644 --- a/docs/assets/js/modules/tdesign.min.js +++ b/docs/assets/js/modules/tdesign.min.js @@ -1,22 +1,22 @@ /** - * tdesign v1.11.5 + * tdesign v1.12.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=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-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(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(){ /*! 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 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 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=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:{}}; /*! * 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.y=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(qh,{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(qh,{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 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;t0?tg(m):null})})).filter((function(e){return!!e.content})):j(e)&&j(null===(n=e[0])||void 0===n?void 0:n.children)?tg(null===(r=e[0])||void 0===r?void 0:r.children):[]};function ng(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 rg(e){for(var t=1;t0?e.options:tg(u)}))}(e),f=rg(rg(rg({},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(Jh,t.mergeProps(ta(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),ag=pi(og),lg=pi(qh),ig=pi(Jh),ug={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 cg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function sg(e,t){for(var n=0;n0)for(var n=0,r=e.children.length;n0){var o=mg(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=fg(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=pg(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=mg(this.data,e);return t?t.children:[]}}])}();function gg(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 yg(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 Ng(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1})),O=t.computed((function(){return c.valueMath.abs(n)?D(c.value+t):D(c.value+n)}},T=function(){setTimeout((function(){D(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Pg(a),c=Pg(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Pg(l),v=Pg(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}(y(),c.value,e.scrollPosition))}),0)},I=function(){t.nextTick((function(){var e,t,n,r,o;g.value=(e=y(),t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,o=e.toRightBtn,Pg(t)-Pg(n)+Pg(r)-Pg(o))}))};t.watch([function(){return e.placement},function(){return e.panels}],I),t.watch([function(){return e.scrollPosition}],T),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(I),d.value);var M=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t})},A=function(t){var n=t.e,r=t.value,o=t.index;e.onRemove({e:n,value:r,index:o})},B=function(t){null!=t&&t.$el&&(null==t?void 0:t.value)===e.value&&h.value!==t.$el&&(h.value=t.$el,T())},L=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=Vg(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.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),R=L.setNavsWrap;t.onMounted((function(){R(v.value),I(),T()}));var z=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(jg,{ref:B,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:A},null)}))};return function(){return t.createVNode("div",{ref:d,class:["".concat(n.value,"__nav")],style:x.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[w.value?t.createVNode("div",{class:j.value,onClick:function(){return E("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[O.value?t.createVNode("div",{ref:m,class:S.value,onClick:function(){return E("next")}},[t.createVNode(a,null,null)]):null]}}),e.addable?t.createVNode("div",{class:k.value,onClick:M},[t.createVNode(l,null,null)]):null,e.action])],(r=z(),t.createVNode("div",{class:N.value},[t.createVNode("div",{class:_.value,onWheel:F},[t.createVNode("div",{ref:v,class:V.value,style:C.value},["card"!==e.theme&&t.createVNode(Sg,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),Tg=t.defineComponent({name:"TTabs",props:xg,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(Fg,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(Cg,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()]])}}}),Ig=pi(Tg),Mg=pi(Cg),Ag={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Bg=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 Lg(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 Rg=t.defineComponent({name:"TSubmenu",props:Ag,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(Bg,{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(Bg,{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(Bg,{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 zg(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 Hg=t.defineComponent({name:"THeadMenu",props:wg,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 hg({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 ly(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function iy(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=ey(),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=ay(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(ly(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(oy,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 uy(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 cy=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function sy(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 dy(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 wy(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 Oy(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=wy(e,n),o=wy(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 Cy(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=Oy(o,c);if("0"===l&&"0"===d)return v;var f=wy(l,!0),p=wy(d,!0),m=Oy(f,p,!0),h=m.length;return h>f.length&&h>p.length?[wy(Oy(v,"1")),wy(m.slice(1),!0)].filter((function(e){return e})).join("."):[wy(v),wy(m,!0)].filter((function(e){return e})).join(".")}function xy(e,t){var n=wy(e),r=wy(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 Py(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 jy(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=yy(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 Sy(e){return[-1/0,1/0].includes(Number(e))}function ky(e){return Number(e)Number.MIN_SAFE_INTEGER}function Ny(e,t,n){var r=ky(e)&&ky(t)&&!n,o=Sy(e)||Sy(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ha(jy(e).split("."),2),r=n[0],o=n[1],a=Ha(jy(t).split("."),2),l=a[0],i=a[1],u=xy(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?Py(o,i):u}(String(e),String(t))}function _y(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=wy(e),i=wy(t),u=xy(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+/,"")),wy(u?y:"-".concat(y))}function Vy(e,t){if(e===t)return"0";var n=Ny(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=_y(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=_y(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)?Dy(e,t.places,null===(n=t.enableRound)||void 0===n||n):Dy(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,yy(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Cy(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Cy(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(yy(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=yy(o))}return[i,c].join(".")}function Fy(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 Ty(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 Iy(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 Vy(t,e.slice(1));if(n&&r){var o=Cy(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?Vy(e,t.slice(1)):Cy(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ty(c,Math.abs(u)):u<0&&c<0?-1*Fy(Math.abs(u),Math.abs(c)):u>0&&c<0?Ty(u,Math.abs(c)):Fy(u,c)):"reduce"===t&&(i=l&&Do(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Cy(e.slice(1),t);return"-".concat(o)}return n&&r?Vy(t.slice(1),e.slice(1)):!n&&r?Cy(e,t.slice(1)):Vy(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Fy(Math.abs(e),t):e<0&&t<0?Ty(Math.abs(t),Math.abs(e)):e>0&&t<0?Fy(e,Math.abs(t)):Ty(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 by(e)?!a||!Do(n)&&n!==1/0||!Do(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Ny(n,e,a)<0?n:Ny(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function My(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."),Ny(n,r,t)>0?"exceed-maximum":Ny(n,o,t)<0?"below-minimum":void 0}var Ay=["-",".","e","E","+"];function By(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=jy(a)),void 0!==n&&(a=Ey(a,n,r)),r||o?a:parseFloat(a)}}function Ly(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=ey(),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)?Ny(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)?Ny(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);return!(/(\+|-)/.test(o)&&!/e+/i.test(o)||!(t&&by(e)||!Number.isNaN(Number(e))||Ay.includes(e.slice(-1)))||/e/i.test(e)&&!/\de/i.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 Ry(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 zy=t.defineComponent({name:"TInputNumber",props:gy,setup:function(e,n){var r=ei(),o=up({AddIcon:zi,RemoveIcon:Vd,ChevronDownIcon:Au,ChevronUpIcon:fc}),a=o.AddIcon,l=o.RemoveIcon,i=o.ChevronDownIcon,u=o.ChevronUpIcon,c=Ly(e),d=c.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=pb(e,360),t=pb(t,100),n=pb(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=fb(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 qy(e,t,n){e=pb(e,255),t=pb(t,255),n=pb(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(Zy(r));return a}function sb(e,t){t=t||6;for(var n=Zy(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(Zy({h:r,s:o,v:a})),a=(a+i)%1;return l}Zy.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=fb(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=Xy(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=Xy(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=qy(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=qy(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 Gy(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=[gb(Math.round(e).toString(16)),gb(Math.round(t).toString(16)),gb(Math.round(n).toString(16)),gb(bb(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*pb(this._r,255))+"%",g:Math.round(100*pb(this._g,255))+"%",b:Math.round(100*pb(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*pb(this._r,255))+"%, "+Math.round(100*pb(this._g,255))+"%, "+Math.round(100*pb(this._b,255))+"%)":"rgba("+Math.round(100*pb(this._r,255))+"%, "+Math.round(100*pb(this._g,255))+"%, "+Math.round(100*pb(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(vb[Gy(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+Jy(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=Zy(e);n="#"+Jy(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 Zy(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(nb,arguments)},brighten:function(){return this._applyModification(rb,arguments)},darken:function(){return this._applyModification(ob,arguments)},desaturate:function(){return this._applyModification(Qy,arguments)},saturate:function(){return this._applyModification(eb,arguments)},greyscale:function(){return this._applyModification(tb,arguments)},spin:function(){return this._applyModification(ab,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(cb,arguments)},complement:function(){return this._applyCombination(lb,arguments)},monochromatic:function(){return this._applyCombination(sb,arguments)},splitcomplement:function(){return this._applyCombination(ub,arguments)},triad:function(){return this._applyCombination(ib,[3])},tetrad:function(){return this._applyCombination(ib,[4])}},Zy.fromRatio=function(e,t){if("object"==Uy(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:yb(e[r]));e=n}return Zy(e,t)},Zy.equals=function(e,t){return!(!e||!t)&&Zy(e).toRgbString()==Zy(t).toRgbString()},Zy.random=function(){return Zy.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Zy.mix=function(e,t,n){n=0===n?0:n||50;var r=Zy(e).toRgb(),o=Zy(t).toRgb(),a=n/100;return Zy({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})},Zy.readability=function(e,t){var n=Zy(e),r=Zy(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},Zy.isReadable=function(e,t,n){var r,o,a=Zy.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},Zy.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=Zy(t[c]));return Zy.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,Zy.mostReadable(e,["#fff","#000"],n))};var db=Zy.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"},vb=Zy.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(db);function fb(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function pb(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 mb(e){return Math.min(1,Math.max(0,e))}function hb(e){return parseInt(e,16)}function gb(e){return 1==e.length?"0"+e:""+e}function yb(e){return e<=1&&(e=100*e+"%"),e}function bb(e){return Math.round(255*parseFloat(e)).toString(16)}function wb(e){return hb(e)/255}var Ob,Cb,xb,Pb=(Cb="[\\s|\\(]+("+(Ob="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Ob+")[,|\\s]+("+Ob+")\\s*\\)?",xb="[\\s|\\(]+("+Ob+")[,|\\s]+("+Ob+")[,|\\s]+("+Ob+")[,|\\s]+("+Ob+")\\s*\\)?",{CSS_UNIT:new RegExp(Ob),rgb:new RegExp("rgb"+Cb),rgba:new RegExp("rgba"+xb),hsl:new RegExp("hsl"+Cb),hsla:new RegExp("hsla"+xb),hsv:new RegExp("hsv"+Cb),hsva:new RegExp("hsva"+xb),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 jb(e){return!!Pb.CSS_UNIT.exec(e)}var Sb={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},kb=t.defineComponent({name:"TTag",props:Sb,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:Zy(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=Zy(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])}}}),Nb={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},_b=/^ArrowDown$/i,Vb=/^ArrowUp$/i,Db=/^ArrowLeft$/i,Eb=/^ArrowRight$/i,Fb=/^Escape$/i,Tb=/^Space$/i,Ib=/^Enter$/i,Mb=/^(Shift|ShiftLeft|ShiftRight)$/i,Ab=/^KeyC$/i,Bb=/^(KeyA|KeyL)$/i,Lb=/^(Enter|Space)$/i;function Rb(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 zb(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}}(Gb(Gb({},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=ey(),w=function(e){var t,n=i(m.value),r=Ha(n.splice(e.index,1),1)[0];h(n,qb(qb({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,qb(qb({},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,qb(qb({},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(Ub,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(Ub,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",c]}}))}return u}}}(t.reactive(Gb(Gb({},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,Gb(Gb({},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(my,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})}}}),Qb=pi(Jb),ew=["tips"];function tw(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.offsetWidth?t.offsetWidth:e.offsetWidth,a={};return r.value&&"object"===u(r.value.overlayInnerStyle)&&!r.value.overlayInnerStyle.width&&(a=r.value.overlayInnerStyle),aw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return aw({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 iw=["tips"];function uw(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 cw(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},pw(pw({onVisibleChange:S,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),pw({default:function(){return[m.value?M({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},pw(pw({},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])])}}}),hw=pi(mw),gw={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]}},yw={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},bw=Symbol("CheckboxGroupProvide");function ww(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 Ow(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 Cw(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 _w(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 Rw=t.defineComponent({name:"TSelectPanel",props:{inputValue:Bw.inputValue,panelTopContent:Bw.panelTopContent,panelBottomContent:Bw.panelBottomContent,empty:Bw.empty,creatable:Bw.creatable,loading:Bw.loading,loadingText:Bw.loadingText,multiple:Bw.multiple,filterable:Bw.filterable,filter:Bw.filter,scroll:Bw.scroll,size:Bw.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(Ew),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=Lw({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(Aw,{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(Iw,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(Iw,{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 zw(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 Hw(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)?Hw(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 Hw(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 $w(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(Kw(Kw({},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)}t!==x.value&&(e.multiple&&!e.reserveKeyword&&O(""),P(t,qw({selectedOptions:X(t)},n)))},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&&Vw(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=Nw(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=Vw(a,t);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}return r}(I.value,V):Vw(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?qw(qw({},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.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(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.innerValue,v=e.popupContentRef,f=e.multiple,p=e.max,m=t.ref(-1),h=t.ref([]),g=t.ref([]),y=Qa();return t.watch(o,(function(e){e&&(m.value=-1,g.value=[],h.value=[])})),t.watch(m,(function(e){var t,n=(null===(t=l.value)||void 0===t||null===(t=t.innerRef)||void 0===t||null===(t=t.querySelector(".".concat(y.value,"-select-option")))||void 0===t?void 0:t.clientHeight)*e;v.value.scrollTo({top:n,behavior:"smooth"})})),{hoverIndex:m,handleKeyDown:function(e){var t,v,y=n.value.length,b=m.value;switch(e.code){case"ArrowUp":e.preventDefault(),-1===m.value?b=0:0===m.value||m.value>n.value.length-1?b=y-1:b--,null!==(t=r.value[b])&&void 0!==t&&t.disabled&&b--,m.value=b;break;case"ArrowDown":e.preventDefault(),-1===m.value||m.value>=y-1?b=0:b++,null!==(v=r.value[b])&&void 0!==v&&v.disabled&&b++,m.value=b;break;case"Enter":if(-1===m.value)break;var w=l.value.isVirtual&&i.value&&g.value.length?g.value:u.value?r.value:h.value;if(w.length||(w=r.value),!o.value){a(!0,{e:e});break}if(f){var O;if(-1===m.value)return;var C=null===(O=w[m.value])||void 0===O?void 0:O.value;if(!C)return;var x=Dw(d.value,C);if(p>0&&x.value.length>p)return;var P=c(x.value);s(x.value,{option:P.find((function(e){return e.value==C})),selectedOptions:P,trigger:x.isCheck?"check":"uncheck",e:e}),h.value=[]}else{var j=c(w[m.value].value);s(w[m.value].value,{option:null==j?void 0:j[0],selectedOptions:c(w[m.value].value),trigger:"check",e:e}),a(!1,{e:e})}break;case"Escape":a(!1,{e:e})}},virtualFilteredOptions:g,filteredOptions:h}}({displayOptions:F,optionsList:D,innerPopupVisible:B,setInnerPopupVisible:L,selectPanelRef:S,isFilterable:K,isRemoteSearch:U,getSelectedOptions:X,setInnerValue:M,innerValue:I,popupContentRef:Z,multiple:e.multiple,max:e.max}),J=G.hoverIndex,Q=G.virtualFilteredOptions,ee=G.handleKeyDown,te=G.filteredOptions,ne=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"})}},re=t.computed((function(){var e=q.value.map((function(e){return e.value}));return Io(I.value,e).length})),oe=t.computed((function(){return re.value===q.value.length})),ae=t.computed((function(){return!oe.value&&0!==re.value})),le=t.computed((function(){return{max:e.max,multiple:e.multiple,hoverIndex:J.value,selectValue:I.value,reserveKeyword:e.reserveKeyword,handleValueChange:M,handlerInputChange:O,handlePopupVisibleChange:L,handleCreate:$,size:e.size,popupContentRef:Z,indeterminate:ae.value,isCheckAll:oe.value,onCheckAllChange:ne,getSelectedOptions:X,displayOptions:F.value,emitBlur:se}}));t.provide(Ew,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;Q.value=null===(e=S.value)||void 0===e?void 0:e.visibleData,te.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=Yw(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,Uw);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(hw,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:e.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:qw(qw({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ee}),tagInputProps:qw({size:e.size},e.tagInputProps),onTagChange:function(e,t){Y(t.index,t)},tagProps:qw({},e.tagProps),popupProps:qw(qw({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(Bg,{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(Rw,t.mergeProps({ref:S},xa(e,["size","multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),Gw=pi(Xw),Jw=pi(Iw),Qw=pi(Aw),eO={append:{type:[String,Function]},prepend:{type:[String,Function]}},tO=t.defineComponent({name:"TInputAdornment",inheritAttrs:!1,props:eO,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]}}}),nO=pi(tO),rO={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 oO=["pageCount"],aO=t.defineComponent({name:"TPagination",props:rO,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,oO),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(nO,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Hy,{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(Gw,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])}}}),lO={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},iO=t.defineComponent({name:"TPaginationMini",props:lO,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)])}}}),uO=pi(aO),cO=pi(iO),sO={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},dO={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 vO(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 fO(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 dO&&!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(pO,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)})))]);var n}}}),hO=pi(mO),gO=pi(pO),yO={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},bO={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 wO(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 OO(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(Ib.test(e.code)||Ib.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(EO,{content:s,keyword:e.value},null):s])}))]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function MO(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 AO(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 AO({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,AO(AO({},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,AO(AO({},n),{},{value:t}))},S=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,AO(AO({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,AO(AO({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,AO(AO({},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(my,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(IO,{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=AO(AO({},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]}}))])}}}),LO=pi(BO),RO=pi(EO);function zO(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function HO(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 WO(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 KO(e){var t=[];return e.forEach((function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]})),t}function UO(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 YO=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):$O(e)||(t=E(e)?[e.value]:[e]),t};function $O(e){return!(Ho(e)&&!isNaN(e))&&Ro(e)}function ZO(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 qO={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},XO=t.defineComponent({name:"TCascaderItem",props:qO,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(HO(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(HO(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)}));function f(e,n){var o=n.inputVal,a=o?UO(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?UO(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))])}}}),GO={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},JO=t.defineComponent({name:"TCascaderSubPanel",props:{option:GO.option,empty:GO.empty,trigger:GO.trigger,onChange:GO.onChange,loading:GO.loading,loadingText:GO.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=ti(),r=Qa("cascader"),o=Ga("cascader").globalConfig,a=t.computed((function(){return KO(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(XO,{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 QO="__tdesign_tree-node__",eC=function(){return dg((function e(t){cg(this,e),s(this,QO,void 0),this[QO]=t}),[{key:"value",get:function(){return this[QO].value}},{key:"label",get:function(){return this[QO].label}},{key:"data",get:function(){return this[QO].data}},{key:"actived",get:function(){return this[QO].actived}},{key:"expanded",get:function(){return this[QO].expanded}},{key:"checked",get:function(){return this[QO].checked}},{key:"indeterminate",get:function(){return this[QO].indeterminate}},{key:"loading",get:function(){return this[QO].loading}},{key:"disabled",get:function(){return this[QO].isDisabled()}},{key:"getLevel",value:function(){return this[QO].getLevel()}},{key:"getIndex",value:function(){return this[QO].getIndex()}},{key:"isFirst",value:function(){return this[QO].isFirst()}},{key:"isLast",value:function(){return this[QO].isLast()}},{key:"isLeaf",value:function(){return this[QO].isLeaf()}},{key:"insertBefore",value:function(e){return this[QO].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[QO].insertAfter(e)}},{key:"appendData",value:function(e){return this[QO].append(e)}},{key:"getPath",value:function(){return this[QO].getPath().map((function(e){return e.getModel()}))}},{key:"getParent",value:function(){var e;return null===(e=this[QO].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[QO].getParents().map((function(e){return e.getModel()}))}},{key:"getRoot",value:function(){var e=this[QO].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[QO].getSiblings().map((function(e){return e.getModel()}))}},{key:"getChildren",value:function(e){var t=this[QO],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[QO];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[QO],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 tC(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 nC(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){(rC.call(oC,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=nC({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=nC({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=nC({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=nC({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=nC({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 eC(this),this.model=e),e}}]);var t}();function cC(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 sC(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 uC&&(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 uC&&(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=sC({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 uC(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 uC&&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 uC?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 uC?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[iC],"changed"):this.getNodes().forEach((function(e){o.set(e[iC],"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=sC({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 vC(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 fC(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=YO(t);if(e){if(j(r)&&0===n.length){var o=new Map,a=Ha(r,1)[0];if(!$O(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(YO(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 dC({keys:fC(fC({},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"),$O(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 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;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 kC(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 NC(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 _C(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&&kC(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=kC(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 VC(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function DC(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):VC(r[o],n)})),a=a.length?a:r.map((function(e){return VC(e,n)})),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function EC(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:jC}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:jC}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:jC}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:jC}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:SC(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||jC}:(Qm("DatePicker","Invalid mode: ".concat(n)),{})}function FC(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 kC(e,o).year()})),month:t.map((function(e){return kC(e,o).month()})),time:t.map((function(e){return kC(e,o).format(l)}))}:u}function TC(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 EC({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})}));e.enableTimePicker&&(SC(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(DC(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(kC(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(kC(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(_C(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?NC(u.value,s.value.format)&&(p.value=_C(u.value,{format:s.value.format}),d.value=DC(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 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 MC(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)}})}(RC);var zC=RC.exports,HC={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}}}(HC);var WC=HC.exports,KC={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)}}}(KC);var UC=KC.exports,YC={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)}})}(YC);var $C=YC.exports,ZC={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)}}}(ZC);var qC=ZC.exports,XC={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)}}}()}(XC);var GC=XC.exports;function JC(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 QC(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return rx(e,t)&&Ya(e).locale(n).week()===Ya(t).locale(n).week()}function ax(e,t){return rx(e,t)&&e.getDate()===t.getDate()}function lx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function ix(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:tx,isSameQuarter:nx,isSameMonth:rx,isSameWeek:ox,isSameDate:ax}["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 ux(e,t,n){return t&&-1===lx(e,t)||n&&1===lx(e,n)}function cx(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function sx(e,t){return Ya(e).subtract(t,"month").toDate()}function dx(e,t){return Ya(e).add(t,"month").toDate()}function vx(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,ex({year:t,month:n}))}({year:n,month:r}),g=ex({year:n,month:r}),y=[],b=1,w=cx();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&ux(O,c,s),now:ix(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&&ux(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&&ux(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(QC(QC({},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 fx(e,t){var n=AC({},(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&&ix(r,n,u),c=a&&ix(a,n,u),s=o&&ix(o,n,u),d=l&&ix(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 ix(Ya(e).toDate(),n.value,u)&&!n.additional})):n.active=r&&ix(e.value,r,u)&&!n.additional;return n}))}))}function px(){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(zC),Ya.extend(WC),Ya.extend(UC),Ya.extend($C),Ya.extend(qC),Ya.extend(GC),Ya.extend(LC);var mx={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)}},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},hx=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(Gw,{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(Gw,{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(cO,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),gx=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=px(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=px(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 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 bx(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=Sx.meridiem,r=Sx.hour,o=Sx.minute,a=Sx.second,l=Sx.milliSecond;return e.match(kx).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=Ax.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(Ax.includes(t)){var r=Ax.indexOf(t),o=l.value[r]||1;n=t===Sx.hour?Nx.test(u.value)?11:23:t===Sx.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 xx},w=function(e,t){e===Sx.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)+Bx,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=xx[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),Ax.includes(t)){var x=59;t===Sx.hour?x=/[h]{1}/.test(u.value)?11:23:t===Sx.milliSecond&&(x=999);var P=Ax.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===Sx.hour&&v.value.includes(Sx.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(Ax.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===Ox&&_>=12?h.value.hour(_-12).format(u.value):C===Cx&&_<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,Ax.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===Sx.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===Sx.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(Ax.includes(t))t===Sx.hour&&h.value.format("a")===Cx&&v.value.includes(Sx.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===Ox&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===Cx&&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)}},[Ax.includes(a)?Nx.test(u.value)&&a===Sx.hour&&"00"===i?"12":i:n.value[i===Ox?"anteMeridiem":"postMeridiem"]])}))])}))])}}});function Rx(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 zx(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(Lx,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||jx,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 Wx(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 Kx(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 xP=t.defineComponent({name:"TDateRangePicker",props:iP,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=Xx(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 EC({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(_C(e.value,{format:g.value.format})),C=ey(),x=t.computed((function(){return Jx(Jx({},e.rangeInputProps),{},{size:e.size,ref:i,borderless:e.borderless,clearable:e.clearable,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:Qx[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:Qx[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,NC(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach((function(e){n.push(kC(e,g.value.format).year()),r.push(kC(e,g.value.format).month()),o.push(kC(e,g.value.format).format(g.value.timeFormat))})),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(NC(e,g.value.format)||NC(c.value,g.value.format))&&(y.value=!1,NC(e,g.value.format)?null==d||d(_C(e,{format:g.value.format,targetFormat:g.value.valueType,autoSwap:!0}),{dayjsValue:e.map((function(e){return kC(e,g.value.format)})),trigger:"enter"}):NC(c.value,g.value.format)?O.value=_C(c.value,{format:g.value.format}):O.value=[])}})})),P=t.computed((function(){var t,r,o;return Jx(Jx({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?NC(e,g.value.format)&&(O.value=_C(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=ey(),x=t.computed((function(){return EC({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]=_C(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]=_C(t,{format:x.value.format}),h.value=a,l.value=a,!e.enableTimePicker){var c=a.findIndex((function(e){return!e||!NC(e,x.value.format)}));if(-1===c&&2===a.length&&(!b.value&&kC(a[0],x.value.format).isAfter(kC(a[1],x.value.format))?(a[g.value?0:1]="",h.value=a,l.value=a):null==w||w(_C(a,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:a.map((function(e){return kC(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=sx(a,o):"current"===n?l=new Date:"next"===n&&(l=dx(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=CP(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=px(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=_C(c,{format:x.value.format}),h.value=_C(c,{format:x.value.format})}function D(t){var n,r=t.e,o=i(l.value),a=o.findIndex((function(e){return!e||!NC(e,x.value.format)}));-1===a&&2===o.length&&(!b.value&&kC(o[0],x.value.format).isAfter(kC(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(_C(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return kC(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(_C(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return kC(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=CP(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=_C(v.value||[],{format:x.value.valueType,targetFormat:x.value.format}),m.value=DC(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 kC(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 kC(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 kC(e,x.value.format).month()}));f.value=v.value.map((function(e){return kC(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=FC({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=_C(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(yP,{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(OP,I.value,null)}},null)])}}}),PP={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 jP(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 SP=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 kC(e,d.value.format).month()}));o.value=r.value.map((function(e){return kC(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(OP,S.value,null)}}}),kP=pi(rP),NP=pi(lP),_P=pi(xP),VP=pi(SP),DP={exports:{}},EP={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}(EP,EP.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=EP.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=IP.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}(AP,AP.exports);var BP={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(IP.exports),r=o(EP.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}(BP,BP.exports);var LP={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=IP.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}(LP,LP.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(IP.exports),r=i(MP.exports),o=i(BP.exports),a=i(LP.exports),l=i(EP.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 YP(e,t){return $P.apply(this,arguments)}function $P(){return $P=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(){return r.label||e.label})),g=t.computed((function(){return!(null==v||!v.colon||!h.value)})),y=Qa("form__label"),b=t.computed((function(){return Wo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign})),w=t.computed((function(){return Wo(e.labelWidth)?null==v?void 0:v.labelWidth:e.labelWidth})),O=t.computed((function(){return[a.value.label,s(s(s(s({},"".concat(y.value,"--required"),m.value),"".concat(y.value,"--top"),h.value&&("top"===b.value||!w.value)),"".concat(y.value,"--left"),"left"===b.value&&w.value),"".concat(y.value,"--right"),"right"===b.value&&w.value)]})),C=t.computed((function(){return"".concat(f.value,"-is-").concat(e.status||"default"," ").concat("success"===e.status?a.value.successBorder:"")})),x=function(){if(0!==Number(w.value)){var n={};return w.value&&"top"!==b.value&&(n=Ho(w.value)?{width:"".concat(w.value,"px")}:{width:w.value}),t.createVNode("div",{class:O.value,style:n},[t.createVNode("label",{for:e.for||null},[o("label")]),g.value&&l.value.colonText])}},P=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=V.value;if(E.value===ny.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},S=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:P()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:P(),params:e}))||void 0}},k=t.computed((function(){if(!$.value)return"";if(E.value===ny.SUCCESS)return e.successBorder?[a.value.success,a.value.successBorder].join(" "):a.value.success;if(V.value.length){var t=V.value[0].type||"error";return e.status?C.value:"error"===t?a.value.error:a.value.warning}})),N=t.computed((function(){return[a.value.controls,k.value]})),_=t.computed((function(){var e={};return w.value&&"top"!==b.value&&(e=Ho(w.value)?{marginLeft:"".concat(w.value,"px")}:{marginLeft:w.value}),e})),V=t.ref([]),D=t.ref([]),E=t.ref(ny.TO_BE_VALIDATED),F=t.ref(!1),T=t.ref(!1),I=function(){T.value=!1,V.value=[],D.value=[],E.value=ny.TO_BE_VALIDATED},M=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,W.value),n.next=6,t.nextTick();case 6:F.value?T.value=!0:I();case 7:case"end":return n.stop()}var a,l}),n)})));return function(){return n.apply(this,arguments)}}(),A=t.computed((function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage})),B=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)||[]})),L=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?B.value:B.value.filter((function(e){return(e.trigger||"change")===n})),!B.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,ZP(H.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&&A.value[n]){var r=Do(e.label)?e.label:e.name;t.message=(o=A.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)}}(),R=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 F.value=!0,Y.value=r,t.next=4,L(n);case 4:return o=t.sent,a=o.successList,l=o.errorList,i=o.rules,u=o.resultList,o.allowSetValue&&(D.value=a,V.value=l),i.length&&(E.value=l.length?ny.FAIL:ny.SUCCESS),T.value&&I(),F.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)}}(),z=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,L(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)}}(),H=t.computed((function(){return(null==v?void 0:v.data)&&St(null==v?void 0:v.data,e.name)})),W=t.ref(void 0),K=t.toRefs(e).name,U=t.reactive({name:K,resetHandler:I,resetField:M,validate:R,validateOnly:z,setValidateMessage:function(e){(e||j(e))&&(0===e.length&&(V.value=[],E.value=ny.SUCCESS),V.value=e.map((function(e){return JP(JP({},e),{},{result:!1})})),E.value=ny.FAIL)}});t.onMounted((function(){W.value=Mr(H.value),null==v||v.children.push(U)})),t.onBeforeUnmount((function(){v&&(v.children=null==v?void 0:v.children.filter((function(e){return e!==U})))})),t.watch(H,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R("change");case 2:case"end":return e.stop()}}),e)}))),{deep:!0}),t.watch((function(){return[e.name,JSON.stringify(e.rules)].join(",")}),(function(){R("change")}));var Y=t.ref(void 0),$=t.computed((function(){return Mo(Y.value)?Y.value:Mo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage})),Z=t.computed((function(){return[a.value.formItem,QP(p.value,e.name),s(s({},a.value.formItemWithHelp,q.value),a.value.formItemWithExtra,X.value)]})),q=t.computed((function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null})),X=t.computed((function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=V.value;return $.value&&null!=r&&null!==(e=r[0])&&void 0!==e&&e.message?n(r[0].message):D.value.length?n(D.value[0].message):null})),G=t.computed((function(){var e=o("tips");if(!e)return null;var n=["".concat(p.value,"-tips"),"".concat(f.value,"-tips"),C.value];return t.createVNode("div",{class:n},[e])})),J=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,R("blur");case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return t.provide(oy,{handleBlur:J}),function(){return t.createVNode("div",{class:Z.value},[x(),t.createVNode("div",{class:N.value,style:_.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),S()]),q.value,G.value,X.value])])}}}),tj={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},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},nj=t.defineComponent({name:"TForm",props:tj,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.rules,b=d.errorMessage,w=d.resetType;t.provide(ry,t.reactive({showErrorMessage:v,labelWidth:f,labelAlign:p,data:m,colon:h,requiredMark:g,rules:y,errorMessage:b,resetType:w,children:c,renderContent:o}));var O=Qa("form"),C=ty(),x=t.computed((function(){return[C.value.form,s({},"".concat(O.value,"-inline"),"inline"===e.layout)]})),P=Qa("form-item"),S=function(t){if(Mo(t))return"";var n=Ha(Object.keys(t),1)[0];if(e.scrollToFirstError){var r=QP(P.value,n);k(r)}var o=t[n];return j(o)?o.filter((function(e){return!e.result}))[0].message:""},k=function(t){var n=Ha(u.value.getElementsByClassName(t),1)[0],r=e.scrollToFirstError;r&&n&&n.scrollIntoView({behavior:r})},N=function(e,t){return!t||!j(t)||-1!==t.indexOf("".concat(e))},_=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},V=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)&&N(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=_(d),f=S(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)}}(),D=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)&&N(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",_(i));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),E=t.ref(),F=function(){var e=Bf(Hf.mark((function e(t){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:E.value=t,Ll(u.value);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),T=t.ref();return r({validate:V,submit:F,reset:function(e){T.value=e,u.value.reset()},clearValidate:function(e){c.value.forEach((function(t){H(t.resetHandler)&&N(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:D}),function(){return t.createVNode("form",{ref:u,class:x.value,onSubmit:function(t){return function(t){e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),V(E.value).then((function(n){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,{validateResult:n,firstError:S(n),e:t})})),E.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)&&N(String(e.name),null===(t=T.value)||void 0===t?void 0:t.fields)})).forEach((function(e){var t;return e.resetField(null===(t=T.value)||void 0===t?void 0:t.type)})),T.value=void 0,null===(n=e.onReset)||void 0===n||n.call(e,{e:t})}(t)}},[o("default")])}}}),rj=pi(nj),oj=pi(ej),aj={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},lj=Symbol("RadioGroupProvide"),ij=Symbol("RadioButtonProvide"),uj=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:aj,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(lj,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=ey({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(ij,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")])])}}}),cj={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 sj(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 dj(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?pj:l,u=nl(a,fj),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 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;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=gj(gj({},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=mj(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(lj,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?vj:uj;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}}}),bj=pi(uj),wj=pi(yj),Oj=pi(vj),Cj={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},xj=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},Pj=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};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}function Sj(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)]}})])}}}),Dj=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 Ej(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 Fj(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:xj(e.position,R.value.vertical),key:n},null)}))]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map((function(n,r){return t.createVNode(Dj,{mark:n.mark,point:n.point,key:r,style:xj(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=Fj(Fj({},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(Hy,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(_j,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(Vj,{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(Vj,{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:xj(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}}}),Mj=pi(Ij),Aj=pi(Vj),Bj={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},Lj=t.defineComponent({name:"TSwitch",props:Bj,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])])}}}),Rj=pi(Lj),zj=["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 Hj(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Tj||(Tj=document.createElement("textarea"),document.body.appendChild(Tj));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:zj.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;Tj.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")),Tj.value=e.value||e.placeholder||"";var u=Tj.scrollHeight,c={};"border-box"===l?u+=a:"content-box"===l&&(u-=o),Tj.value="";var s=Tj.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"),Tj.parentNode&&Tj.parentNode.removeChild(Tj),Tj=null,c}var Wj={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},Kj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:Wj,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=ey(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var t;if(!0===e.autosize)g.value=Hj(y.value);else if(e.autosize&&"object"===u(e.autosize)){var n=e.autosize,o=n.minRows,a=n.maxRows;g.value=Hj(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(oy,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=ay(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(e){e&&O()})),t.watch((function(){return e.autofocus}),(function(e){e&&y.value.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])}}}),Uj=pi(Kj);function Yj(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 $j="source",Zj="target";function qj(e){return j(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function Xj(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=Xj(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 Gj(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=Gj(e.children,t,!0)),u}));return r}function Jj(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 Jj(e,t,n)})):!n:!n}function Qj(e,t,n,r){e.forEach((function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?Jj(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 Qj(e,r,t,n),r}function tS(e){var t=0;return e.forEach((function(e){e.children&&e.children.length>0?t+=tS(e.children):t+=1})),t}var nS=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(my,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function rS(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 oS(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)?oS(oS(oS({},{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=Xj(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 tS(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=Xj(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===Zj,l=null;a?l=t.createVNode(kw,{value:e.checkedValue,onChange:V},aS(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(Sw,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),aS(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(kw,{value:e.checkedValue,onChange:V},aS(o=h.value.map((function(r,o){var a;return t.createVNode(Sw,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),aS(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(Sw,{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(nS,{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(uO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),uS={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},cS=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:uS.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 sS=t.defineComponent({name:"TTransfer",props:uS,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 Gj(e.data,e.keys,g.value)})),O=t.computed((function(){return eS(w.value,h.value,!1,g.value)})),C=t.computed((function(){return eS(w.value,h.value,!0,g.value)})),x=t.computed((function(){return s(s({},$j,Xj(O.value,m.value,{isTreeMode:g.value})),Zj,Xj(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 qj(e.footer||"")})),N=t.computed((function(){return qj(e.empty)})),_=t.computed((function(){return qj(e.search)})),V=t.computed((function(){return qj(e.showCheckAll)})),D=t.computed((function(){return qj(o.value)})),E=t.computed((function(){return qj(e.title)})),F=t.computed((function(){return qj(e.pagination)})),T=function(t,n){var r,o=n===$j?t:x.value[$j],a=n===Zj?t:x.value[Zj],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===Zj?x.value[$j]:x.value[Zj];if(t===$j)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=Xj(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===$j?Zj:$j),p(n,{type:t,movedValue:o})},M=function(){I(Zj)},A=function(){I($j)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:Zj,movedValue:t})},R=function(n){var o,a=xa(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(iS,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===$j?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===Zj},"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($j),t.createVNode(cS,{leftDisabled:D.value[Zj]||y.value||0===x.value[Zj].length,rightDisabled:D.value[$j]||b.value||0===x.value[$j].length,operation:e.operation,onMoveToRight:M,onMoveToLeft:A},{operation:r.operation}),R(Zj)])}}}),dS=pi(sS);function vS(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 fS(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)}}},xS={name:"TTreeNode",inject:{onDrag:{default:void 0}}};function PS(e){return r.h}function jS(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 SS=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(SS||{});function kS(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=BS(BS({},p),{},{disabled:b}),O=m;m=t.createVNode(Sw,{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 RS(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){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=Qa().value,u=Qa("tree").value,c=IS(e).handleClick,d=MS(e).renderIcon,v=LS(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=ES(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()}):ES(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=kS(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;ww(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 HS(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 WS(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};_S(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[iC];return t.createVNode(US,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)}));return o}}}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;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};_S(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};_S(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};_S(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};_S(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===SS.Inside?a.appendTo(o,e):u===SS.Before?i.insertBefore(a):i.insertAfter(a),!0)})),_S(t,n,"drop",c))}}};r.drag=l}(s);var g=TS(s),y=g.setActived,b=g.setExpanded,w=g.setChecked,O=qS(s),C=O.onInnerVirtualScroll,x=O.virtualConfig,P=O.scrollToElement,j=YS(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:XS(u.value),maxHeight:XS(c.value),overflowY:XS(u.value)||XS(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=FS(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)}))},insertBefore:function(e,t){var n=this.store,r=FS(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=FS(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=QS(QS({},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=PS(),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&&_])}}),tk=pi(ek),nk={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 rk(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 ok(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(){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 e.value})):[S.value.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&&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 ok(ok({},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=Bk(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=Ak({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(Hy,{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)])])}}}),oN=t.defineComponent({name:"SaturationPanel",props:Qk,setup:function(e){var n=vk(),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 Zk(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 aN(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 lN(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 wN(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 ON(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:zk(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:ck):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:zk(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){Lk.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(sk));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(xk,t.mergeProps(e,{mode:w.value,onModeChange:E}),null),t.createVNode("div",{class:["".concat(a.value,"__body")]},[O.value?t.createVNode(rN,t.mergeProps(r,{onChange:B,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(oN,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(uN,t.mergeProps(r,{onChange:I}),null),e.enableAlpha?t.createVNode(cN,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(hN,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(bN,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(bN,t.mergeProps(r,{title:c(s.value.swatchColorTitle),colors:l,onSetColor:function(e){return L(0,e)}}),null):null])]):null])])}}});function xN(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 PN(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:AN({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(IN,t.mergeProps({style:AN({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:AN({},m.value)},[l])}}}),LN={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 RN=t.defineComponent({name:"TAvatarGroup",props:LN,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(BN,{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])}}}),zN=pi(BN),HN=pi(RN),WN={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)}}},KN=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:WN,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])])}}}),UN=pi(KN),YN={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},$N="calendar",ZN=1970,qN={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},XN=function(e){var t=Ya(e).day();return 0===t&&(t=7),t},GN=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},JN=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=XN(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:XN(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(QN().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=QN();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 t_(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;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 o_(e,n){var r=Ga($N),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 qN&&(t=qN[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(s_({},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 N_(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=k_.add(e)},i=function(){k_.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&&k_.isLastDialog(a.value)}}}function __(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 V_(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 B_(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var L_={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 R_(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 z_(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))})))}},props:z_(z_({},F_),L_),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=M_({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?z_({},e.dialogStyle):z_({width:B_(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}}}),K_=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",(function(e){H_={x:e.clientX,y:e.clientY},setTimeout((function(){H_=null}),100)}),!0);var U_=1,Y_=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:F_,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:B_(t)});return n})),O=N_("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(H_&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(H_.x-t.offsetLeft,"px ").concat(H_.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?A_():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(U_+=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,K_);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:V,onMousedown:D,onMouseup:E},[t.createVNode(W_,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 $_(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 Z_(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=Fy(l.value,o);s(e)}),50),u=Ea((function(){var e=Ty(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 aV(e.images)})),H=t.computed((function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}})),W=N_("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 rV.left:K();break;case rV.right:U();break;case rV.up:F();break;case rV.down:T();break;case rV.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(E_,{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(IN,{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(E_,{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(nV,{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(tV,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(D_,{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]])]}})]}})])}}}),iV=pi(lV),uV={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},cV=t.defineComponent({name:"TListItem",props:uV,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])])])}}}),sV={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},dV="load-more";function vV(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 fV(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 mV(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(gV(gV({},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===dV)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;Do(e.asyncLoading)&&e.asyncLoading!==dV||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(cV,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])}}}),bV={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},wV=t.defineComponent({name:"TListItemMeta",props:bV,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])}}}),OV=pi(yV),CV=pi(cV),xV=pi(wV),PV="line",jV="plump",SV="circle",kV="small",NV="medium",_V="large",VV=72,DV=112,EV=160,FV=14/VV,TV=20/DV,IV=36/EV,MV=["success","error","warning"],AV={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:""}},BV=t.defineComponent({name:"TProgress",props:AV,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=DV;if(!e.size)return t;var n=kV,r=_V,o=NV;switch(e.size){case n:t=VV;break;case o:t=DV;break;case r:t=EV;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!==SV)return{};var t=g.value*TV;return g.value<=VV?t=g.value*FV:g.value>=EV&&(t=g.value*IV),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}})),O=t.computed((function(){var t=e.size===kV?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(MV.includes(v)&&e.theme!==jV){var f=(n={success:c,warning:d,error:u},o={success:l,warning:i,error:a},e.theme===SV?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===PV&&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===jV&&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===SV&&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)])])])}}}),LV=pi(BV),RV={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)}}},zV={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"}]]},HV=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},WV=t.defineComponent({name:"TSkeleton",props:RV,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:HV(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(zV[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])}}}}),KV=pi(WV),UV={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}},YV=function(e){return 1-Math.abs(Math.pow(e-1,4))},$V=function(){return dg((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;cg(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=YV(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=YV(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}}])}(),ZV={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 qV=t.defineComponent({name:"TStatistic",props:UV,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 $V({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:ZV[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(KV,{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])])}}}),XV=pi(qV),GV={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)}},onChange:Function};function JV(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 QV(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*(.7375*(n-e.currentIndex)-nD+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:tD,")"),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 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=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=aD(aD({},e),n.props);return t.createVNode(rD,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])])}}}),uD=pi(iD),cD=pi(rD),sD={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 dD(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 vD(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 pD(){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 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}var hD=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(hD,{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 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 CD(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 xD(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;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,PD(PD({},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 kD(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 ND(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 VD(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 VD(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}})),b=t.computed((function(){var t,n=DD(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&&ww(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(BD(BD({},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(hD,{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=ID(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=zD(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=jD(a,l,p,f),b=ED(a.className,BD(BD({},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(BD(BD({},r),{},{type:"td"})):a.attrs,C=BD(BD({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=BD(BD({},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 RD.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 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}function KD(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(hD,{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 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&&(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=jD(o,a,n.rowAndColFixedPosition,n.tableColFixedClasses),f=QD({},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(QD({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 tE(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:$D((e||m?c.thWidthList[n.colKey]:void 0)||n.width)||h};return n.minWidth&&(r.minWidth=$D(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=sD.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:rE(rE({},this.tableElementStyles),{},{width:"".concat(this.tableElmWidth,"px")})},[g(!0),t.createVNode(GD,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},TD(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:rE(rE({},c.tableElementStyles),{},{width:"".concat(c.tableElmWidth,"px")})},[g(!0),t.createVNode(eE,{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=rE(rE({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,UD)),{},{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:rE(rE({},this.tableElementStyles),{},{width:this.resizable&&this.isWidthOverflow&&this.tableElmWidth?"".concat(this.tableElmWidth,"px"):this.tableElementStyles.width})},[g(!1),this.showHeader&&t.createVNode(GD,rE(rE({},y),{},{thWidthList:m?this.thWidthList:{}}),this.$slots),t.createVNode(YD,t.mergeProps({ref:"tableBodyRef"},I),this.$slots),t.createVNode(eE,{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},TD(c.headerAffixedTop),{onFixedChange:c.onFixedChange,ref:"headerTopAffixRef"}),oE(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},TD(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},TD(this.paginationAffixedBottom),{ref:"paginationAffixRef"}),oE(z)?z:{default:function(){return[z]}}):z,t.createVNode("div",{ref:"resizeLineRef",class:this.tableBaseClass.resizeLine,style:this.resizeLineStyle},null)])}}),lE={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 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&&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(p.value),r=St(t,e.rowKey||"id"),o=n.indexOf(r),a=-1!==o;if("multiple"===y.value)a?n.splice(o,1):n.push(r);else{if("single"!==y.value)return void Gm("Table","`column.type` must be one of `multiple` and `single`");n=a&&O.value?[]:[r]}m(n,{selectedRowData:n.map((function(e){return h.value.get(e)})),currentRowKey:r,currentRowData:t,type:a?"uncheck":"check"})}function P(t){var n,r=e.rowKey||"id",a=b.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);m(u,{selectedRowData:t?u.map((function(e){return h.value.get(e)})):[],type:t?"check":"uncheck",currentRowKey:"CHECK_ALL_BOX"})}t.watch([c,a,p,g,l],(function(){var t,r=null!==(t=g.value)&&void 0!==t&&t.disabled?function(e){return g.value.disabled(e)?n.disabled:""}:void 0,o=new Set(p.value),a=o.size?function(t){var r=St(t.row,e.rowKey||"id");return o.has(r)?n.selected:""}:void 0;v.value=[r,a],d.value=c.value}),{immediate:!0});t.watch([c,l],(function(){for(var e=0,t=c.value.length;e0&&w.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 CE(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 xE(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=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;n * @author owenm * @license MIT - */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){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 AE(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var BE=AE(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),LE=AE(/Edge/i),RE=AE(/firefox/i),zE=AE(/safari/i)&&!AE(/chrome/i)&&!AE(/android/i),HE=AE(/iP(ad|od|hone)/i),WE=AE(/chrome/i)&&AE(/android/i),KE={capture:!1,passive:!1};function UE(e,t,n){e.addEventListener(t,n,!BE&&KE)}function YE(e,t,n){e.removeEventListener(t,n,!BE&&KE)}function $E(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 ZE(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function qE(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&$E(e,t):$E(e,t))||r&&e===n)return e;if(e===n)break}while(e=ZE(e))}return null}var XE,GE=/\s+/g;function JE(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(GE," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(GE," ")}}function QE(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 eF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=QE(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 tF(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===nF())break;r=cF(r,!1)}return!1}function aF(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=ME(n,wF);bF.pluginEvent.bind(fT)(e,t,EE({dragEl:xF,parentEl:PF,ghostEl:jF,rootEl:SF,nextEl:kF,lastDownEl:NF,cloneEl:_F,cloneHidden:VF,dragStarted:WF,putSortable:MF,activeSortable:fT.active,originalEvent:r,oldIndex:DF,oldDraggableIndex:FF,newIndex:EF,newDraggableIndex:TF,hideGhostForTarget:cT,unhideGhostForTarget:sT,cloneNowHidden:function(){VF=!0},cloneNowShown:function(){VF=!1},dispatchSortableEvent:function(e){CF({sortable:t,name:e,originalEvent:r})}},o))};function CF(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[mF]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||BE||LE?(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=EE(EE({},p),bF.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(EE({putSortable:MF,cloneEl:_F,targetEl:xF,rootEl:SF,oldIndex:DF,oldDraggableIndex:FF,newIndex:EF,newDraggableIndex:TF},e))}var xF,PF,jF,SF,kF,NF,_F,VF,DF,EF,FF,TF,IF,MF,AF,BF,LF,RF,zF,HF,WF,KF,UF,YF,$F,ZF=!1,qF=!1,XF=[],GF=!1,JF=!1,QF=[],eT=!1,tT=[],nT="undefined"!=typeof document,rT=HE,oT=LE||BE?"cssFloat":"float",aT=nT&&!WE&&!HE&&"draggable"in document.createElement("div"),lT=function(){if(nT){if(BE)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),iT=function(e,t){var n=QE(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=aF(e,0,t),a=aF(e,1,t),l=o&&QE(o),i=a&&QE(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+rF(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+rF(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[oT]||a&&"none"===n[oT]&&u+c>r)?"vertical":"horizontal"},uT=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"==FE(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},cT=function(){!lT&&jF&&QE(jF,"display","none")},sT=function(){!lT&&jF&&QE(jF,"display","")};nT&&!WE&&document.addEventListener("click",(function(e){if(qF)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),qF=!1,!1}),!0);var dT=function(e){if(xF){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,XF.some((function(e){var t=e[mF].options.emptyInsertThreshold;if(t&&!lF(e)){var n=rF(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[mF]._onDragOver(n)}}var o,a,l},vT=function(e){xF&&xF.parentNode[mF]._isOutsideThisEl(e.target)};function fT(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=IE({},t),e[mF]=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 iT(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!==fT.supportPointer&&"PointerEvent"in window&&(!zE||HE),emptyInsertThreshold:5};for(var r in bF.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in uT(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&aT,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?UE(e,"pointerdown",this._onTapStart):(UE(e,"mousedown",this._onTapStart),UE(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(UE(e,"dragover",this),UE(e,"dragenter",this)),XF.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),IE(this,hF())}function pT(e,t,n,r,o,a,l,i){var u,c,s=e[mF],d=s.options.onMove;return!window.CustomEvent||BE||LE?(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||rF(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function mT(e){e.draggable=!1}function hT(){eT=!1}function gT(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 yT(e){return setTimeout(e,0)}function bT(e){return clearTimeout(e)}fT.prototype={constructor:fT,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(KF=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,xF):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){tT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&tT.push(r)}}(n),!xF&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!zE||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=qE(i,r.draggable,n,!1))&&i.animated||NF===i)){if(DF=iF(i),FF=iF(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return CF({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),OF("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=qE(u,r.trim(),n,!1))return CF({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),OF("filter",t,{evt:e}),!0}))))return void(o&&e.preventDefault());r.handle&&!qE(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&&!xF&&n.parentNode===a){var u=rF(n);if(SF=a,PF=(xF=n).parentNode,kF=xF.nextSibling,NF=n,IF=l.group,fT.dragged=xF,AF={target:xF,clientX:(t||e).clientX,clientY:(t||e).clientY},zF=AF.clientX-u.left,HF=AF.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,xF.style["will-change"]="all",r=function(){OF("delayEnded",o,{evt:e}),fT.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!RE&&o.nativeDraggable&&(xF.draggable=!0),o._triggerDragStart(e,t),CF({sortable:o,name:"choose",originalEvent:e}),JE(xF,l.chosenClass,!0))},l.ignore.split(",").forEach((function(e){tF(xF,e.trim(),mT)})),UE(i,"dragover",dT),UE(i,"mousemove",dT),UE(i,"touchmove",dT),l.supportPointer?(UE(i,"pointerup",o._onDrop),!this.nativeDraggable&&UE(i,"pointercancel",o._onDrop)):(UE(i,"mouseup",o._onDrop),UE(i,"touchend",o._onDrop),UE(i,"touchcancel",o._onDrop)),RE&&this.nativeDraggable&&(this.options.touchStartThreshold=4,xF.draggable=!0),OF("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(LE||BE))r();else{if(fT.eventCanceled)return void this._onDrop();l.supportPointer?(UE(i,"pointerup",o._disableDelayedDrag),UE(i,"pointercancel",o._disableDelayedDrag)):(UE(i,"mouseup",o._disableDelayedDrag),UE(i,"touchend",o._disableDelayedDrag),UE(i,"touchcancel",o._disableDelayedDrag)),UE(i,"mousemove",o._delayedDragTouchMoveHandler),UE(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&UE(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(){xF&&mT(xF),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;YE(e,"mouseup",this._disableDelayedDrag),YE(e,"touchend",this._disableDelayedDrag),YE(e,"touchcancel",this._disableDelayedDrag),YE(e,"pointerup",this._disableDelayedDrag),YE(e,"pointercancel",this._disableDelayedDrag),YE(e,"mousemove",this._delayedDragTouchMoveHandler),YE(e,"touchmove",this._delayedDragTouchMoveHandler),YE(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?UE(document,"pointermove",this._onTouchMove):UE(document,t?"touchmove":"mousemove",this._onTouchMove):(UE(xF,"dragend",this),UE(SF,"dragstart",this._onDragStart));try{document.selection?yT((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(ZF=!1,SF&&xF){OF("dragStarted",this,{evt:t}),this.nativeDraggable&&UE(document,"dragover",vT);var n=this.options;!e&&JE(xF,n.dragClass,!1),JE(xF,n.ghostClass,!0),fT.active=this,e&&this._appendGhost(),CF({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(BF){this._lastX=BF.clientX,this._lastY=BF.clientY,cT();for(var e=document.elementFromPoint(BF.clientX,BF.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(BF.clientX,BF.clientY))!==t;)t=e;if(xF.parentNode[mF]._isOutsideThisEl(e),t)do{if(t[mF]){if(t[mF]._onDragOver({clientX:BF.clientX,clientY:BF.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=ZE(t));sT()}},_onTouchMove:function(e){if(AF){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=jF&&eF(jF,!0),l=jF&&a&&a.a,i=jF&&a&&a.d,u=rT&&$F&&uF($F),c=(o.clientX-AF.clientX+r.x)/(l||1)+(u?u[0]-QF[0]:0)/(l||1),s=(o.clientY-AF.clientY+r.y)/(i||1)+(u?u[1]-QF[1]:0)/(i||1);if(!fT.active&&!ZF){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===xF)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=rF(l)),!1!==pT(SF,a,xF,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(xF,m.nextSibling):a.appendChild(xF),PF=a,E(),D(!0)}else if(m&&function(e,t,n){var r=rF(aF(n.el,0,n.options,!0)),o=pF(n.el,n.options,jF),a=10;return t?e.clientXs+c*a/2:ud-YF)return-UF}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,JF,KF===l),0!==g){var j=iF(xF);do{j-=g,b=PF.children[j]}while(b&&("none"===QE(b,"display")||b===jF))}if(0===g||b===l)return D(!1);KF=l,UF=g;var S=l.nextElementSibling,k=!1,N=pT(SF,a,xF,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),eT=!0,setTimeout(hT,30),V(),k&&!S?a.appendChild(xF):l.parentNode.insertBefore(xF,k?S:l),x&&vF(x,0,P-x.scrollTop),PF=xF.parentNode,void 0===y||JF||(YF=Math.abs(y-rF(l)[C])),E(),D(!0)}if(a.contains(xF))return D(!1)}return!1}function _(i,u){OF(i,f,EE({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 pT(SF,a,xF,t,n,rF(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&&(JE(xF,MF?MF.options.ghostClass:c.options.ghostClass,!1),JE(xF,i.ghostClass,!0)),MF!==f&&f!==fT.active?MF=f:f===fT.active&&MF&&(MF=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll((function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===xF&&!xF.animated||l===a&&!l.animated)&&(KF=null),i.dragoverBubble||e.rootEl||l===document||(xF.parentNode[mF]._isOutsideThisEl(e.target),!t&&dT(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){EF=iF(xF),TF=iF(xF,i.draggable),CF({sortable:f,name:"change",toEl:a,newIndex:EF,newDraggableIndex:TF,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){YE(document,"mousemove",this._onTouchMove),YE(document,"touchmove",this._onTouchMove),YE(document,"pointermove",this._onTouchMove),YE(document,"dragover",dT),YE(document,"mousemove",dT),YE(document,"touchmove",dT)},_offUpEvents:function(){var e=this.el.ownerDocument;YE(e,"mouseup",this._onDrop),YE(e,"touchend",this._onDrop),YE(e,"pointerup",this._onDrop),YE(e,"pointercancel",this._onDrop),YE(e,"touchcancel",this._onDrop),YE(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;EF=iF(xF),TF=iF(xF,n.draggable),OF("drop",this,{evt:e}),PF=xF&&xF.parentNode,EF=iF(xF),TF=iF(xF,n.draggable),fT.eventCanceled||(ZF=!1,JF=!1,GF=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),bT(this.cloneId),bT(this._dragStartId),this.nativeDraggable&&(YE(document,"drop",this),YE(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),zE&&QE(document.body,"user-select",""),QE(xF,"transform",""),e&&(WF&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),jF&&jF.parentNode&&jF.parentNode.removeChild(jF),(SF===PF||MF&&"clone"!==MF.lastPutMode)&&_F&&_F.parentNode&&_F.parentNode.removeChild(_F),xF&&(this.nativeDraggable&&YE(xF,"dragend",this),mT(xF),xF.style["will-change"]="",WF&&!ZF&&JE(xF,MF?MF.options.ghostClass:this.options.ghostClass,!1),JE(xF,this.options.chosenClass,!1),CF({sortable:this,name:"unchoose",toEl:PF,newIndex:null,newDraggableIndex:null,originalEvent:e}),SF!==PF?(EF>=0&&(CF({rootEl:PF,name:"add",toEl:PF,fromEl:SF,originalEvent:e}),CF({sortable:this,name:"remove",toEl:PF,originalEvent:e}),CF({rootEl:PF,name:"sort",toEl:PF,fromEl:SF,originalEvent:e}),CF({sortable:this,name:"sort",toEl:PF,originalEvent:e})),MF&&MF.save()):EF!==DF&&EF>=0&&(CF({sortable:this,name:"update",toEl:PF,originalEvent:e}),CF({sortable:this,name:"sort",toEl:PF,originalEvent:e})),fT.active&&(null!=EF&&-1!==EF||(EF=DF,TF=FF),CF({sortable:this,name:"end",toEl:PF,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){OF("nulling",this),SF=xF=PF=jF=kF=_F=NF=VF=AF=BF=WF=EF=TF=DF=FF=KF=UF=MF=IF=fT.dragged=fT.ghost=fT.clone=fT.active=null,tT.forEach((function(e){e.checked=!0})),tT.length=LF=RF=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":xF&&(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 IT(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 MT(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=MT({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&&(AT(t.item),BT(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=mE(m.value,s.dataset.colkey),f=mE(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=hE(e.columns,v.colKey),c=hE(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:TT(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 fT(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=MT({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){AT(r.item),BT(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:TT(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 fT(a,MT({},l)):new fT(a,MT(MT({},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 RT(e){return Ra(e)||a(e)||l(e)||za()}function zT(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 HT(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=UT({},l);return Va(u,o.colKey,St(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=ID(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function $T(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;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=ZT({},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=bD(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=ZT(ZT({},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(WT,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 rI=function(){return dg((function e(){cg(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),oI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),uI(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&&oI(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&&uI(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))),uI(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))),uI(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 nI(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=sI({type:"user-reaction-change"},t);var c=nI(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=fI({},m.value);return o.cell=function(o,a){var l,i,d=zD(fI(fI({},a),{},{col:fI({},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=fI(fI({},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=fI(fI({},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 zD(fI(fI({},t),{},{col:fI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=fI({},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 mI(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 hI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(CI(CI({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(CI(CI({},e),{},{index:t}))}})),function(){var o,a=CI(CI({},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(XT,t.mergeProps(a,{ref:r}),n.slots)}}}),PI=pi(aE),jI=pi(XT),SI=pi(xI),kI=pi(Mr(XT),"TTable"),NI={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)}}},_I={vertical:["left","right"],horizontal:["top","bottom"]},VI=Symbol("timeLineProvide"),DI=t.computed((function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}})),EI={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 FI(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 TI(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])}}}),HI={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 WI=t.defineComponent({name:"TCollapsePanel",props:HI,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(Bg,{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]}}))])])}}}),KI=pi(zI),UI=pi(WI),YI={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 $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 ZI(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 XI(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),rM("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(iM,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 cM=t.defineComponent({name:"TTypography",setup:function(){var e=ei();return function(){var n,r;return t.createVNode(uM,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),sM={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 dM=t.defineComponent({name:"TTypographyTitle",props:sM,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(iM,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 vM(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 fM=t.defineComponent({name:"TTypographyParagraph",components:{TTooltip:Lh},props:function(e){for(var t=1;t0&&e.maxLinedocument.documentElement.clientWidth?A_():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(PM+=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",_)})),t.onBeforeUnmount((function(){V(),window.removeEventListener("keydown",_)})),function(){if(!r.value){var o,a,l=d("body","default"),s=c("header"),f=(o=b({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),a=w({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:N.value},["right"===e.placement?o:null,a,"right"!==e.placement?o:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!g.value,to:g.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:O,class:C.value,style:{zIndex:e.zIndex},onKeydown:_,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:E},null),t.createVNode("div",{class:j.value,style:P.value},[s&&t.createVNode("div",{class:"".concat(v.value,"__header")},[s]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:D},[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)])])]}})}}}}),SM=pi(jM),kM={counter:{type:Function},current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number},finishButtonProps:{type:Object},hideCounter:Boolean,hidePrev:Boolean,hideSkip:Boolean,highlightPadding:{type:Number,default:8},mode:{type:String,default:"popup",validator:function(e){return!e||["popup","dialog"].includes(e)}},nextButtonProps:{type:Object},prevButtonProps:{type:Object},showOverlay:{type:Boolean,default:!0},skipButtonProps:{type:Object},steps:{type:Array},zIndex:{type:Number,default:999999},onChange:Function,onFinish:Function,onNextStepClick:Function,onPrevStepClick:Function,onSkip:Function};function NM(e){var t=function(e){var t=window.getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/;if("fixed"===t.position)return document.body;for(var o=e;o.parentElement;)if(o=o.parentElement,t=window.getComputedStyle(o),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return o;return document.body}(e);t!==document.body&&(Rl(e,t)||(t.scrollTop=e.offsetTop-t.offsetTop))}function _M(e){var t=e.getBoundingClientRect();if(!Rl(e)){var n=function(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var e=document.documentElement;return{width:e.clientWidth,height:e.clientHeight}}().height;Al(t.top-(n/2-t.height/2),{})}}var VM=t.defineComponent({name:"TGuide",props:kM,setup:function(e,n){var r=ei(),o=Qa("guide"),a=Qa("guide--lock"),l=Ga("guide").globalConfig,i=t.toRefs(e),u=i.current,c=i.modelValue,d=i.hideCounter,v=i.hidePrev,f=i.hideSkip,p=i.steps,m=i.zIndex,h=Ha(qm(u,c,e.defaultCurrent,e.onChange,"current"),2),g=h[0],y=h[1],b=t.ref(),w=t.ref(),O=t.ref(),C=t.ref(),x=t.ref(),P=t.ref(),j=t.ref(),S=t.ref(!1),k=t.computed((function(){return p.value.length})),N=t.computed((function(){return p.value[g.value]})),_=t.computed((function(){return"popup"===D("mode")})),V=t.computed((function(){return Hl(C.value||document.body)})),D=function(t){var n;return null!==(n=N.value[t])&&void 0!==n?n:e[t]},E=t.computed((function(){var e=N.value.highlightContent,r=e;return H(e)?r=e(I()):n.slots.highlightContent?r=n.slots.highlightContent(I()):n.slots["highlight-content"]?r=n.slots["highlight-content"](I()):e&&(r=t.createVNode(r,null,null)),r&&(r.props||(r.props={}),r.props.class=r.props.class||""),r})),F=t.computed((function(){return Boolean(E.value&&_.value)})),T=t.ref(!1),I=function(){var e=arguments.length>0&&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&&(NM(C.value),M(w.value),M(O.value,!0),_M(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,NM(C.value),M(w.value),_M(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 KM({zIndex:6e3},IM[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:TM};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(HM,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return KM(KM({},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 YM(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){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 vA(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 fA(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=F(),a=o.iconMap,d=o.textMap,f=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)]},[["fail","progress"].includes(n.status)&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-").concat(n.status)},[a[n.status],t.createVNode("p",null,[d[n.status],e.showUploadProgress&&"progress"===n.status?" ".concat(n.percent,"%"):""])]),(["waiting","success"].includes(n.status)||!n.status&&n.url)&&t.createVNode(IN,{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)&&a[n.status],f])])}(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(iV,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 yA(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 bA(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 SA(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 kA(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 PA(PA(PA({},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 CA(CA({},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 CA(CA({},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=SA(PA(PA({},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=SA(PA(PA({},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}}(PA(PA({},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 NA(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 kA(PA(PA({},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 kA(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?PA(PA({},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)),PA({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)}))}function VA(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 DA(e){for(var t=1;tr&&(u=!0)}var s,d=_A(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){jA(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=RT(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=_A(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=[],NA({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 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 r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n 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;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as 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}\nexport { _nonIterableSpread as 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}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/** 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","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as 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}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as 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}\nexport { _iterableToArrayLimit as default };","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\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","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\nexport const getSSRAttach = () => {\n if (process.env.NODE_ENV === 'test-snap') return '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 { getSSRAttach, 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 = getSSRAttach() || 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 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 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\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 {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';\n\nexport default defineComponent({\n name: 'TMenuItem',\n props,\n emits: ['click'],\n setup(props, 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 ctx.emit('click', { e, value: value.value });\n onClick.value?.({ e, value: value.value });\n if (to.value || (routerLink.value && href.value)) {\n const methods: string = 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 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, 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 if (/(\\+|-)/.test(tmpNumber) && !/e+/i.test(tmpNumber)) 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)) 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';\nimport { useTNodeJSX } from '../hooks';\n\nexport default defineComponent({\n name: 'TInputNumber',\n props,\n // 保持纯净(逻辑和节点渲染分开)\n setup(props: TdInputNumberProps, context: SetupContext) {\n const renderTNodeJSX = useTNodeJSX();\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\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 const classPrefix = p.classPrefix.value;\n const tipsNode = renderTNodeJSX('tips');\n\n return (\n
    \n {props.theme !== 'normal' && (\n reduceIcon}\n />\n )}\n \n {props.theme !== 'normal' && (\n addIcon}\n />\n )}\n {tipsNode && (\n
    {tipsNode}
    \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['onFocus'] = (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 selectProvider.value.handleValueChange(newValue.value, {\n option: selectedOptions.find((v) => v.value === props.value),\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 } 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 res = {\n ...option,\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 if (props.multiple && !props.reserveKeyword) setInputValue('');\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\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'] &&\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 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 innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\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 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 isCheckAll = computed(() => {\n return intersectionLen.value === optionalList.value.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 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 innerValue,\n popupContentRef,\n multiple,\n max,\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 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","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","!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","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","/* 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 /** 透传 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,\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 } 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';\nimport { isDate } from 'lodash-es';\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 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}--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 /** 重置表单的方式,值为 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 { showErrorMessage, labelWidth, labelAlign, data, colon, requiredMark, rules, errorMessage, resetType } =\n toRefs(props);\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\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 });\n\n watch(\n () => props.autofocus,\n (val) => {\n if (val) {\n refTextareaElem.value.focus();\n }\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) {\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 /** 调色板控制器的值变化时触发,`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 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 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 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 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 CARD_SCALE = 210 / 332; // 缩放比例\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 (wrapWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * CARD_SCALE) - itemWidth + 1)) / 2;\n }\n if (translateIndex < props.currentIndex) {\n return (-itemWidth * (1 + CARD_SCALE) * wrapWidth) / 2;\n }\n return ((2 + itemWidth * (CARD_SCALE - 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 : CARD_SCALE})`,\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 } = toRefs(props);\n const currentPaginateData = ref(data.value);\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 || !('allowUncheck' in selectColumn.value?.checkProps)) 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 currentPaginateData.value = data.value;\n },\n { immediate: true },\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\";\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","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 /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 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 = () => {\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 return { draggedSizeValue, enableDrag, draggableLineStyles };\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 } = 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 ];\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 isVisible.value = value;\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 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 _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 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 {['fail', 'progress'].includes(file.status) && (\n \n {iconMap[file.status as 'fail' | 'progress']}\n

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

    \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","r","a","length","e","n","Array","_iterableToArray","Symbol","iterator","from","_unsupportedIterableToArray","arrayLikeToArray","t","toString","call","slice","constructor","name","test","_toConsumableArray","isArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","TypeError","nonIterableSpread","_typeof","o","prototype","toPropertyKey","i","toPrimitive","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","freeGlobal","global","freeSelf","self","root","Function","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","toStringTag","undefined","baseGetTag","isOwn","tag","unmasked","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","key","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","arg","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","input","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","l","u","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","len","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","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","indexOf","objectWithoutPropertiesLoose","getValidAttrs","obj","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","target","isLeft","method","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","res","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","then","_asyncToGenerator","_next","_throw","__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","err","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","minLen","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","maxItemWidth","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","_localTBreadcrumb$slo","breadcrumbText","localTBreadcrumb","themeClassName","isCutOff","separatorClass","disableClass","maxLengthClass","textFlowClass","ChevronRightIcon","TdChevronRightIcon","maxWithStyle","maxWith","onBeforeUpdate","separatorPropContent","separatorSlot","proxy","bindEvent","open","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","_Breadcrumb","option","Breadcrumb","BreadcrumbItem","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","arr","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","slotContent","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","getChildComponentSlots","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","getRefs","navsContainer","navsWrap","leftOperations","rightOperations","toRightBtn","activeTab","isVerticalPlacement","canToLeft","canToRight","wrapTransformStyle","navsContainerStyle","iconBaseClass","leftIconClass","rightIconClass","addIconClass","navContainerClass","navScrollContainerClass","navsWrapClass","setOffset","calcValidOffset","navsContainerWidth","activeTabWidth","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","currentIndex","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","canInputNumber","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","tipsNode","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","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","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","_props$options","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","_ref4$trigger","_props2$onCreate","optionalList","_useKeyboardControl","filteredOptions","virtualFilteredOptions","_selectPanelRef$value","handleKeyDown","_optionsList$value$ne","_optionsList$value$ne2","optionsListLength","newIndex","finalOptions","_finalOptions$hoverIn","useKeyboardControl","lockedValues","formattedOrgValue","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","EllipsisIcon","TdEllipsisIcon","_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","isLast","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","TSelectInput","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","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","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","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","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","showAction","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","swiperItemProps","isSwitching","getWrapAttribute","swiperItemLength","CARD_SCALE","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","ellipsisContent","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","getRowSelectDisabledData","handleSelectChange","selectedRowIndex","isExisted","selectedRowData","currentRowKey","handleSelectAll","_selectedRowKeys$valu","reRowKey","canSelectedRowKeys","disabledSelectedRowKeys","allIds","_selectColumn$value3","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","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","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","reject","_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","sizeDraggable","onSizeDragEnd","calcSizeRange","isSizeDragging","draggedSizeValue","handleMouseup","handleMousemove","_props$onSizeDragEnd","limit","_getSizeDraggable","allowSizeDraggable","limitMax","limitMin","moveSize","calcMoveSize","draggableLineStyles","isHorizontal","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","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","_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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"} \ 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/upperCase.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","../../components/textarea/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/tree-select/utils.ts","../../components/tree-select/index.ts","../../components/color-picker/props.ts","../../common/js/color-picker/constants.ts","../../components/color-picker/hooks/index.ts","../../components/color-picker/components/panel/header.tsx","../../common/js/color-picker/gradient.ts","../../common/js/color-picker/cmyk.ts","../../common/js/color-picker/color.ts","../../common/js/color-picker/draggable.ts","../../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/config.ts","../../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 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 diff --git a/docs/index.md b/docs/index.md index 6016079..cc08287 100644 --- a/docs/index.md +++ b/docs/index.md @@ -62,13 +62,20 @@ hide: 深入考察了国内镜像站的系统适配情况,测试了下载速度与IPv6兼容性 另外提供全网搜集的国内教育网镜像站和海外镜像站供用户选择 -- :material-rocket-launch-outline:{ .lg .middle } __高效且飞快__ +- :material-rocket-launch-outline:{ .lg .middle } __快,且高效__ --- 最快仅需 10 秒即可完成软件源的更换,高效运维,节省大量时间成本 项目经过数年的迭代与优化,脚本运行稳定性能卓越,场景判断完善 +- :octicons-globe-24:{ .lg .middle } __全球网络,调用无忧__ + + --- + + 本网站提供全球边缘网络加速,不惧各种网络环境,国内轻松访问 + 同时提供了多个备用地址以确保项目脚本始终可用,真正做到使用无忧 + - :material-arm-flex-outline:{ .lg .middle } __功能强大,无以伦比__ --- @@ -90,13 +97,6 @@ hide: 项目已设立 MIT 开源许可协议,脚本代码完全开源且免费使用 请尊重作者的知识成果,传播时请在显著位置标注来源或项目地址 -- :material-information-variant-box-outline:{ .lg .middle } __意见与建议__ - - --- - - 如有适配请求或意见与建议请提交至 [Issues](https://github.com/SuperManito/LinuxMirrors/issues) 或直接在 [社区](./community/index.md) 中参与讨论 - 若愿意贡献代码,请前往 GitHub 仓库提交 [Pull Requests](https://github.com/SuperManito/LinuxMirrors/pulls) - | 操作系统 | 适配版本 | diff --git a/docs/sponsor/main.html b/docs/sponsor/main.html index ae06903..43741bb 100644 --- a/docs/sponsor/main.html +++ b/docs/sponsor/main.html @@ -31,6 +31,10 @@ + diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 823667a..cc265b9 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -216,26 +216,11 @@ opacity: 0.75; } -[data-md-color-scheme="slate"] .sponsor-item-toc-lighter img { - filter: grayscale(1) invert(0.6); -} - -[data-md-color-scheme="slate"] .sponsor-item-toc-darker img { - filter: brightness(0.6) grayscale(1); -} - .sponsor-item-toc:hover img { filter: grayscale(0%) !important; opacity: 1; } -[data-md-color-scheme="slate"] .sponsor-item-toc:hover img, -[data-md-color-scheme="slate"] .sponsor-item-toc-lighter:hover img, -[data-md-color-scheme="slate"] .sponsor-item-toc-darker:hover img { - filter: grayscale(0%) brightness(1.2) !important; - opacity: 1; -} - .sponsor-flex-wrapper { display: flex; flex-wrap: wrap; diff --git a/docs/theme/partials/toc.html b/docs/theme/partials/toc.html index 1f61e09..b812dae 100644 --- a/docs/theme/partials/toc.html +++ b/docs/theme/partials/toc.html @@ -14,33 +14,39 @@ 赞助商